|
@@ -2,6 +2,20 @@
|
|
<div>
|
|
<div>
|
|
<Toptitle :title="type==1?'新增':type==2?'编辑':'详情'">
|
|
<Toptitle :title="type==1?'新增':type==2?'编辑':'详情'">
|
|
<Button @click="$router.go(-1)" style="margin-right:10px">取消</Button>
|
|
<Button @click="$router.go(-1)" style="margin-right:10px">取消</Button>
|
|
|
|
+ <Button @click="handleTakeApart" style="margin-right:10px" type='primary' v-show="type==2">批量拆单</Button>
|
|
|
|
+ <Upload
|
|
|
|
+ ref="upload"
|
|
|
|
+ name="your_file"
|
|
|
|
+ :show-upload-list="false"
|
|
|
|
+ :headers="headers"
|
|
|
|
+ :on-error="uploadError"
|
|
|
|
+ :on-success="uploadSuccess"
|
|
|
|
+ :action="$store.state.ip + '/api/split_import_news'"
|
|
|
|
+ :data='{list:JSON.stringify(selectData)}'
|
|
|
|
+ v-show="false"
|
|
|
|
+ >
|
|
|
|
+ </Upload>
|
|
|
|
+ <Button @click="handleExport" type="primary" v-if="type==3" style="margin-right:10px">批量下生产</Button>
|
|
<Button type="primary" @click="handleSubmit('formValidate')" v-if="type!=3">保存</Button>
|
|
<Button type="primary" @click="handleSubmit('formValidate')" v-if="type!=3">保存</Button>
|
|
</Toptitle>
|
|
</Toptitle>
|
|
<Form ref="formValidate" :model="formData" :rules="ruleValidate" class="form_content" :label-width='120'>
|
|
<Form ref="formValidate" :model="formData" :rules="ruleValidate" class="form_content" :label-width='120'>
|
|
@@ -50,6 +64,31 @@
|
|
</Form>
|
|
</Form>
|
|
<Card style="max-height:67%;overflow:auto">
|
|
<Card style="max-height:67%;overflow:auto">
|
|
<Form :label-width='110' class="form_content">
|
|
<Form :label-width='110' class="form_content">
|
|
|
|
+ <FormItem label='区域:'>
|
|
|
|
+ <Select filterable clearable class="form_item" v-model="searchData.area">
|
|
|
|
+ <Option v-for="(item,index) in TableAreaList" :key="index" :value="item" :label="item"/>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label='楼栋:'>
|
|
|
|
+ <Select filterable clearable class="form_item" v-model="searchData.house">
|
|
|
|
+ <Option v-for="(item,index) in TableHouseList" :key="index" :value="item" :label="item"/>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label='单元:'>
|
|
|
|
+ <Select filterable clearable class="form_item" v-model="searchData.unit">
|
|
|
|
+ <Option v-for="(item,index) in TableUnitList" :key="index" :value="item" :label="item"/>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label='楼层:'>
|
|
|
|
+ <Select filterable clearable class="form_item" v-model="searchData.layer">
|
|
|
|
+ <Option v-for="(item,index) in TableLayerList" :key="index" :value="item" :label="item"/>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label='房号:'>
|
|
|
|
+ <Select filterable clearable class="form_item" v-model="searchData.number">
|
|
|
|
+ <Option v-for="(item,index) in TableNumberList" :key="index" :value="item" :label="item"/>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
<FormItem label='产品分类:'>
|
|
<FormItem label='产品分类:'>
|
|
<Select filterable clearable class="form_item" v-model="searchData.product_type">
|
|
<Select filterable clearable class="form_item" v-model="searchData.product_type">
|
|
<Option v-for="(item,index) in productTypeList" :key="index" :value="item" :label="item"/>
|
|
<Option v-for="(item,index) in productTypeList" :key="index" :value="item" :label="item"/>
|
|
@@ -121,11 +160,21 @@
|
|
:data="tableData"
|
|
:data="tableData"
|
|
:column-config="{resizable: true}"
|
|
:column-config="{resizable: true}"
|
|
:edit-config="{trigger: 'click', mode: 'row'}"
|
|
:edit-config="{trigger: 'click', mode: 'row'}"
|
|
|
|
+ @checkbox-change='handleSelectTable'
|
|
|
|
+ @checkbox-all='handleSelectAll'
|
|
>
|
|
>
|
|
- <vxe-column field="index" width="60" title="序号"></vxe-column>
|
|
|
|
|
|
+ <vxe-column type="checkbox" width="80" title="选择"></vxe-column>
|
|
|
|
+ <vxe-column field="order_number" width="120" title="订单编号"></vxe-column>
|
|
|
|
+ <vxe-column field="area" width="60" title="区域"></vxe-column>
|
|
|
|
+ <vxe-column field="house" width="60" title="楼栋"></vxe-column>
|
|
|
|
+ <vxe-column field="unit" width="60" title="单元"></vxe-column>
|
|
|
|
+ <vxe-column field="layer" width="60" title="楼层"></vxe-column>
|
|
|
|
+ <vxe-column field="number" width="60" title="房号"></vxe-column>
|
|
<vxe-column field="product_type" title="产品分类" :edit-render="{enabled:type==3?false:true}" min-width="100">
|
|
<vxe-column field="product_type" title="产品分类" :edit-render="{enabled:type==3?false:true}" min-width="100">
|
|
<template #edit="{ row }">
|
|
<template #edit="{ row }">
|
|
- <vxe-select v-model="row.product_type" type="text" :filterable='true' clearable></vxe-select>
|
|
|
|
|
|
+ <vxe-select v-model="row.product_type" type="text" :filterable='true' clearable transfer>
|
|
|
|
+ <vxe-option v-for="(item,index) in productTypeList" :key="index" :value="item" :label="item"></vxe-option>
|
|
|
|
+ </vxe-select>
|
|
</template>
|
|
</template>
|
|
</vxe-column>
|
|
</vxe-column>
|
|
<vxe-column field="title" title="产品名称" :edit-render="{enabled:type==3?false:true}" min-width="100">
|
|
<vxe-column field="title" title="产品名称" :edit-render="{enabled:type==3?false:true}" min-width="100">
|
|
@@ -208,7 +257,7 @@
|
|
</vxe-column>
|
|
</vxe-column>
|
|
<vxe-column title="操作" min-width="150">
|
|
<vxe-column title="操作" min-width="150">
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
- <a style="margin-right:10px" @click="handleSet(row,1)" v-show="type==2&&row.status==0&&row.split_state==1">拆单</a>
|
|
|
|
|
|
+ <!-- <a style="margin-right:10px" @click="handleSet(row,1)" v-show="type==2&&row.status==0&&row.split_state==1">拆单</a> -->
|
|
<!-- <a style="margin-right:10px" @click="handleSet(row,2)" v-show="type!=3">复制</a> -->
|
|
<!-- <a style="margin-right:10px" @click="handleSet(row,2)" v-show="type!=3">复制</a> -->
|
|
<a style="margin-right:10px" @click="handleSet(row,3)">详情</a>
|
|
<a style="margin-right:10px" @click="handleSet(row,3)">详情</a>
|
|
<!-- <a @click="handleSet(row,4,$rowIndex)" v-show="type!=3">删除</a> -->
|
|
<!-- <a @click="handleSet(row,4,$rowIndex)" v-show="type!=3">删除</a> -->
|
|
@@ -305,6 +354,12 @@
|
|
export default {
|
|
export default {
|
|
data(){
|
|
data(){
|
|
return{
|
|
return{
|
|
|
|
+ selectData:[],
|
|
|
|
+ TableHouseList:[],
|
|
|
|
+ TableUnitList:[],
|
|
|
|
+ TableLayerList:[],
|
|
|
|
+ TableAreaList:[],
|
|
|
|
+ TableNumberList:[],
|
|
codeList:[],
|
|
codeList:[],
|
|
titleList:[],
|
|
titleList:[],
|
|
houseList:[],
|
|
houseList:[],
|
|
@@ -338,7 +393,7 @@ export default {
|
|
numPageSize:10,
|
|
numPageSize:10,
|
|
numTotal:0,
|
|
numTotal:0,
|
|
show_num:false,
|
|
show_num:false,
|
|
- exportProduct:{},
|
|
|
|
|
|
+ exportProduct:[],
|
|
modalProductData:{
|
|
modalProductData:{
|
|
time:[],
|
|
time:[],
|
|
process_man:'',
|
|
process_man:'',
|
|
@@ -349,6 +404,11 @@ export default {
|
|
urlNumberList:[],
|
|
urlNumberList:[],
|
|
productTitleList:[],
|
|
productTitleList:[],
|
|
searchData:{
|
|
searchData:{
|
|
|
|
+ layer:'',
|
|
|
|
+ unit:'',
|
|
|
|
+ number:'',
|
|
|
|
+ area:'',
|
|
|
|
+ house:'',
|
|
product_type:'',
|
|
product_type:'',
|
|
url_number:'',
|
|
url_number:'',
|
|
title:'',
|
|
title:'',
|
|
@@ -398,7 +458,7 @@ export default {
|
|
{required:true,message:'客户名称不能为空',trigger:'change',type:'number'}
|
|
{required:true,message:'客户名称不能为空',trigger:'change',type:'number'}
|
|
],
|
|
],
|
|
warning_state: [
|
|
warning_state: [
|
|
- { required: true, message: '紧急程度不能为空', trigger: 'change',type:'number'}
|
|
|
|
|
|
+ { required: true, message: '紧急程度不能为空', trigger:'blur',type:'number'}
|
|
],
|
|
],
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -422,6 +482,86 @@ export default {
|
|
this.initData();
|
|
this.initData();
|
|
},
|
|
},
|
|
methods:{
|
|
methods:{
|
|
|
|
+ handleExport(){
|
|
|
|
+ if(this.selectData.length==0){
|
|
|
|
+ return this.$Message.warning('请选择要下生产的数据!');
|
|
|
|
+ }
|
|
|
|
+ if(!this.selectData.every(v=>(v.explode_status==1&&v.status==0))){
|
|
|
|
+ return this.$Message.warning('数据中有不能下生产的数据!');
|
|
|
|
+ }
|
|
|
|
+ this.show_product = true;
|
|
|
|
+ let data = [];
|
|
|
|
+ this.selectData.forEach(v=>{
|
|
|
|
+ data.push({
|
|
|
|
+ url_number:[v.url_number],
|
|
|
|
+ cut_order_product_ids:v.cut_order_product_ids,
|
|
|
|
+ measure:[v.measure],
|
|
|
|
+ house_id:[v.house_id],
|
|
|
|
+ order_no:v.order_no
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ this.exportProduct=data;
|
|
|
|
+ },
|
|
|
|
+ uploadSuccess(res) {
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+ this.$Message.success(res.msg);
|
|
|
|
+ this.initData(this.proxyData);
|
|
|
|
+ } else {
|
|
|
|
+ this.$Message.warning(res.msg || "上传失败");
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ uploadError(err) {
|
|
|
|
+ this.$Message.error(err.msg || "上传失败");
|
|
|
|
+ },
|
|
|
|
+ handleSelectAll(e){
|
|
|
|
+ let data = [];
|
|
|
|
+ e.records.forEach(v=>{
|
|
|
|
+ data.push({
|
|
|
|
+ id:v.id,
|
|
|
|
+ order_no:v.order_no,
|
|
|
|
+ product_name:v.title,
|
|
|
|
+ url_number:v.url_number,
|
|
|
|
+ cut_order_product_ids:v.cut_order_product_id,
|
|
|
|
+ measure:v.measure,
|
|
|
|
+ house_id:v.house_id,
|
|
|
|
+ explode_status:v.explode_status,
|
|
|
|
+ status:v.status,
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ this.selectData = data;
|
|
|
|
+ },
|
|
|
|
+ // { checked, row, rowIndex, $rowIndex, column, columnIndex, $columnIndex, $event }
|
|
|
|
+ handleSelectTable(e){
|
|
|
|
+ console.log(e.records);
|
|
|
|
+ let data = [];
|
|
|
|
+ e.records.forEach(v=>{
|
|
|
|
+ data.push({
|
|
|
|
+ id:v.id,
|
|
|
|
+ order_no:v.order_no,
|
|
|
|
+ product_name:v.title,
|
|
|
|
+ url_number:v.url_number,
|
|
|
|
+ cut_order_product_ids:v.cut_order_product_id,
|
|
|
|
+ measure:v.measure,
|
|
|
|
+ house_id:v.house_id,
|
|
|
|
+ explode_status:v.explode_status,
|
|
|
|
+ status:v.status,
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ this.selectData = data;
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ handleTakeApart(){
|
|
|
|
+ if(this.selectData.length==0){
|
|
|
|
+ return this.$Message.warning('请选择需要拆单的数据!');
|
|
|
|
+ }
|
|
|
|
+ if(!this.selectData.every(v=>(v.url_number==this.selectData[0].url_number))){
|
|
|
|
+ return this.$Message.warning('批量拆单只能选择一个图号!')
|
|
|
|
+ }
|
|
|
|
+ if(this.selectData.every(v=>(v.status==0))){
|
|
|
|
+ return this.$Message.warning('选择的数据中有不能拆单的数据!')
|
|
|
|
+ }
|
|
|
|
+ document.getElementsByClassName('ivu-upload-input')[0].click();
|
|
|
|
+ },
|
|
handleNumSearch(){
|
|
handleNumSearch(){
|
|
let obj = JSON.parse(JSON.stringify(this.modalNumData));
|
|
let obj = JSON.parse(JSON.stringify(this.modalNumData));
|
|
this.numProxyData = obj;
|
|
this.numProxyData = obj;
|
|
@@ -464,7 +604,11 @@ export default {
|
|
}
|
|
}
|
|
let process_start_time = Date.parse(this.modalProductData.time[0]).toString().slice(0,10);
|
|
let process_start_time = Date.parse(this.modalProductData.time[0]).toString().slice(0,10);
|
|
let process_end_time = Date.parse(this.modalProductData.time[1]).toString().slice(0,10);
|
|
let process_end_time = Date.parse(this.modalProductData.time[1]).toString().slice(0,10);
|
|
- this.axios.post('/api/split_pull_product',{order_no:this.$route.query.order_no,...this.exportProduct,process_man:this.modalProductData.process_man,process_start_time,process_end_time}).then(res=>{
|
|
|
|
|
|
+ let data = [];
|
|
|
|
+ this.exportProduct.forEach(ele => {
|
|
|
|
+ data.push({...ele,process_man:this.modalProductData.process_man,process_start_time,process_end_time})
|
|
|
|
+ });
|
|
|
|
+ this.axios.post('/api/split_pull_product',{list:data}).then(res=>{
|
|
if(res.code==200){
|
|
if(res.code==200){
|
|
this.$Message.success(res.msg);
|
|
this.$Message.success(res.msg);
|
|
this.show_product=false;
|
|
this.show_product=false;
|
|
@@ -493,6 +637,11 @@ export default {
|
|
this.productTypeList = res.data.product_type;
|
|
this.productTypeList = res.data.product_type;
|
|
this.productTitleList = res.data.product_title;
|
|
this.productTitleList = res.data.product_title;
|
|
this.urlNumberList = res.data.url_number;
|
|
this.urlNumberList = res.data.url_number;
|
|
|
|
+ this.TableHouseList = res.data.house;
|
|
|
|
+ this.TableUnitList= res.data.unit;
|
|
|
|
+ this.TableAreaList = res.data.area;
|
|
|
|
+ this.TableNumberList = res.data.number;
|
|
|
|
+ this.TableLayerList = res.data.layer;
|
|
this.tableData.forEach((v,index)=>{
|
|
this.tableData.forEach((v,index)=>{
|
|
v.index = index+1
|
|
v.index = index+1
|
|
})
|
|
})
|
|
@@ -506,19 +655,19 @@ export default {
|
|
this.formData.predict_time = this.func.replaceDateNoHMS(this.formData.predict_time);
|
|
this.formData.predict_time = this.func.replaceDateNoHMS(this.formData.predict_time);
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- uploadSuccess(res) {
|
|
|
|
- if (res.code == 200) {
|
|
|
|
- this.axios.post('/api/deep_detail',{order_no:this.recordOrderNO?this.recordOrderNO:this.formData.order_no}).then(res=>{
|
|
|
|
- this.tableData = res.data.data;
|
|
|
|
- this.total = res.data.total;
|
|
|
|
- })
|
|
|
|
- } else {
|
|
|
|
- this.$Message.warning(res.msg || "上传失败");
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- uploadError(err) {
|
|
|
|
- this.$Message.error(err.msg || "上传失败");
|
|
|
|
- },
|
|
|
|
|
|
+ // uploadSuccess(res) {
|
|
|
|
+ // if (res.code == 200) {
|
|
|
|
+ // this.axios.post('/api/deep_detail',{order_no:this.recordOrderNO?this.recordOrderNO:this.formData.order_no}).then(res=>{
|
|
|
|
+ // this.tableData = res.data.data;
|
|
|
|
+ // this.total = res.data.total;
|
|
|
|
+ // })
|
|
|
|
+ // } else {
|
|
|
|
+ // this.$Message.warning(res.msg || "上传失败");
|
|
|
|
+ // }
|
|
|
|
+ // },
|
|
|
|
+ // uploadError(err) {
|
|
|
|
+ // this.$Message.error(err.msg || "上传失败");
|
|
|
|
+ // },
|
|
|
|
|
|
changeSize(e){
|
|
changeSize(e){
|
|
this.pageSize = e;
|
|
this.pageSize = e;
|
|
@@ -563,11 +712,13 @@ export default {
|
|
break;
|
|
break;
|
|
case 5:
|
|
case 5:
|
|
this.show_product = true;
|
|
this.show_product = true;
|
|
- this.exportProduct={
|
|
|
|
|
|
+ this.exportProduct=[{
|
|
url_number:[row.url_number],
|
|
url_number:[row.url_number],
|
|
cut_order_product_ids:row.cut_order_product_id,
|
|
cut_order_product_ids:row.cut_order_product_id,
|
|
- measure:[row.measure]
|
|
|
|
- }
|
|
|
|
|
|
+ measure:[row.measure],
|
|
|
|
+ house_id:[row.house_id],
|
|
|
|
+ order_no:row.order_no
|
|
|
|
+ }]
|
|
break;
|
|
break;
|
|
case 6:
|
|
case 6:
|
|
let data = {};
|
|
let data = {};
|