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