From 6dfb5e44a7072d78ca6c04d21b7ed8ad126b874f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 01 七月 2025 14:05:44 +0800
Subject: [PATCH] 1.巡检管理频次选择逻辑修改

---
 src/views/inspectionManagement/components/formDia.vue |  121 ++++++++++++++++++++++++++++++++++------
 1 files changed, 102 insertions(+), 19 deletions(-)

diff --git a/src/views/inspectionManagement/components/formDia.vue b/src/views/inspectionManagement/components/formDia.vue
index 8da91ef..91e9c5c 100644
--- a/src/views/inspectionManagement/components/formDia.vue
+++ b/src/views/inspectionManagement/components/formDia.vue
@@ -10,20 +10,79 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="鍦扮偣" prop="port">
-              <el-input v-model="form.port" placeholder="璇疯緭鍏ュ湴鐐�" maxlength="30" />
+            <el-form-item label="鍦扮偣" prop="inspectionLocation">
+              <el-input v-model="form.inspectionLocation" placeholder="璇疯緭鍏ュ湴鐐�" maxlength="30" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="宸℃浜�" prop="inspector">
-              <el-input v-model="form.inspector" placeholder="宸℃浜�" maxlength="30" />
+              <el-select v-model="form.inspector" placeholder="璇烽�夋嫨" multiple 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="remarks">
               <el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" type="textarea" />
+            </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.frequencyDetail" 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>
@@ -39,9 +98,10 @@
 </template>
 
 <script setup>
-import {reactive, ref} from "vue";
+import {reactive, ref, computed} from "vue";
 import useUserStore from '@/store/modules/user'
-import {addOrEditInspectionTask} from "@/api/inspectionManagement/index.js";
+import {addOrEditTimingTask} from "@/api/inspectionManagement/index.js";
+import {userListAll} from "@/api/publicApi/index.js";
 
 const { proxy } = getCurrentInstance()
 const emit = defineEmits()
@@ -51,43 +111,66 @@
 const data = reactive({
   form: {
     taskName: '',
-    port: '',
+    inspectionLocation: '',
     inspector: '',
+    inspectorIds: '',
     remarks: '',
+    frequencyType: '',
+    frequencyDetail: '',
   },
   rules: {
     taskName: [{ required: true, message: "璇疯緭鍏ヤ换鍔″悕绉�", trigger: "blur" },],
-    port: [{ required: true, message: "璇疯緭鍏ュ湴鐐�", trigger: "blur" },],
+    inspectionLocation: [{ required: true, message: "璇疯緭鍏ュ湴鐐�", trigger: "blur" },],
     inspector: [{ required: true, message: "璇疯緭鍏ュ贰妫�浜�", trigger: "blur" },],
   }
 })
-
 const { form, rules } = toRefs(data)
+const userList = ref([])
 
 // 鎵撳紑寮规
 const openDialog = async (type, row) => {
   dialogVisitable.value = true
+  userListAll().then(res => {
+    userList.value = res.data
+  })
   if (type === 'edit') {
     form.value = {...row}
   }
 }
-// 鎻愪氦鍚堝苟琛ㄥ崟
-const submitForm = () => {
-  proxy.$refs["formRef"].validate(valid => {
-    if (valid) {
-      addOrEditInspectionTask(form.value).then(() => {
-        cancel()
-        proxy.$modal.msgSuccess('鎻愪氦鎴愬姛')
-      })
-    }
-  })
-}
+
 // 鍏抽棴鍚堝苟琛ㄥ崟
 const cancel = () => {
   proxy.resetForm("formRef")
   dialogVisitable.value = false
   emit('closeDia')
 }
+const selectedDateTime = ref(null)
+
+// 璁$畻鏄熸湡鍑�
+const dayOfWeek = computed(() => {
+  if (!selectedDateTime.value) return ''
+  
+  const date = new Date(selectedDateTime.value)
+  const dayIndex = date.getDay()
+  
+  const weekDays = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�']
+  return weekDays[dayIndex]
+})
+// 鎻愪氦鍚堝苟琛ㄥ崟
+const submitForm = () => {
+  proxy.$refs["formRef"].validate(valid => {
+    if (valid) {
+      form.value.inspectorIds = form.value.inspector.join(',')
+      if (form.value.frequencyType === 'WEEKLY') {
+        form.value.frequencyDetail = form.value.week + ',' + form.value.frequencyDetail
+      }
+      addOrEditTimingTask(form.value).then(() => {
+        cancel()
+        proxy.$modal.msgSuccess('鎻愪氦鎴愬姛')
+      })
+    }
+  })
+}
 defineExpose({ openDialog })
 </script>
 

--
Gitblit v1.9.3