|
|
|
@ -139,7 +139,7 @@ const cardData = reactive<CardData[]>([
|
|
|
|
{
|
|
|
|
{
|
|
|
|
id: 'visit',
|
|
|
|
id: 'visit',
|
|
|
|
title: '设备总数',
|
|
|
|
title: '设备总数',
|
|
|
|
value: 0,
|
|
|
|
value: 25,
|
|
|
|
unit: '',
|
|
|
|
unit: '',
|
|
|
|
colors: ['#ec4786', '#b955a4'],
|
|
|
|
colors: ['#ec4786', '#b955a4'],
|
|
|
|
icon: 'ant-design:bar-chart-outlined'
|
|
|
|
icon: 'ant-design:bar-chart-outlined'
|
|
|
|
@ -147,7 +147,7 @@ const cardData = reactive<CardData[]>([
|
|
|
|
{
|
|
|
|
{
|
|
|
|
id: 'amount',
|
|
|
|
id: 'amount',
|
|
|
|
title: '运行中',
|
|
|
|
title: '运行中',
|
|
|
|
value: 3,
|
|
|
|
value: 10,
|
|
|
|
unit: '$',
|
|
|
|
unit: '$',
|
|
|
|
colors: ['#865ec0', '#5144b4'],
|
|
|
|
colors: ['#865ec0', '#5144b4'],
|
|
|
|
icon: 'ant-design:money-collect-outlined'
|
|
|
|
icon: 'ant-design:money-collect-outlined'
|
|
|
|
@ -155,7 +155,7 @@ const cardData = reactive<CardData[]>([
|
|
|
|
{
|
|
|
|
{
|
|
|
|
id: 'download',
|
|
|
|
id: 'download',
|
|
|
|
title: '待机',
|
|
|
|
title: '待机',
|
|
|
|
value: 9,
|
|
|
|
value: 15,
|
|
|
|
unit: '',
|
|
|
|
unit: '',
|
|
|
|
colors: ['#a4a1a1', '#494848'],
|
|
|
|
colors: ['#a4a1a1', '#494848'],
|
|
|
|
icon: 'carbon:document-download'
|
|
|
|
icon: 'carbon:document-download'
|
|
|
|
@ -189,6 +189,158 @@ const options = {
|
|
|
|
|
|
|
|
|
|
|
|
const isConnect = false;
|
|
|
|
const isConnect = false;
|
|
|
|
const codes = ref<any>([]);
|
|
|
|
const codes = ref<any>([]);
|
|
|
|
|
|
|
|
const initData = ref<any>([
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
code: 'Kailiao001',
|
|
|
|
|
|
|
|
status: 1,
|
|
|
|
|
|
|
|
startTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
count: 0,
|
|
|
|
|
|
|
|
endTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
process: getRandom(65, 75),
|
|
|
|
|
|
|
|
productModel: productModels[0],
|
|
|
|
|
|
|
|
timerId: undefined,
|
|
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
|
|
pics: getRandom(500, 2000),
|
|
|
|
|
|
|
|
originalCode: '', // 新增字段记录原始编码
|
|
|
|
|
|
|
|
currentModelIndex: 0, // 新增字段用于跟踪当前型号索引
|
|
|
|
|
|
|
|
rate: '0'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
code: 'Kailiao002',
|
|
|
|
|
|
|
|
status: 1,
|
|
|
|
|
|
|
|
startTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
count: 0,
|
|
|
|
|
|
|
|
endTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
process: getRandom(65, 75),
|
|
|
|
|
|
|
|
productModel: productModels[1],
|
|
|
|
|
|
|
|
timerId: undefined,
|
|
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
|
|
pics: getRandom(500, 2000),
|
|
|
|
|
|
|
|
originalCode: '', // 新增字段记录原始编码
|
|
|
|
|
|
|
|
currentModelIndex: 1, // 新增字段用于跟踪当前型号索引
|
|
|
|
|
|
|
|
rate: '0'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
code: 'Kailiao003',
|
|
|
|
|
|
|
|
status: 1,
|
|
|
|
|
|
|
|
startTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
count: 0,
|
|
|
|
|
|
|
|
endTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
process: getRandom(65, 75),
|
|
|
|
|
|
|
|
productModel: productModels[2],
|
|
|
|
|
|
|
|
timerId: undefined,
|
|
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
|
|
pics: getRandom(500, 2000),
|
|
|
|
|
|
|
|
originalCode: '', // 新增字段记录原始编码
|
|
|
|
|
|
|
|
currentModelIndex: 2, // 新增字段用于跟踪当前型号索引
|
|
|
|
|
|
|
|
rate: '0'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
code: 'Kailiao004',
|
|
|
|
|
|
|
|
status: 1,
|
|
|
|
|
|
|
|
startTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
count: 0,
|
|
|
|
|
|
|
|
endTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
process: getRandom(65, 75),
|
|
|
|
|
|
|
|
productModel: productModels[0],
|
|
|
|
|
|
|
|
timerId: undefined,
|
|
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
|
|
pics: getRandom(500, 2000),
|
|
|
|
|
|
|
|
originalCode: '', // 新增字段记录原始编码
|
|
|
|
|
|
|
|
currentModelIndex: 0, // 新增字段用于跟踪当前型号索引
|
|
|
|
|
|
|
|
rate: '0'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
code: 'Kailiao005',
|
|
|
|
|
|
|
|
status: 1,
|
|
|
|
|
|
|
|
startTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
count: 0,
|
|
|
|
|
|
|
|
endTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
process: getRandom(65, 75),
|
|
|
|
|
|
|
|
productModel: productModels[1],
|
|
|
|
|
|
|
|
timerId: undefined,
|
|
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
|
|
pics: getRandom(500, 2000),
|
|
|
|
|
|
|
|
originalCode: '', // 新增字段记录原始编码
|
|
|
|
|
|
|
|
currentModelIndex: 1, // 新增字段用于跟踪当前型号索引
|
|
|
|
|
|
|
|
rate: '0'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
code: 'Kailiao006',
|
|
|
|
|
|
|
|
status: 1,
|
|
|
|
|
|
|
|
startTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
count: 0,
|
|
|
|
|
|
|
|
endTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
process: getRandom(65, 75),
|
|
|
|
|
|
|
|
productModel: productModels[2],
|
|
|
|
|
|
|
|
timerId: undefined,
|
|
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
|
|
pics: getRandom(500, 2000),
|
|
|
|
|
|
|
|
originalCode: '', // 新增字段记录原始编码
|
|
|
|
|
|
|
|
currentModelIndex: 2, // 新增字段用于跟踪当前型号索引
|
|
|
|
|
|
|
|
rate: '0'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
code: 'Kailiao007',
|
|
|
|
|
|
|
|
status: 1,
|
|
|
|
|
|
|
|
startTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
count: 0,
|
|
|
|
|
|
|
|
endTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
process: getRandom(65, 75),
|
|
|
|
|
|
|
|
productModel: productModels[3],
|
|
|
|
|
|
|
|
timerId: undefined,
|
|
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
|
|
pics: getRandom(500, 2000),
|
|
|
|
|
|
|
|
originalCode: '', // 新增字段记录原始编码
|
|
|
|
|
|
|
|
currentModelIndex: 3, // 新增字段用于跟踪当前型号索引
|
|
|
|
|
|
|
|
rate: '0'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
code: 'Kailiao008',
|
|
|
|
|
|
|
|
status: 1,
|
|
|
|
|
|
|
|
startTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
count: 0,
|
|
|
|
|
|
|
|
endTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
process: getRandom(65, 75),
|
|
|
|
|
|
|
|
productModel: productModels[4],
|
|
|
|
|
|
|
|
timerId: undefined,
|
|
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
|
|
pics: getRandom(500, 2000),
|
|
|
|
|
|
|
|
originalCode: '', // 新增字段记录原始编码
|
|
|
|
|
|
|
|
currentModelIndex: 4, // 新增字段用于跟踪当前型号索引
|
|
|
|
|
|
|
|
rate: '0'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
code: 'Kailiao009',
|
|
|
|
|
|
|
|
status: 1,
|
|
|
|
|
|
|
|
startTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
count: 0,
|
|
|
|
|
|
|
|
endTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
process: getRandom(65, 75),
|
|
|
|
|
|
|
|
productModel: productModels[5],
|
|
|
|
|
|
|
|
timerId: undefined,
|
|
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
|
|
pics: getRandom(500, 2000),
|
|
|
|
|
|
|
|
originalCode: '', // 新增字段记录原始编码
|
|
|
|
|
|
|
|
currentModelIndex: 5, // 新增字段用于跟踪当前型号索引
|
|
|
|
|
|
|
|
rate: '0'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
code: 'Kailiao010',
|
|
|
|
|
|
|
|
status: 1,
|
|
|
|
|
|
|
|
startTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
count: 0,
|
|
|
|
|
|
|
|
endTime: '2023-07-01 00:00:00',
|
|
|
|
|
|
|
|
process: getRandom(65, 75),
|
|
|
|
|
|
|
|
productModel: productModels[6],
|
|
|
|
|
|
|
|
timerId: undefined,
|
|
|
|
|
|
|
|
interval: 0,
|
|
|
|
|
|
|
|
pics: getRandom(500, 2000),
|
|
|
|
|
|
|
|
originalCode: '', // 新增字段记录原始编码
|
|
|
|
|
|
|
|
currentModelIndex: 6, // 新增字段用于跟踪当前型号索引
|
|
|
|
|
|
|
|
rate: '0'
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
]);
|
|
|
|
const connectToMQTT = () => {
|
|
|
|
const connectToMQTT = () => {
|
|
|
|
// 连接到 MQTT broker
|
|
|
|
// 连接到 MQTT broker
|
|
|
|
// if (!isConnect) return;
|
|
|
|
// if (!isConnect) return;
|
|
|
|
@ -203,7 +355,6 @@ const connectToMQTT = () => {
|
|
|
|
console.log(`Subscribed to topic: ${topic}`);
|
|
|
|
console.log(`Subscribed to topic: ${topic}`);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// 监听收到的消息
|
|
|
|
// 监听收到的消息
|
|
|
|
@ -292,6 +443,7 @@ function getStatus(status: number) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
async function getList() {
|
|
|
|
async function getList() {
|
|
|
|
|
|
|
|
|
|
|
|
// await getWorkbenchWiredrawingList({ pageSize: 999999 }).then(res => {
|
|
|
|
// await getWorkbenchWiredrawingList({ pageSize: 999999 }).then(res => {
|
|
|
|
// if (res.code === 200) {
|
|
|
|
// if (res.code === 200) {
|
|
|
|
// res.rows.forEach((item, index) => {
|
|
|
|
// res.rows.forEach((item, index) => {
|
|
|
|
@ -303,6 +455,10 @@ async function getList() {
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
|
|
|
|
initData.value.forEach((item, index) => {
|
|
|
|
|
|
|
|
let status = 0;
|
|
|
|
|
|
|
|
deviceEach(item, status);
|
|
|
|
|
|
|
|
});
|
|
|
|
await selectAllWorkbenchEnamellingList({}).then(res => {
|
|
|
|
await selectAllWorkbenchEnamellingList({}).then(res => {
|
|
|
|
if (res.code === 200) {
|
|
|
|
if (res.code === 200) {
|
|
|
|
res.data.forEach(item => {
|
|
|
|
res.data.forEach(item => {
|
|
|
|
@ -310,7 +466,6 @@ async function getList() {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
cardData[0].value = deviceAllList.value.length;
|
|
|
|
|
|
|
|
init();
|
|
|
|
init();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -324,8 +479,13 @@ function deviceEach(item: any, status: number) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (deviceAllList.value.findIndex(ele => ele.code === item.code) !== -1 && codes.value.indexOf(item.code) !== -1) {
|
|
|
|
if (deviceAllList.value.findIndex(ele => ele.code === item.code) !== -1 && codes.value.indexOf(item.code) !== -1) {
|
|
|
|
|
|
|
|
// console.log("item.status", item.status)
|
|
|
|
let device = deviceAllList.value.find(ele => ele.code === item.code)
|
|
|
|
let device = deviceAllList.value.find(ele => ele.code === item.code)
|
|
|
|
|
|
|
|
let pics =localStorage.getItem(`pics_${device?.code}`)
|
|
|
|
|
|
|
|
if(device && pics){
|
|
|
|
|
|
|
|
device.pics = Number(pics) + getRandom(1, 5);
|
|
|
|
|
|
|
|
localStorage.setItem(`pics_${device?.code}`, device.pics.toString());
|
|
|
|
|
|
|
|
}
|
|
|
|
if(device && device.pics){
|
|
|
|
if(device && device.pics){
|
|
|
|
device.status = item.status
|
|
|
|
device.status = item.status
|
|
|
|
if(item.status == 3){
|
|
|
|
if(item.status == 3){
|
|
|
|
@ -373,15 +533,13 @@ function deviceEach(item: any, status: number) {
|
|
|
|
timerId: undefined,
|
|
|
|
timerId: undefined,
|
|
|
|
rate: ''
|
|
|
|
rate: ''
|
|
|
|
});
|
|
|
|
});
|
|
|
|
deviceAllList.value.forEach(item => {
|
|
|
|
|
|
|
|
if (item.code && item.pics) {
|
|
|
|
|
|
|
|
localStorage.setItem(`pics_${item.code}`, item.pics.toString());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
if(item.status == 3){
|
|
|
|
if(item.status == 3){
|
|
|
|
newDevice.status = 3
|
|
|
|
newDevice.status = 3
|
|
|
|
newDevice.pics = 0
|
|
|
|
newDevice.pics = 0
|
|
|
|
newDevice.process = '0'
|
|
|
|
newDevice.process = '0'
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
localStorage.setItem(`pics_${newDevice.code}`, newDevice.pics.toString());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
deviceAllList.value.unshift(newDevice);
|
|
|
|
deviceAllList.value.unshift(newDevice);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -436,7 +594,7 @@ function init() {
|
|
|
|
// let intervalId: number;
|
|
|
|
// let intervalId: number;
|
|
|
|
// 组件挂载时连接 MQTT
|
|
|
|
// 组件挂载时连接 MQTT
|
|
|
|
onMounted(() => {
|
|
|
|
onMounted(() => {
|
|
|
|
loading.value = true;
|
|
|
|
loading.value = false;
|
|
|
|
connectToMQTT();
|
|
|
|
connectToMQTT();
|
|
|
|
init();
|
|
|
|
init();
|
|
|
|
getList();
|
|
|
|
getList();
|
|
|
|
|