| | |
| | | value-format="YYYY-MM-DD" |
| | | style="width: 300px" /> |
| | | </el-form-item> |
| | | <el-form-item label="报工人"> |
| | | <el-select v-model="editrow.workerId" |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | | @change="handleWorkerChange"> |
| | | <el-option v-for="item in userOptions" |
| | | :key="item.userId" |
| | | :label="item.nickName" |
| | | :value="item.userId" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="交接人"> |
| | | <el-select v-model="editrow.handoverUserId" |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | | @change="handleHandoverUserChange"> |
| | | <el-option v-for="item in userOptions" |
| | | :key="item.userId" |
| | | :label="item.nickName" |
| | | :value="item.userId" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | |
| | | updateProductWorkOrder, |
| | | } from "@/api/productionManagement/workOrder.js"; |
| | | import { getCurrentInstance, reactive, toRefs } from "vue"; |
| | | import { userListAll } from '@/api/publicApi' |
| | | |
| | | const { proxy } = getCurrentInstance(); |
| | | |
| | | const tableColumn = ref([ |
| | |
| | | width: "140", |
| | | }, |
| | | { |
| | | label: "报工人", |
| | | prop: "workerName", |
| | | width: "120", |
| | | formatter: row => row?.workerName || (row?.workerId ? row.workerId : "-"), |
| | | }, |
| | | { |
| | | label: "交接人", |
| | | prop: "handoverUserName", |
| | | width: "120", |
| | | formatter: row => row?.handoverUserName || (row?.handoverUserId ? row.handoverUserId : "-"), |
| | | }, |
| | | { |
| | | label: "操作", |
| | | width: "100", |
| | | align: "center", |
| | |
| | | fixed: "right", |
| | | operation: [ |
| | | { |
| | | name: "计划时间", |
| | | name: "指派", |
| | | clickFun: row => { |
| | | handleEdit(row); |
| | | }, |
| | |
| | | return "#67c23a"; |
| | | }; |
| | | |
| | | const userOptions = ref([]); |
| | | const loadUserOptions = async () => { |
| | | try { |
| | | const res = await userListAll(); |
| | | userOptions.value = res.data; |
| | | } catch (error) { |
| | | console.error("获取用户列表失败", error); |
| | | } |
| | | }; |
| | | |
| | | const handleWorkerChange = val => { |
| | | const user = (userOptions.value || []).find(item => item.userId === val); |
| | | if (editrow.value) { |
| | | editrow.value.workerName = user ? (user.nickName || user.userName || "") : ""; |
| | | } |
| | | }; |
| | | |
| | | const handleHandoverUserChange = val => { |
| | | const user = (userOptions.value || []).find(item => item.userId === val); |
| | | if (editrow.value) { |
| | | editrow.value.handoverUserName = user ? (user.nickName || user.userName || "") : ""; |
| | | } |
| | | }; |
| | | |
| | | const normalizeNullableUserId = value => { |
| | | if (value === undefined || value === null || value === "") return null; |
| | | const n = Number(value); |
| | | if (!Number.isFinite(n) || n <= 0) return null; |
| | | return n; |
| | | }; |
| | | // 查询列表 |
| | | /** 搜索按钮操作 */ |
| | | const handleQuery = () => { |
| | |
| | | |
| | | const handleEdit = row => { |
| | | editrow.value = JSON.parse(JSON.stringify(row)); |
| | | editrow.value.workerId = normalizeNullableUserId(editrow.value.workerId); |
| | | editrow.value.handoverUserId = normalizeNullableUserId(editrow.value.handoverUserId); |
| | | editDialogVisible.value = true; |
| | | }; |
| | | |
| | | const handleUpdate = () => { |
| | | editrow.value.workerId = normalizeNullableUserId(editrow.value.workerId); |
| | | editrow.value.handoverUserId = normalizeNullableUserId(editrow.value.handoverUserId); |
| | | if (!editrow.value.workerId) editrow.value.workerName = null; |
| | | if (!editrow.value.handoverUserId) editrow.value.handoverUserName = null; |
| | | updateProductWorkOrder(editrow.value) |
| | | .then(res => { |
| | | proxy.$modal.msgSuccess("提交成功"); |
| | |
| | | |
| | | onMounted(() => { |
| | | getList(); |
| | | loadUserOptions(); |
| | | }); |
| | | </script> |
| | | |