Browse Source

init

newStyle
wangxiaohua 3 years ago
parent
commit
d21b455ddd
9 changed files with 281 additions and 66 deletions
  1. +21
    -0
      src/App.vue
  2. +12
    -2
      src/views/Statistics/MentoringAbility.vue
  3. +74
    -34
      src/views/Statistics/ReceptionOverview.vue
  4. +63
    -13
      src/views/Statistics/TheTeamCompared.vue
  5. +1
    -12
      src/views/Statistics/TrendAnalysis.vue
  6. +1
    -1
      src/views/Template/Pinspeakwords.vue
  7. +106
    -1
      src/views/Template/PinspeakwordsList.vue
  8. +1
    -1
      src/views/admin/user/index.vue
  9. +2
    -2
      vue.config.js

+ 21
- 0
src/App.vue View File

@@ -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>

+ 12
- 2
src/views/Statistics/MentoringAbility.vue View File

@@ -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: [


+ 74
- 34
src/views/Statistics/ReceptionOverview.vue View File

@@ -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%) ;


+ 63
- 13
src/views/Statistics/TheTeamCompared.vue View File

@@ -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);


+ 1
- 12
src/views/Statistics/TrendAnalysis.vue View File

@@ -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


+ 1
- 1
src/views/Template/Pinspeakwords.vue View File

@@ -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: "请先清空子级",


+ 106
- 1
src/views/Template/PinspeakwordsList.vue View File

@@ -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;


+ 1
- 1
src/views/admin/user/index.vue View File

@@ -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>


+ 2
- 2
vue.config.js View File

@@ -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' //王笑




Loading…
Cancel
Save