From 459336e98dbd474a0cbf5a11660cc8821a092411 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期六, 14 三月 2026 16:41:46 +0800
Subject: [PATCH] 新增合格率字段到生产工序的新增和编辑页面,并在表格中显示相关参数。增加生产记录选择和批量删除功能。

---
 src/components/PIMTable/PIMTable.vue |   48 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 39 insertions(+), 9 deletions(-)

diff --git a/src/components/PIMTable/PIMTable.vue b/src/components/PIMTable/PIMTable.vue
index 955173d..159c533 100644
--- a/src/components/PIMTable/PIMTable.vue
+++ b/src/components/PIMTable/PIMTable.vue
@@ -10,7 +10,7 @@
     :row-class-name="rowClassName"
     :row-style="rowStyle"
     :row-key="rowKey"
-    style="width: 100%"
+    :style="tableStyle"
     tooltip-effect="dark"
     :expand-row-keys="expandRowKeys"
     :show-summary="isShowSummary"
@@ -26,6 +26,7 @@
       type="selection"
       width="55"
       v-if="isSelection"
+      :selectable="rowSelectable"
     />
     <el-table-column align="center" label="搴忓彿" type="index" width="60" />
 
@@ -40,12 +41,22 @@
       :fixed="item.fixed"
       :label="item.label"
       :prop="item.prop"
-      show-overflow-tooltip
+      :show-overflow-tooltip="item.dataType !== 'action' && item.dataType !== 'slot'"
       :align="item.align"
       :sortable="!!item.sortable"
       :type="item.type"
       :width="item.width"
     >
+      <template #header="scope">
+        <div class="pim-table-header-cell">
+          <div class="pim-table-header-title">
+            {{ item.label }}
+          </div>
+          <div v-if="item.headerSlot" class="pim-table-header-extra">
+            <slot :name="item.headerSlot" :column="scope.column" />
+          </div>
+        </div>
+      </template>
       <template
         v-if="item.hasOwnProperty('colunmTemplate')"
         #[item.colunmTemplate]="scope"
@@ -120,11 +131,10 @@
         </div>
 
         <!-- 鎸夐挳 -->
-        <div v-else-if="item.dataType == 'action'">
+        <div v-else-if="item.dataType == 'action'" @click.stop>
           <template v-for="(o, key) in item.operation" :key="key">
             <el-button
               v-show="o.type != 'upload'"
-              size="small"
               v-if="o.showHide ? o.showHide(scope.row) : true"
               :disabled="o.disabled ? o.disabled(scope.row) : false"
               :plain="o.plain"
@@ -136,7 +146,7 @@
                     : o.color,
               }"
               link
-              @click="o.clickFun(scope.row)"
+              @click.stop="o.clickFun(scope.row)"
               :key="key"
             >
               {{ o.name }}
@@ -149,7 +159,6 @@
                 (o.uploadIdFun ? o.uploadIdFun(scope.row) : scope.row.id)
               "
               ref="uploadRef"
-              size="small"
               :multiple="o.multiple ? o.multiple : false"
               :limit="1"
               :disabled="o.disabled ? o.disabled(scope.row) : false"
@@ -178,7 +187,6 @@
               :show-file-list="false"
             >
               <el-button
-                :size="o.size ? o.size : 'small'"
                 link
                 type="primary"
                 :disabled="o.disabled ? o.disabled(scope.row) : false"
@@ -207,7 +215,7 @@
     </el-table-column>
   </el-table>
   <pagination
-    v-if="page.total > 0"
+		v-if="isShowPagination"
     :total="page.total"
     :layout="page.layout"
     :page="page.current"
@@ -226,7 +234,7 @@
 const uploadHeader = proxy.uploadHeader;
 const javaApi = proxy.javaApi;
 
-const emit = defineEmits(["pagination", "expand-change", "selection-change"]);
+const emit = defineEmits(["pagination", "expand-change", "selection-change", "row-click"]);
 
 // Filters
 const typeFn = (val, row) => {
@@ -270,6 +278,10 @@
   isSelection: {
     type: Boolean,
     default: false,
+  },
+	isShowPagination: {
+    type: Boolean,
+    default: true,
   },
   isShowSummary: {
     type: Boolean,
@@ -316,7 +328,16 @@
     type: Number,
     default: 0,
   },
+  tableStyle: {
+    type: [String, Object],
+    default: () => ({ width: "100%" }),
+  },
 });
+
+// 閫夋嫨妗嗙鐢ㄦ帶鍒讹細琛屽璞′笂濡傛灉鏈� disabled === true锛屽垯涓嶅厑璁搁�変腑
+const rowSelectable = (row, index) => {
+  return !row.disabled;
+};
 
 // Data
 const uploadRefs = ref([]);
@@ -412,6 +433,10 @@
   emit("pagination", { page: page, limit: limit });
 };
 
+const rowClick = (row) => {
+  emit("row-click", row);
+};
+
 const expandChange = (row, expandedRows) => {
   emit("expand-change", row, expandedRows);
 };
@@ -429,4 +454,9 @@
   padding-right: 0 !important;
   padding-left: 0 !important;
 }
+
+.pim-table-header-extra :deep(.el-input),
+.pim-table-header-extra :deep(.el-select) {
+  width: 100%;
+}
 </style>

--
Gitblit v1.9.3