| | |
| | | <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" |
| | |
| | | const deviceOptions = ref([]); |
| | | const data = reactive({ |
| | | form: { |
| | | taskId: undefined, |
| | | taskIds: [], |
| | | taskName: undefined, |
| | | inspector: '', |
| | | inspectorIds: '', |
| | |
| | | time: '' |
| | | }, |
| | | rules: { |
| | | taskId: [{ required: true, message: "请选择设备", trigger: "change" },], |
| | | taskIds: [{ required: true, message: "请选择设备", trigger: "change" },], |
| | | inspector: [{ required: true, message: "请输入巡检人", trigger: "blur" },], |
| | | } |
| | | }) |
| | |
| | | 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(',') |
| | | } |
| | | } |
| | | |
| | |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | // 重置表单数据确保设备信息正确重置 |
| | | form.value = { |
| | | taskId: undefined, |
| | | taskIds: [], |
| | | taskName: undefined, |
| | | inspector: '', |
| | | inspectorIds: '', |
| | |
| | | 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 |