Commit 1d57409a authored by godwithdh's avatar godwithdh

往来单位

parents d345fbb8 e63b5c7a
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
'background':index % 2 == 0 ? tableStyle.complexTrBgColor : tableStyle.singleTrBgColor, 'background':index % 2 == 0 ? tableStyle.complexTrBgColor : tableStyle.singleTrBgColor,
'text-overflow': x.ellipsis ? 'ellipsis' : 'none', 'text-overflow': x.ellipsis ? 'ellipsis' : 'none',
'overflow': x.ellipsis ? 'hidden' : 'none', 'overflow': x.ellipsis ? 'hidden' : 'none',
'white-space': x.ellipsis ? 'normal' : 'none', 'white-space': x.ellipsis ? 'nowrap' : 'none',
'position': x.fixed ? 'sticky' : 'static', 'position': x.fixed ? 'sticky' : 'static',
'left':x.fixed ? x.fixedLeftWidth : 'none', 'left':x.fixed ? x.fixedLeftWidth : 'none',
'border-left':tableStyle.tbodyTdBorder ? tableStyle.tbodyTrBorderBottom : '0px', 'border-left':tableStyle.tbodyTdBorder ? tableStyle.tbodyTrBorderBottom : '0px',
...@@ -154,15 +154,18 @@ ...@@ -154,15 +154,18 @@
'word-break': 'break-all' 'word-break': 'break-all'
}" }"
@click="clickTd(i,index)" @click="clickTd(i,index)"
v-html="item[x.field]"
> >
<RENDER v-if="x.render" :item="item" :index="index" :columns="x"></RENDER>
<span v-if="!x.render" v-html="item[x.field]"></span>
</td> </td>
</tr> </tr>
<slot></slot> <slot></slot>
</div> </div>
<div class="_tfoot" ref="tfoot" @scroll="scrollTFoot" v-if="showFooter & footerData.length > 0"> <div class="_tfoot" ref="tfoot" @scroll="scrollTFoot" v-if="showFooter & footerData.length > 0">
<tr v-for="(x,i) in footerData" :key="i" :style="{'width':'100%','min-width':tableStyle.width}"> <tr v-for="(x,i) in footerData" :key="i" :style="{'width':'100%','min-width':tableStyle.width,'min-height':'60px'}">
<td <td
v-for="(item,index) in columns" v-for="(item,index) in columns"
:key="index" :key="index"
...@@ -172,11 +175,13 @@ ...@@ -172,11 +175,13 @@
'min-width':item.width, 'min-width':item.width,
'background':tableStyle.theadBgColor, 'background':tableStyle.theadBgColor,
'position': item.fixed ? 'sticky' : 'static', 'position': item.fixed ? 'sticky' : 'static',
'min-height':'60px',
'left':item.fixed ? item.fixedLeftWidth : 'none', 'left':item.fixed ? item.fixedLeftWidth : 'none',
'border-top':tableStyle.theadTdBorder ? tableStyle.tbodyTrBorderBottom : '0px', 'border-top':tableStyle.theadTdBorder ? tableStyle.tbodyTrBorderBottom : '0px',
'border-left':tableStyle.theadTdBorder ? tableStyle.tbodyTrBorderBottom : '0px', 'border-left':tableStyle.theadTdBorder ? tableStyle.tbodyTrBorderBottom : '0px',
'border-bottom':tableStyle.theadTdBorder ? tableStyle.tbodyTrBorderBottom : '0px', 'border-bottom':tableStyle.theadTdBorder ? tableStyle.tbodyTrBorderBottom : '0px',
'border-right':(index == columns.length - 1 && tableStyle.theadTdBorder) ? tableStyle.tbodyTrBorderBottom : '0px', 'border-right':(index == columns.length - 1 && tableStyle.theadTdBorder) ? tableStyle.tbodyTrBorderBottom : '0px',
'text-decoration':'none'
}" }"
v-html="x[item.field]" v-html="x[item.field]"
> >
...@@ -193,6 +198,31 @@ ...@@ -193,6 +198,31 @@
<script> <script>
import Util from '@/libs/util.js' import Util from '@/libs/util.js'
import Vue from 'vue';
Vue.component('RENDER', {
render: function (createElement) {
let self = this;
return this.columns.render(createElement,{
row:this.item,
index:this.index
});
},
props: {
columns: {
type: Object,
required: true
},
item:{
type: Object,
required: true
},
index:{
type: Number,
required: true
}
}
})
export default { export default {
name: 'Table', name: 'Table',
......
...@@ -12,9 +12,9 @@ function urlFun(name){ ...@@ -12,9 +12,9 @@ function urlFun(name){
/** /**
* 默认公司 * 默认公司
*/ */
// default:`http://192.168.4.2:5001`, default:`http://192.168.4.34:5001`,
// default:`https://weixin.huansi.net/apiproxy/huansi/hszh_HSFabricTradeTest`, // default:`https://weixin.huansi.net/apiproxy/huansi/hszh_HSFabricTradeTest`,
default:`https://weixin.huansi.net/apiproxy/huansi/service/proxy/${userID}`, // default:`https://weixin.huansi.net/apiproxy/huansi/service/proxy/${userID}`,
/** /**
* 基本地址 * 基本地址
......
...@@ -239,11 +239,11 @@ let tipRoutes = [ ...@@ -239,11 +239,11 @@ let tipRoutes = [
path:'/main', path:'/main',
children:[ children:[
{ {
path:'/tiip/orderDetails/list/:type', path:'/tiip/orderDetails/list',
name:'orderDetailsIndex', name:'orderDetailsIndex',
component:()=> import('@/view/tiip/orderDetails/index.vue'), component:()=> import('@/view/tiip/orderDetails/index.vue'),
meta:{ meta:{
title: '采购信息' title: '订单详情'
} }
}, },
] ]
......
...@@ -10,9 +10,14 @@ const obj = { ...@@ -10,9 +10,14 @@ const obj = {
}, },
orderItem:{}, orderItem:{},
warehouseDetail:{}, warehouseDetail:{},
customerItem:{} customerItem:{},
kanban:{},
orderDetail:{}
}, },
mutations: { mutations: {
saveKanban(state,data){
state.kanban[data.type] = data.item;
},
saveKanbanHdr(state,data){ saveKanbanHdr(state,data){
state.hdr = data; state.hdr = data;
}, },
...@@ -24,9 +29,15 @@ const obj = { ...@@ -24,9 +29,15 @@ const obj = {
}, },
saveCustomerItem(state,data){ saveCustomerItem(state,data){
state.customerItem = data; state.customerItem = data;
} },
saveKanbanOrderDetail(state,data){
state.orderDetail = data;
},
}, },
actions: { actions: {
saveKanban({commit},data){
commit('saveKanban',data);
},
saveKanbanHdr({commit},data){ saveKanbanHdr({commit},data){
commit('saveKanbanHdr',data); commit('saveKanbanHdr',data);
}, },
...@@ -38,7 +49,10 @@ const obj = { ...@@ -38,7 +49,10 @@ const obj = {
}, },
saveCustomerItem({commit},data){ saveCustomerItem({commit},data){
commit('saveCustomerItem',data); commit('saveCustomerItem',data);
} },
saveKanbanOrderDetail({commit},data){
commit('saveKanbanOrderDetail',data);
},
} }
}; };
......
...@@ -124,15 +124,18 @@ ...@@ -124,15 +124,18 @@
</div> </div>
<div class="TAB"> <div class="TAB">
<button-tab class="buttonTab" :value="activeBtn" > <button-tab class="buttonTab" :value="activeBtn" >
<button-tab-item @on-item-click="situation='salesStatistics'">销售统计</button-tab-item> <button-tab-item @on-item-click="changeTab">销售统计</button-tab-item>
<button-tab-item @on-item-click="situation='empAna'">员工排行</button-tab-item> <button-tab-item @on-item-click="changeTab">员工排行</button-tab-item>
<button-tab-item @on-item-click="situation='liabilities'">负债分析</button-tab-item> <button-tab-item @on-item-click="changeTab">负债分析</button-tab-item>
<button-tab-item @on-item-click="situation='custom'">账单分析</button-tab-item> <button-tab-item @on-item-click="changeTab">账单分析</button-tab-item>
<button-tab-item @on-item-click="situation='income'">收支分析</button-tab-item> <button-tab-item @on-item-click="changeTab">收支分析</button-tab-item>
</button-tab> </button-tab>
</div> </div>
<div class="CONTENT"> <div class="CONTENT">
<keep-alive>
<component :is="situation"/> <component :is="situation"/>
</keep-alive>
</div> </div>
</div> </div>
</template> </template>
...@@ -172,6 +175,26 @@ export default { ...@@ -172,6 +175,26 @@ export default {
await this.getData(); await this.getData();
}, },
methods:{ methods:{
changeTab(index){
switch(index){
case 0:
this.situation='salesStatistics';
break;
case 1:
this.situation='empAna';
break;
case 2:
this.situation='liabilities';
break;
case 3:
this.situation='custom';
break;
case 4:
this.situation='income';
break;
}
},
async getData(){ async getData(){
let res = await this.request('getCipTotalamount',{ let res = await this.request('getCipTotalamount',{
data:{} data:{}
......
...@@ -140,7 +140,6 @@ export default { ...@@ -140,7 +140,6 @@ export default {
await this.getData(); await this.getData();
}, },
async activated(){ async activated(){
}, },
methods:{ methods:{
async getData(){ async getData(){
......
...@@ -74,15 +74,15 @@ ...@@ -74,15 +74,15 @@
<div class="iCard" v-for="(item,index) in chartData" :key="index" @click="routerToWarehouseDetail(item)"> <div class="iCard" v-for="(item,index) in chartData" :key="index" @click="routerToWarehouseDetail(item)">
<div class="warehouse" :style="{'color':'white'}">{{item.sStoreName}}</div> <div class="warehouse" :style="{'color':'white'}">{{item.sStoreName}}</div>
<div class="TITLE"> <div class="TITLE">
<span>单位</span>
<span>总匹数</span>
<span>总数量</span> <span>总数量</span>
<span>总匹数</span>
<span>单位</span>
</div> </div>
<div class="unit" v-for="(v,i) in item.child" :key="i"> <div class="unit" v-for="(v,i) in item.child" :key="i">
<div class="ITEM"> <div class="ITEM">
<span>{{v.sUnit}}</span>
<span style="color:#8a8a8a;">{{Number(v.nStockPieceQty).toLocaleString()}}</span>
<span style="color:#8a8a8a;">{{Number(v.nQty).toLocaleString()}}</span> <span style="color:#8a8a8a;">{{Number(v.nQty).toLocaleString()}}</span>
<span style="color:#8a8a8a;">{{Number(v.nStockPieceQty).toLocaleString()}}</span>
<span>{{v.sUnit}}</span>
</div> </div>
</div> </div>
</div> </div>
...@@ -191,6 +191,9 @@ export default { ...@@ -191,6 +191,9 @@ export default {
await this.renderChart(); await this.renderChart();
}) })
}, },
activated(){
document.getElementsByClassName('content')[0].scrollTo(0,this.$store.state.kanban.kanban.inventory.scrollTop)
},
methods:{ methods:{
renderResize() { renderResize() {
// 判断横竖屏 // 判断横竖屏
...@@ -339,6 +342,13 @@ export default { ...@@ -339,6 +342,13 @@ export default {
// if(res.hasOwnProperty('set2')) this.list = res.set2; // if(res.hasOwnProperty('set2')) this.list = res.set2;
}, },
routerToWarehouseDetail(item){ routerToWarehouseDetail(item){
this.$store.dispatch('saveKanban',{
type:'inventory',
item:{
scrollTop:document.getElementsByClassName('content')[0].scrollTop
}
});
this.$store.dispatch('saveWarehouseDetail',item); this.$store.dispatch('saveWarehouseDetail',item);
this.$router.push({name:'tiipChartWarehouseDetail'}); this.$router.push({name:'tiipChartWarehouseDetail'});
} }
......
...@@ -35,13 +35,13 @@ ...@@ -35,13 +35,13 @@
<div class="abnormal"> <div class="abnormal">
<table cellspacing="0" > <table cellspacing="0" >
<tr> <tr>
<td style="width:100px;"> <td style="width:100px;" @click="routerPushOperateDetail('销售退货')">
<div>销售退货</div> <div>销售退货</div>
</td> </td>
<td> <td>
<div>{{Number(value['销售退货']||0).toLocaleString()}}</div> <div>{{Number(value['销售退货']||0).toLocaleString()}}</div>
</td> </td>
<td style="width:100px;"> <td style="width:100px;" @click="routerPushOperateDetail('采购退货')">
<div>采购退货</div> <div>采购退货</div>
</td> </td>
<td> <td>
...@@ -49,13 +49,13 @@ ...@@ -49,13 +49,13 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td @click="routerPushOperateDetail('加工回修')">
<div>加工回修</div> <div>加工回修</div>
</td> </td>
<td> <td>
<div>{{Number(value['加工回修']||0).toLocaleString()}}</div> <div>{{Number(value['加工回修']||0).toLocaleString()}}</div>
</td> </td>
<td> <td @click="routerPushOperateDetail('疵品汇总')">
<div>疵品数量</div> <div>疵品数量</div>
</td> </td>
<td> <td>
...@@ -80,13 +80,13 @@ ...@@ -80,13 +80,13 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td @click="routerPushOperateDetail('供应商索赔')">
<div>供应商赔款</div> <div>供应商赔款</div>
</td> </td>
<td> <td>
<div>{{Number(value['供应商索赔']||0).toLocaleString()}}</div> <div>{{Number(value['供应商索赔']||0).toLocaleString()}}</div>
</td> </td>
<td> <td @click="routerPushOperateDetail('客户索赔')">
<div>客户赔款</div> <div>客户赔款</div>
</td> </td>
<td> <td>
...@@ -94,13 +94,13 @@ ...@@ -94,13 +94,13 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td @click="routerPushOperateDetail('超期应收')">
<div>超期应收额</div> <div>超期应收额</div>
</td> </td>
<td> <td>
<div>{{Number(value['超期应收']||0).toLocaleString()}}</div> <div>{{Number(value['超期应收']||0).toLocaleString()}}</div>
</td> </td>
<td> <td @click="routerPushOperateDetail('超期应付')">
<div>超期应付额</div> <div>超期应付额</div>
</td> </td>
<td> <td>
...@@ -155,6 +155,15 @@ export default { ...@@ -155,6 +155,15 @@ export default {
}) })
} }
}, },
routerPushOperateDetail(type){
let data = {};
data.sType = type;
data.begin_date = util.dateFormat(this.start,"yyyy-MM-dd");
data.end_date = (this.end?util.dateFormat(this.end,"yyyy-MM-dd"):util.dateFormat(new Date,"yyyy-MM-dd"))+' 23:59';
this.$store.dispatch('saveKanbanHdr',data);
this.$store.dispatch('saveRefresh',true);
this.$router.push({name:'tiipOperateDetail',type:type})
}
}, },
} }
</script> </script>
...@@ -124,7 +124,7 @@ ...@@ -124,7 +124,7 @@
<span :class="{active:situation=='capital'}" @click="situation='capital'">资金概况</span> <span :class="{active:situation=='capital'}" @click="situation='capital'">资金概况</span>
<span :class="{active:situation=='Finance'}" @click="situation='Finance'">财务概况</span> <span :class="{active:situation=='Finance'}" @click="situation='Finance'">财务概况</span>
<span :class="{active:situation=='abnormal'}" @click="situation='abnormal'">异常预警</span> <span :class="{active:situation=='abnormal'}" @click="situation='abnormal'">异常预警</span>
<span :class="{active:situation=='tiipChartInventory'}" @click="situation='tiipChartInventory'">库存情况</span> <span :class="{active:situation=='tiipChartInventory'}" @click="situation='tiipChartInventory'">库存资金</span>
</div> </div>
<div class="content"> <div class="content">
<component :is="situation" :dateMode="dateMode" :start="DateValue[0]" :end="DateValue[1]"/> <component :is="situation" :dateMode="dateMode" :start="DateValue[0]" :end="DateValue[1]"/>
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<template> <template>
<div id="tiipOperateCustomDetail"> <div id="tiipOperateCustomDetail">
<div class="Table"> <div class="Table">
<customerTable :columns="columns" :list="list" :tableStyle="tableStyle"></customerTable> <customerTable :showFooter="true" :columns="columns" :list="list" :tableStyle="tableStyle"></customerTable>
</div> </div>
</div> </div>
</template> </template>
...@@ -30,45 +30,20 @@ export default { ...@@ -30,45 +30,20 @@ export default {
data () { data () {
return { return {
list:[], list:[],
columns:[ columns:[],
{
width:'25%',
name:'单号',
align:'center',
field:'sOrderNoHTML',
underline:true,
color:'#2d8cf0',
},
{
width:'25%',
name:'数量',
align:'center',
field:'nQty',
},
{
width:'25%',
name:'金额',
align:'center',
field:'nAmountHTML',
},
{
width:'25%',
name:'状态',
align:'center',
field:'sStatus'
}
],
tableStyle:{ tableStyle:{
theadBgColor:'rgba(223,238,253,1)', theadBgColor:'rgba(223,238,253,1)',
complexTrBgColor:'white', complexTrBgColor:'white',
singleTrBgColor:'#eef4fe', singleTrBgColor:'#eef4fe',
theadTdBorder:false, theadTdBorder:false,
tbodyTdBorder:false, tbodyTdBorder:false,
tbodyHeight:'calc(100vh)', tbodyHeight:'calc(100vh - 60px)',
tbodyTrBorderBottom:'1px solid #dbe9f8', tbodyTrBorderBottom:'1px solid #dbe9f8',
width:'100%' width:'100%'
}, },
type:'custom' type:'custom',
page:1,
per_page:50
} }
}, },
computed:{ computed:{
...@@ -81,53 +56,311 @@ export default { ...@@ -81,53 +56,311 @@ export default {
window.d = this; window.d = this;
}, },
async activated(){ async activated(){
this.page = 1;
this.per_page = 50;
this.type = this.$route.params.type; this.type = this.$route.params.type;
let title = '';
if(this.hdr.sType == '采购'){ if(this.hdr.sType == '采购'){
title = '采购'; this.$store.dispatch("CAHNGE_META_INFO", {title:(this.type == 'custom' ? '采购' : '产品') + '订单列表'});
}else if(this.hdr.sType == '加工'){ }else if(this.hdr.sType == '加工'){
title = '加工'; this.$store.dispatch("CAHNGE_META_INFO", {title:(this.type == 'custom' ? '加工' : '产品') + '订单列表'});
}else if(this.hdr.sType == '检验'){ }else if(this.hdr.sType == '检验'){
title = '检验'; this.$store.dispatch("CAHNGE_META_INFO", {title:(this.type == 'custom' ? '检验' : '产品') + '订单列表'});
}else if(this.hdr.sType == '采购退货'){
this.$store.dispatch("CAHNGE_META_INFO", {title:(this.type == 'custom' ? '采购退货' : '产品') + '订单列表'});
}else if(this.hdr.sType == "客户索赔"){
this.$store.dispatch("CAHNGE_META_INFO", {title:this.customerItem.sCustomerName + '理赔列表'});
}else if(this.hdr.sType == "供应商索赔"){
this.$store.dispatch("CAHNGE_META_INFO", {title:this.customerItem.sProviderName + '理赔列表'});
}else{ }else{
title = '客户'; this.$store.dispatch("CAHNGE_META_INFO", {title:(this.type == 'custom' ? '客户' : '产品') + '订单列表'});
}
if(this.hdr.sType == '采购退货' || this.hdr.sType == '销售退货'){
this.columns = [
{
width:'25%',
name:'单号',
align:'center',
field:this.hdr.sType == '销售退货' ? 'sStoreInNoHTML' : 'sStoreOutNoHTML',
underline:true,
color:'#2d8cf0',
},
{
width:'25%',
name:'匹数',
align:'center',
field:'nPieceHTML'
},
{
width:'25%',
name:'数量',
align:'center',
field:'nQtyHTML',
},
{
width:'25%',
name:'金额',
align:'center',
field:'nAmountHTML',
}
]
}else if(this.hdr.sType == '供应商索赔' || this.hdr.sType == '客户索赔'){
this.columns = [
{
width:'25%',
name:'单号',
align:'center',
field:this.hdr.sType == '供应商索赔' ? 'sPayableNO' : 'sReceivableNO',
underline:true,
color:'#2d8cf0',
field:this.hdr.sType == '供应商索赔' ? params.row.sPayableNO : params.row.sReceivableNO,
render: (h,params) => {
return h('span',{
style: {
'text-decoration':'underline',
}
},this.hdr.sType == '供应商索赔' ? params.row.sPayableNO : params.row.sReceivableNO)
}
},
{
width:'25%',
name:'金额',
align:'center',
field:'nAmountHTML',
},
{
width:'25%',
name:'汇率',
align:'center',
field:'nExchangeRate'
},
{
width:'25%',
name:'日期',
align:'center',
render: (h,params) => {
return h('span',Util.dateFormat(this.hdr.sType == '供应商索赔' ? params.row.dPayableDate : params.row.dReceivableDate,'yyyy-MM-dd'))
}
},
]
}else if(this.hdr.sType == '疵品汇总'){
this.columns = [
{
width:'25%',
name:'单号',
align:'center',
underline:true,
color:'#2d8cf0',
field:'sStoreInNo',
render: (h,params) => {
return h('span',{
style: {
'text-decoration':'underline',
},
on:{
'click':()=>{
this.getDetail(2,this.hdr.sType,params.row.sStoreInNo);
}
}
},params.row.sStoreInNo)
}
},
{
width:'25%',
name:'匹数',
align:'center',
field:'nStockPieceQty'
},
{
width:'25%',
name:'数量',
align:'center',
field:'nStockQty',
},
{
width:'25%',
name:'金额',
align:'center',
field:'nAmount',
color:'#339966'
}
]
}else if(this.hdr.sType == '超期应收' || this.hdr.sType == '超期应付'){
this.columns = [
{
width:'20%',
name:'单号',
align:'center',
field:this.hdr.sType == '超期应付' ? 'sPayableNO' : 'sReceivableNO',
underline:true,
color:'#2d8cf0',
field:this.hdr.sType == '超期应付' ? params.row.sPayableNO : params.row.sReceivableNO,
render: (h,params) => {
return h('span',{
style: {
'text-decoration':'underline',
}
},this.hdr.sType == '超期应付' ? params.row.sPayableNO : params.row.sReceivableNO)
}
},
{
width:'20%',
name:'金额',
align:'center',
field:'nAmount',
color:'#339966'
},
{
width:'20%',
name:'数量',
align:'center',
field:'nQty',
},
{
width:'20%',
name:'汇率',
align:'center',
field:'nExchangeRate'
},
{
width:'20%',
name:'日期',
align:'center',
render: (h,params) => {
return h('span',Util.dateFormat(this.hdr.sType == '超期应付' ? params.row.dPayableDate : params.row.dReceivableDate,'yyyy-MM-dd'))
}
}
]
}else{
this.columns = [
{
width:'25%',
name:'单号',
align:'center',
field:'sOrderNoHTML',
underline:true,
color:'#2d8cf0',
},
{
width:'25%',
name:'数量',
align:'center',
field:'nQty',
},
{
width:'25%',
name:'金额',
align:'center',
field:'nAmountHTML',
},
{
width:'25%',
name:'状态',
align:'center',
field:'sStatus'
}
]
} }
this.$store.dispatch("CAHNGE_META_INFO", {title:(this.type == 'custom' ? title : '产品') + '订单列表'});
await this.getData(); await this.getData();
this.global.$off('clickTd'); this.global.$off('clickTd');
//点击表格列触发 //点击表格列触发
this.global.$on('clickTd',async(res)=>{ this.global.$on('clickTd',async(res)=>{
if(this.hdr.sType == '接单'){
this.list[res.trIndex].dReceivedDate = Util.dateFormat(this.list[res.trIndex].dReceivedDate,'yyyy-MM-dd');
this.$store.dispatch('searchOrderSaveHdr',this.list[res.trIndex]);
this.$router.push({name:'searchOrderTrack'})
}else if(this.hdr.sType == '采购' || this.hdr.sType == '加工' || this.hdr.sType == '成品入库' || this.hdr.sType == '销售' || this.hdr.sType == '检验' || this.hdr.sType == '收货'){
await this.getDetail(1,this.hdr.sType,this.list[res.trIndex].sOrderNo);
}else if(this.hdr.sType == '供应商索赔' || this.hdr.sType == '超期应付'){
await this.getDetail(2,this.hdr.sType,this.list[res.trIndex].sPayableNO);
}else if(this.hdr.sType == '客户索赔' || this.hdr.sType == '超期应收'){
await this.getDetail(2,this.hdr.sType,this.list[res.trIndex].sReceivableNO);
}else if(this.hdr.sType == '加工回修'){
await this.getDetail(2,this.hdr.sType,this.list[res.trIndex].sOrderNo);
}else if(this.hdr.sType == '销售退货'){
await this.getDetail(2,this.hdr.sType,this.list[res.trIndex].sStoreInNo);
}else if(this.hdr.sType == '采购退货' ){
await this.getDetail(2,this.hdr.sType,this.list[res.trIndex].sStoreOutNo);
}
})
this.global.$off('scrollTable');
this.global.$on('scrollTable',async ()=>{
this.getData(true)
}) })
}, },
methods:{ methods:{
async getData(){ async getData(flag){
if(this.per_page < 50){
this.$vux.toast.text('已加载全部数据!', 'middle')
return false;
}
let postData = [ let postData = [
{key:"url",value:this.type == 'custom' ? 'Operation gai sType-customer-sOrder' : 'Operation gai sType-material-sOrder'}, {key:"url",value:this.type == 'custom' ? 'Operation gai sType-customer-sOrder' : 'Operation gai sType-material-sOrder'},
{key:"sType",value:this.hdr.sType}, {key:"sType",value:this.hdr.sType},
{key:"begin_date",value:this.hdr.begin_date}, {key:"begin_date",value:this.hdr.begin_date},
{key:"end_date",value:this.hdr.end_date} {key:"end_date",value:this.hdr.end_date},
]; ];
if(this.type == 'custom'){ if(this.type == 'custom'){
if(this.hdr.sType == '采购' || this.hdr.sType == '加工' || this.hdr.sType == '检验' || this.hdr.sType == '收货' || this.hdr.sType == '成品入库'){ if(this.hdr.sType == '采购退货' || this.hdr.sType == '采购' || this.hdr.sType == '加工' || this.hdr.sType == '检验' || this.hdr.sType == '收货' || this.hdr.sType == '成品入库' || this.hdr.sType == '加工回修'){
postData.push({key:"upbProviderGUID",value:this.customerItem.upbProviderGUID}) postData.push({key:"upbProviderGUID",value:this.customerItem.upbProviderGUID});
if(this.hdr.sType == '采购退货' || this.hdr.sType == '加工回修'){
postData[0].value = 'Abnormal early warning-customer-sOrder'
}
}else if(this.hdr.sType == '供应商索赔' || this.hdr.sType == '超期应付' ){
postData[0].value = 'Abnormal early warning-customer-sOrder'
postData.push({key:"upbProviderGUID",value:this.customerItem.ufiCheckItemGUID});
}else if(this.hdr.sType == '客户索赔' || this.hdr.sType == '超期应收'){
postData[0].value = 'Abnormal early warning-customer-sOrder'
postData.push({key:"upbCustomerGUID",value:this.customerItem.ufiCheckItemGUID});
}else{ }else{
postData.push({key:"upbCustomerGUID",value:this.customerItem.upbCustomerGUID}) postData.push({key:"upbCustomerGUID",value:this.customerItem.upbCustomerGUID});
if(this.hdr.sType == '销售退货' || this.hdr.sType == '疵品汇总'){
postData[0].value = 'Abnormal early warning-customer-sOrder'
}
} }
}else{ }else{
postData.push({key:"sSampleMaterialNo",value:this.customerItem.sSampleMaterialNo}) postData.push({key:"sSampleMaterialNo",value:this.customerItem.sSampleMaterialNo})
} }
let res = await this.request('getBoss',{ let res = await this.request('getBoss',{
data:postData, data:postData,
params:{}, params:{
page:this.page,
per_page:this.per_page
},
},'加载中',{}) },'加载中',{})
res.map(x=>{ res.map((x,y)=>{
x.sOrderNoHTML = `<div><span style="text-decoration:underline;">${x.sOrderNo}</span></div>`; x.sOrderNoHTML = `<div><span style=${y == res.length - 1 ? 'text-decoration:none' : 'text-decoration:underline'}>${x.sOrderNo}</span></div>`;
x.nAmountHTML = `<div><span style="color:#339966;">${x.nAmount}</span></div>`; x.nAmountHTML = `<div><span style="color:#339966;">${x.nAmount}</span></div>`;
if(this.hdr.sType == '销售退货' || this.hdr.sType == '采购退货'){
x.nQtyHTML = `<div><span">${this.hdr.sType == '销售退货' ? x.nSumInQty :x.nSumOutQty}</span></div>`;
x.nPieceHTML = `<div><span">${this.hdr.sType == '销售退货' ? x.nInPieceQty :x.nOutPieceQty}</span></div>`;
if(this.hdr.sType == '销售退货'){
x.sStoreInNoHTML = `<div><span style=${y == res.length - 1 ? 'text-decoration:none' : 'text-decoration:underline'}>${x.sStoreInNo}</span></div>`;
}else{
x.sStoreOutNoHTML = `<div><span style=${y == res.length - 1 ? 'text-decoration:none' : 'text-decoration:underline'}>${x.sStoreOutNo}</span></div>`;
}
}
}) })
this.list = res; if(flag){
this.list.splice(this.list.length - 1,1);
this.list = this.list.concat(res);
}else{
this.list = res;
}
this.page++;
this.per_page = res.length - 1;
},
async getDetail(mode,sType,sOrderNo){
let postData = [
{key:"url",value:mode == 1 ? 'Operation gai sType-customer-sOrder-dtl' : 'Abnormal early warning-customer-sOrder-dtl'},
{key:"sType",value:sType},
{key:"sOrderNo",value:sOrderNo},
]
let result = await this.request('getBoss',{data:postData,params:{}},'加载中',{});
this.$store.dispatch('saveKanbanOrderDetail',result);
this.$router.push({name:'orderDetailsIndex'})
} }
}, },
components:{ components:{
......
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
<span v-for="(item,index) in tabList" :key="index" :class="[activeTab==item.key?'active':'']" @click="changeTab(item.key)">{{item.value}}</span> <span v-for="(item,index) in tabList" :key="index" :class="[activeTab==item.key?'active':'']" @click="changeTab(item.key)">{{item.value}}</span>
</div> </div>
<div class="Table"> <div class="Table">
<customerTable :columns="activeTab == 0 ? columns : columns1" :list="list" :tableStyle="tableStyle"></customerTable> <customerTable :showFooter="true" :columns="activeTab == 0 ? columns : columns1" :list="list" :tableStyle="tableStyle"></customerTable>
</div> </div>
</div> </div>
</template> </template>
...@@ -100,35 +100,16 @@ export default { ...@@ -100,35 +100,16 @@ export default {
singleTrBgColor:'#eef4fe', singleTrBgColor:'#eef4fe',
theadTdBorder:false, theadTdBorder:false,
tbodyTdBorder:false, tbodyTdBorder:false,
tbodyHeight:'calc(100%)', tbodyHeight:'calc(100vh - 50px - 60px)',
tbodyTrBorderBottom:'1px solid #dbe9f8', tbodyTrBorderBottom:'1px solid #dbe9f8',
width:'100%' width:'100%'
}, },
activeTab:0, activeTab:0,
tabList:[], tabList:[],
columns1:[ columns1:[],
{
width:'40%',
name:'产品',
align:'center',
field:'sMaterial',
color:'#2d8cf0',
underline:true,
},
{
width:'30%',
name:'数量',
align:'center',
field:'nQtyHTML',
},
{
width:'30%',
name:'金额',
align:'center',
field:'nAmountHTML',
}
],
showTab:true, showTab:true,
page:1,
per_page:50
} }
}, },
computed:{ computed:{
...@@ -144,14 +125,38 @@ export default { ...@@ -144,14 +125,38 @@ export default {
}) })
}, },
async activated(){ async activated(){
this.page = 1;
this.per_page = 50;
this.showTab = true; this.showTab = true;
if(this.isRefresh){ if(this.isRefresh){
this.activeTab = 0; this.activeTab = 0;
this.$store.dispatch('saveRefresh',false); this.$store.dispatch('saveRefresh',false);
} }
this.tableStyle.tbodyHeight = 'calc(100vh - 50px - 60px)';
this.$store.dispatch("CAHNGE_META_INFO", {title:this.hdr.sType + '详情'}); this.$store.dispatch("CAHNGE_META_INFO", {title:this.hdr.sType + '详情'});
await this.getData(); await this.getData();
this.columns1 = [
{
width:'40%',
name:'产品',
align:'center',
field:'sMaterial',
color:'#2d8cf0',
underline:true,
},
{
width:'30%',
name:'数量',
align:'center',
field:'nQtyHTML',
},
{
width:'30%',
name:'金额',
align:'center',
field:'nAmountHTML',
}
]
if(this.hdr.sType == '采购'){ if(this.hdr.sType == '采购'){
this.tabList = [ this.tabList = [
{ {
...@@ -234,6 +239,7 @@ export default { ...@@ -234,6 +239,7 @@ export default {
] ]
}else if(this.hdr.sType == '检验'){ }else if(this.hdr.sType == '检验'){
this.showTab = false; this.showTab = false;
this.tableStyle.tbodyHeight = 'calc(100vh - 60px)';
this.columns = [ this.columns = [
{ {
width:'25%', width:'25%',
...@@ -342,6 +348,302 @@ export default { ...@@ -342,6 +348,302 @@ export default {
underline:true underline:true
} }
] ]
}else if(this.hdr.sType == '销售退货' || this.hdr.sType == '采购退货'){
this.tabList = [
{
value:'退货信息',
key:'0'
},
{
value:'产品信息',
key:'1'
}
];
this.columns = [
{
width:'25%',
name:this.hdr.sType == '销售退货' ? '客户' : '供应商',
align:'center',
field:this.hdr.sType == '销售退货' ? 'sCustomerNameHTML' : 'sProviderNameHTML',
underline:true,
color:'#2d8cf0'
},
{
width:'25%',
name:'匹数',
align:'center',
field:'nPieceHTML'
},
{
width:'25%',
name:'数量',
align:'center',
field:'nQtyHTML',
},
{
width:'25%',
name:'金额',
align:'center',
field:'nAmountHTML',
}
]
this.columns1 = [
{
width:'40%',
name:'产品',
align:'center',
field:'sMaterial',
color:'#2d8cf0',
underline:true
},
{
width:'20%',
name:'匹数',
align:'center',
field:'nPieceHTML',
},
{
width:'20%',
name:'数量',
align:'center',
field:'nQtyHTML',
},
{
width:'20%',
name:'金额',
align:'center',
field:'nAmountHTML',
}
]
}else if(this.hdr.sType == '供应商索赔' || this.hdr.sType == '客户索赔'){
this.showTab = false;
this.tableStyle.tbodyHeight = 'calc(100vh - 60px)';
this.columns = [
{
width:'25%',
name:this.hdr.sType == '客户索赔' ? '客户' : '供应商',
align:'center',
field:this.hdr.sType == '客户索赔' ? 'sCustomerNameHTML' : 'sProviderNameHTML',
underline:true,
color:'#2d8cf0'
},
{
width:'25%',
name:'总数量',
align:'center',
field:'nQtyHTML',
},
{
width:'25%',
name:'总金额',
align:'center',
field:'nAmountHTML',
}
]
}else if(this.hdr.sType == '疵品汇总'){
this.tabList = [
{
value:'主信息',
key:'0'
},
{
value:'产品信息',
key:'1'
}
];
this.columns = [
{
width:'25%',
name:'客户',
align:'center',
field:'sCustomerNameHTML',
underline:true,
color:'#2d8cf0'
},
{
width:'25%',
name:'匹数',
align:'center',
field:'nStockPieceQty'
},
{
width:'25%',
name:'数量',
align:'center',
field:'nStockQty',
},
{
width:'25%',
name:'金额',
align:'center',
field:'nAmountHTML',
}
]
this.columns1 = [
{
width:'40%',
name:'产品',
align:'center',
field:'sMaterial',
color:'#2d8cf0',
underline:true
},
{
width:'20%',
name:'匹数',
align:'center',
field:'nStockPieceQty',
render: (h,params) => {
return h('span',params.row.nStockPieceQty)
}
},
{
width:'20%',
name:'数量',
align:'center',
field:'nStockQty',
render: (h,params) => {
return h('span',params.row.nStockQty)
}
},
{
width:'20%',
name:'金额',
align:'center',
field:'nAmountHTML',
}
]
}else if(this.hdr.sType == '超期应收' || this.hdr.sType == '超期应付'){
this.tabList = [
{
value:'主信息',
key:'0'
},
{
value:'产品信息',
key:'1'
}
];
this.columns = [
{
width:'25%',
name:this.hdr.sType == '超期应收' ? '客户' : '供应商',
align:'center',
field:this.hdr.sType == '超期应收' ? 'sCustomerNameHTML' : 'sProviderNameHTML',
underline:true,
color:'#2d8cf0'
},
{
width:'25%',
name:'数量',
align:'center',
field:'nQtyHTML',
},
{
width:'25%',
name:'金额',
align:'center',
field:'nAmountHTML',
}
]
this.columns1 = [
{
width:'40%',
name:'产品',
align:'center',
field:'sMaterial',
color:'#2d8cf0',
underline:true
},
{
width:'20%',
name:'数量',
align:'center',
field:'nQty',
render: (h,params) => {
return h('span',params.row.nQty)
}
},
{
width:'20%',
name:'金额',
align:'center',
field:'nAmountHTML',
}
]
}else if(this.hdr.sType == '加工回修'){
this.tabList = [
{
value:'主信息',
key:'0'
},
{
value:'产品信息',
key:'1'
}
];
this.columns = [
{
width:'25%',
name:'客户',
align:'center',
field:'sProviderNameHTML',
underline:true,
color:'#2d8cf0'
},
{
width:'25%',
name:'匹数',
align:'center',
field:'nStockPieceQty'
},
{
width:'25%',
name:'数量',
align:'center',
field:'nStockQty',
},
{
width:'25%',
name:'金额',
align:'center',
field:'nAmountHTML',
}
]
this.columns1 = [
{
width:'40%',
name:'产品',
align:'center',
field:'sMaterial',
color:'#2d8cf0',
underline:true
},
{
width:'20%',
name:'匹数',
align:'center',
field:'nStockPieceQty',
render: (h,params) => {
return h('span',params.row.nStockPieceQty)
}
},
{
width:'20%',
name:'数量',
align:'center',
field:'nStockQty',
render: (h,params) => {
return h('span',params.row.nStockQty)
}
},
{
width:'20%',
name:'金额',
align:'center',
field:'nAmountHTML',
}
]
}else{ }else{
this.columns = [ this.columns = [
{ {
...@@ -385,6 +687,8 @@ export default { ...@@ -385,6 +687,8 @@ export default {
] ]
} }
this.global.$off('clickTd'); this.global.$off('clickTd');
this.global.$off('scrollTable');
//点击表格列触发 //点击表格列触发
this.global.$on('clickTd',async(res)=>{ this.global.$on('clickTd',async(res)=>{
if(res.tdIndex == 0){ if(res.tdIndex == 0){
...@@ -400,79 +704,111 @@ export default { ...@@ -400,79 +704,111 @@ export default {
this.$router.push({name:'tiipOperateSaleDetail'}) this.$router.push({name:'tiipOperateSaleDetail'})
} }
}) })
//滚动加载
this.global.$on('scrollTable',async ()=>{
this.getData(true)
})
}, },
methods:{ methods:{
changeTab(key){ changeTab(key){
this.activeTab = key; this.activeTab = key;
this.page = 1;
this.per_page = 50;
if(this.hdr.sType == '加工'){ if(this.hdr.sType == '加工'){
this.columns1 = this.columns; this.columns1 = this.columns;
}else{ }else{
this.columns1 = [ this.columns1 = this.columns1;
{
width:'40%',
name:'产品',
align:'center',
field:'sMaterial',
color:'#2d8cf0',
underline:true,
},
{
width:'30%',
name:'数量',
align:'center',
field:'nQtyHTML',
},
{
width:'30%',
name:'金额',
align:'center',
field:'nAmountHTML',
}
]
} }
this.getData(); this.getData();
}, },
async getData(){ async getData(flag){
if(this.per_page < 50){
this.$vux.toast.text('已加载全部数据!', 'middle')
return false;
}
let postData = [ let postData = [
{key:"url",value:this.activeTab == '0' ? "Operation gai sType-customer" : 'Operation gai sType-material'}, {key:"url",value:this.activeTab == '0' ? "Operation gai sType-customer" : 'Operation gai sType-material'},
{key:"sType",value:this.hdr.sType}, {key:"sType",value:this.hdr.sType},
{key:"begin_date",value:this.hdr.begin_date}, {key:"begin_date",value:this.hdr.begin_date},
{key:"end_date",value:this.hdr.end_date} {key:"end_date",value:this.hdr.end_date},
] ]
if(this.activeTab == '0'){ if(this.activeTab == '0'){
postData[0].value = 'Operation gai sType-customer'; postData[0].value = 'Operation gai sType-customer';
if(this.hdr.sType == '加工'){ if(this.hdr.sType == '加工'){
postData.push({key:'sProcessCategory',value:'坯布'}); postData.push({key:'sProcessCategory',value:'坯布'});
}else if(this.hdr.sType == '超期应收' || this.hdr.sType == '超期应付' || this.hdr.sType == '加工回修' || this.hdr.sType == '疵品汇总' || this.hdr.sType == '销售退货' || this.hdr.sType == '采购退货' || this.hdr.sType == '供应商索赔' || this.hdr.sType == '客户索赔'){
postData[0].value = 'Abnormal early warning-customer';
} }
}else if(this.activeTab == '1'){ }else if(this.activeTab == '1'){
if(this.hdr.sType == '加工'){ if(this.hdr.sType == '加工'){
postData[0].value = 'Operation gai sType-customer'; postData[0].value = 'Operation gai sType-customer';
postData.push({key:'sProcessCategory',value:'成品布'}); postData.push({key:'sProcessCategory',value:'成品布'});
}else if(this.hdr.sType == '超期应收' || this.hdr.sType == '超期应付' || this.hdr.sType == '加工回修' || this.hdr.sType == '疵品汇总' || this.hdr.sType == '销售退货' || this.hdr.sType == '采购退货'){
postData[0].value = 'Abnormal early warning-sMaterial';
} }
} }
let res = await this.request('getBoss',{ let res = await this.request('getBoss',{
data:postData, data:postData,
params:{}, params:{
page:this.page,
per_page:this.per_page
},
},'加载中',{}) },'加载中',{})
if(this.activeTab == 1 && this.hdr.sType != '加工'){ if(this.activeTab == 1 && this.hdr.sType != '加工'){
res.map(x=>{ res.map((x,y)=>{
x.sMaterial = `<div><span style="color:#FF6633">${x.sSampleMaterialNo}</span><br><span style="color:black;">${this.hdr.sType == '成品入库' ? x.sMaterialName : x.sSampleMaterialName}</span></div>` if(this.hdr.sType == '销售退货' || this.hdr.sType == '采购退货'){
x.nQtyHTML = `<div><span">${this.hdr.sType == '销售退货' ? x.nSumInQty :x.nSumOutQty}</span></div>`;
x.nPieceHTML = `<div><span">${this.hdr.sType == '销售退货' ? x.nInPieceQty :x.nOutPieceQty}</span></div>`;
}else{
x.nQtyHTML = `<div><span">${x.nQty || x.nOutQty || x.nInQty || 0}</span></div>`;
}
x.nAmountHTML = `<div><span style="color:#339966;">${x.nAmount}</span></div>`; x.nAmountHTML = `<div><span style="color:#339966;">${x.nAmount}</span></div>`;
x.nQtyHTML = `<div><span">${x.nQty || x.nOutQty || x.nInQty}</span></div>`; if(y == res.length - 1){
x.sMaterial = `<div><span style="color:black;">${ x.sSampleMaterialName || ''}</span></div>`
}else{
x.sMaterial = `<div><span style="color:#FF6633">${x.sSampleMaterialNo || ''}</span><br><span style="color:black;">${x.sSampleMaterialName || ''}</span></div>`
}
}) })
}else{ }else{
res.map(x=>{ res.map((x,y)=>{
x.sCustomerNameHTML = `<div><span style="text-decoration:underline;">${x.sCustomerName || ''}</span></div>`; if(this.hdr.sType == '销售退货' || this.hdr.sType == '采购退货'){
x.sProviderNameHTML = `<div><span style="text-decoration:underline;">${x.sProviderName || ''}</span></div>`; if(this.hdr.sType == '销售退货'){
x.sSalesNameHTML = `<div><span style="text-decoration:underline;">${x.sSalesName || ''}</span></div>`; x.sCustomerNameHTML = `<div><span style=${y == res.length - 1 ? 'text-decoration:none' : 'text-decoration:underline'}>${x.sCustomerName}</span></div>`;
x.nAmountHTML = `<div><span style="color:#339966;">${x.nAmount}</span></div>`; }else if(this.hdr.sType == '采购退货'){
x.nQtyHTML = `<div><span">${x.nQty || x.nOutQty || 0}</span></div>`; x.sProviderNameHTML = `<div><span style=${y == res.length - 1 ? 'text-decoration:none' : 'text-decoration:underline'}>${x.sProviderName}</span></div>`;
x.sMaterialHTML = `<div><span">${x.sSampleMaterialNo || ''}<br>${x.sSampleMaterialName || ''}</span></div>`; }
x.sFollowerNameHTML = `<div><span style="text-decoration:underline;">${x.sFollowerName || ''}</span></div>`; x.nQtyHTML = `<div><span">${this.hdr.sType == '销售退货' ? x.nSumInQty :x.nSumOutQty}</span></div>`;
x.sCreatorHTML = `<div><span style="text-decoration:underline;">${x.sCreator || ''}</span></div>`; x.nPieceHTML = `<div><span">${this.hdr.sType == '销售退货' ? x.nInPieceQty :x.nOutPieceQty}</span></div>`;
x.nAmountHTML = `<div><span style="color:#339966;">${x.nAmount}</span></div>`;
}else if(this.hdr.sType == '供应商索赔' || this.hdr.sType == '客户索赔'){
x.nQtyHTML = `<div><span">${x.nQty || x.nOutQty || 0}</span></div>`;
x.nAmountHTML = `<div><span style="color:red;">${x.nAmount}</span></div>`;
if(this.hdr.sType == '客户索赔'){
x.sCustomerNameHTML = `<div><span style=${y == res.length - 1 ? 'text-decoration:none' : 'text-decoration:underline'}>${x.sCustomerName}</span></div>`;
}else if(this.hdr.sType == '供应商索赔'){
x.sProviderNameHTML = `<div><span style=${y == res.length - 1 ? 'text-decoration:none' : 'text-decoration:underline'}>${x.sProviderName}</span></div>`;
}
}else{
x.sCustomerNameHTML = `<div><span style=${y == res.length - 1 ? 'text-decoration:none' : 'text-decoration:underline'}>${x.sCustomerName || ''}</span></div>`;
x.sProviderNameHTML = `<div><span style=${y == res.length - 1 ? 'text-decoration:none' : 'text-decoration:underline'}>${x.sProviderName || ''}</span></div>`;
x.sSalesNameHTML = `<div><span style=${y == res.length - 1 ? 'text-decoration:none' : 'text-decoration:underline'}>${x.sSalesName || ''}</span></div>`;
x.nAmountHTML = `<div><span style="color:#339966;">${x.nAmount}</span></div>`;
x.nQtyHTML = `<div><span">${x.nQty || x.nOutQty || 0}</span></div>`;
x.sMaterialHTML = `<div><span">${x.sSampleMaterialNo || ''}<br>${x.sSampleMaterialName || ''}</span></div>`;
x.sFollowerNameHTML = `<div><span style=${y == res.length - 1 ? 'text-decoration:none' : 'text-decoration:underline'}>${x.sFollowerName || ''}</span></div>`;
x.sCreatorHTML = `<div><span style=${y == res.length - 1 ? 'text-decoration:none' : 'text-decoration:underline'}>${x.sCreator || ''}</span></div>`;
}
}) })
} }
this.list = res;
if(flag){
this.list.splice(this.list.length - 1,1);
this.list = this.list.concat(res);
}else{
this.list = res;
}
this.page++;
this.per_page = res.length - 1;
} }
}, },
components:{ components:{
......
...@@ -62,6 +62,8 @@ export default { ...@@ -62,6 +62,8 @@ export default {
tbodyTrBorderBottom:'1px solid #dbe9f8', tbodyTrBorderBottom:'1px solid #dbe9f8',
width:'100%' width:'100%'
}, },
page:1,
per_page:50
} }
}, },
computed:{ computed:{
...@@ -74,6 +76,8 @@ export default { ...@@ -74,6 +76,8 @@ export default {
window.d = this; window.d = this;
}, },
async activated(){ async activated(){
this.page = 1;
this.per_page = 50;
await this.getData(); await this.getData();
this.global.$off('clickTd'); this.global.$off('clickTd');
...@@ -82,14 +86,23 @@ export default { ...@@ -82,14 +86,23 @@ export default {
this.$store.dispatch('saveCustomerItem',this.list[res.trIndex]); this.$store.dispatch('saveCustomerItem',this.list[res.trIndex]);
this.$router.push({name:'tiipOperateCustomDetail',params:{type:'custom'}}) this.$router.push({name:'tiipOperateCustomDetail',params:{type:'custom'}})
}) })
this.global.$off('scrollTable');
this.global.$on('scrollTable',async ()=>{
this.getData(true)
})
}, },
methods:{ methods:{
async getData(){ async getData(flag){
if(this.per_page < 50){
this.$vux.toast.text('已加载全部数据!', 'middle')
return false;
}
let postData = [ let postData = [
{key:"url",value:'Operation gai sType-customer-sales'}, {key:"url",value:'Operation gai sType-customer-sales'},
{key:"sType",value:this.hdr.sType}, {key:"sType",value:this.hdr.sType},
{key:"begin_date",value:this.hdr.begin_date}, {key:"begin_date",value:this.hdr.begin_date},
{key:"end_date",value:this.hdr.end_date} {key:"end_date",value:this.hdr.end_date},
] ]
if(this.hdr.sType == '采购' || this.hdr.sType == '加工'){ if(this.hdr.sType == '采购' || this.hdr.sType == '加工'){
postData.push({key:"upbFollowerGUID",value:this.orderItem.upbFollowerGUID}); postData.push({key:"upbFollowerGUID",value:this.orderItem.upbFollowerGUID});
...@@ -101,7 +114,10 @@ export default { ...@@ -101,7 +114,10 @@ export default {
let res = await this.request('getBoss',{ let res = await this.request('getBoss',{
data:postData, data:postData,
params:{}, params:{
page:this.page,
per_page:this.per_page
},
},'加载中',{}) },'加载中',{})
res.map(x=>{ res.map(x=>{
if(this.hdr.sType == '采购' || this.hdr.sType == '加工'){ if(this.hdr.sType == '采购' || this.hdr.sType == '加工'){
...@@ -123,7 +139,14 @@ export default { ...@@ -123,7 +139,14 @@ export default {
} }
x.nAmountHTML = `<div><span style="color:#339966;">${x.nAmount}</span></div>`; x.nAmountHTML = `<div><span style="color:#339966;">${x.nAmount}</span></div>`;
}) })
this.list = res; if(flag){
this.list.splice(this.list.length - 1,1);
this.list = this.list.concat(res);
}else{
this.list = res;
}
this.page++;
this.per_page = res.length - 1;
} }
}, },
components:{ components:{
......
...@@ -101,11 +101,11 @@ ...@@ -101,11 +101,11 @@
<div v-for="(v2,i2) in v1.child" :key='i2'> <div v-for="(v2,i2) in v1.child" :key='i2'>
<div v-for="(v3,i3) in v2.child" :key="i3"> <div v-for="(v3,i3) in v2.child" :key="i3">
<div> <div>
<span>{{v3.sFieldCaption}}</span> <span>{{v3.key}}</span>
<div> <div>
<div> <div>
<div> <div>
{{DATA[v3.sFieldName]}} {{v3.value}}
</div> </div>
</div> </div>
</div> </div>
...@@ -132,76 +132,48 @@ export default { ...@@ -132,76 +132,48 @@ export default {
}, },
computed:{ computed:{
...mapState({ ...mapState({
orderDetail:state=>state.kanban.orderDetail
}) })
}, },
async mounted(){ async mounted(){
window.d = this; window.d = this;
}, },
async activated(){ async activated(){
await this.getDetail(); this.list = this.filterFields();
this.filterFields(hdrFields,this.list,'采购基本合同');
}, },
methods:{ methods:{
async getDetail(){ filterFields(){
let apiURL; var data = Util.deepClone(this.orderDetail);
switch(this.$route.params.type){ var arr = [];
case 'pbcontract': for(let a in data){
apiURL = 'getTiipPbcontract' for(let b of data[a]){
break; arr.push({title:b.sType,child:[]});
case 'pay': let item = arr[arr.length - 1];
apiURL = 'getTiipFipayable' if(item.child.length <= 0){
break; item.child.push({
case 'receive': child:[]
apiURL = 'getTiipFireceivable' })
break;
case 'fabric':
case 'inspectionReport':
apiURL = 'getTiipFabric'
break;
default:
break;
}
let hdrResult = await this.request(apiURL,{
data:[
{key:'url',value:this.$route.params.type == 'inspectionReport' ? 'Inspection Report' :'hdr'}
]
},true);
hdrResult.map(x=>{
for(let y in x){
if(isNaN(x[y])&&!isNaN(Date.parse(x[y]))){
   x[y] = Util.dateFormat(x[y],'yyyy-MM-dd')
} }
} for(let c in b){
}) var flag = false;
this.DATA = hdrResult[0]; for(let d of item.child){
}, if(c != 'sType'){
filterFields(fields,arr,title){ if(d.child.length < 2){
arr.push({title:title,child:[]}); d.child.push({
let data = arr[arr.length - 1]; key:c,
value:b[c]
for(let y of hdrFields){ })
let flag = false; flag = true;
if(data.child.length <= 0){ }
data.child.push({ }
rowCount:y.rowCount, }
child:[] if(!flag && c!= 'sType'){
}) item.child.push({child:[{key:c,value:b[c]}]})
} }
for(let x of data.child){
if(x.child.length != x.rowCount && x.rowCount == y.rowCount){
flag = true;
x.child.push(y);
} }
} }
}
if(!flag){ return arr;
data.child.push({
rowCount:y.rowCount,
child:[y]
})
}
}
} }
}, },
components:{ components:{
......
...@@ -109,7 +109,7 @@ export default { ...@@ -109,7 +109,7 @@ export default {
singleTrBgColor:'#eef4fe', singleTrBgColor:'#eef4fe',
theadTdBorder:false, theadTdBorder:false,
tbodyTdBorder:false, tbodyTdBorder:false,
tbodyHeight:'calc(100vh - 160px)', tbodyHeight:'calc(100vh - 180px)',
tbodyTrBorderBottom:'1px solid #dbe9f8' tbodyTrBorderBottom:'1px solid #dbe9f8'
}, },
status:[], status:[],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment