fix(compiler): 格式化代码

This commit is contained in:
fhysy 2024-12-13 16:48:08 +08:00
parent c641ad14bc
commit e40b901205
7 changed files with 919 additions and 759 deletions

4
.gitignore vendored
View File

@ -1,7 +1,7 @@
.DS_Store
node_modules
/dist
yarn.lock
# local env files
.env.local
@ -21,4 +21,4 @@ pnpm-debug.log*
*.njsproj
*.sln
*.sw?
!/yarn.lock

View File

@ -32,6 +32,7 @@
"xlsx": "^0.18.5"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^8.18.0",
"@vitejs/plugin-vue": "^4.1.0",
"@vue/compiler-sfc": "^3.2.47",
"eslint": "^8.38.0",

View File

@ -4,8 +4,8 @@
<LockScreen v-if="themeConfig.isLockScreen" />
<Setings ref="setingsRef" v-show="setLockScreen" />
<CloseFull v-if="!themeConfig.isLockScreen" />
<!-- <Upgrade v-if="getVersion" />-->
<!-- <Sponsors />-->
<!-- <Upgrade v-if="getVersion" />-->
<!-- <Sponsors />-->
</el-config-provider>
</template>

View File

@ -32,7 +32,7 @@
</div>
</div>
<div class="data-config">
<h2>数据源配置 {{ activeDeviceConfig.equipId || '' }}</h2>
<h2>数据源配置 {{ activeDeviceConfig.equipId || '' }}</h2>
<div class="btn-list">
<div class="btn-list-left"></div>
<div class="btn-list-right">
@ -40,7 +40,15 @@
</div>
</div>
<div class="table-box">
<el-table ref="deviceDataTableRef" :data="activeDeviceConfig.result" border size="small" height="100%" :style="{ width: tabelBox + 'px' }" empty-text="配置为空">
<el-table
ref="deviceDataTableRef"
:data="activeDeviceConfig.result"
border
size="small"
height="100%"
:style="{ width: tabelBox + 'px' }"
empty-text="配置为空"
>
<el-table-column type="index" label="序号" align="center" width="60" fixed />
<el-table-column prop="id" label="设备ID_数据ID" align="center">
<template #default="scope">
@ -51,11 +59,11 @@
<el-table-column prop="dataValue" label="当前值" align="center" />
<el-table-column prop="dataUnit" label="单位" align="center" />
<el-table-column prop="time" label="时间" align="center" />
<!-- <el-table-column label="操作" width="55" fixed="right" align="center">-->
<!-- <template #default="scope">-->
<!-- <el-button link type="danger" size="small" @click.stop="delDeviceDataConfig(scope.$index)">删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="操作" width="55" fixed="right" align="center">-->
<!-- <template #default="scope">-->
<!-- <el-button link type="danger" size="small" @click.stop="delDeviceDataConfig(scope.$index)">删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
</div>
</div>
@ -65,12 +73,7 @@
<script setup>
import { ref, onMounted, onUnmounted } from 'vue';
import { ElMessage } from 'element-plus';
import {
endDeviceCollect,
getDeviceCollectli,
getDeviceEquipli,
startDeviceCollect
} from "/@/api/gateway/collectdatamonitor";
import { endDeviceCollect, getDeviceCollectli, getDeviceEquipli, startDeviceCollect } from '/@/api/gateway/collectdatamonitor';
const deviceConfigTableRef = ref();
const deviceDataTableRef = ref();
@ -83,27 +86,27 @@ const ActiveRowIndex = ref(0);
const activeDeviceConfig = ref({
equipId: '',
status: false,
result: []
result: [],
});
const getDeviceDataList = id => {
const getDeviceDataList = (id) => {
// console.log('')
getDeviceCollectli(id)
.then(response => {
getDeviceCollectli(id)
.then((response) => {
//
if (response.code == 0) {
//
activeDeviceConfig.value = {
equipId: response.data.equipId || '',
status: response.data.status || false,
result: response.data.result || []
result: response.data.result || [],
};
// activeDeviceResult.value = response.data.result || []
} else {
ElMessage.error(response.message);
}
})
.catch(error => {
.catch((error) => {
//
console.error(error); //
ElMessage.error(error);
@ -112,8 +115,8 @@ const getDeviceDataList = id => {
const getDeviceList = () => {
// console.log('')
getDeviceEquipli({})
.then(response => {
getDeviceEquipli({})
.then((response) => {
//
if (response.code == 0) {
//
@ -126,7 +129,7 @@ const getDeviceList = () => {
activeDeviceConfig.value = {
equipId: '',
starus: false,
result: []
result: [],
};
// activeDeviceResult.value = []
}
@ -134,7 +137,7 @@ const getDeviceList = () => {
ElMessage.error(response.message);
}
})
.catch(error => {
.catch((error) => {
//
console.error(error); //
ElMessage.error(error);
@ -145,65 +148,67 @@ const getDeviceConfig = () => {
getDeviceDataList(deviceList.value[ActiveRowIndex.value].equipId);
};
const handleBeforeChange = index => {
const handleBeforeChange = (index) => {
console.log('e', index);
return new Promise((resolve, reject) => {
let deviceObj = deviceList.value[index];
console.log('deviceObj', deviceObj.status);
if (deviceObj.status) {
endDeviceCollect(deviceObj.equipId).then(response => {
console.log('response', response);
if (response.code === 0) {
// ok
if (deviceObj.status) {
ElMessage.success('关闭成功');
} else {
ElMessage.success('开启成功');
}
deviceList.value[index].status = !deviceList.value[index].status;
getDeviceList();
resolve();
} else {
// ok
ElMessage.error(response.message);
reject();
}
})
.catch(error => {
//
ElMessage.error(error.data.message);
reject();
});
}else{
startDeviceCollect(deviceObj.equipId).then(response => {
console.log('response', response);
if (response.code === 0) {
// ok
if (deviceObj.status) {
ElMessage.success('关闭成功');
} else {
ElMessage.success('开启成功');
}
deviceList.value[index].status = !deviceList.value[index].status;
getDeviceList();
resolve();
} else {
// ok
ElMessage.error(response.message);
reject();
}
})
.catch(error => {
//
ElMessage.error(error.data.message);
reject();
});
}
endDeviceCollect(deviceObj.equipId)
.then((response) => {
console.log('response', response);
if (response.code === 0) {
// ok
if (deviceObj.status) {
ElMessage.success('关闭成功');
} else {
ElMessage.success('开启成功');
}
deviceList.value[index].status = !deviceList.value[index].status;
getDeviceList();
resolve();
} else {
// ok
ElMessage.error(response.message);
reject();
}
})
.catch((error) => {
//
ElMessage.error(error.data.message);
reject();
});
} else {
startDeviceCollect(deviceObj.equipId)
.then((response) => {
console.log('response', response);
if (response.code === 0) {
// ok
if (deviceObj.status) {
ElMessage.success('关闭成功');
} else {
ElMessage.success('开启成功');
}
deviceList.value[index].status = !deviceList.value[index].status;
getDeviceList();
resolve();
} else {
// ok
ElMessage.error(response.message);
reject();
}
})
.catch((error) => {
//
ElMessage.error(error.data.message);
reject();
});
}
});
};
//
const deviceConfigClick = e => {
const deviceConfigClick = (e) => {
getDeviceDataList(e.equipId);
deviceConfigTableRef.value.toggleRowSelection(e);
ActiveRowIndex.value = deviceList.value.indexOf(e);
@ -233,8 +238,8 @@ onUnmounted(() => {
background: #fff;
}
#southdirection-box {
position: absolute;
width: 100%;
position: absolute;
width: 100%;
height: 100%;
.btn-list {
display: flex;

File diff suppressed because it is too large Load Diff

View File

@ -64,7 +64,7 @@
</div>
</div>
<div class="data-config">
<h2>数据源配置 {{activeDeviceConfig.equipId}}</h2>
<h2>数据源配置 {{ activeDeviceConfig.equipId }}</h2>
<div class="btn-list">
<div class="btn-list-left">
<el-button type="primary" @click="addDeviceDataConfig">新增配置</el-button>
@ -78,7 +78,15 @@
</div>
</div>
<div class="table-box">
<el-table ref="deviceDataTableRef" :data="activeDeviceConfig.properties" border size="small" height="100%" :style="{ width: tabelBox + 'px' }" empty-text="配置为空">
<el-table
ref="deviceDataTableRef"
:data="activeDeviceConfig.properties"
border
size="small"
height="100%"
:style="{ width: tabelBox + 'px' }"
empty-text="配置为空"
>
<el-table-column type="index" label="序号" align="center" width="60" fixed />
<el-table-column prop="id" label="数据ID" fixed align="center">
<template #default="scope">
@ -209,7 +217,13 @@
<!-- <el-select v-model="scope.row.uploadMode" placeholder="请选择上报策略">-->
<!-- <el-option :value="item.uploadMode" v-for="(item,index) in taskList" :key="index" :label="item.uploadMode"></el-option>-->
<!-- </el-select>-->
<el-autocomplete v-model="scope.row.uploadMode" :fetch-suggestions="querySearch" clearable class="inline-input w-50" placeholder="请选择上报策略" />
<el-autocomplete
v-model="scope.row.uploadMode"
:fetch-suggestions="querySearch"
clearable
class="inline-input w-50"
placeholder="请选择上报策略"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="55" fixed="right" align="center">
@ -349,7 +363,7 @@ import { guidGenerator } from '/@/utils/function.js';
import FileSaver from 'file-saver';
import * as XLSX from 'xlsx';
import dayjs from 'dayjs';
import {getDeviceConf, getSerialPortDataList, setDeviceConf} from "/@/api/gateway/southdirection";
import { getDeviceConf, getSerialPortDataList, setDeviceConf } from '/@/api/gateway/southdirection';
const dataTypeArray = ref([
{ type: 'bool', datalen: 1, show: false },
@ -380,7 +394,7 @@ const dataTypeArray = ref([
{ type: 'uint32_ABCD', datalen: 4, show: false },
{ type: 'uint32_BADC', datalen: 4, show: false },
{ type: 'uint32_CDAB', datalen: 4, show: false },
{ type: 'uint32_DCBA', datalen: 4, show: false }
{ type: 'uint32_DCBA', datalen: 4, show: false },
]);
//
@ -388,15 +402,15 @@ const uploadModeList = ref([
{ value: 'timer 10', link: 'timer 10' },
{ value: 'change 10', link: 'change 10' },
{ value: 'timer 10 || change 10', link: 'timer 10 || change 10' },
{ value: 'label LD200 up', link: 'label LD200 up' }
{ value: 'label LD200 up', link: 'label LD200 up' },
]);
const querySearch = (queryString, cb) => {
const results = queryString ? uploadModeList.value.filter(createFilter(queryString)) : uploadModeList.value;
cb(results);
};
const createFilter = queryString => {
return restaurant => {
const createFilter = (queryString) => {
return (restaurant) => {
return restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0;
};
};
@ -409,8 +423,8 @@ const deviceConfigList = ref([]);
const protocolList = ref([
{ label: 'ModbusTCP', value: 'ModbusTCP' },
{ label: 'DLT645_2007', value: 'DLT645_2007' },
{ label: 'gycan', value: 'gycan' },
{ label: 'DLT645_2007', value: 'DLT645_2007' },
{ label: 'gycan', value: 'gycan' },
]);
//
const addDeviceConfig = () => {
@ -424,7 +438,7 @@ const addDeviceConfig = () => {
isBlockRead: true, //
isBlockWrite: true, //
isRunCmd: true, //
pollingCycleTime_ms: 1000 //
pollingCycleTime_ms: 1000, //
},
conclude: { isUse: false, libName: '' }, //
equipId: '', // ID
@ -432,12 +446,11 @@ const addDeviceConfig = () => {
inductionParam: {
//
maxLenBlock_read: { boolArea: -1, charArea: -1 }, //
maxLenBlock_write: { boolArea: -1, charArea: -1 } //
maxLenBlock_write: { boolArea: -1, charArea: -1 }, //
},
interfaceParams: { link: '', physicalInterface: '' }, //
properties: [
],
protocol: { libName: '', params: { linkPar: '' } } //
properties: [],
protocol: { libName: '', params: { linkPar: '' } }, //
};
console.log('deviceConfigList.value', deviceConfigTableRef.value);
deviceConfigList.value.push(newDeviceConfig);
@ -445,32 +458,32 @@ const addDeviceConfig = () => {
};
//
const delDeviceConfig = index => {
const delDeviceConfig = (index) => {
console.log('当前点击的行号', index);
ElMessageBox.confirm('确认要删除该设备配置吗?', '告警', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning'
type: 'warning',
})
.then(() => {
deviceConfigList.value.splice(index, 1);
ElMessage({
type: 'success',
message: '删除成功'
message: '删除成功',
});
})
.catch(() => {
ElMessage({
type: 'info',
message: '取消删除'
message: '取消删除',
});
});
};
const getDeviceConfig = () => {
console.log('获取配置');
getDeviceConf( {})
.then(response => {
getDeviceConf({})
.then((response) => {
//
console.log(response); //
if (response.code == 0) {
@ -490,29 +503,29 @@ const getDeviceConfig = () => {
ElMessage.error(response.message);
}
})
.catch(error => {
.catch((error) => {
//
console.error(error); //
ElMessage.error(error);
});
};
const dataFormat = data => {
const dataFormat = (data) => {
console.log('数据格式化', deviceConfigList.value);
let nowtaskList =
taskList.value.map(item => {
taskList.value.map((item) => {
item.dataIdEntire = [];
return item;
}) || [];
if (nowtaskList.length > 0) {
deviceConfigList.value.forEach(item => {
item.properties.forEach(property => {
deviceConfigList.value.forEach((item) => {
item.properties.forEach((property) => {
let taskId = property.taskId;
nowtaskList.forEach(task => {
nowtaskList.forEach((task) => {
if (task.taskId === taskId) {
task.dataIdEntire.push({
equipId: item.equipId,
idInfo: [{ id: property.id, uploadMode: property.uploadMode }]
idInfo: [{ id: property.id, uploadMode: property.uploadMode }],
});
}
});
@ -522,7 +535,7 @@ const dataFormat = data => {
return {
equips: data,
tasks: nowtaskList
tasks: nowtaskList,
};
};
@ -530,8 +543,8 @@ const setDeviceConfig = () => {
console.log('提交配置', deviceConfigList.value);
let obj = dataFormat(deviceConfigList.value);
console.log('数据格式化后', obj);
setDeviceConf(obj)
.then(response => {
setDeviceConf(obj)
.then((response) => {
//
console.log(response); //
if (response.code == 0) {
@ -540,7 +553,7 @@ const setDeviceConfig = () => {
ElMessage.error(response.message);
}
})
.catch(error => {
.catch((error) => {
//
console.error(error); //
ElMessage.error(error);
@ -561,20 +574,20 @@ const collectionForm = ref({
isBlockRead: true, //
isBlockWrite: true, //
isRunCmd: true, //
pollingCycleTime_ms: 1000 //
pollingCycleTime_ms: 1000, //
},
inductionParam: {
//
maxLenBlock_read: { boolArea: -1, charArea: -1 }, //
maxLenBlock_write: { boolArea: -1, charArea: -1 } //
}
maxLenBlock_write: { boolArea: -1, charArea: -1 }, //
},
});
//
const openCollectionModel = row => {
const openCollectionModel = (row) => {
console.log('当前采集', row);
collectionForm.value = {
collectConf: row.collectConf,
inductionParam: row.inductionParam
inductionParam: row.inductionParam,
};
collectionModelShow.value = true;
};
@ -596,11 +609,12 @@ const dlt645Form = ref({
baudrate: 115200,
databits: 8,
stopbits: 1,
parity: 'N'
parity: 'N',
});
//
const getSerialPortList = (msgShow = true) => {
getSerialPortDataList({}).then(response => {
getSerialPortDataList({})
.then((response) => {
//
if (response.code === 0) {
serialportList.value = response.data.list || [];
@ -611,18 +625,26 @@ const getSerialPortList = (msgShow = true) => {
ElMessage.error(response.message);
}
})
.catch(error => {
.catch((error) => {
//
ElMessage.error(error);
});
};
const editDlt645 = formEl => {
const editDlt645 = (formEl) => {
if (!formEl) return;
formEl.validate(valid => {
formEl.validate((valid) => {
if (valid) {
deviceConfigList.value[ActiveRowIndex.value].interfaceParams.link =
dlt645Form.value.port + ',' + dlt645Form.value.baudrate + ',' + dlt645Form.value.databits + ',' + dlt645Form.value.stopbits + ',' + dlt645Form.value.parity;
dlt645Form.value.port +
',' +
dlt645Form.value.baudrate +
',' +
dlt645Form.value.databits +
',' +
dlt645Form.value.stopbits +
',' +
dlt645Form.value.parity;
deviceConfigList.value[ActiveRowIndex.value].interfaceParams.physicalInterface = dlt645Form.value.port;
dlt645ModelShow.value = false;
}
@ -633,18 +655,18 @@ const editDlt645 = formEl => {
const tcpModelShow = ref(false);
const tcpRef = ref();
const tcpForm = ref({
link: '192.168.0.1:80'
link: '192.168.0.1:80',
});
const tcpFormRules = reactive({
link: [
{ required: true, message: 'ip地址+端口', trigger: 'blur' },
{ pattern: /^([0-9]{1,3}\.){3}[0-9]{1,3}:[0-9]{1,5}$/, message: '格式错误格式应该是ip地址+端口如192.168.0.1:80', trigger: 'blur' }
]
{ pattern: /^([0-9]{1,3}\.){3}[0-9]{1,3}:[0-9]{1,5}$/, message: '格式错误格式应该是ip地址+端口如192.168.0.1:80', trigger: 'blur' },
],
});
//
const openConnectModel = row => {
const openConnectModel = (row) => {
console.log('当前采集', row.protocol.libName);
if (!row.protocol.libName) {
ElMessage.error('请先选择通信类型');
@ -661,7 +683,7 @@ const openConnectModel = row => {
baudrate: 115200,
databits: 8,
stopbits: 1,
parity: 'N'
parity: 'N',
};
}
// getSerialPortList()
@ -674,9 +696,9 @@ const openConnectModel = row => {
}
};
const editTcp = formEl => {
const editTcp = (formEl) => {
if (!formEl) return;
formEl.validate(valid => {
formEl.validate((valid) => {
if (valid) {
deviceConfigList.value[ActiveRowIndex.value].interfaceParams.link = tcpForm.value.link;
tcpModelShow.value = false;
@ -693,7 +715,7 @@ const activeDeviceConfig = ref({
isBlockRead: true, //
isBlockWrite: true, //
isRunCmd: true, //
pollingCycleTime_ms: 1000 //
pollingCycleTime_ms: 1000, //
},
conclude: { isUse: false, libName: '' }, //
equipId: 'dev102', // ID
@ -701,7 +723,7 @@ const activeDeviceConfig = ref({
inductionParam: {
//
maxLenBlock_read: { boolArea: -1, charArea: -1 }, //
maxLenBlock_write: { boolArea: -1, charArea: -1 } //
maxLenBlock_write: { boolArea: -1, charArea: -1 }, //
},
interfaceParams: { link: '', physicalInterface: '' }, //
properties: [
@ -719,15 +741,15 @@ const activeDeviceConfig = ref({
//
decimal: { numBits: 1, way: 'rounding' }, //
offset: '0', //
proportion: '1' //
proportion: '1', //
},
offset: '0', //
proportion: '1', //
taskId: '', // ID
uploadMode: '' //
}
uploadMode: '', //
},
],
protocol: { libName: 'ModbusTCP', params: { linkPar: '' } } //
protocol: { libName: 'ModbusTCP', params: { linkPar: '' } }, //
});
//
@ -747,45 +769,45 @@ const addDeviceDataConfig = () => {
//
decimal: { numBits: 1, way: 'rounding' }, //
offset: '0', //
proportion: '1' //
proportion: '1', //
},
offset: '0', //
proportion: '1', //
taskId: '', // ID
uploadMode: '' //
uploadMode: '', //
};
activeDeviceConfig.value.properties.push(newDeviceDataConfig);
};
const changedataDisplay = (e, index) => {
let dataTypeObj = dataTypeArray.value.filter(item => item.type === e);
let dataTypeObj = dataTypeArray.value.filter((item) => item.type === e);
activeDeviceConfig.value.properties[index].datalen = dataTypeObj[0].datalen;
activeDeviceConfig.value.properties[index].datalenShow = dataTypeObj[0].show;
};
const changeTaskId = (e, index) => {
let taskObj = taskList.value.filter(item => item.taskId === e);
let taskObj = taskList.value.filter((item) => item.taskId === e);
activeDeviceConfig.value.properties[index].uploadMode = taskObj[0].uploadMode;
};
//
const delDeviceDataConfig = index => {
const delDeviceDataConfig = (index) => {
ElMessageBox.confirm('确认要删除该数据源配置吗?', '告警', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning'
type: 'warning',
})
.then(() => {
activeDeviceConfig.value.properties.splice(index, 1);
ElMessage({
type: 'success',
message: '删除成功'
message: '删除成功',
});
})
.catch(() => {
ElMessage({
type: 'info',
message: '取消删除'
message: '取消删除',
});
});
};
@ -804,9 +826,9 @@ const handleResize = () => {
const exportDeviceConfigXlsx = () => {
const workbook = XLSX.utils.book_new();
deviceConfigList.value.map(item => {
deviceConfigList.value.map((item) => {
let dataArr = [];
dataArr = item.properties.map(val => {
dataArr = item.properties.map((val) => {
return {
equipId: item.equipId,
...val,
@ -819,7 +841,7 @@ const exportDeviceConfigXlsx = () => {
equipName: item.equipName,
protocol: item.protocol.libName,
link: item.interfaceParams.link,
linkPar: item.protocol.params.linkPar
linkPar: item.protocol.params.linkPar,
};
});
// JSON
@ -840,7 +862,7 @@ const exportDeviceConfigXlsx = () => {
const exportDeviceDataConfigXlsx = () => {
const workbook = XLSX.utils.book_new();
let dataArr = [];
dataArr = activeDeviceConfig.value.properties.map(val => {
dataArr = activeDeviceConfig.value.properties.map((val) => {
return {
equipId: activeDeviceConfig.value.equipId,
...val,
@ -853,7 +875,7 @@ const exportDeviceDataConfigXlsx = () => {
equipName: activeDeviceConfig.value.equipName,
libName: activeDeviceConfig.value.protocol.libName,
link: activeDeviceConfig.value.interfaceParams.link,
linkPar: activeDeviceConfig.value.protocol.params.linkPar
linkPar: activeDeviceConfig.value.protocol.params.linkPar,
};
});
// JSON
@ -863,7 +885,10 @@ const exportDeviceDataConfigXlsx = () => {
// 簿
const selIn = XLSX.write(workbook, { bookType: 'xlsx', bookSST: true, type: 'array' });
try {
FileSaver.saveAs(new Blob([selIn], { type: 'application/octet-stream' }), '网关南向采集数据源配置' + dayjs().format('YYYY-MM-DD HH-mm-ss') + '.xlsx');
FileSaver.saveAs(
new Blob([selIn], { type: 'application/octet-stream' }),
'网关南向采集数据源配置' + dayjs().format('YYYY-MM-DD HH-mm-ss') + '.xlsx'
);
} catch (e) {
if (typeof console !== 'undefined') console.log(e, selIn);
}
@ -878,13 +903,13 @@ const handleFileChange = (file, fileList) => {
}
const reader = new FileReader();
reader.onload = e => {
reader.onload = (e) => {
const data = new Uint8Array(e.target.result);
const workbook = XLSX.read(data, { type: 'array' });
//
const sheets = {};
workbook.SheetNames.forEach(sheetName => {
workbook.SheetNames.forEach((sheetName) => {
const sheet = workbook.Sheets[sheetName];
const json = XLSX.utils.sheet_to_json(sheet);
sheets[sheetName] = json;
@ -895,10 +920,10 @@ const handleFileChange = (file, fileList) => {
let dataArr = sheets[prop];
if (dataArr.length > 0) {
let flag = true;
deviceConfigList.value.forEach(item => {
deviceConfigList.value.forEach((item) => {
if (item.equipId === dataArr[0].equipId) {
flag = false;
item.properties = dataArr.map(val => {
item.properties = dataArr.map((val) => {
return {
authority: val.authority, //
dataAddress: val.dataAddress, //
@ -914,12 +939,12 @@ const handleFileChange = (file, fileList) => {
//
decimal: { numBits: val.numBits, way: val.way }, //
offset: val.offset, //
proportion: val.proportion //
proportion: val.proportion, //
},
offset: val.offset, //
proportion: val.proportion, //
taskId: val.taskId, // ID
uploadMode: val.uploadMode //
uploadMode: val.uploadMode, //
};
});
item.equipName = dataArr[0].equipName;
@ -940,7 +965,7 @@ const handleFileChange = (file, fileList) => {
isBlockRead: true, //
isBlockWrite: true, //
isRunCmd: true, //
pollingCycleTime_ms: 1000 //
pollingCycleTime_ms: 1000, //
},
conclude: { isUse: false, libName: '' }, //
equipId: dataArr[0].equipId, // ID
@ -948,13 +973,13 @@ const handleFileChange = (file, fileList) => {
inductionParam: {
//
maxLenBlock_read: { boolArea: -1, charArea: -1 }, //
maxLenBlock_write: { boolArea: -1, charArea: -1 } //
maxLenBlock_write: { boolArea: -1, charArea: -1 }, //
},
interfaceParams: { link: dataArr[0].link, physicalInterface: '' }, //
properties: [],
protocol: { libName: dataArr[0].protocol, params: { linkPar: dataArr[0].linkPar } } //
protocol: { libName: dataArr[0].protocol, params: { linkPar: dataArr[0].linkPar } }, //
};
obj.properties = dataArr.map(val => {
obj.properties = dataArr.map((val) => {
return {
authority: val.authority, //
dataAddress: val.dataAddress, //
@ -970,12 +995,12 @@ const handleFileChange = (file, fileList) => {
//
decimal: { numBits: val.numBits, way: val.way }, //
offset: val.offset, //
proportion: val.proportion //
proportion: val.proportion, //
},
offset: val.offset, //
proportion: val.proportion, //
taskId: val.taskId, // ID
uploadMode: val.uploadMode //
uploadMode: val.uploadMode, //
};
});
deviceConfigList.value.push(obj);
@ -1009,8 +1034,8 @@ onUnmounted(() => {
background: #fff;
}
#southdirection-box {
position: absolute;
width: 100%;
position: absolute;
width: 100%;
height: 100%;
.btn-list {
display: flex;

190
yarn.lock
View File

@ -139,6 +139,18 @@
dependencies:
eslint-visitor-keys "^3.3.0"
"@eslint-community/eslint-utils@^4.4.0":
version "4.4.1"
resolved "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56"
integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==
dependencies:
eslint-visitor-keys "^3.4.3"
"@eslint-community/regexpp@^4.10.0":
version "4.12.1"
resolved "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
"@eslint-community/regexpp@^4.4.0":
version "4.5.0"
resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz"
@ -203,12 +215,12 @@
"@nodelib/fs.stat" "2.0.5"
run-parallel "^1.1.9"
"@nodelib/fs.stat@2.0.5":
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
version "2.0.5"
resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
"@nodelib/fs.walk@^1.2.8":
"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
version "1.2.8"
resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
@ -251,6 +263,76 @@
resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz"
integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==
"@typescript-eslint/eslint-plugin@^8.18.0":
version "8.18.0"
resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.0.tgz#0901933326aea4443b81df3f740ca7dfc45c7bea"
integrity sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw==
dependencies:
"@eslint-community/regexpp" "^4.10.0"
"@typescript-eslint/scope-manager" "8.18.0"
"@typescript-eslint/type-utils" "8.18.0"
"@typescript-eslint/utils" "8.18.0"
"@typescript-eslint/visitor-keys" "8.18.0"
graphemer "^1.4.0"
ignore "^5.3.1"
natural-compare "^1.4.0"
ts-api-utils "^1.3.0"
"@typescript-eslint/scope-manager@8.18.0":
version "8.18.0"
resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz#30b040cb4557804a7e2bcc65cf8fdb630c96546f"
integrity sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==
dependencies:
"@typescript-eslint/types" "8.18.0"
"@typescript-eslint/visitor-keys" "8.18.0"
"@typescript-eslint/type-utils@8.18.0":
version "8.18.0"
resolved "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-8.18.0.tgz#6f0d12cf923b6fd95ae4d877708c0adaad93c471"
integrity sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow==
dependencies:
"@typescript-eslint/typescript-estree" "8.18.0"
"@typescript-eslint/utils" "8.18.0"
debug "^4.3.4"
ts-api-utils "^1.3.0"
"@typescript-eslint/types@8.18.0":
version "8.18.0"
resolved "https://registry.npmmirror.com/@typescript-eslint/types/-/types-8.18.0.tgz#3afcd30def8756bc78541268ea819a043221d5f3"
integrity sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==
"@typescript-eslint/typescript-estree@8.18.0":
version "8.18.0"
resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz#d8ca785799fbb9c700cdff1a79c046c3e633c7f9"
integrity sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==
dependencies:
"@typescript-eslint/types" "8.18.0"
"@typescript-eslint/visitor-keys" "8.18.0"
debug "^4.3.4"
fast-glob "^3.3.2"
is-glob "^4.0.3"
minimatch "^9.0.4"
semver "^7.6.0"
ts-api-utils "^1.3.0"
"@typescript-eslint/utils@8.18.0":
version "8.18.0"
resolved "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-8.18.0.tgz#48f67205d42b65d895797bb7349d1be5c39a62f7"
integrity sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==
dependencies:
"@eslint-community/eslint-utils" "^4.4.0"
"@typescript-eslint/scope-manager" "8.18.0"
"@typescript-eslint/types" "8.18.0"
"@typescript-eslint/typescript-estree" "8.18.0"
"@typescript-eslint/visitor-keys@8.18.0":
version "8.18.0"
resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz#7b6d33534fa808e33a19951907231ad2ea5c36dd"
integrity sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==
dependencies:
"@typescript-eslint/types" "8.18.0"
eslint-visitor-keys "^4.2.0"
"@vitejs/plugin-vue@^4.1.0":
version "4.1.0"
resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz"
@ -465,6 +547,20 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
brace-expansion@^2.0.1:
version "2.0.1"
resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
dependencies:
balanced-match "^1.0.0"
braces@^3.0.3:
version "3.0.3"
resolved "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
dependencies:
fill-range "^7.1.1"
braces@~3.0.2:
version "3.0.2"
resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
@ -620,7 +716,7 @@ echarts@^5.4.2:
tslib "2.3.0"
zrender "5.4.3"
element-plus@^2.7.6, element-plus@^2.9.0:
element-plus@^2.9.0:
version "2.9.0"
resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.0.tgz#76a16566ab6dbadb555a40704bde870a02c306bc"
integrity sha512-ccOFXKsauo2dtokAr4OX7gZsb7TuAoVxA2zGRZo5o2yyDDBLBaZxOoFQPoxITSLcHbBfQuNDGK5Iag5hnyKkZA==
@ -705,6 +801,16 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0:
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz"
integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==
eslint-visitor-keys@^3.4.3:
version "3.4.3"
resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
eslint-visitor-keys@^4.2.0:
version "4.2.0"
resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45"
integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==
eslint@^8.38.0:
version "8.38.0"
resolved "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz"
@ -794,6 +900,17 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-glob@^3.3.2:
version "3.3.2"
resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
dependencies:
"@nodelib/fs.stat" "^2.0.2"
"@nodelib/fs.walk" "^1.2.3"
glob-parent "^5.1.2"
merge2 "^1.3.0"
micromatch "^4.0.4"
fast-json-stable-stringify@^2.0.0:
version "2.1.0"
resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
@ -830,6 +947,13 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
fill-range@^7.1.1:
version "7.1.1"
resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
dependencies:
to-regex-range "^5.0.1"
find-up@^5.0.0:
version "5.0.0"
resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
@ -903,6 +1027,13 @@ get-intrinsic@^1.0.2:
has "^1.0.3"
has-symbols "^1.0.3"
glob-parent@^5.1.2, glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
glob-parent@^6.0.2:
version "6.0.2"
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
@ -910,13 +1041,6 @@ glob-parent@^6.0.2:
dependencies:
is-glob "^4.0.3"
glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
glob@^7.1.3:
version "7.2.3"
resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
@ -953,6 +1077,11 @@ grapheme-splitter@^1.0.4:
resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz"
integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
graphemer@^1.4.0:
version "1.4.0"
resolved "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
has-flag@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
@ -975,6 +1104,11 @@ ignore@^5.2.0:
resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz"
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
ignore@^5.3.1:
version "5.3.2"
resolved "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
immutable@^4.0.0:
version "4.3.0"
resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz"
@ -1144,6 +1278,19 @@ memoize-one@^6.0.0:
resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz"
integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==
merge2@^1.3.0:
version "1.4.1"
resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
micromatch@^4.0.4:
version "4.0.8"
resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
dependencies:
braces "^3.0.3"
picomatch "^2.3.1"
mime-db@1.52.0:
version "1.52.0"
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
@ -1163,6 +1310,13 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
dependencies:
brace-expansion "^1.1.7"
minimatch@^9.0.4:
version "9.0.5"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
dependencies:
brace-expansion "^2.0.1"
mitt@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz"
@ -1275,7 +1429,7 @@ picocolors@^1.0.0:
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2:
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1:
version "2.3.1"
resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
@ -1425,6 +1579,11 @@ semver@^7.3.5, semver@^7.3.6:
dependencies:
lru-cache "^6.0.0"
semver@^7.6.0:
version "7.6.3"
resolved "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
shebang-command@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
@ -1514,6 +1673,11 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
ts-api-utils@^1.3.0:
version "1.4.3"
resolved "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064"
integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==
tslib@2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz"
@ -1613,7 +1777,7 @@ vue-eslint-parser@^9.0.1, vue-eslint-parser@^9.1.1:
axios "^1.3.5"
dayjs "^1.11.13"
echarts "^5.4.2"
element-plus "^2.7.6"
element-plus "^2.9.0"
file-saver "^2.0.5"
js-cookie "^3.0.1"
mitt "^3.0.0"
@ -1626,7 +1790,7 @@ vue-eslint-parser@^9.0.1, vue-eslint-parser@^9.1.1:
vue "^3.2.47"
vue-clipboard3 "^2.0.0"
vue-demi "^0.13.11"
vue-next-admin-template-js "file:C:/Users/Administrator/AppData/Local/Yarn/Cache/v6/npm-vue-next-admin-template-js-2.4.33-d6f20349-ce84-4f4c-b83e-27e36d4b1985-1733992643913/node_modules/vue-next-admin-template-js"
vue-next-admin-template-js "file:C:/Users/Administrator/AppData/Local/Yarn/Cache/v6/npm-vue-next-admin-template-js-2.4.33-011778b8-7ab9-4593-988c-c7383c933ad9-1734079258926/node_modules/vue-next-admin-template-js"
vue-router "^4.1.6"
xlsx "^0.18.5"