|
@@ -29,6 +29,7 @@
|
|
|
@search-change="searchChange"
|
|
|
@search-reset="resetChange"
|
|
|
@selection-change="selectionChange"
|
|
|
+ @tree-load="treeLoad"
|
|
|
>
|
|
|
<template #menu-left="{ size }">
|
|
|
<div style="display: flex">
|
|
@@ -67,7 +68,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
-<!-- <template #menu-right="{}">
|
|
|
+ <!-- <template #menu-right="{}">
|
|
|
<el-dropdown split-button
|
|
|
>导入
|
|
|
<template #dropdown>
|
|
@@ -105,7 +106,6 @@
|
|
|
@selected-sure="selectedFinish"
|
|
|
/>
|
|
|
</el-dialog>
|
|
|
-
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup>
|
|
@@ -115,8 +115,16 @@ import ButtonPermKeys from "../../../common/configs/buttonPermission";
|
|
|
import { useCommonStoreHook, useDictionaryStore } from "../../../store/index";
|
|
|
|
|
|
import { getMaterialDetails, getBomVersion } from "@/api/material";
|
|
|
-
|
|
|
+import { queryBomChildrenInfo } from "@/api/plan";
|
|
|
import { batchAddBom } from "@/api/bom";
|
|
|
+const treeLoad = (tree, treeNode, resolve) => {
|
|
|
+ queryBomChildrenInfo({
|
|
|
+ materialCode: tree.bomMaterialCode,
|
|
|
+ bomVersion: version.value.value ? version.value.value : 0,
|
|
|
+ }).then((data) => {
|
|
|
+ resolve(data.data);
|
|
|
+ });
|
|
|
+};
|
|
|
const { isShowTable, tableType } = toRefs(useCommonStoreHook());
|
|
|
// 数据字典相关
|
|
|
const { dicts } = useDictionaryStore();
|
|
@@ -173,12 +181,12 @@ const binding = (row) => {
|
|
|
ctableRef.value.startSelect();
|
|
|
}
|
|
|
};
|
|
|
-const startCreat = () =>{
|
|
|
+const startCreat = () => {
|
|
|
ctableRef.value?.mergeOption({
|
|
|
selection: true,
|
|
|
- reserveSelection : true,
|
|
|
+ reserveSelection: true,
|
|
|
});
|
|
|
-}
|
|
|
+};
|
|
|
const onSelected = () => {
|
|
|
for (var i = 0; i < data.value.length; i++) {
|
|
|
if (data.value[i].bomMaterialNumber <= 0) {
|
|
@@ -275,6 +283,10 @@ option.value = Object.assign(option.value, {
|
|
|
editBtn: false,
|
|
|
saveBtn: false,
|
|
|
cellBtn: true,
|
|
|
+ lazy: true,
|
|
|
+ defaultExpandedKeys: [],
|
|
|
+ tree: true,
|
|
|
+ rowKey: "materialCode",
|
|
|
column: [
|
|
|
{
|
|
|
label: "物料编码",
|
|
@@ -326,7 +338,12 @@ const routeBack = () => {
|
|
|
router.back();
|
|
|
};
|
|
|
const onSelectedFinish = (selectedValueList) => {
|
|
|
- if (Object.keys(selectedValueList).length === 0 || selectedValueList == undefined || selectedValueList == null || selectedValueList.length <= 0) {
|
|
|
+ if (
|
|
|
+ Object.keys(selectedValueList).length === 0 ||
|
|
|
+ selectedValueList == undefined ||
|
|
|
+ selectedValueList == null ||
|
|
|
+ selectedValueList.length <= 0
|
|
|
+ ) {
|
|
|
ElMessage({
|
|
|
message: "没有选择任何物料",
|
|
|
type: "error",
|
|
@@ -335,36 +352,38 @@ const onSelectedFinish = (selectedValueList) => {
|
|
|
}
|
|
|
const flag = ref(true);
|
|
|
selectedValueList?.forEach((selectedValue, index) => {
|
|
|
- if (selectedValue.materialCode == dataDetail.value.materialCode) {
|
|
|
- ElMessage({
|
|
|
- message: selectedValue.materialCode + "自己不能添加自己为BOM",
|
|
|
- type: "error",
|
|
|
- });
|
|
|
- flag.value=false;
|
|
|
- return;
|
|
|
- }
|
|
|
- for (var i = 0; i < data.value.length; i++) {
|
|
|
- if (data.value[i].bomMaterialCode === selectedValue.materialCode) {
|
|
|
- ElMessage({
|
|
|
- message: selectedValue.materialCode + "的" + data.value[i].bomMaterialName + "已经添加过了",
|
|
|
- type: "error",
|
|
|
- });
|
|
|
- flag.value=false;
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- if (version.value.value === 0 || version.value.value === null) {
|
|
|
+ if (selectedValue.materialCode == dataDetail.value.materialCode) {
|
|
|
+ ElMessage({
|
|
|
+ message: selectedValue.materialCode + "自己不能添加自己为BOM",
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ flag.value = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (var i = 0; i < data.value.length; i++) {
|
|
|
+ if (data.value[i].bomMaterialCode === selectedValue.materialCode) {
|
|
|
ElMessage({
|
|
|
- message: "没有选择BOM版本",
|
|
|
+ message:
|
|
|
+ selectedValue.materialCode +
|
|
|
+ "的" +
|
|
|
+ data.value[i].bomMaterialName +
|
|
|
+ "已经添加过了",
|
|
|
type: "error",
|
|
|
});
|
|
|
- flag.value=false;
|
|
|
+ flag.value = false;
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
- );
|
|
|
- if(!flag.value){
|
|
|
+ if (version.value.value === 0 || version.value.value === null) {
|
|
|
+ ElMessage({
|
|
|
+ message: "没有选择BOM版本",
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ flag.value = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (!flag.value) {
|
|
|
return;
|
|
|
}
|
|
|
selectedValueList?.forEach((selectedValue, index) => {
|
|
@@ -379,7 +398,6 @@ const onSelectedFinish = (selectedValueList) => {
|
|
|
});
|
|
|
data.value.push(bom.value);
|
|
|
});
|
|
|
-
|
|
|
};
|
|
|
const queryMaterialDetail = () => {
|
|
|
getMaterialDetails(route.params.materialCode).then(({ data }) => {
|
|
@@ -457,7 +475,7 @@ const selectedFinish = (selectedValue) => {
|
|
|
margin: 5px 20px 5px 0;
|
|
|
float: left;
|
|
|
}
|
|
|
-.title-text{
|
|
|
+.title-text {
|
|
|
width: 100%;
|
|
|
height: 30px;
|
|
|
line-height: 50px;
|