gaoluyang
2026-03-30 d50f2acc73dc53a334c5feeb25a7e60e3df91f81
src/views/equipmentManagement/inspectionManagement/components/formDia.vue
@@ -5,8 +5,8 @@
         <el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
            <el-row>
               <el-col :span="12">
                  <el-form-item label="设备名称" prop="taskId">
                     <el-select v-model="form.taskId" @change="setDeviceModel" filterable>
            <el-form-item label="设备名称" prop="taskIds">
              <el-select v-model="form.taskIds" @change="setDeviceModel" multiple filterable>
                        <el-option
                           v-for="(item, index) in deviceOptions"
                           :key="index"
@@ -18,9 +18,7 @@
               </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="请选择" multiple clearable>
              <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>
@@ -30,18 +28,6 @@
               <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-col :span="12">
                  <el-form-item label="登记时间" prop="dateStr">
                     <el-date-picker
                        v-model="form.dateStr"
                        type="date"
                        placeholder="选择登记日期"
                        format="YYYY-MM-DD"
                        value-format="YYYY-MM-DD"
                        style="width: 100%"
                     />
                  </el-form-item>
               </el-col>
            </el-row>
@@ -105,8 +91,8 @@
         </el-form>
         <template #footer>
            <div class="dialog-footer">
               <el-button @click="cancel">取消</el-button>
               <el-button type="primary" @click="submitForm">保存</el-button>
          <el-button @click="cancel">取消</el-button>
            </div>
         </template>
      </el-dialog>
@@ -128,7 +114,7 @@
const deviceOptions = ref([]);
const data = reactive({
   form: {
      taskId: undefined,
    taskIds: [],
      taskName: undefined,
      inspector: '',
      inspectorIds: '',
@@ -136,13 +122,11 @@
      frequencyType: '',
      frequencyDetail: '',
      week: '',
      time: '',
      dateStr: ''
    time: ''
   },
   rules: {
      taskId: [{ required: true, message: "请选择设备", trigger: "change" },],
    taskIds: [{ required: true, message: "请选择设备", trigger: "change" },],
      inspector: [{ required: true, message: "请输入巡检人", trigger: "blur" },],
      dateStr: [{ required: true, message: "请选择登记时间", trigger: "change" }]
   }
})
const { form, rules } = toRefs(data)
@@ -153,10 +137,17 @@
   deviceOptions.value = data;
};
const setDeviceModel = (id) => {
   const option = deviceOptions.value.find((item) => item.id === id);
   if (option) {
      form.value.taskName = option.deviceName;
const setDeviceModel = (ids) => {
  if (!ids || ids.length === 0) {
    form.value.taskIds = []
    form.value.taskName = undefined
    return
  }
  const selectedDevices = deviceOptions.value.filter((item) => ids.includes(item.id))
  if (selectedDevices.length > 0) {
    form.value.taskIds = ids
    form.value.taskName = selectedDevices.map(d => d.deviceName).join(',')
   }
}
@@ -180,9 +171,10 @@
      form.value = {...row}
      form.value.inspector = form.value.inspectorIds.split(',').map(Number)
      
      // 如果有设备ID,自动设置设备信息
      if (form.value.taskId) {
         setDeviceModel(form.value.taskId);
    // 如果有设备ID数组,转换为数组并设置设备信息
    if (row.taskIds) {
      form.value.taskIds = row.taskIds.split(',').map(id => parseInt(id.trim()))
      setDeviceModel(form.value.taskIds)
      }
   }
}
@@ -201,7 +193,7 @@
   }
   // 重置表单数据确保设备信息正确重置
   form.value = {
      taskId: undefined,
    taskIds: [],
      taskName: undefined,
      inspector: '',
      inspectorIds: '',
@@ -221,6 +213,11 @@
            form.value.inspectorIds = form.value.inspector.join(',')
            delete form.value.inspector
            
        // 处理 taskIds 和 taskName
        if (form.value.taskIds && Array.isArray(form.value.taskIds)) {
          form.value.taskIds = form.value.taskIds.join(',')
        }
            if (form.value.frequencyType === 'WEEKLY') {
               let frequencyDetail = ''
               frequencyDetail = form.value.week + ',' + form.value.time