From 476a9ca89794a830b8a8279b80d9b446624a0641 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 02 六月 2026 17:50:39 +0800
Subject: [PATCH] refactor(equipment): 优化设备台账表单结构并更新质管检验选项

---
 src/views/equipmentManagement/upkeep/Form/formDia.vue |  639 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 345 insertions(+), 294 deletions(-)

diff --git a/src/views/equipmentManagement/upkeep/Form/formDia.vue b/src/views/equipmentManagement/upkeep/Form/formDia.vue
index 8b30fb7..205b0f0 100644
--- a/src/views/equipmentManagement/upkeep/Form/formDia.vue
+++ b/src/views/equipmentManagement/upkeep/Form/formDia.vue
@@ -1,331 +1,382 @@
 <template>
-	<FormDialog
-		v-model="dialogVisitable"
-		:title="operationType === 'add' ? '鏂板淇濆吇浠诲姟' : '缂栬緫淇濆吇浠诲姟'"
-		width="800px"
-		:operation-type="operationType"
-		@confirm="submitForm"
-		@cancel="cancel"
-		@close="cancel"
-	>
-		<el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
-			<el-row>
-				<el-col :span="12">
-					<el-form-item label="浠诲姟鍚嶇О" prop="taskName">
-						<el-input v-model="form.taskName" placeholder="璇疯緭鍏ヤ换鍔″悕绉�" clearable />
-					</el-form-item>
-				</el-col>
-				<el-col :span="12">
-					<el-form-item label="璁惧鍚嶇О" prop="deviceIds">
-						<el-select
-							v-model="form.deviceIds"
-							multiple
-							filterable
-							placeholder="璇烽�夋嫨璁惧"
-							@change="handleDeviceChange"
-						>
-							<el-option
-								v-for="(item, index) in deviceOptions"
-								:key="index"
-								:label="item.deviceName"
-								:value="item.id"
-							></el-option>
-						</el-select>
-					</el-form-item>
-				</el-col>
-				
-				<el-col :span="12">
-					<el-form-item label="褰曞叆浜�" prop="inspector">
-						<el-select
-							v-model="form.inspector"
-							filterable
-							default-first-option
-							:reserve-keyword="false"
-							placeholder="璇烽�夋嫨"
-							clearable
-						>
-							<el-option
-								v-for="item in userList"
-								:label="item.nickName"
-								:value="item.userId"
-								:key="item.userId"
-							/>
-						</el-select>
-					</el-form-item>
-				</el-col>
-				<el-col :span="12">
-					<el-form-item label="鐧昏鏃堕棿" prop="registrationDate">
-						<el-date-picker
-							v-model="form.registrationDate"
-							type="date"
-							placeholder="閫夋嫨鐧昏鏃ユ湡"
-							format="YYYY-MM-DD"
-							value-format="YYYY-MM-DD"
-							style="width: 100%"
-						/>
-					</el-form-item>
-				</el-col>
-			</el-row>
-			<el-row>
-				<el-col :span="12">
-					<el-form-item label="浠诲姟棰戠巼" prop="frequencyType">
-						<el-select v-model="form.frequencyType" placeholder="璇烽�夋嫨" clearable>
-							<el-option label="姣忔棩" value="DAILY"/>
-							<el-option label="姣忓懆" value="WEEKLY"/>
-							<el-option label="姣忔湀" value="MONTHLY"/>
-							<el-option label="瀛e害" value="QUARTERLY"/>
-						</el-select>
-					</el-form-item>
-				</el-col>
-				<el-col :span="12" v-if="form.frequencyType === 'DAILY' && form.frequencyType">
-					<el-form-item label="鏃ユ湡" prop="frequencyDetail">
-						<el-time-picker v-model="form.frequencyDetail" placeholder="閫夋嫨鏃堕棿" format="HH:mm"
-														value-format="HH:mm" />
-					</el-form-item>
-				</el-col>
-				<el-col :span="12" v-if="form.frequencyType === 'WEEKLY' && form.frequencyType">
-					<el-form-item label="鏃ユ湡" prop="frequencyDetail">
-						<el-select v-model="form.week" placeholder="璇烽�夋嫨" clearable style="width: 50%">
-							<el-option label="鍛ㄤ竴" value="MON"/>
-							<el-option label="鍛ㄤ簩" value="TUE"/>
-							<el-option label="鍛ㄤ笁" value="WED"/>
-							<el-option label="鍛ㄥ洓" value="THU"/>
-							<el-option label="鍛ㄤ簲" value="FRI"/>
-							<el-option label="鍛ㄥ叚" value="SAT"/>
-							<el-option label="鍛ㄦ棩" value="SUN"/>
-						</el-select>
-						<el-time-picker v-model="form.time" placeholder="閫夋嫨鏃堕棿" format="HH:mm"
-														value-format="HH:mm"  style="width: 50%"/>
-					</el-form-item>
-				</el-col>
-				<el-col :span="12" v-if="form.frequencyType === 'MONTHLY' && form.frequencyType">
-					<el-form-item label="鏃ユ湡" prop="frequencyDetail">
-						<el-date-picker
-							v-model="form.frequencyDetail"
-							type="datetime"
-							clearable
-							placeholder="閫夋嫨寮�濮嬫棩鏈�"
-							format="DD,HH:mm"
-							value-format="DD,HH:mm"
-						/>
-					</el-form-item>
-				</el-col>
-				<el-col :span="12" v-if="form.frequencyType === 'QUARTERLY' && form.frequencyType">
-					<el-form-item label="鏃ユ湡" prop="frequencyDetail">
-						<el-date-picker
-							v-model="form.frequencyDetail"
-							type="datetime"
-							clearable
-							placeholder="閫夋嫨寮�濮嬫棩鏈�"
-							format="MM,DD,HH:mm"
-							value-format="MM,DD,HH:mm"
-						/>
-					</el-form-item>
-				</el-col>
-			</el-row>
-			<el-row>
-				<el-col :span="12">
-					<el-form-item label="澶囨敞" prop="remarks">
-						<el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" type="textarea" />
-					</el-form-item>
-				</el-col>
-			</el-row>
-		</el-form>
-	</FormDialog>
+  <FormDialog
+    v-model="dialogVisitable"
+    :title="operationType === 'add' ? '鏂板淇濆吇浠诲姟' : '缂栬緫淇濆吇浠诲姟'"
+    width="800px"
+    :operation-type="operationType"
+    @confirm="submitForm"
+    @cancel="cancel"
+    @close="cancel"
+  >
+    <el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="浠诲姟鍚嶇О" prop="taskName">
+            <el-input
+              v-model="form.taskName"
+              placeholder="璇疯緭鍏ヤ换鍔″悕绉�"
+              clearable
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="璁惧鍚嶇О" prop="deviceIds">
+            <el-select
+              v-model="form.deviceIds"
+              multiple
+              filterable
+              placeholder="璇烽�夋嫨璁惧"
+              @change="handleDeviceChange"
+            >
+              <el-option
+                v-for="(item, index) in deviceOptions"
+                :key="index"
+                :label="item.deviceName"
+                :value="item.id"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="褰曞叆浜�" prop="inspector">
+            <el-select
+              v-model="form.inspector"
+              filterable
+              default-first-option
+              :reserve-keyword="false"
+              placeholder="璇烽�夋嫨"
+              clearable
+            >
+              <el-option
+                v-for="item in userList"
+                :label="item.nickName"
+                :value="item.userId"
+                :key="item.userId"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="鐧昏鏃堕棿" prop="registrationDate">
+            <el-date-picker
+              v-model="form.registrationDate"
+              type="date"
+              placeholder="閫夋嫨鐧昏鏃ユ湡"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
+              style="width: 100%"
+            />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="浠诲姟棰戠巼" prop="frequencyType">
+            <el-select
+              v-model="form.frequencyType"
+              placeholder="璇烽�夋嫨"
+              clearable
+            >
+              <el-option label="姣忔棩" value="DAILY" />
+              <el-option label="姣忓懆" value="WEEKLY" />
+              <el-option label="姣忔湀" value="MONTHLY" />
+              <el-option label="瀛e害" value="QUARTERLY" />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col
+          :span="12"
+          v-if="form.frequencyType === 'DAILY' && form.frequencyType"
+        >
+          <el-form-item label="鏃ユ湡/鏃堕棿" prop="frequencyDetail">
+            <el-time-picker
+              v-model="form.frequencyDetail"
+              placeholder="閫夋嫨鏃堕棿"
+              format="HH:mm"
+              value-format="HH:mm"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col
+          :span="12"
+          v-if="form.frequencyType === 'WEEKLY' && form.frequencyType"
+        >
+          <el-form-item label="鏃ユ湡/鏃堕棿" prop="frequencyDetail">
+            <el-select
+              v-model="form.week"
+              placeholder="璇烽�夋嫨"
+              clearable
+              style="width: 50%"
+            >
+              <el-option label="鍛ㄤ竴" value="MON" />
+              <el-option label="鍛ㄤ簩" value="TUE" />
+              <el-option label="鍛ㄤ笁" value="WED" />
+              <el-option label="鍛ㄥ洓" value="THU" />
+              <el-option label="鍛ㄤ簲" value="FRI" />
+              <el-option label="鍛ㄥ叚" value="SAT" />
+              <el-option label="鍛ㄦ棩" value="SUN" />
+            </el-select>
+            <el-time-picker
+              v-model="form.time"
+              placeholder="閫夋嫨鏃堕棿"
+              format="HH:mm"
+              value-format="HH:mm"
+              style="width: 50%"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col
+          :span="12"
+          v-if="form.frequencyType === 'MONTHLY' && form.frequencyType"
+        >
+          <el-form-item label="鏃ユ湡/鏃堕棿" prop="frequencyDetail">
+            <el-date-picker
+              v-model="form.frequencyDetail"
+              type="datetime"
+              clearable
+              placeholder="閫夋嫨寮�濮嬫棩鏈�"
+              format="DD,HH:mm"
+              value-format="DD,HH:mm"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col
+          :span="12"
+          v-if="form.frequencyType === 'QUARTERLY' && form.frequencyType"
+        >
+          <el-form-item label="鏃ユ湡/鏃堕棿" prop="frequencyDetail">
+            <el-date-picker
+              v-model="form.frequencyDetail"
+              type="datetime"
+              clearable
+              placeholder="閫夋嫨寮�濮嬫棩鏈�"
+              format="MM,DD,HH:mm"
+              value-format="MM,DD,HH:mm"
+            />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="澶囨敞" prop="remarks">
+            <el-input
+              v-model="form.remarks"
+              placeholder="璇疯緭鍏ュ娉�"
+              type="textarea"
+            />
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+  </FormDialog>
 </template>
 
 <script setup>
 import FormDialog from "@/components/Dialog/FormDialog.vue";
 import { reactive, ref, getCurrentInstance, toRefs } from "vue";
-import {userListNoPageByTenantId} from "@/api/system/user.js";
+import { userListNoPageByTenantId } from "@/api/system/user.js";
 import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
-import { deviceMaintenanceTaskAdd, deviceMaintenanceTaskEdit } from "@/api/equipmentManagement/upkeep";
+import {
+  deviceMaintenanceTaskAdd,
+  deviceMaintenanceTaskEdit,
+} from "@/api/equipmentManagement/upkeep";
 import { getCurrentDate } from "@/utils/index.js";
 import useUserStore from "@/store/modules/user.js";
 
-const { proxy } = getCurrentInstance()
-const emit = defineEmits()
+const { proxy } = getCurrentInstance();
+const emit = defineEmits();
 const dialogVisitable = ref(false);
-const operationType = ref('add');
+const operationType = ref("add");
 const deviceOptions = ref([]);
 const userStore = useUserStore();
 const data = reactive({
-	form: {
-		taskId: undefined,
-		deviceIds: [],
-		taskName: "",
-		// 褰曞叆浜猴細鍗曢�変竴涓敤鎴� id
-		inspector: undefined,
-		remarks: '',
-		frequencyType: '',
-		frequencyDetail: '',
-		week: '',
-		time: '',
-		deviceModel: undefined, // 瑙勬牸鍨嬪彿
-		registrationDate: ''
-	},
-	rules: {
-		deviceIds: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" }],
-		taskName: [{ required: true, message: "璇疯緭鍏ヤ换鍔″悕绉�", trigger: "blur" }],
-		inspector: [{ required: true, message: "璇烽�夋嫨褰曞叆浜�", trigger: "blur" },],
-		registrationDate: [{ required: true, message: "璇烽�夋嫨鐧昏鏃堕棿", trigger: "change" }]
-	}
-})
-const { form, rules } = toRefs(data)
-const userList = ref([])
+  form: {
+    taskId: undefined,
+    deviceIds: [],
+    taskName: "",
+    // 褰曞叆浜猴細鍗曢�変竴涓敤鎴� id
+    inspector: undefined,
+    remarks: "",
+    frequencyType: "",
+    frequencyDetail: "",
+    week: "",
+    time: "",
+    deviceModel: undefined, // 瑙勬牸鍨嬪彿
+    registrationDate: "",
+  },
+  rules: {
+    deviceIds: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" }],
+    taskName: [{ required: true, message: "璇疯緭鍏ヤ换鍔″悕绉�", trigger: "blur" }],
+    inspector: [{ required: true, message: "璇烽�夋嫨褰曞叆浜�", trigger: "blur" }],
+    registrationDate: [
+      { required: true, message: "璇烽�夋嫨鐧昏鏃堕棿", trigger: "change" },
+    ],
+  },
+});
+const { form, rules } = toRefs(data);
+const userList = ref([]);
 
 const loadDeviceName = async () => {
-	const { data } = await getDeviceLedger();
-	deviceOptions.value = data;
+  const { data } = await getDeviceLedger();
+  deviceOptions.value = data;
 };
 
 const normalizeIdList = (val) => {
-	if (!val) return []
-	if (Array.isArray(val)) return val
-	if (typeof val === 'string') {
-		const s = val.trim()
-		// JSON 瀛楃涓诧細"[1,2,3]"
-		if (s.startsWith('[') && s.endsWith(']')) {
-			try {
-				const arr = JSON.parse(s)
-				return Array.isArray(arr) ? arr : []
-			} catch {
-				return []
-			}
-		}
-		// 閫楀彿鍒嗛殧锛�"1,2,3"
-		return s.split(',').map(v => v.trim()).filter(Boolean)
-	}
-	return []
-}
+  if (!val) return [];
+  if (Array.isArray(val)) return val;
+  if (typeof val === "string") {
+    const s = val.trim();
+    // JSON 瀛楃涓诧細"[1,2,3]"
+    if (s.startsWith("[") && s.endsWith("]")) {
+      try {
+        const arr = JSON.parse(s);
+        return Array.isArray(arr) ? arr : [];
+      } catch {
+        return [];
+      }
+    }
+    // 閫楀彿鍒嗛殧锛�"1,2,3"
+    return s
+      .split(",")
+      .map((v) => v.trim())
+      .filter(Boolean);
+  }
+  return [];
+};
 
 // 閫夋嫨璁惧鏃讹紝椤哄甫鍥炲~瑙勬牸鍨嬪彿锛堝閫夋椂鍙栫涓�涓澶囩殑瑙勬牸鍨嬪彿锛�
 const handleDeviceChange = () => {
-	const selectedIds = form.value.deviceIds || []
-	const firstId = Array.isArray(selectedIds) ? selectedIds[0] : undefined
-	const firstDevice = deviceOptions.value.find(d => String(d.id) === String(firstId))
-	form.value.deviceModel = firstDevice?.deviceModel || firstDevice?.model || form.value.deviceModel
-}
+  const selectedIds = form.value.deviceIds || [];
+  const firstId = Array.isArray(selectedIds) ? selectedIds[0] : undefined;
+  const firstDevice = deviceOptions.value.find(
+    (d) => String(d.id) === String(firstId)
+  );
+  form.value.deviceModel =
+    firstDevice?.deviceModel || firstDevice?.model || form.value.deviceModel;
+};
 
 // 鎵撳紑寮规
 const openDialog = async (type, row) => {
-	dialogVisitable.value = true
-	operationType.value = type
-	
-	// 閲嶇疆琛ㄥ崟
-	resetForm();
-	
-	// 鍔犺浇鐢ㄦ埛鍒楄〃
-	userListNoPageByTenantId().then((res) => {
-		userList.value = res.data;
-	});
-	
-	// 鍔犺浇璁惧鍒楄〃
-	await loadDeviceName();
-	
-	if (type === 'edit' && row) {
-		form.value = { ...form.value, ...row }
-		// 缂栬緫鏃剁敤鎺ュ彛杩斿洖鐨� registrantId 鍥炴樉褰曞叆浜�
-		if (row.registrantId) {
-			form.value.inspector = row.registrantId
-		}
+  dialogVisitable.value = true;
+  operationType.value = type;
 
-		// 缂栬緫鍥炴樉锛歞eviceIds 鍙兘鏄� JSON 瀛楃涓� / 閫楀彿鍒嗛殧 / 鏁扮粍
-		const ids = normalizeIdList(row.deviceIds ?? row.taskIds)
-		form.value.deviceIds = ids.map(v => {
-			const n = Number(v)
-			return Number.isNaN(n) ? v : n
-		})
-		handleDeviceChange()
-	} else if (type === 'add') {
-		// 鏂板鏃惰缃櫥璁版棩鏈熶负褰撳ぉ
-		form.value.registrationDate = getCurrentDate();
-		// 鏂板鏃惰缃綍鍏ヤ汉涓哄綋鍓嶇櫥褰曡处鎴�
-		form.value.inspector = userStore.id;
-	}
-}
+  // 閲嶇疆琛ㄥ崟
+  resetForm();
+
+  // 鍔犺浇鐢ㄦ埛鍒楄〃
+  userListNoPageByTenantId().then((res) => {
+    userList.value = res.data;
+  });
+
+  // 鍔犺浇璁惧鍒楄〃
+  await loadDeviceName();
+
+  if (type === "edit" && row) {
+    form.value = { ...form.value, ...row };
+    // 缂栬緫鏃剁敤鎺ュ彛杩斿洖鐨� registrantId 鍥炴樉褰曞叆浜�
+    if (row.registrantId) {
+      form.value.inspector = row.registrantId;
+    }
+
+    // 缂栬緫鍥炴樉锛歞eviceIds 鍙兘鏄� JSON 瀛楃涓� / 閫楀彿鍒嗛殧 / 鏁扮粍
+    const ids = normalizeIdList(row.deviceIds ?? row.taskIds);
+    form.value.deviceIds = ids.map((v) => {
+      const n = Number(v);
+      return Number.isNaN(n) ? v : n;
+    });
+    handleDeviceChange();
+  } else if (type === "add") {
+    // 鏂板鏃惰缃櫥璁版棩鏈熶负褰撳ぉ
+    form.value.registrationDate = getCurrentDate();
+    // 鏂板鏃惰缃綍鍏ヤ汉涓哄綋鍓嶇櫥褰曡处鎴�
+    form.value.inspector = userStore.id;
+  }
+};
 
 // 鍏抽棴瀵硅瘽妗�
 const cancel = () => {
-	resetForm()
-	dialogVisitable.value = false
-	emit('closeDia')
-}
+  resetForm();
+  dialogVisitable.value = false;
+  emit("closeDia");
+};
 
 // 閲嶇疆琛ㄥ崟鍑芥暟
 const resetForm = () => {
-	if (proxy.$refs.formRef) {
-		proxy.$refs.formRef.resetFields()
-	}
-	// 閲嶇疆琛ㄥ崟鏁版嵁纭繚璁惧淇℃伅姝g‘閲嶇疆
-	form.value = {
-		taskId: undefined,
-		deviceIds: [],
-		taskName: "",
-		inspector: undefined,
-		remarks: '',
-		frequencyType: '',
-		frequencyDetail: '',
-		week: '',
-		time: '',
-		deviceModel: undefined,
-		registrationDate: ''
-	}
-}
+  if (proxy.$refs.formRef) {
+    proxy.$refs.formRef.resetFields();
+  }
+  // 閲嶇疆琛ㄥ崟鏁版嵁纭繚璁惧淇℃伅姝g‘閲嶇疆
+  form.value = {
+    taskId: undefined,
+    deviceIds: [],
+    taskName: "",
+    inspector: undefined,
+    remarks: "",
+    frequencyType: "",
+    frequencyDetail: "",
+    week: "",
+    time: "",
+    deviceModel: undefined,
+    registrationDate: "",
+  };
+};
 
 // 鎻愪氦琛ㄥ崟
 const submitForm = () => {
-	proxy.$refs["formRef"].validate(async valid => {
-		if (valid) {
-			try {
-				const payload = { ...form.value }
-				// 鍚庣瑕佹眰锛歞eviceIds 浠� JSON.stringify([1,2,3]) 褰㈠紡浼犲弬
-				payload.deviceIds = JSON.stringify(form.value.deviceIds || [])
-				// 涓嶅啀鍚戝悗绔紶淇濆吇浜哄瓧娈碉紝浠呬娇鐢ㄦ帴鍙h姹傜殑 registrant / registrantId
-				// 鏍规嵁閫夋嫨鐨�"褰曞叆浜�"璁剧疆 registrant / registrantId
-				if (payload.inspector) {
-					const selectedUser = userList.value.find(
-						(u) => String(u.userId) === String(payload.inspector)
-					)
-					if (selectedUser) {
-						payload.registrantId = selectedUser.userId
-						payload.registrant = selectedUser.nickName
-					}
-				}
-				delete payload.inspector
-				delete payload.inspectorIds
-				delete payload.taskIds
-				
-				if (payload.frequencyType === 'WEEKLY') {
-					let frequencyDetail = ''
-					frequencyDetail = payload.week + ',' + payload.time
-					payload.frequencyDetail = frequencyDetail
-				}
-				
-				// 褰曞叆鏃ユ湡锛氱洿鎺ヤ娇鐢ㄨ〃鍗曢噷鐨� registrationDate 瀛楁
-				// 涓�浜涢粯璁ょ姸鎬佸瓧娈�
-				if (payload.status === undefined || payload.status === null || payload.status === '') {
-					payload.status = '0' // 榛樿鐘舵�侊紝鍙寜瀹為檯鏋氫妇璋冩暣
-				}
-				payload.active = true
-				payload.deleted = 0
-				
-				if (operationType.value === 'edit') {
-					await deviceMaintenanceTaskEdit(payload)
-				} else {
-					await deviceMaintenanceTaskAdd(payload)
-				}
-				cancel()
-				proxy.$modal.msgSuccess('鎻愪氦鎴愬姛')
-			} catch (error) {
-				proxy.$modal.msgError('鎻愪氦澶辫触锛岃閲嶈瘯')
-			}
-		}
-	})
-}
-defineExpose({ openDialog })
+  proxy.$refs["formRef"].validate(async (valid) => {
+    if (valid) {
+      try {
+        const payload = { ...form.value };
+        // 鍚庣瑕佹眰锛歞eviceIds 浠� JSON.stringify([1,2,3]) 褰㈠紡浼犲弬
+        payload.deviceIds = JSON.stringify(form.value.deviceIds || []);
+        // 涓嶅啀鍚戝悗绔紶淇濆吇浜哄瓧娈碉紝浠呬娇鐢ㄦ帴鍙h姹傜殑 registrant / registrantId
+        // 鏍规嵁閫夋嫨鐨�"褰曞叆浜�"璁剧疆 registrant / registrantId
+        if (payload.inspector) {
+          const selectedUser = userList.value.find(
+            (u) => String(u.userId) === String(payload.inspector)
+          );
+          if (selectedUser) {
+            payload.registrantId = selectedUser.userId;
+            payload.registrant = selectedUser.nickName;
+          }
+        }
+        delete payload.inspector;
+        delete payload.inspectorIds;
+        delete payload.taskIds;
+
+        if (payload.frequencyType === "WEEKLY") {
+          let frequencyDetail = "";
+          frequencyDetail = payload.week + "," + payload.time;
+          payload.frequencyDetail = frequencyDetail;
+        }
+
+        // 褰曞叆鏃ユ湡锛氱洿鎺ヤ娇鐢ㄨ〃鍗曢噷鐨� registrationDate 瀛楁
+        // 涓�浜涢粯璁ょ姸鎬佸瓧娈�
+        if (
+          payload.status === undefined ||
+          payload.status === null ||
+          payload.status === ""
+        ) {
+          payload.status = "0"; // 榛樿鐘舵�侊紝鍙寜瀹為檯鏋氫妇璋冩暣
+        }
+        payload.active = true;
+        payload.deleted = 0;
+
+        if (operationType.value === "edit") {
+          await deviceMaintenanceTaskEdit(payload);
+        } else {
+          await deviceMaintenanceTaskAdd(payload);
+        }
+        cancel();
+        proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
+      } catch (error) {
+        proxy.$modal.msgError("鎻愪氦澶辫触锛岃閲嶈瘯");
+      }
+    }
+  });
+};
+defineExpose({ openDialog });
 </script>
 
-<style scoped>
-
-</style>
+<style scoped></style>

--
Gitblit v1.9.3