From 128fbbb094380976adf8184a8d99e2849e85bd17 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期一, 28 九月 2026 14:53:51 +0800
Subject: [PATCH] 宁夏万通需求:生产领料取消必填;设备台账批量删除;来料检验质检方案不绑定物料

---
 src/views/wls/productissue/data.ts   |    2 -
 src/views/mes/dv/machinery/index.vue |   42 +++++++++++++++++++++
 src/views/mes/dv/machinery/data.ts   |    5 ++
 src/views/mes/qc/iqc/data.ts         |   17 +-------
 4 files changed, 49 insertions(+), 17 deletions(-)

diff --git a/src/views/mes/dv/machinery/data.ts b/src/views/mes/dv/machinery/data.ts
index 8b39782..4459668 100644
--- a/src/views/mes/dv/machinery/data.ts
+++ b/src/views/mes/dv/machinery/data.ts
@@ -235,6 +235,11 @@
 export function useGridColumns(): VxeTableGridOptions<MesDvMachineryApi.Machinery>['columns'] {
   return [
     {
+      type: 'checkbox',
+      width: 50,
+      fixed: 'left',
+    },
+    {
       field: 'code',
       title: '璁惧缂栫爜',
       minWidth: 140,
diff --git a/src/views/mes/dv/machinery/index.vue b/src/views/mes/dv/machinery/index.vue
index b2e4ee5..8546a19 100644
--- a/src/views/mes/dv/machinery/index.vue
+++ b/src/views/mes/dv/machinery/index.vue
@@ -24,6 +24,14 @@
 import ImportForm from './modules/import-form.vue';
 
 const selectedMachineryTypeId = ref<number>(); // 閫変腑璁惧绫诲瀷缂栧彿
+const checkedIds = ref<number[]>([]);
+function handleRowCheckboxChange({
+  records,
+}: {
+  records: MesDvMachineryApi.Machinery[];
+}) {
+  checkedIds.value = records.map((item) => item.id!);
+}
 
 const [FormModal, formModalApi] = useVbenModal({
   connectedComponent: Form,
@@ -63,6 +71,22 @@
   try {
     await deleteMachinery(row.id!);
     message.success($t('ui.actionMessage.deleteSuccess', [row.name]));
+    handleRefresh();
+  } finally {
+    hideLoading();
+  }
+}
+
+/** 鎵归噺鍒犻櫎璁惧 */
+async function handleDeleteBatch() {
+  const hideLoading = message.loading({
+    content: $t('ui.actionMessage.deleting', [`${checkedIds.value.length} 鍙癭]),
+    duration: 0,
+  });
+  try {
+    await Promise.all(checkedIds.value.map((id) => deleteMachinery(id)));
+    message.success($t('ui.actionMessage.deleteSuccess', ['']));
+    checkedIds.value = [];
     handleRefresh();
   } finally {
     hideLoading();
@@ -116,6 +140,10 @@
       search: true,
     },
   } as VxeTableGridOptions<MesDvMachineryApi.Machinery>,
+  gridEvents: {
+    checkboxAll: handleRowCheckboxChange,
+    checkboxChange: handleRowCheckboxChange,
+  },
 });
 </script>
 
@@ -139,6 +167,20 @@
                   onClick: handleCreate,
                 },
                 {
+                  label: $t('ui.actionTitle.deleteBatch'),
+                  type: 'primary',
+                  danger: true,
+                  icon: ACTION_ICON.DELETE,
+                  auth: ['mes:dv-machinery:delete'],
+                  disabled: checkedIds.length === 0,
+                  popConfirm: {
+                    title: $t('ui.actionMessage.deleteConfirm', [
+                      `${checkedIds.length} 鍙癭,
+                    ]),
+                    confirm: handleDeleteBatch,
+                  },
+                },
+                {
                   label: $t('ui.actionTitle.import'),
                   type: 'primary',
                   icon: ACTION_ICON.UPLOAD,
diff --git a/src/views/mes/qc/iqc/data.ts b/src/views/mes/qc/iqc/data.ts
index 73c0f84..253d1e6 100644
--- a/src/views/mes/qc/iqc/data.ts
+++ b/src/views/mes/qc/iqc/data.ts
@@ -141,26 +141,13 @@
       component: 'ApiSelect',
       componentProps: {
         api: getTemplateItemOptionList,
-        autoSelect: 'first',
         labelField: 'templateName',
         valueField: 'templateId',
         placeholder: '璇烽�夋嫨璐ㄦ鏂规',
+        params: { qcType: 1 },
+        disabled: formType !== 'create',
       },
       rules: 'selectRequired',
-      dependencies: {
-        triggerFields: ['itemId'],
-        componentProps: (values) => ({
-          api: getTemplateItemOptionList,
-          autoSelect: 'first',
-          labelField: 'templateName',
-          valueField: 'templateId',
-          disabled: formType !== 'create' || !values.itemId,
-          params: values.itemId
-            ? { itemId: values.itemId, qcType: 1 }
-            : {},
-          placeholder: values.itemId ? '璇烽�夋嫨璐ㄦ鏂规' : '璇峰厛閫夋嫨浜у搧鐗╂枡',
-        }),
-      },
     },
     {
       fieldName: 'vendorId',
diff --git a/src/views/wls/productissue/data.ts b/src/views/wls/productissue/data.ts
index 896c624..7fd1ed3 100644
--- a/src/views/wls/productissue/data.ts
+++ b/src/views/wls/productissue/data.ts
@@ -119,7 +119,6 @@
           await formApi?.setFieldValue('taskId', undefined);
         },
       },
-      rules: 'selectRequired',
     },
     {
       fieldName: 'taskId',
@@ -140,7 +139,6 @@
           workOrderId: values.workOrderId,
         }),
       },
-      rules: 'selectRequired',
     },
     {
       fieldName: 'workstationId',

--
Gitblit v1.9.3