From 425b026b723e3bf23b5945676da474d5f599d45f Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期三, 08 四月 2026 16:25:34 +0800
Subject: [PATCH] 生产排产: 增加报工人和交接人选择功能
---
src/views/productionManagement/workOrderEdit/index.vue | 75 +++++++++++++++++++++++++++++++++++++
1 files changed, 74 insertions(+), 1 deletions(-)
diff --git a/src/views/productionManagement/workOrderEdit/index.vue b/src/views/productionManagement/workOrderEdit/index.vue
index 50f9fce..44d6468 100644
--- a/src/views/productionManagement/workOrderEdit/index.vue
+++ b/src/views/productionManagement/workOrderEdit/index.vue
@@ -52,6 +52,28 @@
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">
@@ -73,6 +95,8 @@
updateProductWorkOrder,
} from "@/api/productionManagement/workOrder.js";
import { getCurrentInstance, reactive, toRefs } from "vue";
+import { userListAll } from '@/api/publicApi'
+
const { proxy } = getCurrentInstance();
const tableColumn = ref([
@@ -146,6 +170,18 @@
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",
@@ -153,7 +189,7 @@
fixed: "right",
operation: [
{
- name: "璁″垝鏃堕棿",
+ name: "鎸囨淳",
clickFun: row => {
handleEdit(row);
},
@@ -193,6 +229,36 @@
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 = () => {
@@ -220,10 +286,16 @@
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("鎻愪氦鎴愬姛");
@@ -239,6 +311,7 @@
onMounted(() => {
getList();
+ loadUserOptions();
});
</script>
--
Gitblit v1.9.3