|
@@ -25,7 +25,7 @@
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
|
|
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
|
|
|
<el-form-item label="产线:">
|
|
<el-form-item label="产线:">
|
|
|
- <el-input v-model="form.productline"></el-input>
|
|
|
|
|
|
|
+ <el-input v-model="form.productline" placeholder="选择生产版本带入" readonly></el-input>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
|
|
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
|
|
@@ -55,7 +55,7 @@
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-table
|
|
<el-table
|
|
|
- :data="form.salesOrderVOS"
|
|
|
|
|
|
|
+ :data="form.salesOrders"
|
|
|
border
|
|
border
|
|
|
>
|
|
>
|
|
|
<el-table-column label="序号" align="center" width="60">
|
|
<el-table-column label="序号" align="center" width="60">
|
|
@@ -77,7 +77,7 @@
|
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
|
<el-form-item
|
|
<el-form-item
|
|
|
label-width="0px"
|
|
label-width="0px"
|
|
|
- :prop="'salesOrderVOS.'+ scope.$index + '.productNum'"
|
|
|
|
|
|
|
+ :prop="'salesOrders.'+ scope.$index + '.productNum'"
|
|
|
:rules="{
|
|
:rules="{
|
|
|
required: true,
|
|
required: true,
|
|
|
message: '请输入计划生产数',
|
|
message: '请输入计划生产数',
|
|
@@ -99,7 +99,7 @@
|
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
|
<el-form-item
|
|
<el-form-item
|
|
|
label-width="0px"
|
|
label-width="0px"
|
|
|
- :prop="'salesOrderVOS.'+ scope.$index + '.requiredFormingNum'"
|
|
|
|
|
|
|
+ :prop="'salesOrders.'+ scope.$index + '.requiredFormingNum'"
|
|
|
:rules="{
|
|
:rules="{
|
|
|
required: true,
|
|
required: true,
|
|
|
message: '请输入要求成型数量',
|
|
message: '请输入要求成型数量',
|
|
@@ -133,7 +133,7 @@
|
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
|
<el-form-item
|
|
<el-form-item
|
|
|
label-width="0px"
|
|
label-width="0px"
|
|
|
- :prop="'salesOrderVOS.'+ scope.$index + '.reqMoldTime'"
|
|
|
|
|
|
|
+ :prop="'salesOrders.'+ scope.$index + '.reqMoldTime'"
|
|
|
:rules="{
|
|
:rules="{
|
|
|
required: true,
|
|
required: true,
|
|
|
message: '请选择要求成型日期',
|
|
message: '请选择要求成型日期',
|
|
@@ -148,6 +148,13 @@
|
|
|
placeholder="选择日期"
|
|
placeholder="选择日期"
|
|
|
value-format="yyyy-MM-dd">
|
|
value-format="yyyy-MM-dd">
|
|
|
</el-date-picker>
|
|
</el-date-picker>
|
|
|
|
|
+ <!-- <el-date-picker
|
|
|
|
|
+ style="width: 100%;"
|
|
|
|
|
+ v-model="scope.row.reqMoldTime"
|
|
|
|
|
+ type="datetime"
|
|
|
|
|
+ placeholder="选择日期"
|
|
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss">
|
|
|
|
|
+ </el-date-picker> -->
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -189,9 +196,9 @@
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
- <AdditionalOrder ref="additionalRefs" :productCode="form.productCode" :selectList="form.salesOrderVOS" @choose="confirmChoose"></AdditionalOrder>
|
|
|
|
|
- <ProductionVersion ref="versionRefs" @confirm="confirmVersion"></ProductionVersion>
|
|
|
|
|
- <PlanSubmit ref="submitRefs" :info="form"></PlanSubmit>
|
|
|
|
|
|
|
+ <AdditionalOrder ref="additionalRefs" :productCode="form.productCode" :selectList="form.salesOrders" @choose="confirmChoose"></AdditionalOrder>
|
|
|
|
|
+ <ProductionVersion ref="versionRefs" @confirm="confirmVersion" :productCode="form.productCode"></ProductionVersion>
|
|
|
|
|
+ <PlanSubmit ref="submitRefs" :info="form" @publish="publishData"></PlanSubmit>
|
|
|
</el-card>
|
|
</el-card>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
@@ -201,7 +208,8 @@
|
|
|
import ProductionVersion from '@/components/CreatePlan/ProductionVersion.vue'
|
|
import ProductionVersion from '@/components/CreatePlan/ProductionVersion.vue'
|
|
|
import { productionToPlan , saveSaleToPlan } from '@/api/saleOrder';
|
|
import { productionToPlan , saveSaleToPlan } from '@/api/saleOrder';
|
|
|
import dictMixins from '@/mixins/dictMixins';
|
|
import dictMixins from '@/mixins/dictMixins';
|
|
|
- import { deepClone } from '@/utils/index'
|
|
|
|
|
|
|
+ import { deepClone } from '@/utils/index';
|
|
|
|
|
+ import { finishPageTab , reloadPageTab } from '@/utils/page-tab-util';
|
|
|
export default {
|
|
export default {
|
|
|
mixins: [dictMixins],
|
|
mixins: [dictMixins],
|
|
|
components: {
|
|
components: {
|
|
@@ -213,7 +221,7 @@
|
|
|
return {
|
|
return {
|
|
|
form:{
|
|
form:{
|
|
|
producteVersionId:'',
|
|
producteVersionId:'',
|
|
|
- salesOrderVOS:[]
|
|
|
|
|
|
|
+ salesOrders:[]
|
|
|
},
|
|
},
|
|
|
// 表单验证规则
|
|
// 表单验证规则
|
|
|
rules: {
|
|
rules: {
|
|
@@ -244,7 +252,7 @@
|
|
|
getSaleInfo(params){
|
|
getSaleInfo(params){
|
|
|
productionToPlan(params).then(res=>{
|
|
productionToPlan(params).then(res=>{
|
|
|
this.form = deepClone(res)
|
|
this.form = deepClone(res)
|
|
|
- this.form.salesOrderVOS.map((item,index)=>{
|
|
|
|
|
|
|
+ this.form.salesOrders.map((item,index)=>{
|
|
|
item.priority = index+1
|
|
item.priority = index+1
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
@@ -255,40 +263,64 @@
|
|
|
toSubmit(){
|
|
toSubmit(){
|
|
|
this.$refs.form.validate((valid) => {
|
|
this.$refs.form.validate((valid) => {
|
|
|
if (valid) {
|
|
if (valid) {
|
|
|
|
|
+ this.mapList()
|
|
|
this.$refs.submitRefs.open()
|
|
this.$refs.submitRefs.open()
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
|
|
+ // 对比日期,计算要求成型重量
|
|
|
|
|
+ mapList(){
|
|
|
|
|
+ var requiredFormingWeight = 0
|
|
|
|
|
+ var requiredFormingNum = 0
|
|
|
|
|
+ this.form.salesOrders.map((item,index)=>{
|
|
|
|
|
+ requiredFormingWeight = requiredFormingWeight + Number(item.productUnitWeight) * Number(item.requiredFormingNum)
|
|
|
|
|
+ requiredFormingNum = requiredFormingNum + item.requiredFormingNum
|
|
|
|
|
+ })
|
|
|
|
|
+ this.form.requiredFormingWeight = requiredFormingWeight.toFixed(2)
|
|
|
|
|
+ this.form.requiredFormingNum = requiredFormingNum
|
|
|
|
|
+ const collection = deepClone(this.form.salesOrders)
|
|
|
|
|
+ const sortedCollection = collection.sort((a, b) => new Date(b.reqMoldTime) - new Date(a.reqMoldTime));
|
|
|
|
|
+ let latestData = {};
|
|
|
|
|
+ for (let i = 0; i < sortedCollection.length; i++) {
|
|
|
|
|
+ const data = sortedCollection[i];
|
|
|
|
|
+ if (!latestData.reqMoldTime || new Date(data.reqMoldTime) >= new Date(latestData.reqMoldTime)) {
|
|
|
|
|
+ latestData = data;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ this.form.reqMoldTime = latestData.reqMoldTime
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
sortTop (row) {
|
|
sortTop (row) {
|
|
|
if (row.priority <= 1) {
|
|
if (row.priority <= 1) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- let rowN = this.form.salesOrderVOS.find((n) => n.priority == row.priority - 1);
|
|
|
|
|
|
|
+ let rowN = this.form.salesOrders.find((n) => n.priority == row.priority - 1);
|
|
|
rowN.priority += 1;
|
|
rowN.priority += 1;
|
|
|
row.priority -= 1;
|
|
row.priority -= 1;
|
|
|
- this.form.salesOrderVOS.sort((a, b) => {
|
|
|
|
|
|
|
+ this.form.salesOrders.sort((a, b) => {
|
|
|
return a.priority - b.priority;
|
|
return a.priority - b.priority;
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
sortBottom (row) {
|
|
sortBottom (row) {
|
|
|
- if (row.priority >= this.form.salesOrderVOS.length) {
|
|
|
|
|
|
|
+ if (row.priority >= this.form.salesOrders.length) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- let rowN = this.form.salesOrderVOS.find((n) => n.priority == row.priority + 1);
|
|
|
|
|
|
|
+ let rowN = this.form.salesOrders.find((n) => n.priority == row.priority + 1);
|
|
|
rowN.priority -= 1;
|
|
rowN.priority -= 1;
|
|
|
row.priority += 1;
|
|
row.priority += 1;
|
|
|
- this.form.salesOrderVOS.sort((a, b) => {
|
|
|
|
|
|
|
+ this.form.salesOrders.sort((a, b) => {
|
|
|
return a.priority - b.priority;
|
|
return a.priority - b.priority;
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
againSort () {
|
|
againSort () {
|
|
|
- this.form.salesOrderVOS.forEach((n, index) => {
|
|
|
|
|
|
|
+ this.form.salesOrders.forEach((n, index) => {
|
|
|
n.priority = index + 1;
|
|
n.priority = index + 1;
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
// 删除产品
|
|
// 删除产品
|
|
|
handleDeleteItem (index) {
|
|
handleDeleteItem (index) {
|
|
|
- this.form.salesOrderVOS.splice(index, 1)
|
|
|
|
|
|
|
+ this.form.salesOrders.splice(index, 1)
|
|
|
},
|
|
},
|
|
|
addEquipment(){
|
|
addEquipment(){
|
|
|
this.$refs.additionalRefs.open()
|
|
this.$refs.additionalRefs.open()
|
|
@@ -297,45 +329,52 @@
|
|
|
this.$refs.versionRefs.open()
|
|
this.$refs.versionRefs.open()
|
|
|
},
|
|
},
|
|
|
confirmVersion(data){
|
|
confirmVersion(data){
|
|
|
- this.$set(this.form,'producteVersionName',data.name)
|
|
|
|
|
- this.$set(this.form,'producteVersionId',data.id)
|
|
|
|
|
|
|
+ this.$set(this.form,'producteVersionName',data.produceVersionName)
|
|
|
|
|
+ this.$set(this.form,'producteVersionId',data.produceVersionId)
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
confirmChoose(list){
|
|
confirmChoose(list){
|
|
|
// 取出在弹窗中选中并且不在表格中的数据
|
|
// 取出在弹窗中选中并且不在表格中的数据
|
|
|
const result = list.filter(
|
|
const result = list.filter(
|
|
|
- i => this.form.salesOrderVOS.findIndex(p => p.id === i.id) === -1
|
|
|
|
|
|
|
+ i => this.form.salesOrders.findIndex(p => p.id === i.id) === -1
|
|
|
)
|
|
)
|
|
|
// 取出在表格中并且不在弹窗中选中的数据 即取消选中的数据
|
|
// 取出在表格中并且不在弹窗中选中的数据 即取消选中的数据
|
|
|
- const del = this.form.salesOrderVOS.filter(
|
|
|
|
|
|
|
+ const del = this.form.salesOrders.filter(
|
|
|
i => list.findIndex(p => p.id === i.id) === -1
|
|
i => list.findIndex(p => p.id === i.id) === -1
|
|
|
)
|
|
)
|
|
|
- for(let i= this.form.salesOrderVOS.length-1;i>=0;i--){
|
|
|
|
|
|
|
+ for(let i= this.form.salesOrders.length-1;i>=0;i--){
|
|
|
for(let j in del){
|
|
for(let j in del){
|
|
|
- if(this.form.salesOrderVOS[i].id === del[j].id){
|
|
|
|
|
- this.form.salesOrderVOS.splice(i,1);
|
|
|
|
|
|
|
+ if(this.form.salesOrders[i].id === del[j].id){
|
|
|
|
|
+ this.form.salesOrders.splice(i,1);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- this.form.salesOrderVOS = this.form.salesOrderVOS.concat(result)
|
|
|
|
|
|
|
+ this.form.salesOrders = this.form.salesOrders.concat(result)
|
|
|
this.changeData()
|
|
this.changeData()
|
|
|
},
|
|
},
|
|
|
changeData(){
|
|
changeData(){
|
|
|
var productNum = 0
|
|
var productNum = 0
|
|
|
var productWeight = 0
|
|
var productWeight = 0
|
|
|
- var requiredFormingNum = 0
|
|
|
|
|
- // var requiredFormingWeight = 0
|
|
|
|
|
- // var formingCompletionDate = ''
|
|
|
|
|
- this.form.salesOrderVOS.map((item,index)=>{
|
|
|
|
|
|
|
+ this.form.salesOrders.map((item,index)=>{
|
|
|
item.priority = index+1
|
|
item.priority = index+1
|
|
|
productNum = productNum + item.contractNum
|
|
productNum = productNum + item.contractNum
|
|
|
productWeight = productWeight + Number(item.productSumWeight)
|
|
productWeight = productWeight + Number(item.productSumWeight)
|
|
|
- requiredFormingNum = requiredFormingNum + item.requiredFormingNum
|
|
|
|
|
- // requiredFormingWeight = requiredFormingWeight + Number(item.productUnitWeight) * Number(item.requiredFormingNum)
|
|
|
|
|
- })
|
|
|
|
|
- this.$set(this.form,'codeNum',this.form.salesOrderVOS.length)
|
|
|
|
|
|
|
+ })
|
|
|
|
|
+ this.$set(this.form,'codeNum',this.form.salesOrders.length)
|
|
|
this.$set(this.form,'contractNum',productNum)
|
|
this.$set(this.form,'contractNum',productNum)
|
|
|
this.$set(this.form,'sumOrderWeight',productWeight.toFixed(2))
|
|
this.$set(this.form,'sumOrderWeight',productWeight.toFixed(2))
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ publishData(type){
|
|
|
|
|
+ console.log('type',type)
|
|
|
|
|
+ let params = deepClone(this.form)
|
|
|
|
|
+ delete params.id
|
|
|
|
|
+ saveSaleToPlan(params).then(res=>{
|
|
|
|
|
+ finishPageTab()
|
|
|
|
|
+ reloadPageTab({ fullPath: '/saleOrder' });
|
|
|
|
|
+ this.$router.go(-1)
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|