From b95a00bf7ec7c667e16032bcabc4d97ef42909fc Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 18 五月 2026 15:27:20 +0800
Subject: [PATCH] feat: 设备保养添加任务状态

---
 src/views/equipmentManagement/upkeep/index.vue                 |   24 ++++++++----
 src/views/equipmentManagement/upkeep/Form/PlanModal.vue        |    9 +++-
 src/views/equipmentManagement/upkeep/Form/formDia.vue          |   22 ++++++++--
 src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue |   21 +++++++---
 4 files changed, 54 insertions(+), 22 deletions(-)

diff --git a/src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue b/src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue
index 6b574a5..7de50e9 100644
--- a/src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue
+++ b/src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue
@@ -10,8 +10,9 @@
     <el-form :model="form" label-width="100px">
       <el-form-item label="瀹為檯淇濆吇浜�">
         <el-input
-          v-model="form.maintenanceActuallyName"
-          placeholder="璇疯緭鍏ュ疄闄呬繚鍏讳汉"
+          :model-value="currentUserName"
+          disabled
+          placeholder="褰撳墠鐧诲綍鐢ㄦ埛"
         ></el-input>
       </el-form-item>
       <el-form-item label="瀹為檯淇濆吇鏃ユ湡">
@@ -48,6 +49,7 @@
 </template>
 
 <script setup>
+import { computed } from "vue";
 import FormDialog from "@/components/Dialog/FormDialog.vue";
 import { addMaintenance } from "@/api/equipmentManagement/upkeep";
 import useFormData from "@/hooks/useFormData";
@@ -67,6 +69,8 @@
 const loading = ref(false);
 const userStore = useUserStore();
 
+const currentUserName = computed(() => userStore.nickName || userStore.name || "");
+
 const { form, resetForm } = useFormData({
   maintenanceActuallyName: undefined, // 瀹為檯淇濆吇浜�
   maintenanceActuallyTime: undefined, // 瀹為檯淇濆吇鏃ユ湡
@@ -75,10 +79,10 @@
 });
 
 const setForm = (data) => {
-  form.maintenanceActuallyName =
-    data.maintenanceActuallyName ?? userStore.nickName;
+  // 瀹為檯淇濆吇浜鸿嚜鍔ㄥ~鍏呭綋鍓嶇櫥褰曚汉锛屼笉鍙紪杈�
+  form.maintenanceActuallyName = userStore.nickName || userStore.name || "";
   form.maintenanceActuallyTime =
-    data.maintenanceActuallyTime 
+    data.maintenanceActuallyTime
       ? dayjs(data.maintenanceActuallyTime).format("YYYY-MM-DD HH:mm:ss")
       : dayjs().format("YYYY-MM-DD HH:mm:ss");
   form.maintenanceResult = data.maintenanceResult;
@@ -91,7 +95,12 @@
 const sendForm = async () => {
   loading.value = true;
   try {
-    const { code } = await addMaintenance({ id: planId.value, ...form });
+    // 纭繚瀹為檯淇濆吇浜烘槸褰撳墠鐧诲綍浜�
+    const payload = {
+      ...form,
+      maintenanceActuallyName: userStore.nickName || userStore.name || "",
+    };
+    const { code } = await addMaintenance({ id: planId.value, ...payload });
     if (code == 200) {
       ElMessage.success("淇濆吇鎴愬姛");
       emits("ok");
diff --git a/src/views/equipmentManagement/upkeep/Form/PlanModal.vue b/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
index 2df504e..0ba259d 100644
--- a/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
+++ b/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
@@ -7,7 +7,7 @@
     @cancel="handleCancel"
     @close="handleClose"
   >
-    <el-form :model="form" label-width="100px">
+    <el-form :model="form" :rules="rules" label-width="100px">
       <el-form-item label="璁惧鍚嶇О">
         <el-select
           v-model="form.deviceLedgerId"
@@ -39,14 +39,13 @@
           placeholder="褰撳墠鐧诲綍鐢ㄦ埛"
         />
       </el-form-item>
-      <el-form-item label="淇濆吇浜�">
+      <el-form-item label="淇濆吇浜�" prop="maintenancePerson">
         <el-select
           v-model="form.maintenancePerson"
           filterable
           default-first-option
           :reserve-keyword="false"
           placeholder="璇烽�夋嫨淇濆吇浜�"
-          clearable
           style="width: 100%"
         >
           <el-option
@@ -138,6 +137,10 @@
   () => userStore.nickName || userStore.name || "褰撳墠鐧诲綍鐢ㄦ埛"
 );
 
+const rules = {
+  maintenancePerson: [{ required: true, message: "璇烽�夋嫨淇濆吇浜�", trigger: "change" }],
+};
+
 const syncCreateUserFromLogin = () => {
   if (userStore.id != null && userStore.id !== "") {
     form.createUser = userStore.id;
diff --git a/src/views/equipmentManagement/upkeep/Form/formDia.vue b/src/views/equipmentManagement/upkeep/Form/formDia.vue
index 4c07007..a33a695 100644
--- a/src/views/equipmentManagement/upkeep/Form/formDia.vue
+++ b/src/views/equipmentManagement/upkeep/Form/formDia.vue
@@ -75,6 +75,17 @@
 						/>
 					</el-form-item>
 				</el-col>
+				<el-col :span="12">
+					<el-form-item label="浠诲姟鐘舵��">
+						<el-switch
+							v-model="form.isActive"
+							:active-value="1"
+							:inactive-value="0"
+							active-text="鍚敤"
+							inactive-text="鍋滅敤"
+						/>
+					</el-form-item>
+				</el-col>
 			</el-row>
 			<el-row>
 				<el-col :span="12">
@@ -185,7 +196,8 @@
 		week: '',
 		time: '',
 		deviceModel: undefined, // 瑙勬牸鍨嬪彿
-		registrationDate: ''
+		registrationDate: '',
+		isActive: 0, // 浠诲姟鐘舵�侊細0-鍋滅敤锛�1-鍚敤
 	},
 	rules: {
 		taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
@@ -301,7 +313,8 @@
 		week: '',
 		time: '',
 		deviceModel: undefined,
-		registrationDate: ''
+		registrationDate: '',
+		isActive: 0,
 	}
 }
 
@@ -335,10 +348,9 @@
 				
 				// 褰曞叆鏃ユ湡锛氱洿鎺ヤ娇鐢ㄨ〃鍗曢噷鐨� registrationDate 瀛楁
 				// 涓�浜涢粯璁ょ姸鎬佸瓧娈�
-				if (payload.status === undefined || payload.status === null || payload.status === '') {
-					payload.status = '0' // 榛樿鐘舵�侊紝鍙寜瀹為檯鏋氫妇璋冩暣
+				if (payload.isActive === undefined || payload.isActive === null) {
+					payload.isActive = 0 // 榛樿鍋滅敤
 				}
-				payload.active = true
 				payload.deleted = 0
 				
 				if (operationType.value === 'edit') {
diff --git a/src/views/equipmentManagement/upkeep/index.vue b/src/views/equipmentManagement/upkeep/index.vue
index 9820910..56e54c7 100644
--- a/src/views/equipmentManagement/upkeep/index.vue
+++ b/src/views/equipmentManagement/upkeep/index.vue
@@ -16,9 +16,9 @@
               />
             </el-form-item>
             <el-form-item label="浠诲姟鐘舵��">
-              <el-select v-model="scheduledFilters.status" placeholder="璇烽�夋嫨浠诲姟鐘舵��" clearable style="width: 200px">
-                <el-option label="鍚敤" value="1" />
-                <el-option label="鍋滅敤" value="0" />
+              <el-select v-model="scheduledFilters.isActive" placeholder="璇烽�夋嫨浠诲姟鐘舵��" clearable style="width: 200px">
+                <el-option label="鍚敤" :value="1" />
+                <el-option label="鍋滅敤" :value="0" />
               </el-select>
             </el-form-item>
             <el-form-item>
@@ -58,8 +58,8 @@
             @pagination="changeScheduledPage"
           >
             <template #statusRef="{ row }">
-              <el-tag v-if="row.status === 1" type="success">鍚敤</el-tag>
-              <el-tag v-if="row.status === 0" type="danger">鍋滅敤</el-tag>
+              <el-tag v-if="row.isActive === 1" type="success">鍚敤</el-tag>
+              <el-tag v-if="row.isActive === 0" type="danger">鍋滅敤</el-tag>
             </template>
             <template #operation="{ row }">
               <el-button
@@ -315,7 +315,7 @@
 // 瀹氭椂浠诲姟绠$悊tab鐩稿叧鍙橀噺
 const scheduledFilters = reactive({
   taskName: '',
-  status: '',
+  isActive: '',
 })
 
 const scheduledDataList = ref([])
@@ -375,6 +375,14 @@
 		showOverflowTooltip: true,
 	},
 	{ prop: "registrationDate", label: "鐧昏鏃ユ湡", minWidth: 100 },
+	{
+		label: "浠诲姟鐘舵��",
+		prop: "isActive",
+		minWidth: 100,
+		dataType: "slot",
+		slot: "statusRef",
+		align: "center",
+	},
 	{
 		fixed: "right",
 		label: "鎿嶄綔",
@@ -478,7 +486,7 @@
       current: scheduledPagination.currentPage,
       size: scheduledPagination.pageSize,
       taskName: scheduledFilters.taskName || undefined,
-      status: scheduledFilters.status || undefined,
+      isActive: scheduledFilters.isActive !== '' ? scheduledFilters.isActive : undefined,
     }
     const { code, data } = await deviceMaintenanceTaskList(params)
     if (code === 200) {
@@ -492,7 +500,7 @@
 
 const resetScheduledFilters = () => {
   scheduledFilters.taskName = ''
-  scheduledFilters.status = ''
+  scheduledFilters.isActive = ''
   getScheduledTableData()
 }
 

--
Gitblit v1.9.3