|
@@ -499,6 +499,7 @@
|
|
<vxe-grid
|
|
<vxe-grid
|
|
border
|
|
border
|
|
resizable
|
|
resizable
|
|
|
|
+ ref="grid"
|
|
align="center"
|
|
align="center"
|
|
:edit-config="{ trigger: 'dblclick', mode: 'row', autoClear: false }"
|
|
:edit-config="{ trigger: 'dblclick', mode: 'row', autoClear: false }"
|
|
:columns="tableColumn"
|
|
:columns="tableColumn"
|
|
@@ -532,8 +533,9 @@
|
|
</Select>
|
|
</Select>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
- <template #material_title_default="{ row }">
|
|
|
|
|
|
+ <template #part_default="{ row }">
|
|
<div
|
|
<div
|
|
|
|
+ class="my-part"
|
|
v-for="part_detail in row.part"
|
|
v-for="part_detail in row.part"
|
|
:key="part_detail.order_product_part_id"
|
|
:key="part_detail.order_product_part_id"
|
|
v-show="!part_detail.is_metal"
|
|
v-show="!part_detail.is_metal"
|
|
@@ -542,6 +544,45 @@
|
|
{{ part_detail.title }}
|
|
{{ part_detail.title }}
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
+ <template #part_edit="{ row }">
|
|
|
|
+ <div
|
|
|
|
+ v-for="part_detail in row.part"
|
|
|
|
+ :key="part_detail.order_product_part_id"
|
|
|
|
+ v-show="!part_detail.is_metal"
|
|
|
|
+ style="border-bottom:1px solid #e8eaec;padding:10px 0"
|
|
|
|
+ >
|
|
|
|
+ <Select
|
|
|
|
+ filterable
|
|
|
|
+ clearable
|
|
|
|
+ transfer
|
|
|
|
+ label-in-value
|
|
|
|
+ v-model="part_detail.change_id"
|
|
|
|
+ >
|
|
|
|
+ <Option
|
|
|
|
+ v-for="ch in part_detail.change"
|
|
|
|
+ :key="ch.id"
|
|
|
|
+ :label="ch.part_title"
|
|
|
|
+ :value="ch.id"
|
|
|
|
+ />
|
|
|
|
+ </Select>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <template #material_title_default="{ row }">
|
|
|
|
+ <div
|
|
|
|
+ v-for="part_detail in row.part"
|
|
|
|
+ :key="part_detail.order_product_part_id"
|
|
|
|
+ v-show="!part_detail.is_metal"
|
|
|
|
+ >
|
|
|
|
+ <div
|
|
|
|
+ v-for="(sub_part_detail, idx) in part_detail.sub_part"
|
|
|
|
+ :key="idx"
|
|
|
|
+ v-show="sub_part_detail.title.indexOf('线条') > 0"
|
|
|
|
+ style="border-bottom:1px solid #e8eaec;padding:10px 0"
|
|
|
|
+ >
|
|
|
|
+ {{ sub_part_detail.title }}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
<template #material_title_edit="{ row }">
|
|
<template #material_title_edit="{ row }">
|
|
<div
|
|
<div
|
|
v-for="part_detail in row.part"
|
|
v-for="part_detail in row.part"
|
|
@@ -552,6 +593,64 @@
|
|
{{ part_detail.title }}
|
|
{{ part_detail.title }}
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
+ <template #material_measure_default="{ row }">
|
|
|
|
+ <div
|
|
|
|
+ v-for="part_detail in row.part"
|
|
|
|
+ :key="part_detail.order_product_part_id"
|
|
|
|
+ v-show="!part_detail.is_metal"
|
|
|
|
+ >
|
|
|
|
+ <div
|
|
|
|
+ v-for="(sub_part_detail, idx) in part_detail.sub_part"
|
|
|
|
+ :key="idx"
|
|
|
|
+ v-show="sub_part_detail.title.indexOf('线条') > 0"
|
|
|
|
+ style="border-bottom:1px solid #e8eaec;padding:10px 0"
|
|
|
|
+ >
|
|
|
|
+ {{ sub_part_detail.title }}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <template #material_measure_edit="{ row }">
|
|
|
|
+ <div
|
|
|
|
+ v-for="part_detail in row.part"
|
|
|
|
+ :key="part_detail.order_product_part_id"
|
|
|
|
+ v-show="!part_detail.is_metal"
|
|
|
|
+ style="border-bottom:1px solid #e8eaec;padding:10px 0"
|
|
|
|
+ >
|
|
|
|
+ {{ part_detail.title }}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ <template #material_num_default="{ row }">
|
|
|
|
+ <div
|
|
|
|
+ v-for="part_detail in row.part"
|
|
|
|
+ :key="part_detail.order_product_part_id"
|
|
|
|
+ v-show="!part_detail.is_metal"
|
|
|
|
+ >
|
|
|
|
+ <div
|
|
|
|
+ v-for="(sub_part_detail, idx) in part_detail.sub_part"
|
|
|
|
+ :key="idx"
|
|
|
|
+ v-show="sub_part_detail.title.indexOf('线条') > 0"
|
|
|
|
+ style="border-bottom:1px solid #e8eaec;padding:10px 0"
|
|
|
|
+ >
|
|
|
|
+ {{ sub_part_detail.title }}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <template #material_num_edit="{ row }">
|
|
|
|
+ <div
|
|
|
|
+ v-for="part_detail in row.part"
|
|
|
|
+ :key="part_detail.order_product_part_id"
|
|
|
|
+ v-show="!part_detail.is_metal"
|
|
|
|
+ style="border-bottom:1px solid #e8eaec;padding:10px 0"
|
|
|
|
+ >
|
|
|
|
+ {{ part_detail.title }}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <template #remark_default="{ row }">
|
|
|
|
+ {{ row.remark }}
|
|
|
|
+ </template>
|
|
|
|
+ <template #remark_edit="{ row }"> </template>
|
|
|
|
+
|
|
<template #set_default="{ row,rowIndex }">
|
|
<template #set_default="{ row,rowIndex }">
|
|
<a @click="handleSet(row, rowIndex, 4)" style="margin: 0 5px"
|
|
<a @click="handleSet(row, rowIndex, 4)" style="margin: 0 5px"
|
|
>复制</a
|
|
>复制</a
|
|
@@ -568,7 +667,6 @@
|
|
resizable
|
|
resizable
|
|
border
|
|
border
|
|
ref="xTree"
|
|
ref="xTree"
|
|
- :edit-config="{ trigger: 'dblclick', mode: 'row' }"
|
|
|
|
:data="tableData"
|
|
:data="tableData"
|
|
>
|
|
>
|
|
<vxe-table-column
|
|
<vxe-table-column
|
|
@@ -576,51 +674,6 @@
|
|
title="位置"
|
|
title="位置"
|
|
align="center"
|
|
align="center"
|
|
min-width="80"
|
|
min-width="80"
|
|
- :edit-render="{
|
|
|
|
- name: '$input',
|
|
|
|
- props: {
|
|
|
|
- clearable: true,
|
|
|
|
- },
|
|
|
|
- events: { input: handleTablePositionChange },
|
|
|
|
- }"
|
|
|
|
- ></vxe-table-column>
|
|
|
|
- <vxe-table-column
|
|
|
|
- field="title"
|
|
|
|
- title="产品名称"
|
|
|
|
- align="center"
|
|
|
|
- min-width="120"
|
|
|
|
- :edit-render="{
|
|
|
|
- name: '$select',
|
|
|
|
- options: productList,
|
|
|
|
- props: {
|
|
|
|
- clearable: true,
|
|
|
|
- optionProps: {
|
|
|
|
- label: 'title',
|
|
|
|
- value: 'id',
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- events: { change: handleTableProductSelect },
|
|
|
|
- }"
|
|
|
|
- ></vxe-table-column>
|
|
|
|
- <vxe-table-column
|
|
|
|
- v-for="(bpp, idx) in bpp_list"
|
|
|
|
- :key="bpp.name"
|
|
|
|
- field="procedure_properties"
|
|
|
|
- :title="bpp.name"
|
|
|
|
- align="center"
|
|
|
|
- min-width="120"
|
|
|
|
- :edit-render="{
|
|
|
|
- name: '$select',
|
|
|
|
- options: bpp.cld,
|
|
|
|
- props: {
|
|
|
|
- clearable: true,
|
|
|
|
- optionProps: {
|
|
|
|
- label: 'title',
|
|
|
|
- value: 'id',
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- events: { change: handleTableProductSelect },
|
|
|
|
- }"
|
|
|
|
></vxe-table-column>
|
|
></vxe-table-column>
|
|
<vxe-table-column
|
|
<vxe-table-column
|
|
field="unit"
|
|
field="unit"
|
|
@@ -2068,6 +2121,43 @@ export default {
|
|
...tempHeader,
|
|
...tempHeader,
|
|
...tempMeasure,
|
|
...tempMeasure,
|
|
{
|
|
{
|
|
|
|
+ title: "部件",
|
|
|
|
+ align: "center",
|
|
|
|
+ minWidth: "200",
|
|
|
|
+ editRender: { autofocus: ".my-part" },
|
|
|
|
+ slots: {
|
|
|
|
+ default: "part_default",
|
|
|
|
+ edit: "part_edit",
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: "原材料名称",
|
|
|
|
+ align: "center",
|
|
|
|
+ minWidth: "200",
|
|
|
|
+ slots: {
|
|
|
|
+ default: "material_title_default",
|
|
|
|
+ edit: "material_title_edit",
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: "原材料规格",
|
|
|
|
+ align: "center",
|
|
|
|
+ minWidth: "200",
|
|
|
|
+ slots: {
|
|
|
|
+ default: "material_measure_default",
|
|
|
|
+ edit: "material_measure_edit",
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: "原材料数量",
|
|
|
|
+ align: "center",
|
|
|
|
+ minWidth: "200",
|
|
|
|
+ slots: {
|
|
|
|
+ default: "material_num_default",
|
|
|
|
+ edit: "material_num_edit",
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
field: "total_num",
|
|
field: "total_num",
|
|
title: "数量",
|
|
title: "数量",
|
|
align: "center",
|
|
align: "center",
|
|
@@ -2077,7 +2167,6 @@ export default {
|
|
props: {
|
|
props: {
|
|
clearable: true,
|
|
clearable: true,
|
|
},
|
|
},
|
|
- // events: { input: this.handleTablePositionChange },
|
|
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
{
|
|
@@ -2087,16 +2176,6 @@ export default {
|
|
minWidth: "70",
|
|
minWidth: "70",
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- field: "",
|
|
|
|
- title: "原材料名称",
|
|
|
|
- align: "center",
|
|
|
|
- minWidth: "200",
|
|
|
|
- slots: {
|
|
|
|
- default: "material_title_default",
|
|
|
|
- edit: "material_title_edit",
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
field: "num",
|
|
field: "num",
|
|
title: "核算数量",
|
|
title: "核算数量",
|
|
align: "center",
|
|
align: "center",
|
|
@@ -2138,11 +2217,10 @@ export default {
|
|
title: "备注",
|
|
title: "备注",
|
|
align: "center",
|
|
align: "center",
|
|
minWidth: "120",
|
|
minWidth: "120",
|
|
- editRender: {
|
|
|
|
- name: "$input",
|
|
|
|
- props: {
|
|
|
|
- clearable: true,
|
|
|
|
- },
|
|
|
|
|
|
+ editRender: { autofocus: ".my-remark" },
|
|
|
|
+ slots: {
|
|
|
|
+ default: "remark_default",
|
|
|
|
+ edit: "remark_edit",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
{
|
|
@@ -2359,18 +2437,6 @@ export default {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
- // 表格的一些方法
|
|
|
|
- // 表格选择产品
|
|
|
|
- handleTableProductSelect(obj, $event) {
|
|
|
|
- console.log("obj :>> ", obj);
|
|
|
|
- console.log("$event :>> ", $event);
|
|
|
|
- $event.value &&
|
|
|
|
- this.axios("/api/order_get_product_detail_new", {
|
|
|
|
- params: { product_id: $event.value, custom_id: this.info.custom_id },
|
|
|
|
- }).then((res) => {
|
|
|
|
- console.log("res :>> ", res);
|
|
|
|
- });
|
|
|
|
- },
|
|
|
|
// 表格位置选择
|
|
// 表格位置选择
|
|
handleTablePositionChange(obj, $event) {
|
|
handleTablePositionChange(obj, $event) {
|
|
console.log("obj :>> ", obj);
|
|
console.log("obj :>> ", obj);
|
|
@@ -3318,6 +3384,7 @@ export default {
|
|
},
|
|
},
|
|
handleShowEditProductModal(custom_id, route_id_at_copyrow) {},
|
|
handleShowEditProductModal(custom_id, route_id_at_copyrow) {},
|
|
handleSet(row, index, type) {
|
|
handleSet(row, index, type) {
|
|
|
|
+ console.log('row :>> ', row);
|
|
let obj;
|
|
let obj;
|
|
// 1 新增 2 编辑 3 删除 4复制 5详情
|
|
// 1 新增 2 编辑 3 删除 4复制 5详情
|
|
switch (type) {
|
|
switch (type) {
|
|
@@ -3783,7 +3850,6 @@ export default {
|
|
row.ext_price = res.data.ext_price || 0;
|
|
row.ext_price = res.data.ext_price || 0;
|
|
row.unit_price = res.data.price || 0;
|
|
row.unit_price = res.data.price || 0;
|
|
row.num = res.data.num || 1;
|
|
row.num = res.data.num || 1;
|
|
- row.num = res.data.num;
|
|
|
|
row.over_price = res.data.over_price || 0;
|
|
row.over_price = res.data.over_price || 0;
|
|
row.position = res.data.position || "";
|
|
row.position = res.data.position || "";
|
|
row.unit = res.data.unit || "";
|
|
row.unit = res.data.unit || "";
|
|
@@ -3807,6 +3873,7 @@ export default {
|
|
// 选择不是线条、或者基础档案中要默认为空的部件
|
|
// 选择不是线条、或者基础档案中要默认为空的部件
|
|
element.isBP = true;
|
|
element.isBP = true;
|
|
element.isChoosed = true;
|
|
element.isChoosed = true;
|
|
|
|
+ element.title = element.part_title;
|
|
if (element.is_null == 1) {
|
|
if (element.is_null == 1) {
|
|
element.change_id = "";
|
|
element.change_id = "";
|
|
} else {
|
|
} else {
|
|
@@ -3845,70 +3912,72 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
- //测量字段
|
|
|
|
- row.measure = res.data.measure;
|
|
|
|
- row.measure.forEach((element) => {
|
|
|
|
- element.value = "";
|
|
|
|
- element.measureCalc = element.e_title;
|
|
|
|
- });
|
|
|
|
- //工艺属性
|
|
|
|
- row.process = [];
|
|
|
|
- this.axios({
|
|
|
|
- method: "get",
|
|
|
|
- url: "/api/bpp_list",
|
|
|
|
- }).then((re) => {
|
|
|
|
- re.data.forEach((element) => {
|
|
|
|
- for (const key in res.data.process.title) {
|
|
|
|
- const ele = res.data.process.title[key];
|
|
|
|
- if (element.name == ele) {
|
|
|
|
- const compare = res.data.process.list.filter(
|
|
|
|
- (item) => item.detail[key] == this.pre_process_obj[key]
|
|
|
|
- );
|
|
|
|
- row.procedure_properties = [];
|
|
|
|
- if (compare.length > 0) {
|
|
|
|
- row.procedure_properties.push(
|
|
|
|
- this.pre_process_obj[key] * 1
|
|
|
|
- );
|
|
|
|
- row.process.push({
|
|
|
|
- key: key,
|
|
|
|
- title: ele,
|
|
|
|
- value: this.pre_process_obj[key] * 1,
|
|
|
|
- processList: element.cld,
|
|
|
|
- });
|
|
|
|
- } else {
|
|
|
|
- row.procedure_properties.push("");
|
|
|
|
- row.process.push({
|
|
|
|
- key: key,
|
|
|
|
- title: ele,
|
|
|
|
- value: "",
|
|
|
|
- processList: element.cld,
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- row.part.forEach((element) => {
|
|
|
|
- if (!element.is_metal) {
|
|
|
|
- //赋值默认工艺属性
|
|
|
|
- element.process = JSON.parse(JSON.stringify(re.data));
|
|
|
|
- element.process.forEach((elem, index) => {
|
|
|
|
- for (const key in res.data.process.title) {
|
|
|
|
- const ele = res.data.process.title[key];
|
|
|
|
- if (elem.name == ele) {
|
|
|
|
- elem.procedure_property = this.pre_process_obj[key] * 1;
|
|
|
|
- elem.process_id = key;
|
|
|
|
- if (!element.procedure_properties) {
|
|
|
|
- element.procedure_properties = [];
|
|
|
|
- }
|
|
|
|
- element.procedure_properties[index] =
|
|
|
|
- this.pre_process_obj[key] * 1;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- this.$forceUpdate();
|
|
|
|
- });
|
|
|
|
|
|
+ // //测量字段
|
|
|
|
+ // row.measure = res.data.measure;
|
|
|
|
+ // row.measure.forEach((element) => {
|
|
|
|
+ // element.value = "";
|
|
|
|
+ // element.measureCalc = element.e_title;
|
|
|
|
+ // });
|
|
|
|
+ // //工艺属性
|
|
|
|
+ // row.process = [];
|
|
|
|
+ // this.axios({
|
|
|
|
+ // method: "get",
|
|
|
|
+ // url: "/api/bpp_list",
|
|
|
|
+ // }).then((re) => {
|
|
|
|
+ // re.data.forEach((element) => {
|
|
|
|
+ // for (const key in res.data.process.title) {
|
|
|
|
+ // const ele = res.data.process.title[key];
|
|
|
|
+ // if (element.name == ele) {
|
|
|
|
+ // const compare = res.data.process.list.filter(
|
|
|
|
+ // (item) => item.detail[key] == this.pre_process_obj[key]
|
|
|
|
+ // );
|
|
|
|
+ // row.procedure_properties = [];
|
|
|
|
+ // if (compare.length > 0) {
|
|
|
|
+ // row.procedure_properties.push(
|
|
|
|
+ // this.pre_process_obj[key] * 1
|
|
|
|
+ // );
|
|
|
|
+ // row.process.push({
|
|
|
|
+ // key: key,
|
|
|
|
+ // title: ele,
|
|
|
|
+ // value: this.pre_process_obj[key] * 1,
|
|
|
|
+ // processList: element.cld,
|
|
|
|
+ // });
|
|
|
|
+ // } else {
|
|
|
|
+ // row.procedure_properties.push("");
|
|
|
|
+ // row.process.push({
|
|
|
|
+ // key: key,
|
|
|
|
+ // title: ele,
|
|
|
|
+ // value: "",
|
|
|
|
+ // processList: element.cld,
|
|
|
|
+ // });
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // });
|
|
|
|
+ // row.part.forEach((element) => {
|
|
|
|
+ // if (!element.is_metal) {
|
|
|
|
+ // //赋值默认工艺属性
|
|
|
|
+ // element.process = JSON.parse(JSON.stringify(re.data));
|
|
|
|
+ // element.process.forEach((elem, index) => {
|
|
|
|
+ // for (const key in res.data.process.title) {
|
|
|
|
+ // const ele = res.data.process.title[key];
|
|
|
|
+ // if (elem.name == ele) {
|
|
|
|
+ // elem.procedure_property = this.pre_process_obj[key] * 1;
|
|
|
|
+ // elem.process_id = key;
|
|
|
|
+ // if (!element.procedure_properties) {
|
|
|
|
+ // element.procedure_properties = [];
|
|
|
|
+ // }
|
|
|
|
+ // element.procedure_properties[index] =
|
|
|
|
+ // this.pre_process_obj[key] * 1;
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // });
|
|
|
|
+ // }
|
|
|
|
+ // });
|
|
|
|
+ console.log("row :>> ", row);
|
|
|
|
+ // this.tableData.splice(rowIndex,1,row)
|
|
|
|
+ // this.$forceUpdate();
|
|
|
|
+ // });
|
|
});
|
|
});
|
|
}
|
|
}
|
|
// row.part=[]
|
|
// row.part=[]
|