From db75c6a59acad51cb17577c522e6a4debf72b3b6 Mon Sep 17 00:00:00 2001 From: 13937891274 <kxc0822> Date: 星期二, 02 八月 2022 17:54:30 +0800 Subject: [PATCH] 数据对接 --- src/components/equipmentDailog/DailogS.vue | 462 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 337 insertions(+), 125 deletions(-) diff --git a/src/components/equipmentDailog/DailogS.vue b/src/components/equipmentDailog/DailogS.vue index 5333635..fe3746d 100644 --- a/src/components/equipmentDailog/DailogS.vue +++ b/src/components/equipmentDailog/DailogS.vue @@ -1,11 +1,11 @@ <template> - <el-dialog :fullscreen="full" v-model="dialogVisible" title="新建仪器仪表" width="60%"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" label-width="130px"> + <el-dialog :fullscreen="full" v-model="dialogVisible" draggable :title="titles" width="60%"> + <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> + <el-form :model="form" label-width="130px" :disabled="disabled"> <el-row> <el-col :span="11"> <el-form-item label="类型/类别外键" size="default"> - <el-input v-model="form.name" placeholder="请选择"> + <el-input v-model="form.equipmentTypeId" placeholder="请选择"> <template #append> <el-button :icon="Search" @click="opencategory"></el-button> </template> @@ -21,7 +21,7 @@ <el-row> <el-col :span="11"> <el-form-item label="所属部门" size="default"> - <el-select v-model="form.region" placeholder="请选择" style="width: 100%"> + <el-select v-model="form.departmentId" placeholder="请选择" style="width: 100%"> <el-option label="Zone one" value="shanghai" /> <el-option label="Zone two" value="beijing" /> </el-select> @@ -29,7 +29,7 @@ </el-col> <el-col :span="11" :offset="2"> <el-form-item label="具体位置" size="default"> - <el-input v-model="form.name" placeholder="请填写具体位置" /> + <el-input v-model="form.position" placeholder="请填写具体位置" /> </el-form-item> </el-col> </el-row> @@ -37,12 +37,12 @@ <el-row> <el-col :span="11"> <el-form-item label="负责人姓名" size="default"> - <el-input v-model="form.name" placeholder="请填写负责人姓名" /> + <el-input v-model="form.leadingPersonName" placeholder="请填写负责人姓名" /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> <el-form-item label="联系人" size="default"> - <el-input v-model="form.name" placeholder="请选择"> + <el-input v-model="form.connectPersonId" placeholder="请选择"> <template #append> <el-button :icon="Search" @click="openUser"></el-button> </template> @@ -53,7 +53,7 @@ <el-row> <el-col :span="11"> <el-form-item label="录入人" size="default"> - <el-input v-model="form.name" placeholder="请选择"> + <el-input v-model="form.inputPersonId" placeholder="请选择"> <template #append> <el-button :icon="Search" @click="openUser"></el-button> </template> @@ -62,7 +62,7 @@ </el-col> <el-col :span="11" :offset="2"> <el-form-item label="责任人" size="default"> - <el-input v-model="form.name" placeholder="请选择"> + <el-input v-model="form.responsibilityPersonId" placeholder="请选择"> <template #append> <el-button :icon="Search" @click="openUser"></el-button> </template> @@ -73,7 +73,7 @@ <el-row> <el-col :span="11"> <el-form-item label="装置部位分类" size="default"> - <el-select v-model="form.region" placeholder="请选择" style="width: 100%"> + <el-select v-model="form.partType" placeholder="请选择" style="width: 100%"> <el-option label="Zone one" value="shanghai" /> <el-option label="Zone two" value="beijing" /> </el-select> @@ -81,14 +81,14 @@ </el-col> <el-col :span="11" :offset="2"> <el-form-item label="检查周期" size="default"> - <el-input v-model="form.name" placeholder="请选择检查周期" /> + <el-input v-model="form.checkCycle" placeholder="请选择检查周期" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="11"> <el-form-item label="相关应急预案" size="default"> - <el-input v-model="form.name" placeholder="请选择"> + <el-input v-model="form.emergencePlanId" placeholder="请选择"> <template #append> <el-button :icon="Search" @click="openPlan"></el-button> </template> @@ -97,7 +97,7 @@ </el-col> <el-col :span="11" :offset="2"> <el-form-item label="主要危险有害因素" size="default"> - <el-input v-model="form.name" placeholder="请选择" /> + <el-input v-model="form.dangerousElement" placeholder="请选择" /> </el-form-item> </el-col> </el-row> @@ -105,13 +105,13 @@ <el-row> <el-col :span="11"> <el-form-item label="易导致风险" size="default"> - <el-input v-model="form.name" placeholder="请选择易导致风险" /> + <el-input v-model="form.toDangerous" placeholder="请选择易导致风险" /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> <el-form-item label="应急处置措施" size="default"> - <el-input v-model="form.name" placeholder="请选择应急处置措施" /> + <el-input v-model="form.treatment" placeholder="请选择应急处置措施" /> </el-form-item> </el-col> </el-row> @@ -120,6 +120,7 @@ <el-col :span="24"> <el-form-item label="现场图片"> <el-upload + v-model="form.scenePic" class="avatar-uploader" action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" :show-file-list="false" @@ -140,70 +141,79 @@ </el-form> <el-tabs v-model="activeName" class="demo-tabs"> <el-tab-pane label="设备保养" name="first"> - <el-button type="primary" @click="openMaintenance">新增</el-button> - <el-table :data="tableData" style="width: 100%"> - <el-table-column align="center" prop="date" label="保养情况" /> - <el-table-column align="center" prop="name" label="保养负责人" /> - <el-table-column align="center" prop="address" label="保养日期" /> - <el-table-column align="center" prop="address" label="保养负责人单位" /> - <el-table-column align="center" prop="address" label="操作"> - <template #default> - <el-button link type="primary" size="small">查看</el-button> + <el-button type="primary" size="default" @click="openMaintenance('新增', '')">新增</el-button> + <el-table :data="form.takecareDetailList" style="width: 100%"> + <el-table-column align="center" prop="takecareMemo" label="保养情况" /> + <el-table-column align="center" prop="leadingPersonId" label="保养负责人" /> + <el-table-column align="center" prop="takecareDate" label="保养日期" /> + <el-table-column align="center" prop="leadingPersonDepartmentId" label="保养负责人单位" /> + <el-table-column align="center" label="操作"> + <template #default="scope"> + <el-button link type="primary" @click="openMaintenance('查看', scope.row)" size="small">查看</el-button> + <el-button link type="primary" @click="openMaintenance('修改', scope.row)" size="small">修改</el-button> + <el-button link type="primary" @click="deleteA(scope.row)" size="small">删除</el-button> </template> </el-table-column> </el-table> </el-tab-pane> <el-tab-pane label="设备检测" name="second"> - <el-button type="primary" @click="openDetect">新增</el-button> - <el-table :data="tableData" style="width: 100%"> - <el-table-column align="center" prop="date" label="检测人" /> - <el-table-column align="center" prop="name" label="检测日期" /> - <el-table-column align="center" prop="address" label="检测人单位" /> - <el-table-column align="center" prop="address" label="检测内容" /> - <el-table-column align="center" prop="address" label="检测结果" /> - <el-table-column align="center" prop="address" label="检测状态" /> - <el-table-column align="center" prop="address" label="操作"> - <template #default> - <el-button link type="primary" size="small">查看</el-button> + <el-button type="primary" size="default" @click="openDetect('新增', '')">新增</el-button> + <el-table :data="form.testDetailList" style="width: 100%"> + <el-table-column align="center" prop="testPersonId" label="检测人" /> + <el-table-column align="center" prop="testDate" label="检测日期" /> + <el-table-column align="center" prop="testPersonDepartmentId" label="检测人单位" /> + <el-table-column align="center" prop="testMemo" label="检测内容" /> + <el-table-column align="center" prop="testResult" label="检测结果" /> + <el-table-column align="center" prop="testStatus" label="检测状态" /> + <el-table-column align="center" label="操作"> + <template #default="scope"> + <el-button link type="primary" @click="openDetect('查看', scope.row)" size="small">查看</el-button> + <el-button link type="primary" @click="openDetect('修改', scope.row)" size="small">修改</el-button> + <el-button link type="primary" @click="deleteB(scope.row)" size="small">删除</el-button> </template> </el-table-column> </el-table> </el-tab-pane> <el-tab-pane label="设备维修" name="third"> - <el-button type="primary" @click="openRepair">新增</el-button> - <el-table :data="tableData" style="width: 100%"> - <el-table-column align="center" prop="date" label="设施异常项" /> - <el-table-column align="center" prop="name" label="维修状态" /> - <el-table-column align="center" prop="address" label="维修情况" /> - <el-table-column align="center" prop="address" label="维修负责人" /> - <el-table-column align="center" prop="address" label="维修负责人单位" /> - <el-table-column align="center" prop="address" label="维修开始日期" /> - <el-table-column align="center" prop="address" label="维修结束日期" /> - <el-table-column align="center" prop="address" label="操作"> - <template #default> - <el-button link type="primary" size="small">查看</el-button> + <el-button type="primary" size="default" @click="openRepair('新增', '')">新增</el-button> + <el-table :data="form.repaireDetailList" style="width: 100%"> + <el-table-column align="center" prop="exceptionInfo" label="设施异常项" /> + <el-table-column align="center" prop="repairStatus" label="维修状态" /> + <el-table-column align="center" prop="repairMemo" label="维修情况" /> + <el-table-column align="center" prop="repairPersonId" label="维修负责人" /> + <el-table-column align="center" prop="repairPersonDepartmentId" label="维修负责人单位" /> + <el-table-column align="center" prop="repairStartDate" label="维修开始日期" /> + <el-table-column align="center" prop="repairEndDate" label="维修结束日期" /> + <el-table-column align="center" label="操作"> + <template #default="scope"> + <el-button link type="primary" @click="openRepair('查看', scope.row)" size="small">查看</el-button> + <el-button link type="primary" @click="openRepair('修改', scope.row)" size="small">修改</el-button> + <el-button link type="primary" @click="deleteC(scope.row)" size="small">删除</el-button> </template> </el-table-column> </el-table> </el-tab-pane> - <el-tab-pane label="检查标准设置" name="fourth"> - <el-button type="primary" @click="openStandard">新增</el-button> - <el-table :data="tableData" style="width: 100%"> - <el-table-column align="center" type="index" label="序号" width="75" /> - <el-table-column align="center" prop="name" label="检查内容" /> - <el-table-column align="center" prop="address" label="检查指标" /> - <el-table-column align="center" prop="address" label="单位" /> - <el-table-column align="center" prop="address" label="巡检部位" /> - <el-table-column align="center" prop="address" label="频次" /> - <el-table-column align="center" prop="address" label="操作"> - <template #default> - <el-button link type="primary" size="small">查看</el-button> + <el-tab-pane label="检查标准设置" name="fourth" + >checkContent + <el-button type="primary" size="default" @click="openStandard('新增', '')">新增</el-button> + <el-table :data="form.checkStandardeDetailList" style="width: 100%"> + <el-table-column align="center" type="indexNum" label="序号" width="75" /> + <el-table-column align="center" prop="checkContent" label="检查内容" /> + <el-table-column align="center" prop="checkTarget" label="检查指标" /> + <el-table-column align="center" prop="unit" label="单位" /> + <el-table-column align="center" prop="checkPart" label="巡检部位" /> + <el-table-column align="center" prop="rate" label="频次" /> + <el-table-column align="center" label="操作"> + <template #default="scope"> + <el-button link type="primary" @click="openStandard('查看', scope.row)" size="small">查看</el-button> + <el-button link type="primary" @click="openStandard('修改', scope.row)" size="small">修改</el-button> + <el-button link type="primary" @click="deleteD(scope.row)" size="small">删除</el-button> </template> </el-table-column> </el-table> </el-tab-pane> <el-tab-pane label="巡检记录" name="five"> - <el-table :data="tableData" style="width: 100%"> + <el-table :data="name" style="width: 100%"> <el-table-column align="center" type="selection" width="75" /> <el-table-column align="center" sortable prop="name" label="任务编号" /> <el-table-column align="center" sortable prop="address" label="任务名称" /> @@ -234,22 +244,22 @@ </el-tabs> <template #footer> <span class="dialog-footer"> - <el-button @click="dialogVisible = false">关闭</el-button> - <el-button type="primary" @click="dialogVisible = false">确定</el-button> + <el-button @click="resetForm">关闭</el-button> + <el-button type="primary" @click="submitForm">确定</el-button> </span> </template> </el-dialog> <categoryDailog ref="categoryShow"></categoryDailog> <planDailog ref="planShow"></planDailog> <DailogSearchUser ref="UserShow"></DailogSearchUser> - <maintenanceDailog ref="maintenanceShow"></maintenanceDailog> - <detectDailog ref="detectShow"></detectDailog> - <repairDailog ref="repairShow"></repairDailog> - <standardDailog ref="standardShow"></standardDailog> + <maintenanceDailog ref="maintenanceShow" @onMain="main"></maintenanceDailog> + <detectDailog ref="detectShow" @onDelect="delect"></detectDailog> + <repairDailog ref="repairShow" @onRepair="Repair"></repairDailog> + <standardDailog ref="standardShow" @onStand="Stand"></standardDailog> </template> <script lang="ts"> -import { defineComponent, ref, reactive } from 'vue'; -import { Search,Plus,FullScreen } from '@element-plus/icons-vue'; +import { defineComponent, ref } from 'vue'; +import { Search, Plus, FullScreen } from '@element-plus/icons-vue'; import categoryDailog from './categoryDailog.vue'; import planDailog from './planDailog.vue'; import maintenanceDailog from './maintenanceDailog.vue'; @@ -259,52 +269,182 @@ import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; import { ElMessage, ElMessageBox } from 'element-plus'; import type { UploadProps, UploadUserFile } from 'element-plus'; +import { facilityManagementApi } from '/@/api/facilityManagement'; export default defineComponent({ components: { categoryDailog, planDailog, DailogSearchUser, maintenanceDailog, detectDailog, repairDailog, standardDailog }, - setup() { + setup(props, { emit }) { const dialogVisible = ref(false); - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', + const form = ref({ + equipmentTypeId: '', + + treatment: '', + + inputPersonId: '', + + departmentId: '', + + delRepaireDetailList: [], + + delTestDetailList: [], + + takecareDetailList: [ + { + leadingPersonDepartmentId: '', + + takecareDate: '', + + equipmentId: '', + + leadingPersonId: '', + + takecareMemo: '', + }, + ], + checkDetailList: [], + + responsibilityPersonId: '', + + delTakecareStardardeDetailList: [], + + connectPersonId: '', + + scenePic: '', + + partType: '', + + toDangerous: '', + + dangerousElement: '', + + takecareStardardeDetailList: [ + { + filePath: '', + }, + ], + testDetailList: [ + { + testMemo: '', + + testPersonDepartmentId: '', + + testStatus: '', + + testPersonId: '', + + testResult: '', + + testDate: '' , + }, + ], + checkCycle: '', + repaireDetailList: [ + { + repairStatus: '', + repairPersonDepartmentId: '', + repairMemo: '', + infoTpe: '', + repairPersonId: '', + repairEndDate: '', + repairStartDate: '', + exceptionInfo: '', + }, + ], + delCheckStandardeDetailList: [], + + leadingPersonName: '', + + name: '', + + delTakecareDetailList: [], + + position: '', + + emergencePlanId: 0, + + checkStandardeDetailList: [ + { + indexNum: '', + + checkTarget: '', + + checkPart: '', + + checkContent: '', + + unit: '', + + rate: '', + }, + ], + delCheckStandardeDetails: '', + + delTakecareStardardeDetails: '', + + delTakecareDetails: '', + + delRepaireDetails: '', + + delTestDetails: '', }); - const Dailogtype = ref(false); - const openDailog = (type: boolean) => { + const titles = ref(); + const disabled = ref(false); + const Dailogtype = ref(false); + const openDailog = (title: string, type: boolean, id: number, num: any) => { dialogVisible.value = true; Dailogtype.value = type; + if (num == 0) { + titles.value = `${title}仪表信息`; + } else if (num == 1) { + titles.value = `${title}设备设施`; + } else if (num == 2) { + titles.value = `${title}设备设施`; + } + + disabled.value = title == '查看' ? true : false; + if (title == '查看' || title == '修改') + facilityManagementApi() + .getkeypointEquipmentInfoDetail(id) + .then((res) => { + if (res.data.code == 200) { + form.value = res.data.data; + } else { + ElMessage.error(res.data.msg); + } + }); }; + // 提交 + const submitForm = () => { + form.value.delTakecareDetails =deleteAId.value.toString() + form.value.delTestDetails =deleteBId.value.toString() + form.value.delRepaireDetails =deleteCId.value.toString() + form.value.delCheckStandardeDetails =deleteDId.value.toString() + dialogVisible.value = false; + facilityManagementApi() + .getkeypointEquipmentInfoAddOrUpdate(form.value) + .then((res) => { + if (res.data.code == 200) { + ElMessage({ + message: res.data.msg, + type: 'success', + }); + emit('navAddorUpdata'); + } else { + ElMessage.error(res.data.msg); + } + }); + // form.value = null; + }; + // 取消 + const resetForm = () => { + dialogVisible.value = false; + }; const activeName = ref('first'); - const tableData = [ - { - date: '2016-05-03', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - date: '2016-05-02', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - date: '2016-05-04', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - date: '2016-05-01', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - ]; - const categoryShow = ref(); - const opencategory = () => { - categoryShow.value.openDailog(); - }; + const index = ref<any>(); + const categoryShow = ref(); + const opencategory = () => { + categoryShow.value.openDailog(); + }; + const planShow = ref(); const openPlan = () => { planShow.value.openDailog(); @@ -314,20 +454,24 @@ UserShow.value.openDailog(); }; const maintenanceShow = ref(); - const openMaintenance = () => { - maintenanceShow.value.openDailog(); + const openMaintenance = (title: string, data: any) => { + index.value = form.value.takecareDetailList.indexOf(data); + maintenanceShow.value.openDailog(title, data); }; const detectShow = ref(); - const openDetect = () => { - detectShow.value.openDailog(); + const openDetect = (title: string, data: any) => { + index.value = form.value.testDetailList.indexOf(data); + detectShow.value.openDailog(title, data); }; const repairShow = ref(); - const openRepair = () => { - repairShow.value.openDailog(); + const openRepair = (title: string, data: any) => { + index.value = form.value.repaireDetailList.indexOf(data); + repairShow.value.openDailog(title, data); }; const standardShow = ref(); - const openStandard = () => { - standardShow.value.openDailog(); + const openStandard = (title: string, data: any) => { + index.value = form.value.checkStandardeDetailList.indexOf(data); + standardShow.value.openDailog(title, data); }; // 上传 const fileList = ref<UploadUserFile[]>([ @@ -359,6 +503,57 @@ () => false ); }; + const deleteAId = ref([]); + const deleteBId = ref([]); + const deleteCId = ref([]); + const deleteDId = ref([]); + // 删除 + const deleteA = (tag: any) => { + form.value.takecareDetailList.splice(form.value.takecareDetailList.indexOf(tag), 1); + deleteAId.value.push(tag.id); + }; + const deleteB = (tag: any) => { + form.value.testDetailList.splice(form.value.testDetailList.indexOf(tag), 1); + deleteBId.value.push(tag.id); + }; + const deleteC = (tag: any) => { + form.value.repaireDetailList.splice(form.value.repaireDetailList.indexOf(tag), 1); + deleteCId.value.push(tag.id); + }; + const deleteD = (tag: any) => { + form.value.checkStandardeDetailList.splice(form.value.checkStandardeDetailList.indexOf(tag), 1); + deleteDId.value.push(tag.id); + }; + // 回传 + const main = (val: any) => { + if (index.value == -1) { + form.value.takecareDetailList.push(val); + } else { + form.value.takecareDetailList[index.value] = val; + } + }; + const delect = (val: any) => { + if (index.value == -1) { + form.value.testDetailList.push(val); + } else { + form.value.testDetailList[index.value] = val; + } + }; + const Repair= (val:any)=>{ + if (index.value == -1) { + form.value.repaireDetailList.push(val); + } else { + form.value.repaireDetailList[index.value] = val; + } + } + const Stand=(val:any)=>{ + if (index.value == -1) { + form.value.checkStandardeDetailList.push(val); + } else { + form.value.checkStandardeDetailList[index.value] = val; + } + } + //图片提交 const imageUrl = ref(''); @@ -376,23 +571,29 @@ } return true; }; - //全屏 + + //全屏 const full = ref(false); const toggleFullscreen = () => { if (full.value == false) { full.value = true; - }else{ - full.value = false; - } + } else { + full.value = false; + } }; return { + submitForm, dialogVisible, Dailogtype, form, openDailog, Search, + main, + delect, + Repair, + Stand, + index, activeName, - tableData, categoryShow, opencategory, planShow, @@ -411,22 +612,33 @@ handleRemove, handlePreview, handleExceed, + disabled, + titles, beforeRemove, imageUrl, handleAvatarSuccess, beforeAvatarUpload, Plus, - full, + full, toggleFullscreen, FullScreen, + resetForm, + deleteAId, + deleteBId, + deleteCId, + deleteDId, + deleteA, + deleteB, + deleteC, + deleteD, }; }, }); </script> <style scoped> - .el-row{ - padding: 0 0 20px 0; - } +.el-row { + padding: 0 0 20px 0; +} .avatar-uploader .avatar { width: 178px; height: 178px; @@ -434,7 +646,7 @@ } </style> <style> - .avatar-uploader .el-upload { +.avatar-uploader .el-upload { border: 1px dashed var(--el-border-color); border-radius: 6px; cursor: pointer; -- Gitblit v1.9.2