|
|
@@ -14,48 +14,48 @@
|
|
|
<el-row :gutter="24">
|
|
|
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
|
|
|
<el-form-item label="计划类型:">
|
|
|
- <DictSelection dictName="订单计划类型" clearable v-model="form.type">
|
|
|
+ <DictSelection dictName="订单计划类型" clearable v-model="form.orderType">
|
|
|
</DictSelection>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
|
|
|
- <el-form-item label="生产版本:" prop="edition">
|
|
|
- <el-input @click.native="openVersion" placeholder="请选择生产版本" readonly v-model="form.edition"></el-input>
|
|
|
+ <el-form-item label="生产版本:" prop="producteVersionName">
|
|
|
+ <el-input @click.native="openVersion" placeholder="请选择生产版本" readonly v-model="form.producteVersionName"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
|
|
|
- <el-form-item label="产线:" prop="productline">
|
|
|
+ <el-form-item label="产线:">
|
|
|
<el-input v-model="form.productline"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
|
|
|
- <el-form-item label="使用改型:" prop="remodel">
|
|
|
- <el-checkbox v-model="form.remodel"></el-checkbox>
|
|
|
+ <el-form-item label="使用改型:" prop="modification">
|
|
|
+ <el-checkbox v-model="form.modification" :true-label='1' :false-label='0'></el-checkbox>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="24" class="row-intro">
|
|
|
<el-col v-bind="styleResponsive ? { lg: 3, md: 12 } : { span: 3 }">
|
|
|
- <el-form-item label="销售单数量:">3</el-form-item>
|
|
|
+ <el-form-item label="销售单数量:">{{form.codeNum}}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col v-bind="styleResponsive ? { lg: 4, md: 12 } : { span: 4 }">
|
|
|
- <el-form-item label="订单总数量:">10000</el-form-item>
|
|
|
+ <el-form-item label="订单总数量:">{{form.contractNum}}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col v-bind="styleResponsive ? { lg: 3, md: 12 } : { span: 3 }">
|
|
|
- <el-form-item label="订单总重量:">3021.23</el-form-item>
|
|
|
+ <el-form-item label="订单总重量:">{{form.sumOrderWeight}}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 5 }">
|
|
|
- <el-form-item label="产品编码:">W30000004536</el-form-item>
|
|
|
+ <el-form-item label="产品编码:">{{form.productCode}}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
|
|
|
- <el-form-item label="牌号|型号:">YL10.2|BΦ16.0*330(MG)</el-form-item>
|
|
|
+ <el-form-item label="牌号|型号:">{{form.brandNo}}|{{form.model}}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col v-bind="styleResponsive ? { lg: 3, md: 12 } : { span: 3 }">
|
|
|
- <el-form-item label="库存数量:">1523</el-form-item>
|
|
|
+ <el-form-item label="库存数量:">{{form.stockCountBase}}</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-table
|
|
|
- :data="form.tableData"
|
|
|
+ :data="form.salesOrderVOS"
|
|
|
border
|
|
|
>
|
|
|
<el-table-column label="序号" align="center" width="60">
|
|
|
@@ -63,29 +63,30 @@
|
|
|
<span>{{ scope.$index + 1 }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="销售订单号" align="center" prop="name" width="120">
|
|
|
+ <el-table-column label="销售订单号" align="center" prop="code" width="120">
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="行号" align="center" prop="name">
|
|
|
+ <el-table-column label="行号" align="center" prop="lineNumber">
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="合同数量" align="center" prop="model">
|
|
|
+ <el-table-column label="合同数量" align="center" prop="contractNum">
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="合同重量" align="center" prop="model">
|
|
|
+ <el-table-column label="合同重量" align="center" prop="productSumWeight">
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="欠交数量" align="center" prop="model">
|
|
|
+ <el-table-column label="欠交数量" align="center" prop="lackNum">
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="计划生产数" align="center" prop="pNum" width="120">
|
|
|
+ <el-table-column label="计划生产数" align="center" prop="productNum" width="120">
|
|
|
<template slot-scope="scope">
|
|
|
<el-form-item
|
|
|
label-width="0px"
|
|
|
- :prop="'tableData.'+ scope.$index + '.pNum'"
|
|
|
+ :prop="'salesOrderVOS.'+ scope.$index + '.productNum'"
|
|
|
:rules="{
|
|
|
required: true,
|
|
|
message: '请输入计划生产数',
|
|
|
trigger: 'blur'
|
|
|
}"
|
|
|
+ class="table-item"
|
|
|
>
|
|
|
<el-input
|
|
|
- v-model.number="scope.row.pNum"
|
|
|
+ v-model.number="scope.row.productNum"
|
|
|
size="small"
|
|
|
oninput="value=value.replace(/[^\d]/g,'')"
|
|
|
style="width: 100%"
|
|
|
@@ -94,19 +95,20 @@
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="要求成型数量" align="center" prop="mNum" width="120">
|
|
|
+ <el-table-column label="要求成型数量" align="center" prop="requiredFormingNum" width="120">
|
|
|
<template slot-scope="scope">
|
|
|
<el-form-item
|
|
|
label-width="0px"
|
|
|
- :prop="'tableData.'+ scope.$index + '.mNum'"
|
|
|
+ :prop="'salesOrderVOS.'+ scope.$index + '.requiredFormingNum'"
|
|
|
:rules="{
|
|
|
required: true,
|
|
|
message: '请输入要求成型数量',
|
|
|
trigger: 'blur'
|
|
|
}"
|
|
|
+ class="table-item"
|
|
|
>
|
|
|
<el-input
|
|
|
- v-model.number="scope.row.mNum"
|
|
|
+ v-model.number="scope.row.requiredFormingNum"
|
|
|
size="small"
|
|
|
oninput="value=value.replace(/[^\d]/g,'')"
|
|
|
style="width: 100%"
|
|
|
@@ -115,26 +117,33 @@
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="按单按库" align="center" prop="model">
|
|
|
+ <el-table-column label="按单按库" align="center" prop="orderLibraryType">
|
|
|
+ <template slot-scope="{row}">
|
|
|
+ {{getDictValue('按单按库', row.orderLibraryType)}}
|
|
|
+ </template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="订单类型" align="center" prop="model">
|
|
|
+ <el-table-column label="订单类型" align="center" prop="orderType">
|
|
|
+ <template slot-scope="{row}">
|
|
|
+ {{getDictValue('订单类型', row.orderType)}}
|
|
|
+ </template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="交付日期" align="center" prop="measuringUnit">
|
|
|
+ <el-table-column label="交付日期" align="center" prop="deliveryTime" width="160">
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="要求成型日期" align="center" prop="date" width="180">
|
|
|
+ <el-table-column label="要求成型日期" align="center" prop="reqMoldTime" width="180">
|
|
|
<template slot-scope="scope">
|
|
|
<el-form-item
|
|
|
label-width="0px"
|
|
|
- :prop="'tableData.'+ scope.$index + '.date'"
|
|
|
+ :prop="'salesOrderVOS.'+ scope.$index + '.reqMoldTime'"
|
|
|
:rules="{
|
|
|
required: true,
|
|
|
message: '请选择要求成型日期',
|
|
|
trigger: 'blur'
|
|
|
}"
|
|
|
+ class="table-item"
|
|
|
>
|
|
|
<el-date-picker
|
|
|
style="width: 100%;"
|
|
|
- v-model="scope.row.date"
|
|
|
+ v-model="scope.row.reqMoldTime"
|
|
|
type="date"
|
|
|
placeholder="选择日期"
|
|
|
value-format="yyyy-MM-dd">
|
|
|
@@ -142,11 +151,14 @@
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="客户名称" align="center" prop="measuringUnit">
|
|
|
+ <el-table-column label="客户名称" align="center" prop="customerName">
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="业务员" align="center" prop="measuringUnit">
|
|
|
+ <el-table-column label="业务员" align="center" prop="salesman">
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="交付要求" align="center" prop="measuringUnit">
|
|
|
+ <el-table-column label="交付要求" align="center" prop="deliveryRequirements">
|
|
|
+ <template slot-scope="{row}">
|
|
|
+ {{getDictValue('交付要求', row.deliveryRequirements)}}
|
|
|
+ </template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="priority" label="优先级" width="100" align="center">
|
|
|
<template slot-scope="{ row }">
|
|
|
@@ -172,20 +184,24 @@
|
|
|
<el-row :gutter="24">
|
|
|
<el-col v-bind="styleResponsive ? { lg: 24, md: 24 } : { span: 24 }">
|
|
|
<el-form-item label="计划备注:">
|
|
|
- <el-input type="textarea" :rows="4" v-model="form.remark" resize='none'></el-input>
|
|
|
+ <el-input type="textarea" :rows="4" v-model="form.notes" resize='none'></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
- <AdditionalOrder ref="additionalRefs"></AdditionalOrder>
|
|
|
- <ProductionVersion ref="versionRefs"></ProductionVersion>
|
|
|
+ <AdditionalOrder ref="additionalRefs" :selectList="form.salesOrderVOS" @choose="confirmChoose"></AdditionalOrder>
|
|
|
+ <ProductionVersion ref="versionRefs" @confirm="confirmVersion"></ProductionVersion>
|
|
|
</el-card>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
import AdditionalOrder from './components/AdditionalOrder.vue';
|
|
|
import ProductionVersion from '@/components/CreatePlan/ProductionVersion.vue'
|
|
|
+ import { productionToPlan } from '@/api/saleOrder';
|
|
|
+ import dictMixins from '@/mixins/dictMixins';
|
|
|
+ import { deepClone } from '@/utils/index'
|
|
|
export default {
|
|
|
+ mixins: [dictMixins],
|
|
|
components: {
|
|
|
AdditionalOrder,
|
|
|
ProductionVersion
|
|
|
@@ -193,16 +209,14 @@
|
|
|
data () {
|
|
|
return {
|
|
|
form:{
|
|
|
- tableData:[
|
|
|
- {name:'122',model:'型号1',sort:1},
|
|
|
- {name:'222',model:'型号2',sort:2}
|
|
|
- ]
|
|
|
+ producteVersionId:'',
|
|
|
+ salesOrderVOS:[]
|
|
|
},
|
|
|
// 表单验证规则
|
|
|
rules: {
|
|
|
- edition:[{required: true,message: '请选择生产版本',trigger: 'blur'}],
|
|
|
- productline:[{required: true,message: '请选择产线',trigger: 'blur'}],
|
|
|
+ producteVersionName:[{required: true,message: '请选择生产版本',trigger: 'change'}]
|
|
|
},
|
|
|
+ selection:[]
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -211,7 +225,26 @@
|
|
|
return this.$store.state.theme.styleResponsive;
|
|
|
}
|
|
|
},
|
|
|
+ created() {
|
|
|
+ this.requestDict('按单按库');
|
|
|
+ this.requestDict('订单类型');
|
|
|
+ this.requestDict('交付要求');
|
|
|
+ this.selection = JSON.parse(this.$route.query.selection)
|
|
|
+ const list = []
|
|
|
+ this.selection.map(item=>{
|
|
|
+ list.push(item.id)
|
|
|
+ })
|
|
|
+ this.getSaleInfo(list)
|
|
|
+ },
|
|
|
methods: {
|
|
|
+ getSaleInfo(params){
|
|
|
+ productionToPlan(params).then(res=>{
|
|
|
+ this.form = deepClone(res)
|
|
|
+ this.form.salesOrderVOS.map((item,index)=>{
|
|
|
+ item.priority = index+1
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
cancel(){
|
|
|
this.$router.go(-1)
|
|
|
},
|
|
|
@@ -219,42 +252,58 @@
|
|
|
|
|
|
},
|
|
|
sortTop (row) {
|
|
|
- if (row.sort <= 1) {
|
|
|
+ if (row.priority <= 1) {
|
|
|
return;
|
|
|
}
|
|
|
- let rowN = this.form.tableData.find((n) => n.sort == row.sort - 1);
|
|
|
- rowN.sort += 1;
|
|
|
- row.sort -= 1;
|
|
|
- this.form.tableData.sort((a, b) => {
|
|
|
- return a.sort - b.sort;
|
|
|
+ let rowN = this.form.salesOrderVOS.find((n) => n.priority == row.priority - 1);
|
|
|
+ rowN.priority += 1;
|
|
|
+ row.priority -= 1;
|
|
|
+ this.form.salesOrderVOS.sort((a, b) => {
|
|
|
+ return a.priority - b.priority;
|
|
|
});
|
|
|
},
|
|
|
sortBottom (row) {
|
|
|
- if (row.sort >= this.form.tableData.length) {
|
|
|
+ if (row.priority >= this.form.salesOrderVOS.length) {
|
|
|
return;
|
|
|
}
|
|
|
- let rowN = this.form.tableData.find((n) => n.sort == row.sort + 1);
|
|
|
- rowN.sort -= 1;
|
|
|
- row.sort += 1;
|
|
|
- this.form.tableData.sort((a, b) => {
|
|
|
- return a.sort - b.sort;
|
|
|
+ let rowN = this.form.salesOrderVOS.find((n) => n.priority == row.priority + 1);
|
|
|
+ rowN.priority -= 1;
|
|
|
+ row.priority += 1;
|
|
|
+ this.form.salesOrderVOS.sort((a, b) => {
|
|
|
+ return a.priority - b.priority;
|
|
|
});
|
|
|
},
|
|
|
againSort () {
|
|
|
- this.form.tableData.forEach((n, index) => {
|
|
|
- n.sort = index + 1;
|
|
|
+ this.form.salesOrderVOS.forEach((n, index) => {
|
|
|
+ n.priority = index + 1;
|
|
|
});
|
|
|
},
|
|
|
// 删除产品
|
|
|
handleDeleteItem (index) {
|
|
|
- this.form.tableData.splice(index, 1)
|
|
|
+ this.form.salesOrderVOS.splice(index, 1)
|
|
|
},
|
|
|
addEquipment(){
|
|
|
this.$refs.additionalRefs.open()
|
|
|
},
|
|
|
openVersion(){
|
|
|
this.$refs.versionRefs.open()
|
|
|
+ },
|
|
|
+ confirmVersion(data){
|
|
|
+ this.$set(this.form,'producteVersionName',data.name)
|
|
|
+ this.$set(this.form,'producteVersionId',data.id)
|
|
|
+ },
|
|
|
+
|
|
|
+ confirmChoose(list){
|
|
|
+ // 取出在弹窗中选中并且不在表格中的数据
|
|
|
+ const result = list.filter(
|
|
|
+ i => this.form.salesOrderVOS.findIndex(p => p.id === i.id) === -1
|
|
|
+ )
|
|
|
+ console.log('筛选出的',result)
|
|
|
+ // const sum = arr.reduce((pre,cur)=>{
|
|
|
+ // return pre +cur
|
|
|
+ // },2)
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
|
@@ -277,6 +326,7 @@
|
|
|
}
|
|
|
.row-intro{
|
|
|
border-bottom: 1px dashed #ccc;
|
|
|
+ margin-bottom: 20px;
|
|
|
}
|
|
|
.sort-wrap {
|
|
|
i {
|
|
|
@@ -300,4 +350,7 @@
|
|
|
margin:10px 0;
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
+ .table-item{
|
|
|
+ margin-bottom: 0;
|
|
|
+ }
|
|
|
</style>
|