|
@@ -17,6 +17,7 @@
|
|
|
@size-change="dataList"
|
|
|
@current-change="dataList"
|
|
|
>
|
|
|
+
|
|
|
<template #filePath-form="scope">
|
|
|
<!-- <single-upload v-model="form.filePath" />
|
|
|
<FilesUpload v-model:src="form.filePath" v-model:src-list="form.filePath" /> -->
|
|
@@ -39,6 +40,14 @@
|
|
|
:pdf-source="getSOAPpdf(row)"
|
|
|
/>
|
|
|
</template>
|
|
|
+
|
|
|
+
|
|
|
+ <template #menu="{ row, index, type }">
|
|
|
+ <el-button @click="deleteTep(row.id)" text type="primary" v-if="props.isTree=='1'&&props.groupId"
|
|
|
+ >删除
|
|
|
+ </el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
</avue-crud>
|
|
|
<CommonTable
|
|
|
ref="commonTableRef"
|
|
@@ -48,7 +57,7 @@
|
|
|
@selected-sure="onSelectedFinish"
|
|
|
/>
|
|
|
<el-dialog v-model="dialogVisible">
|
|
|
- <VuePdfEmbed :source="previewImgUrl" annotation-layer text-layer />
|
|
|
+ <VuePdfEmbed :source="previewImgUrl" annotation-layer text-layer/>
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog v-model="versionDV" title="请先选择版本号" width="500" center>
|
|
@@ -76,9 +85,9 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup>
|
|
|
-import { ref, getCurrentInstance } from "vue";
|
|
|
-import { useCrud } from "@/hooks/userCrud";
|
|
|
-import { getTableConfig } from "./configs";
|
|
|
+import {ref, getCurrentInstance} from "vue";
|
|
|
+import {useCrud} from "@/hooks/userCrud";
|
|
|
+import {getTableConfig} from "./configs";
|
|
|
import PDFView from "@/components/PDFView/index.vue";
|
|
|
import VuePdfEmbed from "vue-pdf-embed";
|
|
|
import {
|
|
@@ -101,6 +110,15 @@ const props = defineProps({
|
|
|
default: "",
|
|
|
type: String,
|
|
|
},
|
|
|
+ groupId: {
|
|
|
+ default: "",
|
|
|
+ type: String,
|
|
|
+ },
|
|
|
+
|
|
|
+ isTree: {
|
|
|
+ default: "0",
|
|
|
+ type: String,
|
|
|
+ },
|
|
|
});
|
|
|
|
|
|
const route = useRoute();
|
|
@@ -109,15 +127,15 @@ const afterDataListToGetBomVersion = () => {
|
|
|
toGetBomVersion();
|
|
|
};
|
|
|
// 传入一个url,后面不带/
|
|
|
-const { url, form, data, option, search, page, toDeleteIds, Methords, Utils } =
|
|
|
+const {url, form, data, option, search, page, toDeleteIds, Methords, Utils} =
|
|
|
useCrud({
|
|
|
src: tableConfig[props.tableType].url,
|
|
|
afterDataList: afterDataListToGetBomVersion,
|
|
|
});
|
|
|
|
|
|
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
|
|
|
+const {dataList, createRow, updateRow, deleteRow, searchChange, resetChange} =
|
|
|
Methords; //增删改查
|
|
|
-const { selectionChange, multipleUpdate } = Methords; //选中和批量删除事件
|
|
|
+const {selectionChange, multipleUpdate} = Methords; //选中和批量删除事件
|
|
|
|
|
|
const crudRef = ref(null); //crudRef.value 获取avue-crud对象
|
|
|
const bomVersion = ref(null);
|
|
@@ -158,7 +176,7 @@ const startCreat = () => {
|
|
|
selectedVersion.value = bomVersion.value;
|
|
|
goToSelectMaterial();
|
|
|
} else {
|
|
|
- getBomVersion({ materialCode: route.fullPath.split("/")[5] }).then(
|
|
|
+ getBomVersion({materialCode: route.fullPath.split("/")[5]}).then(
|
|
|
(res) => {
|
|
|
versionList.value = res?.data ?? [];
|
|
|
versionDV.value = true;
|
|
@@ -250,12 +268,40 @@ const startCreat = () => {
|
|
|
crudRef.value && crudRef.value.rowAdd();
|
|
|
}
|
|
|
};
|
|
|
+/**分组弹窗弹出选择的主料或者辅料*/
|
|
|
+const groupCreat = () => {
|
|
|
+ if (props.tableType === "wuliaocaiji") {
|
|
|
+ commonTableType.value = "MATERIAL_GATHER";
|
|
|
+ nextTick(() => {
|
|
|
+ commonTableRef.value?.startSelect({
|
|
|
+ operationId: route.fullPath.split("/")[4], //默认直接查所有的部件辅料)
|
|
|
+ });
|
|
|
+ commonTableRef.value?.mergeOption({
|
|
|
+ selection: true,
|
|
|
+ reserveSelection: true,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ } else if (props.tableType === "fuliaoCJ") {
|
|
|
+ commonTableType.value = "OP_ACCESSORY";
|
|
|
+
|
|
|
+ nextTick(() => {
|
|
|
+ commonTableRef.value?.startSelect({
|
|
|
+ operationId: route.fullPath.split("/")[4] //查询工序下选择的物料)
|
|
|
+ });
|
|
|
+ commonTableRef.value?.mergeOption({
|
|
|
+ selection: true,
|
|
|
+ reserveSelection: true,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
|
|
|
const saveSortData = async () => {
|
|
|
multipleUpdate();
|
|
|
};
|
|
|
|
|
|
-defineExpose({ startCreat, saveSortData });
|
|
|
+defineExpose({startCreat, saveSortData, groupCreat});
|
|
|
|
|
|
const onSortChange = () => {
|
|
|
data.value.forEach((item) => {
|
|
@@ -277,7 +323,6 @@ const esopList = ref([]);
|
|
|
const checkItem = ref({});
|
|
|
const checkList = ref([]);
|
|
|
const onSelectedFinish = (itemValue) => {
|
|
|
- console.log(itemValue);
|
|
|
if (Object.keys(itemValue).length == 0) {
|
|
|
ElMessage.error("请选择数据,数据不能为空!");
|
|
|
}
|
|
@@ -288,6 +333,24 @@ const onSelectedFinish = (itemValue) => {
|
|
|
checkItem.value.checkList = [];
|
|
|
esopItem.value.esopList = [];
|
|
|
esopList.value = [];
|
|
|
+ //主料分组保存
|
|
|
+ if (commonTableType.value === "MATERIAL_GATHER") {
|
|
|
+ console.log("选择", itemGroup.value);
|
|
|
+ if (!itemGroup.value) {
|
|
|
+ ElMessage.error("未选择分组信息!");
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //主料分组保存
|
|
|
+ if (commonTableType.value === "OP_ACCESSORY") {
|
|
|
+
|
|
|
+
|
|
|
+ if (!itemGroup.value) {
|
|
|
+ ElMessage.error("未选择分组信息!");
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (props.tableType === "wuliaocaiji") {
|
|
|
itemValue?.forEach((item, index) => {
|
|
|
const recordItem = ref({});
|
|
@@ -409,8 +472,9 @@ const onSelectedFinish = (itemValue) => {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
-};
|
|
|
|
|
|
+};
|
|
|
+const itemGroup = ref(null);
|
|
|
const previewImgUrl = ref("");
|
|
|
const dialogVisible = ref(false);
|
|
|
const imgUrlClick = (itemValue) => {
|
|
@@ -426,14 +490,35 @@ onMounted(() => {
|
|
|
routeId.value = route.fullPath.split("/")[6];
|
|
|
search.value.operationId = route.fullPath.split("/")[4];
|
|
|
url.value = tableConfig[props.tableType].url;
|
|
|
- option.value = Object.assign(option.value, {
|
|
|
- searchEnter: true,
|
|
|
- addBtn: false,
|
|
|
- searchShow: false,
|
|
|
- header: false,
|
|
|
- sortable: true,
|
|
|
- column: tableConfig[props.tableType].column,
|
|
|
- });
|
|
|
+ search.value.isTree = props.isTree;
|
|
|
+ if (props.groupId) {
|
|
|
+ search.value.itemGroupId = props.groupId;
|
|
|
+
|
|
|
+ }
|
|
|
+ //物料双规格分组的话没有编辑,删除要自定义
|
|
|
+ if (props.isTree === '1') {
|
|
|
+ option.value = Object.assign(option.value, {
|
|
|
+ searchEnter: true,
|
|
|
+ addBtn: false,
|
|
|
+ editBtn: false,
|
|
|
+ delBtn: false,
|
|
|
+ searchShow: false,
|
|
|
+ header: false,
|
|
|
+ sortable: true,
|
|
|
+ column: tableConfig[props.tableType].column,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ option.value = Object.assign(option.value, {
|
|
|
+ searchEnter: true,
|
|
|
+ addBtn: false,
|
|
|
+ searchShow: false,
|
|
|
+ header: false,
|
|
|
+ sortable: true,
|
|
|
+ column: tableConfig[props.tableType].column,
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
dataList();
|
|
|
toGetBomVersion();
|
|
|
});
|
|
@@ -452,14 +537,41 @@ watch(
|
|
|
column: tableConfig[props.tableType].column,
|
|
|
});
|
|
|
dataList();
|
|
|
- toGetBomVersion();
|
|
|
+ }
|
|
|
+);
|
|
|
+
|
|
|
+watch(
|
|
|
+ () => itemGroup.value,
|
|
|
+ () => {
|
|
|
+ console.log("改变", itemGroup.value);
|
|
|
+
|
|
|
+ }
|
|
|
+);
|
|
|
+/**监听分组是否变化*/
|
|
|
+watch(
|
|
|
+ () => props.groupId,
|
|
|
+ () => {
|
|
|
+ routeId.value = route.fullPath.split("/")[6];
|
|
|
+ url.value = tableConfig[props.tableType].url;
|
|
|
+ option.value = Object.assign(option.value, {
|
|
|
+ searchEnter: true,
|
|
|
+ addBtn: false,
|
|
|
+ searchShow: false,
|
|
|
+ header: false,
|
|
|
+ sortable: true,
|
|
|
+ column: tableConfig[props.tableType].column,
|
|
|
+ });
|
|
|
+ search.value.itemGroupId = props.groupId
|
|
|
+ itemGroup.value = "props.groupId "
|
|
|
+ console.log("监听", itemGroup.value);
|
|
|
+ dataList();
|
|
|
}
|
|
|
);
|
|
|
|
|
|
const toGetBomVersion = () => {
|
|
|
getRouteMaxVersion(
|
|
|
route.fullPath.split("/")[6] ? route.fullPath.split("/")[6] : routeId.value
|
|
|
- ).then(({ data }) => {
|
|
|
+ ).then(({data}) => {
|
|
|
bomVersion.value = data;
|
|
|
});
|
|
|
};
|