Sfoglia il codice sorgente

bug修改3.29周二

mushencc 3 anni fa
parent
commit
69eabe8e5a
38 ha cambiato i file con 1351 aggiunte e 275 eliminazioni
  1. BIN
      bst.zip
  2. BIN
      dist (3).zip
  3. BIN
      dist.zip
  4. 2 0
      src/axios/index.js
  5. 1 2
      src/components/DownProduction/index.js
  6. 5 2
      src/components/DownProduction/index.vue
  7. 40 0
      src/routerMap/index.js
  8. 37 10
      src/views/BasicSettings/MaterialCalculationFormula.vue
  9. 6 3
      src/views/BasicSettings/rootManage.vue
  10. 106 9
      src/views/BidSystem/ContractList/BSTList.vue
  11. 11 2
      src/views/BidSystem/ContractList/edit.vue
  12. 102 78
      src/views/BidSystem/ContractList/urlLeading.vue
  13. 1 1
      src/views/BidSystem/DeepeningOrder/change.vue
  14. 1 1
      src/views/BidSystem/DeepeningOrder/changeRecord.vue
  15. 1 1
      src/views/BidSystem/DeepeningOrder/deepDetail.vue
  16. 3 3
      src/views/BidSystem/DeepeningOrder/list.vue
  17. 2 2
      src/views/BidSystem/ProductDeOrder/list.vue
  18. 12 6
      src/views/BidSystem/QuotaRequisition.vue
  19. 95 0
      src/views/BidSystem/TotalPlanTimeChange/edit.vue
  20. 77 0
      src/views/BidSystem/TotalPlanTimeChange/list.vue
  21. 79 51
      src/views/Dispatching/Dispatching.vue
  22. 106 5
      src/views/MatchChange/change.vue
  23. 27 5
      src/views/MatchChange/check.vue
  24. 43 1
      src/views/MaterialMannage/edit.vue
  25. 1 0
      src/views/ProcessRoute/edit.vue
  26. 10 10
      src/views/ProductionOrderList/Dispatchlist/list.vue
  27. 1 3
      src/views/ProductionOrderList/ProductionPlanlist/BST_two.vue
  28. 51 35
      src/views/ProductionOrderList/ProductionsOrder/BST_Decorationlist.vue
  29. 100 11
      src/views/ProductionOrderList/ProductionsOrder/BST_list.vue
  30. 5 1
      src/views/Warehouse/FirstInventory/detail.vue
  31. 5 4
      src/views/Warehouse/FirstInventory/list.vue
  32. 242 0
      src/views/leadMatch/Ironware/edit.vue
  33. 124 0
      src/views/leadMatch/Ironware/list.vue
  34. 28 2
      src/views/leadMatch/MatchList/matchCheck.vue
  35. 1 1
      src/views/leadMatch/MatchList/matchList.vue
  36. 25 25
      src/views/leadMatch/weightMemo/edit.vue
  37. 1 1
      vue.config.js
  38. BIN
      上线服务.zip

BIN
dist (2).zip → bst.zip


BIN
dist (3).zip


BIN
dist.zip


+ 2 - 0
src/axios/index.js

@@ -17,7 +17,9 @@ let config = {
 //请求拦截,后期可能会用到,先注册在此
 instance.interceptors.request.use(
   function(config) {
+    if(config.url != '/api/bst_get_plan_time'){
     Vue.prototype.$loading.show();
+    }
     let token = localStorage.getItem("token");
     // let proxy_url = 'http://121.37.173.82:82'; //打包上线时请改用此处
     let proxy_url = process.env.VUE_APP_BASE_URL; //打包上线时请改用此处

+ 1 - 2
src/components/DownProduction/index.js

@@ -3,14 +3,13 @@ import DownProduction from './index.vue'
 
 const downProduction = Vue.extend(DownProduction)
 let nId = 1;
-const ProductionModal = ({title,params,type,then,cancel,dateOption}) => {
+const ProductionModal = ({title,params,type,then,cancel}) => {
     let id = 'd-m' + nId++
   
     const Production = new downProduction({
       data: {
         title:title,
         planInfo: params,
-        dateOption,
         type:type,//1下生产  2下生产计划
       },
     }) 

+ 5 - 2
src/components/DownProduction/index.vue

@@ -16,7 +16,6 @@
                       clearable
                       type="daterange"
                       split-panels
-                      :option='dateOption'
                       placeholder="请选择日期"></DatePicker>
         </FormItem>
       </Form>
@@ -42,13 +41,17 @@ export default {
       show: false,
       title: '下生产',
       planInfo: {},
-      dateOption:{},
       forms: {
         time: []
       },
       rules: {
         time: [{ required: true, message: '请选择时间', }]
       },
+      // options: {
+      //   disabledDate (date) {
+      //     return date && date.valueOf() < Date.now() - 86400000;
+      //   }
+      // }
     }
   },
   methods: {

+ 40 - 0
src/routerMap/index.js

@@ -1620,6 +1620,26 @@ const routerMap = [
       require(["@/views/leadMatch/roomList/edit"], resolve),
   },
   {
+    path: "/cms/leadMatch/Ironware/list",
+    name: "Ironware", //码单五金列表
+    meta: {
+      index: 3,
+      // keepAlive:true
+    },
+    component: (resolve) =>
+      require(["@/views/leadMatch/Ironware/list"], resolve),
+  },
+  {
+    path: "/cms/leadMatch/Ironware/edit",
+    name: "IronwareEdit", //码单五金列表编辑
+    meta: {
+      index: 3,
+      // keepAlive:true
+    },
+    component: (resolve) =>
+      require(["@/views/leadMatch/Ironware/edit"], resolve),
+  },
+  {
     path: "/cms/leadMatch/weightMemo/list",
     name: "WeightMemo", //码单列表
     meta: {
@@ -1780,6 +1800,26 @@ const routerMap = [
       require(["@/views/BidSystem/WorkDistribution"], resolve),
   },
   {
+    path: "/cms/BidSystem/TotalPlanTimeChange/list",
+    name: "TotalPlanTimeChangeList", //报表中心-->总计划时间变更记录列表
+    meta: {
+      index: 3,
+      // keepAlive: true,
+    },
+    component: (resolve) =>
+      require(["@/views/BidSystem/TotalPlanTimeChange/list"], resolve),
+  },
+  {
+    path: "/cms/BidSystem/TotalPlanTimeChange/edit",
+    name: "TotalPlanTimeChangeEdit", //业务报表-->总计划时间变更记录-->详情
+    meta: {
+      index: 3,
+      // keepAlive: true,
+    },
+    component: (resolve) =>
+      require(["@/views/BidSystem/TotalPlanTimeChange/edit"], resolve),
+  },
+  {
     path: "/cms/BidSystem/QuotaRequisition",
     name: "QuotaRequisition", //业务报表-->定额领料单
     meta: {

+ 37 - 10
src/views/BasicSettings/MaterialCalculationFormula.vue

@@ -22,7 +22,7 @@
                 <Button type='primary'  style="margin-right:10px" @click="total_add">批量修改公式</Button>
                  <Button type="primary"  style="margin-right:10px" @click="delTotal">批量删除</Button>
         </div>
-        <Table :data='tableData' :columns='tableColumns' border max-height='550' @on-selection-change='select'>
+        <Table :data='tableData' :columns='tableColumns' border max-height='550' @on-selection-change='select' :loading='loading'>
              <template slot="set" slot-scope="{row}">
                  <a style="margin-right:10px" @click="copy(row)">复制</a>
                  <a style="margin-right:10px" @click="edit(row)">编辑</a>
@@ -55,12 +55,12 @@
                 </Select>
             </FormItem>
                   <FormItem label='物料名称:' style="margin:0 auto;width:80%">
-                <Select filterable clearable v-model="formData.material_id" :disabled='!formData.material_type_id' style="width:60%">
+                <Select filterable :multiple='type!=2' :clearable='type==2' v-model="formData.material_id" :disabled='!formData.material_type_id' style="width:60%">
                      <Option v-for="(item,index) in modal_materialList" :key="index" :value="item.id" :label="item.title"></Option>
                 </Select>
             </FormItem>
                    <FormItem label='设置公式:' style="margin:0 auto;width:80%">
-                        <Input @on-focus='showFormula' style="width:60%" placeholder="点击打开计算器" v-model="formData.formula"/>
+                        <Input @on-focus='showFormula' style="width:60%" placeholder="点击打开计算器" v-model="formData.formula" :disabled='!formData.material_id'/>
                    </FormItem>
                </Form>
            </div>
@@ -97,6 +97,8 @@ export default {
     components:{KeyBoard},
     data(){
         return{
+            num:0,
+            loading:true,
             type:'',
             selectData:[],
             totalFormula:false,
@@ -114,7 +116,7 @@ export default {
             formData:{
                 id:null,
               material_type_id:'',
-              material_id:'',
+              material_id:[],
               formula:''
             },
             material_typeList:[],
@@ -123,7 +125,13 @@ export default {
             tableData:[],
             tableColumns:[
                 {type:'selection',align:'center',minWidth:60},
-                {title:'ID',align:'center',minWidth:80,key:'id'},
+                {title:'ID',align:'center',minWidth:80,key:'id',render:(h,params)=>{
+                    const {index} = params;
+                  
+                         const text = 1+index+this.pageSize*(this.pageIndex-1)
+                           return h('span',{},text)  
+          
+                }},
                  {title:'物料分类',align:'center',minWidth:120,key:'type_title'},
                  {title:'物料名称',align:'center',minWidth:120,key:'material_title'},
                   {title:'设置公式',align:'center',minWidth:120,key:'formula'},
@@ -169,12 +177,15 @@ this.initData();
                })
                id = id.toString();
                     this.confirmDelete({
-                   title:'删除批量确认?',
+                   title:'批量删除确认?',
                    content:"是否确定批量删除?",
                    then: ()=>{
 this.axios.get('/api/material_formula_del',{params:{id}}).then(res=>{
             if(res.code == 200){
                 this.$Message.success(res.msg);
+                if((this.tableData.length-this.selectData.length)==0&&this.pageIndex!=1){
+                    this.pageIndex--;
+                }
                 this.initData(this.proxyData)
             }
         })
@@ -213,6 +224,9 @@ this.axios.get('/api/material_formula_del',{params:{id}}).then(res=>{
 this.axios.get('/api/material_formula_del',{params:{id:row.id}}).then(res=>{
             if(res.code == 200){
                 this.$Message.success(res.msg);
+                if(this.tableData.length==1&&this.pageIndex!=1){
+                    this.pageIndex--;
+                }
                 this.initData(this.proxyData)
             }
         })
@@ -227,13 +241,18 @@ this.axios.get('/api/material_formula_del',{params:{id:row.id}}).then(res=>{
                  if(!this.formData.formula){
                      return this.$$Message.warning('请先输入公式!')
                  }
+                 if(this.num != 0){
+                        return
+                 }
+                 this.num++;
                  switch(this.type){
                      case 1: 
-                       this.axios.get('/api/material_formula_add',{params:{formula:this.formData.formula,material_id:this.formData.material_id}}).then(res=>{
+                       this.axios.post('/api/material_formula_add',{formula:this.formData.formula,material_id:this.formData.material_id}).then(res=>{
                if(res.code == 200){
                 this.$Message.success(res.msg);
-                this.initData();
                 this.show_add = false;
+                    this.initData();
+                
                }
            })
                  break;
@@ -247,11 +266,13 @@ this.axios.get('/api/material_formula_del',{params:{id:row.id}}).then(res=>{
            })
                      break;
                 case 3:
-                      this.axios.get('/api/material_formula_add',{params:{formula:this.formData.formula,material_id:this.formData.material_id}}).then(res=>{
+                      this.axios.post('/api/material_formula_add',{formula:this.formData.formula,material_id:this.formData.material_id}).then(res=>{
                if(res.code == 200){
                 this.$Message.success(res.msg);
-                this.initData();
                 this.show_add = false;
+
+                this.initData();
+                
                }
            })
                     break;
@@ -297,10 +318,16 @@ this.axios.get('/api/material_formula_del',{params:{id:row.id}}).then(res=>{
         },
         initData(row){
             this.proxyData = row;
+            this.loading = true;
+           
+               
               this.axios.get('/api/material_formula_list',{params:{page_size:this.pageSize,page_index:this.pageIndex,...row}}).then(res=>{
                   this.tableData = res.data.data;
                   this.total = res.data.total; 
+                  this.loading = false;
+                    this.num =0;
               })
+            
         },
         changePage(e){
             this.pageIndex = e;

+ 6 - 3
src/views/BasicSettings/rootManage.vue

@@ -84,7 +84,7 @@
       <div>
         <span>工序:</span>
         
-          <Select style="width:50%" v-model="currencyRow.produce_ids" filterable v-if="modal_title !== '查看'">
+          <Select style="width:50%" v-model="currencyRow.produce_ids" filterable clearable v-if="modal_title !== '查看'">
               <Option v-for="(item,index) in process_list" :key="index" :label="item.title" :value="item.id">
               </Option>
           </Select>
@@ -146,6 +146,7 @@ export default {
       addState: 0,
       currencyRow: {
         id:'',
+        sub_id:'',
         produce_ids :[],
         employee_ids:[]
       },
@@ -243,7 +244,7 @@ export default {
             this.modal_title = '编辑';
            console.log(row)
            this.currencyRow.id = row.id;
-           this.currencyRow.sub_id =row.sub_id;
+           this.currencyRow.sub_id =Number(row.sub_id);
            this.currencyRow.produce_ids = row.json.produce_ids;
             this.currencyRow.employee_ids = row.json.employee_ids;
              this.showModal = true;
@@ -254,11 +255,13 @@ export default {
       this.showModal = true
     },
     handleColorConfirm () {
+      let obj = JSON.parse(JSON.stringify(this.currencyRow));
+      obj.produce_ids = [obj.produce_ids];
       this.axios({
         method: 'post',
         url: '/api/ext_user_permission_edit',
         data: {
-          ...this.currencyRow
+          ...obj
         }
       }).then((res) => {
         if(res.code == 200){

+ 106 - 9
src/views/BidSystem/ContractList/BSTList.vue

@@ -10,15 +10,18 @@
       </slot>
     </Toptitle>
     <div style="height:84%;overflow:auto">
-      <Form style="display:flex;flex-wrap:wrap;margin:10px 0" :label-width="80">
-        <FormItem label='项目编码:'>
-          <Input size="small" clearable v-model="searchData.order_no"></Input>
+      <Form style="display:flex;flex-wrap:wrap;margin:10px 0" :label-width="120">
+        <FormItem label='甲方项目编码:' style="width:280px">
+          <Input size="small" clearable v-model="searchData.another_title" placeholder="请输入甲方项目编码"></Input>
         </FormItem>
-       <FormItem label="项目名称:">
-         <Input size="small" clearable v-model="searchData.residential_name"></Input>
+        <FormItem label='项目编码:' style="width:280px">
+          <Input size="small" clearable v-model="searchData.order_no" placeholder="请输入项目编码"></Input>
+        </FormItem>
+       <FormItem label="项目名称:" style="width:280px">
+         <Input size="small" clearable v-model="searchData.residential_name" placeholder="请输入项目名称"></Input>
        </FormItem>
-        <FormItem label="项目简称:">
-          <Input size="small" clearable v-model="searchData.abbreviation"></Input>
+        <FormItem label="项目简称:" style="width:280px">
+          <Input size="small" clearable v-model="searchData.abbreviation" placeholder="请输入项目简称"></Input>
         </FormItem>
          <FormItem label="制单日期:">
            <DatePicker type="date" placeholder="年/月/日" style="width: 130px" size='small' v-model="searchData.start_time"></DatePicker>
@@ -38,6 +41,7 @@
         :data='tableData'
     :columns='tableColumns'
     border
+    :loading='loading'
       >
       <template slot="crt_time" slot-scope="{row}">
         <span>{{func.replaceDate(row.crt_time)}}</span>
@@ -45,7 +49,7 @@
         <template slot="set" slot-scope="{row}"> 
           <a @click="goPageDetail(row,1)" style="margin-right:10px">编辑</a>
           <a @click="goPageDetail(row,2)" style="margin-right:10px">详情</a>
-          <a @click="goPageDetail(row,3)">图号导入</a>
+          <a @click="goPageDetail(row,3)">下计划</a>
         </template>
         </Table>
     </div>
@@ -59,6 +63,21 @@
                 show-sizer
                 :page-size='pageSize' />
         </div>
+          <Modal title="下计划" width='600' v-model="showModal" @on-ok='postPlanData'>
+       
+        <Form style="margin-top:20px">
+            <FormItem label='码单时间:' style="width:100%;">
+                <DatePicker type='date' v-model="plan_weight_data.start_time" placeholder='年/月/日' style="width:30%"/>
+                ~
+                <DatePicker type="date" v-model="plan_weight_data.end_time" placeholder='年/月/日' style="width:30%" />
+            </FormItem>
+            <FormItem :label='`${item.title}时间:`' style="width:100%;" v-for="item in planData" :key="item.id"><DatePicker type="date" placeholder='年/月/日' v-model="item.start_time" style="width:30%"/>
+            ~
+            <DatePicker type="date" v-model="item.end_time" placeholder='年/月/日' style="width:30%"/></FormItem>
+            <!-- <FormItem label='结束时间:' style="width:100%"><DatePicker type="date" placeholder='年/月/日' style="width:30%"/>~<DatePicker type="date" placeholder='年/月/日' style="width:30%"/></FormItem> -->
+        </Form>
+        
+    </Modal>
   </div>
 </template>
 
@@ -70,10 +89,16 @@ export default {
   data() {
     // 这里存放数据
     return {
+      loading:true,
+      order_no:'',
+      showModal:false,
+      plan_weight_data:[],
+      planData:[],
       pageSize:10,
       pageIndex:1,
       total:0,
          searchData:{
+           another_title:'',
            order_no:'',
            residential_name:'',
            abbreviation:'',
@@ -81,6 +106,7 @@ export default {
          end_time:''},
          tableData:[],
         tableColumns:[
+           {title:'甲方项目编码',align:'center',key:'another_title',minWidth:80},
           {title:'项目编码',align:'center',key:'order_no',minWidth:80},
            {title:'项目名称',align:'center',key:'residential_name',minWidth:80},
             {title:'项目简称',align:'center',key:'abbreviation',minWidth:80},
@@ -106,6 +132,70 @@ export default {
     this.getData();
   },
  methods:{
+    postPlanData(){
+            let time = JSON.parse(JSON.stringify(this.planData));
+            let weight_time = JSON.parse(JSON.stringify(this.plan_weight_data));
+            time.forEach(v=>{
+                v.start_time = v.start_time?Date.parse(v.start_time).toString().slice(0,10):'';
+            v.end_time = v.end_time?Date.parse(v.end_time).toString().slice(0,10):'';
+            })
+            weight_time.start_time = weight_time.start_time?Date.parse(weight_time.start_time).toString().slice(0,10):'';
+            weight_time.end_time = weight_time.end_time?Date.parse(weight_time.end_time).toString().slice(0,10):'';
+            weight_time.basic_procedure_id = -1;
+            weight_time.type=-1;
+            time.push(weight_time);
+            let obj = {};
+            obj.order_no =this.order_no;
+            obj.procedure_list = time;
+            //  obj.pic_number = [];
+            // this.selectData.forEach(v=>{
+            //          obj.pic_number.push(v.id)
+            // })
+           
+
+          this.axios.post('/api/bst_order_pic_number_detail_edit',obj).then(res=>{
+                     if(res.code==200){
+                         this.initData();
+                     }
+          })
+        },
+      getPlanData(row){
+            //  if(this.selectData.length==0){
+            //      return this.$Message.warning('请先选择图号!')
+            //  }
+          this.order_no = row.order_no;
+             this.axios.get('/api/basics_procedure_index').then(res=>{
+              this.planData = res.data.data;
+              this.planData.forEach(v=>{
+                  v.basic_procedure_id = v.id
+                  v.start_time='';
+                  v.end_time='';
+              })
+              this.axios.get('/api/bst_order_pic_number_list',{params:{order_no:row.order_no,page_size:1,page_index:1}}).then(resp=>{
+                  this.planData.forEach(v=>{
+                     resp.data.plan.forEach(m=>{
+                         if(v.basic_procedure_id==m.basic_procedure_id){
+                             v.start_time = m.start_time==0?'':new Date(m.start_time*1000);
+                             v.end_time = m.end_time==0?'':new Date(m.end_time*1000);
+                         }
+                     })
+                  })
+                  let arr;
+                resp.data.plan.forEach(v=>{
+           if(v.basic_procedure_id==-1){
+               arr =v;
+           }
+                })
+                if(arr){
+                    arr.start_time = arr.start_time==0?'':new Date(arr.start_time*1000);
+                    arr.end_time = arr.end_time==0?'':new Date(arr.end_time*1000);
+                    this.plan_weight_data = arr
+                }
+                  this.showModal=true
+              })
+              
+             })
+        },
     goDetailPage(){
            this.$router.push({path:'/cms/BidSystem/ContractList/detailReport'})
         },
@@ -114,14 +204,19 @@ export default {
       data=JSON.parse(JSON.stringify(this.searchData));
       data.start_time = data.start_time?Date.parse(data.start_time).toString().slice(0,10):'';
       data.end_time = data.end_time?Date.parse(data.end_time).toString().slice(0,10):'';
+      this.pageIndex = 1;
       this.getData(data)
    },
    goPageDetail(row,type){
      switch(type){
        case 1:
+         this.$router.push({path:'/cms/BidSystem/ContractList/urlLeading',query:{order_no:row.order_no,type}})
+         break;
          case 2:this.$router.push({path:'/cms/BidSystem/ContractList/edit',query:{order_no:row.order_no,type}})
          break;
-         case 3:this.$router.push({path:'/cms/BidSystem/ContractList/urlLeading',query:{order_no:row.order_no,type}})
+         case 3:
+          //  this.$router.push({path:'/cms/BidSystem/ContractList/urlLeading',query:{order_no:row.order_no,type}})
+        this.getPlanData(row);
          break;
      }
          
@@ -135,9 +230,11 @@ export default {
       this.getData();
    },
    getData(row){
+     this.loading = true;
      this.axios.get('/api/frock_list',{params:{...row,page_size:this.pageSize,page_index:this.pageIndex}}).then(res=>{
           this.tableData = res.data.data;
           this.total = res.data.total;
+          this.loading = false;
      })
    }
  },

+ 11 - 2
src/views/BidSystem/ContractList/edit.vue

@@ -46,7 +46,7 @@
       </Form>
       <Table
         :data='tableData'
-    :columns='tableColumns'
+    :columns='this.$route.query.type==1?tableColumns_edit:tableColumns_detail'
     border>
     <template slot="contract_price" slot-scope="{row}">
       <Input v-model="row.contract_price" type="number" @on-blur='InputBlur(row)' v-if="$route.query.type==1"/>
@@ -87,13 +87,22 @@ export default {
          pageSize:10,
          pageIndex:1,
          tableData:[],
-         tableColumns:[
+         tableColumns_detail:[
+           {title:'序号',type:'index',align:'center'},
            {title:'图号',align:'center',key:'url_number'},
             {title:'产品名称',align:'center',key:'title'},
              {title:'平方数',align:'center',key:'area'},
               {title:'合同金额',align:'center',key:'contract_price',slot:'contract_price'},
                {title:'核量金额',align:'center',key:'quantity_price',slot:'quantity_price'},
          ],
+         tableColumns_edit:[
+            {title:'序号',type:'index',align:'center'},
+  {title:'图号',align:'center',key:'url_number'},
+            {title:'产品名称',align:'center',key:'title'},
+             {title:'平方数',align:'center',key:'area'},
+              {title:'合同金额',align:'center',key:'contract_price',slot:'contract_price'},
+               {title:'核量金额',align:'center',key:'quantity_price',slot:'quantity_price'},
+         ],
          total:0,
          chooseData:[],
    }

+ 102 - 78
src/views/BidSystem/ContractList/urlLeading.vue

@@ -1,28 +1,30 @@
 <template>
     <div>
-     <Toptitle title="图纸导入">
-         <Button type="primary" ghost style="margin-right:10px" @click="getPlanData">下计划</Button>
-          <Button type="primary" ghost style="margin-right:10px" @click="showURL= true">补图号</Button>
-           <Button type="primary" ghost style="margin-right:10px" @click="delURL">批量删除</Button>
-             <Button type="primary" ghost style="margin-right:10px" @click="postData">保存</Button>
+     <Toptitle title="编辑">
+         <Button type="primary" @click="searchURL(url_number)" style="margin-right:10px">导入</Button>
+         <!-- <Button type="primary" style="margin-right:10px" @click="getPlanData">下计划</Button> -->
+          <Button type="primary" style="margin-right:10px" @click="showURL= true">补图号</Button>
+           <Button type="primary" style="margin-right:10px" @click="delURL">批量删除</Button>
+            <Button type="primary" @click="back()" style="margin-right:10px">返回</Button>
+             <Button type="primary"  @click="postData">保存</Button>
          <!-- <Button type="primary" ghost style="margin-right:10px" @click="goDetailPage">统计报表</Button> -->
-         <Button type="primary" @click="back()">返回</Button>
+        
      </Toptitle>
      <div style="height:80%;overflow:auto">
      <Form style="display:flex;margin-top:15px">
+         <FormItem label='甲方项目编号:' style="width:420px;display:flex;">
+             <Input placeholder="请填写" v-model="another_title" clearable/>
+         </FormItem>
          <FormItem label='图号:' style="width:420px;display:flex;" :label-width='50'>
              <Input style="width:150px;margin-left:-30px" v-model="url_number.start_number" clearable/>
              ~
              <Input style="width:150px" v-model="url_number.end_number" clearable/>
          </FormItem>
-         <FormItem>
-             <Button type="primary" @click="searchURL(url_number)">导入</Button>
-         </FormItem>
      </Form>
-     <div class="total">
+     <!-- <div class="total">
          <span>核量总金额:{{total_quantity_price}}</span>
          <span style="margin-right:25px">合同总金额:{{total_contract_price}}</span>
-     </div>
+     </div> -->
      <Table :data='tableData' :columns='tableColumns' border max-height='550'
      @on-selection-change='tableSelect'
      >
@@ -38,7 +40,7 @@
                 show-sizer
                 :page-size='pageSize' />
         </div>
-    <Modal title="下计划" width='600' v-model="showModal" @on-ok='postPlanData'>
+    <!-- <Modal title="下计划" width='600' v-model="showModal" @on-ok='postPlanData'>
        
         <Form style="margin-top:20px">
             <FormItem label='码单时间:' style="width:100%;">
@@ -48,11 +50,11 @@
             </FormItem>
             <FormItem :label='`${item.title}时间:`' style="width:100%;" v-for="item in planData" :key="item.id"><DatePicker type="date" placeholder='年/月/日' v-model="item.start_time" style="width:30%"/>
             ~
-            <DatePicker type="date" v-model="item.end_time" placeholder='年/月/日' style="width:30%"/></FormItem>
+            <DatePicker type="date" v-model="item.end_time" placeholder='年/月/日' style="width:30%"/></FormItem> -->
             <!-- <FormItem label='结束时间:' style="width:100%"><DatePicker type="date" placeholder='年/月/日' style="width:30%"/>~<DatePicker type="date" placeholder='年/月/日' style="width:30%"/></FormItem> -->
-        </Form>
+        <!-- </Form>
         
-    </Modal>
+    </Modal> -->
       <Modal title="补图号" width='400' v-model="showURL" @on-ok='handleMendUrl'>
        
         <Form style="margin-top:20px">
@@ -66,6 +68,7 @@
 export default {
     data(){
         return {
+            another_title:'',
             plan_weight_data:{
                   start_time:'',
                   end_time:'',
@@ -76,7 +79,7 @@ export default {
             selectData:[],
             mend_url_number:'',
             showURL:false,
-            showModal:false,
+            // showModal:false,
             url_number:{
                start_number:'',
                end_number:''
@@ -87,8 +90,10 @@ export default {
            tableData:[],
            tableColumns:[
                {type:'selection',align:'center',minWidth:50},
-                {title:'序号',align:'center',minWidth:80,key:'id'},
+                {title:'序号',align:'center',minWidth:80,type:'index'},
                {title:'图号',align:'center',minWidth:80,key:'pic_number'},
+                {title:'产品名称',align:'center',minWidth:80,key:'title'},
+                 {title:'平方数',align:'center',minWidth:80,key:'area'},
                {title:'合同金额',align:'center',minWidth:90,key:'contract_price',render:(h,params)=>{
                    const {row,index} = params;
                    const currentRow = this.tableData[index];
@@ -104,6 +109,23 @@ export default {
                          currentRow.quantity_price = e.target.value;
                          this.tableData.splice(index,1,currentRow);
                    }}})
+               }},
+               {title:'操作',key:'slot',align:'center',minWidth:80,render:(h,params)=>{
+                   const {row} = params;
+                   return h('a',{on:{'click':()=>{
+                       let id = [row.id];
+                            this.confirmDelete({
+                content:'是否确定删除所选图号?',
+                then:()=>{
+                       this.axios.post('/api/bst_order_pic_number_del',{id}).then(res=>{
+                  if(res.code == 200){
+                 this.$Message.success(res.msg)
+                 this.initData();
+             }
+          })
+                }
+            })
+                   }}},'删除')
                }}
            ]
         }
@@ -132,74 +154,74 @@ export default {
                 }
             })
         },
-        getPlanData(){
-            //  if(this.selectData.length==0){
-            //      return this.$Message.warning('请先选择图号!')
-            //  }
-             this.axios.get('/api/basics_procedure_index').then(res=>{
-              this.planData = res.data.data;
-              this.planData.forEach(v=>{
-                  v.basic_procedure_id = v.id
-                  v.start_time='';
-                  v.end_time='';
-              })
-              this.axios.get('/api/bst_order_pic_number_list',{params:{order_no:this.$route.query.order_no,page_size:1,page_index:1}}).then(resp=>{
-                  this.planData.forEach(v=>{
-                     resp.data.plan.forEach(m=>{
-                         if(v.basic_procedure_id==m.basic_procedure_id){
-                             v.start_time = m.start_time==0?'':new Date(m.start_time*1000);
-                             v.end_time = m.end_time==0?'':new Date(m.end_time*1000);
-                         }
-                     })
-                  })
-                  let arr;
-                resp.data.plan.forEach(v=>{
-           if(v.basic_procedure_id==-1){
-               arr =v;
-           }
-                })
-                if(arr){
-                    arr.start_time = arr.start_time==0?'':new Date(arr.start_time*1000);
-                    arr.end_time = arr.end_time==0?'':new Date(arr.end_time*1000);
-                    this.plan_weight_data = arr
-                }
-                  this.showModal=true
-              })
+        // getPlanData(){
+        //     //  if(this.selectData.length==0){
+        //     //      return this.$Message.warning('请先选择图号!')
+        //     //  }
+        //      this.axios.get('/api/basics_procedure_index').then(res=>{
+        //       this.planData = res.data.data;
+        //       this.planData.forEach(v=>{
+        //           v.basic_procedure_id = v.id
+        //           v.start_time='';
+        //           v.end_time='';
+        //       })
+        //       this.axios.get('/api/bst_order_pic_number_list',{params:{order_no:this.$route.query.order_no,page_size:1,page_index:1}}).then(resp=>{
+        //           this.planData.forEach(v=>{
+        //              resp.data.plan.forEach(m=>{
+        //                  if(v.basic_procedure_id==m.basic_procedure_id){
+        //                      v.start_time = m.start_time==0?'':new Date(m.start_time*1000);
+        //                      v.end_time = m.end_time==0?'':new Date(m.end_time*1000);
+        //                  }
+        //              })
+        //           })
+        //           let arr;
+        //         resp.data.plan.forEach(v=>{
+        //    if(v.basic_procedure_id==-1){
+        //        arr =v;
+        //    }
+        //         })
+        //         if(arr){
+        //             arr.start_time = arr.start_time==0?'':new Date(arr.start_time*1000);
+        //             arr.end_time = arr.end_time==0?'':new Date(arr.end_time*1000);
+        //             this.plan_weight_data = arr
+        //         }
+        //           this.showModal=true
+        //       })
               
-             })
-        },
-        postPlanData(){
-            let time = JSON.parse(JSON.stringify(this.planData));
-            let weight_time = JSON.parse(JSON.stringify(this.plan_weight_data));
-            time.forEach(v=>{
-                v.start_time = v.start_time?Date.parse(v.start_time).toString().slice(0,10):'';
-            v.end_time = v.end_time?Date.parse(v.end_time).toString().slice(0,10):'';
-            })
-            weight_time.start_time = weight_time.start_time?Date.parse(weight_time.start_time).toString().slice(0,10):'';
-            weight_time.end_time = weight_time.end_time?Date.parse(weight_time.end_time).toString().slice(0,10):'';
-            weight_time.basic_procedure_id = -1;
-            weight_time.type=-1;
-            time.push(weight_time);
-            let obj = {};
-            obj.order_no = this.$route.query.order_no;
-            obj.procedure_list = time;
-            //  obj.pic_number = [];
-            // this.selectData.forEach(v=>{
-            //          obj.pic_number.push(v.id)
-            // })
+        //      })
+        // },
+        // postPlanData(){
+        //     let time = JSON.parse(JSON.stringify(this.planData));
+        //     let weight_time = JSON.parse(JSON.stringify(this.plan_weight_data));
+        //     time.forEach(v=>{
+        //         v.start_time = v.start_time?Date.parse(v.start_time).toString().slice(0,10):'';
+        //     v.end_time = v.end_time?Date.parse(v.end_time).toString().slice(0,10):'';
+        //     })
+        //     weight_time.start_time = weight_time.start_time?Date.parse(weight_time.start_time).toString().slice(0,10):'';
+        //     weight_time.end_time = weight_time.end_time?Date.parse(weight_time.end_time).toString().slice(0,10):'';
+        //     weight_time.basic_procedure_id = -1;
+        //     weight_time.type=-1;
+        //     time.push(weight_time);
+        //     let obj = {};
+        //     obj.order_no = this.$route.query.order_no;
+        //     obj.procedure_list = time;
+        //     //  obj.pic_number = [];
+        //     // this.selectData.forEach(v=>{
+        //     //          obj.pic_number.push(v.id)
+        //     // })
            
 
-          this.axios.post('/api/bst_order_pic_number_detail_edit',obj).then(res=>{
-                     if(res.code==200){
-                         this.initData();
-                     }
-          })
-        },
+        //   this.axios.post('/api/bst_order_pic_number_detail_edit',obj).then(res=>{
+        //              if(res.code==200){
+        //                  this.initData();
+        //              }
+        //   })
+        // },
         tableSelect(e){
         this.selectData = e;
         },
         postData(){
-           this.axios.post('/api/bst_order_pic_number_price_edit',{order_no:this.$route.query.order_no,procedure_list:[...this.tableData]}).then(res=>{
+           this.axios.post('/api/bst_order_pic_number_price_edit',{another_title:this.another_title,order_no:this.$route.query.order_no,procedure_list:[...this.tableData]}).then(res=>{
                 if(res.code == 200){
                     this.initData();
                 }
@@ -215,6 +237,7 @@ export default {
                 this.tableData = res.data.data;
                 this.total_contract_price = (res.data.total_contract_price*1).toFixed(2);
                 this.total_quantity_price = (res.data.total_quantity_price*1).toFixed(2);
+                this.another_title = res.data.another_title||'';
                 this.total = res.data.total;
            })
         },
@@ -226,6 +249,7 @@ export default {
         },
         searchURL(row){
             let obj = {};
+            obj.another_title = this.another_title;
             obj.order_no = this.$route.query.order_no;
             obj.pic_number = {
                 start_pic_number :row.start_number?row.start_number:'',

+ 1 - 1
src/views/BidSystem/DeepeningOrder/change.vue

@@ -112,7 +112,7 @@
             <FormItem label="订单号:">
               {{ formData.order_no }}
             </FormItem>
-            <FormItem label="小区名称:">
+            <FormItem label="项目名称:">
               {{ formData.residential_name }}
             </FormItem>
             <FormItem label="客户姓名:">

+ 1 - 1
src/views/BidSystem/DeepeningOrder/changeRecord.vue

@@ -93,7 +93,7 @@ export default {
           logList(){
               return [
                 { key: "订单号", value: this.log_List.order_no },
-                { key: "小区名称", value: this.log_List.residential_name },
+                { key: "项目名称", value: this.log_List.residential_name },
                 { key: "客户姓名", value:this.log_List.client_name },
                 { key: "紧急程度", value: this.log_List.warning_name },
                 { key: "收款", value: this.log_List.pay_state==0?'未收款':'已收款' },

+ 1 - 1
src/views/BidSystem/DeepeningOrder/deepDetail.vue

@@ -786,7 +786,7 @@ export default {
       url_number: [],
       product_title: [],
       product_type: [],
-    fashion: [{label:'左',value:1},{label:'右式',value:2},{label:'无',value:0}],
+    fashion: [{label:'左',value:1},{label:'右式',value:2},{label:'无',value:0}],
       material: [],
       color: [],
       work: [],

+ 3 - 3
src/views/BidSystem/DeepeningOrder/list.vue

@@ -181,7 +181,7 @@ export default {
         },
         { title: "订单号", align: "center", key: "order_no", minWidth: 150 },
         {
-          title: "小区名称",
+          title: "项目名称",
           align: "center",
           key: "residential_name",
           minWidth: 120,
@@ -487,11 +487,11 @@ export default {
           placeholder: "请输入订单号",
         },
         {
-          title: "小区名称",
+          title: "项目名称",
           serverName: "order_no",
           name: "Input",
           value: "",
-          placeholder: "请输入订单号",
+          placeholder: "请输入项目名称",
         },
         {
           title: "客户",

+ 2 - 2
src/views/BidSystem/ProductDeOrder/list.vue

@@ -36,13 +36,13 @@
           style="margin-right: 10px"
           >导出</Button
         > 
-        <Button
+        <!-- <Button
           @click="gopage()"
           type="primary"
           ghost
           style="margin-right: 10px"
           >新增</Button
-        >
+        > -->
       </div>
       <!-- <div slot='navButton'
            style="display:flex;">

+ 12 - 6
src/views/BidSystem/QuotaRequisition.vue

@@ -3,19 +3,19 @@
          <Toptitle title="定额领料单"></Toptitle>
          <div style="height:85%;overflow:auto">
          <Form :label-width='80' style="display:flex;margin-top:15px">
-             <FormItem label='项目编码'>
+             <FormItem label='项目编码' style="width:300px">
                  <Select v-model="searchData.order_no" filterable multiple>
-                     <Option/>
+                     <Option v-for="(item,index) in order" :key="index" :value="item" :label="item"/>
                  </Select>
              </FormItem>
-             <FormItem label='项目名称'>
+             <FormItem label='项目名称' style="width:300px">
                  <Select v-model="searchData.residential_name" filterable multiple>
-                     <Option/>
+               <Option v-for="(item,index) in residential_name" :key="index" :value="item" :label="item"/>
                  </Select>
              </FormItem>
-             <FormItem label='项目简称'>
+             <FormItem label='项目简称' style="width:300px">
                  <Select v-model="searchData.abbreviation" filterable multiple>
-                     <Option/>
+                      <Option v-for="(item,index) in abbreviation" :key="index" :value="item" :label="item"/>
                  </Select>
              </FormItem>
              <FormItem>
@@ -44,6 +44,9 @@
 export default {
     data(){
         return{
+            abbreviation:[],
+            order:[],
+            residential_name:[],
             proxyData:{},
             pageSize:10,
             pageIndex:1,
@@ -83,6 +86,9 @@ export default {
               this.axios.post('/api/finance_quota_list',{page_index:this.pageIndex,page_size:this.pageSize,...row}).then(res=>{
                   this.tableData = res.data.data;
                   this.total = res.data.total;
+                  this.abbreviation = res.data.abbreviation;
+                  this.order = res.data.order;
+                  this.residential_name = res.data.residential_name;
               })
         }
     }

+ 95 - 0
src/views/BidSystem/TotalPlanTimeChange/edit.vue

@@ -0,0 +1,95 @@
+<template>
+    <div>
+        <Toptitle title="详情"></Toptitle>
+        <div style="height:85%;overflow:auto">
+        <Form :label-width='80' style="margin-top:15px;display:flex;flex-wrap:wrap">
+            <FormItem label='变更时间:' >
+             <DatePicker type="date" placeholder="年/月" style="width: 200px" v-model="searchData.start_time"></DatePicker>~
+             <DatePicker type="date" placeholder="年/月" style="width: 200px" v-model="searchData.end_time"></DatePicker>
+            </FormItem>
+            <FormItem>
+                <Button type="primary" @click="initData()">搜索</Button>
+            </FormItem>
+        </Form>
+        <Table :data='tableData' :columns='tableColumns' border max-height='550'>
+
+        </Table>
+        </div>
+          <div style='text-align:center'>
+          <Page :page-size-opts="[10, 20, 30, 40,100,1000]"
+                @on-page-size-change='changeSize'
+                @on-change='changePage'
+                :current='pageIndex'
+                show-total
+                :total="total"
+                show-sizer
+                :page-size='pageSize' />
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data(){
+          return{
+              searchData:{
+                  start_time:'',
+                  end_time:''
+              },
+              tableData:[],
+              pageSize:10,
+              pageIndex:1,
+              total:0,
+              tableColumns:[],
+              tableTitle:[],
+          }
+    },
+    created(){
+         this.axios.get('/api/basics_procedure_index').then(res=>{
+             this.tableTitle = res.data.data
+        res.data.data.forEach(v => {
+            this.tableTitle = res.data.data
+            let obj = {};
+            obj.title = `${v.title}时间`;
+            obj.minWidth = 200;
+            obj.align ='center';
+            obj.key = `${v.id}time`
+            this.tableColumns.push(obj);
+        });
+        this.tableColumns.unshift({title:'码单时间',minWidth:200,key:'-1time',align:'center'});
+        this.tableColumns.push({title:'变更时间',minWidth:180,key:'crt_time',align:'center'})
+      })
+    },
+    mounted(){
+        this.initData();
+    },
+    methods:{
+        initData(){
+            this.tableData = [];
+            let arr = JSON.parse(JSON.stringify(this.searchData));
+             arr.start_time = arr.start_time?Date.parse(arr.start_time).toString().slice(0,10):'';
+             arr.end_time = arr.end_time?Date.parse(arr.end_time).toString().slice(0,10):'';
+            
+               this.axios.post('/api/plan_detail',{order_no:this.$route.query.order_no,...arr}).then(res=>{
+                   this.total = res.data.total
+                   res.data.list.forEach(v=>{
+                       let obj = {};
+                       obj.crt_time = this.func.replaceDate(v[0].crt_time);
+                       v.forEach(m=>{
+                           obj[`${m.basic_procedure_id}time`] = `${this.func.replaceDateNoHMS(m.start_time)}~${this.func.replaceDateNoHMS(m.end_time)}`
+                       })
+                      this.tableData.push(obj)
+                   })
+                          
+               })
+        },
+        changeSize(e){
+            this.pageSize = e;
+            this.pageIndex =1;
+        },
+        changePage(e){
+            this.pageIndex =e;
+
+        }
+    }
+}
+</script>

+ 77 - 0
src/views/BidSystem/TotalPlanTimeChange/list.vue

@@ -0,0 +1,77 @@
+<template>
+    <div>
+          <FullPage title='总计划时间变更记录'
+              :list='list'
+              @init='init'
+              :loading='loading'
+              @searchData='init'
+              @changePage='changePage'
+              @changeSize='changeSize'
+              :tableColums='tableColums'
+              :tableData='tableData'
+              :pageIndex='pageIndex'
+              :pageSize='pageSize'
+              :total='total'>
+      <template slot='set'
+                slot-scope='{row}'>
+        <div>
+          <a
+             @click="goPage(row)"
+             style="margin:0 5px">详情</a>
+        </div>
+      </template>
+    </FullPage>
+    </div>
+</template>
+<script>
+export default {
+    data(){
+        return{
+            list:[
+                {title:'项目编号',name:'Input',placeholder: '请输入项目编号', value: '', serverName: 'project_code'},
+                {title:'项目名称',name:'Input',placeholder: '请输入项目名称', value: '', serverName: 'project_title'},
+                {title:'项目简称',name:'Input',placeholder: '请输入项目简称', value: '', serverName: 'abbreviation'},
+                {title:'甲方项目编号',name:'Input',placeholder: '请输入甲方项目编号', value: '', serverName: 'another_title'},
+            ],
+            loading:true,
+           pageSize:10,
+           pageIndex:1,
+           total:0,
+           tableData:[],
+           tableColums:[
+               {title:'甲方项目编码',align:'center',minWidth:120,key:'another_title'},
+                  {title:'项目编码',align:'center',minWidth:120,key:'project_code'},
+                  {title:'项目名称',align:'center',minWidth:120,key:'project_title'},
+                  {title:'项目简称',align:'center',minWidth:120,key:'abbreviation'},
+                  {title:'操作',align:'center',minWidth:120,key:'set',slot:'set'},
+           ],
+           proxyData:{},
+        }
+    },
+    methods:{
+        init(row){
+            this.proxyData= row;
+            this.axios.post('/api/plan_list',{...row}).then(res=>{
+                 this.tableData = res.data.data;
+                 this.total = res.data.total;
+            })
+             this.loading = false;
+        },
+        goPage(row){
+        this.$router.push({path:'/cms/BidSystem/TotalPlanTimeChange/edit',query:{order_no:row.project_code}})
+        },
+        changeSize(e){
+        this.pageSize = e;
+        this.pageIndex = 1;
+        this.init(this.proxyData)
+        },
+        changePage(e){
+         this.pageIndex = e;
+        this.init(this.proxyData)
+        }
+    }
+}
+</script>
+<style lang="scss" scoped>
+
+</style>

+ 79 - 51
src/views/Dispatching/Dispatching.vue

@@ -20,7 +20,7 @@
     </Toptitle>
     <div class="main">
       <Form style='display:flex;margin:15px 0;flex-wrap:wrap' :label-width='100'>
-        <FormItem label='订单编号:' >
+        <FormItem label='订单编号:' class="red_star">
           <Select style="width:200px" v-model="searchData.order_no"  filterable @on-change='orderNoChange' clearable>
             <Option :value="item" :label="item" v-for="(item,index) in orderList" :key="index"></Option>
           </Select>
@@ -41,29 +41,24 @@
           </div>
           </Tooltip>
         </FormItem>
-        <FormItem label='区域:' >
-          <Select style="width:200px" v-model="searchData.residential_name"  filterable @on-change='residentialNameChange' clearable>
-            <Option :value="item" :label="item" v-for="(item,index) in projectList" :key="index"></Option>
-          </Select>
-        </FormItem>
-        <FormItem label='楼栋:' >
-          <Select style="width:200px" v-model="searchData.residential_name"  filterable @on-change='residentialNameChange' clearable>
-            <Option :value="item" :label="item" v-for="(item,index) in projectList" :key="index"></Option>
+          <FormItem label='楼栋:'>
+          <Select style="width:200px" v-model="searchData.url_number" multiple filterable :disabled='show' :max-tag-count='1' >
+            <Option :value="item" :label="item" v-for="(item,index) in houseList" :key="index"></Option>
           </Select>
         </FormItem>
-        <FormItem label='单元:' >
-          <Select style="width:200px" v-model="searchData.residential_name"  filterable @on-change='residentialNameChange' clearable>
-            <Option :value="item" :label="item" v-for="(item,index) in projectList" :key="index"></Option>
+        <FormItem label='单元:'>
+          <Select style="width:200px" v-model="searchData.url_number" multiple filterable :disabled='show' :max-tag-count='1' >
+            <Option :value="item" :label="item" v-for="(item,index) in unitList" :key="index"></Option>
           </Select>
         </FormItem>
-        <FormItem label='楼层:' >
-          <Select style="width:200px" v-model="searchData.residential_name"  filterable @on-change='residentialNameChange' clearable>
-            <Option :value="item" :label="item" v-for="(item,index) in projectList" :key="index"></Option>
+          <FormItem label='楼层:'>
+          <Select style="width:200px" v-model="searchData.url_number" multiple filterable :disabled='show' :max-tag-count='1' >
+            <Option :value="item" :label="item" v-for="(item,index) in layerList" :key="index"></Option>
           </Select>
         </FormItem>
-        <FormItem label='房间号:' >
-          <Select style="width:200px" v-model="searchData.residential_name"  filterable @on-change='residentialNameChange' clearable>
-            <Option :value="item" :label="item" v-for="(item,index) in projectList" :key="index"></Option>
+          <FormItem label='房间号:'>
+          <Select style="width:200px" v-model="searchData.url_number" multiple filterable :disabled='show' :max-tag-count='1' >
+            <Option :value="item" :label="item" v-for="(item,index) in numberList" :key="index"></Option>
           </Select>
         </FormItem>
         <FormItem>
@@ -227,10 +222,14 @@ export default {
   data() {
     // 这里存放数据
     return {
-      loading:false,
+      loading:true,
       show:true,
       orderList:[],
       urlNumberList:[],
+      houseList:[],
+      layerList:[],
+     numberList:[],
+     unitList:[],
       projectList:[],
       tableColumns: [
         { title: '全选', type: 'selection', align: 'center', minWidth: 60 },
@@ -244,11 +243,11 @@ export default {
           minWidth: 200,
           slot: "slotGroup",
         },
-         { title: "区域", align: "center", key: "num", minWidth: 150 },
-          { title: "楼栋", align: "center", key: "num", minWidth: 150 },
-           { title: "单元", align: "center", key: "num", minWidth: 150 },
-            { title: "楼层", align: "center", key: "num", minWidth: 150 },
-             { title: "房间号", align: "center", key: "num", minWidth: 150 },
+        //  { title: "区域", align: "center", key: "num", minWidth: 150 },
+        //   { title: "楼栋", align: "center", key: "num", minWidth: 150 },
+        //    { title: "单元", align: "center", key: "num", minWidth: 150 },
+        //     { title: "楼层", align: "center", key: "num", minWidth: 150 },
+        //      { title: "房间号", align: "center", key: "num", minWidth: 150 },
         {
           title: "操作",
           align: "center",
@@ -302,6 +301,7 @@ export default {
       subUrl: "",
       show_type:true,
       url_number_type:true,
+      copyData:[]
     };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
@@ -360,13 +360,17 @@ export default {
   },
   async residentialNameChange(val){
        await this.axios.get('/api/order_produce_order_no',{params:{residential_name:val}}).then(res=>{
-            this.searchData.order_no = res.data.order_no
+            this.searchData.order_no = res.data.order_no;
            })
            if(this.searchData.residential_name&&this.searchData.order_no){
 
               this.show = false;
               this.axios.get('/api/order_produce_url_number',{params:{...this.searchData,type_id:this.currencyTag}}).then(res=>{
-                this.urlNumberList = res.data;
+                this.urlNumberList = res.data.url_number;
+                this.houseList = res.date.house;
+                this.layerList  = res.data.layer;
+                this.unitList = res.data.unit;
+                this.numberList =res.data.number;
                 this.searchData.url_number = [];
                    this.wood_select=[]
                  this.paint_select=[]
@@ -383,13 +387,14 @@ export default {
          
     },
  async orderNoChange(val){
+   this.tableData = JSON.parse(JSON.stringify(this.copyData));
            await this.axios.get('/api/order_produce_order_no',{params:{order_no:val}}).then(res=>{
-            this.searchData.residential_name = res.data.residential_name
+            this.searchData.residential_name = res.data.residential_name;
            })
            if(this.searchData.residential_name&&this.searchData.order_no){
               this.show = false;
               this.axios.get('/api/order_produce_url_number',{params:{...this.searchData,type_id:this.currencyTag}}).then(res=>{
-                this.urlNumberList = res.data;
+                this.urlNumberList = res.data.url_number;
                 this.searchData.url_number = [];
                 this.wood_select=[]
                  this.paint_select=[]
@@ -516,6 +521,15 @@ export default {
           this.group = '';
           this.total = res.data.total;
           this.tableData = res.data.data;
+          this.copyData = JSON.parse(JSON.stringify(res.data.data));
+          this.copyData.forEach(v=>{
+              v.produce_id = v.id;
+                if(this.url_number_type){
+             v.url_number = '';
+            }
+            v.produce_id = v.id;
+            v.employee_id ? "" : (v.employee_id = "");
+          })
           this.tableData.forEach((element) => {
             if(this.url_number_type){
               element.url_number = '';
@@ -574,6 +588,7 @@ export default {
                 })
             }
           });
+          console.log(this.tableData);
           this.$forceUpdate();
           this.loading = false;
         })
@@ -605,6 +620,9 @@ export default {
     // },
 
   handleDispatchConfirm() {
+    if(!this.searchData.order_no){
+      return this.$Message.warning('请先选择订单号!')
+    }
     if (this.wood_select.length!=0||this.paint_select.length!=0||this.packing_select.length!=0||this.transit_select.length!=0||this.install_select.length!=0) {
       this.show_type = true;
         this.subArr =[...this.wood_select,...this.paint_select,...this.packing_select,...this.transit_select,...this.install_select];
@@ -617,29 +635,29 @@ export default {
           }
         })} catch(e){
           
-          this.$Message.warning('请设置班组');
+         return this.$Message.warning('请设置班组');
         };
-         this.showModal = this.show_type;
-        //设置时间格式,需要根据选择的数据请求接口
-      //   let id = [];
-      //   this.subArr.forEach(v=>{
-      //       id.push(v.id);
-      //   })
-      //   this.axios.post('/api/bst_get_plan_time',{type:1,id}).then(res=>{
-      //     if(res.code == 200){
-            
-      //        let time = [];
-      //        res.data.forEach(v=>{
-      //            time.push(v*1000);
-      //        })
-      //       //  console.log(Date.parse(new Date()))
-      //         this.options = {
-      //   disabledDate(date) {
-      //     return date && (date.valueOf() < time[0]||date.valueOf()>time[1]);
-      //   }
-      // }
-      //     }
-      //   })
+        
+        // 设置时间格式,需要根据选择的数据请求接口
+        let id = [];
+        this.subArr.forEach(v=>{
+            id.push(v.id);
+        })
+        this.axios.post('/api/bst_get_plan_time',{type:1,id,order_no:this.searchData.order_no,url_number:this.searchData.url_number}).then(res=>{
+          if(res.code == 200){
+             this.showModal = this.show_type;
+             let time = [];
+             res.data.forEach(v=>{
+                 time.push(v*1000);
+             })
+            //  console.log(Date.parse(new Date()))
+              this.options = {
+        disabledDate(date) {
+          return date && (date.valueOf() < time[0]||date.valueOf()>time[1]);
+        }
+      }
+          }
+        })
       } else {
         this.$Message.warning("请选择工序");
       }
@@ -732,7 +750,7 @@ export default {
 
       localStorage.setItem("dispatchTag", val);
        this.axios.get('/api/order_produce_url_number',{params:{...this.searchData,type_id:this.currencyTag}}).then(res=>{
-                this.urlNumberList = res.data;
+                this.urlNumberList = res.data.url_number;
                 });
         this.searchData.url_number =[];         
       this.initData();  
@@ -878,4 +896,14 @@ export default {
   height:600px;
 
 }
+//小红星
+/deep/.red_star .ivu-form-item-label:before {
+    content: '*';
+    display: inline-block;
+    margin-right: 4px;
+    line-height: 1;
+    font-family: SimSun;
+    font-size: 14px;
+    color: #ed4014;
+}
 </style>

+ 106 - 5
src/views/MatchChange/change.vue

@@ -1,12 +1,14 @@
 <template>
   <div>
     <Toptitle title="变更">
+      <Button type="primary" ghost style="margin-right: 10px" @click="changeParts">批量修改组件</Button>
+       <Button type="primary" ghost style="margin-right: 10px" @click="match"
+        >批量修改房间</Button
+      >
        <Button type="primary" style="margin-right: 10px" @click="postData"
         >保存</Button
       >
-       <Button type="primary" ghost style="margin-right: 10px" @click="match"
-        >匹配</Button
-      >
+     
       <Button @click="back" type="primary" ghost style="margin-right: 10px"
         >返回</Button
       >
@@ -64,6 +66,29 @@
             </Select>
           </span>
         </Col>
+         <Col span="4">
+          <span>区域名称:</span>
+          <span>
+            <Select
+              filterable
+              multiple
+              filter-by-label
+              clearable
+              transfer
+              v-model="matchedInfo.layer"
+              :max-tag-count="2"
+              size="small"
+              style="width: 150px"
+            >
+              <Option
+                v-for="(item,index) in layerList"
+                :key="index"
+                :label="item"
+                :value="item"
+              ></Option>
+            </Select>
+          </span>
+        </Col>
         <Col span="2">
           <Button @click="initData(matchedInfo)" size="small" type="primary">
             搜索
@@ -229,6 +254,12 @@
                 <Option v-for="(item,index) in house_list" :key="index" :label="item.number" :value="item.id"></Option>
               </Select>
             </template>
+           
+               <template slot="compose_name" slot-scope="{row}">
+              <Select v-model="row.compose_name" filterable clearable allow-create @on-create="handleCreate" @on-select='selectHouse($event,row)' transfer>
+                <Option v-for="(item,index) in compose_name_list" :key="index" :label="item" :value="item"></Option>
+              </Select>
+            </template>
             </Table>
             <span>总计{{matchedDetailList.length?matchedDetailList.length:0}}条记录</span>
         </div>
@@ -256,6 +287,19 @@
        <Button type="primary" @click="saveData">保存</Button>
      </div>
     </Modal>
+    <Modal title="批量修改组件" width='35' v-model="modalChangeParts">
+      <Form :label-width='150'>
+        <FormItem label='组件:' style="width:350px">
+             <Select v-model="totalComposeName" filterable clearable allow-create @on-create="handleCreate">
+             <Option v-for="(item,index) in compose_name_list" :key="index" :label="item" :value="item"></Option>
+             </Select>
+        </FormItem>
+      </Form>
+      <div slot="footer">
+        <Button type="primary" @click="modalChangeParts=false">取消</Button>
+        <Button type="primary" @click="handleChangeParts">保存</Button>
+      </div>
+    </Modal>
   </div>
 </template>
 
@@ -271,6 +315,8 @@ export default {
   data() {
     // 这里存放数据
     return {
+      totalComposeName:'',
+      modalChangeParts:false,
       house_number:'',
       modalColum:[
         {align:'center',slot:'select',maxWidth:60},
@@ -290,7 +336,8 @@ export default {
       isMatchedSelectAll: false,
       matchedInfo: {
         url_number: [],
-        product_id: []
+        product_id: [],
+        layer:[],
       },
       searchData:{
           number:[],
@@ -311,7 +358,7 @@ export default {
         { title: "房号", align: "center", key: "house_id",  resizable: true,
                         minWidth: 160,slot:'number' },
         { title: "组合名称", align: "center", key:'compose_name', resizable: true,
-                        minWidth: 100 },
+                        minWidth: 160,slot:'compose_name' },
         { title: "部件名称", align: "center", key: "part_title",  resizable: true,
                         minWidth: 180 },
         { title: "行号", align: "center", key: "sort",  resizable: true,
@@ -335,6 +382,7 @@ export default {
       matchedSelectedList: [],
       editData:[],
       proxObj:{},
+      layerList:[],
     };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
@@ -348,6 +396,57 @@ export default {
     this.initData();
   },
   methods: {
+    handleChangeParts(){
+  if(!this.totalComposeName){
+        return this.$Message.warning('请确认数据!')
+      }
+      let arr = [];
+      this.chooseData.forEach(v=>{
+        this.matchedDetailList.forEach(m=>{
+          if(v.id==m.id){
+            m.compose_name = this.totalComposeName;
+            m._checked = true;
+            arr.push(m)
+          }
+        })
+      })
+      
+
+      let data = [];
+      data = JSON.parse(JSON.stringify(this.editData));
+      if(this.editData.length==0){
+        this.editData = arr;
+      }else{
+        console.log(this.editData);
+        let ids = [];
+        this.editData.forEach(v=>{
+          ids.push(v.id)
+        })
+       arr.forEach(v=>{
+         if(ids.indexOf(v.id)>=0){
+           this.editData.forEach((m,idx)=>{
+                if(m.id == v.id){
+                  data.splice(idx,1,v)
+                }
+           })
+         }else{
+           data.push(v);
+         }
+       })
+        this.editData=JSON.parse(JSON.stringify(data));}
+         this.modalChangeParts = false;
+         console.log(this.editData);
+    
+    },
+    changeParts(){
+        if(this.chooseData.length == 0){
+        return this.$Message.warning('请先选择数据')
+      }
+        this.modalChangeParts=true;
+    },
+    handleCreate(val){
+         this.compose_name_list.push(val)
+    },
     selectHouse(e,row){
        if(this.editData.length == 0){
          this.editData.push(row);
@@ -381,6 +480,7 @@ export default {
           obj.pr_id = v.id;
           obj.house_id = v.house_id;
           obj.url_number = v.url_number;
+          obj.compose_name = v.compose_name;
           json.push(obj)
         })
         this.axios.post('/api/change_match_edit',{json,order_no:this.$route.query.project_number}).then(res=>{
@@ -474,6 +574,7 @@ this.showMatch=true
           this.urlMatchedList = res.data.url_number;
           this.productMatchedList = res.data.product_list;
           this.matchedList = res.data.list;
+          this.layerList = res.data.layer;
              });
     },
     handleHiddenMatchedDetail(row) {

+ 27 - 5
src/views/MatchChange/check.vue

@@ -11,9 +11,9 @@
        <Button type="primary" style="margin-right: 10px" @click="print_chip"
         >打印芯片</Button
       >
-       <Button type="primary" style="margin-right: 10px" @click="test"
+       <!-- <Button type="primary" style="margin-right: 10px" @click="test"
         >测试查看</Button
-      >
+      > -->
       <Button @click="back" type="primary" ghost style="margin-right: 10px"
         >返回</Button
       >
@@ -395,7 +395,16 @@ export default {
          { title: "打印芯片", align: "center", key: "chip_state",  resizable: true,
                         minWidth: 80 ,  render: (h, params) => {
             return h("span", {}, params.row.chip_state==0?'否':'是');
-          }}
+          }},
+           { title: "工艺要求", align: "center", key: "remark",  resizable: true,
+                        minWidth: 180 },
+          { title: "操作", align: "center", key: "set",  resizable: true,
+                        minWidth: 180 ,render:(h,params)=>{
+                          const {row} = params;
+                          return h('a',{on:{'click':()=>{
+                                this.print_chip(row,1)
+                          }}},'打印芯片')
+                        }},
       ], //匹配表头
       processModal: false,
       process_man: "",
@@ -767,8 +776,20 @@ export default {
         });
       });
     },
-    print_chip(){
-        console.log(this.matchedSelectedList)
+    print_chip(row,type){
+
+        if(type){
+               this.axios.post('/api/station_print',{matching_type:1,id:row.id,num:1,order_no:this.$route.query.project_number,product_id:row.product_id,rows:[],type:1}).then(resp=>{
+             if(resp.code == 200){
+                 this.axios.get("/api/get_print_local_url").then((res) => {
+            if (res.code == 200) {
+              if (res.data.state) {
+                this.handlePrintChipsUsb(resp.data, res.data.type);
+              } 
+            }
+          });
+          } })
+        }else{
          this.matchedSelectedList.forEach(v=>{
            this.axios.post('/api/station_print',{matching_type:1,id:v.id,num:1,order_no:this.$route.query.project_number,product_id:v.product_id,rows:[],type:1}).then(resp=>{
              if(resp.code == 200){
@@ -781,6 +802,7 @@ export default {
           });
           } })
          })
+        }
     },
     important_del(){
        this.axios.post('/api/delete_cut_order_product',{id:[...this.delList],...this.delData}).then(res=>{

+ 43 - 1
src/views/MaterialMannage/edit.vue

@@ -156,10 +156,19 @@
       <div class="items" v-for="(rows, key) in info.detail" :key="key">
         <!-- id  1 木板   2 木皮   3 实木   4 辅料   5 五金   6 油漆  -->
         <Form ref="item_detail" inline :model="rows" :rules="itemRules">
+             <FormItem label="物料编码" v-show="isShowDetailLong" prop='code'>
+            <Input
+              :disabled="type == 3 ? true : false"
+              v-model="rows.code"
+              @on-change='changeSate(rows,key)'
+              placeholder="请输入物料编码"
+            />
+          </FormItem>
           <FormItem label="高" prop="long" v-show="isShowDetailLong">
             <Input
               :disabled="type == 3 ? true : false"
               v-model="rows.long"
+               @on-change='changeSate(rows,key)'
               placeholder="请输入高度"
             />
           </FormItem>
@@ -167,6 +176,7 @@
             <Input
               :disabled="type == 3 ? true : false"
               v-model="rows.width"
+               @on-change='changeSate(rows,key)'
               placeholder="请输入宽度"
             />
           </FormItem>
@@ -175,6 +185,7 @@
               type="number"
               :disabled="type == 3 ? true : false"
               v-model="rows.scale"
+               @on-change='changeSate(rows,key)'
               placeholder="请输入百分比"
             />
           </FormItem>
@@ -184,6 +195,7 @@
               clearable
               style="width:186px;"
               v-model="rows.todo"
+               @on-change='changeSate(rows,key)'
               placeholder="请选择"
             >
               <Option
@@ -198,6 +210,7 @@
             <Input
               type="number"
               :disabled="type == 3 ? true : false"
+               @on-change='changeSate(rows,key)'
               v-model="rows.warning_number"
               placeholder="请输入库存"
             />
@@ -206,6 +219,7 @@
             <Input
               type="number"
               :disabled="type == 3 ? true : false"
+               @on-change='changeSate(rows,key)'
               v-model="rows.top_number"
               placeholder="请输入库存"
             />
@@ -263,6 +277,7 @@ import KeyBoard from "../../components/keyboard/index";
 export default {
   data() {
     return {
+      del_list:[],
       type: 1,
       info: {
         m_id: "",
@@ -272,6 +287,7 @@ export default {
           {
             long: "",
             width: "",
+            code:'',
             // price: "",
             stock: "",
             warning_number: "",
@@ -288,6 +304,7 @@ export default {
       showKey: false,
       itemRules: {
         // price: [{ required: true, message: " " }],
+        code:[{ required: true, message: " ", trigger: "blur" }],
         long: [{ required: true, message: " ", trigger: "blur" }],
         width: [{ required: true, message: " ", trigger: "blur" }],
         stock: [{ required: true, message: " " }],
@@ -387,6 +404,11 @@ export default {
     },
   },
   methods: {
+    changeSate(rows,index){
+          if(!rows.is_add){
+           this.info.detail[index].is_edit = true;
+          }
+    },
      looks(img) {
       const array = [{ img_url: img }];
       this.$previewImg({
@@ -442,6 +464,19 @@ export default {
         ((this.info.detail[0].top_number = this.info.top_number),
         (this.info.detail[0].warning_number = this.info.warning_number));
         // (this.info.detail[0].price = this.info.price));
+       let add_list = [];
+       let upd_list = [];
+       this.info.del_list = this.del_list;
+       this.info.detail.forEach(v => {
+         if(v.is_add){
+           add_list.push(v);
+         }
+         if(v.is_edit){
+           upd_list.push(v)
+         }
+       }); 
+       this.info.upd_list = upd_list;
+       this.info.add_list = add_list;
       type == 4 ? (this.info.id = "") : "";
       this.axios.post("/api/material", this.info).then((res) => {
         console.log(this.info)
@@ -476,6 +511,7 @@ export default {
     },
     addMaterrial(row) {
       row.push({
+        is_add:true,
         long: "",
         width: "",
         // price: "",
@@ -485,6 +521,9 @@ export default {
       });
     },
     removeChild(row, n) {
+      if(!row[n].is_add){
+      this.del_list.push(row[n]);
+      }
       row.splice(n, 1);
     },
   },
@@ -492,13 +531,16 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+.page-edit{
+  height: 60%;
+  overflow: auto;
 .items {
   padding: 10px;
   box-shadow: 0 2px 7px rgba(0, 0, 0, 0.15);
   border-color: transparent;
   position: relative;
   margin: 20px 0;
-}
+}}
 .product-img {
   padding-top: 10px;
 }

+ 1 - 0
src/views/ProcessRoute/edit.vue

@@ -102,6 +102,7 @@
               v-model="tempProcessLine.title"
               style="width:120px"
               placeholder="请输入"
+              clearable
             ></Input>
           </div>
           <Button

+ 10 - 10
src/views/ProductionOrderList/Dispatchlist/list.vue

@@ -119,14 +119,14 @@ export default {
     set_list () {
       return [
         { title: '项目编号', name: 'Input', serverName: 'order_no', placeholder: '请输入订单编号', value: '' },
-        {
-          title: '派工状态', name: 'Select', placeholder: '请选择', serverName: 'state', value: '',
-          option: [
-            { label: '未生产', value: 0 },
-            { label: '生产中', value: 1 },
-            { label: '生产完成', value: 2 },
-          ]
-        },
+        // {
+        //   title: '派工状态', name: 'Select', placeholder: '请选择', serverName: 'state', value: '',
+        //   option: [
+        //     { label: '未生产', value: 0 },
+        //     { label: '生产中', value: 1 },
+        //     { label: '生产完成', value: 2 },
+        //   ]
+        // },
          { title: '图号', name: 'Select', serverName: 'url_number', placeholder: '请选择', value: '', optionName: 'label', optionValue: 'value', option: this.url_number_list,filterable:true,multiple:true },
         { title: '开始派工时间', name: 'Input', start_server: 'start_time', end_server: 'end_time', start_value: '', end_value: '', isDate: true, serverName: 'id2', start_placeholder: '开始日期', end_placeholder: '结束日期' },
         // {
@@ -166,7 +166,7 @@ export default {
     if (to.path == '/cms/productionorderlist/dispatchlist/confirm') {
       this.corssPageData = {
         'order_no': this.set_list[0].value,
-        'state': this.set_list[1].value,
+        'url_number': this.set_list[1].value,
         'start_time': this.set_list[2].start_value,
         'end_time': this.set_list[2].end_value,
         // 'renovation_type': this.set_list[3].value,
@@ -190,7 +190,7 @@ export default {
         row = this.corssPageData
         this.proxyObj = row
         this.set_list[0].value = row.order_no
-        this.set_list[1].value = row.state
+        this.set_list[1].value = row.url_number
         this.set_list[2].value = row.start_time
         this.set_list[2].value = row.end_time
         // this.set_list[3].value = row.renovation_type

+ 1 - 3
src/views/ProductionOrderList/ProductionPlanlist/BST_two.vue

@@ -753,9 +753,7 @@ export default {
     handleDispatchType(row) {
       // console.log("row :>> ", row);
       this.axios.post('/api/order_produce_list').then(res=>{
-        if(res.code == 201){
-          this.$Message.warning(res.msg)
-        }else{
+        if(res.code == 200){
              this.$router.push({
         path: "/cms/Dispatching/Dispatching",
         query: {

+ 51 - 35
src/views/ProductionOrderList/ProductionsOrder/BST_Decorationlist.vue

@@ -40,7 +40,7 @@
             <DropdownItem name='3'>批量修改工艺路线</DropdownItem>
             <DropdownItem name='4'>批量下生产排产</DropdownItem>
             <DropdownItem name='5'>批量打印订单</DropdownItem>
-            <DropdownItem name='6'>下计划</DropdownItem>
+            <!-- <DropdownItem name='6'>下计划</DropdownItem> -->
         </DropdownMenu>
       </Dropdown>
         <!-- <Button
@@ -390,10 +390,10 @@
     >
       <Input type="textarea" v-model="test_content" :rows="40" />
     </Modal>
-    <Modal v-model="show_plan" title='批量下计划' :mask-closable="false" @on-ok='finishDataTrue'>
+    <Modal v-model="show_plan" title='批量下排产' :mask-closable="false" @on-ok='finishDataTrue'>
       <Form  :label-width='150'>
         <FormItem v-for="item in basics_procedure_list" :key="item.id" :label='`要求${item.title}完成的时间:`' style="margin-left:60px" >
-          <DatePicker type="date" placeholder="请选择" style="width: 200px" v-model='item.time' transfer></DatePicker>
+          <DatePicker type="daterange" placeholder="请选择" style="width: 200px" v-model='item.time' transfer :options='options' @on-open-change='timeFocus($event,item)'></DatePicker>
         </FormItem>
       </Form>
     </Modal>
@@ -411,6 +411,7 @@ export default {
   },
   data() {
     return {
+      options:{},
       finishData:[],
       basics_procedure_list:[],
       show_plan:false,
@@ -626,7 +627,7 @@ export default {
         },
       ],
       tableColums: [
-        { type: "selection", fixed: "left", width: "100", align: "center" },
+        { type: "selection", width: 100, align: "center" },
         {
           title: "房号",
           align: "center",
@@ -788,8 +789,7 @@ export default {
           title: "操作",
           align: "center",
           slot: "set",
-          width: "200",
-          fixed: "right",
+          width: 200,
         },
       ],
       tableData: [],
@@ -995,19 +995,39 @@ export default {
     });
   },
   methods: {
+    timeFocus(e,row){
+      if(e){
+          let ids = [];
+          this.selects.forEach(v=>{
+            ids.push(v.id)
+          })
+           this.axios.post('/api/bst_get_plan_time',{type:0,id:[row.id],ids,order_no:this.$route.query.order_no}).then(res=>{
+          if(res.code == 200){
+             let time = [];
+             res.data.forEach(v=>{
+                 time.push(v*1000);
+             })
+            //  console.log(Date.parse(new Date()))
+              this.options = {
+        disabledDate(date) {
+          return date && (date.valueOf() < time[0]||date.valueOf()>time[1]);
+        }
+      }
+          }
+        })
+      }
+    },
     finishDataTrue(){
       let arr = [];
       this.basics_procedure_list.forEach(m=>{
-        if(m.time){
-          arr[m.id]=Date.parse(m.time).toString().slice(0,10)
-        }
-      })
-      let id = [];
-      this.selects.forEach(v=>{
-        id.push(v.id)
+       let obj = {};
+       obj.id = m.id;
+       obj.start_time =Date.parse(m.time[0]).toString().slice(0,10)||'';
+      obj.end_time =Date.parse(m.time[1]).toString().slice(0,10)||'';
+      arr.push(obj);
       })
       console.log(arr);
-        this.axios.post('/api/ext_product_pr_plan',{order_no:this.$route.query.order_no,id,type:{...arr}}).then(res=>{
+        this.axios.post('/api/orders_plan',{pr_id:this.planInfo.pr_id,time_list:{...arr}}).then(res=>{
            if(res.code==200){
              this.$Message.success(res.msg);
              this.getData(this.proxyObj);
@@ -1017,7 +1037,6 @@ export default {
     totalClick(e){
 switch(e){
   case '1':
-    
     this.openMeasureModal(this.selects)
     break;
    case '2':
@@ -1032,15 +1051,15 @@ switch(e){
     case '5':
 
     break;
-    case '6':
-       if (this.selects.length < 1) {
-        return this.$Message.error("请至少选择一项");
-      }
-      this.axios.get('/api/basics_procedure_index').then(res=>{
-        this.basics_procedure_list = res.data.data;
-      })
-    this.show_plan = true;
-    break;
+    // case '6':
+    //    if (this.selects.length < 1) {
+    //     return this.$Message.error("请至少选择一项");
+    //   }
+    //   this.axios.get('/api/basics_procedure_index').then(res=>{
+    //     this.basics_procedure_list = res.data.data;
+    //   })
+    // this.show_plan = true;
+    // break;
 }
     },
     init(row) {
@@ -1218,20 +1237,17 @@ switch(e){
         }
         let result = [];
         row.map((v) => result.push(v.pr_id));
-        this.planInfo.pr_id = result.join(",");
+        this.planInfo.pr_id = result;
       } else {
         //单个下生产
-        this.planInfo.pr_id = row.pr_id;
+        this.planInfo.pr_id = [row.pr_id];
       }
-      this.downProduction({
-        title: "下生产排产",
-        type: 1,
-        params: this.planInfo,
-        then: (e) => {
-          this.getData(this.proxyObj);
-        },
-        cancel: (e) => {},
-      });
+       this.axios.get('/api/basics_procedure_index').then(res=>{
+         this.basics_procedure_list = res.data.data.filter(v=>{
+           return v.type==1||v.type==4
+         })
+      })
+      this.show_plan = true;
     },
     selectTable(e) {
       this.selects = e;

+ 100 - 11
src/views/ProductionOrderList/ProductionsOrder/BST_list.vue

@@ -17,9 +17,9 @@
                 type="primary"
                 style="margin-right:10px"
                 ghost>批量打印二维码</Button> -->
-        <Button @click="openModal(selects)"
+        <!-- <Button @click="openModal(selects)"
                 type="primary"
-                ghost>批量下生产排产</Button>
+                ghost>批量下生产排产</Button> -->
       </div>
 
       <div slot='navButton'>
@@ -49,11 +49,11 @@
           <a v-if='persimissionData["详情"]||persimissionData.all'
              style="margin:0 5px"
              @click="goDetial(row)">详情</a>
-          <a v-if='persimissionData["下生产计划"]||persimissionData.all'
+          <!-- <a v-if='persimissionData["下生产计划"]||persimissionData.all'
              style="margin:0 5px"
              :disabled="row.state==2"
-             @click="openModal(row)">下生产排产</a>
-              <a v-if="row.part_state == 0"
+             @click="openModal(row)">下生产排产</a> -->
+              <a :disabled="row.part_state != 0"
              style="margin:0 5px"
              @click="del(row)">删除</a>
         </div>
@@ -71,6 +71,24 @@
         </div>
       </template>
     </FullPage>
+       <Modal width='35'
+          title='下生产排产'
+          :mask-closable="false"
+           v-model="show">
+      <Form
+            ref='forms'
+            :rules='rules'>
+         <FormItem v-for="item in basics_procedure_list" :key="item.id" :label='`要求${item.title}完成的时间:`' style="margin-left:60px" >
+          <DatePicker type="daterange" placeholder="请选择" style="width: 200px" v-model='item.time' transfer :options='options' @on-open-change='timeFocus($event,item)'></DatePicker>
+        </FormItem>
+      </Form>
+      <div slot="footer"
+           class="modal-footer">
+        <Button @click="show=false">取消</Button>
+        <Button @click="finishDataTrue"
+                type='primary'>确认</Button>
+      </div>
+    </Modal>
   </div>
 </template>
 
@@ -79,6 +97,12 @@ import { mapState } from 'vuex'
 export default {
   data () {
     return {
+      options:{},
+      basics_procedure_list:[],
+        rules: {
+        time: [{ required: true, message: '请选择时间', }]
+      },
+      show:false,
       tableColums: [
         { type: 'selection', key: 'selection', title: '全选', fixed: 'left', width: 90, align: 'center' },
         { title: '项目编号', align: 'center', key: 'order_no', width: '200' },
@@ -141,6 +165,7 @@ export default {
       corssPageData: localStorage.getItem('corssPageData') ? JSON.parse(localStorage.getItem('corssPageData')) : {},
       userList: [],
       warningList: [],
+      order_no:'',
     }
   },
   beforeRouteEnter (to, from, next) {
@@ -208,6 +233,60 @@ export default {
     }
   },
   methods: {
+      timeFocus(e,row){
+      if(e){
+          let ids = [];
+           this.axios.post('/api/bst_get_plan_time',{type:0,id:[row.id],ids,order_no:this.planInfo.order_no}).then(res=>{
+          if(res.code == 200){
+             let time = [];
+             res.data.forEach(v=>{
+                 time.push(v*1000);
+             })
+            //  console.log(Date.parse(new Date()))
+              this.options = {
+        disabledDate(date) {
+          return date && (date.valueOf() < time[0]||date.valueOf()>time[1]);
+        }
+      }
+          }
+        })
+      }
+    },
+      finishDataTrue(){
+      let arr = [];
+      this.basics_procedure_list.forEach(m=>{
+       let obj = {};
+       obj.id = m.id;
+       obj.start_time =Date.parse(m.time[0]).toString().slice(0,10)||'';
+      obj.end_time =Date.parse(m.time[1]).toString().slice(0,10)||'';
+      arr.push(obj);
+      })
+      console.log(arr);
+        this.axios.post('/api/orders_plan',{order_no:this.planInfo.order_no,time_list:{...arr}}).then(res=>{
+           if(res.code==200){
+             this.$Message.success(res.msg);
+             this.show=false;
+             this.getData(this.proxyObj);
+           }
+        })
+    },
+    // sendPlanInfo(){
+    //       if (!this.time[0]) {
+    //     return this.$Message.error('请选择起始时间')
+    //   }
+    //        if (this.time.length > 0) {
+    //     this.planInfo.start_time = new Date(this.time[0]).toLocaleDateString().replace(/\//g, "-")
+    //     this.planInfo.end_time = new Date(this.time[1]).toLocaleDateString().replace(/\//g, "-")
+    //   }
+    //     let url = '/api/orders_plan';
+    //   this.axios.post(url, this.planInfo).then(res => {
+    //     if (res.code == 200) {
+    //       this.$Message.success(res.msg)
+    //       this.show = false
+    //        this.getData(this.proxyObj)
+    //     }
+    //   })
+    // },
     del(row){
        this.axios.get('/api/orders_produce_order_del',{params:{order_no:row.order_no}}).then(res=>{
          if(res.code == 200){
@@ -291,19 +370,29 @@ export default {
       })
     },
     openModal (row) {
+       let order_no = [];
+       let id = [];
       if (Array.isArray(row)) {
         if (row.length < 1) { return this.$Message.warning('请选择一项') }
         this.planInfo.order_no = row.reduce((pre, cur, idx) => `${pre}${cur.order_no}${idx == row.length - 1 ? '' : ','}`, '')
+      row.forEach(v=>{
+        order_no.push(v.order_no);
+        id.push(v.id)
+      })
       } else {
         this.planInfo.order_no = row.order_no;
+        order_no.push(row.order_no);
+        id.push(row.id)
       }
-      this.downProduction({
-        title: '下生产排产',
-        type: 1,
-        params: this.planInfo,
-        then: (e) => { this.getData(this.proxyObj) },
-        cancel: (e) => { },
+     
+      
+   this.axios.get('/api/basics_procedure_index').then(res=>{
+     this.show = true;
+         this.basics_procedure_list = res.data.data.filter(v=>{
+           return v.type==1||v.type==4
+         })
       })
+   
     },
     goOriginalPage (row) {
       this.$router.push({

+ 5 - 1
src/views/Warehouse/FirstInventory/detail.vue

@@ -71,7 +71,7 @@
                      v-model="modalData.title"
                      placeholder="请输入物料名称" />
             </div>
-            <Button @click="initModal()"
+            <Button @click="initModalSearch()"
                     type="primary"
                     style="margin:0 10px;">搜索</Button>
           </div>
@@ -317,6 +317,10 @@ export default {
     this.initModal()
   },
   methods: {
+    initModalSearch(){
+      this.modal_page_index = 1;
+          this.initModal();
+    },
     selectMaterial(){
           this.showModal = true;
           this.modalData.selectedData = [];

+ 5 - 4
src/views/Warehouse/FirstInventory/list.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="warehouseList">
-    <Toptitle title="期初库存表">
+    <Toptitle title="原材料期初库存表">
       <slot name="titleButton">
         <div style="display:flex;">
           <Upload name='your_file'
@@ -295,11 +295,12 @@ export default {
         warehouse_id: this.searchData.warehouse_id ? this.searchData.warehouse_id.join(',') : null,
         material_type_id: this.searchData.material_type_id ? this.searchData.material_type_id.join(',') : null,
         material_id: this.searchData.material_id ? this.searchData.material_id.join(',') : null,
-        start_time: this.searchData.date[0] ? this.func.replaceDateNoHMS(this.searchData.date[0]) : null,
-        end_time: this.searchData.date[0] ? this.func.replaceDateNoHMS(this.searchData.date[1]) : null,
+        start_time: this.searchData.date[0] ?Date.parse(this.searchData.date[0]).toString().slice(0,10) : null,
+        end_time: this.searchData.date[0] ? Date.parse(this.searchData.date[1]).toString().slice(0,10) : null,
         user_id: this.searchData.user_id,
         upd_id: this.searchData.upd_id
       }
+      this.page_index =1;
       this.getData(obj)
     },
     handlePriceChange (row) {
@@ -373,7 +374,7 @@ export default {
           break;
         case 2:
           
-          this.currencyEditRow = row;
+          this.currencyEditRow = JSON.parse(JSON.stringify(row));
           this.currencyEditRow.total_price= (this.currencyEditRow.total_price*1).toFixed(2);
           this.currencyEditRow.price = ((this.currencyEditRow.total_price*1)/(this.currencyEditRow.num*1)).toFixed(2);
         

+ 242 - 0
src/views/leadMatch/Ironware/edit.vue

@@ -0,0 +1,242 @@
+<template>
+    <div>
+        <Toptitle :title="$route.query.type==1?'新增':$route.query.type==2?'编辑':'查看'">
+            <Button type="primary" style="margin-right:10px;" @click="del_total" v-show="$route.query.type==1">批量删除</Button>
+              <Upload
+              v-show="$route.query.type!=3"
+              style="display:inline-block"
+          name="your_file"
+          :show-upload-list="false"
+          :headers="headers"
+          :on-error="uploadError"
+          :on-success="uploadSuccess"
+          :action="$store.state.ip + '/api/cut_order_alloy_import'"
+        >
+          <Button type="primary" style="margin-right:10px;"
+            >导入</Button
+          >
+        </Upload>
+            <Button style="margin-right:10px;" @click="back">返回</Button>
+            <Button @click="postData" v-show="$route.query.type!=3">保存</Button>
+        </Toptitle>
+        <div style="height:85%;overflow:auto">
+        <Form :label-width='100' style="display:flex;margin-top:15px;flex-wrap:wrap;border-bottom: 1px solid #F4F4F4; ">
+            <FormItem label='项目编码:' style="width:250px">
+                <span v-if="$route.query.type==3">{{searchData.project_code}}</span>
+                <Input v-else clearable :disabled='true' v-model="searchData.project_code"/>
+            </FormItem>
+            <FormItem label='项目名称:' style="width:250px">
+                <span v-if="$route.query.type==3">{{searchData.project_title}}</span>
+                  <Input v-else clearable :disabled='true' v-model='searchData.project_title'/>
+            </FormItem>
+            <FormItem label='项目简称:' style="width:250px">
+                <span v-if="$route.query.type==3">{{searchData.abbreviation}}</span>
+                  <Input v-else clearable :disabled='true' v-model="searchData.abbreviation"/>
+            </FormItem>
+            <FormItem label='下单日期:' style="width:250px" class="red_star">
+                <span v-if="$route.query.type==3">{{searchData.alloy_time}}</span>
+                <DatePicker type='date' v-model="searchData.alloy_time" placeholder='年/月/日' v-else></DatePicker>
+            </FormItem>
+        </Form>
+        <div v-show="$route.query.type==3">
+        <Form :label-width='100' style="display:flex;margin-top:15px;flex-wrap:wrap;">
+            <FormItem label='图号'>
+                <Select v-model="formData.url_number" filterable multiple>
+                    <Option v-for="(item,index) in url_number" :key="index" :label="item" :value="item"/>
+                </Select>
+            </FormItem>
+             <FormItem label='名称'>
+              <Select v-model="formData.title" filterable multiple>
+                    <Option v-for="(item,index) in title" :key="index" :label="item" :value="item"/>
+                </Select>
+                </FormItem>
+              <FormItem>
+                  <Button type="primary" @click="initData(formData)">搜索</Button>
+              </FormItem>
+        </Form>
+        </div>
+        <Table :data='tableData' :columns='$route.query.type==1?tableColumns_add:tableColumns_edit' border max-height='550' @on-selection-change='choose'>
+   <template slot="set" slot-scope="{row,index}">
+       <a @click="del(row,index)">删除</a>
+   </template>
+        </Table>
+        </div>
+          <Page
+          v-show="$route.query.type==3"
+      :page-size-opts="[10, 20, 30, 40, 100, 1000]"
+      @on-page-size-change="changeSize"
+      @on-change="changePage"
+      :current="pageIndex"
+      show-total
+      :total="total"
+      show-sizer
+      :page-size="pageSize"
+      style="text-align: center; margin-top: 10px"
+    />
+    </div>
+</template>
+<script>
+export default {
+    data(){
+        return{
+            url_number:[],
+            title:[],
+            formData:{
+                url_number:[],
+                title:[],
+            },
+            selectData:[],
+            id:'',
+        headers: { Authorization: localStorage.getItem("token") },
+        tableData:[],
+        tableColumns_add:[
+           {align:'center',minWidth:60,type:'selection'},
+             {title:"序号",align:'center',minWidth:80,type:'index'},
+             {title:"图号",align:'center',minWidth:80,key:'url_number'},
+              {title:"名称",align:'center',minWidth:80,key:'title'},
+               {title:"规格型号",align:'center',minWidth:150,key:'model'},
+                {title:"单位",align:'center',minWidth:80,key:'unit'},
+                 {title:"数量",align:'center',minWidth:80,key:'num'},
+                  {title:"备注",align:'center',minWidth:150,key:'remark'},
+                   {title:"操作",align:'center',minWidth:80,key:'set',slot:'set'},
+        ],
+        tableColumns_edit:[
+             {title:"序号",align:'center',minWidth:80,type:'index'},
+            {title:"图号",align:'center',minWidth:80,key:'url_number'},
+              {title:"名称",align:'center',minWidth:80,key:'title'},
+               {title:"规格型号",align:'center',minWidth:150,key:'model'},
+                {title:"单位",align:'center',minWidth:80,key:'unit'},
+                 {title:"数量",align:'center',minWidth:80,key:'num'},
+                  {title:"备注",align:'center',minWidth:150,key:'remark'},
+                   {title:"操作",align:'center',minWidth:80,key:'set',slot:'set'},
+        ],
+        pageSize:10,
+        pageIndex:1,
+        total:0,
+        searchData:{
+            abbreviation:'',
+            project_title:'',
+            project_code:'',
+            alloy_time:''
+        }
+        }
+    },
+    mounted(){
+        if(this.$route.query.type!=1){
+             this.initData();
+        }
+      
+    },
+    methods:{
+        del_total(){
+            let indexs = [];
+            this.selectData.forEach(element => {
+                indexs.push(element.index);
+            });
+           for(let i = 0;i<this.tableData.length;i++){
+                if(indexs.indexOf(this.tableData[i].index)>=0){
+                    this.tableData.splice(i,1);
+                    i--;
+                }
+           }
+        },
+        choose(e){
+           this.selectData = e;
+        },
+        postData(){
+              if(!this.id&&this.$route.query.type==1){
+              return this.$Message.warning('请先导入!')
+            }
+            if(!this.searchData.alloy_time){
+            return this.$Message.warning('请先选择下单时间!')
+            }
+            let time = this.searchData.alloy_time;
+                time = time?Date.parse(time).toString().slice(0,10):'';
+            let url =this.$route.query.type==2?'/api/cut_order_alloy_edit':'/api/cut_order_alloy_save'
+           this.axios.post(url,{alloy_time:time,id:this.$route.query.type==1?this.id:this.$route.query.id,data:this.tableData}).then(res=>{
+               if(res.code==200){
+                   this.$Message.success(res.msg);
+                   this.back();
+               }
+           })
+        },
+        del(row,index){
+              this.tableData.splice(index,1);
+        },
+        back(){
+           this.$router.go(-1)  
+        },
+        initData(row){
+             this.axios.post('/api/cut_order_alloy_detail',{...this.$route.query,...row}).then(res=>{
+                 this.url_number = res.data.url_number||[];
+                 this.title = res.data.title||[];
+                 this.tableData = res.data.data.data;
+                 this.searchData.abbreviation = res.data.abbreviation;
+            this.searchData.project_title=res.data.project_name;
+            this.searchData.project_code=res.data.project_number;
+            this.searchData.alloy_time = res.data.alloy_time?this.func.replaceDateNoHMS(res.data.alloy_time):''
+            console.log(this.searchData.alloy_time);
+             })
+        },
+           uploadSuccess(res) {
+      if (res.code == 200) {
+        this.$Message.success(res.msg || "上传成功");
+         this.searchData.abbreviation = res.data.abbreviation;
+         this.searchData.project_title = res.data.project_name;
+         this.searchData.project_code = res.data.project_number;
+         this.id = res.data.id;
+        if(this.tableData.length==0){
+           this.tableData = res.data.data;
+        }else{
+           
+            this.copyTable = JSON.parse(JSON.stringify(this.tableData));
+            let idxs = [];
+            this.tableData.forEach((v,index)=>{
+                res.data.data.forEach((m,idx)=>{
+                    if(v.material_id==m.material_id&&v.url_number==m.url_number){
+                        this.copyTable.splice(index,1,m);
+                        idxs.push(idx);
+                    }
+                })
+            })
+           res.data.data.forEach((v,index)=>{
+               if(idxs.indexOf(index)<0){
+                   this.copyTable.push(v);
+               }
+           })
+           this.tableData = JSON.parse(JSON.stringify(this.copyTable));
+        }
+            this.tableData.forEach((v,index)=>{
+                 v.index = index;
+            })
+      } else {
+        this.$Message.warning(res.msg || "上传失败");
+      }
+    },
+    uploadError(err) {
+      this.$Message.error(err.msg || "上传失败");
+    },
+    changeSize(e){
+             this.pageSize =e;
+             this.pageIndex = 1;
+           this.initData(this.formData);
+    },
+    changePage(e){
+           this.pageIndex = e;
+           this.initData(this.formData);
+    }
+    }
+}
+</script>
+<style lang="scss" scoped>
+//小红星
+/deep/.red_star .ivu-form-item-label:before {
+    content: '*';
+    display: inline-block;
+    margin-right: 4px;
+    line-height: 1;
+    font-family: SimSun;
+    font-size: 14px;
+    color: #ed4014;
+}
+</style>

+ 124 - 0
src/views/leadMatch/Ironware/list.vue

@@ -0,0 +1,124 @@
+<template>
+    <div>
+      <Toptitle title="码单五金列表"></Toptitle>
+      <div style="height:85%;overflow:auto">
+      <Form :label-width='80' style="display:flex;margin-top:15px;flex-wrap:wrap">
+          <FormItem label='项目编码:' style="width:250px">
+              <Input placeholder="请输入项目编码" v-model="searchData.project_number" clearable/>
+          </FormItem >
+          <FormItem label='项目名称:' style="width:250px">
+               <Input placeholder="请输入项目名称" v-model="searchData.project_name" clearable/>
+          </FormItem>
+          <FormItem label='项目简称:' style="width:250px">
+               <Input placeholder="请输入项目简称" v-model="searchData.abbreviation" clearable/>
+          </FormItem>
+          <FormItem><Button type="primary" @click="initData(searchData)">搜索</Button></FormItem>
+      </Form>
+      <div class="up_table">
+          <Button type="primary"  @click="handleSet(null,1)">新增</Button>
+      </div>
+      <Table :data='tableData' :columns='tableColumns' border max-height='550'>
+               <template slot="set" slot-scope="{row}">
+                    <a @click="handleSet(row,2)">编辑</a>
+                    <a @click="handleSet(row,3)">查看</a>
+                    <a  @click="handleSet(row,4)">删除</a>
+               </template>
+      </Table>
+      </div>
+       <Page
+      :page-size-opts="[10, 20, 30, 40, 100, 1000]"
+      @on-page-size-change="changeSize"
+      @on-change="changePage"
+      :current="pageIndex"
+      show-total
+      :total="total"
+      show-sizer
+      :page-size="pageSize"
+      style="text-align: center; margin-top: 10px"
+    />
+    </div>
+</template>
+<script>
+export default {
+    data(){
+        return {
+            proxyData:{},
+            pageIndex:1,
+            pageSize:10,
+            total:0,
+               searchData:{
+                   project_name:'',
+                   project_number:'',
+                    abbreviation:''
+               },
+               tableData:[],
+               tableColumns:[
+                   {title:'项目编号',align:'center',key:'project_number',minWidth:120},
+                    {title:'项目名称',align:'center',key:'project_name',minWidth:120},
+                    {title:'项目简称',align:'center',key:'abbreviation',minWidth:100},
+                      {title:'制单日期',align:'center',key:'alloy_time',minWidth:140,render:(h,params)=>{
+                          const {row} = params;
+                          const text = row.alloy_time?this.func.replaceDateNoHMS(row.alloy_time):'';
+                          return h('span',{},text)
+                      }},
+                       {title:'操作',align:'center',key:'',minWidth:150,slot:'set'},
+               ],
+        }
+    },
+    mounted(){
+         this.initData();
+    },
+    methods:{
+        handleSet(row,type){
+            //1 新增 2 编辑 3 查看 4 删除
+            switch(type){
+                case 1:
+                   
+                case 2:
+                  
+                case 3:
+                    this.$router.push({path:'/cms/leadMatch/Ironware/edit',query:{type:type,...row}})
+                    break;
+               case 4:
+                    this.confirmDelete({
+        content: '确认删除么?',
+        then: () => {
+          this.axios.get('/api/cut_order_alloy_del', {params:{id: row.id}}).then(res => {
+            if (res.code == 200) {
+              this.$Message.success(res.msg)
+              this.initData()
+            }
+          })
+        }
+      })
+                   break;
+            }
+        },
+        initData(row){
+              this.axios.get('/api/cut_order_alloy_list',{params:{...row}}).then(res=>{
+                  this.tableData = res.data.data;
+                  this.total = res.data.total;
+              })
+        },
+        changePage(e){
+            this.pageIndex = e;
+            this.initData(this.proxyData)
+        },
+        changeSize(e){
+            this.pageIndex = 1;
+            this.pageSize = e;
+            this.initData(this.proxyData);
+        }
+    }
+}
+</script>
+<style lang="scss" scoped>
+a{
+    margin-right: 10px;
+}
+.up_table{
+  display: flex;
+  flex-direction:row-reverse;
+  margin-bottom: 15px;
+}
+</style>

+ 28 - 2
src/views/leadMatch/MatchList/matchCheck.vue

@@ -301,6 +301,7 @@
           <span>选择时间:</span>
           <DatePicker
             type="date"
+            :options='options'
             v-model="process_start_time"
             placeholder="年/月/日"
             style="width: 150px"
@@ -308,6 +309,7 @@
           <DatePicker
             type="date"
+              :options='options'
             v-model="process_end_time"
             placeholder="年/月/日"
             style="width: 150px"
@@ -354,6 +356,7 @@ export default {
         user_name:'',
         password:'',
       },
+      options:{},
       project_number: this.$route.query.project_number,
       project_name: this.$route.query.project_name,
       isMatchedSelectAll: false,
@@ -436,6 +439,7 @@ export default {
       matchedSelectedList: [],
       delList:[],
       showDel:false,
+    
     };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
@@ -473,11 +477,13 @@ export default {
     handleMatchedSelectAll(){
  this.isMatchedSelectAll = !this.isMatchedSelectAll;
  this.matchedSelectedList = [];
+ 
       this.matchedList.map((v) => {
         if (v.produce_status == 0) {
           v.isSelect = this.isMatchedSelectAll;
           if(v.isSelect){
             this.matchedSelectedList.push(v.id)
+  
           }
         }
       });
@@ -487,10 +493,12 @@ export default {
       console.log(row);
       let flag = true;
       this.matchedSelectedList = [];
+
       this.matchedList.map((v) => {
         if (v.produce_status == 0) {
           if (v.isSelect) {
             this.matchedSelectedList.push(v.id);
+
           } else {
             flag = false;
           }
@@ -516,15 +524,33 @@ MatchedSelect(row,e){
       this.$router.go(-1);
     },
     handleGoProduction(type, row) {
-      if (this.matchedSelectedList.length == 0) {
+      if (this.matchedSelectedList.length == 0&&type==1) {
         return this.$Message.warning("请选择");
       }
+     
       if (type === 2) {
         this.cut_order_product_ids = [row.id];
+      
       } else {
         this.cut_order_product_ids = this.matchedSelectedList;
+       
+      }
+     this.axios.post('/api/bst_get_plan_time',{type:-1,id:this.cut_order_product_ids,order_no:this.$route.query.project_number}).then(res=>{
+          if(res.code == 200){
+           this.processModal = true;
+             let time = [];
+             res.data.forEach(v=>{
+                 time.push(v*1000);
+             })
+            //  console.log(Date.parse(new Date()))
+              this.options = {
+        disabledDate(date) {
+          return date && (date.valueOf() < time[0]||date.valueOf()>time[1]);
+        }
       }
-      this.processModal = true;
+          }
+        })
+      
     },
     handleProcess() {
       this.process_control = true;

+ 1 - 1
src/views/leadMatch/MatchList/matchList.vue

@@ -106,7 +106,7 @@ export default {
         {
           title: "项目简称",
           align: "center",
-          key: "project_short_title",
+          key: "abbreviation",
           resizable: true,
                         width: 350
         },

+ 25 - 25
src/views/leadMatch/weightMemo/edit.vue

@@ -310,31 +310,31 @@ export default {
      uploadError(err) {
       this.$Message.error(err.msg || "导入失败");
     },
-    uploadSuccess(res) {
-      if (res.code == 200) {
-        this.$Message.success("导入成功");
-        this.cut_order_id = res.data.cut_order_id;
-        this.formData.project_number = res.data.project_number;
-        this.formData.product_name = res.data.project_name;
-         this.formData.project_abbreviation = res.data.abbreviation;
-        this.formData.id = res.data.cut_order_id;
-        this.formData.start_time =this.func.replaceDate(res.data.crt_time);
-        console.log(this.formData.start_time)
-        if(this.infoNumber.length == 0){
-             this.infoNumber.push(res.data.children)
-             this.infoNumber[0].showType = false
-        }else{
-            this.infoNumber.push(res.data.children);
-        this.infoNumber.forEach((item,index)=>{
-          if(item.cut_order_product_id == res.data.children.cut_order_product_id){
-              this.infoNumber.pop();
-              this.infoNumber.splice(index,1,res.data.children)
-          }
-        })}
-      } else {
-        this.$Message.warning(res.msg || "导入失败");
-      }
-      },
+    // uploadSuccess(res) {
+    //   if (res.code == 200) {
+    //     this.$Message.success("导入成功");
+    //     this.cut_order_id = res.data.cut_order_id;
+    //     this.formData.project_number = res.data.project_number;
+    //     this.formData.product_name = res.data.project_name;
+    //      this.formData.project_abbreviation = res.data.abbreviation;
+    //     this.formData.id = res.data.cut_order_id;
+    //     this.formData.start_time =this.func.replaceDate(res.data.crt_time);
+    //     console.log(this.formData.start_time)
+    //     if(this.infoNumber.length == 0){
+    //          this.infoNumber.push(res.data.children)
+    //          this.infoNumber[0].showType = false
+    //     }else{
+    //         this.infoNumber.push(res.data.children);
+    //     this.infoNumber.forEach((item,index)=>{
+    //       if(item.cut_order_product_id == res.data.children.cut_order_product_id){
+    //           this.infoNumber.pop();
+    //           this.infoNumber.splice(index,1,res.data.children)
+    //       }
+    //     })}
+    //   } else {
+    //     this.$Message.warning(res.msg || "导入失败");
+    //   }
+    //   },
     show(item,index) {
         
         // item.showType = !item.showType

+ 1 - 1
vue.config.js

@@ -1,6 +1,6 @@
 const axios_default_ip =
   process.env.NODE_ENV == "dev"
-    ? "http://121.37.173.82:82"
+    ? "http://121.41.102.225:82"
     : process.env.NODE_ENV == "test-prd"
     ? "http://121.37.173.82:82" //测试服
     : process.env.NODE_ENV == "prd_other"

BIN
dist (4).zip → 上线服务.zip