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 |  442 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 287 insertions(+), 155 deletions(-)

diff --git a/src/components/equipmentDailog/DailogS.vue b/src/components/equipmentDailog/DailogS.vue
index 6da1e53..fe3746d 100644
--- a/src/components/equipmentDailog/DailogS.vue
+++ b/src/components/equipmentDailog/DailogS.vue
@@ -1,6 +1,6 @@
 <template>
-	<el-dialog :fullscreen="full" v-model="isShowDialog" :title="titles" width="60%">
-			<el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
+	<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">
@@ -120,7 +120,7 @@
 				<el-col :span="24">
 					<el-form-item label="现场图片">
 						<el-upload
-              v-model="form.scenePic"
+							v-model="form.scenePic"
 							class="avatar-uploader"
 							action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
 							:show-file-list="false"
@@ -141,22 +141,24 @@
 		</el-form>
 		<el-tabs v-model="activeName" class="demo-tabs">
 			<el-tab-pane label="设备保养" name="first">
-				<el-button type="primary" size="default" @click="openMaintenance">新增</el-button>
-				<el-table :data="tableData" style="width: 100%">
+				<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>
-							<el-button link type="primary" size="small">查看</el-button>
+						<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" size="default" @click="openDetect">新增</el-button>
-				<el-table :data="tableData" style="width: 100%">
+				<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="检测人单位" />
@@ -164,15 +166,17 @@
 					<el-table-column align="center" prop="testResult" label="检测结果" />
 					<el-table-column align="center" prop="testStatus" label="检测状态" />
 					<el-table-column align="center" label="操作">
-						<template #default>
-							<el-button link type="primary" size="small">查看</el-button>
+						<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" size="default" @click="openRepair">新增</el-button>
-				<el-table :data="tableData" style="width: 100%">
+				<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="维修情况" />
@@ -181,15 +185,18 @@
 					<el-table-column align="center" prop="repairStartDate" label="维修开始日期" />
 					<el-table-column align="center" prop="repairEndDate" label="维修结束日期" />
 					<el-table-column align="center" label="操作">
-						<template #default>
-							<el-button link type="primary" size="small">查看</el-button>
+						<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">checkContent
-				<el-button type="primary" size="default" @click="openStandard">新增</el-button>
-				<el-table :data="tableData" style="width: 100%">
+			<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="检查指标" />
@@ -197,14 +204,16 @@
 					<el-table-column align="center" prop="checkPart" label="巡检部位" />
 					<el-table-column align="center" prop="rate" label="频次" />
 					<el-table-column align="center" label="操作">
-						<template #default>
-							<el-button link type="primary" size="small">查看</el-button>
+						<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="任务名称" />
@@ -235,22 +244,22 @@
 		</el-tabs>
 		<template #footer>
 			<span class="dialog-footer">
-				<el-button @click="resetForm(ruleFormRef)">关闭</el-button>
-				<el-button type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)">确定</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, FormInstance, } 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';
@@ -260,129 +269,182 @@
 import DailogSearchUser from '/@/components/DailogSearchUser/index.vue';
 import { ElMessage, ElMessageBox } from 'element-plus';
 import type { UploadProps, UploadUserFile } from 'element-plus';
-import {releaseDrillPlanApi} from "/@/api/emergencyDrillPlan";
-import {facilityManagementApi} from "/@/api/facilityManagement";
+import { facilityManagementApi } from '/@/api/facilityManagement';
 export default defineComponent({
 	components: { categoryDailog, planDailog, DailogSearchUser, maintenanceDailog, detectDailog, repairDailog, standardDailog },
-	setup() {
-		const isShowDialog = ref(false);
-		const form = reactive({
-      equipmentTypeId: '',
-      treatment: '',
-      inputPersonId: '',
-      departmentId: '',
-      delRepaireDetailList: [],
-      delTestDetailList: [],
-      takecareDetailList: [{
-        leadingPersonId:'',
-        takecareDate:'',
-        leadingPersonDepartmentId:'',
-        equipmentId: '',
-        takecareMemo: '',
-      }],
-      checkDetailList:[],
+	setup(props, { emit }) {
+		const dialogVisible = ref(false);
+		const form = ref({
+			equipmentTypeId: '',
+
+			treatment: '',
+
+			inputPersonId: '',
+
+			departmentId: '',
+
+			delRepaireDetailList: [],
+
+			delTestDetailList: [],
+
+			takecareDetailList: [
+				{
+          leadingPersonDepartmentId: '',
+
+          takecareDate: '',
+
+          equipmentId: '',
+
+          leadingPersonId: '',
+
+          takecareMemo: '',
+				},
+			],
+      checkDetailList: [],
+
       responsibilityPersonId: '',
+
       delTakecareStardardeDetailList: [],
-      connectPersonId:'',
-      scenePic:'',
-      partType:'',
-      toDangerous:'',
-      dangerousElement:'',
+
+      connectPersonId: '',
+
+      scenePic: '',
+
+      partType: '',
+
+      toDangerous: '',
+
+      dangerousElement: '',
+
       takecareStardardeDetailList: [
-        {
-          filePath: '',
-        }
-      ],
-      testDetailList:[{
-        testMemo:'',
-        testPersonDepartmentId:'',
-        testPersonId:'',
-        testStatus:'',
-        testResult:'',
-        testDate:'',
-      }],
+				{
+					filePath: '',
+				},
+			],
+      testDetailList: [
+				{
+          testMemo: '',
+
+          testPersonDepartmentId: '',
+
+          testStatus: '',
+
+          testPersonId: '',
+
+          testResult: '',
+
+          testDate: '' ,
+				},
+			],
       checkCycle: '',
-      repaireDetailList:[{
-        repairStatus:'',
-        repairPersonDepartmentId:'',
-        repairMemo:'',
-        infoTpe:'',
-        repairPersonId:'',
-        repairEndDate:'',
-        repairStartDate:'',
-        exceptionInfo:'',
-      }],
-      delCheckStandardeDetailList:[],
+      repaireDetailList: [
+				{
+          repairStatus: '',
+          repairPersonDepartmentId: '',
+          repairMemo: '',
+          infoTpe: '',
+          repairPersonId: '',
+          repairEndDate: '',
+          repairStartDate: '',
+          exceptionInfo: '',
+				},
+			],
+      delCheckStandardeDetailList: [],
+
       leadingPersonName: '',
+
       name: '',
-      delTakecareDetailList:[],
-      position:'',
-      emergencePlanId: '',
-      checkStandardeDetailList: [{
-        checkContent:'',
-        checkTarget:'',
-        unit:'',
-        checkPart:'',
-        rate:'',
-        indexNum:'',
-      }],
+
+			delTakecareDetailList: [],
+
+      position: '',
+
+      emergencePlanId: 0,
+
+      checkStandardeDetailList: [
+				{
+          indexNum: '',
+
+          checkTarget: '',
+
+          checkPart: '',
+
+          checkContent: '',
+
+          unit: '',
+
+          rate: '',
+				},
+			],
       delCheckStandardeDetails: '',
+
       delTakecareStardardeDetails: '',
+
       delTakecareDetails: '',
+
       delRepaireDetails: '',
+
       delTestDetails: '',
 		});
-		const Dailogtype = ref(false);
-		const openDailog = (type: boolean) => {
-      isShowDialog.value = true;
-			Dailogtype.value = type;
-		};
-    const ruleFormRef = ref<FormInstance>()
-		const activeName = ref('first');
     const titles = ref();
-    const disabled = ref();
-    // 打开弹窗
-    const openDialog = (title: string, id: number, type: boolean) => {
-      isShowDialog.value = true;
-      titles.value = title;
-      disabled.value = type;
-      if (title == '查看仪器仪表' || title == '修改仪器仪表') {
-        facilityManagementApi()
-            .getkeypointEquipmentInfoDetail(id)
-            .then((res) => {
-              if (res.data.code == 200) {
-                form.value = res.data.data;
-              }
-            });
+    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 index = ref<any>();
+    const categoryShow = ref();
+    const opencategory = () => {
+      categoryShow.value.openDailog();
     };
 
-		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 planShow = ref();
 		const openPlan = () => {
 			planShow.value.openDailog();
@@ -392,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[]>([
@@ -437,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('');
 
@@ -454,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 {
-      isShowDialog,
+			submitForm,
+			dialogVisible,
 			Dailogtype,
 			form,
 			openDailog,
 			Search,
+      main,
+      delect,
+      Repair,
+      Stand,
+      index,
 			activeName,
-			tableData,
 			categoryShow,
 			opencategory,
 			planShow,
@@ -489,24 +612,33 @@
 			handleRemove,
 			handlePreview,
 			handleExceed,
+      disabled,
+      titles,
 			beforeRemove,
 			imageUrl,
 			handleAvatarSuccess,
 			beforeAvatarUpload,
 			Plus,
-				full,
+			full,
 			toggleFullscreen,
 			FullScreen,
-      ruleFormRef,
-      openDialog,
+			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;
@@ -514,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