@@ -26,4 +26,25 @@ export default { | |||||
.el-tooltip__popper { | .el-tooltip__popper { | ||||
max-width: 300px; | max-width: 300px; | ||||
} | } | ||||
.nulllist{ | |||||
width: 100%; | |||||
height: 350px; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
.imgboxc{ | |||||
width: 100%; | |||||
text-align: center; | |||||
.imgboxc-img{ | |||||
width: 118px; | |||||
height: 118px; | |||||
} | |||||
.nulltext{ | |||||
width: 100%; | |||||
text-align: center; | |||||
color: #999999; | |||||
font-size: 14px; | |||||
} | |||||
} | |||||
} | |||||
</style> | </style> |
@@ -211,6 +211,7 @@ | |||||
style="height: 350px; width: 94%; margin: 0 auto" | style="height: 350px; width: 94%; margin: 0 auto" | ||||
> | > | ||||
<div id="data6" style="height:350px;"></div> | <div id="data6" style="height:350px;"></div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -390,7 +391,8 @@ export default { | |||||
}, | }, | ||||
tablist:[], | tablist:[], | ||||
houseList:[], | houseList:[], | ||||
role:'' | |||||
role:'', | |||||
}; | }; | ||||
}, | }, | ||||
mounted() { | mounted() { | ||||
@@ -853,12 +855,14 @@ export default { | |||||
}) | }) | ||||
}, | }, | ||||
SwitchCARDSsha(data1){ | SwitchCARDSsha(data1){ | ||||
echarts.init(document.getElementById(data1)).dispose(); | |||||
echarts.init(document.getElementById(data1)).dispose(); | |||||
}, | }, | ||||
SwitchCARDS1(arr1,arr2,timelist,data1) { | SwitchCARDS1(arr1,arr2,timelist,data1) { | ||||
echarts.init(document.getElementById(data1)).dispose(); | echarts.init(document.getElementById(data1)).dispose(); | ||||
var chartDom = document.getElementById(data1); | var chartDom = document.getElementById(data1); | ||||
var myChart = echarts.init(chartDom); | var myChart = echarts.init(chartDom); | ||||
var option; | var option; | ||||
option = { | option = { | ||||
color: [ | color: [ | ||||
@@ -998,10 +1002,16 @@ export default { | |||||
myChart.resize(); | myChart.resize(); | ||||
}); | }); | ||||
}, | }, | ||||
piechart2(arr1,arr2,timelist,data1){ | piechart2(arr1,arr2,timelist,data1){ | ||||
echarts.init(document.getElementById(data1)).dispose(); | echarts.init(document.getElementById(data1)).dispose(); | ||||
var chartDom = document.getElementById(data1); | var chartDom = document.getElementById(data1); | ||||
var myChart = echarts.init(chartDom); | var myChart = echarts.init(chartDom); | ||||
// try{ | |||||
// var myChart = echarts.init(chartDom); | |||||
// }catch(err){ | |||||
// console.log(err,data1); | |||||
// } | |||||
var option; | var option; | ||||
option = { | option = { | ||||
color: [ | color: [ | ||||
@@ -65,9 +65,6 @@ | |||||
</div> | </div> | ||||
<div id="main"></div> | <div id="main"></div> | ||||
<!-- <div v-if="Brokenline.length==0" style="display:flex;justify-content: center; align-items: center;height: 60%;"> | |||||
<div>暂无数据</div> | |||||
</div> --> | |||||
</div> | </div> | ||||
<!-- 三 --> | <!-- 三 --> | ||||
@@ -89,11 +86,11 @@ | |||||
<div class="hejisan"> | <div class="hejisan"> | ||||
<div class="sanbox1" style="width: 40%;"> | <div class="sanbox1" style="width: 40%;"> | ||||
<div class="text1-1">合计接待</div> | <div class="text1-1">合计接待</div> | ||||
<div class="text1-2">{{Pinspeak.sum}}个</div> | |||||
<div class="text1-2">{{Pinspeak.sum||0}}个</div> | |||||
</div> | </div> | ||||
<div class="sanbox1" style="width: 25%;"> | <div class="sanbox1" style="width: 25%;"> | ||||
<div class="text1-1">均值</div> | <div class="text1-1">均值</div> | ||||
<div class="text1-2">{{Pinspeak.avg}}%</div> | |||||
<div class="text1-2">{{Pinspeak.avg||0}}%</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div id="Pinspeak1"></div> | <div id="Pinspeak1"></div> | ||||
@@ -115,14 +112,15 @@ | |||||
<div class="hejisan"> | <div class="hejisan"> | ||||
<div class="sanbox1" style="width: 40%;"> | <div class="sanbox1" style="width: 40%;"> | ||||
<div class="text1-1">合计接待</div> | <div class="text1-1">合计接待</div> | ||||
<div class="text1-2">{{Pinspeak2.sum}}个</div> | |||||
<div class="text1-2">{{Pinspeak2.sum||0}}个</div> | |||||
</div> | </div> | ||||
<div class="sanbox1" style="width: 25%;"> | <div class="sanbox1" style="width: 25%;"> | ||||
<div class="text1-1">均值</div> | <div class="text1-1">均值</div> | ||||
<div class="text1-2">{{Pinspeak2.avg}}%</div> | |||||
<div class="text1-2">{{Pinspeak2.avg||0}}%</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div id="Pinspeak2"></div> | <div id="Pinspeak2"></div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -136,18 +134,18 @@ | |||||
<div class="hejisan"> | <div class="hejisan"> | ||||
<div class="sanbox1" style="width: 30%;"> | <div class="sanbox1" style="width: 30%;"> | ||||
<div class="text1-1">合计</div> | <div class="text1-1">合计</div> | ||||
<div class="text1-2">{{ceratelist.sum || ''}}次</div> | |||||
<div class="text1-2">{{ceratelist.sum || 0}}次</div> | |||||
</div> | </div> | ||||
<div class="sanbox1" style="width: 40%;"> | <div class="sanbox1" style="width: 40%;"> | ||||
<div class="text1-1">顾问</div> | <div class="text1-1">顾问</div> | ||||
<div class="text1-2">{{ceratelist.num || ''}}个</div> | |||||
<div class="text1-2">{{ceratelist.num || 0}}个</div> | |||||
</div> | </div> | ||||
<div class="sanbox1" style="width: 30%;"> | <div class="sanbox1" style="width: 30%;"> | ||||
<div class="text1-1">人均接待</div> | <div class="text1-1">人均接待</div> | ||||
<div class="text1-2">{{ceratelist.avg || ''}}次</div> | |||||
<div class="text1-2">{{ceratelist.avg || 0}}次</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div style="overflow-y:auto;height: 290px;width: 94%;margin: 0 auto;margin-top: 15px;margin-bottom: 16px;"> | |||||
<div v-if="ceratelist.list.length!=0" style="overflow-y:auto;height: 290px;width: 94%;margin: 0 auto;margin-top: 15px;margin-bottom: 16px;"> | |||||
<div class="jinbox" v-for="(item,i) in ceratelist.list" :key='i'> | <div class="jinbox" v-for="(item,i) in ceratelist.list" :key='i'> | ||||
<div class="jinboxtit">{{item.name}}</div> | <div class="jinboxtit">{{item.name}}</div> | ||||
<div class="jinbox-box"> | <div class="jinbox-box"> | ||||
@@ -156,6 +154,12 @@ | |||||
<div class="jinboxbott">{{item.zxl}}个</div> | <div class="jinboxbott">{{item.zxl}}个</div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="nulllist" v-if="ceratelist.list.length==0"> | |||||
<div class="imgboxc"> | |||||
<img class="imgboxc-img" src="/img/nullnull.png" alt=""> | |||||
<div class="nulltext">暂无数据</div> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
<div class="you"> | <div class="you"> | ||||
<div class="title"> | <div class="title"> | ||||
@@ -165,18 +169,18 @@ | |||||
<div class="hejisan"> | <div class="hejisan"> | ||||
<div class="sanbox1" style="width: 30%;"> | <div class="sanbox1" style="width: 30%;"> | ||||
<div class="text1-1">合计</div> | <div class="text1-1">合计</div> | ||||
<div class="text1-2">{{Math.floor(ceratelist1.sum /60) || ''}}分钟</div> | |||||
<div class="text1-2">{{Math.floor(ceratelist1.sum /60) || 0}}分钟</div> | |||||
</div> | </div> | ||||
<div class="sanbox1" style="width: 40%;"> | <div class="sanbox1" style="width: 40%;"> | ||||
<div class="text1-1">顾问</div> | <div class="text1-1">顾问</div> | ||||
<div class="text1-2">{{ceratelist1.num || ''}}个</div> | |||||
<div class="text1-2">{{ceratelist1.num || 0}}个</div> | |||||
</div> | </div> | ||||
<div class="sanbox1" style="width: 30%;"> | <div class="sanbox1" style="width: 30%;"> | ||||
<div class="text1-1">均值</div> | <div class="text1-1">均值</div> | ||||
<div class="text1-2">{{Math.floor(ceratelist1.avg /60) || ''}}分钟</div> | |||||
<div class="text1-2">{{Math.floor(ceratelist1.avg /60) || 0}}分钟</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div style="overflow-y:auto;height: 290px;width: 94%;margin: 0 auto;margin-top: 15px;margin-bottom: 16px;"> | |||||
<div v-if="ceratelist1.list.length!=0" style="overflow-y:auto;height: 290px;width: 94%;margin: 0 auto;margin-top: 15px;margin-bottom: 16px;"> | |||||
<div class="jinbox" v-for="(item,i) in ceratelist1.list" :key='i'> | <div class="jinbox" v-for="(item,i) in ceratelist1.list" :key='i'> | ||||
<div class="jinboxtit">{{item.name}}</div> | <div class="jinboxtit">{{item.name}}</div> | ||||
<div class="jinbox-box"> | <div class="jinbox-box"> | ||||
@@ -185,7 +189,12 @@ | |||||
<div class="jinboxbott">{{item.zxl}}分钟</div> | <div class="jinboxbott">{{item.zxl}}分钟</div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="nulllist" v-if="ceratelist1.list.length==0"> | |||||
<div class="imgboxc"> | |||||
<img class="imgboxc-img" src="/img/nullnull.png" alt=""> | |||||
<div class="nulltext">暂无数据</div> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -195,7 +204,7 @@ | |||||
<div class="title"> | <div class="title"> | ||||
<div class="text1">销讲维度执行排名</div> | <div class="text1">销讲维度执行排名</div> | ||||
</div> | </div> | ||||
<div style="overflow-y:auto;height: 290px;width: 94%;margin: 0 auto;margin-top: 15px;margin-bottom: 16px;"> | |||||
<div v-if="Zxllist.length!=0" style="overflow-y:auto;height: 290px;width: 94%;margin: 0 auto;margin-top: 15px;margin-bottom: 16px;"> | |||||
<div class="jinbox" v-for="(item,i) in Zxllist" :key='i'> | <div class="jinbox" v-for="(item,i) in Zxllist" :key='i'> | ||||
<div class="jinboxtit">{{item.name}}</div> | <div class="jinboxtit">{{item.name}}</div> | ||||
<div class="jinbox-box"> | <div class="jinbox-box"> | ||||
@@ -203,6 +212,12 @@ | |||||
</div> | </div> | ||||
<div class="jinboxbott">{{item.zxl}}%</div> | <div class="jinboxbott">{{item.zxl}}%</div> | ||||
</div> | </div> | ||||
</div> | |||||
<div class="nulllist" v-if="Zxllist.length==0"> | |||||
<div class="imgboxc"> | |||||
<img class="imgboxc-img" src="/img/nullnull.png" alt=""> | |||||
<div class="nulltext">暂无数据</div> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="you"> | <div class="you"> | ||||
@@ -220,7 +235,7 @@ | |||||
</el-select> | </el-select> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div style="overflow-y:auto;height: 290px;width: 94%;margin: 0 auto;margin-top: 15px;margin-bottom: 16px;"> | |||||
<div v-if="Zxllistchildren.length!=0" style="overflow-y:auto;height: 290px;width: 94%;margin: 0 auto;margin-top: 15px;margin-bottom: 16px;"> | |||||
<div class="jinbox" v-for="(item,i) in Zxllistchildren" :key='i'> | <div class="jinbox" v-for="(item,i) in Zxllistchildren" :key='i'> | ||||
<div class="jinboxtit">{{item.name}}</div> | <div class="jinboxtit">{{item.name}}</div> | ||||
<div class="jinbox-box"> | <div class="jinbox-box"> | ||||
@@ -229,7 +244,12 @@ | |||||
<div class="jinboxbott">{{item.zxl}}%</div> | <div class="jinboxbott">{{item.zxl}}%</div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="nulllist" v-if="Zxllistchildren.length==0"> | |||||
<div class="imgboxc"> | |||||
<img class="imgboxc-img" src="/img/nullnull.png" alt=""> | |||||
<div class="nulltext">暂无数据</div> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -300,16 +320,24 @@ export default { | |||||
this.overviewfindUserListByHouseId() | this.overviewfindUserListByHouseId() | ||||
this.overviewreceptionOverview() | this.overviewreceptionOverview() | ||||
this.overviewreceptionData() | this.overviewreceptionData() | ||||
this.overviewreceptionRanking() | this.overviewreceptionRanking() | ||||
this.overviewreceptionRanking1() | this.overviewreceptionRanking1() | ||||
this.overviewreceptionOverviewZxl() | this.overviewreceptionOverviewZxl() | ||||
this.overviewteamOrAccountSellingTrends() | |||||
this.overviewteamOrAccountSellingTrends1() | |||||
}else{ | }else{ | ||||
this.zkhousePage() | this.zkhousePage() | ||||
} | } | ||||
}, | }, | ||||
methods: { | methods: { | ||||
//切换楼盘 | |||||
houseChange(){ | houseChange(){ | ||||
this.Zxllist=[]; | |||||
this.marketingId=''; | |||||
this.consultantlist=[]; | |||||
this.consultantsri=''; | |||||
this.departmentlist=[]; | |||||
this.departmentsri=''; | |||||
this.customtime=[]; | this.customtime=[]; | ||||
this.TimetoAhoose=4; | this.TimetoAhoose=4; | ||||
this.fromobj.statDateStart= ''; | this.fromobj.statDateStart= ''; | ||||
@@ -318,11 +346,13 @@ export default { | |||||
this.overviewfindUserListByHouseId() | this.overviewfindUserListByHouseId() | ||||
this.overviewreceptionOverview() | this.overviewreceptionOverview() | ||||
this.overviewreceptionData() | this.overviewreceptionData() | ||||
this.overviewreceptionRanking() | this.overviewreceptionRanking() | ||||
this.overviewreceptionRanking1() | this.overviewreceptionRanking1() | ||||
this.overviewreceptionOverviewZxl() | this.overviewreceptionOverviewZxl() | ||||
this.overviewteamOrAccountSellingTrends() | |||||
this.overviewteamOrAccountSellingTrends1() | |||||
}, | }, | ||||
//获取楼盘 | |||||
zkhousePage() { | zkhousePage() { | ||||
this.$api.api | this.$api.api | ||||
.findHouseByUser({ | .findHouseByUser({ | ||||
@@ -339,6 +369,8 @@ export default { | |||||
this.overviewreceptionRanking() | this.overviewreceptionRanking() | ||||
this.overviewreceptionRanking1() | this.overviewreceptionRanking1() | ||||
this.overviewreceptionOverviewZxl() | this.overviewreceptionOverviewZxl() | ||||
this.overviewteamOrAccountSellingTrends() | |||||
this.overviewteamOrAccountSellingTrends1() | |||||
}); | }); | ||||
}, | }, | ||||
//切换二级 | //切换二级 | ||||
@@ -464,7 +496,6 @@ export default { | |||||
statDateEnd:this.fromobj.statDateEnd, | statDateEnd:this.fromobj.statDateEnd, | ||||
deptId:this.departmentsri | deptId:this.departmentsri | ||||
} | } | ||||
// console.log(this.departmentsri,'123'); | |||||
if(this.TimetoAhoose==8){ | if(this.TimetoAhoose==8){ | ||||
parmo.dateType=null; | parmo.dateType=null; | ||||
} | } | ||||
@@ -545,6 +576,7 @@ export default { | |||||
}) | }) | ||||
} | } | ||||
this.SwitchCARDS(newline,newline2,Strname) | this.SwitchCARDS(newline,newline2,Strname) | ||||
}, | }, | ||||
//获取卡片数据 | //获取卡片数据 | ||||
overviewreceptionOverview(){ | overviewreceptionOverview(){ | ||||
@@ -563,6 +595,7 @@ export default { | |||||
}, | }, | ||||
//获取卡片下折线图 | //获取卡片下折线图 | ||||
overviewreceptionData(){ | overviewreceptionData(){ | ||||
this.Brokenline=[]; | |||||
let parmo={ | let parmo={ | ||||
houseId:this.houseId, | houseId:this.houseId, | ||||
dateType:this.TimetoAhoose, | dateType:this.TimetoAhoose, | ||||
@@ -573,7 +606,7 @@ export default { | |||||
parmo.dateType=null; | parmo.dateType=null; | ||||
} | } | ||||
this.$api.http.overviewreceptionData(parmo).then((res) => { | this.$api.http.overviewreceptionData(parmo).then((res) => { | ||||
this.Brokenline=res.data; | |||||
this.Brokenline=res.data ||[]; | |||||
this.Overviewxlick(1) | this.Overviewxlick(1) | ||||
}) | }) | ||||
}, | }, | ||||
@@ -582,13 +615,11 @@ export default { | |||||
this.$api.http.overviewfindList({ | this.$api.http.overviewfindList({ | ||||
houseId:this.houseId, | houseId:this.houseId, | ||||
}).then((res) => { | }).then((res) => { | ||||
// this.departmentlist=[{name:'全部',deptId:''}] | |||||
// this.departmentlist=this.departmentlist.concat(res.data); | |||||
this.departmentlist=res.data; | |||||
this.departmentlist=res.data||[]; | |||||
if(this.departmentlist.length==0){ | |||||
return | |||||
} | |||||
this.departmentsri=this.departmentlist[0].deptId; | this.departmentsri=this.departmentlist[0].deptId; | ||||
// console.log(this.departmentsri); | |||||
// console.log(this.departmentsri,'1'); | |||||
this.overviewteamOrAccountSellingTrends() | this.overviewteamOrAccountSellingTrends() | ||||
}) | }) | ||||
@@ -599,13 +630,19 @@ export default { | |||||
orgType:localStorage.getItem("orgType"), | orgType:localStorage.getItem("orgType"), | ||||
projectId:this.houseId, | projectId:this.houseId, | ||||
}).then((res) => { | }).then((res) => { | ||||
this.consultantlist=res.data; | |||||
this.consultantlist=res.data||[]; | |||||
if(this.consultantlist.length==0){ | |||||
return | |||||
} | |||||
this.consultantsri=res.data[0].accountId; | this.consultantsri=res.data[0].accountId; | ||||
this.overviewteamOrAccountSellingTrends1() | this.overviewteamOrAccountSellingTrends1() | ||||
}) | }) | ||||
}, | }, | ||||
//卡片下折线图 | //卡片下折线图 | ||||
SwitchCARDS(newline,newline2,Strname){ | SwitchCARDS(newline,newline2,Strname){ | ||||
if(this.Brokenline==0){ | |||||
return | |||||
} | |||||
echarts.init(document.getElementById('main')).dispose(); // 销毁实例 | echarts.init(document.getElementById('main')).dispose(); // 销毁实例 | ||||
var chartDom = document.getElementById('main'); | var chartDom = document.getElementById('main'); | ||||
var myChart = echarts.init(chartDom); | var myChart = echarts.init(chartDom); | ||||
@@ -746,6 +783,9 @@ export default { | |||||
//团队销讲 | //团队销讲 | ||||
Pinspeakfun1(newline,newline2){ | Pinspeakfun1(newline,newline2){ | ||||
if( this.Pinspeak.list.length==0){ | |||||
return | |||||
} | |||||
let chartDom = document.getElementById('Pinspeak1'); | let chartDom = document.getElementById('Pinspeak1'); | ||||
let myChart = echarts.init(chartDom); | let myChart = echarts.init(chartDom); | ||||
let option= { | let option= { | ||||
@@ -799,7 +839,6 @@ export default { | |||||
type: 'solid', | type: 'solid', | ||||
color: '#DDE1EE',//x线的颜色 | color: '#DDE1EE',//x线的颜色 | ||||
width:'1'//坐标线的宽度 | width:'1'//坐标线的宽度 | ||||
} | } | ||||
} | } | ||||
}, | }, | ||||
@@ -843,6 +882,9 @@ export default { | |||||
}, | }, | ||||
//员工销讲 | //员工销讲 | ||||
Pinspeakfun2(newline,newline2){ | Pinspeakfun2(newline,newline2){ | ||||
if( this.Pinspeak2.list.length==0){ | |||||
return | |||||
} | |||||
let chartDom = document.getElementById('Pinspeak2'); | let chartDom = document.getElementById('Pinspeak2'); | ||||
let myChart = echarts.init(chartDom); | let myChart = echarts.init(chartDom); | ||||
let option= { | let option= { | ||||
@@ -896,7 +938,6 @@ export default { | |||||
type: 'solid', | type: 'solid', | ||||
color: '#DDE1EE',//x线的颜色 | color: '#DDE1EE',//x线的颜色 | ||||
width:'1'//坐标线的宽度 | width:'1'//坐标线的宽度 | ||||
} | } | ||||
} | } | ||||
}, | }, | ||||
@@ -934,7 +975,6 @@ export default { | |||||
}] | }] | ||||
}; | }; | ||||
option && myChart.setOption(option); | option && myChart.setOption(option); | ||||
window.addEventListener("resize", () => { myChart.resize();}); | window.addEventListener("resize", () => { myChart.resize();}); | ||||
}, | }, | ||||
@@ -973,7 +1013,6 @@ export default { | |||||
}) | }) | ||||
return arr | return arr | ||||
}, | }, | ||||
}, | }, | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -986,6 +1025,7 @@ export default { | |||||
padding-bottom: 100px; | padding-bottom: 100px; | ||||
} | } | ||||
.container { | .container { | ||||
display: grid; | display: grid; | ||||
grid-template-columns: repeat(5, 19%) ; | grid-template-columns: repeat(5, 19%) ; | ||||
@@ -82,14 +82,14 @@ | |||||
<div class="hejisan"> | <div class="hejisan"> | ||||
<div class="sanbox1" style="width: 50%;"> | <div class="sanbox1" style="width: 50%;"> | ||||
<div class="text1-1">团队总数</div> | <div class="text1-1">团队总数</div> | ||||
<div class="text1-2">{{teamobj1.num}}个</div> | |||||
<div class="text1-2">{{teamobj1.num||0}}个</div> | |||||
</div> | </div> | ||||
<div class="sanbox1" style="width: 50%;"> | <div class="sanbox1" style="width: 50%;"> | ||||
<div class="text1-1">均值</div> | <div class="text1-1">均值</div> | ||||
<div class="text1-2">{{teamobj1.avg}}个</div> | |||||
<div class="text1-2">{{teamobj1.avg||0}}个</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div style="overflow-y:auto;height: 350px;width: 94%;margin: 0 auto;"> | |||||
<div v-if="teamobj1.list.length!=0" style="overflow-y:auto;height: 350px;width: 94%;margin: 0 auto;"> | |||||
<div class="jinbox" v-for="(item,i) in teamobj1.list" :key='i'> | <div class="jinbox" v-for="(item,i) in teamobj1.list" :key='i'> | ||||
<div class="jinboxtit">{{item.name}}</div> | <div class="jinboxtit">{{item.name}}</div> | ||||
<div class="jinbox-box"> | <div class="jinbox-box"> | ||||
@@ -98,6 +98,12 @@ | |||||
<div class="jinboxbott">{{item.zxl}}个</div> | <div class="jinboxbott">{{item.zxl}}个</div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="nulllist" style="height:300px" v-if="teamobj1.list.length==0"> | |||||
<div class="imgboxc"> | |||||
<img class="imgboxc-img" src="/img/nullnull.png" alt=""> | |||||
<div class="nulltext">暂无数据</div> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
<div class="you"> | <div class="you"> | ||||
<div class="title"> | <div class="title"> | ||||
@@ -106,14 +112,14 @@ | |||||
<div class="hejisan"> | <div class="hejisan"> | ||||
<div class="sanbox1" style="width: 50%;"> | <div class="sanbox1" style="width: 50%;"> | ||||
<div class="text1-1">团队总数</div> | <div class="text1-1">团队总数</div> | ||||
<div class="text1-2">{{teamobj2.num}}个</div> | |||||
<div class="text1-2">{{teamobj2.num||0}}个</div> | |||||
</div> | </div> | ||||
<div class="sanbox1" style="width: 50%;"> | <div class="sanbox1" style="width: 50%;"> | ||||
<div class="text1-1">均值</div> | <div class="text1-1">均值</div> | ||||
<div class="text1-2">{{Math.floor(teamobj2.avg/60)}}分钟</div> | |||||
<div class="text1-2">{{Math.floor(teamobj2.avg/60)||0}}分钟</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div style="overflow-y:auto;height: 350px;width: 94%;margin: 0 auto;"> | |||||
<div v-if="teamobj2.list.length!=0" style="overflow-y:auto;height: 350px;width: 94%;margin: 0 auto;"> | |||||
<div class="jinbox" v-for="(item,i) in teamobj2.list" :key='i'> | <div class="jinbox" v-for="(item,i) in teamobj2.list" :key='i'> | ||||
<div class="jinboxtit">{{item.name}}</div> | <div class="jinboxtit">{{item.name}}</div> | ||||
<div class="jinbox-box"> | <div class="jinbox-box"> | ||||
@@ -122,6 +128,12 @@ | |||||
<div class="jinboxbott">{{item.zxl}}分钟</div> | <div class="jinboxbott">{{item.zxl}}分钟</div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="nulllist" style="height:300px" v-if="teamobj2.list.length==0"> | |||||
<div class="imgboxc"> | |||||
<img class="imgboxc-img" src="/img/nullnull.png" alt=""> | |||||
<div class="nulltext">暂无数据</div> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -143,14 +155,14 @@ | |||||
<div class="hejisan"> | <div class="hejisan"> | ||||
<div class="sanbox1" style="width: 50%;"> | <div class="sanbox1" style="width: 50%;"> | ||||
<div class="text1-1">团队总数</div> | <div class="text1-1">团队总数</div> | ||||
<div class="text1-2">{{teamobj3.num}}个</div> | |||||
<div class="text1-2">{{teamobj3.num||0}}个</div> | |||||
</div> | </div> | ||||
<div class="sanbox1" style="width: 50%;"> | <div class="sanbox1" style="width: 50%;"> | ||||
<div class="text1-1">均值</div> | <div class="text1-1">均值</div> | ||||
<div class="text1-2">{{teamobj3.avg || 0}}%</div> | <div class="text1-2">{{teamobj3.avg || 0}}%</div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div style="overflow-y:auto;height: 350px;width: 94%;margin: 0 auto;"> | |||||
<div v-if="teamobj3.list.length!=0" style="overflow-y:auto;height: 350px;width: 94%;margin: 0 auto;"> | |||||
<div class="jinbox" v-for="(item,i) in teamobj3.list" :key='i'> | <div class="jinbox" v-for="(item,i) in teamobj3.list" :key='i'> | ||||
<div class="jinboxtit">{{item.name}}</div> | <div class="jinboxtit">{{item.name}}</div> | ||||
<div class="jinbox-box"> | <div class="jinbox-box"> | ||||
@@ -159,12 +171,24 @@ | |||||
<div class="jinboxbott">{{item.zxl}}%</div> | <div class="jinboxbott">{{item.zxl}}%</div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="nulllist" style="height:300px" v-if="teamobj3.list.length==0"> | |||||
<div class="imgboxc"> | |||||
<img class="imgboxc-img" src="/img/nullnull.png" alt=""> | |||||
<div class="nulltext">暂无数据</div> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
<div class="you"> | <div class="you"> | ||||
<div class="title"> | <div class="title"> | ||||
<div class="text1">销讲能力雷达图</div> | <div class="text1">销讲能力雷达图</div> | ||||
</div> | </div> | ||||
<div id="main" style="height: 350px;width: 94%;margin: 0 auto;"></div> | |||||
<div id="main" v-if="isshowcd2==true" style="height: 350px;width: 94%;margin: 0 auto;"></div> | |||||
<div class="nulllist" style="height:300px" v-if="isshowcd2==false"> | |||||
<div class="imgboxc"> | |||||
<img class="imgboxc-img" src="/img/nullnull.png" alt=""> | |||||
<div class="nulltext">暂无数据</div> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -190,10 +214,10 @@ | |||||
</div> | </div> | ||||
<div class="sanbox1" style="width: 50%;"> | <div class="sanbox1" style="width: 50%;"> | ||||
<div class="text1-1">均值</div> | <div class="text1-1">均值</div> | ||||
<div class="text1-2">{{teamobj5.avg}}次</div> | |||||
<div class="text1-2">{{teamobj5.avg||0}}次</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div style="overflow-y:auto;height: 350px;width: 94%;margin: 0 auto;"> | |||||
<div v-if="teamobj5.list.length!=0" style="overflow-y:auto;height: 350px;width: 94%;margin: 0 auto;"> | |||||
<div class="jinbox" v-for="(item,i) in teamobj5.list" :key='i'> | <div class="jinbox" v-for="(item,i) in teamobj5.list" :key='i'> | ||||
<div class="jinboxtit">{{item.name}}</div> | <div class="jinboxtit">{{item.name}}</div> | ||||
<div class="jinbox-box"> | <div class="jinbox-box"> | ||||
@@ -202,12 +226,24 @@ | |||||
<div class="jinboxbott">{{item.zxl}}次</div> | <div class="jinboxbott">{{item.zxl}}次</div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="nulllist" style="height:300px" v-if="teamobj5.list.length==0"> | |||||
<div class="imgboxc"> | |||||
<img class="imgboxc-img" src="/img/nullnull.png" alt=""> | |||||
<div class="nulltext">暂无数据</div> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
<div class="you"> | <div class="you"> | ||||
<div class="title"> | <div class="title"> | ||||
<div class="text1">违禁话术雷达图</div> | <div class="text1">违禁话术雷达图</div> | ||||
</div> | </div> | ||||
<div id="main2" style="height: 350px;width: 94%;margin: 0 auto;"></div> | |||||
<div v-if="isshowcd==true" id="main2" style="height: 350px;width: 94%;margin: 0 auto;"></div> | |||||
<div class="nulllist" style="height:300px" v-if="isshowcd==false"> | |||||
<div class="imgboxc"> | |||||
<img class="imgboxc-img" src="/img/nullnull.png" alt=""> | |||||
<div class="nulltext">暂无数据</div> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -252,7 +288,9 @@ export default { | |||||
teamAllLeve2id:'', | teamAllLeve2id:'', | ||||
ceratelist:[], | ceratelist:[], | ||||
role:'', | role:'', | ||||
houseList:[] | |||||
houseList:[], | |||||
isshowcd:true, | |||||
isshowcd2:true | |||||
}; | }; | ||||
}, | }, | ||||
mounted() { | mounted() { | ||||
@@ -562,6 +600,12 @@ export default { | |||||
}, | }, | ||||
initecah(namelist,datalist,newlinename){ | initecah(namelist,datalist,newlinename){ | ||||
if(datalist.length==0){ | |||||
this.isshowcd2=false | |||||
return | |||||
}else{ | |||||
this.isshowcd2=true | |||||
} | |||||
echarts.init(document.getElementById("main")).dispose(); | echarts.init(document.getElementById("main")).dispose(); | ||||
var chartDom = document.getElementById("main"); | var chartDom = document.getElementById("main"); | ||||
var myChart = echarts.init(chartDom); | var myChart = echarts.init(chartDom); | ||||
@@ -622,6 +666,12 @@ export default { | |||||
}); | }); | ||||
}, | }, | ||||
initecah2(namelist,datalist,newlinename){ | initecah2(namelist,datalist,newlinename){ | ||||
if(datalist.length==0){ | |||||
this.isshowcd=false | |||||
return | |||||
}else{ | |||||
this.isshowcd=true | |||||
} | |||||
echarts.init(document.getElementById("main2")).dispose(); | echarts.init(document.getElementById("main2")).dispose(); | ||||
var chartDom = document.getElementById("main2"); | var chartDom = document.getElementById("main2"); | ||||
var myChart = echarts.init(chartDom); | var myChart = echarts.init(chartDom); | ||||
@@ -298,19 +298,8 @@ | |||||
</el-select> | </el-select> | ||||
</div> | </div> | ||||
<div v-if="echartsisshow" id="main"></div> | |||||
<div | |||||
v-else | |||||
style=" | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
height: 350px; | |||||
" | |||||
> | |||||
<div>暂无数据</div> | |||||
<div id="main"></div> | |||||
</div> | </div> | ||||
</div> | |||||
<!-- 表格 --> | <!-- 表格 --> | ||||
<div | <div | ||||
@@ -1011,7 +1011,7 @@ export default { | |||||
if (data.children.length == 0) { | if (data.children.length == 0) { | ||||
this.deleteType = "node"; | this.deleteType = "node"; | ||||
this.deleteId = data.id; | this.deleteId = data.id; | ||||
this.dialogVisible = true; | |||||
this.dialogVisible = true;findByTempId | |||||
} else { | } else { | ||||
this.$message({ | this.$message({ | ||||
message: "请先清空子级", | message: "请先清空子级", | ||||
@@ -89,7 +89,8 @@ | |||||
<el-button type="text" size="small" v-if="scope.row.status==1&&tem_pwl_stop" @click="clickstateis(scope.row)">启用</el-button> | <el-button type="text" size="small" v-if="scope.row.status==1&&tem_pwl_stop" @click="clickstateis(scope.row)">启用</el-button> | ||||
<el-button type="text" size="small" v-if="scope.row.status==0&&tem_pwl_stop" @click="clickstateno(scope.row)">停用</el-button> | <el-button type="text" size="small" v-if="scope.row.status==0&&tem_pwl_stop" @click="clickstateno(scope.row)">停用</el-button> | ||||
<el-button type="text" size="small" v-if="tem_pwl_edit" @click="clickbianji(scope.row)">编辑</el-button> | <el-button type="text" size="small" v-if="tem_pwl_edit" @click="clickbianji(scope.row)">编辑</el-button> | ||||
<el-button type="text" size="small" v-if="tem_pwl_del" @click="templatedel(scope.row)">删除</el-button> | |||||
<el-button type="text" size="small" v-if="tem_pwl_del" @click="templatedel(scope.row)">删除</el-button> | |||||
<el-button type="text" size="small" @click="goinfo(scope.row)">查看</el-button> | |||||
</template> | </template> | ||||
</el-table-column> | </el-table-column> | ||||
</el-table> | </el-table> | ||||
@@ -105,6 +106,31 @@ | |||||
</el-pagination> | </el-pagination> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<el-dialog title="查看" :visible.sync="dialogFormVisible"> | |||||
<div style="height: 400px;overflow-y: auto;width:80%;margin: 0 auto;"> | |||||
<div style="border: 2px dashed #CCCCCC;margin-top: 10px;padding:6px;border-radius: 6px;font-size: 14px;" | |||||
v-for="(item,index) in newlist" :key="index"> | |||||
<div style="display: flex;align-items: center;height: 30px;"> | |||||
<div >{{item.name||''}}:{{item.fraction}}分</div> | |||||
</div> | |||||
<div class="erji" style="margin-left: 30px;" v-for="(asd,idx) in item.children" :key="idx"> | |||||
<div style="display: flex;align-items: center;height: 30px;"> | |||||
<div>{{asd.name||''}}:{{asd.fraction}}分</div> | |||||
<div> | |||||
</div> | |||||
</div> | |||||
<div class="sanji" style="width:90%;" > | |||||
<div style="display: flex;align-items: center;height: 30px;" v-for="(sanji,indx) in asd.children" :key="indx"> | |||||
<div style="width:85% ;margin-left: 30px;">{{sanji.name||''}}</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div slot="footer" class="dialog-footer"> | |||||
<el-button @click="dialogFormVisible = false">取 消</el-button> | |||||
</div> | |||||
</el-dialog> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
@@ -126,6 +152,9 @@ export default { | |||||
{label:'启用',value:'0'}, | {label:'启用',value:'0'}, | ||||
], | ], | ||||
statetest:'', | statetest:'', | ||||
dialogFormVisible:false, | |||||
nodelist:[], | |||||
newlist:[] | |||||
}; | }; | ||||
}, | }, | ||||
computed: { | computed: { | ||||
@@ -141,6 +170,74 @@ export default { | |||||
this.zkhousePage() | this.zkhousePage() | ||||
}, | }, | ||||
methods: { | methods: { | ||||
goinfo(row){ | |||||
this.nodelist=[] | |||||
this.newlist=[] | |||||
this.dialogFormVisible=true; | |||||
this.$api.http.templatedelfindByTempId({tempId:row.id,}).then((res) => { | |||||
this.nodelist = res.data.list; | |||||
this.listCheckedchaifen() | |||||
}) | |||||
}, | |||||
listCheckedchaifen() { | |||||
let arr = []; | |||||
let level2 = []; | |||||
this.nodelist.forEach((item, index) => { | |||||
if (item.pid == 0) { | |||||
item.children = []; | |||||
arr.push(item); | |||||
} else { | |||||
level2.push(item); | |||||
} | |||||
}); | |||||
let resultArr = []; //去重后的数组 | |||||
var flag; | |||||
for (var i in arr) { | |||||
flag = true; | |||||
for (var j in resultArr) { | |||||
if (resultArr[j].id == arr[i].id) { | |||||
flag = false; | |||||
break; | |||||
} | |||||
} | |||||
if (flag) { | |||||
resultArr.push(arr[i]); | |||||
} | |||||
} | |||||
let resultArrlist = []; //去重后的数组 | |||||
var flags; | |||||
for (var i in level2) { | |||||
flags = true; | |||||
for (var j in resultArrlist) { | |||||
if (resultArrlist[j].id == level2[i].id) { | |||||
flags = false; | |||||
break; | |||||
} | |||||
} | |||||
if (flags) { | |||||
resultArrlist.push(level2[i]); | |||||
} | |||||
} | |||||
let level3 = []; | |||||
resultArrlist.forEach((res, index) => { | |||||
resultArr.forEach((asd) => { | |||||
if (res.pid == asd.id) { | |||||
res.children = []; | |||||
asd.children.push(res); | |||||
} | |||||
}); | |||||
}); | |||||
resultArrlist.forEach((xzd) => { | |||||
resultArr.forEach((asd) => { | |||||
asd.children.forEach((qwe) => { | |||||
if (xzd.pid == qwe.id) { | |||||
qwe.children.push(xzd); | |||||
} | |||||
}); | |||||
}); | |||||
}); | |||||
this.newlist = resultArr; | |||||
}, | |||||
//停用 | //停用 | ||||
clickstateno(item){ | clickstateno(item){ | ||||
this.$confirm('此操作将停用此模板, 是否继续?', '提示', { | this.$confirm('此操作将停用此模板, 是否继续?', '提示', { | ||||
@@ -304,6 +401,14 @@ export default { | |||||
</script> | </script> | ||||
<style scoped="scoped" lang="scss" > | <style scoped="scoped" lang="scss" > | ||||
.custom-tree-node { | |||||
flex: 1; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: space-between; | |||||
font-size: 14px; | |||||
padding-right: 8px; | |||||
} | |||||
.box-center { | .box-center { | ||||
width: 100%; | width: 100%; | ||||
padding: 15px; | padding: 15px; | ||||
@@ -174,7 +174,7 @@ | |||||
</el-form> | </el-form> | ||||
</div> | </div> | ||||
<div style="margin: 0 0 10px 10px" v-if="sys_user_add"> | |||||
<div style="margin: 0 0 10px 10px" v-if="sys_user_add==true && choseFlag==false"> | |||||
<!-- <el-button type="primary" :disabled='checkRole.length==0' @click="delIds">批量删除</el-button> --> | <!-- <el-button type="primary" :disabled='checkRole.length==0' @click="delIds">批量删除</el-button> --> | ||||
<el-button type="primary" @click="addRole">添加</el-button> | <el-button type="primary" @click="addRole">添加</el-button> | ||||
</div> | </div> | ||||
@@ -3,9 +3,9 @@ | |||||
* https://cli.vuejs.org/zh/config/ | * https://cli.vuejs.org/zh/config/ | ||||
*/ | */ | ||||
// const url = 'http://pigx-gateway' | // const url = 'http://pigx-gateway' | ||||
const url = 'http://39.97.167.65:9999' //测试 | |||||
// const url = 'http://39.97.167.65:9999' //测试 | |||||
// const url = 'http://192.168.31.169:9999' //长龙 | // const url = 'http://192.168.31.169:9999' //长龙 | ||||
// const url = 'http://192.168.31.134:9999' //嘉豪 | |||||
const url = 'http://192.168.31.134:9999' //嘉豪 | |||||
// const url = 'http://192.168.31.100:9999' //王笑 | // const url = 'http://192.168.31.100:9999' //王笑 | ||||
// const url = 'http://nitu5e.natappfree.cc' //王笑 | // const url = 'http://nitu5e.natappfree.cc' //王笑 | ||||