解决打不了包的问题

dev
songwenxuan 2025-09-21 10:04:55 +08:00
parent 738010ef96
commit 783a8b2425
28 changed files with 150 additions and 82 deletions

View File

@ -1,9 +1,9 @@
VITE_BASE=/ VITE_BASE=/
# VITE_BASE_URL=http://192.168.0.25:8095/ # VITE_BASE_URL=http://192.168.0.25:8095/
VITE_BASE_URL=http://192.168.0.37:8095/ VITE_BASE_URL=http://192.168.4.226:8095/
#websocket t掉线 #websocket t掉线
VITE_ON_LINE_WEB_SOCKET_URL=ws://192.168.0.37:8869 VITE_ON_LINE_WEB_SOCKET_URL=ws://192.168.4.226:8869
#websocket 在线学习 #websocket 在线学习
VITE_LEARNING_WEB_SOCKET_URL=ws://192.168.0.37:8899 VITE_LEARNING_WEB_SOCKET_URL=ws://192.168.4.226:8899

View File

@ -1,6 +1,6 @@
VITE_BASE=/dist VITE_BASE=/dist
#VITE_BASE_URL=http://10.199.64.27:8520/integrated_yjb/ #VITE_BASE_URL=http://10.199.64.27:8520/integrated_yjb/
VITE_BASE_URL=http://192.168.20.240:8542/integrated_yjb/ VITE_BASE_URL=http://172.16.112.251:80/api/
#VITE_BASE_URL=https://qaaqwh.qhdsafety.com/integrated_whb/ #VITE_BASE_URL=https://qaaqwh.qhdsafety.com/integrated_whb/
#websocket t掉线 #websocket t掉线

View File

@ -23,7 +23,7 @@ module.exports = {
"camelcase": "off", "camelcase": "off",
"eqeqeq": "error", "eqeqeq": "error",
"vue/no-template-shadow": "error", "vue/no-template-shadow": "error",
"vue/attribute-hyphenation": "error", "vue/attribute-hyphenation": "off",
"vue/html-end-tags": "error", "vue/html-end-tags": "error",
"vue/eqeqeq": "error", "vue/eqeqeq": "error",
"vue/component-name-in-template-casing": ["error", "kebab-case"], "vue/component-name-in-template-casing": ["error", "kebab-case"],

View File

@ -14,6 +14,7 @@
"@icon-park/vue-next": "^1.4.2", "@icon-park/vue-next": "^1.4.2",
"@vueuse/core": "^9.13.0", "@vueuse/core": "^9.13.0",
"@vueuse/integrations": "^10.7.1", "@vueuse/integrations": "^10.7.1",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12", "@wangeditor/editor-for-vue": "^5.1.12",
"animate.css": "^4.1.1", "animate.css": "^4.1.1",
"autofit.js": "^3.0.7", "autofit.js": "^3.0.7",
@ -21,11 +22,11 @@
"dayjs": "^1.11.10", "dayjs": "^1.11.10",
"echarts": "^5.4.3", "echarts": "^5.4.3",
"element-plus": "^2.6.1", "element-plus": "^2.6.1",
"mp4box": "^0.5.2",
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",
"jspdf": "^2.5.1", "jspdf": "^2.5.1",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"mitt": "^3.0.1", "mitt": "^3.0.1",
"mp4box": "^0.5.2",
"nanoid": "^5.0.4", "nanoid": "^5.0.4",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
"pako": "^2.1.0", "pako": "^2.1.0",

View File

@ -12,10 +12,12 @@
:show-pagination="false" :show-pagination="false"
:data="data.realTimeMonitoringDataList" :data="data.realTimeMonitoringDataList"
> >
<el-table-column prop="PLC_NAME" label="监测节点名称" /> <!-- <el-table-column prop="PLC_NAME" label="监测节点名称" />-->
<el-table-column prop="TARGET_NAME" label="监测节点名称" />
<el-table-column prop="CURRENT_VALUE" label="当前值"> <el-table-column prop="CURRENT_VALUE" label="当前值">
<template #default="{ row }"> <template #default="{ row }">
{{ formatValue(row.SIGNAL_TYPE, row.CURRENT_VALUE) }} <!-- {{ formatValue(row.SIGNAL_TYPE, row.CURRENT_VALUE) }}-->
{{ row.CURRENT_VALUE }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="TARGET_UNIT" label="单位"/> <el-table-column prop="TARGET_UNIT" label="单位"/>
@ -75,12 +77,12 @@ const { pause } = useIntervalFn(
{ immediate: true, immediateCallback: true } { immediate: true, immediateCallback: true }
); );
/* ----------------- 工具:把原始值转换成最终显示文本 ----------------- */ /* ----------------- 工具:把原始值转换成最终显示文本 ----------------- */
function formatValue(type, val) { // function formatValue(type, val) {
// ID // // ID
if (type==='1') return val // if (type==='1') return val
// 0.0 -> -> // // 0.0 -> ->
return val === '0.0' ? '关' : '开' // return val === '0.0' ? '' : ''
} // }
</script> </script>
<style scoped lang="scss"></style> <style scoped lang="scss"></style>

View File

@ -50,6 +50,8 @@ export const setIronIronPlcSensorRemove = (params) =>
post("/tbIronIronPlc/removeSensor", params); post("/tbIronIronPlc/removeSensor", params);
export const setIronIronPlcSensorEdit = (params) => export const setIronIronPlcSensorEdit = (params) =>
post("/tbIronIronPlc/editSensor", params); post("/tbIronIronPlc/editSensor", params);
export const setIronIronPlcSensorAdd = (params) =>
post("/tbIronIronPlc/addSensor", params);
export const setIronPlcImport = (params) => export const setIronPlcImport = (params) =>
upload("/tbIronIronPlc/readExcel", params); upload("/tbIronIronPlc/readExcel", params);

View File

@ -133,7 +133,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
</div> </div>
</template> </template>

View File

@ -240,7 +240,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
<layout-video <layout-video
v-model:visible="data.videoDialog.visible" v-model:visible="data.videoDialog.visible"

View File

@ -134,7 +134,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
</div> </div>
</template> </template>

View File

@ -246,7 +246,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
<layout-video <layout-video
v-model:visible="data.videoDialog.visible" v-model:visible="data.videoDialog.visible"

View File

@ -122,7 +122,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
</div> </div>
</template> </template>

View File

@ -223,7 +223,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
<layout-video <layout-video
v-model:visible="data.videoDialog.visible" v-model:visible="data.videoDialog.visible"

View File

@ -122,7 +122,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
</div> </div>
</template> </template>

View File

@ -230,7 +230,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
<layout-video <layout-video
v-model:visible="data.videoDialog.visible" v-model:visible="data.videoDialog.visible"

View File

@ -123,7 +123,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
</div> </div>
</template> </template>

View File

@ -229,7 +229,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
<layout-video <layout-video
v-model:visible="data.videoDialog.visible" v-model:visible="data.videoDialog.visible"

View File

@ -127,7 +127,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
</div> </div>
</template> </template>

View File

@ -244,7 +244,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
<show-points <show-points
:id="data.showPointsDialog.id" :id="data.showPointsDialog.id"

View File

@ -118,7 +118,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
</div> </div>
</template> </template>

View File

@ -231,7 +231,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
<layout-video <layout-video
v-model:visible="data.videoDialog.visible" v-model:visible="data.videoDialog.visible"

View File

@ -1,11 +1,11 @@
<template> <template>
<el-dialog v-model="visible" title="完善" :before-close="fnClose"> <el-dialog v-model="visible" :title="type === 'add' ? '新增' : '完善'" :before-close="fnClose">
<el-form ref="formRef" :rules="rules" :model="form" label-width="150px"> <el-form ref="formRef" :rules="rules" :model="form" label-width="150px">
<el-form-item label="指标名称" prop="TARGET_NAME"> <el-form-item label="指标名称" prop="TARGET_NAME">
<el-input v-model="form.TARGET_NAME" disabled /> <el-input v-model="form.TARGET_NAME" />
</el-form-item> </el-form-item>
<el-form-item label="指标采集点位置" prop="TARGET_PLACE"> <el-form-item label="指标采集点位置" prop="TARGET_PLACE">
<el-input v-model="form.TARGET_PLACE" disabled /> <el-input v-model="form.TARGET_PLACE" />
</el-form-item> </el-form-item>
<el-form-item label="描述" prop="TARGET_DESCRIPTION"> <el-form-item label="描述" prop="TARGET_DESCRIPTION">
<el-input v-model="form.TARGET_DESCRIPTION" /> <el-input v-model="form.TARGET_DESCRIPTION" />
@ -188,7 +188,7 @@ import { useVModels } from "@vueuse/core";
import { debounce } from "throttle-debounce"; import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js"; import useFormValidate from "@/assets/js/useFormValidate.js";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { setIronIronPlcSensorEdit } from "@/request/tb_iron.js"; import {setIronIronPlcSensorAdd, setIronIronPlcSensorEdit} from "@/request/tb_iron.js";
const props = defineProps({ const props = defineProps({
visible: { visible: {
@ -201,9 +201,13 @@ const props = defineProps({
required: true, required: true,
default: () => ({}), default: () => ({}),
}, },
type: {
type: String,
default: "操作",
},
}); });
const emits = defineEmits(["update:visible", "update:form", "get-data"]); const emits = defineEmits(["update:visible", "update:form", "update:type", "get-data"]);
const { visible, form } = useVModels(props, emits); const { visible, form, type } = useVModels(props, emits);
const rules = { const rules = {
BIT_NO: [{ required: true, message: "位号不能为空", trigger: "blur" }], BIT_NO: [{ required: true, message: "位号不能为空", trigger: "blur" }],
TARGET_UNIT: [ TARGET_UNIT: [
@ -235,15 +239,19 @@ const fnClose = () => {
visible.value = false; visible.value = false;
}; };
const fnSubmit = debounce( const fnSubmit = debounce(
1000, 1000,
async () => { async () => {
await useFormValidate(formRef); await useFormValidate(formRef);
await setIronIronPlcSensorEdit({ ...form.value }); if (type.value === 'add') {
ElMessage.success("操作成功"); await setIronIronPlcSensorAdd({ ...form.value });
fnClose(); } else {
emits("get-data"); await setIronIronPlcSensorEdit({ ...form.value });
}, }
{ atBegin: true } ElMessage.success("操作成功");
fnClose();
emits("get-data");
},
{ atBegin: true }
); );
</script> </script>

View File

@ -27,6 +27,7 @@ const data = reactive({
addOrEditDialog: { addOrEditDialog: {
visible: false, visible: false,
form: {}, form: {},
type: "",
}, },
qrCodeDialog: { qrCodeDialog: {
visible: false, visible: false,
@ -35,9 +36,14 @@ const data = reactive({
}); });
const emits = defineEmits(["update:visible", "get-data"]); const emits = defineEmits(["update:visible", "get-data"]);
const fnEdit = (form) => { const fnEdit = (form, edit) => {
data.addOrEditDialog.visible = true; data.addOrEditDialog.visible = true;
data.addOrEditDialog.form = form; if (edit === 'add') {
data.addOrEditDialog.form = { PLC_ID: props.plcId, SIGNAL_TYPE: '', TARGET_STATUS: '' };
} else {
data.addOrEditDialog.form = form;
}
data.addOrEditDialog.type = edit;
}; };
const { visible } = useVModels(props, emits); const { visible } = useVModels(props, emits);
const fnClose = () => { const fnClose = () => {
@ -118,11 +124,17 @@ const fnClose = () => {
</el-table-column> </el-table-column>
<el-table-column label="操作" width="250"> <el-table-column label="操作" width="250">
<template #default="{ row }"> <template #default="{ row }">
<el-button type="primary" text link @click="fnEdit(row)"> <el-button type="primary" text link @click="fnEdit(row, 'edit')">
{{ row.TARGET_STATUS === 2 ? "完善" : "修改" }} {{ row.TARGET_STATUS === 2 ? "完善" : "修改" }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<template #button>
<el-button type="primary" @click="fnEdit('', 'add')">
新增
</el-button>
<!-- <el-button type="danger" @click="fnDeleteAll"> </el-button>-->
</template>
</layout-table> </layout-table>
</layout-card> </layout-card>
@ -131,9 +143,10 @@ const fnClose = () => {
</template> </template>
</el-dialog> </el-dialog>
<edit-sensor <edit-sensor
v-model:visible="data.addOrEditDialog.visible" v-model:visible="data.addOrEditDialog.visible"
v-model:form="data.addOrEditDialog.form" v-model:form="data.addOrEditDialog.form"
@get-data="fnResetPagination" v-model:type="data.addOrEditDialog.type"
@get-data="fnResetPagination"
/> />
</template> </template>

View File

@ -1,11 +1,11 @@
<template> <template>
<el-dialog v-model="visible" title="完善" :before-close="fnClose"> <el-dialog v-model="visible" :title="type === 'add' ? '新增' : '完善'" :before-close="fnClose">
<el-form ref="formRef" :rules="rules" :model="form" label-width="150px"> <el-form ref="formRef" :rules="rules" :model="form" label-width="150px">
<el-form-item label="指标名称" prop="TARGET_NAME"> <el-form-item label="指标名称" prop="TARGET_NAME">
<el-input v-model="form.TARGET_NAME" disabled /> <el-input v-model="form.TARGET_NAME" />
</el-form-item> </el-form-item>
<el-form-item label="指标采集点位置" prop="TARGET_PLACE"> <el-form-item label="指标采集点位置" prop="TARGET_PLACE">
<el-input v-model="form.TARGET_PLACE" disabled /> <el-input v-model="form.TARGET_PLACE" />
</el-form-item> </el-form-item>
<el-form-item label="描述" prop="TARGET_DESCRIPTION"> <el-form-item label="描述" prop="TARGET_DESCRIPTION">
<el-input v-model="form.TARGET_DESCRIPTION" /> <el-input v-model="form.TARGET_DESCRIPTION" />
@ -188,7 +188,7 @@ import { useVModels } from "@vueuse/core";
import { debounce } from "throttle-debounce"; import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js"; import useFormValidate from "@/assets/js/useFormValidate.js";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { setIronIronPlcSensorEdit } from "@/request/tb_iron.js"; import {setIronIronPlcSensorAdd, setIronIronPlcSensorEdit} from "@/request/tb_iron.js";
const props = defineProps({ const props = defineProps({
visible: { visible: {
@ -201,9 +201,13 @@ const props = defineProps({
required: true, required: true,
default: () => ({}), default: () => ({}),
}, },
type: {
type: String,
default: "操作",
},
}); });
const emits = defineEmits(["update:visible", "update:form", "get-data"]); const emits = defineEmits(["update:visible", "update:form", "update:type", "get-data"]);
const { visible, form } = useVModels(props, emits); const { visible, form, type } = useVModels(props, emits);
const rules = { const rules = {
BIT_NO: [{ required: true, message: "位号不能为空", trigger: "blur" }], BIT_NO: [{ required: true, message: "位号不能为空", trigger: "blur" }],
TARGET_UNIT: [ TARGET_UNIT: [
@ -235,15 +239,19 @@ const fnClose = () => {
visible.value = false; visible.value = false;
}; };
const fnSubmit = debounce( const fnSubmit = debounce(
1000, 1000,
async () => { async () => {
await useFormValidate(formRef); await useFormValidate(formRef);
await setIronIronPlcSensorEdit({ ...form.value }); if (type.value === 'add') {
ElMessage.success("操作成功"); await setIronIronPlcSensorAdd({ ...form.value });
fnClose(); } else {
emits("get-data"); await setIronIronPlcSensorEdit({ ...form.value });
}, }
{ atBegin: true } ElMessage.success("操作成功");
fnClose();
emits("get-data");
},
{ atBegin: true }
); );
</script> </script>

View File

@ -27,6 +27,7 @@ const data = reactive({
addOrEditDialog: { addOrEditDialog: {
visible: false, visible: false,
form: {}, form: {},
type: "",
}, },
qrCodeDialog: { qrCodeDialog: {
visible: false, visible: false,
@ -35,9 +36,14 @@ const data = reactive({
}); });
const emits = defineEmits(["update:visible", "get-data"]); const emits = defineEmits(["update:visible", "get-data"]);
const fnEdit = (form) => { const fnEdit = (form, edit) => {
data.addOrEditDialog.visible = true; data.addOrEditDialog.visible = true;
data.addOrEditDialog.form = form; if (edit === 'add') {
data.addOrEditDialog.form = { PLC_ID: props.plcId, SIGNAL_TYPE: '', TARGET_STATUS: '' };
} else {
data.addOrEditDialog.form = form;
}
data.addOrEditDialog.type = edit;
}; };
const { visible } = useVModels(props, emits); const { visible } = useVModels(props, emits);
const fnClose = () => { const fnClose = () => {
@ -118,11 +124,17 @@ const fnClose = () => {
</el-table-column> </el-table-column>
<el-table-column label="操作" width="250"> <el-table-column label="操作" width="250">
<template #default="{ row }"> <template #default="{ row }">
<el-button type="primary" text link @click="fnEdit(row)"> <el-button type="primary" text link @click="fnEdit(row, 'edit')">
{{ row.TARGET_STATUS === 2 ? "完善" : "修改" }} {{ row.TARGET_STATUS === 2 ? "完善" : "修改" }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<template #button>
<el-button type="primary" @click="fnEdit('', 'add')">
新增
</el-button>
<!-- <el-button type="danger" @click="fnDeleteAll"> </el-button>-->
</template>
</layout-table> </layout-table>
</layout-card> </layout-card>
@ -131,9 +143,10 @@ const fnClose = () => {
</template> </template>
</el-dialog> </el-dialog>
<edit-sensor <edit-sensor
v-model:visible="data.addOrEditDialog.visible" v-model:visible="data.addOrEditDialog.visible"
v-model:form="data.addOrEditDialog.form" v-model:form="data.addOrEditDialog.form"
@get-data="fnResetPagination" v-model:type="data.addOrEditDialog.type"
@get-data="fnResetPagination"
/> />
</template> </template>

View File

@ -1,11 +1,11 @@
<template> <template>
<el-dialog v-model="visible" title="完善" :before-close="fnClose"> <el-dialog v-model="visible" :title="type === 'add' ? '新增' : '完善'" :before-close="fnClose">
<el-form ref="formRef" :rules="rules" :model="form" label-width="150px"> <el-form ref="formRef" :rules="rules" :model="form" label-width="150px">
<el-form-item label="指标名称" prop="TARGET_NAME"> <el-form-item label="指标名称" prop="TARGET_NAME">
<el-input v-model="form.TARGET_NAME" disabled /> <el-input v-model="form.TARGET_NAME" />
</el-form-item> </el-form-item>
<el-form-item label="指标采集点位置" prop="TARGET_PLACE"> <el-form-item label="指标采集点位置" prop="TARGET_PLACE">
<el-input v-model="form.TARGET_PLACE" disabled /> <el-input v-model="form.TARGET_PLACE" />
</el-form-item> </el-form-item>
<el-form-item label="描述" prop="TARGET_DESCRIPTION"> <el-form-item label="描述" prop="TARGET_DESCRIPTION">
<el-input v-model="form.TARGET_DESCRIPTION" /> <el-input v-model="form.TARGET_DESCRIPTION" />
@ -188,7 +188,7 @@ import { useVModels } from "@vueuse/core";
import { debounce } from "throttle-debounce"; import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js"; import useFormValidate from "@/assets/js/useFormValidate.js";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { setIronIronPlcSensorEdit } from "@/request/tb_iron.js"; import {setIronIronPlcSensorAdd, setIronIronPlcSensorEdit} from "@/request/tb_iron.js";
const props = defineProps({ const props = defineProps({
visible: { visible: {
@ -201,9 +201,13 @@ const props = defineProps({
required: true, required: true,
default: () => ({}), default: () => ({}),
}, },
type: {
type: String,
default: "操作",
},
}); });
const emits = defineEmits(["update:visible", "update:form", "get-data"]); const emits = defineEmits(["update:visible", "update:form", "update:type", "get-data"]);
const { visible, form } = useVModels(props, emits); const { visible, form, type } = useVModels(props, emits);
const rules = { const rules = {
BIT_NO: [{ required: true, message: "位号不能为空", trigger: "blur" }], BIT_NO: [{ required: true, message: "位号不能为空", trigger: "blur" }],
TARGET_UNIT: [ TARGET_UNIT: [
@ -238,7 +242,11 @@ const fnSubmit = debounce(
1000, 1000,
async () => { async () => {
await useFormValidate(formRef); await useFormValidate(formRef);
await setIronIronPlcSensorEdit({ ...form.value }); if (type.value === 'add') {
await setIronIronPlcSensorAdd({ ...form.value });
} else {
await setIronIronPlcSensorEdit({ ...form.value });
}
ElMessage.success("操作成功"); ElMessage.success("操作成功");
fnClose(); fnClose();
emits("get-data"); emits("get-data");

View File

@ -27,6 +27,7 @@ const data = reactive({
addOrEditDialog: { addOrEditDialog: {
visible: false, visible: false,
form: {}, form: {},
type: "",
}, },
qrCodeDialog: { qrCodeDialog: {
visible: false, visible: false,
@ -35,9 +36,14 @@ const data = reactive({
}); });
const emits = defineEmits(["update:visible", "get-data"]); const emits = defineEmits(["update:visible", "get-data"]);
const fnEdit = (form) => { const fnEdit = (form, edit) => {
data.addOrEditDialog.visible = true; data.addOrEditDialog.visible = true;
data.addOrEditDialog.form = form; if (edit === 'add') {
data.addOrEditDialog.form = { PLC_ID: props.plcId, SIGNAL_TYPE: '', TARGET_STATUS: '' };
} else {
data.addOrEditDialog.form = form;
}
data.addOrEditDialog.type = edit;
}; };
const { visible } = useVModels(props, emits); const { visible } = useVModels(props, emits);
const fnClose = () => { const fnClose = () => {
@ -118,11 +124,17 @@ const fnClose = () => {
</el-table-column> </el-table-column>
<el-table-column label="操作" width="250"> <el-table-column label="操作" width="250">
<template #default="{ row }"> <template #default="{ row }">
<el-button type="primary" text link @click="fnEdit(row)"> <el-button type="primary" text link @click="fnEdit(row, 'edit')">
{{ row.TARGET_STATUS === 2 ? "完善" : "修改" }} {{ row.TARGET_STATUS === 2 ? "完善" : "修改" }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<template #button>
<el-button type="primary" @click="fnEdit('', 'add')">
新增
</el-button>
<!-- <el-button type="danger" @click="fnDeleteAll"> </el-button>-->
</template>
</layout-table> </layout-table>
</layout-card> </layout-card>
@ -133,6 +145,7 @@ const fnClose = () => {
<edit-sensor <edit-sensor
v-model:visible="data.addOrEditDialog.visible" v-model:visible="data.addOrEditDialog.visible"
v-model:form="data.addOrEditDialog.form" v-model:form="data.addOrEditDialog.form"
v-model:type="data.addOrEditDialog.type"
@get-data="fnResetPagination" @get-data="fnResetPagination"
/> />
</template> </template>

View File

@ -109,7 +109,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
</div> </div>
</template> </template>

View File

@ -212,7 +212,7 @@
<check-list <check-list
v-if="data.checkListDialog.visible" v-if="data.checkListDialog.visible"
v-model:visible="data.checkListDialog.visible" v-model:visible="data.checkListDialog.visible"
v-model:foreignKey="data.checkListDialog.FOREIGN_KEY" v-model:foreign-key="data.checkListDialog.FOREIGN_KEY"
/> />
<layout-video <layout-video
v-model:visible="data.videoDialog.visible" v-model:visible="data.videoDialog.visible"