From d2fb1300564eaa8166f4db1184c521e468cd2ed3 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期五, 17 四月 2026 14:23:09 +0800
Subject: [PATCH] 不合格处理:增加字段增删改,展示
---
src/views/productionManagement/workOrderEdit/index.vue | 75 ++++++++++++++++++++++++++++++++++---
1 files changed, 69 insertions(+), 6 deletions(-)
diff --git a/src/views/productionManagement/workOrderEdit/index.vue b/src/views/productionManagement/workOrderEdit/index.vue
index 50f9fce..dd34243 100644
--- a/src/views/productionManagement/workOrderEdit/index.vue
+++ b/src/views/productionManagement/workOrderEdit/index.vue
@@ -1,3 +1,4 @@
+// 鐢熶骇鎺掍骇
<template>
<div class="app-container">
<div class="search_form">
@@ -40,17 +41,33 @@
label-width="120px">
<el-form-item label="璁″垝寮�濮嬫椂闂�">
<el-date-picker v-model="editrow.planStartTime"
- type="date"
+ type="datetime"
placeholder="璇烽�夋嫨"
- value-format="YYYY-MM-DD"
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
style="width: 300px" />
</el-form-item>
<el-form-item label="璁″垝缁撴潫鏃堕棿">
<el-date-picker v-model="editrow.planEndTime"
- type="date"
+ type="datetime"
placeholder="璇烽�夋嫨"
- value-format="YYYY-MM-DD"
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
style="width: 300px" />
+ </el-form-item>
+ <el-form-item label="鎶ュ伐浜�">
+ <el-select v-model="editrow.reportWorkUserIds"
+ multiple
+ filterable
+ collapse-tags
+ collapse-tags-tooltip
+ placeholder="璇烽�夋嫨鎶ュ伐浜�"
+ style="width: 300px">
+ <el-option v-for="user in userOptions"
+ :key="user.userId"
+ :label="user.nickName"
+ :value="user.userId" />
+ </el-select>
</el-form-item>
</el-form>
<template #footer>
@@ -72,6 +89,7 @@
productWorkOrderPage,
updateProductWorkOrder,
} from "@/api/productionManagement/workOrder.js";
+ import { userListNoPageByTenantId } from "@/api/system/user.js";
import { getCurrentInstance, reactive, toRefs } from "vue";
const { proxy } = getCurrentInstance();
@@ -111,6 +129,11 @@
{
label: "闇�姹傛暟閲�",
prop: "planQuantity",
+ width: "140",
+ },
+ {
+ label: "璁″垝宸ユ椂(灏忔椂)",
+ prop: "plannedWorkHours",
width: "140",
},
{
@@ -163,6 +186,7 @@
]);
const tableData = ref([]);
+ const userOptions = ref([]);
const tableLoading = ref(false);
const editDialogVisible = ref(false);
let editrow = ref(null);
@@ -210,7 +234,11 @@
productWorkOrderPage(params)
.then(res => {
tableLoading.value = false;
- tableData.value = res.data.records;
+ tableData.value = (res.data.records || []).map(item => ({
+ ...item,
+ planStartTime: formatDateTime(item.planStartTime),
+ planEndTime: formatDateTime(item.planEndTime),
+ }));
page.total = res.data.total;
})
.catch(() => {
@@ -220,11 +248,45 @@
const handleEdit = row => {
editrow.value = JSON.parse(JSON.stringify(row));
+ if (typeof editrow.value.reportWorkUserIds === "string") {
+ editrow.value.reportWorkUserIds = editrow.value.reportWorkUserIds
+ .split(",")
+ .map(v => Number(v))
+ .filter(v => Number.isFinite(v));
+ } else if (!Array.isArray(editrow.value.reportWorkUserIds)) {
+ editrow.value.reportWorkUserIds = [];
+ }
editDialogVisible.value = true;
};
+ const formatDateTime = value => {
+ if (!value) return "";
+ const date = dayjs(value);
+ return date.isValid() ? date.format("YYYY-MM-DD HH:mm:ss") : value;
+ };
+
+ const getUserList = () => {
+ userListNoPageByTenantId()
+ .then(res => {
+ if (res.code === 200) {
+ userOptions.value = res.data || [];
+ }
+ })
+ .catch(() => {
+ userOptions.value = [];
+ });
+ };
+
const handleUpdate = () => {
- updateProductWorkOrder(editrow.value)
+ const selectedUsers = userOptions.value.filter(user =>
+ (editrow.value.reportWorkUserIds || []).includes(user.userId)
+ );
+ const submitData = {
+ ...editrow.value,
+ reportWorkUserIds: editrow.value.reportWorkUserIds || [],
+ reportWork: selectedUsers.map(user => user.nickName).join(","),
+ };
+ updateProductWorkOrder(submitData)
.then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
editDialogVisible.value = false;
@@ -239,6 +301,7 @@
onMounted(() => {
getList();
+ getUserList();
});
</script>
--
Gitblit v1.9.3