|
@@ -3,6 +3,12 @@
|
|
<Toptitle :title="type == 1 ? '拆单编辑' : '拆单详情'">
|
|
<Toptitle :title="type == 1 ? '拆单编辑' : '拆单详情'">
|
|
<slot name="titleButton">
|
|
<slot name="titleButton">
|
|
<Button
|
|
<Button
|
|
|
|
+ @click="handleFinish()"
|
|
|
|
+ type="primary"
|
|
|
|
+ style="margin-right: 10px"
|
|
|
|
+ >完成</Button
|
|
|
|
+ >
|
|
|
|
+ <Button
|
|
@click="goback()"
|
|
@click="goback()"
|
|
type="primary"
|
|
type="primary"
|
|
ghost
|
|
ghost
|
|
@@ -286,18 +292,22 @@
|
|
<!-- v-show="_item.display" -->
|
|
<!-- v-show="_item.display" -->
|
|
<!-- v-show="_item.list && _item.list.length > 0" -->
|
|
<!-- v-show="_item.list && _item.list.length > 0" -->
|
|
<div class="tit_box">
|
|
<div class="tit_box">
|
|
- <span :class="['box-us']" @click="setBoxChange(item, _item)">{{
|
|
|
|
- _item.type_title
|
|
|
|
- }}</span></div>
|
|
|
|
|
|
+ <span :class="['box-us']" @click="setBoxChange(item, _item)">{{
|
|
|
|
+ _item.type_title
|
|
|
|
+ }}</span>
|
|
|
|
+ </div>
|
|
<div class="radio-box">
|
|
<div class="radio-box">
|
|
- <div
|
|
|
|
- v-for="__item in _item.list"
|
|
|
|
- @click="setRadioChange(_item, __item, index, partsItem, item.cld)"
|
|
|
|
- :class="['radio-us', __item.show ? 'radio-us-foc' : '']"
|
|
|
|
- :key="__item.id"
|
|
|
|
- >
|
|
|
|
- {{ __item.title }}
|
|
|
|
- </div></div>
|
|
|
|
|
|
+ <div
|
|
|
|
+ v-for="__item in _item.list"
|
|
|
|
+ @click="
|
|
|
|
+ setRadioChange(_item, __item, index, partsItem, item.cld)
|
|
|
|
+ "
|
|
|
|
+ :class="['radio-us', __item.show ? 'radio-us-foc' : '']"
|
|
|
|
+ :key="__item.id"
|
|
|
|
+ >
|
|
|
|
+ {{ __item.title }}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
<!-- <div class="radio-g">
|
|
<!-- <div class="radio-g">
|
|
<div @click="setRadioChange(item, _item, index, partsItem)"
|
|
<div @click="setRadioChange(item, _item, index, partsItem)"
|
|
@@ -1679,43 +1689,38 @@ export default {
|
|
); //工艺属性列表
|
|
); //工艺属性列表
|
|
this.axios("/api/parts_detail", {
|
|
this.axios("/api/parts_detail", {
|
|
params: { id: element.part_id },
|
|
params: { id: element.part_id },
|
|
- })
|
|
|
|
- .then((re) => {
|
|
|
|
- // element.company = re.data.company
|
|
|
|
- element.isAddPart = true;
|
|
|
|
- element.isAddProcessRoute = true;
|
|
|
|
- element.parts_type = re.data.p_id;
|
|
|
|
- // element.part_id = re.data.title
|
|
|
|
- this.axios({
|
|
|
|
- method: "get",
|
|
|
|
- url: "/api/parts_index",
|
|
|
|
- params: {
|
|
|
|
- bp_id: element.parts_type,
|
|
|
|
- },
|
|
|
|
- })
|
|
|
|
- .then((r) => {
|
|
|
|
- element.partsNameList = r.data.data;
|
|
|
|
- if (isEditItem) {
|
|
|
|
- let item = isEditItem;
|
|
|
|
- // let item = JSON.parse(JSON.stringify(isEditItem));
|
|
|
|
- item.parts.forEach((element) => {
|
|
|
|
- console.log("element :>> ", element);
|
|
|
|
- element.processCombination = element.route_id;
|
|
|
|
- let obj = { value: element.route_id, label: "" };
|
|
|
|
- this.handleProcessRouteSelect(element, obj);
|
|
|
|
- });
|
|
|
|
- isEditItem = item;
|
|
|
|
- }
|
|
|
|
- this.$forceUpdate();
|
|
|
|
- })
|
|
|
|
- .catch((err) => {});
|
|
|
|
- element.company = re.data.company;
|
|
|
|
- // element.partsNameList = [{ id: re.data.id, title: re.data.title }]
|
|
|
|
- element.pay_state = re.data.label;
|
|
|
|
- // element.partsWoodTableData = re.data.detail;
|
|
|
|
- this.showSimilarProductModal = false;
|
|
|
|
- })
|
|
|
|
- .catch((err) => {});
|
|
|
|
|
|
+ }).then((re) => {
|
|
|
|
+ // element.company = re.data.company
|
|
|
|
+ element.isAddPart = true;
|
|
|
|
+ element.isAddProcessRoute = true;
|
|
|
|
+ element.parts_type = re.data.p_id;
|
|
|
|
+ // element.part_id = re.data.title
|
|
|
|
+ this.axios({
|
|
|
|
+ method: "get",
|
|
|
|
+ url: "/api/parts_index",
|
|
|
|
+ params: {
|
|
|
|
+ bp_id: element.parts_type,
|
|
|
|
+ },
|
|
|
|
+ }).then((r) => {
|
|
|
|
+ element.partsNameList = r.data.data;
|
|
|
|
+ if (isEditItem) {
|
|
|
|
+ let item = isEditItem;
|
|
|
|
+ // let item = JSON.parse(JSON.stringify(isEditItem));
|
|
|
|
+ item.parts.forEach((element) => {
|
|
|
|
+ element.processCombination = element.route_id;
|
|
|
|
+ let obj = { value: element.route_id, label: "" };
|
|
|
|
+ this.handleProcessRouteSelect(element, obj);
|
|
|
|
+ });
|
|
|
|
+ isEditItem = item;
|
|
|
|
+ }
|
|
|
|
+ this.$forceUpdate();
|
|
|
|
+ });
|
|
|
|
+ element.company = re.data.company;
|
|
|
|
+ // element.partsNameList = [{ id: re.data.id, title: re.data.title }]
|
|
|
|
+ element.pay_state = re.data.label;
|
|
|
|
+ // element.partsWoodTableData = re.data.detail;
|
|
|
|
+ this.showSimilarProductModal = false;
|
|
|
|
+ });
|
|
let obj = { value: element.part_id };
|
|
let obj = { value: element.part_id };
|
|
this.handlePartsNameSelect(element, obj);
|
|
this.handlePartsNameSelect(element, obj);
|
|
});
|
|
});
|
|
@@ -1749,7 +1754,6 @@ export default {
|
|
id: val,
|
|
id: val,
|
|
title: val,
|
|
title: val,
|
|
});
|
|
});
|
|
- item.processCombination = "";
|
|
|
|
this.$forceUpdate();
|
|
this.$forceUpdate();
|
|
},
|
|
},
|
|
//新增工艺组合名称
|
|
//新增工艺组合名称
|
|
@@ -1780,13 +1784,11 @@ export default {
|
|
id: val,
|
|
id: val,
|
|
title: val,
|
|
title: val,
|
|
});
|
|
});
|
|
- console.log("this.tempProcessAttrList :>> ", this.tempProcessAttrList);
|
|
|
|
this.$forceUpdate();
|
|
this.$forceUpdate();
|
|
},
|
|
},
|
|
// 部件名称
|
|
// 部件名称
|
|
handlePartsNameSelect(item, val) {
|
|
handlePartsNameSelect(item, val) {
|
|
if (val) {
|
|
if (val) {
|
|
- item.processCombination = "";
|
|
|
|
if (val.label != val.value) {
|
|
if (val.label != val.value) {
|
|
item.isAddPart = false;
|
|
item.isAddPart = false;
|
|
this.axios({
|
|
this.axios({
|
|
@@ -1824,10 +1826,10 @@ export default {
|
|
});
|
|
});
|
|
} else {
|
|
} else {
|
|
item.isAddPart = true;
|
|
item.isAddPart = true;
|
|
- item.ProcessAttrList = this.tempProcessAttrList;
|
|
|
|
- item.partsWoodTableData = [];
|
|
|
|
- item.partsMetalseData = [];
|
|
|
|
- item.process_name = "";
|
|
|
|
|
|
+ // item.ProcessAttrList = this.tempProcessAttrList;
|
|
|
|
+ // item.partsWoodTableData = [];
|
|
|
|
+ // item.partsMetalseData = [];
|
|
|
|
+ // item.process_name = "";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -2198,6 +2200,20 @@ export default {
|
|
this.formData.parts.forEach((element) => {
|
|
this.formData.parts.forEach((element) => {
|
|
sum += element.proportion * 1;
|
|
sum += element.proportion * 1;
|
|
});
|
|
});
|
|
|
|
+ const BJ_name = this.formData.parts.map((item) => {
|
|
|
|
+ return item.part_id;
|
|
|
|
+ });
|
|
|
|
+ const atfer_BJ_name = Array.from(new Set(BJ_name));
|
|
|
|
+ if (atfer_BJ_name.length != BJ_name.length) {
|
|
|
|
+ return this.$Message.error("部件名称存在重复");
|
|
|
|
+ }
|
|
|
|
+ const GYLX_name = this.formData.parts.map((item) => {
|
|
|
|
+ return item.processCombination;
|
|
|
|
+ });
|
|
|
|
+ const atfer_GYLX_name = Array.from(new Set(GYLX_name));
|
|
|
|
+ if (GYLX_name.length != atfer_GYLX_name.length) {
|
|
|
|
+ return this.$Message.error("工艺路线存在重复");
|
|
|
|
+ }
|
|
if (sum != 100) {
|
|
if (sum != 100) {
|
|
this.$Message.error("产值比之和须为100");
|
|
this.$Message.error("产值比之和须为100");
|
|
} else {
|
|
} else {
|
|
@@ -2343,6 +2359,28 @@ export default {
|
|
goback() {
|
|
goback() {
|
|
this.$router.go(-1);
|
|
this.$router.go(-1);
|
|
},
|
|
},
|
|
|
|
+ handleFinish() {
|
|
|
|
+ this.$Modal.confirm({
|
|
|
|
+ title: "确认完成?",
|
|
|
|
+ // content: "此操作确认后不可恢复,请确认!",
|
|
|
|
+ onOk: () => {
|
|
|
|
+ this.axios({
|
|
|
|
+ method: "post",
|
|
|
|
+ url: "/api/order_area_product_status",
|
|
|
|
+ data: {
|
|
|
|
+ orders_area_product_detail_id: this.$route.query
|
|
|
|
+ .orders_area_product_detail_id,
|
|
|
|
+ },
|
|
|
|
+ }).then((res) => {
|
|
|
|
+ if (res.doce == 200) {
|
|
|
|
+ this.$Message.success(res.msg);
|
|
|
|
+ this.initData(this.order_no, this.orders_area_product_detail_id);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ onCancel: () => {},
|
|
|
|
+ });
|
|
|
|
+ },
|
|
successKey(str) {
|
|
successKey(str) {
|
|
if (this.keyUseType == 1) {
|
|
if (this.keyUseType == 1) {
|
|
this.formData.parts[this.attrParentindex].partsWoodTableData[
|
|
this.formData.parts[this.attrParentindex].partsWoodTableData[
|
|
@@ -2560,45 +2598,47 @@ export default {
|
|
display: flex;
|
|
display: flex;
|
|
justify-content: flex-start;
|
|
justify-content: flex-start;
|
|
align-items: center;
|
|
align-items: center;
|
|
- .radio-box{
|
|
|
|
|
|
+ .radio-box {
|
|
display: flex;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
flex-wrap: wrap;
|
|
justify-content: flex-start;
|
|
justify-content: flex-start;
|
|
- border-left: 1px solid #dedede;
|
|
|
|
- .radio-us {
|
|
|
|
- background: #f4f5f7;
|
|
|
|
- padding: 5px 20px;
|
|
|
|
- margin: 5px;
|
|
|
|
- margin-right: 18px;
|
|
|
|
- color: #999999;
|
|
|
|
- border-radius: 15px;
|
|
|
|
- border: 1px solid #dedede;
|
|
|
|
- cursor: pointer;
|
|
|
|
|
|
+ border-left: 1px solid #dedede;
|
|
|
|
+ .radio-us {
|
|
|
|
+ background: #f4f5f7;
|
|
|
|
+ padding: 5px 20px;
|
|
|
|
+ margin: 5px;
|
|
|
|
+ margin-right: 18px;
|
|
|
|
+ color: #999999;
|
|
|
|
+ border-radius: 15px;
|
|
|
|
+ border: 1px solid #dedede;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ }
|
|
|
|
+ .radio-us-foc {
|
|
|
|
+ color: #3764ff;
|
|
|
|
+ background: #fff;
|
|
|
|
+ border: 1px solid #3764ff;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- .radio-us-foc {
|
|
|
|
- color: #3764ff;
|
|
|
|
- background: #fff;
|
|
|
|
- border: 1px solid #3764ff;
|
|
|
|
- }}
|
|
|
|
- .tit_box{
|
|
|
|
- .box-us {
|
|
|
|
- background: #f4f5f7;
|
|
|
|
- padding: 5px 20px;
|
|
|
|
- margin: 5px;
|
|
|
|
- margin-right: 18px;
|
|
|
|
- color: #999999;
|
|
|
|
- border-radius: 5px;
|
|
|
|
- border: 1px solid #dedede;
|
|
|
|
- cursor: pointer;
|
|
|
|
- width: 100px;
|
|
|
|
- display: inline-block;
|
|
|
|
- text-align: center;
|
|
|
|
|
|
+ .tit_box {
|
|
|
|
+ .box-us {
|
|
|
|
+ background: #f4f5f7;
|
|
|
|
+ padding: 5px 20px;
|
|
|
|
+ margin: 5px;
|
|
|
|
+ margin-right: 18px;
|
|
|
|
+ color: #999999;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ border: 1px solid #dedede;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ width: 100px;
|
|
|
|
+ display: inline-block;
|
|
|
|
+ text-align: center;
|
|
|
|
+ }
|
|
|
|
+ .box-us-foc {
|
|
|
|
+ color: #3764ff;
|
|
|
|
+ background: #fff;
|
|
|
|
+ border: 1px solid #3764ff;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- .box-us-foc {
|
|
|
|
- color: #3764ff;
|
|
|
|
- background: #fff;
|
|
|
|
- border: 1px solid #3764ff;
|
|
|
|
- }}
|
|
|
|
.radio-us-none {
|
|
.radio-us-none {
|
|
display: none;
|
|
display: none;
|
|
}
|
|
}
|