From dff9f074bc71b0da90a91f3467854c53cf696d0f Mon Sep 17 00:00:00 2001
From: zhang_nuo <zhang_12370@163.com>
Date: 星期四, 05 二月 2026 10:14:51 +0800
Subject: [PATCH] 首页工序数据生产统计明细、质量统计

---
 src/views/productionManagement/productionOrder/index.vue |   68 +++++++++++++++++++++++++++++----
 1 files changed, 59 insertions(+), 9 deletions(-)

diff --git a/src/views/productionManagement/productionOrder/index.vue b/src/views/productionManagement/productionOrder/index.vue
index 4c09ac7..761139e 100644
--- a/src/views/productionManagement/productionOrder/index.vue
+++ b/src/views/productionManagement/productionOrder/index.vue
@@ -41,6 +41,8 @@
         </el-form-item>
       </el-form>
       <div>
+        <el-button type="primary" @click="isShowNewModal = true">鏂板</el-button>
+        <el-button type="danger" @click="handleDelete">鍒犻櫎</el-button>
         <el-button @click="handleOut">瀵煎嚭</el-button>
       </div>
     </div>
@@ -51,6 +53,8 @@
                 :page="page"
                 :tableLoading="tableLoading"
                 :row-class-name="tableRowClassName"
+                :isSelection="true"
+                @selection-change="handleSelectionChange"
                 @pagination="pagination">
         <template #completionStatus="{ row }">
           <el-progress
@@ -86,6 +90,10 @@
         </span>
       </template>
     </el-dialog>
+
+    <new-product-order v-if="isShowNewModal"
+                         v-model:visible="isShowNewModal"
+                         @completed="handleQuery" />
   </div>
 </template>
 
@@ -98,12 +106,17 @@
     productOrderListPage,
     listProcessRoute,
     bindingRoute,
-    listProcessBom,
+    listProcessBom, delProductOrder,
   } from "@/api/productionManagement/productionOrder.js";
   import { listMain as getOrderProcessRouteMain } from "@/api/productionManagement/productProcessRoute.js";
+  import {fileDel} from "@/api/financialManagement/revenueManagement.js";
+  import PIMTable from "@/components/PIMTable/PIMTable.vue";
+  const NewProductOrder = defineAsyncComponent(() => import("@/views/productionManagement/productionOrder/New.vue"));
+
   const { proxy } = getCurrentInstance();
 
   const router = useRouter();
+  const isShowNewModal = ref(false);
 
   const tableColumn = ref([
     {
@@ -208,6 +221,7 @@
     size: 100,
     total: 0,
   });
+  const selectedRows = ref([]);
 
   const data = reactive({
     searchForm: {
@@ -239,13 +253,18 @@
 
   // 娣诲姞琛ㄨ绫诲悕鏂规硶
   const tableRowClassName = ({ row }) => {
-    switch (row.deliveryDaysDiff) {
-      case 15:
-        return 'yellow'
-      case 10:
-        return 'red'
-      case 2:
-        return 'purple'
+    if (!row.deliveryDate) return '';
+    if (row.isFh) return '';
+
+    const diff = row.deliveryDaysDiff;
+    if (diff === 15) {
+      return 'yellow';
+    } else if (diff === 10) {
+      return 'pink';
+    } else if (diff === 2) {
+      return 'purple';
+    } else if (diff < 2) {
+      return 'red';
     }
   };
 
@@ -382,6 +401,33 @@
     });
   };
 
+  // 琛ㄦ牸閫夋嫨鏁版嵁
+  const handleSelectionChange = (selection) => {
+    selectedRows.value = selection;
+  };
+
+  const handleDelete = () => {
+    let ids = [];
+    if (selectedRows.value.length > 0) {
+      ids = selectedRows.value.map((item) => item.id);
+    } else {
+      proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
+      return;
+    }
+    ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
+      confirmButtonText: "纭",
+      cancelButtonText: "鍙栨秷",
+      type: "warning",
+    }).then(() => {
+      delProductOrder(ids).then((res) => {
+        proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        getList();
+      });
+    }).catch(() => {
+      proxy.$modal.msg("宸插彇娑�");
+    });
+  };
+
   // 瀵煎嚭
   const handleOut = () => {
     ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
@@ -413,10 +459,14 @@
   background-color: #FAF0DE;
 }
 
-::v-deep .red {
+::v-deep .pink {
   background-color: #FAE1DE;
 }
 
+::v-deep .red {
+  background-color: #f80202;
+}
+
 ::v-deep .purple{
   background-color: #F4DEFA;
 }

--
Gitblit v1.9.3