From f3b97d08e13224c6bc1d4f267bdb1a4e0b3690c3 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期五, 13 三月 2026 17:41:33 +0800
Subject: [PATCH] 参数配置页面开发(未接接口)
---
src/views/productionPlan/productionPlan/index.vue | 143 ++++++++++++++++++++++++++++++++++++-----------
1 files changed, 108 insertions(+), 35 deletions(-)
diff --git a/src/views/productionPlan/productionPlan/index.vue b/src/views/productionPlan/productionPlan/index.vue
index e70fa22..9e4c098 100644
--- a/src/views/productionPlan/productionPlan/index.vue
+++ b/src/views/productionPlan/productionPlan/index.vue
@@ -248,6 +248,7 @@
prop="productMaterialSkuId">
<el-select v-model="form.productMaterialSkuId"
@change="handleChangeSpecification"
+ filterable
placeholder="璇烽�夋嫨">
<el-option v-for="item in specificationOptions"
:key="item.skuId"
@@ -301,8 +302,14 @@
</el-form-item>
<el-form-item label="寮哄害"
prop="strength">
- <el-input v-model="form.strength"
- placeholder="璇疯緭鍏ュ己搴�" />
+ <el-select v-model="form.strength"
+ placeholder="璇烽�夋嫨寮哄害"
+ style="width: 100%">
+ <el-option label="A3.5"
+ value="A3.5" />
+ <el-option label="A5.0"
+ value="A5.0" />
+ </el-select>
</el-form-item>
<el-form-item label="澶囨敞 1"
prop="remarkOne">
@@ -342,16 +349,33 @@
productionPlanCombine,
} from "@/api/productionPlan/productionPlan.js";
import PIMTable from "./components/PIMTable.vue";
- import { modelListPage, productTreeList } from "@/api/basicData/newProduct.js";
+ import {
+ modelListPage,
+ productTreeList,
+ productTreeListQuery,
+ } from "@/api/basicData/newProduct.js";
const { proxy } = getCurrentInstance();
const tableColumn = ref([
{
+ label: "鏁版嵁鏉ユ簮",
+ width: "100px",
+ prop: "dataSourceType",
+ dataType: "tag",
+ formatType: params => {
+ const typeMap = {
+ 2: "warning",
+ 1: "primary",
+ };
+ return typeMap[params] || "info";
+ },
+ formatData: cell => (cell == 1 ? "閽夐拤鍚屾" : "鎵嬪姩鏂板"),
+ },
+ {
label: "鐢宠鍗曠紪鍙�",
prop: "applyNo",
width: "150px",
- className: "code-cell",
},
{
label: "瀹㈡埛鍚嶇О",
@@ -361,14 +385,15 @@
{
label: "浜у搧鍚嶇О",
prop: "productName",
- width: "100px",
+ width: "200px",
dataType: "tag",
formatType: params => {
- const typeMap = {
- 鏉挎潗: "primary",
- 鐮屽潡: "info",
- };
- return typeMap[params] || "info";
+ // const typeMap = {
+ // 鏉挎潗: "primary",
+ // 鐮屽潡: "warning",
+ // };
+ // return typeMap[params] || "info";
+ return "primary";
},
},
{
@@ -381,46 +406,73 @@
label: "鐗╂枡缂栫爜",
prop: "materialCode",
width: "150px",
- className: "code-cell",
},
{
label: "鍧楁暟",
prop: "quantity",
- className: "quantity-cell",
+ formatData: cell => (cell ? `${cell}鍧梎 : ""),
},
{
label: "鏂规暟",
prop: "volume",
width: "150px",
className: "volume-cell",
+ formatData: cell => (cell ? `${cell}鏂筦 : ""),
+ },
+ {
+ label: "涓嬪彂鐘舵��",
+ prop: "status",
+ width: "150px",
+ className: "status-cell",
+ dataType: "tag",
+ formatType: params => {
+ const typeMap = {
+ 0: "warning",
+ 1: "primary",
+ 2: "info",
+ };
+ return typeMap[params] || "info";
+ },
+ formatData: cell => {
+ const statusMap = {
+ 0: "寰呬笅鍙�",
+ 1: "閮ㄥ垎涓嬪彂",
+ 2: "宸蹭笅鍙�",
+ };
+ return statusMap[cell] || "";
+ },
},
{
label: "宸蹭笅鍙戞柟鏁�",
prop: "assignedQuantity",
width: "150px",
className: "spec-cell",
+ formatData: cell => (cell ? `${cell}鏂筦 : 0),
},
{
label: "闀�",
prop: "length",
className: "dimension-cell",
+ formatData: cell => (cell ? `${cell}mm` : ""),
},
{
label: "瀹�",
prop: "width",
className: "dimension-cell",
+ formatData: cell => (cell ? `${cell}mm` : ""),
},
{
label: "楂�",
prop: "height",
className: "dimension-cell",
+ formatData: cell => (cell ? `${cell}mm` : ""),
},
- {
- label: "娴佹按鍙�",
- prop: "serialNo",
- width: "150px",
- className: "code-cell",
- },
+ // {
+ // label: "娴佹按鍙�",
+ // prop: "serialNo",
+ // width: "150px",
+ // className: "code-cell",
+ // },
{
label: "璁″垝寮�濮嬫棩鏈�",
prop: "startDate",
@@ -439,18 +491,15 @@
label: "寮哄害",
prop: "strength",
},
- // {
- // label: "鏁版嵁鏉ユ簮",
- // width: "100px",
- // prop: "dataSourceType",
- // formatData: cell => (cell == 1 ? "鍚屾" : "鎵嬪姩"),
- // },
+
{
label: "澶囨敞 1",
+ width: "150px",
prop: "remarkOne",
},
{
label: "澶囨敞 2",
+ width: "150px",
prop: "remarkTwo",
},
@@ -465,6 +514,10 @@
name: "缂栬緫",
type: "primary",
link: true,
+ showHide: row => {
+ return row.status == 0;
+ //status锛�0锛氬緟涓嬪彂锛�1锛氶儴鍒嗕笅鍙戯紝2锛氬凡涓嬪彂
+ },
clickFun: row => {
handleEdit(row);
},
@@ -473,6 +526,9 @@
name: "鍒犻櫎",
type: "danger",
link: true,
+ showHide: row => {
+ return row.status == 0;
+ },
clickFun: row => {
handleDelete(row);
},
@@ -480,12 +536,12 @@
{
name: "涓嬪彂",
type: "text",
- disabled: row => {
+ showHide: row => {
// 璁$畻鍓╀綑鏂规暟
const remainingVolume =
(row.volume || 0) - (row.assignedQuantity || 0);
// 濡傛灉鍓╀綑鏂规暟灏忎簬绛変簬0锛岀姝㈤�夋嫨
- return remainingVolume <= 0;
+ return remainingVolume > 0;
},
clickFun: row => {
// 鍗曠嫭涓嬪彂鎿嶄綔
@@ -597,6 +653,7 @@
productMaterialSkuId: [
{ required: true, message: "璇烽�夋嫨浜у搧瑙勬牸", trigger: "change" },
],
+ volume: [{ required: true, message: "璇疯緭鍏ユ柟鏁�", trigger: "blur" }],
productMaterialId: [
{ required: true, message: "璇烽�夋嫨浜у搧", trigger: "change" },
],
@@ -626,7 +683,7 @@
};
const fetchProductOptions = () => {
- return productTreeList().then(res => {
+ return productTreeList({ type: 2 }).then(res => {
productOptions.value = convertIdToValue(res.data);
return res;
});
@@ -658,19 +715,31 @@
const fetchSpecificationOptions = materialId => {
specificationOptions.value = [];
if (materialId) {
- modelListPage({ materialId: materialId }).then(res => {
- specificationOptions.value = res.data;
- });
+ modelListPage({ materialId: materialId, size: -1, current: -1 }).then(
+ res => {
+ specificationOptions.value = res.data.records;
+ }
+ );
}
};
const handleChangeSpecification = value => {
form.materialCode = undefined;
const selectedModel = specificationOptions.value.find(
- item => item.id === value
+ item => item.skuId === value
);
if (selectedModel) {
form.materialCode = selectedModel.materialCode;
+ // 瑙f瀽瑙勬牸瀛楃涓茶幏鍙栭暱瀹介珮
+ const specification = selectedModel.specification;
+ if (specification) {
+ const dimensions = specification.match(/^(\d+)\*(\d+)\*(\d+)$/);
+ if (dimensions && dimensions.length === 4) {
+ form.length = parseInt(dimensions[1]);
+ form.width = parseInt(dimensions[2]);
+ form.height = parseInt(dimensions[3]);
+ }
+ }
}
};
@@ -1092,8 +1161,16 @@
const handleSubmit = () => {
formRef.value.validate(valid => {
if (valid) {
+ if (form.volume === 0) {
+ proxy.$modal.msgError("鏂规暟涓嶈兘涓�0");
+ return;
+ }
+ if (form.v === "add") {
+ payload.id = null;
+ }
const payload = { ...form };
if (operationType.value === "add") {
+ payload.id = null;
productionPlanAdd(payload)
.then(() => {
proxy.$modal.msgSuccess(
@@ -1179,7 +1256,6 @@
color: #ffffff;
border-bottom: none;
padding: 16px 0;
- font-size: 14px;
letter-spacing: 0.5px;
}
}
@@ -1202,7 +1278,6 @@
border-bottom: 1px solid #f0f0f0;
padding: 14px 0;
color: #303133;
- font-size: 13px;
}
}
@@ -1221,7 +1296,6 @@
font-weight: 600;
color: #409eff;
font-family: "Courier New", monospace;
- font-size: 14px;
text-shadow: 0 1px 2px rgba(64, 158, 255, 0.2);
}
@@ -1246,7 +1320,6 @@
// 鏃ユ湡瀛楁鏍峰紡
.date-cell {
color: #909399;
- font-size: 12px;
font-style: italic;
}
--
Gitblit v1.9.3