This commit is contained in:
齐斌 2025-05-31 04:00:50 +08:00
commit e0c28b5522
16 changed files with 834 additions and 680 deletions

View File

@ -570,7 +570,7 @@ export default {
CONTAINY: { CONTAINY: {
STOCK_INFO: { STOCK_INFO: {
TITLE: "Stock Information", TITLE: "Stock Information",
LAST_PRICE: "Last Price", LAST_PRICE: "Price",
CHANGE: "% Change", CHANGE: "% Change",
STOCK_CODE: "Stock Code", STOCK_CODE: "Stock Code",
VOLUME: "Volume", VOLUME: "Volume",

View File

@ -85,201 +85,202 @@
</template> </template>
<script setup> <script setup>
import { NDataTable, NButton, NDropdown, NIcon } from "naive-ui"; import { NDataTable, NButton, NDropdown, NIcon } from 'naive-ui'
import { reactive, onMounted, h, computed } from "vue"; import { reactive, onMounted, h, computed } from 'vue'
import axios from "axios"; import axios from 'axios'
import { import {
ChevronDownOutline, ChevronDownOutline,
ChevronBackOutline, ChevronBackOutline,
ChevronForwardOutline, ChevronForwardOutline,
ArrowUpOutline, ArrowUpOutline,
} from "@vicons/ionicons5"; } from '@vicons/ionicons5'
import defaultTableData from "../data"; import defaultTableData from '../data'
// console.log('defaultTableData', defaultTableData)
import customEcharts from '@/components/customEcharts/index.vue' import customEcharts from '@/components/customEcharts/index.vue'
// console.log("defaultTableData", defaultTableData);
// //
const periodOptions = [ const periodOptions = [
{ label: "Daily", key: "Daily" }, { label: 'Daily', key: 'Daily' },
{ label: "Weekly", key: "Weekly" }, { label: 'Weekly', key: 'Weekly' },
{ label: "Monthly", key: "Monthly" }, { label: 'Monthly', key: 'Monthly' },
{ label: "Quarterly", key: "Quarterly" }, { label: 'Quarterly', key: 'Quarterly' },
{ label: "Annual", key: "Annual" }, { label: 'Annual', key: 'Annual' },
]; ]
const durationOptions = [ const durationOptions = [
{ label: "3 Months", key: "3 Months" }, { label: '3 Months', key: '3 Months' },
{ label: "6 Months", key: "6 Months" }, { label: '6 Months', key: '6 Months' },
{ label: "Year to Date", key: "Year to Date" }, { label: 'Year to Date', key: 'Year to Date' },
{ label: "1 Year", key: "1 Year" }, { label: '1 Year', key: '1 Year' },
{ label: "5 Years", key: "5 Years" }, { label: '5 Years', key: '5 Years' },
{ label: "10 Years", key: "10 Years" }, { label: '10 Years', key: '10 Years' },
// { label: "Full History", key: "Full History", disabled: true }, // { label: 'Full History', key: 'Full History', disabled: true },
]; ]
// //
const pageSizeOptions = [ const pageSizeOptions = [
{ label: "50", key: 50 }, { label: '50', key: 50 },
{ label: "100", key: 100 }, { label: '100', key: 100 },
{ label: "500", key: 500 }, { label: '500', key: 500 },
{ label: "1000", key: 1000 }, { label: '1000', key: 1000 },
]; ]
const state = reactive({ const state = reactive({
selectedPeriod: "Daily", selectedPeriod: 'Daily',
selectedDuration: "3 Months", selectedDuration: '6 Months',
tableData: [], tableData: [],
currentPage: 1, currentPage: 1,
pageSize: 50, pageSize: 50,
}); })
// //
const totalPages = computed(() => { const totalPages = computed(() => {
return Math.ceil(state.tableData.length / state.pageSize); return Math.ceil(state.tableData.length / state.pageSize)
}); })
// //
const paginatedData = computed(() => { const paginatedData = computed(() => {
const start = (state.currentPage - 1) * state.pageSize; const start = (state.currentPage - 1) * state.pageSize
const end = start + state.pageSize; const end = start + state.pageSize
return state.tableData.slice(start, end); return state.tableData.slice(start, end)
}); })
// //
const columns = [ const columns = [
{ {
title: "Date", title: 'Date',
key: "date", key: 'date',
align: "left", align: 'left',
fixed: "left", fixed: 'left',
width: 150, width: 150,
}, },
{ {
title: "Open", title: 'Open',
key: "open", key: 'open',
align: "center", align: 'center',
}, },
{ {
title: "High", title: 'High',
key: "high", key: 'high',
align: "center", align: 'center',
}, },
{ {
title: "Low", title: 'Low',
key: "low", key: 'low',
align: "center", align: 'center',
}, },
{ {
title: "Close", title: 'Close',
key: "close", key: 'close',
align: "center", align: 'center',
}, },
{ {
title: "Adj. Close", title: 'Adj. Close',
key: "adjClose", key: 'adjClose',
align: "center", align: 'center',
}, },
{ {
title: "Change", title: 'Change',
key: "change", key: 'change',
align: "center", align: 'center',
render(row) { render(row) {
const value = parseFloat(row.change); const value = parseFloat(row.change)
const color = value < 0 ? "#ff4d4f" : value > 0 ? "#52c41a" : ""; const color = value < 0 ? '#ff4d4f' : value > 0 ? '#52c41a' : ''
return h("span", { style: { color } }, row.change); return h('span', { style: { color } }, row.change)
}, },
}, },
{ {
title: "Volume", title: 'Volume',
key: "volume", key: 'volume',
align: "center", align: 'center',
}, },
]; ]
// //
const handlePeriodChange = (key) => { const handlePeriodChange = (key) => {
state.selectedPeriod = key; state.selectedPeriod = key
if (key === "Annual") { if (key === 'Annual') {
handleDurationChange("Full History"); handleDurationChange('Full History')
return; return
} }
if (key === "Monthly") { if (key === 'Monthly') {
handleDurationChange("10 Years"); handleDurationChange('10 Years')
return; return
} }
if (key === "Quarterly") { if (key === 'Quarterly') {
handleDurationChange("10 Years"); handleDurationChange('10 Years')
return; return
} }
getPageData(); getPageData()
}; }
const handleDurationChange = (key) => { const handleDurationChange = (key) => {
state.selectedDuration = key; state.selectedDuration = key
getPageData(); state.currentPage = 1
}; getPageData()
}
// //
const handlePrevPage = () => { const handlePrevPage = () => {
if (state.currentPage === 1) { if (state.currentPage === 1) {
return; return
} }
state.currentPage--; state.currentPage--
}; }
const handleNextPage = () => { const handleNextPage = () => {
if (state.currentPage >= totalPages.value) { if (state.currentPage >= totalPages.value) {
return; return
} }
state.currentPage++; state.currentPage++
}; }
const handlePageSizeChange = (size) => { const handlePageSizeChange = (size) => {
state.pageSize = size; state.pageSize = size
state.currentPage = 1; // state.currentPage = 1 //
}; }
// //
const scrollToTop = () => { const scrollToTop = () => {
// //
// 1. 使document.body // 1. 使document.body
document.body.scrollTop = 0; document.body.scrollTop = 0
// 2. 使document.documentElement (HTML) // 2. 使document.documentElement (HTML)
document.documentElement.scrollTop = 0; document.documentElement.scrollTop = 0
// 3. 使scrollIntoView // 3. 使scrollIntoView
document.querySelector(".historic-data-container").scrollIntoView({ document.querySelector('.historic-data-container').scrollIntoView({
behavior: "smooth", behavior: 'smooth',
block: "start", block: 'start',
}); })
}; }
onMounted(() => { onMounted(() => {
getPageData(); getPageData()
}); })
const getPageDefaultData = async () => { const getPageDefaultData = async () => {
try { try {
let url = let url =
"https://stockanalysis.com/api/symbol/a/OTC-MINM/history?type=chart"; 'https://stockanalysis.com/api/symbol/a/OTC-MINM/history?period=Daily&range=3M'
const res = await axios.get(url); const res = await axios.get(url)
let originalData = res.data.data; let originalData = res.data.data
// "Nov 26, 2024" // "Nov 26, 2024"
let calcApiData = originalData.map((item) => [ let calcApiData = originalData.map((item) => [
new Date(item[0]).toLocaleDateString("en-US", { new Date(item[0]).toLocaleDateString('en-US', {
month: "short", month: 'short',
day: "numeric", day: 'numeric',
year: "numeric", year: 'numeric',
}), }),
item[1], item[1],
]); ])
// console.log("", calcApiData); // console.log('', calcApiData)
// 使APIdefaultTableDatacloseadjClose // 使APIdefaultTableDatacloseadjClose
const updatedTableData = defaultTableData.map((tableItem) => { const updatedTableData = defaultTableData.map((tableItem) => {
// API // API
const matchedApiData = calcApiData.find( const matchedApiData = calcApiData.find(
(apiItem) => apiItem[0] === tableItem.date (apiItem) => apiItem[0] === tableItem.date,
); )
if (matchedApiData) { if (matchedApiData) {
// closeadjClose // closeadjClose
@ -287,56 +288,100 @@ const getPageDefaultData = async () => {
...tableItem, ...tableItem,
close: matchedApiData[1].toFixed(2), close: matchedApiData[1].toFixed(2),
adjClose: matchedApiData[1].toFixed(2), adjClose: matchedApiData[1].toFixed(2),
};
} }
return tableItem; }
}); return tableItem
})
state.tableData = updatedTableData; state.tableData = updatedTableData
} catch (error) { } catch (error) {
// console.error("", error); // console.error('', error)
} }
}; }
const getPageData = async () => { const getPageData = async () => {
let range = ""; let range = ''
if (state.selectedDuration === "3 Months") { let now = new Date()
range = "3M"; const last = new Date(now)
} else if (state.selectedDuration === "6 Months") { last.setMonth(now.getMonth() - 6)
range = "6M"; let fromDate = last
} else if (state.selectedDuration === "Year to Date") { let toDate =
range = "YTD"; now.getFullYear() +
} else if (state.selectedDuration === "1 Year") { '-' +
range = "1Y"; String(now.getMonth() + 1).padStart(2, '0') +
} else if (state.selectedDuration === "5 Years") { '-' +
range = "5Y"; String(now.getDate()).padStart(2, '0')
} else if (state.selectedDuration === "10 Years") { if (state.selectedDuration === '3 Months') {
range = "10Y"; range = '3M'
} else if (state.selectedDuration === "Full History") { const last = new Date(now)
range = "Max"; last.setMonth(now.getMonth() - 3)
fromDate = last
} else if (state.selectedDuration === '6 Months') {
range = '6M'
const last = new Date(now)
last.setMonth(now.getMonth() - 6)
fromDate = last
} else if (state.selectedDuration === 'Year to Date') {
range = 'YTD'
fromDate = new Date(now.getFullYear(), 0, 1)
} else if (state.selectedDuration === '1 Year') {
range = '1Y'
const last = new Date(now)
last.setFullYear(now.getFullYear() - 1)
fromDate = last
} else if (state.selectedDuration === '5 Years') {
range = '5Y'
const last = new Date(now)
last.setFullYear(now.getFullYear() - 5)
fromDate = last
} else if (state.selectedDuration === '10 Years') {
range = '10Y'
const last = new Date(now)
last.setFullYear(now.getFullYear() - 10)
fromDate = last
} else if (state.selectedDuration === 'Full History') {
range = 'Max'
fromDate = new Date('2009-10-07')
} }
let url = `https://stockanalysis.com/api/symbol/a/OTC-MINM/history?period=${state.selectedPeriod}&range=${range}`; let finalFromDate =
const res = await axios.get(url); fromDate.getFullYear() +
if (res.data.status === 200) { '-' +
String(fromDate.getMonth() + 1).padStart(2, '0') +
'-' +
String(fromDate.getDate()).padStart(2, '0')
// let url = `https://stockanalysis.com/api/symbol/a/OTC-MINM/history?period=${state.selectedPeriod}&range=${range}`
let url =
'https://common.szjixun.cn/api/stock/history/list?from=' +
finalFromDate +
'&to=' +
toDate
const res = await axios.get(url)
// console.error(res)
if (res.status === 200) {
if (res.data.status === 0) {
// "Nov 26, 2024" // "Nov 26, 2024"
let resultData = res.data.data.map((item) => { let resultData = res.data.data.map((item) => {
return { return {
date: new Date(item.t).toLocaleDateString("en-US", { date: new Date(item.date).toLocaleDateString('en-US', {
month: "short", month: 'short',
day: "numeric", day: 'numeric',
year: "numeric", year: 'numeric',
}), }),
open: item.o != null ? Number(item.o).toFixed(2) : "", open: item.open != null ? Number(item.open).toFixed(2) : '',
high: item.h != null ? Number(item.h).toFixed(2) : "", high: item.high != null ? Number(item.high).toFixed(2) : '',
low: item.l != null ? Number(item.l).toFixed(2) : "", low: item.low != null ? Number(item.low).toFixed(2) : '',
close: item.c != null ? Number(item.c).toFixed(2) : "", close: item.close != null ? Number(item.close).toFixed(2) : '',
adjClose: item.a != null ? Number(item.a).toFixed(2) : "", adjClose: item.close != null ? Number(item.close).toFixed(2) : '',
change: item.ch != null ? Number(item.ch).toFixed(2) + "%" : "", change:
volume: item.v, item.changePercent != null
}; ? Number(item.changePercent).toFixed(2) + '%'
}); : '',
state.tableData = resultData; volume: item.volume,
} }
}; })
state.tableData = resultData
}
}
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -83,202 +83,202 @@
</template> </template>
<script setup> <script setup>
import { NDataTable, NButton, NDropdown, NIcon } from "naive-ui"; import { NDataTable, NButton, NDropdown, NIcon } from 'naive-ui'
import { reactive, onMounted, h, computed } from "vue"; import { reactive, onMounted, h, computed } from 'vue'
import axios from "axios"; import axios from 'axios'
import { import {
ChevronDownOutline, ChevronDownOutline,
ChevronBackOutline, ChevronBackOutline,
ChevronForwardOutline, ChevronForwardOutline,
ArrowUpOutline, ArrowUpOutline,
} from "@vicons/ionicons5"; } from '@vicons/ionicons5'
import defaultTableData from "../data"; import defaultTableData from '../data'
// console.log('defaultTableData', defaultTableData)
import customEcharts from '@/components/customEcharts/index.vue' import customEcharts from '@/components/customEcharts/index.vue'
// console.log("defaultTableData", defaultTableData);
// //
const periodOptions = [ const periodOptions = [
{ label: "Daily", key: "Daily" }, { label: 'Daily', key: 'Daily' },
{ label: "Weekly", key: "Weekly" }, { label: 'Weekly', key: 'Weekly' },
{ label: "Monthly", key: "Monthly" }, { label: 'Monthly', key: 'Monthly' },
{ label: "Quarterly", key: "Quarterly" }, { label: 'Quarterly', key: 'Quarterly' },
{ label: "Annual", key: "Annual" }, { label: 'Annual', key: 'Annual' },
]; ]
const durationOptions = [ const durationOptions = [
{ label: "3 Months", key: "3 Months" }, { label: '3 Months', key: '3 Months' },
{ label: "6 Months", key: "6 Months" }, { label: '6 Months', key: '6 Months' },
{ label: "Year to Date", key: "Year to Date" }, { label: 'Year to Date', key: 'Year to Date' },
{ label: "1 Year", key: "1 Year" }, { label: '1 Year', key: '1 Year' },
{ label: "5 Years", key: "5 Years" }, { label: '5 Years', key: '5 Years' },
{ label: "10 Years", key: "10 Years" }, { label: '10 Years', key: '10 Years' },
// { label: "Full History", key: "Full History", disabled: true }, // { label: 'Full History', key: 'Full History', disabled: true },
]; ]
// //
const pageSizeOptions = [ const pageSizeOptions = [
{ label: "50", key: 50 }, { label: '50', key: 50 },
{ label: "100", key: 100 }, { label: '100', key: 100 },
{ label: "500", key: 500 }, { label: '500', key: 500 },
{ label: "1000", key: 1000 }, { label: '1000', key: 1000 },
]; ]
const state = reactive({ const state = reactive({
selectedPeriod: "Daily", selectedPeriod: 'Daily',
selectedDuration: "3 Months", selectedDuration: '6 Months',
tableData: [], tableData: [],
currentPage: 1, currentPage: 1,
pageSize: 50, pageSize: 50,
}); })
// //
const totalPages = computed(() => { const totalPages = computed(() => {
return Math.ceil(state.tableData.length / state.pageSize); return Math.ceil(state.tableData.length / state.pageSize)
}); })
// //
const paginatedData = computed(() => { const paginatedData = computed(() => {
const start = (state.currentPage - 1) * state.pageSize; const start = (state.currentPage - 1) * state.pageSize
const end = start + state.pageSize; const end = start + state.pageSize
return state.tableData.slice(start, end); return state.tableData.slice(start, end)
}); })
// //
const columns = [ const columns = [
{ {
width: 100, title: 'Date',
title: "Date", key: 'date',
key: "date", align: 'left',
align: "left", fixed: 'left',
fixed: "left", width: 150,
}, },
{ {
title: "Open", title: 'Open',
key: "open", key: 'open',
align: "center", align: 'center',
fixed: "left",
}, },
{ {
title: "High", title: 'High',
key: "high", key: 'high',
align: "center", align: 'center',
}, },
{ {
title: "Low", title: 'Low',
key: "low", key: 'low',
align: "center", align: 'center',
}, },
{ {
title: "Close", title: 'Close',
key: "close", key: 'close',
align: "center", align: 'center',
}, },
{ {
title: "Adj. Close", title: 'Adj. Close',
key: "adjClose", key: 'adjClose',
align: "center", align: 'center',
}, },
{ {
title: "Change", title: 'Change',
key: "change", key: 'change',
align: "center", align: 'center',
render(row) { render(row) {
const value = parseFloat(row.change); const value = parseFloat(row.change)
const color = value < 0 ? "#ff4d4f" : value > 0 ? "#52c41a" : ""; const color = value < 0 ? '#ff4d4f' : value > 0 ? '#52c41a' : ''
return h("span", { style: { color } }, row.change); return h('span', { style: { color } }, row.change)
}, },
}, },
{ {
title: "Volume", title: 'Volume',
key: "volume", key: 'volume',
align: "center", align: 'center',
}, },
]; ]
// //
const handlePeriodChange = (key) => { const handlePeriodChange = (key) => {
state.selectedPeriod = key; state.selectedPeriod = key
if (key === "Annual") { if (key === 'Annual') {
handleDurationChange("Full History"); handleDurationChange('Full History')
return; return
} }
if (key === "Monthly") { if (key === 'Monthly') {
handleDurationChange("10 Years"); handleDurationChange('10 Years')
return; return
} }
if (key === "Quarterly") { if (key === 'Quarterly') {
handleDurationChange("10 Years"); handleDurationChange('10 Years')
return; return
} }
getPageData(); getPageData()
}; }
const handleDurationChange = (key) => { const handleDurationChange = (key) => {
state.selectedDuration = key; state.selectedDuration = key
getPageData(); state.currentPage = 1
}; getPageData()
}
// //
const handlePrevPage = () => { const handlePrevPage = () => {
if (state.currentPage === 1) { if (state.currentPage === 1) {
return; return
} }
state.currentPage--; state.currentPage--
}; }
const handleNextPage = () => { const handleNextPage = () => {
if (state.currentPage >= totalPages.value) { if (state.currentPage >= totalPages.value) {
return; return
} }
state.currentPage++; state.currentPage++
}; }
const handlePageSizeChange = (size) => { const handlePageSizeChange = (size) => {
state.pageSize = size; state.pageSize = size
state.currentPage = 1; // state.currentPage = 1 //
}; }
// //
const scrollToTop = () => { const scrollToTop = () => {
// //
// 1. 使document.body // 1. 使document.body
document.body.scrollTop = 0; document.body.scrollTop = 0
// 2. 使document.documentElement (HTML) // 2. 使document.documentElement (HTML)
document.documentElement.scrollTop = 0; document.documentElement.scrollTop = 0
// 3. 使scrollIntoView // 3. 使scrollIntoView
document.querySelector(".historic-data-container").scrollIntoView({ document.querySelector('.historic-data-container').scrollIntoView({
behavior: "smooth", behavior: 'smooth',
block: "start", block: 'start',
}); })
}; }
onMounted(() => { onMounted(() => {
getPageData(); getPageData()
}); })
const getPageDefaultData = async () => { const getPageDefaultData = async () => {
try { try {
let url = let url =
"https://stockanalysis.com/api/symbol/a/OTC-MINM/history?type=chart"; 'https://stockanalysis.com/api/symbol/a/OTC-MINM/history?period=Daily&range=3M'
const res = await axios.get(url); const res = await axios.get(url)
let originalData = res.data.data; let originalData = res.data.data
// "Nov 26, 2024" // "Nov 26, 2024"
let calcApiData = originalData.map((item) => [ let calcApiData = originalData.map((item) => [
new Date(item[0]).toLocaleDateString("en-US", { new Date(item[0]).toLocaleDateString('en-US', {
month: "short", month: 'short',
day: "numeric", day: 'numeric',
year: "numeric", year: 'numeric',
}), }),
item[1], item[1],
]); ])
// console.log("", calcApiData); // console.log('', calcApiData)
// 使APIdefaultTableDatacloseadjClose // 使APIdefaultTableDatacloseadjClose
const updatedTableData = defaultTableData.map((tableItem) => { const updatedTableData = defaultTableData.map((tableItem) => {
// API // API
const matchedApiData = calcApiData.find( const matchedApiData = calcApiData.find(
(apiItem) => apiItem[0] === tableItem.date (apiItem) => apiItem[0] === tableItem.date,
); )
if (matchedApiData) { if (matchedApiData) {
// closeadjClose // closeadjClose
@ -286,56 +286,100 @@ const getPageDefaultData = async () => {
...tableItem, ...tableItem,
close: matchedApiData[1].toFixed(2), close: matchedApiData[1].toFixed(2),
adjClose: matchedApiData[1].toFixed(2), adjClose: matchedApiData[1].toFixed(2),
};
} }
return tableItem; }
}); return tableItem
})
state.tableData = updatedTableData; state.tableData = updatedTableData
} catch (error) { } catch (error) {
// console.error("", error); // console.error('', error)
} }
}; }
const getPageData = async () => { const getPageData = async () => {
let range = ""; let range = ''
if (state.selectedDuration === "3 Months") { let now = new Date()
range = "3M"; const last = new Date(now)
} else if (state.selectedDuration === "6 Months") { last.setMonth(now.getMonth() - 6)
range = "6M"; let fromDate = last
} else if (state.selectedDuration === "Year to Date") { let toDate =
range = "YTD"; now.getFullYear() +
} else if (state.selectedDuration === "1 Year") { '-' +
range = "1Y"; String(now.getMonth() + 1).padStart(2, '0') +
} else if (state.selectedDuration === "5 Years") { '-' +
range = "5Y"; String(now.getDate()).padStart(2, '0')
} else if (state.selectedDuration === "10 Years") { if (state.selectedDuration === '3 Months') {
range = "10Y"; range = '3M'
} else if (state.selectedDuration === "Full History") { const last = new Date(now)
range = "Max"; last.setMonth(now.getMonth() - 3)
fromDate = last
} else if (state.selectedDuration === '6 Months') {
range = '6M'
const last = new Date(now)
last.setMonth(now.getMonth() - 6)
fromDate = last
} else if (state.selectedDuration === 'Year to Date') {
range = 'YTD'
fromDate = new Date(now.getFullYear(), 0, 1)
} else if (state.selectedDuration === '1 Year') {
range = '1Y'
const last = new Date(now)
last.setFullYear(now.getFullYear() - 1)
fromDate = last
} else if (state.selectedDuration === '5 Years') {
range = '5Y'
const last = new Date(now)
last.setFullYear(now.getFullYear() - 5)
fromDate = last
} else if (state.selectedDuration === '10 Years') {
range = '10Y'
const last = new Date(now)
last.setFullYear(now.getFullYear() - 10)
fromDate = last
} else if (state.selectedDuration === 'Full History') {
range = 'Max'
fromDate = new Date('2009-10-07')
} }
let url = `https://stockanalysis.com/api/symbol/a/OTC-MINM/history?period=${state.selectedPeriod}&range=${range}`; let finalFromDate =
const res = await axios.get(url); fromDate.getFullYear() +
if (res.data.status === 200) { '-' +
String(fromDate.getMonth() + 1).padStart(2, '0') +
'-' +
String(fromDate.getDate()).padStart(2, '0')
// let url = `https://stockanalysis.com/api/symbol/a/OTC-MINM/history?period=${state.selectedPeriod}&range=${range}`
let url =
'https://common.szjixun.cn/api/stock/history/list?from=' +
finalFromDate +
'&to=' +
toDate
const res = await axios.get(url)
// console.error(res)
if (res.status === 200) {
if (res.data.status === 0) {
// "Nov 26, 2024" // "Nov 26, 2024"
let resultData = res.data.data.map((item) => { let resultData = res.data.data.map((item) => {
return { return {
date: new Date(item.t).toLocaleDateString("en-US", { date: new Date(item.date).toLocaleDateString('en-US', {
month: "short", month: 'short',
day: "numeric", day: 'numeric',
year: "numeric", year: 'numeric',
}), }),
open: item.o != null ? Number(item.o).toFixed(2) : "", open: item.open != null ? Number(item.open).toFixed(2) : '',
high: item.h != null ? Number(item.h).toFixed(2) : "", high: item.high != null ? Number(item.high).toFixed(2) : '',
low: item.l != null ? Number(item.l).toFixed(2) : "", low: item.low != null ? Number(item.low).toFixed(2) : '',
close: item.c != null ? Number(item.c).toFixed(2) : "", close: item.close != null ? Number(item.close).toFixed(2) : '',
adjClose: item.a != null ? Number(item.a).toFixed(2) : "", adjClose: item.close != null ? Number(item.close).toFixed(2) : '',
change: item.ch != null ? Number(item.ch).toFixed(2) + "%" : "", change:
volume: item.v, item.changePercent != null
}; ? Number(item.changePercent).toFixed(2) + '%'
}); : '',
state.tableData = resultData; volume: item.volume,
} }
}; })
state.tableData = resultData
}
}
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -85,201 +85,202 @@
</template> </template>
<script setup> <script setup>
import { NDataTable, NButton, NDropdown, NIcon } from "naive-ui"; import { NDataTable, NButton, NDropdown, NIcon } from 'naive-ui'
import { reactive, onMounted, h, computed } from "vue"; import { reactive, onMounted, h, computed } from 'vue'
import axios from "axios"; import axios from 'axios'
import { import {
ChevronDownOutline, ChevronDownOutline,
ChevronBackOutline, ChevronBackOutline,
ChevronForwardOutline, ChevronForwardOutline,
ArrowUpOutline, ArrowUpOutline,
} from "@vicons/ionicons5"; } from '@vicons/ionicons5'
import defaultTableData from "../data"; import defaultTableData from '../data'
// console.log('defaultTableData', defaultTableData)
import customEcharts from '@/components/customEcharts/index.vue' import customEcharts from '@/components/customEcharts/index.vue'
// console.log("defaultTableData", defaultTableData);
// //
const periodOptions = [ const periodOptions = [
{ label: "Daily", key: "Daily" }, { label: 'Daily', key: 'Daily' },
{ label: "Weekly", key: "Weekly" }, { label: 'Weekly', key: 'Weekly' },
{ label: "Monthly", key: "Monthly" }, { label: 'Monthly', key: 'Monthly' },
{ label: "Quarterly", key: "Quarterly" }, { label: 'Quarterly', key: 'Quarterly' },
{ label: "Annual", key: "Annual" }, { label: 'Annual', key: 'Annual' },
]; ]
const durationOptions = [ const durationOptions = [
{ label: "3 Months", key: "3 Months" }, { label: '3 Months', key: '3 Months' },
{ label: "6 Months", key: "6 Months" }, { label: '6 Months', key: '6 Months' },
{ label: "Year to Date", key: "Year to Date" }, { label: 'Year to Date', key: 'Year to Date' },
{ label: "1 Year", key: "1 Year" }, { label: '1 Year', key: '1 Year' },
{ label: "5 Years", key: "5 Years" }, { label: '5 Years', key: '5 Years' },
{ label: "10 Years", key: "10 Years" }, { label: '10 Years', key: '10 Years' },
// { label: "Full History", key: "Full History", disabled: true }, // { label: 'Full History', key: 'Full History', disabled: true },
]; ]
// //
const pageSizeOptions = [ const pageSizeOptions = [
{ label: "50", key: 50 }, { label: '50', key: 50 },
{ label: "100", key: 100 }, { label: '100', key: 100 },
{ label: "500", key: 500 }, { label: '500', key: 500 },
{ label: "1000", key: 1000 }, { label: '1000', key: 1000 },
]; ]
const state = reactive({ const state = reactive({
selectedPeriod: "Daily", selectedPeriod: 'Daily',
selectedDuration: "3 Months", selectedDuration: '6 Months',
tableData: [], tableData: [],
currentPage: 1, currentPage: 1,
pageSize: 50, pageSize: 50,
}); })
// //
const totalPages = computed(() => { const totalPages = computed(() => {
return Math.ceil(state.tableData.length / state.pageSize); return Math.ceil(state.tableData.length / state.pageSize)
}); })
// //
const paginatedData = computed(() => { const paginatedData = computed(() => {
const start = (state.currentPage - 1) * state.pageSize; const start = (state.currentPage - 1) * state.pageSize
const end = start + state.pageSize; const end = start + state.pageSize
return state.tableData.slice(start, end); return state.tableData.slice(start, end)
}); })
// //
const columns = [ const columns = [
{ {
title: "Date", title: 'Date',
key: "date", key: 'date',
align: "left", align: 'left',
fixed: "left", fixed: 'left',
width: 150, width: 150,
}, },
{ {
title: "Open", title: 'Open',
key: "open", key: 'open',
align: "center", align: 'center',
}, },
{ {
title: "High", title: 'High',
key: "high", key: 'high',
align: "center", align: 'center',
}, },
{ {
title: "Low", title: 'Low',
key: "low", key: 'low',
align: "center", align: 'center',
}, },
{ {
title: "Close", title: 'Close',
key: "close", key: 'close',
align: "center", align: 'center',
}, },
{ {
title: "Adj. Close", title: 'Adj. Close',
key: "adjClose", key: 'adjClose',
align: "center", align: 'center',
}, },
{ {
title: "Change", title: 'Change',
key: "change", key: 'change',
align: "center", align: 'center',
render(row) { render(row) {
const value = parseFloat(row.change); const value = parseFloat(row.change)
const color = value < 0 ? "#ff4d4f" : value > 0 ? "#52c41a" : ""; const color = value < 0 ? '#ff4d4f' : value > 0 ? '#52c41a' : ''
return h("span", { style: { color } }, row.change); return h('span', { style: { color } }, row.change)
}, },
}, },
{ {
title: "Volume", title: 'Volume',
key: "volume", key: 'volume',
align: "center", align: 'center',
}, },
]; ]
// //
const handlePeriodChange = (key) => { const handlePeriodChange = (key) => {
state.selectedPeriod = key; state.selectedPeriod = key
if (key === "Annual") { if (key === 'Annual') {
handleDurationChange("Full History"); handleDurationChange('Full History')
return; return
} }
if (key === "Monthly") { if (key === 'Monthly') {
handleDurationChange("10 Years"); handleDurationChange('10 Years')
return; return
} }
if (key === "Quarterly") { if (key === 'Quarterly') {
handleDurationChange("10 Years"); handleDurationChange('10 Years')
return; return
} }
getPageData(); getPageData()
}; }
const handleDurationChange = (key) => { const handleDurationChange = (key) => {
state.selectedDuration = key; state.selectedDuration = key
getPageData(); state.currentPage = 1
}; getPageData()
}
// //
const handlePrevPage = () => { const handlePrevPage = () => {
if (state.currentPage === 1) { if (state.currentPage === 1) {
return; return
} }
state.currentPage--; state.currentPage--
}; }
const handleNextPage = () => { const handleNextPage = () => {
if (state.currentPage >= totalPages.value) { if (state.currentPage >= totalPages.value) {
return; return
} }
state.currentPage++; state.currentPage++
}; }
const handlePageSizeChange = (size) => { const handlePageSizeChange = (size) => {
state.pageSize = size; state.pageSize = size
state.currentPage = 1; // state.currentPage = 1 //
}; }
// //
const scrollToTop = () => { const scrollToTop = () => {
// //
// 1. 使document.body // 1. 使document.body
document.body.scrollTop = 0; document.body.scrollTop = 0
// 2. 使document.documentElement (HTML) // 2. 使document.documentElement (HTML)
document.documentElement.scrollTop = 0; document.documentElement.scrollTop = 0
// 3. 使scrollIntoView // 3. 使scrollIntoView
document.querySelector(".historic-data-container").scrollIntoView({ document.querySelector('.historic-data-container').scrollIntoView({
behavior: "smooth", behavior: 'smooth',
block: "start", block: 'start',
}); })
}; }
onMounted(() => { onMounted(() => {
getPageData(); getPageData()
}); })
const getPageDefaultData = async () => { const getPageDefaultData = async () => {
try { try {
let url = let url =
"https://stockanalysis.com/api/symbol/a/OTC-MINM/history?type=chart"; 'https://stockanalysis.com/api/symbol/a/OTC-MINM/history?period=Daily&range=3M'
const res = await axios.get(url); const res = await axios.get(url)
let originalData = res.data.data; let originalData = res.data.data
// "Nov 26, 2024" // "Nov 26, 2024"
let calcApiData = originalData.map((item) => [ let calcApiData = originalData.map((item) => [
new Date(item[0]).toLocaleDateString("en-US", { new Date(item[0]).toLocaleDateString('en-US', {
month: "short", month: 'short',
day: "numeric", day: 'numeric',
year: "numeric", year: 'numeric',
}), }),
item[1], item[1],
]); ])
// console.log("", calcApiData); // console.log('', calcApiData)
// 使APIdefaultTableDatacloseadjClose // 使APIdefaultTableDatacloseadjClose
const updatedTableData = defaultTableData.map((tableItem) => { const updatedTableData = defaultTableData.map((tableItem) => {
// API // API
const matchedApiData = calcApiData.find( const matchedApiData = calcApiData.find(
(apiItem) => apiItem[0] === tableItem.date (apiItem) => apiItem[0] === tableItem.date,
); )
if (matchedApiData) { if (matchedApiData) {
// closeadjClose // closeadjClose
@ -287,56 +288,100 @@ const getPageDefaultData = async () => {
...tableItem, ...tableItem,
close: matchedApiData[1].toFixed(2), close: matchedApiData[1].toFixed(2),
adjClose: matchedApiData[1].toFixed(2), adjClose: matchedApiData[1].toFixed(2),
};
} }
return tableItem; }
}); return tableItem
})
state.tableData = updatedTableData; state.tableData = updatedTableData
} catch (error) { } catch (error) {
// console.error("", error); // console.error('', error)
} }
}; }
const getPageData = async () => { const getPageData = async () => {
let range = ""; let range = ''
if (state.selectedDuration === "3 Months") { let now = new Date()
range = "3M"; const last = new Date(now)
} else if (state.selectedDuration === "6 Months") { last.setMonth(now.getMonth() - 6)
range = "6M"; let fromDate = last
} else if (state.selectedDuration === "Year to Date") { let toDate =
range = "YTD"; now.getFullYear() +
} else if (state.selectedDuration === "1 Year") { '-' +
range = "1Y"; String(now.getMonth() + 1).padStart(2, '0') +
} else if (state.selectedDuration === "5 Years") { '-' +
range = "5Y"; String(now.getDate()).padStart(2, '0')
} else if (state.selectedDuration === "10 Years") { if (state.selectedDuration === '3 Months') {
range = "10Y"; range = '3M'
} else if (state.selectedDuration === "Full History") { const last = new Date(now)
range = "Max"; last.setMonth(now.getMonth() - 3)
fromDate = last
} else if (state.selectedDuration === '6 Months') {
range = '6M'
const last = new Date(now)
last.setMonth(now.getMonth() - 6)
fromDate = last
} else if (state.selectedDuration === 'Year to Date') {
range = 'YTD'
fromDate = new Date(now.getFullYear(), 0, 1)
} else if (state.selectedDuration === '1 Year') {
range = '1Y'
const last = new Date(now)
last.setFullYear(now.getFullYear() - 1)
fromDate = last
} else if (state.selectedDuration === '5 Years') {
range = '5Y'
const last = new Date(now)
last.setFullYear(now.getFullYear() - 5)
fromDate = last
} else if (state.selectedDuration === '10 Years') {
range = '10Y'
const last = new Date(now)
last.setFullYear(now.getFullYear() - 10)
fromDate = last
} else if (state.selectedDuration === 'Full History') {
range = 'Max'
fromDate = new Date('2009-10-07')
} }
let url = `https://stockanalysis.com/api/symbol/a/OTC-MINM/history?period=${state.selectedPeriod}&range=${range}`; let finalFromDate =
const res = await axios.get(url); fromDate.getFullYear() +
if (res.data.status === 200) { '-' +
String(fromDate.getMonth() + 1).padStart(2, '0') +
'-' +
String(fromDate.getDate()).padStart(2, '0')
// let url = `https://stockanalysis.com/api/symbol/a/OTC-MINM/history?period=${state.selectedPeriod}&range=${range}`
let url =
'https://common.szjixun.cn/api/stock/history/list?from=' +
finalFromDate +
'&to=' +
toDate
const res = await axios.get(url)
// console.error(res)
if (res.status === 200) {
if (res.data.status === 0) {
// "Nov 26, 2024" // "Nov 26, 2024"
let resultData = res.data.data.map((item) => { let resultData = res.data.data.map((item) => {
return { return {
date: new Date(item.t).toLocaleDateString("en-US", { date: new Date(item.date).toLocaleDateString('en-US', {
month: "short", month: 'short',
day: "numeric", day: 'numeric',
year: "numeric", year: 'numeric',
}), }),
open: item.o != null ? Number(item.o).toFixed(2) : "", open: item.open != null ? Number(item.open).toFixed(2) : '',
high: item.h != null ? Number(item.h).toFixed(2) : "", high: item.high != null ? Number(item.high).toFixed(2) : '',
low: item.l != null ? Number(item.l).toFixed(2) : "", low: item.low != null ? Number(item.low).toFixed(2) : '',
close: item.c != null ? Number(item.c).toFixed(2) : "", close: item.close != null ? Number(item.close).toFixed(2) : '',
adjClose: item.a != null ? Number(item.a).toFixed(2) : "", adjClose: item.close != null ? Number(item.close).toFixed(2) : '',
change: item.ch != null ? Number(item.ch).toFixed(2) + "%" : "", change:
volume: item.v, item.changePercent != null
}; ? Number(item.changePercent).toFixed(2) + '%'
}); : '',
state.tableData = resultData; volume: item.volume,
} }
}; })
state.tableData = resultData
}
}
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -70,7 +70,7 @@
<div>May 30, 2025 EDT</div> <div>May 30, 2025 EDT</div>
<div style="font-size: 18px"> <div style="font-size: 18px">
FiEE, Inc. Announces Relisting on Nasdaq FiEE, Inc. Announces Reinitiation of Trading on Nasdaq
</div> </div>
<div <div
@ -109,16 +109,16 @@
$t("HOME.CONTAINY.STOCK_INFO.LAST_PRICE") $t("HOME.CONTAINY.STOCK_INFO.LAST_PRICE")
}}</span> }}</span>
<span style="font-size: 18px" class="data-value" <span style="font-size: 18px" class="data-value"
>${{ stockQuote.open }}</span >${{ stockQuote.price }}</span
> >
</div> </div>
<div class="data-row"> <div class="data-row">
<span style="font-size: 18px" class="data-label">{{ <span style="font-size: 18px" class="data-label">{{
$t("HOME.CONTAINY.STOCK_INFO.CHANGE") $t("HOME.CONTAINY.STOCK_INFO.CHANGE")
}}</span> }}</span>
<span style="font-size: 18px" class="data-value positive" <span style="font-size: 18px" class="data-value positive">{{
>{{ stockQuote.change || "--" }}</span stockQuote.change || "--"
> }}</span>
</div> </div>
<div class="data-row"> <div class="data-row">
<span style="font-size: 18px" class="data-label">{{ <span style="font-size: 18px" class="data-label">{{

View File

@ -70,7 +70,7 @@
<div>May 30, 2025 EDT</div> <div>May 30, 2025 EDT</div>
<div style="font-size: 18px"> <div style="font-size: 18px">
FiEE, Inc. Announces Relisting on Nasdaq FiEE, Inc. Announces Reinitiation of Trading on Nasdaq
</div> </div>
<div <div
@ -106,15 +106,15 @@
<span class="data-label">{{ <span class="data-label">{{
$t("HOME.CONTAINY.STOCK_INFO.LAST_PRICE") $t("HOME.CONTAINY.STOCK_INFO.LAST_PRICE")
}}</span> }}</span>
<span class="data-value">${{ stockQuote.open }}</span> <span class="data-value">${{ stockQuote.price }}</span>
</div> </div>
<div class="data-row"> <div class="data-row">
<span class="data-label">{{ <span class="data-label">{{
$t("HOME.CONTAINY.STOCK_INFO.CHANGE") $t("HOME.CONTAINY.STOCK_INFO.CHANGE")
}}</span> }}</span>
<span class="data-value positive" <span class="data-value positive">{{
>{{ stockQuote.change || "--" }}</span stockQuote.change || "--"
> }}</span>
</div> </div>
<div class="data-row"> <div class="data-row">
<span class="data-label">{{ <span class="data-label">{{

View File

@ -70,7 +70,7 @@
<div>May 30, 2025 EDT</div> <div>May 30, 2025 EDT</div>
<div style="font-size: 18px"> <div style="font-size: 18px">
FiEE, Inc. Announces Relisting on Nasdaq FiEE, Inc. Announces Reinitiation of Trading on Nasdaq
</div> </div>
<div <div
@ -109,16 +109,16 @@
$t("HOME.CONTAINY.STOCK_INFO.LAST_PRICE") $t("HOME.CONTAINY.STOCK_INFO.LAST_PRICE")
}}</span> }}</span>
<span style="font-size: 18px" class="data-value" <span style="font-size: 18px" class="data-value"
>${{ stockQuote.open }}</span >${{ stockQuote.price }}</span
> >
</div> </div>
<div class="data-row"> <div class="data-row">
<span style="font-size: 18px" class="data-label">{{ <span style="font-size: 18px" class="data-label">{{
$t("HOME.CONTAINY.STOCK_INFO.CHANGE") $t("HOME.CONTAINY.STOCK_INFO.CHANGE")
}}</span> }}</span>
<span style="font-size: 18px" class="data-value positive" <span style="font-size: 18px" class="data-value positive">{{
>{{ stockQuote.change || "--" }}</span stockQuote.change || "--"
> }}</span>
</div> </div>
<div class="data-row"> <div class="data-row">
<span style="font-size: 18px" class="data-label">{{ <span style="font-size: 18px" class="data-label">{{

View File

@ -70,7 +70,7 @@
<div>May 30, 2025 EDT</div> <div>May 30, 2025 EDT</div>
<div style="font-size: 18px"> <div style="font-size: 18px">
FiEE, Inc. Announces Relisting on Nasdaq FiEE, Inc. Announces Reinitiation of Trading on Nasdaq
</div> </div>
<div <div
style="font-size: 18px" style="font-size: 18px"
@ -108,16 +108,16 @@
$t("HOME.CONTAINY.STOCK_INFO.LAST_PRICE") $t("HOME.CONTAINY.STOCK_INFO.LAST_PRICE")
}}</span> }}</span>
<span style="font-size: 18px" class="data-value" <span style="font-size: 18px" class="data-value"
>${{ stockQuote.open }}</span >${{ stockQuote.price }}</span
> >
</div> </div>
<div class="data-row"> <div class="data-row">
<span style="font-size: 18px" class="data-label">{{ <span style="font-size: 18px" class="data-label">{{
$t("HOME.CONTAINY.STOCK_INFO.CHANGE") $t("HOME.CONTAINY.STOCK_INFO.CHANGE")
}}</span> }}</span>
<span style="font-size: 18px" class="data-value positive" <span style="font-size: 18px" class="data-value positive">{{
>{{ stockQuote.change || "--" }}</span stockQuote.change || "--"
> }}</span>
</div> </div>
<div class="data-row"> <div class="data-row">
<span style="font-size: 18px" class="data-label">{{ <span style="font-size: 18px" class="data-label">{{

View File

@ -1,28 +1,28 @@
<template> <template>
<div class="page-container"> <div class="page-container">
<p style="font-size: 24px"> <h2>
<strong>FiEE, Inc. Announces Relisting on Nasdaq</strong> <strong>FiEE, Inc. Announces Reinitiation of Trading on Nasdaq</strong>
</p> </h2>
<p>May 30, 2025</p> <p>May 30, 2025</p>
<p> <p><em>Company will resume trading under its existing symbol MINM</em></p>
<em>Company will resume trading under its existing symbols MINM </em>
</p>
<p> <p>
<strong>Hong Kong, May 30, 2025 </strong> FiEE, Inc. (FiEE, Inc. or the <strong>Hong Kong, May 30, 2025 </strong> FiEE, Inc. (FiEE, Inc. or the
Company), a technology company integrating IoT, connectivity and AI to Company), a technology company integrating IoT, connectivity and AI to
redefine brand management solutions in the digital era, is pleased to redefine brand management solutions in the digital era, is pleased to
announce that The Nasdaq Stock Market LLC (Nasdaq) has approved its announce that following a hearing before the Nasdaq Hearings Panel (the
application for the relisting of the Companys ordinary shares. Trading is Panel) on May 13, 2025, the Panel issued a decision on May 29, 2025,
expected to commence on Nasdaq at the opening of trading on Monday, 2 stating that Nasdaq will reinstate trading of the Companys common stock
June, 2025 under the ticker symbol MINM. on the Nasdaq Capital Market at the open of business on Monday, June 2,
2025 under the ticker symbol MINM.
</p> </p>
<p> <p>
<strong>Rafael Li, Chief Executive Officer of FiEE,</strong> commented, <strong>Rafael Li, Chief Executive Officer of FiEE, </strong>commented,
"We are honored to announce our successful relisting on Nasdaq, a "We are honored to announce the reinitiation of trading of our common
significant milestone that reflects our unwavering commitment to stock on Nasdaq, a significant milestone that reflects our unwavering
operational excellence and strategic growth. We extend our sincere commitment to operational excellence and strategic growth. We extend our
gratitude to the Nasdaq team for their prompt review and approval of our sincere gratitude to the Nasdaq team for their prompt review and approval
application, affirming our compliance with all initial listing criteria. of our request, affirming our compliance with all applicable criteria for
continued listing on the Nasdaq Capital Market.
</p> </p>
<p> <p>
FiEE, Inc. is currently undergoing a strategic transformation aimed at FiEE, Inc. is currently undergoing a strategic transformation aimed at
@ -31,19 +31,19 @@
with AI-driven content creation and audience targeting. This synergy is with AI-driven content creation and audience targeting. This synergy is
designed to empower Key Opinion Leaders (KOLs) and brands to achieve designed to empower Key Opinion Leaders (KOLs) and brands to achieve
accelerated growth and deeper audience engagement. Leveraging accelerated growth and deeper audience engagement. Leveraging
IoT-connectivity solutions, AI and big data analytics, we are capable to IoT-connectivity solutions, AI and big data analytics, we are capable of
deliver intelligent, multimedia and multilingual contents tailored to delivering intelligent, multimedia and multilingual content tailored to
diverse audiences. Coupling with AI targeting analysis, we enhance diverse audiences. Coupling with AI targeting analysis, we enhance
audience targeting capabilities, ensuring effective content placement and audience targeting capabilities, ensuring effective content placement and
personalized promotions. personalized promotions.
</p> </p>
<p> <p>
As we advance, our focus remains on continuous innovation and strategic As we advance, our focus remains on continuous innovation and strategic
initiatives that drive long-term growth and shareholder value. initiatives that drive long- term growth and shareholder value.
</p> </p>
<p><strong>About FiEE, Inc.</strong></p> <h3>About FiEE, Inc.</h3>
<p> <p>
FiEE, Inc., (NASDAQ: MINM), formerly Minim, Inc., was founded in 1977. It FiEE, Inc. (NASDAQ: MINM), formerly Minim, Inc., was founded in 1977. It
has a historical track record of delivering comprehensive WiFi/Software as has a historical track record of delivering comprehensive WiFi/Software as
a Service platform in the market. After years of development, it made the a Service platform in the market. After years of development, it made the
strategic decision to transition to a Software First Model in 2023 to strategic decision to transition to a Software First Model in 2023 to
@ -65,35 +65,40 @@
include customized graphics and posts, short videos, and editorial include customized graphics and posts, short videos, and editorial
calendars tailored to align with brand objectives. calendars tailored to align with brand objectives.
</p> </p>
<h3>Forward-Looking Statements</h3>
<p> <p>
<strong>Forward-Looking Statements</strong><br />This communication This communication contains forward-looking statements which include, but
contains forward-looking statements which include, but are not limited to, are not limited to, statements regarding the Companys listing of its
statements regarding the Companys listing of its ordinary shares on common stock on Nasdaq; the impact of the listing; the Companys business
Nasdaq; the impact of the listing; the Companys business strategy, strategy, including its strategic transformation; and the Companys
including its strategic transformation; and the Companys ability to drive ability to drive long-term growth and shareholder value. These
long-term growth and shareholder value. These forward-looking statements forward-looking statements are subject to the safe harbor provisions under
are subject to the safe harbor provisions under the Private Securities the Private Securities Litigation Reform Act of 1995. The Companys
Litigation Reform Act of 1995. The Companys expectations and beliefs expectations and beliefs regarding these matters may not materialize.
regarding these matters may not materialize. Actual outcomes and results Actual outcomes and results may differ materially from those contemplated
may differ materially from those contemplated by these forward-looking by these forward-looking statements as a result of uncertainties, risks,
statements as a result of uncertainties, risks, and changes in and changes in circumstances, including but not limited to risks and
circumstances, including but not limited to risks and uncertainties uncertainties related to: the ability of the Company to maintain
related to: the ability of the Company to maintain compliance with the compliance with the Nasdaq continued listing standards; the impact of
Nasdaq continued listing standards; the impact of fluctuations in global fluctuations in global financial markets on the Companys business and the
financial markets on the Companys business and the actions it may take in actions it may take in response thereto; the Companys ability to execute
response thereto; the Companys ability to execute its plans and its plans and strategies; and the impact of government laws and
strategies; and the impact of government laws and regulations. Additional regulations. Additional risks and uncertainties that could cause actual
risks and uncertainties that could cause actual outcomes and results to outcomes and results to differ materially from those contemplated by the
differ materially from those contemplated by the forward-looking forward- looking statements are included under the caption Risk Factors
statements are included under the caption Risk Factors in the Companys in the Companys Quarterly Report on Form 10-Q for the quarter ended March
Quarterly Report on Form 10-Q for the quarter ended March 31, 2025 and 31, 2025 and elsewhere in the Companys subsequent reports on Form 10-K,
elsewhere in the Companys subsequent reports on Form 10-K, Form 10-Q or Form 10-Q or Form 8-K filed with the U.S. Securities and Exchange
Form 8-K filed with the U.S. Securities and Exchange Commission from time Commission from time to time and available at
to time and available at www.sec.gov. <a href="http://www.sec.gov/">www.sec.gov.</a>
</p>
<p>
<div> <strong>Media </strong
>
</div>
<a href="mailto:fiee@dlkadvisory.com">fiee@dlkadvisory.com</a>
<div> Source: FiEE, Inc.</div>
</p> </p>
<p><strong>Media</strong></p>
<p><a href="mailto:fiee@dlkadvisory.com">fiee@dlkadvisory.com</a></p>
<p>Source: FiEE, Inc.</p>
</div> </div>
</template> </template>

View File

@ -1,28 +1,28 @@
<template> <template>
<div class="page-container"> <div class="page-container">
<p style="font-size: 24px"> <h2>
<strong>FiEE, Inc. Announces Relisting on Nasdaq</strong> <strong>FiEE, Inc. Announces Reinitiation of Trading on Nasdaq</strong>
</p> </h2>
<p>May 30, 2025</p> <p>May 30, 2025</p>
<p> <p><em>Company will resume trading under its existing symbol MINM</em></p>
<em>Company will resume trading under its existing symbols MINM </em>
</p>
<p> <p>
<strong>Hong Kong, May 30, 2025 </strong> FiEE, Inc. (FiEE, Inc. or the <strong>Hong Kong, May 30, 2025 </strong> FiEE, Inc. (FiEE, Inc. or the
Company), a technology company integrating IoT, connectivity and AI to Company), a technology company integrating IoT, connectivity and AI to
redefine brand management solutions in the digital era, is pleased to redefine brand management solutions in the digital era, is pleased to
announce that The Nasdaq Stock Market LLC (Nasdaq) has approved its announce that following a hearing before the Nasdaq Hearings Panel (the
application for the relisting of the Companys ordinary shares. Trading is Panel) on May 13, 2025, the Panel issued a decision on May 29, 2025,
expected to commence on Nasdaq at the opening of trading on Monday, 2 stating that Nasdaq will reinstate trading of the Companys common stock
June, 2025 under the ticker symbol MINM. on the Nasdaq Capital Market at the open of business on Monday, June 2,
2025 under the ticker symbol MINM.
</p> </p>
<p> <p>
<strong>Rafael Li, Chief Executive Officer of FiEE,</strong> commented, <strong>Rafael Li, Chief Executive Officer of FiEE, </strong>commented,
"We are honored to announce our successful relisting on Nasdaq, a "We are honored to announce the reinitiation of trading of our common
significant milestone that reflects our unwavering commitment to stock on Nasdaq, a significant milestone that reflects our unwavering
operational excellence and strategic growth. We extend our sincere commitment to operational excellence and strategic growth. We extend our
gratitude to the Nasdaq team for their prompt review and approval of our sincere gratitude to the Nasdaq team for their prompt review and approval
application, affirming our compliance with all initial listing criteria. of our request, affirming our compliance with all applicable criteria for
continued listing on the Nasdaq Capital Market.
</p> </p>
<p> <p>
FiEE, Inc. is currently undergoing a strategic transformation aimed at FiEE, Inc. is currently undergoing a strategic transformation aimed at
@ -31,19 +31,19 @@
with AI-driven content creation and audience targeting. This synergy is with AI-driven content creation and audience targeting. This synergy is
designed to empower Key Opinion Leaders (KOLs) and brands to achieve designed to empower Key Opinion Leaders (KOLs) and brands to achieve
accelerated growth and deeper audience engagement. Leveraging accelerated growth and deeper audience engagement. Leveraging
IoT-connectivity solutions, AI and big data analytics, we are capable to IoT-connectivity solutions, AI and big data analytics, we are capable of
deliver intelligent, multimedia and multilingual contents tailored to delivering intelligent, multimedia and multilingual content tailored to
diverse audiences. Coupling with AI targeting analysis, we enhance diverse audiences. Coupling with AI targeting analysis, we enhance
audience targeting capabilities, ensuring effective content placement and audience targeting capabilities, ensuring effective content placement and
personalized promotions. personalized promotions.
</p> </p>
<p> <p>
As we advance, our focus remains on continuous innovation and strategic As we advance, our focus remains on continuous innovation and strategic
initiatives that drive long-term growth and shareholder value. initiatives that drive long- term growth and shareholder value.
</p> </p>
<p><strong>About FiEE, Inc.</strong></p> <h3>About FiEE, Inc.</h3>
<p> <p>
FiEE, Inc., (NASDAQ: MINM), formerly Minim, Inc., was founded in 1977. It FiEE, Inc. (NASDAQ: MINM), formerly Minim, Inc., was founded in 1977. It
has a historical track record of delivering comprehensive WiFi/Software as has a historical track record of delivering comprehensive WiFi/Software as
a Service platform in the market. After years of development, it made the a Service platform in the market. After years of development, it made the
strategic decision to transition to a Software First Model in 2023 to strategic decision to transition to a Software First Model in 2023 to
@ -65,35 +65,40 @@
include customized graphics and posts, short videos, and editorial include customized graphics and posts, short videos, and editorial
calendars tailored to align with brand objectives. calendars tailored to align with brand objectives.
</p> </p>
<h3>Forward-Looking Statements</h3>
<p> <p>
<strong>Forward-Looking Statements</strong><br />This communication This communication contains forward-looking statements which include, but
contains forward-looking statements which include, but are not limited to, are not limited to, statements regarding the Companys listing of its
statements regarding the Companys listing of its ordinary shares on common stock on Nasdaq; the impact of the listing; the Companys business
Nasdaq; the impact of the listing; the Companys business strategy, strategy, including its strategic transformation; and the Companys
including its strategic transformation; and the Companys ability to drive ability to drive long-term growth and shareholder value. These
long-term growth and shareholder value. These forward-looking statements forward-looking statements are subject to the safe harbor provisions under
are subject to the safe harbor provisions under the Private Securities the Private Securities Litigation Reform Act of 1995. The Companys
Litigation Reform Act of 1995. The Companys expectations and beliefs expectations and beliefs regarding these matters may not materialize.
regarding these matters may not materialize. Actual outcomes and results Actual outcomes and results may differ materially from those contemplated
may differ materially from those contemplated by these forward-looking by these forward-looking statements as a result of uncertainties, risks,
statements as a result of uncertainties, risks, and changes in and changes in circumstances, including but not limited to risks and
circumstances, including but not limited to risks and uncertainties uncertainties related to: the ability of the Company to maintain
related to: the ability of the Company to maintain compliance with the compliance with the Nasdaq continued listing standards; the impact of
Nasdaq continued listing standards; the impact of fluctuations in global fluctuations in global financial markets on the Companys business and the
financial markets on the Companys business and the actions it may take in actions it may take in response thereto; the Companys ability to execute
response thereto; the Companys ability to execute its plans and its plans and strategies; and the impact of government laws and
strategies; and the impact of government laws and regulations. Additional regulations. Additional risks and uncertainties that could cause actual
risks and uncertainties that could cause actual outcomes and results to outcomes and results to differ materially from those contemplated by the
differ materially from those contemplated by the forward-looking forward- looking statements are included under the caption Risk Factors
statements are included under the caption Risk Factors in the Companys in the Companys Quarterly Report on Form 10-Q for the quarter ended March
Quarterly Report on Form 10-Q for the quarter ended March 31, 2025 and 31, 2025 and elsewhere in the Companys subsequent reports on Form 10-K,
elsewhere in the Companys subsequent reports on Form 10-K, Form 10-Q or Form 10-Q or Form 8-K filed with the U.S. Securities and Exchange
Form 8-K filed with the U.S. Securities and Exchange Commission from time Commission from time to time and available at
to time and available at www.sec.gov. <a href="http://www.sec.gov/">www.sec.gov.</a>
</p>
<p>
<div> <strong>Media </strong
>
</div>
<a href="mailto:fiee@dlkadvisory.com">fiee@dlkadvisory.com</a>
<div> Source: FiEE, Inc.</div>
</p> </p>
<p><strong>Media</strong></p>
<p><a href="mailto:fiee@dlkadvisory.com">fiee@dlkadvisory.com</a></p>
<p>Source: FiEE, Inc.</p>
</div> </div>
</template> </template>

View File

@ -1,28 +1,28 @@
<template> <template>
<div class="page-container"> <div class="page-container">
<p style="font-size: 24px"> <h2>
<strong>FiEE, Inc. Announces Relisting on Nasdaq</strong> <strong>FiEE, Inc. Announces Reinitiation of Trading on Nasdaq</strong>
</p> </h2>
<p>May 30, 2025</p> <p>May 30, 2025</p>
<p> <p><em>Company will resume trading under its existing symbol MINM</em></p>
<em>Company will resume trading under its existing symbols MINM </em>
</p>
<p> <p>
<strong>Hong Kong, May 30, 2025 </strong> FiEE, Inc. (FiEE, Inc. or the <strong>Hong Kong, May 30, 2025 </strong> FiEE, Inc. (FiEE, Inc. or the
Company), a technology company integrating IoT, connectivity and AI to Company), a technology company integrating IoT, connectivity and AI to
redefine brand management solutions in the digital era, is pleased to redefine brand management solutions in the digital era, is pleased to
announce that The Nasdaq Stock Market LLC (Nasdaq) has approved its announce that following a hearing before the Nasdaq Hearings Panel (the
application for the relisting of the Companys ordinary shares. Trading is Panel) on May 13, 2025, the Panel issued a decision on May 29, 2025,
expected to commence on Nasdaq at the opening of trading on Monday, 2 stating that Nasdaq will reinstate trading of the Companys common stock
June, 2025 under the ticker symbol MINM. on the Nasdaq Capital Market at the open of business on Monday, June 2,
2025 under the ticker symbol MINM.
</p> </p>
<p> <p>
<strong>Rafael Li, Chief Executive Officer of FiEE,</strong> commented, <strong>Rafael Li, Chief Executive Officer of FiEE, </strong>commented,
"We are honored to announce our successful relisting on Nasdaq, a "We are honored to announce the reinitiation of trading of our common
significant milestone that reflects our unwavering commitment to stock on Nasdaq, a significant milestone that reflects our unwavering
operational excellence and strategic growth. We extend our sincere commitment to operational excellence and strategic growth. We extend our
gratitude to the Nasdaq team for their prompt review and approval of our sincere gratitude to the Nasdaq team for their prompt review and approval
application, affirming our compliance with all initial listing criteria. of our request, affirming our compliance with all applicable criteria for
continued listing on the Nasdaq Capital Market.
</p> </p>
<p> <p>
FiEE, Inc. is currently undergoing a strategic transformation aimed at FiEE, Inc. is currently undergoing a strategic transformation aimed at
@ -31,19 +31,19 @@
with AI-driven content creation and audience targeting. This synergy is with AI-driven content creation and audience targeting. This synergy is
designed to empower Key Opinion Leaders (KOLs) and brands to achieve designed to empower Key Opinion Leaders (KOLs) and brands to achieve
accelerated growth and deeper audience engagement. Leveraging accelerated growth and deeper audience engagement. Leveraging
IoT-connectivity solutions, AI and big data analytics, we are capable to IoT-connectivity solutions, AI and big data analytics, we are capable of
deliver intelligent, multimedia and multilingual contents tailored to delivering intelligent, multimedia and multilingual content tailored to
diverse audiences. Coupling with AI targeting analysis, we enhance diverse audiences. Coupling with AI targeting analysis, we enhance
audience targeting capabilities, ensuring effective content placement and audience targeting capabilities, ensuring effective content placement and
personalized promotions. personalized promotions.
</p> </p>
<p> <p>
As we advance, our focus remains on continuous innovation and strategic As we advance, our focus remains on continuous innovation and strategic
initiatives that drive long-term growth and shareholder value. initiatives that drive long- term growth and shareholder value.
</p> </p>
<p><strong>About FiEE, Inc.</strong></p> <h3>About FiEE, Inc.</h3>
<p> <p>
FiEE, Inc., (NASDAQ: MINM), formerly Minim, Inc., was founded in 1977. It FiEE, Inc. (NASDAQ: MINM), formerly Minim, Inc., was founded in 1977. It
has a historical track record of delivering comprehensive WiFi/Software as has a historical track record of delivering comprehensive WiFi/Software as
a Service platform in the market. After years of development, it made the a Service platform in the market. After years of development, it made the
strategic decision to transition to a Software First Model in 2023 to strategic decision to transition to a Software First Model in 2023 to
@ -65,35 +65,40 @@
include customized graphics and posts, short videos, and editorial include customized graphics and posts, short videos, and editorial
calendars tailored to align with brand objectives. calendars tailored to align with brand objectives.
</p> </p>
<h3>Forward-Looking Statements</h3>
<p> <p>
<strong>Forward-Looking Statements</strong><br />This communication This communication contains forward-looking statements which include, but
contains forward-looking statements which include, but are not limited to, are not limited to, statements regarding the Companys listing of its
statements regarding the Companys listing of its ordinary shares on common stock on Nasdaq; the impact of the listing; the Companys business
Nasdaq; the impact of the listing; the Companys business strategy, strategy, including its strategic transformation; and the Companys
including its strategic transformation; and the Companys ability to drive ability to drive long-term growth and shareholder value. These
long-term growth and shareholder value. These forward-looking statements forward-looking statements are subject to the safe harbor provisions under
are subject to the safe harbor provisions under the Private Securities the Private Securities Litigation Reform Act of 1995. The Companys
Litigation Reform Act of 1995. The Companys expectations and beliefs expectations and beliefs regarding these matters may not materialize.
regarding these matters may not materialize. Actual outcomes and results Actual outcomes and results may differ materially from those contemplated
may differ materially from those contemplated by these forward-looking by these forward-looking statements as a result of uncertainties, risks,
statements as a result of uncertainties, risks, and changes in and changes in circumstances, including but not limited to risks and
circumstances, including but not limited to risks and uncertainties uncertainties related to: the ability of the Company to maintain
related to: the ability of the Company to maintain compliance with the compliance with the Nasdaq continued listing standards; the impact of
Nasdaq continued listing standards; the impact of fluctuations in global fluctuations in global financial markets on the Companys business and the
financial markets on the Companys business and the actions it may take in actions it may take in response thereto; the Companys ability to execute
response thereto; the Companys ability to execute its plans and its plans and strategies; and the impact of government laws and
strategies; and the impact of government laws and regulations. Additional regulations. Additional risks and uncertainties that could cause actual
risks and uncertainties that could cause actual outcomes and results to outcomes and results to differ materially from those contemplated by the
differ materially from those contemplated by the forward-looking forward- looking statements are included under the caption Risk Factors
statements are included under the caption Risk Factors in the Companys in the Companys Quarterly Report on Form 10-Q for the quarter ended March
Quarterly Report on Form 10-Q for the quarter ended March 31, 2025 and 31, 2025 and elsewhere in the Companys subsequent reports on Form 10-K,
elsewhere in the Companys subsequent reports on Form 10-K, Form 10-Q or Form 10-Q or Form 8-K filed with the U.S. Securities and Exchange
Form 8-K filed with the U.S. Securities and Exchange Commission from time Commission from time to time and available at
to time and available at www.sec.gov. <a href="http://www.sec.gov/">www.sec.gov.</a>
</p>
<p>
<div> <strong>Media </strong
>
</div>
<a href="mailto:fiee@dlkadvisory.com">fiee@dlkadvisory.com</a>
<div> Source: FiEE, Inc.</div>
</p> </p>
<p><strong>Media</strong></p>
<p><a href="mailto:fiee@dlkadvisory.com">fiee@dlkadvisory.com</a></p>
<p>Source: FiEE, Inc.</p>
</div> </div>
</template> </template>
@ -109,8 +114,8 @@ const state = reactive({});
<style scoped lang="scss"> <style scoped lang="scss">
.page-container { .page-container {
max-width: 1200px; max-width: calc(100% - 300px);
margin: 0 auto; margin: 0 auto;
padding: 40px; padding: 20px;
} }
</style> </style>

View File

@ -1,28 +1,28 @@
<template> <template>
<div class="page-container"> <div class="page-container">
<p style="font-size: 24px"> <h2>
<strong>FiEE, Inc. Announces Relisting on Nasdaq</strong> <strong>FiEE, Inc. Announces Reinitiation of Trading on Nasdaq</strong>
</p> </h2>
<p>May 30, 2025</p> <p>May 30, 2025</p>
<p> <p><em>Company will resume trading under its existing symbol MINM</em></p>
<em>Company will resume trading under its existing symbols MINM </em>
</p>
<p> <p>
<strong>Hong Kong, May 30, 2025 </strong> FiEE, Inc. (FiEE, Inc. or the <strong>Hong Kong, May 30, 2025 </strong> FiEE, Inc. (FiEE, Inc. or the
Company), a technology company integrating IoT, connectivity and AI to Company), a technology company integrating IoT, connectivity and AI to
redefine brand management solutions in the digital era, is pleased to redefine brand management solutions in the digital era, is pleased to
announce that The Nasdaq Stock Market LLC (Nasdaq) has approved its announce that following a hearing before the Nasdaq Hearings Panel (the
application for the relisting of the Companys ordinary shares. Trading is Panel) on May 13, 2025, the Panel issued a decision on May 29, 2025,
expected to commence on Nasdaq at the opening of trading on Monday, 2 stating that Nasdaq will reinstate trading of the Companys common stock
June, 2025 under the ticker symbol MINM. on the Nasdaq Capital Market at the open of business on Monday, June 2,
2025 under the ticker symbol MINM.
</p> </p>
<p> <p>
<strong>Rafael Li, Chief Executive Officer of FiEE,</strong> commented, <strong>Rafael Li, Chief Executive Officer of FiEE, </strong>commented,
"We are honored to announce our successful relisting on Nasdaq, a "We are honored to announce the reinitiation of trading of our common
significant milestone that reflects our unwavering commitment to stock on Nasdaq, a significant milestone that reflects our unwavering
operational excellence and strategic growth. We extend our sincere commitment to operational excellence and strategic growth. We extend our
gratitude to the Nasdaq team for their prompt review and approval of our sincere gratitude to the Nasdaq team for their prompt review and approval
application, affirming our compliance with all initial listing criteria. of our request, affirming our compliance with all applicable criteria for
continued listing on the Nasdaq Capital Market.
</p> </p>
<p> <p>
FiEE, Inc. is currently undergoing a strategic transformation aimed at FiEE, Inc. is currently undergoing a strategic transformation aimed at
@ -31,19 +31,19 @@
with AI-driven content creation and audience targeting. This synergy is with AI-driven content creation and audience targeting. This synergy is
designed to empower Key Opinion Leaders (KOLs) and brands to achieve designed to empower Key Opinion Leaders (KOLs) and brands to achieve
accelerated growth and deeper audience engagement. Leveraging accelerated growth and deeper audience engagement. Leveraging
IoT-connectivity solutions, AI and big data analytics, we are capable to IoT-connectivity solutions, AI and big data analytics, we are capable of
deliver intelligent, multimedia and multilingual contents tailored to delivering intelligent, multimedia and multilingual content tailored to
diverse audiences. Coupling with AI targeting analysis, we enhance diverse audiences. Coupling with AI targeting analysis, we enhance
audience targeting capabilities, ensuring effective content placement and audience targeting capabilities, ensuring effective content placement and
personalized promotions. personalized promotions.
</p> </p>
<p> <p>
As we advance, our focus remains on continuous innovation and strategic As we advance, our focus remains on continuous innovation and strategic
initiatives that drive long-term growth and shareholder value. initiatives that drive long- term growth and shareholder value.
</p> </p>
<p><strong>About FiEE, Inc.</strong></p> <h3>About FiEE, Inc.</h3>
<p> <p>
FiEE, Inc., (NASDAQ: MINM), formerly Minim, Inc., was founded in 1977. It FiEE, Inc. (NASDAQ: MINM), formerly Minim, Inc., was founded in 1977. It
has a historical track record of delivering comprehensive WiFi/Software as has a historical track record of delivering comprehensive WiFi/Software as
a Service platform in the market. After years of development, it made the a Service platform in the market. After years of development, it made the
strategic decision to transition to a Software First Model in 2023 to strategic decision to transition to a Software First Model in 2023 to
@ -65,35 +65,40 @@
include customized graphics and posts, short videos, and editorial include customized graphics and posts, short videos, and editorial
calendars tailored to align with brand objectives. calendars tailored to align with brand objectives.
</p> </p>
<h3>Forward-Looking Statements</h3>
<p> <p>
<strong>Forward-Looking Statements</strong><br />This communication This communication contains forward-looking statements which include, but
contains forward-looking statements which include, but are not limited to, are not limited to, statements regarding the Companys listing of its
statements regarding the Companys listing of its ordinary shares on common stock on Nasdaq; the impact of the listing; the Companys business
Nasdaq; the impact of the listing; the Companys business strategy, strategy, including its strategic transformation; and the Companys
including its strategic transformation; and the Companys ability to drive ability to drive long-term growth and shareholder value. These
long-term growth and shareholder value. These forward-looking statements forward-looking statements are subject to the safe harbor provisions under
are subject to the safe harbor provisions under the Private Securities the Private Securities Litigation Reform Act of 1995. The Companys
Litigation Reform Act of 1995. The Companys expectations and beliefs expectations and beliefs regarding these matters may not materialize.
regarding these matters may not materialize. Actual outcomes and results Actual outcomes and results may differ materially from those contemplated
may differ materially from those contemplated by these forward-looking by these forward-looking statements as a result of uncertainties, risks,
statements as a result of uncertainties, risks, and changes in and changes in circumstances, including but not limited to risks and
circumstances, including but not limited to risks and uncertainties uncertainties related to: the ability of the Company to maintain
related to: the ability of the Company to maintain compliance with the compliance with the Nasdaq continued listing standards; the impact of
Nasdaq continued listing standards; the impact of fluctuations in global fluctuations in global financial markets on the Companys business and the
financial markets on the Companys business and the actions it may take in actions it may take in response thereto; the Companys ability to execute
response thereto; the Companys ability to execute its plans and its plans and strategies; and the impact of government laws and
strategies; and the impact of government laws and regulations. Additional regulations. Additional risks and uncertainties that could cause actual
risks and uncertainties that could cause actual outcomes and results to outcomes and results to differ materially from those contemplated by the
differ materially from those contemplated by the forward-looking forward- looking statements are included under the caption Risk Factors
statements are included under the caption Risk Factors in the Companys in the Companys Quarterly Report on Form 10-Q for the quarter ended March
Quarterly Report on Form 10-Q for the quarter ended March 31, 2025 and 31, 2025 and elsewhere in the Companys subsequent reports on Form 10-K,
elsewhere in the Companys subsequent reports on Form 10-K, Form 10-Q or Form 10-Q or Form 8-K filed with the U.S. Securities and Exchange
Form 8-K filed with the U.S. Securities and Exchange Commission from time Commission from time to time and available at
to time and available at www.sec.gov. <a href="http://www.sec.gov/">www.sec.gov.</a>
</p>
<p>
<div> <strong>Media </strong
>
</div>
<a href="mailto:fiee@dlkadvisory.com">fiee@dlkadvisory.com</a>
<div> Source: FiEE, Inc.</div>
</p> </p>
<p><strong>Media</strong></p>
<p><a href="mailto:fiee@dlkadvisory.com">fiee@dlkadvisory.com</a></p>
<p>Source: FiEE, Inc.</p>
</div> </div>
</template> </template>
@ -109,8 +114,8 @@ const state = reactive({});
<style scoped lang="scss"> <style scoped lang="scss">
.page-container { .page-container {
max-width: 1200px; max-width: calc(100% - 300px);
margin: 0 auto; margin: 0 auto;
padding: 40px; padding: 20px;
} }
</style> </style>

View File

@ -72,9 +72,9 @@ const state = reactive({
newsData: [ newsData: [
{ {
date: "May 30, 2025", date: "May 30, 2025",
title: "FiEE, Inc. Announces Relisting on Nasdaq", title: "FiEE, Inc. Announces Reinitiation of Trading on Nasdaq",
content: content:
'Hong Kong, May 30, 2025 — FiEE, Inc. ("FiEE, Inc." or the "Company"), a technology company integrating IoT, connectivity and AI to redefine brand management solutions...', "Hong Kong, May 30, 2025 — FiEE, Inc. (“FiEE, Inc.” or the “Company”), a technology company integrating IoT, connectivity and AI to redefine brand management solutions...",
}, },
], ],
filterNewsData: [], filterNewsData: [],

View File

@ -72,9 +72,9 @@ const state = reactive({
newsData: [ newsData: [
{ {
date: "May 30, 2025", date: "May 30, 2025",
title: "FiEE, Inc. Announces Relisting on Nasdaq", title: "FiEE, Inc. Announces Reinitiation of Trading on Nasdaq",
content: content:
'Hong Kong, May 30, 2025 — FiEE, Inc. ("FiEE, Inc." or the "Company"), a technology company integrating IoT, connectivity and AI to redefine brand management solutions...', "Hong Kong, May 30, 2025 — FiEE, Inc. (“FiEE, Inc.” or the “Company”), a technology company integrating IoT, connectivity and AI to redefine brand management solutions...",
}, },
], ],
filterNewsData: [], filterNewsData: [],

View File

@ -76,9 +76,9 @@ const state = reactive({
newsData: [ newsData: [
{ {
date: "May 30, 2025", date: "May 30, 2025",
title: "FiEE, Inc. Announces Relisting on Nasdaq", title: "FiEE, Inc. Announces Reinitiation of Trading on Nasdaq",
content: content:
'Hong Kong, May 30, 2025 — FiEE, Inc. ("FiEE, Inc." or the "Company"), a technology company integrating IoT, connectivity and AI to redefine brand management solutions...', "Hong Kong, May 30, 2025 — FiEE, Inc. (“FiEE, Inc.” or the “Company”), a technology company integrating IoT, connectivity and AI to redefine brand management solutions...",
}, },
], ],
filterNewsData: [], filterNewsData: [],

View File

@ -72,9 +72,9 @@ const state = reactive({
newsData: [ newsData: [
{ {
date: "May 30, 2025", date: "May 30, 2025",
title: "FiEE, Inc. Announces Relisting on Nasdaq", title: "FiEE, Inc. Announces Reinitiation of Trading on Nasdaq",
content: content:
'Hong Kong, May 30, 2025 — FiEE, Inc. ("FiEE, Inc." or the "Company"), a technology company integrating IoT, connectivity and AI to redefine brand management solutions...', "Hong Kong, May 30, 2025 — FiEE, Inc. (“FiEE, Inc.” or the “Company”), a technology company integrating IoT, connectivity and AI to redefine brand management solutions...",
}, },
], ],
filterNewsData: [], filterNewsData: [],