|
@@ -51,12 +51,12 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
- <CommonTable
|
|
|
+ <!-- <CommonTable
|
|
|
ref="ctableRef"
|
|
|
tableTitle="物料选择"
|
|
|
tableType="BOM"
|
|
|
@selected-sure="onSelectedFinish"
|
|
|
- />
|
|
|
+ />-->
|
|
|
<template #footer>
|
|
|
<div class="detail-footer">
|
|
|
<el-button type="primary" @click="onSelected"> 保存 </el-button>
|
|
@@ -86,6 +86,7 @@
|
|
|
<CommonTable
|
|
|
ref="ctableRef"
|
|
|
tableTitle="BOM添加"
|
|
|
+ :multipleRow="multipleRow"
|
|
|
tableType="MARTERIAL"
|
|
|
@selected-sure="onSelectedFinish"
|
|
|
/>
|
|
@@ -123,6 +124,7 @@ const test = () => {
|
|
|
isShowTable.value = true;
|
|
|
tableType.value = tableType.value == 1 ? 2 : 1;
|
|
|
};
|
|
|
+const multipleRow = ref(true);
|
|
|
const openMaterial = () => {
|
|
|
if (
|
|
|
version.value.value === 0 ||
|
|
@@ -136,6 +138,7 @@ const openMaterial = () => {
|
|
|
return;
|
|
|
}
|
|
|
if (ctableRef.value) {
|
|
|
+ startCreat();
|
|
|
ctableRef.value.startSelect();
|
|
|
}
|
|
|
};
|
|
@@ -153,17 +156,24 @@ const dataBomLists = () => {
|
|
|
dataNoPageList();
|
|
|
};
|
|
|
|
|
|
-const ctableRef = ref(null);
|
|
|
+const ctableRef = ref({});
|
|
|
const dialog = reactive({
|
|
|
title: "BOM版本",
|
|
|
visible: false,
|
|
|
});
|
|
|
+//defineExpose({ startCreat });
|
|
|
const material = ref(null);
|
|
|
const binding = (row) => {
|
|
|
if (ctableRef.value) {
|
|
|
ctableRef.value.startSelect();
|
|
|
}
|
|
|
};
|
|
|
+const startCreat = () =>{
|
|
|
+ ctableRef.value?.mergeOption({
|
|
|
+ selection: true,
|
|
|
+ reserveSelection : true,
|
|
|
+ });
|
|
|
+}
|
|
|
const onSelected = () => {
|
|
|
for (var i = 0; i < data.value.length; i++) {
|
|
|
if (data.value[i].bomMaterialNumber <= 0) {
|
|
@@ -256,7 +266,7 @@ const importExcelData = () => {
|
|
|
|
|
|
// 设置表格列或者其他自定义的option
|
|
|
option.value = Object.assign(option.value, {
|
|
|
- selection: true,
|
|
|
+ selection: false,
|
|
|
addBtn: false,
|
|
|
viewBtn: false,
|
|
|
editBtn: false,
|
|
@@ -312,40 +322,61 @@ option.value = Object.assign(option.value, {
|
|
|
const routeBack = () => {
|
|
|
router.back();
|
|
|
};
|
|
|
-const onSelectedFinish = (selectedValue) => {
|
|
|
- if (selectedValue.materialCode == dataDetail.value.materialCode) {
|
|
|
+const onSelectedFinish = (selectedValueList) => {
|
|
|
+ if (Object.keys(selectedValueList).length === 0 || selectedValueList == undefined || selectedValueList == null || selectedValueList.length <= 0) {
|
|
|
ElMessage({
|
|
|
- message: selectedValue.materialCode + "自己不能添加自己为BOM",
|
|
|
+ message: "没有选择任何物料",
|
|
|
type: "error",
|
|
|
});
|
|
|
- return;
|
|
|
+ return false;
|
|
|
}
|
|
|
- for (var i = 0; i < data.value.length; i++) {
|
|
|
- if (data.value[i].bomMaterialCode === selectedValue.materialCode) {
|
|
|
- ElMessage({
|
|
|
- message: data.value[i].bomMaterialName + "已经添加过了",
|
|
|
- type: "error",
|
|
|
- });
|
|
|
- return;
|
|
|
+ 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) {
|
|
|
+ ElMessage({
|
|
|
+ message: "没有选择BOM版本",
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ flag.value=false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
- }
|
|
|
- if (version.value.value === 0 || version.value.value === null) {
|
|
|
- ElMessage({
|
|
|
- message: "没有选择BOM版本",
|
|
|
- type: "error",
|
|
|
- });
|
|
|
+ );
|
|
|
+ if(!flag.value){
|
|
|
return;
|
|
|
}
|
|
|
- const bom = ref({
|
|
|
- materialCode: route.params.materialCode,
|
|
|
- bomMaterialCode: selectedValue.materialCode,
|
|
|
- bomMaterialName: selectedValue.materialName,
|
|
|
- bomVersion: version.value.value,
|
|
|
- bomMaterialAttribute: selectedValue.attributeDictValue,
|
|
|
- bomMaterialNumber: 0,
|
|
|
- $cellEdit: true,
|
|
|
+ selectedValueList?.forEach((selectedValue, index) => {
|
|
|
+ const bom = ref({
|
|
|
+ materialCode: route.params.materialCode,
|
|
|
+ bomMaterialCode: selectedValue.materialCode,
|
|
|
+ bomMaterialName: selectedValue.materialName,
|
|
|
+ bomVersion: version.value.value,
|
|
|
+ bomMaterialAttribute: selectedValue.attributeDictValue,
|
|
|
+ bomMaterialNumber: 0,
|
|
|
+ $cellEdit: true,
|
|
|
+ });
|
|
|
+ data.value.push(bom.value);
|
|
|
});
|
|
|
- data.value.push(bom.value);
|
|
|
+
|
|
|
};
|
|
|
const queryMaterialDetail = () => {
|
|
|
getMaterialDetails(route.params.materialCode).then(({ data }) => {
|