From f5870047d2dffa312f9d3f80abb3def283b5647f Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期二, 28 四月 2026 14:56:25 +0800
Subject: [PATCH] 阳光印刷开发-先生产排产->报工 只允许选择排产的生产人
---
src/views/productionManagement/workOrder/index.vue | 121 ++++++++++++++--------------------------
1 files changed, 42 insertions(+), 79 deletions(-)
diff --git a/src/views/productionManagement/workOrder/index.vue b/src/views/productionManagement/workOrder/index.vue
index 18423af..2b56480 100644
--- a/src/views/productionManagement/workOrder/index.vue
+++ b/src/views/productionManagement/workOrder/index.vue
@@ -234,7 +234,7 @@
placeholder="璇烽�夋嫨鐝粍鎴愬憳"
>
<el-option
- v-for="user in userTeamOptions"
+ v-for="user in reportForm.userIdsList"
:key="user.userId"
:label="user.nickName"
:value="{ userId: user.userId, userName: user.nickName }"
@@ -243,25 +243,25 @@
</el-form-item>
</el-col>
- <el-col :span="12">
- <el-form-item label="鏈哄彴" prop="deviceId">
- <el-select
- v-model="reportForm.deviceId"
- placeholder="璇烽�夋嫨鏈哄彴"
- filterable
- clearable
- @change="(val) => handleDeviceChange(val)"
- :disabled="isDetail"
- >
- <el-option
- v-for="item in deviceOptions"
- :key="item.id"
- :label="item.deviceName"
- :value="item.id"
- />
- </el-select>
- </el-form-item>
- </el-col>
+<!-- <el-col :span="12">-->
+<!-- <el-form-item label="鏈哄彴" prop="deviceId">-->
+<!-- <el-select-->
+<!-- v-model="reportForm.deviceId"-->
+<!-- placeholder="璇烽�夋嫨鏈哄彴"-->
+<!-- filterable-->
+<!-- clearable-->
+<!-- @change="(val) => handleDeviceChange(val)"-->
+<!-- :disabled="isDetail"-->
+<!-- >-->
+<!-- <el-option-->
+<!-- v-for="item in deviceOptions"-->
+<!-- :key="item.id"-->
+<!-- :label="item.deviceName"-->
+<!-- :value="item.id"-->
+<!-- />-->
+<!-- </el-select>-->
+<!-- </el-form-item>-->
+<!-- </el-col>-->
<el-col :span="12">
<el-form-item label="瀹℃牳浜�" prop="auditUserId">
@@ -500,50 +500,15 @@
return [val];
};
-const isCurrentUserReportWorker = (row) => {
+const isCurrentUserInUserIds = (row) => {
const uid = String(currentUserId.value || "");
if (!uid) return false;
- if (!row) return false;
- const candidateIds = [
- row.reportUserIds,
- row.reportWorkerIds,
- row.userIdList,
- row.reportUserId,
- row.userId,
- ]
- .flatMap((v) => normalizeArray(v))
- .map((v) => String(v))
+ const ids = normalizeArray(row?.userIds)
+ .map(id => String(id))
.filter(Boolean);
- if (candidateIds.includes(uid)) return true;
-
- const candidateNames = [
- row.userNames,
- row.reportUserNames,
- row.reportWorkerNames,
- row.userName,
- ]
- .flatMap((v) => normalizeArray(v))
- .map((v) => String(v))
- .filter(Boolean);
-
- if (currentUserName.value && candidateNames.includes(currentUserName.value)) {
- return true;
- }
-
- if (Array.isArray(row.reportWorkerList)) {
- const list = row.reportWorkerList
- .map((item) => String(item?.userId ?? item?.id ?? ""))
- .filter(Boolean);
- if (list.includes(uid)) return true;
- const nameList = row.reportWorkerList
- .map((item) => String(item?.userName ?? item?.nickName ?? ""))
- .filter(Boolean);
- if (currentUserName.value && nameList.includes(currentUserName.value)) return true;
- }
-
- return false;
+ return ids.includes(uid);
};
const canOperateByReportWorker = computed(() => {
@@ -1042,6 +1007,9 @@
clickFun: row => {
showReportDialog(row);
},
+ // 鐢ㄦ埛褰撳墠id
+ disabled: row => row.completeQuantity === row.planQuantity ||
+ !isCurrentUserInUserIds(row)
},
{
name: "鐢熶骇鎺掍骇",
@@ -1394,14 +1362,9 @@
};
const showReportDialog = row => {
- // if (!isCurrentUserReportWorker(row)) {
- // ElMessage.warning("褰撳墠鐢ㄦ埛涓嶆槸璇ュ伐鍗曠殑鎶ュ伐浜猴紝鏃犳硶鎶ュ伐");
- // return;
- // }
currentReportRowData.value = row;
reportForm.planQuantity = row.planQuantity - row.completeQuantity;
- reportForm.quantity =
- row.quantity !== undefined && row.quantity !== null ? row.quantity : null;
+ reportForm.quantity = row.quantity !== undefined && row.quantity !== null ? row.quantity : null;
reportForm.productProcessRouteItemId = row.productProcessRouteItemId;
reportForm.workOrderId = row.id;
reportForm.reportWork = row.reportWork;
@@ -1411,6 +1374,20 @@
reportForm.replenishQty = 0;
reportForm.teamList = [];
reportForm.scrapQty = 0;
+ reportForm.userIds = row.userIds || [];
+
+ const ids = (row.userIds || "")
+ .split(",")
+ .map(id => id.trim())
+ .filter(Boolean);
+
+ reportForm.userIdsList = userTeamOptions.value
+ .filter(item => ids.includes(String(item.userId)))
+ .map(item => ({
+ userId: item.userId,
+ nickName: item.nickName
+ }));
+
nextTick(() => {
reportFormRef.value?.clearValidate();
@@ -1478,20 +1455,6 @@
if (quantity > reportForm.planQuantity) {
ElMessageBox.alert("鏈鐢熶骇鏁伴噺涓嶈兘瓒呰繃寰呯敓浜ф暟閲�", "鎻愮ず", {
- confirmButtonText: "纭畾",
- });
- return;
- }
-
- if (!reportForm.startTime || !reportForm.endTime) {
- ElMessageBox.alert("寮�濮嬫椂闂村拰缁撴潫鏃堕棿涓嶈兘涓虹┖", "鎻愮ず", {
- confirmButtonText: "纭畾",
- });
- return;
- }
-
- if (dayjs(reportForm.startTime).isSame(dayjs(reportForm.endTime)) || dayjs(reportForm.startTime).isAfter(dayjs(reportForm.endTime))) {
- ElMessageBox.alert("寮�濮嬫椂闂村繀椤诲皬浜庣粨鏉熸椂闂�", "鎻愮ず", {
confirmButtonText: "纭畾",
});
return;
--
Gitblit v1.9.3