| | |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="录入人" prop="inspector"> |
| | | <el-input |
| | | :model-value="registrantDisplayName" |
| | | disabled |
| | | placeholder="当前登录用户" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="保养人" prop="maintenancePerson"> |
| | | <el-select |
| | | v-model="form.inspector" |
| | | v-model="form.maintenancePerson" |
| | | filterable |
| | | default-first-option |
| | | :reserve-keyword="false" |
| | |
| | | v-for="item in userList" |
| | | :label="item.nickName" |
| | | :value="item.userId" |
| | | :key="item.userId" |
| | | :key="'mp-' + item.userId" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="登记时间" prop="registrationDate"> |
| | | <el-date-picker |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="保养项目" prop="maintenanceLocation"> |
| | | <el-input v-model="form.maintenanceLocation" placeholder="请输入保养项目" /> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="保养项目" prop="maintenanceItems"> |
| | | <el-input |
| | | v-model="form.maintenanceItems" |
| | | type="textarea" |
| | | :rows="3" |
| | | placeholder="请输入保养项目" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="备注" prop="remarks"> |
| | | <el-input v-model="form.remarks" placeholder="请输入备注" type="textarea" /> |
| | | </el-form-item> |
| | |
| | | |
| | | <script setup> |
| | | import FormDialog from "@/components/Dialog/FormDialog.vue"; |
| | | import { reactive, ref, getCurrentInstance, toRefs } from "vue"; |
| | | import { reactive, ref, computed, getCurrentInstance, toRefs } from "vue"; |
| | | import {userListNoPageByTenantId} from "@/api/system/user.js"; |
| | | import { getDeviceLedger } from "@/api/equipmentManagement/ledger"; |
| | | import { deviceMaintenanceTaskAdd, deviceMaintenanceTaskEdit } from "@/api/equipmentManagement/upkeep"; |
| | |
| | | form: { |
| | | taskId: undefined, |
| | | taskName: undefined, |
| | | // 录入人:单选一个用户 id |
| | | // 录入人、保养人:用户 id |
| | | inspector: undefined, |
| | | maintenanceLocation: '', |
| | | maintenancePerson: undefined, |
| | | maintenanceItems: '', |
| | | remarks: '', |
| | | frequencyType: '', |
| | | frequencyDetail: '', |
| | |
| | | rules: { |
| | | taskId: [{ required: true, message: "请选择设备", trigger: "change" },], |
| | | inspector: [{ required: true, message: "请选择录入人", trigger: "blur" },], |
| | | maintenancePerson: [{ required: true, message: "请选择保养人", trigger: "change" }], |
| | | maintenanceItems: [{ required: true, message: "请输入保养项目", trigger: "blur" }], |
| | | registrationDate: [{ required: true, message: "请选择登记时间", trigger: "change" }], |
| | | frequencyDetail: [{ |
| | | validator: (rule, value, callback) => { |
| | |
| | | }) |
| | | const { form, rules } = toRefs(data) |
| | | const userList = ref([]) |
| | | |
| | | const registrantDisplayName = computed( |
| | | () => userStore.nickName || userStore.name || "当前登录用户" |
| | | ) |
| | | |
| | | const syncRegistrantFromLogin = () => { |
| | | if (userStore.id != null && userStore.id !== "") { |
| | | form.value.inspector = userStore.id |
| | | } |
| | | } |
| | | |
| | | const loadDeviceName = async () => { |
| | | const { data } = await getDeviceLedger(); |
| | |
| | | |
| | | if (type === 'edit' && row) { |
| | | form.value = { ...row } |
| | | // 编辑时用接口返回的 registrantId 回显录入人 |
| | | if (row.registrantId) { |
| | | form.value.inspector = row.registrantId |
| | | if (row.maintenancePersonId) { |
| | | form.value.maintenancePerson = row.maintenancePersonId |
| | | } |
| | | |
| | | // 如果有设备ID,自动设置设备信息 |
| | | if (form.value.taskId) { |
| | | setDeviceModel(form.value.taskId); |
| | | } |
| | | } else if (type === 'add') { |
| | | // 新增时设置登记日期为当天 |
| | | form.value.registrationDate = getCurrentDate(); |
| | | // 新增时设置录入人为当前登录账户 |
| | | form.value.inspector = userStore.id; |
| | | form.value.maintenancePerson = userStore.id; |
| | | } |
| | | syncRegistrantFromLogin() |
| | | } |
| | | |
| | | // 关闭对话框 |
| | |
| | | taskId: undefined, |
| | | taskName: undefined, |
| | | inspector: undefined, |
| | | inspector: undefined, |
| | | maintenanceLocation: '', |
| | | maintenancePerson: undefined, |
| | | maintenanceItems: '', |
| | | remarks: '', |
| | | frequencyType: '', |
| | | frequencyDetail: '', |
| | |
| | | |
| | | // 提交表单 |
| | | const submitForm = () => { |
| | | syncRegistrantFromLogin() |
| | | proxy.$refs["formRef"].validate(async valid => { |
| | | if (valid) { |
| | | try { |
| | | const payload = { ...form.value } |
| | | // 不再向后端传保养人字段,仅使用接口要求的 registrant / registrantId |
| | | // 根据选择的"录入人"设置 registrant / registrantId |
| | | if (payload.inspector) { |
| | | const selectedUser = userList.value.find( |
| | | (u) => String(u.userId) === String(payload.inspector) |
| | | payload.registrantId = userStore.id |
| | | payload.registrant = userStore.nickName || userStore.name |
| | | const maintenancePersonUserId = form.value.maintenancePerson |
| | | if (maintenancePersonUserId) { |
| | | const maintainer = userList.value.find( |
| | | (u) => String(u.userId) === String(maintenancePersonUserId) |
| | | ) |
| | | if (selectedUser) { |
| | | payload.registrantId = selectedUser.userId |
| | | payload.registrant = selectedUser.nickName |
| | | if (maintainer) { |
| | | payload.maintenancePersonId = maintainer.userId |
| | | payload.maintenancePerson = maintainer.nickName |
| | | } |
| | | } |
| | | delete payload.inspector |