Commit d32da70b authored by 张锡奇's avatar 张锡奇

upload

parent 07cdec82
......@@ -42,8 +42,8 @@ export default {
search:{
dBeginDate:Util.dateFormat(new Date(),'yyyy-MM-01'),
dEndDate:Util.dateFormat(new Date(),'yyyy-MM-dd'),
// page:1,
// per_page:30,
page:1,
per_page:20,
sStatus:'全部'
},
list:[],
......@@ -162,9 +162,9 @@ export default {
await this.getHdr();
});
//滚动加载
// this.global.$on('scrollTable',async ()=>{
// this.getHdr(true);
// })
this.global.$on('scrollTable',async ()=>{
this.getHdr(true);
})
//点击表格列触发
this.global.$on('clickTd',async(res)=>{
this.row = this.list[res.trIndex];
......@@ -182,8 +182,8 @@ export default {
})
},
async getHdr(flag){
if(!this.search.searchvalue){
this.$vux.toast.text('请输入订单号查询!', 'middle')
if(this.search.per_page < 20){
this.$vux.toast.text('已加载全部数据!', 'middle')
return false;
}
let data = Util.deepClone(this.search);
......@@ -202,13 +202,14 @@ export default {
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:{}
params:{
page:this.search.page,
per_page:this.search.per_page
}
},'加载中')
// if(res.length > 0){
......@@ -226,13 +227,13 @@ export default {
}else{
this.list = res;
}
// this.search.page++;
// this.search.per_page = res.table.length;
this.search.page++;
this.search.per_page = res.length;
// }
},
cleanSearch(){
// this.search.page = 1;
// this.search.per_page = 30;
this.search.page = 1;
this.search.per_page = 20;
this.list = [];
},
async routerToDetail(){
......
......@@ -42,8 +42,8 @@ export default {
search:{
dBeginDate:Util.dateFormat(new Date(),'yyyy-MM-01'),
dEndDate:Util.dateFormat(new Date(),'yyyy-MM-dd'),
// page:1,
// per_page:30,
page:1,
per_page:30,
sStatus:'全部'
},
list:[],
......@@ -156,9 +156,9 @@ export default {
await this.getHdr();
});
//滚动加载
// this.global.$on('scrollTable',async ()=>{
// this.getHdr(true);
// })
this.global.$on('scrollTable',async ()=>{
this.getHdr(true);
})
//点击表格列触发
this.global.$on('clickTd',async(res)=>{
this.row = this.list[res.trIndex];
......@@ -176,8 +176,8 @@ export default {
})
},
async getHdr(flag){
if(!this.search.searchvalue){
this.$vux.toast.text('请输入订单号查询!', 'middle')
if(this.search.per_page < 30){
this.$vux.toast.text('已加载全部数据!', 'middle')
return false;
}
let data = Util.deepClone(this.search);
......@@ -196,13 +196,14 @@ export default {
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:{}
params:{
page:this.search.page,
per_page:this.search.per_page
}
},'加载中')
// if(res.length > 0){
......@@ -218,13 +219,13 @@ export default {
}else{
this.list = res;
}
// this.search.page++;
// this.search.per_page = res.table.length;
this.search.page++;
this.search.per_page = res.length;
// }
},
cleanSearch(){
// this.search.page = 1;
// this.search.per_page = 30;
this.search.page = 1;
this.search.per_page = 30;
this.list = [];
},
async routerToDetail(){
......
<style lang="less" >
@import url("../../../styles/common.less");
#tiipOperateCustomDetail{
height:100%;
background:#eef4fe;
......@@ -14,7 +16,10 @@
<template>
<div id="tiipOperateCustomDetail">
<div class="Table">
<div class="iCard" style="margin-bottom:8px;height:100%;" v-show="hdr.sType == '检验' && type == 'material'">
<div ref='chart' style="width:100%;height:100%;"/>
</div>
<div class="Table" v-show="hdr.sType == '检验'">
<customerTable :showFooter="true" :columns="columns" :list="list" :tableStyle="tableStyle"></customerTable>
</div>
</div>
......@@ -43,7 +48,8 @@ export default {
},
type:'custom',
page:1,
per_page:50
per_page:50,
chart:null,
}
},
computed:{
......@@ -53,18 +59,19 @@ export default {
})
},
async mounted(){
window.d = this;
},
async activated(){
window.d = this;
this.page = 1;
this.per_page = 50;
this.type = this.$route.params.type;
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.type == 'custom' ? '加工' : '产品') + '订单列表'});
}else if(this.hdr.sType == '检验'){
this.$store.dispatch("CAHNGE_META_INFO", {title:(this.type == 'custom' ? '检验' : '产品') + '订单列表'});
this.$store.dispatch("CAHNGE_META_INFO", {title:(this.type == 'custom' ? '检验-客户' : (this.type == 'provider' ? '检验-加工商' : '检验-产品')) + '订单列表'});
}else if(this.hdr.sType == '采购退货'){
this.$store.dispatch("CAHNGE_META_INFO", {title:(this.type == 'custom' ? '采购退货' : '产品') + '订单列表'});
}else if(this.hdr.sType == "客户索赔"){
......@@ -230,6 +237,47 @@ export default {
}
}
]
}else if(this.hdr.sType == '检验'){
this.columns = [
{
width:'25%',
name:'订单号',
align:'center',
field:'sOrderNo',
render: (h,params) => {
return h('span',{
style: {
'text-decoration':'underline',
'color':'#2d8cf0'
},
on:{
'click':async()=>{
await this.getDetail(1,this.hdr.sType,params.row.sOrderNo);
}
}
},params.row.sOrderNo)
}
},
{
width:'30%',
name:'检验数量',
align:'center',
field:'nQty',
color:'#42A071'
},
{
width:'20%',
name:'正品数',
align:'center',
field:'nGoodQty',
},
{
width:'25%',
name:'总扣分',
align:'center',
field:'nPoint',
}
]
}else{
this.columns = [
{
......@@ -261,6 +309,23 @@ export default {
]
}
if(this.hdr.sType == '检验' && this.type == 'material'){
this.$nextTick(async ()=>{
await this.init()
})
await this.getMaterialData();
window.onresize = ()=> {
var resizeWorldMapContainer = ()=> {
this.$refs['chart'].style.width = window.innerWidth+'px';
this.$refs['chart'].style.height = window.innerHeight+'px';
};
//重置容器高宽
resizeWorldMapContainer();
this.chart.resize();
};
return false;
}
await this.getData();
this.global.$off('clickTd');
......@@ -319,6 +384,31 @@ export default {
})
},
methods:{
async init(){
this.chart = await this.$echarts.init(this.$refs.chart)
this.chart.getZr().on("click",v=>{
if(v.target){
this.select(v.target.dataIndex)
}else{
this.select(-1)
}
})
},
select(index){
this.selectIndex=index
this.list.forEach((v,i)=>{
this.chart.dispatchAction({
type:"downplay",
seriesIndex:i
})
})
if(index>=0){
this.chart.dispatchAction({
type:"highlight",
dataIndex:index
})
}
},
async getData(flag){
if(this.per_page < 50){
this.$vux.toast.text('已加载全部数据!', 'middle')
......@@ -331,7 +421,7 @@ export default {
{key:"end_date",value:this.hdr.end_date},
];
if(this.type == 'custom'){
if(this.hdr.sType == '采购退货' || this.hdr.sType == '采购' || 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 == '加工回修'){
postData.push({key:"upbProviderGUID",value:this.customerItem.upbProviderGUID});
if(this.hdr.sType == '采购退货' || this.hdr.sType == '加工回修'){
postData[0].value = 'Abnormal early warning-customer-sOrder'
......@@ -342,12 +432,20 @@ export default {
}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 if(this.hdr.sType == '检验'){
postData[0].value = 'Operation gai sType-customer-sOrder'
postData.push({key:"upbCustomerGUID",value:this.customerItem.upbCustomerGUID});
}else{
postData.push({key:"upbCustomerGUID",value:this.customerItem.upbCustomerGUID});
if(this.hdr.sType == '销售退货' || this.hdr.sType == '疵品汇总'){
postData[0].value = 'Abnormal early warning-customer-sOrder'
}
}
}else if(this.type == 'provider'){
if(this.hdr.sType == '检验'){
postData[0].value = 'Operation gai sType-customer-sOrder'
postData.push({key:"upbProviderGUID",value:this.customerItem.upbProviderGUID});
}
}else{
postData.push({key:"sSampleMaterialNo",value:this.customerItem.sSampleMaterialNo})
}
......@@ -389,6 +487,62 @@ export default {
let result = await this.request('getBoss',{data:postData,params:{}},'加载中',{});
this.$store.dispatch('saveKanbanOrderDetail',result);
this.$router.push({name:'orderDetailsIndex'})
},
async getMaterialData(){
this.list = this.customerItem;
this.colorList=new Util.Colors(this.list.length).rgbArray()
this.all=0
this.list.forEach(v=> this.all+=v.nPoint )
this.all=Math.round(this.all*100)/100
this.list.forEach(v=>{
v.percent=Math.round(v.nPoint/this.all*10000)/100
})
this.chart.setOption({
tooltip:{
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)",
},
color:this.colorList.map(v=>v.hex),
legend: {
orient: 'vertical',
top: 10,
left: 10,
data: this.list.map(x=>x.sDefectNameCN)
},
series:[
{
name:'访问来源',
type: 'pie',
radius: '55%',
center: ['50%', '50%'],
label: {
normal: {
show: false,
position: 'center',
formatter(v){
return v.name+"\n"+v.value+"\n("+v.percent+"%)";
},
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
},
},
data: this.list.map(v=>{
return{
name:v.sDefectNameCN,
value:v.nPoint
}
}),
}
],
})
}
},
components:{
......
......@@ -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>
</div>
<div class="Table">
<customerTable :showFooter="true" :columns="activeTab == 0 ? columns : columns1" :list="list" :tableStyle="tableStyle"></customerTable>
<customerTable :showFooter="true" :columns="activeTab == 0 ? columns : activeTab == 1 ? columns1 : columns2" :list="list" :tableStyle="tableStyle"></customerTable>
</div>
</div>
</template>
......@@ -107,6 +107,8 @@ export default {
activeTab:0,
tabList:[],
columns1:[],
columns2:[],
showTab:true,
page:1,
per_page:50,
......@@ -239,34 +241,159 @@ export default {
},
]
}else if(this.hdr.sType == '检验'){
this.showTab = false;
this.tableStyle.tbodyHeight = 'calc(100vh - 60px)';
this.tabList = [
{
value:'加工商',
key:'0'
},
{
value:'客户',
key:'1'
},
{
value:'产品',
key:'2'
}
];
this.columns = [
{
width:'25%',
name:'加工商',
align:'center',
field:'sProviderNameHTML',
underline:true,
color:'#2d8cf0',
field:'sProviderName',
render: (h,params) => {
return h('span',{
style: {
'text-decoration':'underline',
'color':'#2d8cf0'
},
on:{
'click':()=>{
if(params.row.upbProviderGUID){
this.$store.dispatch('saveCustomerItem',params.row);
this.$router.push({name:'tiipOperateCustomDetail',params:{type:'provider'}})
}
}
}
},params.row.sProviderName)
}
},
{
width:'30%',
name:'检验数量',
align:'center',
field:'nQty',
color:'#42A071'
},
{
width:'20%',
name:'正品数',
align:'center',
field:'nGoodQty',
},
{
width:'25%',
name:'总扣分',
align:'center',
field:'nPoint',
}
]
this.columns1 = [
{
width:'25%',
name:'客户',
align:'center',
field:'sCustomerName',
render: (h,params) => {
return h('span',{
style: {
'text-decoration':'underline',
'color':'#2d8cf0'
},
on:{
'click':()=>{
if(params.row.upbCustomerGUID){
this.$store.dispatch('saveCustomerItem',params.row);
this.$router.push({name:'tiipOperateCustomDetail',params:{type:'custom'}})
}
}
}
},params.row.sCustomerName)
}
},
{
width:'30%',
name:'检验数量',
align:'center',
field:'nQty',
color:'#42A071'
},
{
width:'20%',
name:'正品数',
align:'center',
field:'nGoodQty',
},
{
width:'25%',
name:'总扣分',
align:'center',
field:'nPoint',
}
]
this.columns2 = [
{
width:'25%',
name:'产品',
align:'center',
field:'sMaterialHTML',
field:'sSampleMaterialNo',
render: (h,params) => {
return h('div',[
h('p',{
style: {
'text-decoration':'underline',
'color':'#2d8cf0',
'margin-bottom':0
},
on:{
'click':()=>{
this.getMaterialData(params);
}
}
},params.row.sSampleMaterialNo),
h('p',{
style: {
'text-decoration':'underline',
'color':'#2d8cf0',
'margin-bottom':0
},
on:{
'click':()=>{
this.getMaterialData(params);
}
}
},params.row.sSampleMaterialName)
])
}
},
{
width:'30%',
name:'检验数量',
align:'center',
field:'nQty',
color:'#42A071'
},
{
width:'20%',
name:'数量',
name:'正品数',
align:'center',
field:'nQtyHTML',
field:'nGoodQty',
},
{
width:'25%',
name:'金额',
name:'总扣分',
align:'center',
field:'nAmountHTML',
field:'nPoint',
}
]
}else if(this.hdr.sType == '收货'){
......@@ -282,7 +409,7 @@ export default {
];
this.columns = [
{
width:'25%',
width:'40%',
name:'供应商',
align:'center',
field:'sProviderNameHTML',
......@@ -290,17 +417,11 @@ export default {
color:'#2d8cf0',
},
{
width:'20%',
width:'30%',
name:'数量',
align:'center',
field:'nQtyHTML',
},
{
width:'25%',
name:'金额',
align:'center',
field:'nAmountHTML',
},
{
width:'30%',
name:'业务员',
......@@ -322,7 +443,7 @@ export default {
];
this.columns = [
{
width:'25%',
width:'40%',
name:'供应商',
align:'center',
field:'sProviderNameHTML',
......@@ -330,17 +451,11 @@ export default {
color:'#2d8cf0',
},
{
width:'20%',
width:'30%',
name:'数量',
align:'center',
field:'nQtyHTML',
},
{
width:'25%',
name:'金额',
align:'center',
field:'nAmountHTML',
},
{
width:'30%',
name:'仓管员',
......@@ -717,6 +832,9 @@ export default {
this.per_page = 50;
if(this.hdr.sType == '加工'){
this.columns1 = this.columns;
}else if(this.hdr.sType == '检验'){
this.columns1 = this.columns1;
this.columns2 = this.columns2
}else{
this.columns1 = this.columns1;
}
......@@ -739,6 +857,8 @@ export default {
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.hdr.sType == '检验'){
postData[0].value = 'Operation gai sType-provider';
}
}else if(this.activeTab == '1'){
if(this.hdr.sType == '加工'){
......@@ -746,6 +866,12 @@ export default {
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';
}else if(this.hdr.sType == '检验'){
postData[0].value = 'Operation gai sType-customer';
}
}else if(this.activeTab == '2'){
if(this.hdr.sType == '检验'){
postData[0].value = 'Operation gai sType-material';
}
}
let res = await this.request('getBoss',{
......@@ -755,22 +881,26 @@ export default {
per_page:this.per_page
},
},'加载中',{})
if(this.activeTab == 1 && this.hdr.sType != '加工'){
if((this.activeTab == 1 && this.hdr.sType != '加工') || this.activeTab == 2){
res.map((x,y)=>{
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>`;
if(y == res.length - 1){
x.sMaterial = `<div><span style="color:black;">${ x.sSampleMaterialName || ''}</span></div>`
if(this.hdr.sType == '检验'){
}else{
x.sMaterial = `<div><span style="color:#FF6633">${x.sSampleMaterialNo || ''}</span><br><span style="color:black;">${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>`;
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 if(this.activeTab == 0 || this.hdr.sType != '加工'){
res.map((x,y)=>{
if(this.hdr.sType == '销售退货' || this.hdr.sType == '采购退货'){
if(this.hdr.sType == '销售退货'){
......@@ -810,6 +940,31 @@ export default {
}
this.page++;
this.per_page = res.length - 1;
},
async getMaterialData(params){
if(params.row.sSampleMaterialNo){
let postData = [
{key:"url",value:'Operation gai sType-material-sOrder'},
{key:"sType",value:this.hdr.sType},
{key:"begin_date",value:this.hdr.begin_date},
{key:"end_date",value:this.hdr.end_date},
{key:"sSampleMaterialNo",value:params.row.sSampleMaterialNo}
]
let res = await this.request('getBoss',{
data:postData,
params:{},
},'加载中',{})
if(res.length > 0){
this.$store.dispatch('saveCustomerItem',res);
this.$router.push({name:'tiipOperateCustomDetail',params:{type:'material'}})
}else{
this.$vux.confirm.show({
title:"提示",
content:'该物料没有疵点!',
showCancelButton:false,
})
}
}
}
},
components:{
......
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