<style lang="less" > #tipProcessProgress{ height:100%; background:#eef4fe; display:flex; flex-direction: column; /deep/ .weui-cell_access .weui-cell__ft:after{ height: 10px; width: 10px; margin-top: -4px; right: 0; } .Table{ flex-grow: 1; height:1px; overflow: auto; } } </style> <template> <div id="tipProcessProgress"> <div class="header"> <searchComponent placeholder="请输入订单号/合同号/供应商/客户..." :search="search" :typeList="typeList" :status="status"/> </div> <div class="Table"> <customerTable :columns="columns" :list="list" :tableStyle="tableStyle"></customerTable> </div> </div> </template> <script> import Util from '@/libs/util.js' import searchComponent from '@/components/search' import customerTable from '@/components/Table' export default { name: 'tipProcessProgress', data () { return { search:{ dBeginDate:Util.dateFormat(new Date(),'yyyy-MM-01'), dEndDate:Util.dateFormat(new Date(),'yyyy-MM-dd'), page:1, per_page:20, sStatus:'全部' }, list:[], columns:[ { width:'100px', name:'加工单号', align:'center', field:'sContractNoHTML', underline:true, color:'#2d8cf0', fixed:true, fixedLeftWidth:'0px' }, { width:'100px', name:'加工商', align:'center', field:'sProviderName', }, { width:'100px', name:'加工工艺', align:'center', field:'sProduceArtInfo' }, { width:'100px', name:'总数量', align:'center', field:'nQty', }, { width:'100px', name:'总金额', align:'center', field:'nDtlAmount' }, { width:'100px', name:'订单号', align:'center', field:'sOrderNo' }, { width:'100px', name:'客户名称', align:'center', field:'sCustomerName' }, { width:'100px', name:'订单总数量', align:'center', field:'nQtyOrder' }, { width:'100px', name:'销售员', align:'center', field:'sSalesName' }, { width:'100px', name:'状态', align:'center', field:'sStatus' }, { width:'100px', name:'已入库数量', align:'center', field:'nDeliveriedQty' }, { width:'100px', name:'已入库匹数', align:'center', field:'nDeliveriedPieces' } ], tableStyle:{ theadBgColor:'rgba(223,238,253,1)', complexTrBgColor:'white', singleTrBgColor:'#eef4fe', theadTdBorder:false, tbodyTdBorder:false, tbodyHeight:'calc(100vh - 120px)', tbodyTrBorderBottom:'1px solid #dbe9f8', width:'1200px' }, status:[], row:{}, typeList:{ input:true, select:true, btns:true, time:true }, } }, async mounted(){ this.$store.dispatch('saveUserId',this.$route.params.userId); await this.getStatus(); await this.getHdr(); }, async activated(){ window.d = this; this.global.$off('searchData'); this.global.$off('scrollTable'); this.global.$off('clickTd'); //查询条件触发加载 this.global.$on('searchData',async ()=>{ await this.cleanSearch(); await this.getHdr(); }); //滚动加载 this.global.$on('scrollTable',async ()=>{ this.getHdr(true); }) //点击表格列触发 this.global.$on('clickTd',async(res)=>{ this.row = this.list[res.trIndex]; this.routerToDetail(); }) }, methods:{ async getStatus(){ let res = await this.request(`getTipProcessProgress`,{ data:[{key:'url',value:'sStatus'}] },true); this.status = res; this.status.unshift({ sStatus:'全部' }) }, async getHdr(flag){ if(this.search.per_page < 20){ this.$vux.toast.text('已加载全部数据!', 'middle') return false; } let data = Util.deepClone(this.search); let postData = [ {key:'url',value:'Processing schedule'} ] let {keys, values, entries} = Object; for(let [key,value] of entries(data)){ if(key == 'sStatus'){ if(value != '全部'){ postData.push({key:key,value:value || ''}) } }else if(key == 'dBeginDate'){ postData.push({key:key,value:value || ''}) }else if(key == 'dEndDate'){ postData.push({key:key,value:value + ' 23:59:59' || ''}) }else if(key == 'searchvalue'){ postData.push({key:'searchvalue',value:value}) } } let res = await this.request('getTipProcessProgress',{ data:postData, params:{ page:this.search.page, per_page:this.search.per_page } },'加载中') // if(res.length > 0){ res.map(y=>{ y.sContractNoHTML = `<div><span style="text-decoration:underline;">${y.sContractNo}</span></div>`; y.child.map(x=>{ x.nInputQtyRate = (x.nInputQtyRate * 100).toFixed(2) + '%'; x.tDropInTime = !!x.tDropInTime ? Util.dateFormat(x.tDropInTime,'yyyy-MM-dd') : ''; x.tProductOutTime = !!x.tProductOutTime ? Util.dateFormat(x.tProductOutTime,'yyyy-MM-dd') : ''; }) }); if(flag){ this.list = this.list.concat(res); }else{ this.list = res; } this.search.page++; this.search.per_page = res.length; // } }, cleanSearch(){ this.search.page = 1; this.search.per_page = 20; this.list = []; }, async routerToDetail(){ this.$store.dispatch('saveCheckProgressHdr',{ type:'process', row:this.row }); this.$router.push({name:'tipProcessProgressDetail'}) }, }, components:{ searchComponent, customerTable }, } </script>