main
parent
244832ff69
commit
013a5c9e78
|
@ -13,7 +13,7 @@
|
||||||
"@sentry/tracing": "^6.3.1",
|
"@sentry/tracing": "^6.3.1",
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"echarts": "^5.4.2",
|
"echarts": "^5.4.2",
|
||||||
"element-plus": "^2.3.4",
|
"element-plus": "^2.8.6",
|
||||||
"js-base64": "^3.7.7",
|
"js-base64": "^3.7.7",
|
||||||
"js-md5": "^0.7.3",
|
"js-md5": "^0.7.3",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
|
@ -628,9 +628,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@element-plus/icons-vue": {
|
"node_modules/@element-plus/icons-vue": {
|
||||||
"version": "2.1.0",
|
"version": "2.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz",
|
"resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
|
||||||
"integrity": "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==",
|
"integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"vue": "^3.2.0"
|
"vue": "^3.2.0"
|
||||||
}
|
}
|
||||||
|
@ -2655,12 +2655,12 @@
|
||||||
"integrity": "sha512-MrlFq/j+TYHOjeWsWGYfzevc25HNeJdsF6qaLFrqBTRWZQtWkb1myq/Q2veLWezVaa5OcSZ99CFwTT4aF4Mung=="
|
"integrity": "sha512-MrlFq/j+TYHOjeWsWGYfzevc25HNeJdsF6qaLFrqBTRWZQtWkb1myq/Q2veLWezVaa5OcSZ99CFwTT4aF4Mung=="
|
||||||
},
|
},
|
||||||
"node_modules/element-plus": {
|
"node_modules/element-plus": {
|
||||||
"version": "2.3.4",
|
"version": "2.8.6",
|
||||||
"resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.3.4.tgz",
|
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.8.6.tgz",
|
||||||
"integrity": "sha512-SQr0J9z7N4z48WYk/l9NE2tizl8Q7j2OhqlpTc42k4pGncry3+rVX6dsmcsglFynn6vt3NzYxWJqmLFyDKQq+g==",
|
"integrity": "sha512-fk5jB8V3efM02/4roZ5SWOLArgaYXbxEydZLlXSr+KPAwjNyHBlk2+HO5em8YKo5+RLBoHnn6BaThj6IE4nXoQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ctrl/tinycolor": "^3.4.1",
|
"@ctrl/tinycolor": "^3.4.1",
|
||||||
"@element-plus/icons-vue": "^2.0.6",
|
"@element-plus/icons-vue": "^2.3.1",
|
||||||
"@floating-ui/dom": "^1.0.1",
|
"@floating-ui/dom": "^1.0.1",
|
||||||
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
|
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
|
||||||
"@types/lodash": "^4.14.182",
|
"@types/lodash": "^4.14.182",
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
"@sentry/tracing": "^6.3.1",
|
"@sentry/tracing": "^6.3.1",
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"echarts": "^5.4.2",
|
"echarts": "^5.4.2",
|
||||||
"element-plus": "^2.3.4",
|
"element-plus": "^2.8.6",
|
||||||
"js-base64": "^3.7.7",
|
"js-base64": "^3.7.7",
|
||||||
"js-md5": "^0.7.3",
|
"js-md5": "^0.7.3",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
|
|
|
@ -67,6 +67,10 @@ const infoApi = {
|
||||||
exportP(params) {
|
exportP(params) {
|
||||||
return postPBRequest('/template', params, 53211, params.template_name)
|
return postPBRequest('/template', params, 53211, params.template_name)
|
||||||
},
|
},
|
||||||
|
// 获取dlt645 point数据
|
||||||
|
getDlt645Data() {
|
||||||
|
return postPBRequest("/template", {}, 53012);
|
||||||
|
},
|
||||||
// 驱动列表查询
|
// 驱动列表查询
|
||||||
getTx(params) {
|
getTx(params) {
|
||||||
return postPBRequest('/driver', params, 54000)
|
return postPBRequest('/driver', params, 54000)
|
||||||
|
@ -190,6 +194,6 @@ const infoApi = {
|
||||||
// 写值
|
// 写值
|
||||||
writeValue(params) {
|
writeValue(params) {
|
||||||
return postPBRequest("/data", params, 56001);
|
return postPBRequest("/data", params, 56001);
|
||||||
},
|
}
|
||||||
};
|
};
|
||||||
export default infoApi;
|
export default infoApi;
|
|
@ -125,7 +125,7 @@ export default {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const res = props.type === '0' ? await infoApi.saveTx(state.addForm) : await infoApi.editTx(state.addForm);
|
const res = props.type === '0' ? await infoApi.saveTx(state.addForm) : await infoApi.editTx(state.addForm);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message || "请求成功");
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
ctx.emit("dialogSuccess");
|
ctx.emit("dialogSuccess");
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.data || res.message);
|
ElMessage.error(res.data || res.message);
|
||||||
|
|
|
@ -94,11 +94,11 @@ export default {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const res = props.type === 'I' ? await infoApi.addMb(state.addForm) : await infoApi.editMb(state.addForm);
|
const res = props.type === 'I' ? await infoApi.addMb(state.addForm) : await infoApi.editMb(state.addForm);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message || "请求成功");
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
// 关闭弹框
|
// 关闭弹框
|
||||||
ctx.emit("dialogSuccess");
|
ctx.emit("dialogSuccess");
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.data);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<el-dialog v-model="visible" title="点位管理" width="40%" :before-close="closeDialog">
|
<el-dialog v-model="visible" title="点位管理" width="40%" :before-close="closeDialog">
|
||||||
<el-form :model="addForm" label-width="100px" :rules="rules" ref="ruleFormRef" size="large" label-position="top">
|
<!-- modbus -->
|
||||||
|
<el-form v-if="formData.template_type === 1" :model="addForm" label-width="100px" :rules="rules" ref="ruleFormRef"
|
||||||
|
size="large" label-position="top">
|
||||||
<el-form-item label="点位名称:" prop="point_name">
|
<el-form-item label="点位名称:" prop="point_name">
|
||||||
<el-input v-model="addForm.point_name" placeholder="请输入点位名称" clearable :disabled="type !== 'I'" />
|
<el-input v-model="addForm.point_name" placeholder="请输入点位名称" clearable :disabled="type !== 'I'" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -34,6 +36,33 @@
|
||||||
<el-input v-model="addForm.point_unit" placeholder="请输入点位单位" clearable />
|
<el-input v-model="addForm.point_unit" placeholder="请输入点位单位" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
<!-- dlt645 2007 -->
|
||||||
|
<el-form v-if="formData.template_type === 5" :model="addForm" label-width="100px" :rules="rules1" ref="ruleFormRef">
|
||||||
|
<el-form-item label="点位名称:" prop="point_name">
|
||||||
|
<el-select v-model="addForm.point_name" size="mini" placeholder="请选择点位名称" @change="changePointName">
|
||||||
|
<el-option v-for="(item, key) of dlt645PointData" :key="key" :label="key"
|
||||||
|
:value="key" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="点位地址:" prop="id">
|
||||||
|
<el-input v-model="addForm.id" disabled/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="点位描述:" prop="point_description">
|
||||||
|
<el-input v-model="addForm.point_description" disabled/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="读写权限:" prop="point_permissions">
|
||||||
|
<el-select v-model="addForm.point_permissions" size="mini" placeholder="请选择读写权限" disabled>
|
||||||
|
<el-option v-for="item in perOptions" :key="item.value" :label="item.label"
|
||||||
|
:value="item.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="缩放系数:" prop="multiplier">
|
||||||
|
<el-input v-model="addForm.multiplier" placeholder="请输入缩放系数" type="number" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="点位单位:" prop="point_unit">
|
||||||
|
<el-input v-model="addForm.point_unit" disabled/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button size="large" @click="closeDialog">取消</el-button>
|
<el-button size="large" @click="closeDialog">取消</el-button>
|
||||||
|
@ -166,6 +195,11 @@ export default {
|
||||||
{ required: false, message: "请输入点位描述", trigger: "blur" }
|
{ required: false, message: "请输入点位描述", trigger: "blur" }
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
rules1: {
|
||||||
|
point_name: { required: true, message: "请输入点位名称", trigger: "blur" },
|
||||||
|
multiplier: [{ required: true, message: "请输入缩放系数", trigger: "blur" }],
|
||||||
|
},
|
||||||
|
dlt645PointData: {},
|
||||||
});
|
});
|
||||||
const visible = computed(() => {
|
const visible = computed(() => {
|
||||||
return props.dialogVisible;
|
return props.dialogVisible;
|
||||||
|
@ -173,10 +207,36 @@ export default {
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
state.addForm = props.pointData;
|
state.addForm = props.pointData;
|
||||||
|
if (props.formData.template_type === 1) {// modbus
|
||||||
getPointData();
|
getPointData();
|
||||||
props.type === 'U'? changeSelectData() : changeRegister();
|
props.type === 'U' ? changeSelectData() : changeRegister();
|
||||||
|
}
|
||||||
|
if (props.formData.template_type === 5) {// dlt645 2007
|
||||||
|
getDlt645Data();
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const getDlt645Data = async () => {
|
||||||
|
const res = await infoApi.getDlt645Data();
|
||||||
|
if (res.code == 0) {
|
||||||
|
state.dlt645PointData = res.data;
|
||||||
|
} else {
|
||||||
|
ElMessage.error(res.data || res.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const changePointName = () => {
|
||||||
|
let somePointData = state.dlt645PointData[state.addForm.point_name];
|
||||||
|
console.log(somePointData);
|
||||||
|
|
||||||
|
state.addForm.id = somePointData.id;
|
||||||
|
state.addForm.point_description = somePointData.point_description;
|
||||||
|
state.addForm.point_permissions = somePointData.point_permissions;
|
||||||
|
state.addForm.multiplier = somePointData.multiplier;
|
||||||
|
state.addForm.point_unit = somePointData.point_unit;
|
||||||
|
}
|
||||||
|
|
||||||
const getPointData = () => {
|
const getPointData = () => {
|
||||||
state.datatypeArr = [];
|
state.datatypeArr = [];
|
||||||
for (let i in props.pointTypeOptions) {
|
for (let i in props.pointTypeOptions) {
|
||||||
|
@ -265,10 +325,10 @@ export default {
|
||||||
}
|
}
|
||||||
const res = props.type === 'I' ? await infoApi.addP(param) : await infoApi.editP(param);
|
const res = props.type === 'I' ? await infoApi.addP(param) : await infoApi.editP(param);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message || "请求成功");
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
ctx.emit("dialogSuccess");
|
ctx.emit("dialogSuccess");
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.data || res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
|
@ -282,7 +342,8 @@ export default {
|
||||||
closeDialog,
|
closeDialog,
|
||||||
saveP,
|
saveP,
|
||||||
ruleFormRef,
|
ruleFormRef,
|
||||||
changeRegister
|
changeRegister,
|
||||||
|
changePointName
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -110,10 +110,10 @@ export default {
|
||||||
const res = props.type === 'I' ? await infoApi.saveTx(req_data) : await infoApi.updateTx(req_data);
|
const res = props.type === 'I' ? await infoApi.saveTx(req_data) : await infoApi.updateTx(req_data);
|
||||||
const ret = response.decode(new Uint8Array(res));
|
const ret = response.decode(new Uint8Array(res));
|
||||||
if(ret.code == 0) {
|
if(ret.code == 0) {
|
||||||
ElMessage.success(res.message || '请求成功');
|
ElMessage.success(res.data || res.message || '请求成功');
|
||||||
ctx.emit("dialogSuccess");
|
ctx.emit("dialogSuccess");
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,10 +86,10 @@ export default {
|
||||||
}
|
}
|
||||||
const res = props.type === 'I' ? await infoApi.addSet(param) : await infoApi.editSet(param);
|
const res = props.type === 'I' ? await infoApi.addSet(param) : await infoApi.editSet(param);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message || "请求成功");
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
ctx.emit("dialogSuccess");
|
ctx.emit("dialogSuccess");
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.data || res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
|
|
|
@ -393,10 +393,10 @@ export default {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const res = await infoApi.saveTc(props.formData);
|
const res = await infoApi.saveTc(props.formData);
|
||||||
if(res.code == 0) {
|
if(res.code == 0) {
|
||||||
ElMessage.success(res.msg || '请求成功');
|
ElMessage.success(res.data || res.message || '请求成功');
|
||||||
ctx.emit("dialogSuccess");
|
ctx.emit("dialogSuccess");
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,7 +85,7 @@ export default {
|
||||||
}
|
}
|
||||||
const res = await infoApi.resetHealth(parm);
|
const res = await infoApi.resetHealth(parm);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message || "请求成功");
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const closeDialog = () => {
|
const closeDialog = () => {
|
||||||
|
|
|
@ -37,10 +37,10 @@ export default {
|
||||||
const saveP = async () => {
|
const saveP = async () => {
|
||||||
const res = await infoApi.importDevice(state.importData, props.formData.driver_name);
|
const res = await infoApi.importDevice(state.importData, props.formData.driver_name);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message);
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
ctx.emit("dialogSuccess");
|
ctx.emit("dialogSuccess");
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.data || res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -38,10 +38,10 @@ export default {
|
||||||
const saveP = async () => {
|
const saveP = async () => {
|
||||||
const res = await infoApi.importP(state.importData, props.formData.template_name);
|
const res = await infoApi.importP(state.importData, props.formData.template_name);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message);
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
ctx.emit("dialogSuccess");
|
ctx.emit("dialogSuccess");
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.data || res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -70,9 +70,9 @@ export default {
|
||||||
const reStart = async () => {
|
const reStart = async () => {
|
||||||
const res = await infoApi.reboot();
|
const res = await infoApi.reboot();
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message || "请求成功");
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message || "请求失败");
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const logout = async () => {
|
const logout = async () => {
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
<template>
|
<template>
|
||||||
<el-drawer v-model="visible" direction="rtl" :before-close="closeDialog">
|
<el-drawer v-model="visible" direction="rtl" :before-close="closeDialog">
|
||||||
<div class="count-status">
|
<div class="count-status">
|
||||||
<el-tag>最大计数: {{ formData.history && formData.history.max }}</el-tag>
|
<el-tag v-if="formData.history && formData.history.enable">最大计数: {{ formData.history && formData.history.max
|
||||||
|
}}</el-tag>
|
||||||
<el-tag>状态: {{ formData.history && formData.history.enable ? "启用" : "禁用" }}</el-tag>
|
<el-tag>状态: {{ formData.history && formData.history.enable ? "启用" : "禁用" }}</el-tag>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<el-table :data="tableData" height="400" border :header-cell-style="{ background: '#F6F7FC' }" size="large">
|
<el-table :data="tableData" height="600" border :header-cell-style="{ background: '#F6F7FC' }" size="large"
|
||||||
|
:sort-method="sortDates">
|
||||||
<el-table-column type="index" label="序号" width="80" align="center" />
|
<el-table-column type="index" label="序号" width="80" align="center" />
|
||||||
<el-table-column prop="timestamp" label="时间戳" align="center" />
|
<el-table-column prop="timestamp" label="时间戳" align="center" />
|
||||||
<el-table-column prop="value" label="点位值" align="center" />
|
<el-table-column prop="value" label="点位值" align="center" />
|
||||||
|
@ -74,16 +76,6 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const exportHis = async () => {
|
const exportHis = async () => {
|
||||||
// const parm = {
|
|
||||||
// driver_name: props.formData.driver_name,
|
|
||||||
// device_name: props.formData.device_name,
|
|
||||||
// point_name: props.formData.point_name,
|
|
||||||
// }
|
|
||||||
// const res = await infoApi.exportHis(parm);
|
|
||||||
|
|
||||||
// const url = window.URL.createObjectURL(new Blob([res]));
|
|
||||||
|
|
||||||
// window.open(url);
|
|
||||||
const params = {
|
const params = {
|
||||||
driver_name: props.formData.driver_name,
|
driver_name: props.formData.driver_name,
|
||||||
device_name: props.formData.device_name,
|
device_name: props.formData.device_name,
|
||||||
|
@ -123,6 +115,12 @@ export default {
|
||||||
ctx.emit("dialogClose");
|
ctx.emit("dialogClose");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const sortDates = (a, b) => {
|
||||||
|
const dateA = new Date(a.timestamp);
|
||||||
|
const dateB = new Date(b.timestamp);
|
||||||
|
return dateA - dateB;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
|
@ -132,7 +130,8 @@ export default {
|
||||||
startHis,
|
startHis,
|
||||||
exportHis,
|
exportHis,
|
||||||
clearHis,
|
clearHis,
|
||||||
dialogSuccess1
|
dialogSuccess1,
|
||||||
|
sortDates
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<legend class="box-ht">驱动名称</legend>
|
<legend class="box-ht">驱动名称</legend>
|
||||||
<el-form label-width="130px">
|
<el-form label-width="130px">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
{{ form.driver_name }}
|
{{ formData.driver_name }}
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</el-form>
|
</el-form>
|
||||||
<!-- 1: 'modbus_rtu' -->
|
<!-- 1: 'modbus_rtu' -->
|
||||||
<el-form size="large" :model="form2" label-width="120px" :rules="rules2" ref="ruleFormRef2" v-if="pztypecode === 1">
|
<el-form size="large" :model="form2" label-width="120px" :rules="rules2" ref="ruleFormRef2" v-if="pztypecode === 1 || pztypecode === 6">
|
||||||
<fieldset class="box2">
|
<fieldset class="box2">
|
||||||
<legend class="box-ht">通用配置</legend>
|
<legend class="box-ht">通用配置</legend>
|
||||||
<el-form-item label="轮询时间" prop="polling_time">
|
<el-form-item label="轮询时间" prop="polling_time">
|
||||||
|
@ -307,7 +307,7 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (props.pztypecode === 1) { // modbus_rtu
|
} else if (props.pztypecode === 1 || props.pztypecode === 6) { // modbus_rtu
|
||||||
await ruleFormRef2.value.validate(async (valid) => {
|
await ruleFormRef2.value.validate(async (valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
var param = {
|
var param = {
|
||||||
|
@ -373,7 +373,7 @@ export default {
|
||||||
if (props.pztypecode === 2) {
|
if (props.pztypecode === 2) {
|
||||||
state.form = res.data;
|
state.form = res.data;
|
||||||
}
|
}
|
||||||
if (props.pztypecode === 1) {
|
if (props.pztypecode === 1 || props.pztypecode === 6) {
|
||||||
state.form2 = res.data;
|
state.form2 = res.data;
|
||||||
state.form2.com_name = res.data.com.name;
|
state.form2.com_name = res.data.com.name;
|
||||||
state.form2.dataBits = Number(res.data.com.dataBits);
|
state.form2.dataBits = Number(res.data.com.dataBits);
|
||||||
|
|
|
@ -36,7 +36,7 @@ export default {
|
||||||
|
|
||||||
rules: {
|
rules: {
|
||||||
max: [
|
max: [
|
||||||
{ required: true, message: "请输入历史记录最大数量", trigger: "blur" },
|
{ required: true, message: "请输入历史记录最大数量(最大值50-250)", trigger: "blur" },
|
||||||
{ required: true, validator: checkMax, trigger: "blur" }
|
{ required: true, validator: checkMax, trigger: "blur" }
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
|
@ -19,7 +19,9 @@
|
||||||
<el-table-column type="index" label="序号" width="80" align="center" />
|
<el-table-column type="index" label="序号" width="80" align="center" />
|
||||||
<el-table-column prop="point_name" label="点位名称" align="center" show-overflow-tooltip>
|
<el-table-column prop="point_name" label="点位名称" align="center" show-overflow-tooltip>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="address" label="点位地址" align="center" show-overflow-tooltip>
|
<el-table-column prop="address" label="点位地址" align="center" show-overflow-tooltip v-if="formData.template_type===1">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="id" label="点位地址" align="center" show-overflow-tooltip v-if="formData.template_type ===5">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="point_type" label="点位类型" align="center" show-overflow-tooltip>
|
<el-table-column prop="point_type" label="点位类型" align="center" show-overflow-tooltip>
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
@ -27,7 +29,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column prop="register" label="寄存器" align="center" show-overflow-tooltip>
|
<el-table-column prop="register" label="寄存器" align="center" show-overflow-tooltip v-if="formData.template_type!==5">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ registerData[scope.row.register] }}</span>
|
<span>{{ registerData[scope.row.register] }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -95,7 +95,7 @@ export default {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.data || res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const closeDialog = () => {
|
const closeDialog = () => {
|
||||||
|
@ -115,10 +115,10 @@ export default {
|
||||||
}
|
}
|
||||||
const res = await infoApi.delSet(param);
|
const res = await infoApi.delSet(param);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message || "删除成功");
|
ElMessage.success(res.data || res.message || "删除成功");
|
||||||
getSet();
|
getSet();
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.data | res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<el-drawer v-model="visible" direction="rtl" :before-close="closeDialog">
|
<el-drawer v-model="visible" direction="rtl" :before-close="closeDialog">
|
||||||
<div class="count-status">
|
<div class="count-status">
|
||||||
<el-input-number v-model="writeV" style="width: 240px" placeholder="请输入点位值" />
|
<el-input-number v-model="writeV" style="width: 240px" placeholder="请输入点位值" size="large"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="btns">
|
<div class="btns">
|
||||||
<el-button type="primary" size="large" @click="writeValue">写值</el-button>
|
<el-button type="primary" size="large" @click="writeValue">写值</el-button>
|
||||||
|
|
|
@ -2,6 +2,7 @@ import { createApp } from "vue";
|
||||||
import App from "./App.vue";
|
import App from "./App.vue";
|
||||||
import ElementPlus from "element-plus";
|
import ElementPlus from "element-plus";
|
||||||
import "element-plus/dist/index.css";
|
import "element-plus/dist/index.css";
|
||||||
|
import zhCn from 'element-plus/es/locale/lang/zh-cn'
|
||||||
import router from "./router/index";
|
import router from "./router/index";
|
||||||
import store from "./store/index";
|
import store from "./store/index";
|
||||||
import "./css/index.scss";
|
import "./css/index.scss";
|
||||||
|
@ -12,7 +13,7 @@ for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
||||||
app.component(key, component);
|
app.component(key, component);
|
||||||
}
|
}
|
||||||
|
|
||||||
app.use(ElementPlus);
|
app.use(ElementPlus, {lacale: zhCn});
|
||||||
app.use(router);
|
app.use(router);
|
||||||
app.use(store);
|
app.use(store);
|
||||||
|
|
||||||
|
|
|
@ -54,9 +54,9 @@ axios.interceptors.response.use(
|
||||||
(error) => {
|
(error) => {
|
||||||
ElMessage.closeAll();
|
ElMessage.closeAll();
|
||||||
ElMessage.error("请求错误");
|
ElMessage.error("请求错误");
|
||||||
// router.push({
|
router.push({
|
||||||
// path: "/login"
|
path: "/login"
|
||||||
// });
|
});
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -16,34 +16,27 @@
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:180px;border-bottom: 1px solid #006b3b;">
|
<td style="width:180px;border-bottom: 1px solid #006b3b;">
|
||||||
驱动名称: {{ curDriver.driver_name }}
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td style="width:180px;border-bottom: 1px solid #006b3b;">通讯失败计数: {{ curDriver.health &&
|
|
||||||
curDriver.health.failure_count }}</td>
|
|
||||||
<td style="width:340px;border-bottom: 1px solid #006b3b;">
|
|
||||||
通讯最后一次成功时间: {{ curDriver.health && curDriver.health.last_success_time }}
|
|
||||||
</td>
|
|
||||||
<td style="border-bottom: 1px solid #006b3b;">
|
|
||||||
通讯状态: {{ txStatus[curDriver.driver_status] }}
|
通讯状态: {{ txStatus[curDriver.driver_status] }}
|
||||||
</td>
|
</td>
|
||||||
<td style="border-bottom: 1px solid #006b3b;">
|
|
||||||
通讯总计数: {{ curDriver.health && curDriver.health.total_count }}
|
<td style="width:180px;border-bottom: 1px solid #006b3b;">成功计数: {{ curDriver.health &&
|
||||||
|
curDriver.health.success_count }}</td>
|
||||||
|
<td style="width:340px;border-bottom: 1px solid #006b3b;">
|
||||||
|
通讯最后一次成功时间: {{ curDriver.health && curDriver.health.last_success_time }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
<td >
|
|
||||||
驱动描述: {{ curDriver.driver_description }}
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
通讯成功计数: {{ curDriver.health && curDriver.health.success_count }}
|
通讯计数: {{ curDriver.health && curDriver.health.total_count }}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
通讯最后一次失败时间: {{ curDriver.health && curDriver.health.last_failure_ctime || '-'}}
|
失败计数: {{ curDriver.health && curDriver.health.failure_count }}
|
||||||
</td>
|
</td>
|
||||||
<td colspan="2">通讯最后一次失败原因: {{ curDriver.health && curDriver.health.last_failure_cause }}</td>
|
<td>
|
||||||
|
通讯最后一次失败时间: {{ curDriver.health && curDriver.health.last_failure_ctime || '-' }}
|
||||||
|
</td>
|
||||||
|
<!-- <td colspan="2">通讯最后一次失败原因: {{ curDriver.health && curDriver.health.last_failure_cause }}</td> -->
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</span>
|
</span>
|
||||||
|
@ -63,18 +56,20 @@
|
||||||
<div class="box-info1">
|
<div class="box-info1">
|
||||||
<div>
|
<div>
|
||||||
<el-tag size="medium" type="">设备名称: {{ curDevice.device_name }}</el-tag>
|
<el-tag size="medium" type="">设备名称: {{ curDevice.device_name }}</el-tag>
|
||||||
|
<el-tag size="medium" type="">设备状态: {{ !curDevice.device_disable ? '启用' : '停用' }} </el-tag>
|
||||||
<el-tag size="medium" type="">设备描述: {{ curDevice.device_description }} </el-tag>
|
<el-tag size="medium" type="">设备描述: {{ curDevice.device_description }} </el-tag>
|
||||||
</div>
|
</div>
|
||||||
<el-button type="danger" @click="doDevice">{{ !curDevice.device_disable ? '禁用' : '启用' }}</el-button>
|
<el-button type="danger" @click="doDevice">{{ !curDevice.device_disable ? '停用' : '启用' }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-table :data="tableData" height="600" border :header-cell-style="{ background: '#F6F7FC' }" size="large">
|
<el-table :data="tableData" height="600" border :header-cell-style="{ background: '#F6F7FC' }" size="large"
|
||||||
|
:row-class-name="tableRowClassName">
|
||||||
<el-table-column type="index" label="序号" width="80" align="center" />
|
<el-table-column type="index" label="序号" width="80" align="center" />
|
||||||
<el-table-column prop="point_name" label="名称" width="100" align="center" show-overflow-tooltip />
|
<el-table-column prop="point_name" label="名称" width="100" align="center" show-overflow-tooltip />
|
||||||
<el-table-column prop="point_description" label="描述" align="center" show-overflow-tooltip />
|
<el-table-column prop="point_description" label="描述" align="center" show-overflow-tooltip />
|
||||||
<el-table-column prop="point_quality" label="质量" width="80" align="center" show-overflow-tooltip>
|
<el-table-column prop="point_quality" label="质量" width="80" align="center" show-overflow-tooltip>
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ scope.row.point_quality ==1 ? 'good' : 'bad' }}</span>
|
<span>{{ scope.row.point_quality == 1 ? 'good' : 'bad' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="point_value" label="点位值" width="80" align="center" show-overflow-tooltip />
|
<el-table-column prop="point_value" label="点位值" width="80" align="center" show-overflow-tooltip />
|
||||||
|
@ -117,7 +112,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { onMounted, reactive, ref, toRefs, nextTick,onUnmounted } from "vue";
|
import { onMounted, reactive, ref, toRefs, nextTick, onUnmounted } from "vue";
|
||||||
import infoApi from "@/api/infoApi.js";
|
import infoApi from "@/api/infoApi.js";
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
import De from "@/components/De.vue";
|
import De from "@/components/De.vue";
|
||||||
|
@ -154,7 +149,7 @@ export default {
|
||||||
dialogVisible2: false,
|
dialogVisible2: false,
|
||||||
txStatus: [], //通讯状态
|
txStatus: [], //通讯状态
|
||||||
pointTypeOptions: {},
|
pointTypeOptions: {},
|
||||||
intervalId:null
|
intervalId: null
|
||||||
});
|
});
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
@ -169,6 +164,13 @@ export default {
|
||||||
clearInterval(state.intervalId);
|
clearInterval(state.intervalId);
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const tableRowClassName = ({ row, rowIndex }) => {
|
||||||
|
if (state.curDevice.device_disable) {
|
||||||
|
return '#ccc'
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
const getPointType = async () => {
|
const getPointType = async () => {
|
||||||
const parm = {};
|
const parm = {};
|
||||||
const res = await infoApi.getPointType(parm);
|
const res = await infoApi.getPointType(parm);
|
||||||
|
@ -183,9 +185,9 @@ export default {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
state.driverData = res.data || [];
|
state.driverData = res.data || [];
|
||||||
if (state.driverData.length > 0) {
|
if (state.driverData.length > 0) {
|
||||||
changeQd(0, state.driverData[0]);
|
let select = state.curDriver || state.driverData[0];
|
||||||
state.curDriver = state.driverData[0];
|
changeQd(0, select);
|
||||||
console.log(333, state.curDriver)
|
console.log(333, select)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,8 +218,8 @@ export default {
|
||||||
state.deviceData = res.data || [];
|
state.deviceData = res.data || [];
|
||||||
console.log(123, state.deviceData)
|
console.log(123, state.deviceData)
|
||||||
if (state.deviceData.length > 0) {
|
if (state.deviceData.length > 0) {
|
||||||
handleNodeClick(state.deviceData[0]);
|
let node = state.curDevice || state.deviceData[0];
|
||||||
state.curDevice = state.deviceData[0]
|
handleNodeClick(node);
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
console.log(123, state.deviceData[0].device_name)
|
console.log(123, state.deviceData[0].device_name)
|
||||||
taskTree.value.setCurrentKey(state.deviceData[0].device_name);
|
taskTree.value.setCurrentKey(state.deviceData[0].device_name);
|
||||||
|
@ -253,7 +255,7 @@ export default {
|
||||||
}
|
}
|
||||||
const res = !state.curDevice.device_disable ? await infoApi.stopDevice(param) : await infoApi.startDevice(param);
|
const res = !state.curDevice.device_disable ? await infoApi.stopDevice(param) : await infoApi.startDevice(param);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message || '请求成功');
|
ElMessage.success(res.data || res.message || '请求成功');
|
||||||
getDeviceData(state.curDriver.driver_name);
|
getDeviceData(state.curDriver.driver_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -296,7 +298,8 @@ export default {
|
||||||
openDe,
|
openDe,
|
||||||
openHis,
|
openHis,
|
||||||
openWrite,
|
openWrite,
|
||||||
getTxStatus
|
getTxStatus,
|
||||||
|
tableRowClassName
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -336,7 +339,7 @@ export default {
|
||||||
padding: 10px 5px;
|
padding: 10px 5px;
|
||||||
background: #00AAA3;
|
background: #00AAA3;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
margin:0 5px;
|
margin: 0 5px;
|
||||||
|
|
||||||
// border-right: 1px solid #006b3b;
|
// border-right: 1px solid #006b3b;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -191,7 +191,7 @@ export default {
|
||||||
ElMessage.success(res.data + ',保存网络后会重启' || "请求成功,保存网络后会重启");
|
ElMessage.success(res.data + ',保存网络后会重启' || "请求成功,保存网络后会重启");
|
||||||
getNet();
|
getNet();
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,7 +107,7 @@ export default {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
window.location.href = '/';
|
window.location.href = '/';
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const resetForm = () => {
|
const resetForm = () => {
|
||||||
|
|
|
@ -140,10 +140,10 @@ export default {
|
||||||
.then(async () => {
|
.then(async () => {
|
||||||
const res = await infoApi.delMb(item);
|
const res = await infoApi.delMb(item);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message || "请求成功");
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
getTableData();
|
getTableData();
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
|
|
@ -101,13 +101,13 @@ export default {
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getTxSupport();
|
getTxSupport();
|
||||||
getTxStatus();
|
getTxStatus();
|
||||||
// getTableData();
|
getTableData();
|
||||||
state.intervalId = setInterval(() =>
|
// state.intervalId = setInterval(() =>
|
||||||
getTableData(), 1000);
|
// getTableData(), 1000);
|
||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
clearInterval(state.intervalId);
|
// clearInterval(state.intervalId);
|
||||||
})
|
})
|
||||||
// 获取通讯驱动
|
// 获取通讯驱动
|
||||||
const getTxSupport = async () => {
|
const getTxSupport = async () => {
|
||||||
|
@ -206,10 +206,10 @@ export default {
|
||||||
}
|
}
|
||||||
const res = await infoApi.delTx(param);
|
const res = await infoApi.delTx(param);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message || "删除成功");
|
ElMessage.success(res.data || res.message || "删除成功");
|
||||||
getTableData();
|
getTableData();
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message || "删除失败");
|
ElMessage.error(res.data || res.message || "删除失败");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
@ -233,10 +233,10 @@ export default {
|
||||||
}
|
}
|
||||||
const res = !item.driver_enable ? await infoApi.startStatus(param) : await infoApi.stopStatus(param);
|
const res = !item.driver_enable ? await infoApi.startStatus(param) : await infoApi.stopStatus(param);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message || "请求成功");
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
getTableData();
|
getTableData();
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -170,10 +170,10 @@ export default {
|
||||||
const res = await infoApi.delSc(req_data);
|
const res = await infoApi.delSc(req_data);
|
||||||
const ret = response.decode(new Uint8Array(res));
|
const ret = response.decode(new Uint8Array(res));
|
||||||
if (ret.code == 0) {
|
if (ret.code == 0) {
|
||||||
ElMessage.success(res.message || "请求成功");
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
getTableData();
|
getTableData();
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
@ -187,10 +187,10 @@ export default {
|
||||||
};
|
};
|
||||||
const res = await infoApi.stopSc(param);
|
const res = await infoApi.stopSc(param);
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success(res.message || "请求成功");
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
getTableData();
|
getTableData();
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -131,10 +131,10 @@ export default {
|
||||||
const res = await infoApi.postRules(req_data1);
|
const res = await infoApi.postRules(req_data1);
|
||||||
const ret = response.decode(new Uint8Array(res));
|
const ret = response.decode(new Uint8Array(res));
|
||||||
if (ret.code == 0) {
|
if (ret.code == 0) {
|
||||||
ElMessage.success(res.message || "请求成功");
|
ElMessage.success(res.data || res.message || "请求成功");
|
||||||
getTableData();
|
getTableData();
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
@ -175,10 +175,10 @@ export default {
|
||||||
const res = item.enable==='启动' ? await infoApi.postRules(req_data2) : await infoApi.postRules(req_data1);
|
const res = item.enable==='启动' ? await infoApi.postRules(req_data2) : await infoApi.postRules(req_data1);
|
||||||
const ret = response.decode(new Uint8Array(res));
|
const ret = response.decode(new Uint8Array(res));
|
||||||
if (ret.code == 0) {
|
if (ret.code == 0) {
|
||||||
ElMessage.success(res.message || "更新成功");
|
ElMessage.success(res.data || res.message || "更新成功");
|
||||||
getTableData();
|
getTableData();
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message);
|
ElMessage.error(res.data || res.message || "请求失败");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const dialogClose = () => {
|
const dialogClose = () => {
|
||||||
|
|
|
@ -37,7 +37,7 @@ export default ({ mode }) => defineConfig({
|
||||||
'/api': {
|
'/api': {
|
||||||
// target: 'http://cdcm_test_api.shikicc.com:58909',
|
// target: 'http://cdcm_test_api.shikicc.com:58909',
|
||||||
// target: 'http://frp.shikicc.com:58951',
|
// target: 'http://frp.shikicc.com:58951',
|
||||||
target: 'https://cdcm_api2.shikicc.com',
|
target: 'http://cdcm_test_api.shikicc.com:8900',
|
||||||
// target: 'https://cdcm_api.shikicc.com',
|
// target: 'https://cdcm_api.shikicc.com',
|
||||||
// target: 'http://localhost:8088',
|
// target: 'http://localhost:8088',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
|
|
Loading…
Reference in New Issue