From 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期二, 04 三月 2025 08:39:55 +0800
Subject: [PATCH] 修改作业等级名称

---
 src/components/equipmentDailog/Dailog.vue |  203 ++++++++++++++++++++++++++++++++++----------------
 1 files changed, 138 insertions(+), 65 deletions(-)

diff --git a/src/components/equipmentDailog/Dailog.vue b/src/components/equipmentDailog/Dailog.vue
index f56333f..9ed675f 100644
--- a/src/components/equipmentDailog/Dailog.vue
+++ b/src/components/equipmentDailog/Dailog.vue
@@ -6,7 +6,7 @@
 				<el-input v-model="form.qName" placeholder="请填写装置设施名称" />
 			</el-form-item>
 			<el-form-item label="装置设施位号" size="default" prop="positionNum">
-				<el-input v-model="form.positionNum" placeholder="请填写装置设施位号" />
+				<el-input disabled v-model="form.positionNum" placeholder="请填写装置设施位号" />
 			</el-form-item>
 			<el-form-item label="装置设施用途" size="default" prop="qUsage">
 				<el-input v-model="form.qUsage" placeholder="请填写装置设施用途" />
@@ -14,20 +14,20 @@
 			<el-form-item label="装置设施型号" size="default" prop="model">
 				<el-input v-model="form.model" placeholder="请填写装置设施型号" />
 			</el-form-item>
-			<el-form-item label="类型/类别外键" size="default" prop="equipmentTypeId">
-				<el-input v-model="form.equipmentTypeId" placeholder="请选择">
+			<el-form-item label="类型/类别外键" size="default" prop="equipmentTypeName">
+				<el-input v-model="form.equipmentTypeName" placeholder="请选择">
 					<template #append>
 						<el-button :icon="Search" @click="opencategory"></el-button>
 					</template>
 				</el-input>
 			</el-form-item>
 			<!-- <el-form-item label="区域名称" size="default">
-				<el-input v-model="form.name" placeholder="请选择">
-					<template #append>
-						<el-button :icon="Search" @click="openRegion"></el-button>
-					</template>
-				</el-input>
-			</el-form-item> -->
+            <el-input v-model="form.name" placeholder="请选择">
+              <template #append>
+                <el-button :icon="Search" @click="openRegion"></el-button>
+              </template>
+            </el-input>
+          </el-form-item> -->
 			<el-form-item label="单位部门" size="default" prop="departmentId">
 				<el-tree-select v-model="form.departmentId" :data="data" check-strictly="true" class="w100" :props="propse" placeholder="请选择" />
 			</el-form-item>
@@ -35,7 +35,7 @@
 				<el-input v-model="form.setPart" placeholder="请填写设置部位" />
 			</el-form-item>
 			<el-form-item label="生产日期" size="default" prop="produceTime">
-				<el-date-picker v-model="form.produceTime" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
+				<el-date-picker v-model="form.produceTime" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
 			</el-form-item>
 			<el-form-item label="使用期限(天)" size="default" prop="useEndDay">
 				<el-input v-model="form.useEndDay" placeholder="请填写使用期限" />
@@ -44,11 +44,11 @@
 				<el-select v-model="form.lifeCycle" placeholder="请选择" style="width: 100%">
 					<el-option label="已投用" :value="1" />
 					<el-option label="库存中" :value="2" />
-					<el-option label="报废"   :value="3" />
+					<el-option label="报废" :value="3" />
 				</el-select>
 			</el-form-item>
 			<el-form-item label="投用日期" size="default" prop="useDate">
-				<el-date-picker v-model="form.useDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
+				<el-date-picker v-model="form.useDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
 			</el-form-item>
 			<el-form-item label="维修状态" size="default" prop="repairStatus">
 				<el-select v-model="form.repairStatus" placeholder="请选择" style="width: 100%">
@@ -68,31 +68,33 @@
 				<el-date-picker
 					v-model="form.previousCheckDate"
 					format="YYYY-MM-DD HH:mm:ss"
+					value-format="YYYY-MM-DD HH:mm:ss"
 					type="datetime"
 					placeholder="选择日期时间"
 					style="width: 100%"
 				/>
 			</el-form-item>
 			<el-form-item label="上次检测日期" size="default" prop="previousTestDate">
-				<el-date-picker v-model="form.previousTestDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
+				<el-date-picker v-model="form.previousTestDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
 			</el-form-item>
 			<el-form-item label="上次保养日期" size="default" prop="previousTakecareDate">
 				<el-date-picker
 					v-model="form.previousTakecareDate"
 					format="YYYY-MM-DD HH:mm:ss"
+					value-format="YYYY-MM-DD HH:mm:ss"
 					type="datetime"
 					placeholder="选择日期时间"
 					style="width: 100%"
 				/>
 			</el-form-item>
 			<el-form-item label="下次检查日期" size="default" prop="nextCheckDate">
-				<el-date-picker v-model="form.nextCheckDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
+				<el-date-picker v-model="form.nextCheckDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
 			</el-form-item>
 			<el-form-item label="下次检测日期" size="default" prop="nextTestDate">
-				<el-date-picker v-model="form.nextTestDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
+				<el-date-picker v-model="form.nextTestDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
 			</el-form-item>
 			<el-form-item label="下次保养日期" size="default" prop="nextTakecareDate">
-				<el-date-picker v-model="form.nextTakecareDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
+				<el-date-picker v-model="form.nextTakecareDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
 			</el-form-item>
 			<el-form-item label="负责人" size="default" prop="leadingPersonName">
 				<el-input v-model="form.leadingPersonName" placeholder="请选择">
@@ -169,7 +171,7 @@
 				<el-input v-model="form.afterStopStep" placeholder="请填写停用后措施" />
 			</el-form-item>
 			<el-form-item label="实际停用日期" size="default" prop="actualStopDate">
-				<el-date-picker v-model="form.actualStopDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
+				<el-date-picker v-model="form.actualStopDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
 			</el-form-item>
 			<el-form-item label="停用提交人" size="default" prop="stopSubmitPersonName">
 				<el-input v-model="form.stopSubmitPersonName" placeholder="请选择">
@@ -179,7 +181,7 @@
 				</el-input>
 			</el-form-item>
 			<el-form-item label="停用提交日期" size="default" prop="stopSubmitDate">
-				<el-date-picker v-model="form.stopSubmitDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
+				<el-date-picker v-model="form.stopSubmitDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
 			</el-form-item>
 			<el-form-item label="恢复理由" size="default" prop="recoveryReason">
 				<el-input v-model="form.recoveryReason" placeholder="请填写恢复理由" />
@@ -188,6 +190,7 @@
 				<el-date-picker
 					v-model="form.recoverySubmitDate"
 					format="YYYY-MM-DD HH:mm:ss"
+					value-format="YYYY-MM-DD HH:mm:ss"
 					type="datetime"
 					placeholder="选择日期时间"
 					style="width: 100%"
@@ -197,6 +200,7 @@
 				<el-date-picker
 					v-model="form.actualRecoveryDate"
 					format="YYYY-MM-DD HH:mm:ss"
+					value-format="YYYY-MM-DD HH:mm:ss"
 					type="datetime"
 					placeholder="选择日期时间"
 					style="width: 100%"
@@ -209,6 +213,7 @@
 				<el-date-picker
 					v-model="form.destorySubmitDate"
 					format="YYYY-MM-DD HH:mm:ss"
+					value-format="YYYY-MM-DD HH:mm:ss"
 					type="datetime"
 					placeholder="选择日期时间"
 					style="width: 100%"
@@ -218,10 +223,14 @@
 				<el-date-picker
 					v-model="form.actualDestoryDate"
 					format="YYYY-MM-DD HH:mm:ss"
+					value-format="YYYY-MM-DD HH:mm:ss"
 					type="datetime"
 					placeholder="选择日期时间"
 					style="width: 100%"
 				/>
+			</el-form-item>
+			<el-form-item label="保养周期" size="default" prop="takecareCycle ">
+				<el-input v-model="form.takecareCycle" placeholder="请填写保养周期" />
 			</el-form-item>
 		</el-form>
 		<el-tabs v-model="activeName" class="demo-tabs">
@@ -231,7 +240,7 @@
 					<el-table-column align="center" prop="takecareMemo" label="保养情况" />
 					<el-table-column align="center" prop="leadingPersonName" label="保养负责人" />
 					<el-table-column align="center" prop="takecareDate" :formatter="timeDate" label="保养日期" />
-					<el-table-column align="center" prop="leadingPersonDepartmentId" label="保养负责人单位" />
+					<el-table-column align="center" prop="leadingPersonDepartmentName" label="保养负责人单位" />
 					<el-table-column align="center" label="操作">
 						<template #default="scope">
 							<el-button link type="primary" @click="openMaintenance('查看', scope.row)" size="small">查看</el-button>
@@ -244,11 +253,16 @@
 			<el-tab-pane label="设备检测" name="second">
 				<el-button type="primary" size="default" :disabled="disabled" @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="testPersonName" label="检测人" />
 					<el-table-column align="center" prop="testDate" :formatter="timeDate" label="检测日期" />
-					<el-table-column align="center" prop="testPersonDepartmentId" label="检测人单位" />
+					<el-table-column align="center" prop="testPersonDepartmentName" label="检测人单位" />
 					<el-table-column align="center" prop="testMemo" label="检测内容" />
-					<el-table-column align="center" prop="testResult" label="检测结果" />
+					<el-table-column align="center" label="检测结果" >
+						<template #default="scope">
+							<span v-if="scope.row.testResult==1">成功</span>
+							<span v-if="scope.row.testResult==2">失败</span>
+						</template>
+					</el-table-column>
 					<el-table-column align="center" prop="testStatus" label="检测状态" />
 					<el-table-column align="center" label="操作">
 						<template #default="scope">
@@ -263,10 +277,15 @@
 				<el-button type="primary" size="default" :disabled="disabled" @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"  label="维修状态">
+					<template #default="scope">
+							<span v-if="scope.row.repairStatus==1">维修中</span>
+							<span v-if="scope.row.repairStatus==2">已修好</span>
+						</template>
+					</el-table-column>
 					<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="repairPersonName" label="维修负责人" />
+					<el-table-column align="center" prop="repairPersonDepartmentName" label="维修负责人单位" />
 					<el-table-column align="center" prop="repairStartDate" :formatter="timeDate" label="维修开始日期" />
 					<el-table-column align="center" prop="repairEndDate" :formatter="timeDate" label="维修结束日期" />
 					<el-table-column align="center" label="操作">
@@ -308,22 +327,8 @@
 				</el-table>
 			</el-tab-pane>
 			<el-tab-pane label="保养维修标准" name="six" v-if="Dailogtype">
-				<el-upload
-					v-model:file-list="fileList"
-					class="upload-demo"
-					action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
-					multiple
-					:on-preview="handlePreview"
-					:on-remove="handleRemove"
-					:before-remove="beforeRemove"
-					:limit="3"
-					:on-exceed="handleExceed"
-				>
-					<el-button type="primary">点击上传</el-button>
-					<template #tip>
-						<div class="el-upload__tip"></div>
-					</template>
-				</el-upload>
+				<uploaderFile :fileList="fileList" :systemName="'EQUIPMENT'" :disabled="disabled"
+							  @successUploader="successUploader"></uploaderFile>
 			</el-tab-pane>
 		</el-tabs>
 		<template #footer>
@@ -334,6 +339,7 @@
 		</template>
 	</el-dialog>
 	<categoryDailog ref="categoryShow"></categoryDailog>
+	<categoryDailog ref="categoryShow" @typeId="Tid"></categoryDailog>
 	<regionDailog ref="regionShow"></regionDailog>
 	<DailogSearchUser ref="UserShow" @SearchUser="userId"></DailogSearchUser>
 	<maintenanceDailog ref="maintenanceShow" @onMain="main"></maintenanceDailog>
@@ -356,8 +362,11 @@
 import type { UploadProps, UploadUserFile } from 'element-plus';
 import { facilityManagementApi } from '/@/api/facilityManagement';
 import { goalManagementApi } from '/@/api/goalManagement';
+import { deepClone } from '/@/utils/other';
+import uploaderFile from '/@/components/uploaderFile/index.vue';
 export default defineComponent({
-	components: { categoryDailog, regionDailog, DailogSearchUser, maintenanceDailog, detectDailog, repairDailog, standardDailog },
+	components: { categoryDailog, regionDailog, DailogSearchUser, maintenanceDailog,
+		detectDailog, repairDailog, standardDailog,uploaderFile },
 	setup(props, { emit }) {
 		const dialogVisible = ref(false);
 		const ruleFormRef = ref<FormInstance>();
@@ -397,9 +406,6 @@
 			repairStatus: '',
 
 			takecareStardardeDetailList: [
-				{
-					filePath: '123',
-				},
 			],
 
 			nextCheckDate: '',
@@ -459,11 +465,12 @@
 
 			repaireDetailList: [],
 
-			equipmentTypeId: 1,
+			equipmentTypeId: '',
 
 			useDate: '',
 
 			recoverySubmitDate: '',
+			takecareCycle:"",
 
 			lockNum: '',
 
@@ -484,10 +491,12 @@
 			delTestDetails: '',
 		});
 		const titles = ref();
+		const titleT = ref();
 		const disabled = ref(false);
 		const Dailogtype = ref(false);
 		const openDailog = (title: string, type: boolean, id: number, num: any) => {
 			dialogVisible.value = true;
+			titleT.value = title;
 			department();
 			Dailogtype.value = type;
 			if (num == 0) {
@@ -508,17 +517,68 @@
 					.then((res) => {
 						if (res.data.code == 200) {
 							form.value = res.data.data;
+
+							//初始化日期格式
+							form.value.actualDestoryDate = timeC(form.value.actualDestoryDate);
+							form.value.actualRecoveryDate = timeC(form.value.actualRecoveryDate);
+							form.value.actualStopDate = timeC(form.value.actualStopDate);
+							form.value.destorySubmitDate = timeC(form.value.destorySubmitDate);
+							form.value.nextCheckDate = timeC(form.value.nextCheckDate);
+							form.value.nextTakecareDate = timeC(form.value.nextTakecareDate);
+							form.value.nextTestDate = timeC(form.value.nextTestDate);
+							form.value.previousCheckDate = timeC(form.value.previousCheckDate);
+							form.value.previousTakecareDate = timeC(form.value.previousTakecareDate);
+							form.value.previousTestDate = timeC(form.value.previousTestDate);
+							form.value.produceTime = timeC(form.value.produceTime);
+							form.value.recoverySubmitDate = timeC(form.value.recoverySubmitDate);
+							form.value.stopSubmitDate = timeC(form.value.stopSubmitDate);
+							form.value.useDate = timeC(form.value.useDate);
+
+							fileList.value = (res.data.data.takecareStardardeDetailList?res.data.data.takecareStardardeDetailList:[])
+							initFileListData()
 						} else {
 							ElMessage.error(res.data.msg);
 						}
 					});
 		};
+		const timeC = (timestamp: any) => {
+			let a = new Date(timestamp).getTime();
+			const date = new Date(a);
+			const Y = date.getFullYear() + '-';
+			const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+			const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + '  ';
+			const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
+			const m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
+			const s = date.getSeconds(); // 秒
+			const dateString = Y + M + D + h + m +`:${s}`;
+			// console.log('dateString', dateString); // > dateString 2021-07-06 14:23
+			return dateString;
+		};
+		const initFileListData = async () => {
+			for(var a = 0;a<fileList.value.length;a++){
+				fileList.value[a].name = fileList.value[a].filePath
+			}
+		}
+		// 上传成功组装数据
+		const successUploader = (list) =>{
+			fileList.value = list
+			const formFileList = []
+			for(var a = 0;a<fileList.value.length;a++){
+				formFileList.push(
+						{
+							filePath:fileList.value[a].fileName
+						}
+				)
+			}
+			form.value.takecareStardardeDetailList = formFileList
+		}
 		const rules = reactive<FormRules>({
 			qName: [],
 			positionNum: [],
 			qUsage: [],
 			model: [],
 			equipmentTypeId: [],
+			equipmentTypeName: [{ required: true, message: '类型/类别外键不能为空', trigger: 'change' }],
 			departmentId: [],
 			setPart: [],
 			produceTime: [],
@@ -560,6 +620,7 @@
 			destoryReason: [],
 			destorySubmitDate: [],
 			actualDestoryDate: [],
+			takecareCycle :[]
 		});
 		// 提交
 		const submitForm = async (formEl: FormInstance | undefined) => {
@@ -571,6 +632,13 @@
 					form.value.delRepaireDetails = deleteCId.value.toString();
 					form.value.delCheckStandardeDetails = deleteDId.value.toString();
 					dialogVisible.value = false;
+					delete form.value.equipmentTypeName;
+					delete form.value.departmentName;
+					delete form.value.leadingPersonDepartmentName;
+					delete form.value.leadingDepartmentName;
+					if (titleT.value == '新建') {
+						delete form.value.id;
+					}
 					facilityManagementApi()
 						.getequipmentInfoAddOrUpdate(form.value)
 						.then((res) => {
@@ -586,7 +654,6 @@
 						});
 				}
 			});
-			formEl.resetFields();
 			form.value.takecareDetailList = [];
 			form.value.testDetailList = [];
 			form.value.repaireDetailList = [];
@@ -600,6 +667,7 @@
 			form.value.testDetailList = [];
 			form.value.repaireDetailList = [];
 			form.value.checkStandardeDetailList = [];
+			fileList.value = []
 			dialogVisible.value = false;
 		};
 		const activeName = ref('first');
@@ -618,7 +686,7 @@
 		};
 		const maintenanceShow = ref();
 		const openMaintenance = (title: string, data: any) => {
-			index.value = form.value.takecareDetailList.indexOf(data);
+            index.value = form.value.takecareDetailList.indexOf(data);
 			maintenanceShow.value.openDailog(title, data);
 		};
 		const detectShow = ref();
@@ -637,16 +705,7 @@
 			standardShow.value.openDailog(title, data);
 		};
 		// 上传
-		const fileList = ref<UploadUserFile[]>([
-			{
-				name: 'element-plus-logo.svg',
-				url: 'https://element-plus.org/images/element-plus-logo.svg',
-			},
-			{
-				name: 'element-plus-logo2.svg',
-				url: 'https://element-plus.org/images/element-plus-logo.svg',
-			},
-		]);
+		const fileList = ref([]);
 
 		const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => {
 			console.log(file, uploadFiles);
@@ -688,28 +747,32 @@
 			deleteDId.value.push(tag.id);
 		};
 		// 回传
-		const main = (val: any) => {
+		const main = (data: any) => {
+			const val = deepClone(data);
 			if (index.value == -1) {
 				form.value.takecareDetailList.push(val);
 			} else {
 				form.value.takecareDetailList[index.value] = val;
 			}
 		};
-		const delect = (val: any) => {
+		const delect = (data: any) => {
+			const val = deepClone(data);
 			if (index.value == -1) {
 				form.value.testDetailList.push(val);
-			} else {
+			} else  {
 				form.value.testDetailList[index.value] = val;
 			}
 		};
-		const Repair = (val: any) => {
+		const Repair = (data: any) => {
+			const val = deepClone(data);
 			if (index.value == -1) {
 				form.value.repaireDetailList.push(val);
 			} else {
 				form.value.repaireDetailList[index.value] = val;
 			}
 		};
-		const Stand = (val: any) => {
+		const Stand = (data: any) => {
+			const val = deepClone(data);
 			if (index.value == -1) {
 				form.value.checkStandardeDetailList.push(val);
 			} else {
@@ -725,6 +788,11 @@
 				form.value.stopSubmitPersonId = val.uid;
 				form.value.stopSubmitPersonName = val.realName;
 			}
+		};
+		const Tid = (data: any) => {
+			form.value.equipmentTypeId = data.id;
+			form.value.equipmentTypeName = data.typeName;
+			form.value.positionNum = data.sortNum;
 		};
 		//全屏
 		const full = ref(false);
@@ -754,6 +822,8 @@
 		};
 		const data = ref();
 		return {
+			Tid,
+			deepClone,
 			rules,
 			userId,
 			department,
@@ -806,13 +876,16 @@
 			FullScreen,
 			timeDate,
 			ruleFormRef,
+			successUploader,
+			initFileListData,
+			timeC
 		};
 	},
 });
 </script>
 <style scoped>
 .el-form-item {
-	width: 400px;
+	width: 25vw;
 }
 .formType:after {
 	content: '';
@@ -827,4 +900,4 @@
 .el-form .el-form-item:last-of-type {
 	margin-bottom: 22px !important;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.2