From 58fc2d97304444f46b265a679008149d0761e49e Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期三, 02 九月 2026 19:50:54 +0800
Subject: [PATCH] 过程检批量提交
---
src/views/qualityManagement/processInspection/index.vue | 73 ++++++++++++++++++++++++++++++++++++
1 files changed, 73 insertions(+), 0 deletions(-)
diff --git a/src/views/qualityManagement/processInspection/index.vue b/src/views/qualityManagement/processInspection/index.vue
index 58d1a3a..7cecaa2 100644
--- a/src/views/qualityManagement/processInspection/index.vue
+++ b/src/views/qualityManagement/processInspection/index.vue
@@ -34,6 +34,10 @@
<el-button type="primary"
@click="openForm('add')">鏂板</el-button>
<el-button @click="handleOut">瀵煎嚭</el-button>
+ <el-button type="primary"
+ plain
+ :loading="batchSubmitting"
+ @click="handleBatchSubmit">鎵归噺鎻愪氦</el-button>
<el-button type="danger"
plain
@click="handleDelete">鍒犻櫎</el-button>
@@ -302,6 +306,7 @@
const tableData = ref([]);
const selectedRows = ref([]);
const tableLoading = ref(false);
+ const batchSubmitting = ref(false);
const dialogFormVisible = ref(false);
const form = ref({
checkName: "",
@@ -366,6 +371,16 @@
selectedRows.value = selection;
};
+ const canSubmit = row => {
+ // 宸叉彁浜ゅ垯绂佺敤
+ if (row.inspectState == 1) return false;
+ // 濡傛灉妫�楠屽憳鏈夊�硷紝鍙湁褰撳墠鐧诲綍鐢ㄦ埛鑳芥彁浜�
+ if (row.checkName) {
+ return row.checkName === userStore.nickName;
+ }
+ return true;
+ };
+
// 鎵撳紑寮规
const openForm = (type, row) => {
nextTick(() => {
@@ -392,6 +407,64 @@
getList();
}
};
+
+ const handleBatchSubmit = () => {
+ if (selectedRows.value.length === 0) {
+ proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
+ return;
+ }
+
+ const submitRows = selectedRows.value.filter(item => canSubmit(item));
+ const skipCount = selectedRows.value.length - submitRows.length;
+ if (submitRows.length === 0) {
+ proxy.$modal.msgWarning("鎵�閫夋暟鎹潎涓嶅彲鎻愪氦");
+ return;
+ }
+
+ const message =
+ skipCount > 0
+ ? `宸查�夋嫨${selectedRows.value.length}鏉★紝鍏朵腑${submitRows.length}鏉″彲鎻愪氦锛�${skipCount}鏉″凡鎻愪氦鎴栨棤鏉冮檺锛屽皢鑷姩璺宠繃銆傛槸鍚︾‘璁ゆ彁浜わ紵`
+ : `閫変腑鐨�${submitRows.length}鏉″唴瀹瑰皢琚彁浜わ紝鏄惁纭鎻愪氦锛焋;
+
+ ElMessageBox.confirm(message, "鎵归噺鎻愪氦", {
+ confirmButtonText: "纭",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(async () => {
+ batchSubmitting.value = true;
+ const results = await Promise.allSettled(
+ submitRows.map(item => submitQualityInspect({ id: item.id }))
+ );
+ const successCount = results.filter(
+ item => item.status === "fulfilled" && item.value?.code === 200
+ ).length;
+ const failCount = submitRows.length - successCount;
+
+ if (failCount === 0 && skipCount === 0) {
+ proxy.$modal.msgSuccess("鎵归噺鎻愪氦鎴愬姛");
+ } else if (failCount === 0) {
+ proxy.$modal.msgSuccess(
+ `鎴愬姛鎻愪氦${successCount}鏉★紝璺宠繃${skipCount}鏉
+ );
+ } else if (successCount > 0) {
+ proxy.$modal.msgWarning(
+ `鎴愬姛鎻愪氦${successCount}鏉★紝澶辫触${failCount}鏉★紝璺宠繃${skipCount}鏉
+ );
+ } else {
+ proxy.$modal.msgError(
+ `鎵归噺鎻愪氦澶辫触锛屽け璐�${failCount}鏉★紝璺宠繃${skipCount}鏉
+ );
+ }
+ getList();
+ })
+ .catch(() => {
+ proxy.$modal.msg("宸插彇娑�");
+ })
+ .finally(() => {
+ batchSubmitting.value = false;
+ });
+ };
const open = async row => {
let userLists = await userListNoPage();
userList.value = userLists.data;
--
Gitblit v1.9.3