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: {
STOCK_INFO: {
TITLE: "Stock Information",
LAST_PRICE: "Last Price",
LAST_PRICE: "Price",
CHANGE: "% Change",
STOCK_CODE: "Stock Code",
VOLUME: "Volume",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -72,9 +72,9 @@ const state = reactive({
newsData: [
{
date: "May 30, 2025",
title: "FiEE, Inc. Announces Relisting on Nasdaq",
title: "FiEE, Inc. Announces Reinitiation of Trading on Nasdaq",
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: [],

View File

@ -72,9 +72,9 @@ const state = reactive({
newsData: [
{
date: "May 30, 2025",
title: "FiEE, Inc. Announces Relisting on Nasdaq",
title: "FiEE, Inc. Announces Reinitiation of Trading on Nasdaq",
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: [],

View File

@ -76,9 +76,9 @@ const state = reactive({
newsData: [
{
date: "May 30, 2025",
title: "FiEE, Inc. Announces Relisting on Nasdaq",
title: "FiEE, Inc. Announces Reinitiation of Trading on Nasdaq",
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: [],

View File

@ -72,9 +72,9 @@ const state = reactive({
newsData: [
{
date: "May 30, 2025",
title: "FiEE, Inc. Announces Relisting on Nasdaq",
title: "FiEE, Inc. Announces Reinitiation of Trading on Nasdaq",
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: [],