Commit bb6d8801 authored by godwithdh's avatar godwithdh
parents af328873 165bc1cb
......@@ -117,12 +117,12 @@ export default {
this.global.$emit('searchData');
},
changeInput(e){
this.search.serachvalue = this.inputValue;
this.search.searchvalue = this.inputValue;
this.global.$emit('searchData');
},
clearInputValue(e){
this.inputValue = "";
this.search.serachvalue = this.inputValue;
this.search.searchvalue = this.inputValue;
this.global.$emit('searchData');
}
},
......
......@@ -73,5 +73,9 @@ const methodMap = {
getTiipReceive:{url:"/bianalysis/receivemoney/",method:"get",host:"default"},
getTiipCost:{url:"/bianalysis/costanalysis/",method:"get",host:"default"},
//采购单进度
getTipProcessProgress:{url:"/pssubcontract/getlist/",method:"post",host:"default"},
getTipProcurementProgress:{url:"/pbcontracthdr/",method:"post",host:"default"},
};
export default methodMap;
......@@ -12,9 +12,9 @@ function urlFun(name){
/**
* 默认公司
*/
// default:`http://192.168.4.39:5001`,
default:`https://weixin.huansi.net/apiproxy/huansi/hszh_HSFabricTradeTest`,
// default:`https://weixin.huansi.net/apiproxy/huansi/service/proxy/${userID}`,
// default:`http://192.168.4.48:5001`,
// default:`https://weixin.huansi.net/apiproxy/huansi/hszh_HSFabricTradeTest`,
default:`https://weixin.huansi.net/apiproxy/huansi/service/proxy/${userID}`,
/**
* 基本地址
......
......@@ -293,6 +293,45 @@ let tipRoutes = [
},
]
},
{ //订单进度查询
name:"main",
component:()=>import("@/view/main.vue"),
path:"/main",
children:[
{
path:"/tiip/checkProgress/procurement/list/:userId",
name:"tipProcurementProgress",
component:()=>import("@/view/tiip/checkProgress/procurement/list.vue"),
meta:{
title:"采购进度查询"
},
},
{
path:"/tiip/checkProgress/procurement/detail",
name:"tipProcurementProgressDetail",
component:()=>import("@/view/tiip/checkProgress/procurement/detail.vue"),
meta:{
title:"采购进度查询"
},
},
{
path:"/tiip/checkProgress/process/list/:userId",
name:"tipProcessProgress",
component:()=>import("@/view/tiip/checkProgress/process/list.vue"),
meta:{
title:"加工进度查询"
},
},
{
path:"/tiip/checkProgress/process/detail",
name:"tipProcessProgressDetail",
component:()=>import("@/view/tiip/checkProgress/process/detail.vue"),
meta:{
title:"加工进度查询"
},
},
]
},
];
let shopVersionRoutes = [
......
......@@ -5,6 +5,7 @@ import app from './modules/app';
import searchOrder from './modules/tiip/searchOrder';
import profitAnalysis from './modules/tiip/profitAnalysis';
import kanban from './modules/tiip/kanban';
import checkProgress from './modules/tiip/checkProgress';
Vue.use(Vuex);
......@@ -20,7 +21,8 @@ const store = new Vuex.Store({
app,
searchOrder,
profitAnalysis,
kanban
kanban,
checkProgress
}
});
......
import Util from '@/libs/util';
import Vue from 'vue';
const obj = {
state: {
hdr:{},
dtl:{}
},
mutations: {
saveCheckProgressHdr(state,data){
state.hdr[data.type] = data.row;
},
saveCheckProgressDtl(state,data){
state.dtl[data.type] = data.row;
}
},
actions: {
saveCheckProgressHdr({commit},data){
commit('saveCheckProgressHdr',data);
},
saveCheckProgressDtl({commit},data){
commit('saveCheckProgressDtl',data);
}
}
};
export default obj;
......@@ -562,4 +562,8 @@
.icon-lirunfenxi:before{
content: "\d676";
}
.icon-jiagongjindu:before{
content: "\d70c";
}
\ No newline at end of file
......@@ -2,9 +2,9 @@
@import url('../../../../styles/common.less');
#Liabilities{
background: #f6f5f9;
// height:100%;
// display: flex;
// flex-direction: column;
height:100%;
display: flex;
flex-direction: column;
.HEADER{
display:flex;
padding:10px;
......@@ -26,15 +26,15 @@
.Content{
height:100%;
// height:1px;
// flex-grow: 1;
// overflow: auto;
// -webkit-overflow-scrolling: touch;
height:1px;
flex-grow: 1;
overflow: auto;
-webkit-overflow-scrolling: touch;
margin-bottom:8px;
>div{
display:flex;
align-items: center;
&:not(:last-child){
&{
>div{
border-bottom:1px solid #ddd;
}
......@@ -57,7 +57,8 @@
>a{
flex-shrink: 0;
padding: 18px 13px;
&.iconfont{border-bottom: 1px solid #ddd;
&.iconfont{
border-bottom: 1px solid #ddd;
display: flex;
align-items: center;
color: #FF7601;
......@@ -66,11 +67,27 @@
}
}
}
.img{
width:100%;
display: flex;
justify-content: center;
img{
width:100%;
height:300px;
}
}
}
</style>
<template>
<div id="Liabilities">
<div class="tabs">
<tab :animate="false" active-color="#708bf6">
<tab-item :selected='Liabilities.activeTab == "0"' @on-item-click="changeLiabilitiesTab">客户欠款</tab-item>
<tab-item :selected='Liabilities.activeTab == "1"' @on-item-click="changeLiabilitiesTab">欠供应商款</tab-item>
</tab>
</div>
<div class="HEADER iCard">
<span style="color:#777;margin-right:10rpx;">总负债额</span>
<div :style="{'width':rate+'%','background':color}"></div>
......@@ -83,7 +100,10 @@
<div style="margin-bottom:10rpx;">{{item.sCustomerName}}</div>
<div style="font-size:28rpx;color:#777;">欠款: {{item.nAmount}}</div>
</div>
<a class="iconfont icon-dianhua" :href="'tel:' + item.sTelephone01"></a>
<a class="iconfont icon-dianhua" :href="'tel:' + item.sTelephone01" v-if='Liabilities.activeTab == "0"'></a>
</div>
<div class="img" v-if="list.length <= 0">
<img src="@/assets/noData.jpg" class="_img" alt="">
</div>
</div>
</div>
......@@ -92,7 +112,7 @@
<script>
import Util from '@/libs/util.js';
import {mapState} from 'vuex';
import { XProgress } from 'vux'
import { XProgress,Tab, TabItem } from 'vux'
export default {
name: 'Liabilities',
......@@ -102,10 +122,13 @@ export default {
total:0,
rate:1110,
color:'',
Liabilities:{
activeTab:'0'
}
}
},
components:{
XProgress
XProgress,Tab, TabItem
},
computed:{
...mapState({
......@@ -122,7 +145,9 @@ export default {
methods:{
async getData(){
let value = await this.request('getCipLiabilities',{
data:{}
data:{
sCustomerType:this.Liabilities.activeTab == 0 ? '客户' : '供应商'
}
},'加载中',{iProjectId:this.iProjectId});
this.list = value;
this.total=0;
......@@ -140,6 +165,11 @@ export default {
this.rate>=90&&(this.color="red")
}
},
changeLiabilitiesTab(index){
if(this.Liabilities.activeTab == index) return false;
this.Liabilities.activeTab = index;
this.getData();
},
routerToDetail(item){
this.$router.push({name:'LiabilitiesDetail',params:{iCustomerId:item.iIden}})
}
......
<style lang="less" >
#tipProcessProgressDetail{
height:100%;
display:flex;
flex-direction: column;
background: #f2f2f2;
.CONTENT{
.basic{
background: #dfe9fd;
padding-left:5px;
.Title{
height:40px;
display: flex;
align-items: center;
color:#5E9AFE;
font-weight: bold;
}
}
.Info{
border-top:1px solid #dbe9f8;
display: flex;
flex-wrap: wrap;
margin-top: 0px;
font-size:12px;
>div{
display: flex;
width: 100%;
min-height:40px;
>div{
display: flex;
width:100%;
min-height:40px;
>div{
display: flex;
align-items: center;
box-sizing: content-box;
flex:1;
height:100%;
>span{
height:100%;
min-width:80px;
text-align: center;
border-right:1px solid #dbe9f8;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
border-bottom:1px solid #dbe9f8;
color:#586e86;
font-weight: bold;
background: #eef4fe;
}
>div{
height:100%;
width:100%;
display: flex;
flex-wrap: wrap;
>div{
height:100%;
width:100%;
background:white;
align-items: center;
display:inline-flex;
// padding:0 5px 0 0;
>div:first-child{
height:100%;
border-bottom:1px solid #dbe9f8;
border-right:1px solid #dbe9f8;
box-sizing: border-box;
}
>div{
flex:1;
padding-left:5px;
display: flex;
align-items: center;
>span{
width:70px;
display: inline-block;
}
}
}
}
}
}
}
}
}
.marginBottom10{
margin-bottom: 10px;
}
}
</style>
<template>
<div id="tipProcessProgressDetail">
<div v-for="(item,index) in hdr.process.child" :key='index' class="marginBottom10">
<div class="CONTENT" v-for="(v1,i1) in list" :key='i1'>
<div class="basic">
<div class="Title">
<span>{{v1.title}}</span>
</div>
</div>
<div class="Info">
<div v-for="(v2,i2) in v1.child" :key='i2'>
<div v-for="(v3,i3) in v2.child" :key="i3">
<div>
<span>{{v3.sFieldCaption}}</span>
<div>
<div>
<div>
{{item[v3.sFieldName]}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import Util from '@/libs/util.js'
import { mapState } from 'vuex'
export default {
name: 'tipProcessProgressDetail',
data(){
return{
list:[],
DATA:{}
}
},
computed:{
...mapState({
hdr:state => state.checkProgress.hdr,
dtl:state => state.checkProgress.dtl.process
})
},
async mounted(){
},
async activated(){
window.d = this;
// await this.getDetail();
await this.formatData();
},
methods:{
async getDetail(){
let result = await this.request('getTipProcessProgress',{
data:[
{key:'url',value:'Processing schedule Dtl'},
{key:'uGUID',value:this.hdr.process.uGUID}
]
},true);
if(result && result.length > 0){
this.$store.dispatch('saveCheckProgressDtl',{
type:'process',
row:result
});
}
},
formatData(){
this.list = [
{
title:'基本信息',
child:[
{
child:[
{
sFieldCaption:'产品编码',
sFieldName:'sSampleMaterialNo'
},
{
sFieldCaption:'产品名称',
sFieldName:'sMaterialNameSample'
},
]
},
{
child:[
{
sFieldCaption:'加工序号',
sFieldName:'iOrderNo'
},
{
sFieldCaption:'色号',
sFieldName:'sColorNo'
},
]
},
{
child:[
{
sFieldCaption:'颜色',
sFieldName:'sColorName'
},
{
sFieldCaption:'加工色号',
sFieldName:'sProviderColorNo'
},
]
},
{
child:[
{
sFieldCaption:'坯布规格',
sFieldName:'sYarnInfo'
},
{
sFieldCaption:'产品规格',
sFieldName:'sConstruction'
},
]
},
{
child:[
{
sFieldCaption:'订单数量',
sFieldName:'nQtyOrder'
},
{
sFieldCaption:'订单单位',
sFieldName:'sUnitNameOrder'
},
]
},
{
child:[
{
sFieldCaption:'成品数',
sFieldName:'nQty'
},
{
sFieldCaption:'匹数',
sFieldName:'nPieces'
},
]
}
]
},
{
title:'投坯信息',
child:[
{
child:[
{
sFieldCaption:'理论损耗',
sFieldName:'nWastagePercent'
},
{
sFieldCaption:'理论投坯数',
sFieldName:'nProductQty'
},
]
},
{
child:[
{
sFieldCaption:'实际投坯数',
sFieldName:'nFactProductQty'
},
{
sFieldCaption:'待投坯数量',
sFieldName:'nLessFactProductQty'
},
]
},
{
child:[
{
sFieldCaption:'实际投坯匹数',
sFieldName:'nFactProductPieces'
},
{
sFieldCaption:'投坯时间',
sFieldName:'tProductOutTime'
},
]
},
{
child:[
{
sFieldCaption:'落布数量',
sFieldName:'nDropClothQty'
},
{
sFieldCaption:'落布比例',
sFieldName:'nInputQtyRate'
},
]
},
{
child:[
{
sFieldCaption:'落布时间',
sFieldName:'tDropInTime'
}
]
}
]
},
{
title:'出入库信息',
child:[
{
child:[
{
sFieldCaption:'已入库数',
sFieldName:'nDeliveriedQty'
},
{
sFieldCaption:'已入库匹数',
sFieldName:'nDeliveriedPieces'
},
]
},
{
child:[
{
sFieldCaption:'待入库匹数',
sFieldName:'nLessDeliveriedPieces'
},
{
sFieldCaption:'待入库数量',
sFieldName:'nLessDeliveriedQty'
},
]
},
{
child:[
{
sFieldCaption:'已出库数',
sFieldName:'nOutQty'
},
{
sFieldCaption:'已出库匹数',
sFieldName:'nOutPieces'
},
]
},
{
child:[
{
sFieldCaption:'待出库匹数',
sFieldName:'nLessOutPieces'
},
{
sFieldCaption:'生产匹数',
sFieldName:'nProducePieces'
},
]
},
{
child:[
{
sFieldCaption:'待生产匹数',
sFieldName:'nLessProducePieces'
},
{
sFieldCaption:'回修数量',
sFieldName:'nReturnQty'
},
]
}
]
}
]
}
},
components:{
},
}
</script>
<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:30,
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(){
await this.getStatus();
await this.getHdr();
this.$store.dispatch('saveUserId',this.$route.params.userId);
},
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.searchvalue){
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:'searchname',value:value})
}else{
postData.push({key:key,value:value || ''})
}
}
let res = await this.request('getTipProcessProgress',{
data:postData,
params:{}
},'加载中')
// 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.table.length;
// }
},
cleanSearch(){
// this.search.page = 1;
// this.search.per_page = 30;
this.list = [];
},
async routerToDetail(){
console.log(this.row.sProduceArtInfo)
this.$store.dispatch('saveCheckProgressHdr',{
type:'process',
row:this.row
});
this.$router.push({name:'tipProcessProgressDetail'})
},
},
components:{
searchComponent,
customerTable
},
}
</script>
<style lang="less" >
#tipProcurementProgressDetail{
height:100%;
display:flex;
flex-direction: column;
background: #f2f2f2;
.CONTENT{
.basic{
background: #dfe9fd;
padding-left:5px;
.Title{
height:40px;
display: flex;
align-items: center;
color:#5E9AFE;
font-weight: bold;
}
}
.Info{
border-top:1px solid #dbe9f8;
display: flex;
flex-wrap: wrap;
margin-top: 0px;
font-size:12px;
>div{
display: flex;
width: 100%;
min-height:40px;
>div{
display: flex;
width:100%;
min-height:40px;
>div{
display: flex;
align-items: center;
box-sizing: content-box;
flex:1;
height:100%;
>span{
height:100%;
min-width:80px;
text-align: center;
border-right:1px solid #dbe9f8;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
border-bottom:1px solid #dbe9f8;
color:#586e86;
font-weight: bold;
background: #eef4fe;
}
>div{
height:100%;
width:100%;
display: flex;
flex-wrap: wrap;
>div{
height:100%;
width:100%;
background:white;
align-items: center;
display:inline-flex;
// padding:0 5px 0 0;
>div:first-child{
height:100%;
border-bottom:1px solid #dbe9f8;
border-right:1px solid #dbe9f8;
box-sizing: border-box;
}
>div{
flex:1;
padding-left:5px;
display: flex;
align-items: center;
>span{
width:70px;
display: inline-block;
}
}
}
}
}
}
}
}
}
.marginBottom10{
margin-bottom: 10px;
}
}
</style>
<template>
<div id="tipProcurementProgressDetail">
<div v-for="(item,index) in hdr.procurement.child" :key='index' class="marginBottom10">
<div class="CONTENT" v-for="(v1,i1) in list" :key='i1'>
<div class="basic">
<div class="Title">
<span>{{v1.title}}</span>
</div>
</div>
<div class="Info">
<div v-for="(v2,i2) in v1.child" :key='i2'>
<div v-for="(v3,i3) in v2.child" :key="i3">
<div>
<span>{{v3.sFieldCaption}}</span>
<div>
<div>
<div>
{{item[v3.sFieldName]}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import Util from '@/libs/util.js'
import { mapState } from 'vuex'
export default {
name: 'tipProcurementProgressDetail',
data(){
return{
list:[],
DATA:{}
}
},
computed:{
...mapState({
hdr:state => state.checkProgress.hdr,
dtl:state => state.checkProgress.dtl.procurement
})
},
async mounted(){
},
async activated(){
window.d = this;
// await this.getDetail();
await this.formatData();
},
methods:{
async getDetail(){
let result = await this.request('getTipProcurementProgress',{
data:[
{key:'url',value:'Procurement progress Dtl'},
{key:'uGUID',value:this.hdr.procurement.uGUID}
]
},true);
if(result && result.length > 0){
this.$store.dispatch('saveCheckProgressDtl',{
type:'procurement',
row:result
});
}
},
formatData(){
this.list = [
{
title:'基本信息',
child:[
{
child:[
{
sFieldCaption:'物料编号',
sFieldName:'sMaterialNo'
},
{
sFieldCaption:'物料名称',
sFieldName:'sMaterialName'
},
]
},
{
child:[
{
sFieldCaption:'规格',
sFieldName:'sConstruction'
},
{
sFieldCaption:'坯布规格',
sFieldName:'sYarnInfo'
},
]
},
{
child:[
{
sFieldCaption:'坯布组织',
sFieldName:'sRawConstruction'
},
{
sFieldCaption:'批次',
sFieldName:'sMaterialLot'
},
]
},
{
child:[
{
sFieldCaption:'加工商物料',
sFieldName:'sProviderMaterialNo'
},
{
sFieldCaption:'数量',
sFieldName:'nQty'
},
]
},
{
child:[
{
sFieldCaption:'单位',
sFieldName:'sUnitName'
},
{
sFieldCaption:'匹数',
sFieldName:'nPieces'
},
]
},
{
child:[
{
sFieldCaption:'溢装',
sFieldName:'nOverPercent'
},
{
sFieldCaption:'短装',
sFieldName:'nShortPercent'
},
]
},
{
child:[
{
sFieldCaption:'已交货数量',
sFieldName:'nDeliveriedQty'
},
{
sFieldCaption:'已交货匹数',
sFieldName:'nDeliveriedPieces'
},
]
},
{
child:[
{
sFieldCaption:'欠数',
sFieldName:'nLessQty'
},
{
sFieldCaption:'落布数量',
sFieldName:'nDropClothQty'
},
]
},
{
child:[
{
sFieldCaption:'最后入库日期',
sFieldName:'dLastStoreInTime'
},
]
}
]
}
]
}
},
components:{
},
}
</script>
<style lang="less" >
#tipProcurementProgress{
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="tipProcurementProgress">
<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: 'tipProcurementProgress',
data () {
return {
search:{
dBeginDate:Util.dateFormat(new Date(),'yyyy-MM-01'),
dEndDate:Util.dateFormat(new Date(),'yyyy-MM-dd'),
// page:1,
// per_page:30,
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:'nQty',
},
{
width:'100px',
name:'总金额',
align:'center',
field:'nTotalAmount'
},
{
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:'1100px'
},
status:[],
row:{},
typeList:{
input:true,
select:true,
btns:true,
time:true
},
}
},
async mounted(){
await this.getStatus();
await this.getHdr();
this.$store.dispatch('saveUserId',this.$route.params.userId);
},
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(`getTipProcurementProgress`,{
data:[{key:'url',value:'sStatus'}]
},true);
this.status = res;
this.status.unshift({
sStatus:'全部'
})
},
async getHdr(flag){
if(!this.search.searchvalue){
this.$vux.toast.text('请输入订单号查询!', 'middle')
return false;
}
let data = Util.deepClone(this.search);
let postData = [
{key:'url',value:'Procurement progress'}
]
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:'begin_date',value:value || ''})
}else if(key == 'dEndDate'){
postData.push({key:'end_date',value:value + ' 23:59:59' || ''})
}else if(key == 'searchvalue'){
postData.push({key:'searchname',value:value})
}else{
postData.push({key:key,value:value || ''})
}
}
let res = await this.request('getTipProcurementProgress',{
data:postData,
params:{}
},'加载中')
// if(res.length > 0){
res.map(y=>{
y.sContractNoHTML = `<div><span style="text-decoration:underline;">${y.sContractNo}</span></div>`;
y.child.map(x=>{
x.dLastStoreInTime = !!x.dLastStoreInTime ? Util.dateFormat(x.dLastStoreInTime,'yyyy-MM-dd') : '';
})
});
if(flag){
this.list = this.list.concat(res);
}else{
this.list = res;
}
// this.search.page++;
// this.search.per_page = res.table.length;
// }
},
cleanSearch(){
// this.search.page = 1;
// this.search.per_page = 30;
this.list = [];
},
async routerToDetail(){
this.$store.dispatch('saveCheckProgressHdr',{
type:'procurement',
row:this.row
});
this.$router.push({name:'tipProcurementProgressDetail'})
},
},
components:{
searchComponent,
customerTable
},
}
</script>
......@@ -171,7 +171,7 @@ export default {
})
data.sStatus = status.join(',');
}
data.serachvalue == '' && (delete data.serachvalue);
data.searchvalue == '' && (delete data.searchvalue);
data.begin_date = data.dBeginDate;
data.end_date = data.dEndDate;
delete data.dBeginDate;
......
......@@ -190,7 +190,7 @@ export default {
})
data.sStatus = status.join(',');
}
data.serachvalue == '' && (delete data.serachvalue);
data.searchvalue == '' && (delete data.searchvalue);
data.begin_date = data.dBeginDate;
data.end_date = data.dEndDate;
delete data.dBeginDate;
......
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