From 8293aa5351afca2e18331bd5ec7731a5bd3af082 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期一, 23 三月 2026 11:48:38 +0800
Subject: [PATCH] 工艺路线默认卡片视图

---
 src/views/productionPlan/productionPlan/index.vue |  145 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 107 insertions(+), 38 deletions(-)

diff --git a/src/views/productionPlan/productionPlan/index.vue b/src/views/productionPlan/productionPlan/index.vue
index 8289f26..ed7011e 100644
--- a/src/views/productionPlan/productionPlan/index.vue
+++ b/src/views/productionPlan/productionPlan/index.vue
@@ -3,36 +3,9 @@
     <div class="search_form">
       <el-form :model="searchForm"
                :inline="true">
-        <el-form-item label="瀹㈡埛鍚嶇О:">
-          <el-input v-model="searchForm.customerName"
-                    placeholder="璇疯緭鍏�"
-                    clearable
-                    style="width: 160px;"
-                    @keyup.enter="handleQuery" />
-        </el-form-item>
+        <!-- 绠�鍖栫増鎼滅储鏉′欢 -->
         <el-form-item label="浜у搧鍚嶇О:">
           <el-input v-model="searchForm.productName"
-                    placeholder="璇疯緭鍏�"
-                    clearable
-                    style="width: 160px;"
-                    @keyup.enter="handleQuery" />
-        </el-form-item>
-        <el-form-item label="浜у搧瑙勬牸:">
-          <el-input v-model="searchForm.model"
-                    placeholder="璇疯緭鍏�"
-                    clearable
-                    style="width: 160px;"
-                    @keyup.enter="handleQuery" />
-        </el-form-item>
-        <el-form-item label="鐗╂枡缂栫爜:">
-          <el-input v-model="searchForm.materialCode"
-                    placeholder="璇疯緭鍏�"
-                    clearable
-                    style="width: 160px;"
-                    @keyup.enter="handleQuery" />
-        </el-form-item>
-        <el-form-item label="鐢宠鍗曠紪鍙�:">
-          <el-input v-model="searchForm.applyNo"
                     placeholder="璇疯緭鍏�"
                     clearable
                     style="width: 160px;"
@@ -50,7 +23,7 @@
         </el-form-item>
         <el-form-item label="涓嬪彂鐘舵��:">
           <el-select v-model="searchForm.status"
-                     placeholder="璇烽�夋嫨鐘舵��" 
+                     placeholder="璇烽�夋嫨鐘舵��"
                      clearable
                      filterable
                      style="width: 100px">
@@ -62,6 +35,37 @@
                        value="2" />
           </el-select>
         </el-form-item>
+        <!-- 灞曞紑鐗堟悳绱㈡潯浠� -->
+        <template v-if="searchFormExpanded">
+          <el-form-item label="瀹㈡埛鍚嶇О:">
+            <el-input v-model="searchForm.customerName"
+                      placeholder="璇疯緭鍏�"
+                      clearable
+                      style="width: 160px;"
+                      @keyup.enter="handleQuery" />
+          </el-form-item>
+          <el-form-item label="浜у搧瑙勬牸:">
+            <el-input v-model="searchForm.model"
+                      placeholder="璇疯緭鍏�"
+                      clearable
+                      style="width: 160px;"
+                      @keyup.enter="handleQuery" />
+          </el-form-item>
+          <el-form-item label="鐗╂枡缂栫爜:">
+            <el-input v-model="searchForm.materialCode"
+                      placeholder="璇疯緭鍏�"
+                      clearable
+                      style="width: 160px;"
+                      @keyup.enter="handleQuery" />
+          </el-form-item>
+          <el-form-item label="鐢宠鍗曠紪鍙�:">
+            <el-input v-model="searchForm.applyNo"
+                      placeholder="璇疯緭鍏�"
+                      clearable
+                      style="width: 160px;"
+                      @keyup.enter="handleQuery" />
+          </el-form-item>
+        </template>
         <el-form-item>
           <el-button type="primary"
                      @click="handleQuery">鎼滅储</el-button>
@@ -82,6 +86,16 @@
       <div>
       </div>
     </div>
+    <div class="search-header">
+      <el-button type="text"
+                 @click="toggleSearchForm">
+        <el-icon>
+          <ArrowUp v-if="searchFormExpanded" />
+          <ArrowDown v-else />
+        </el-icon>
+        {{ searchFormExpanded ? '鏀惰捣鎼滅储鏉′欢' : '灞曞紑鎼滅储鏉′欢' }}
+      </el-button>
+    </div>
     <div class="table_list">
       <PIMTable rowKey="id"
                 :column="tableColumn"
@@ -93,10 +107,17 @@
                 :selectable="isSelectable"
                 @selection-change="handleSelectionChange"
                 @pagination="pagination">
+        <template #quantity="{ row }">
+          {{ row.quantity || '-' }}<span style="color:rgb(63, 95, 211)"> 鍧�</span>
+        </template>
+        <template #volume="{ row }">
+          {{ row.volume || '-' }}<span style="color:rgba(12, 46, 40, 0.76)"> 鏂�</span>
+        </template>
       </PIMTable>
     </div>
     <!-- 鍚堝苟涓嬪彂寮圭獥 -->
     <el-dialog v-model="isShowNewModal"
+               destroy-on-close
                title="鍚堝苟涓嬪彂"
                width="600px">
       <el-form :model="mergeForm"
@@ -168,6 +189,7 @@
     </el-dialog>
     <!-- 杩借釜杩涘害寮圭獥 -->
     <el-dialog v-model="showTrackProgressDialog"
+               destroy-on-close
                :title="`杩借釜杩涘害 - ${trackProgressForm.materialCode || ''}`"
                width="600px">
       <el-form :model="trackProgressForm"
@@ -246,6 +268,7 @@
                   @close="handleImportClose" />
     <!-- 鏂板/缂栬緫寮圭獥 -->
     <el-dialog v-model="dialogVisible"
+               destroy-on-close
                :title="operationType === 'add' ? '鏂板鐢熶骇璁″垝' : '缂栬緫鐢熶骇璁″垝'"
                width="600px">
       <el-form ref="formRef"
@@ -366,6 +389,7 @@
 <script setup>
   import { onMounted, ref, reactive, getCurrentInstance, toRefs } from "vue";
   import { ElMessage } from "element-plus";
+  import { ArrowUp, ArrowDown } from "@element-plus/icons-vue";
   import dayjs from "dayjs";
   import ImportDialog from "@/components/Dialog/ImportDialog.vue";
   import { getToken } from "@/utils/auth";
@@ -441,14 +465,18 @@
     {
       label: "鍧楁暟",
       prop: "quantity",
-      formatData: cell => (cell ? `${cell}鍧梎 : ""),
+      align: "right",
+      dataType: "slot",
+      slot: "quantity",
     },
     {
       label: "鏂规暟",
       prop: "volume",
       width: "150px",
+      align: "right",
+      dataType: "slot",
+      slot: "volume",
       className: "volume-cell",
-      formatData: cell => (cell ? `${cell}鏂筦 : ""),
     },
     {
       label: "涓嬪彂鐘舵��",
@@ -896,8 +924,14 @@
       applyNo: "",
       dateRange: [],
     },
+    searchFormExpanded: false,
   });
-  const { searchForm } = toRefs(data);
+  const { searchForm, searchFormExpanded } = toRefs(data);
+
+  // 鍒囨崲鎼滅储琛ㄥ崟灞曞紑/鏀惰捣鐘舵��
+  const toggleSearchForm = () => {
+    data.searchFormExpanded = !data.searchFormExpanded;
+  };
 
   // 鏌ヨ鍒楄〃
   /** 鎼滅储鎸夐挳鎿嶄綔 */
@@ -1042,7 +1076,7 @@
         sum +
         (row.volume == null
           ? 0
-          : (Number(row.volume) - Number(row.assignedQuantity)).toFixed(4))
+          : Number(Number(row.volume) - Number(row.assignedQuantity).toFixed(4)))
       );
     }, 0);
     sumAssignedQuantity.value = totalAssignedQuantity;
@@ -1087,7 +1121,14 @@
     }
 
     console.log(mergeForm, "mergeForm");
-    productionPlanCombine(mergeForm)
+    const strengthItem = block_strength.value.find(
+      item => item.id === mergeForm.strength
+    );
+    const payload = {
+      ...mergeForm,
+      strength: strengthItem ? strengthItem.label : mergeForm.strength,
+    };
+    productionPlanCombine(payload)
       .then(res => {
         if (res.code === 200) {
           ElMessage.success("涓嬪彂鎴愬姛");
@@ -1318,10 +1359,7 @@
   }
 
   .search_form {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-    margin-bottom: 24px;
+    // margin-bottom: 24px;
     padding: 20px;
     background-color: #ffffff;
     border-radius: 6px;
@@ -1333,6 +1371,36 @@
     }
   }
 
+  .search-header {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    // margin-bottom: 5px;
+    // padding-bottom: 5px;
+    position: relative;
+    bottom: 35px;
+    // border-bottom: 1px solid #ebeef5;
+  }
+
+  .search-title {
+    font-size: 16px;
+    font-weight: 600;
+    color: #303133;
+  }
+
+  .search-header .el-button {
+    color: #606266;
+    transition: all 0.3s ease;
+  }
+
+  .search-header .el-button:hover {
+    color: #409eff;
+  }
+
+  .search-header .el-icon {
+    margin-right: 4px;
+  }
+
   .table_list {
     // margin-bottom: 24px;
     background-color: #ffffff;
@@ -1340,6 +1408,7 @@
     box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05);
     overflow: hidden;
     height: calc(100vh - 250px);
+    margin-top: 0px !important;
   }
 
   :deep(.el-table) {

--
Gitblit v1.9.3