From 044596092e1ac5dd03cdbfe6af3e87de9c2da0ee Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期五, 13 三月 2026 11:00:01 +0800
Subject: [PATCH] 问题修改
---
src/views/basicData/product/index.vue | 58 +++++++++++++++++-
src/views/productionPlan/productionPlan/index.vue | 71 +++++++++++++++++------
2 files changed, 104 insertions(+), 25 deletions(-)
diff --git a/src/views/basicData/product/index.vue b/src/views/basicData/product/index.vue
index 538687f..32dad2b 100644
--- a/src/views/basicData/product/index.vue
+++ b/src/views/basicData/product/index.vue
@@ -77,7 +77,7 @@
</div>
</div>
<div class="right">
- <div style="margin-bottom: 10px"
+ <div style="margin-bottom: 10px; display: flex; align-items: center; gap: 10px"
v-if="isShowButton">
<el-button type="primary"
@click="openModelDia('add')">
@@ -85,9 +85,18 @@
</el-button>
<ImportExcel :product-id="currentId"
@uploadSuccess="getModelList" />
+ <el-input v-model="specification"
+ placeholder="瑙勬牸鍨嬪彿"
+ style="width: 150px"
+ clearable
+ @change="getModelList" />
+ <el-input v-model="materialCode"
+ placeholder="鐗╂枡缂栧彿"
+ style="width: 150px"
+ clearable
+ @change="getModelList" />
<el-button type="danger"
@click="handleDelete"
- style="margin-left: 10px"
plain>
鍒犻櫎
</el-button>
@@ -95,10 +104,11 @@
<PIMTable rowKey="id"
:column="tableColumn"
:tableData="tableData"
+ :page="page"
:isSelection="true"
- :isShowPagination="false"
@selection-change="handleSelectionChange"
- :tableLoading="tableLoading"></PIMTable>
+ :tableLoading="tableLoading"
+ @pagination="pagination"></PIMTable>
</div>
<el-dialog v-model="productDia"
title="浜у搧"
@@ -129,6 +139,7 @@
<el-select v-model="form.inventoryCategoryId"
placeholder="璇烽�夋嫨瀛樿揣绫诲埆"
clearable
+ filterable
style="width: 100%">
<el-option v-for="item in inventoryCategoryList"
:key="item.id"
@@ -145,6 +156,7 @@
<el-select v-model="form.materialTypeId"
placeholder="璇烽�夋嫨鐗╂枡绫诲瀷"
clearable
+ filterable
style="width: 100%">
<el-option v-for="item in materialTypeList"
:key="item.id"
@@ -206,6 +218,15 @@
@keydown.enter.prevent />
</el-form-item>
</el-col>
+ <el-col :span="24">
+ <el-form-item label="鐗╂枡缂栫爜锛�"
+ prop="materialCode">
+ <el-input v-model="modelForm.materialCode"
+ placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�"
+ clearable
+ @keydown.enter.prevent />
+ </el-form-item>
+ </el-col>
</el-row>
<el-row>
<el-col :span="24">
@@ -214,6 +235,7 @@
<el-select v-model="modelForm.supplyType"
placeholder="璇烽�夋嫨渚涘簲鏂瑰紡"
clearable
+ filterable
style="width: 100%">
<el-option label="鑷埗"
value="鑷埗" />
@@ -305,6 +327,8 @@
const expandedKeys = ref([]);
const inventoryCategoryList = ref([]);
const materialTypeList = ref([]);
+ const specification = ref("");
+ const materialCode = ref("");
const getloadData = () => {
loadData()
@@ -357,6 +381,10 @@
prop: "specification",
},
{
+ label: "鐗╂枡缂栫爜",
+ prop: "materialCode",
+ },
+ {
label: "鍗曚綅",
prop: "baseUnit",
},
@@ -379,6 +407,11 @@
const tableLoading = ref(false);
const isShowButton = ref(false);
const selectedRows = ref([]);
+ const page = reactive({
+ current: 1,
+ size: 10,
+ total: 0,
+ });
const data = reactive({
form: {
@@ -401,11 +434,13 @@
modelForm: {
specification: "",
supplyType: "",
+ materialCode: "",
id: null,
},
modelRules: {
specification: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
supplyType: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+ materialCode: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
},
configForm: {
configName: "",
@@ -508,12 +543,14 @@
modelForm.value.specification = "";
modelForm.value.supplyType = "";
modelForm.value.id = null;
+ modelForm.value.materialCode = null;
if (type === "edit" && data) {
// 缂栬緫妯″紡锛屽洖濉暟鎹�
modelForm.value.specification = data.specification || "";
modelForm.value.supplyType = data.supplyType || "";
modelForm.value.id = data.skuId || null;
+ modelForm.value.materialCode = data.materialCode || null;
}
};
// 鎻愪氦浜у搧鍚嶇О淇敼
@@ -667,6 +704,7 @@
const params = {
materialId: currentId.value,
specification: modelForm.value.specification,
+ materialCode: modelForm.value.materialCode,
supplyType: modelForm.value.supplyType,
};
if (modelOperationType.value === "add") {
@@ -699,6 +737,11 @@
};
// 鏌ヨ瑙勬牸鍨嬪彿
+ const pagination = obj => {
+ page.current = obj.page;
+ page.size = obj.limit;
+ getModelList();
+ };
const getModelList = () => {
if (!currentId.value) {
return;
@@ -706,9 +749,14 @@
tableLoading.value = true;
modelListPage({
materialId: currentId.value,
+ current: page.current,
+ size: page.size,
+ specification: specification.value,
+ materialCode: materialCode.value,
}).then(res => {
console.log("res", res);
- tableData.value = res.data;
+ tableData.value = res.data.records || [];
+ page.total = res.data.total;
tableLoading.value = false;
});
};
diff --git a/src/views/productionPlan/productionPlan/index.vue b/src/views/productionPlan/productionPlan/index.vue
index e70fa22..33dbeb0 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">
@@ -387,40 +394,46 @@
label: "鍧楁暟",
prop: "quantity",
className: "quantity-cell",
+ formatData: cell => (cell ? `${cell}鍧梎 : ""),
},
{
label: "鏂规暟",
prop: "volume",
width: "150px",
className: "volume-cell",
+ formatData: cell => (cell ? `${cell}鏂筦 : ""),
},
{
label: "宸蹭笅鍙戞柟鏁�",
prop: "assignedQuantity",
width: "150px",
className: "spec-cell",
+ formatData: cell => (cell ? `${cell}鏂筦 : ""),
},
{
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,12 +452,12 @@
label: "寮哄害",
prop: "strength",
},
- // {
- // label: "鏁版嵁鏉ユ簮",
- // width: "100px",
- // prop: "dataSourceType",
- // formatData: cell => (cell == 1 ? "鍚屾" : "鎵嬪姩"),
- // },
+ {
+ label: "鏁版嵁鏉ユ簮",
+ width: "100px",
+ prop: "dataSourceType",
+ formatData: cell => (cell == 1 ? "鍚屾" : "鎵嬪姩"),
+ },
{
label: "澶囨敞 1",
prop: "remarkOne",
@@ -465,6 +478,9 @@
name: "缂栬緫",
type: "primary",
link: true,
+ showHide: row => {
+ return row.status == 0;
+ },
clickFun: row => {
handleEdit(row);
},
@@ -473,6 +489,9 @@
name: "鍒犻櫎",
type: "danger",
link: true,
+ showHide: row => {
+ return row.status == 0;
+ },
clickFun: row => {
handleDelete(row);
},
@@ -480,12 +499,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 => {
// 鍗曠嫭涓嬪彂鎿嶄綔
@@ -658,19 +677,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]);
+ }
+ }
}
};
--
Gitblit v1.9.3