@@ -33,6 +33,27 @@ | |||
> | |||
</el-date-picker> | |||
</div> | |||
<template v-if="templateList.length > 0"> | |||
<div class="titel-text" style="margin-left: 20px">销讲业务:</div> | |||
<el-select | |||
@change="confirmtimes()" | |||
class="div-inp" | |||
v-model="marketingBusiness" | |||
multiple | |||
clearable | |||
filterable | |||
collapse-tags | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in templateList" | |||
:key="item.id" | |||
:label="item.templateName" | |||
:value="item.id" | |||
> | |||
</el-option> | |||
</el-select> | |||
</template> | |||
</div> | |||
<div class="house-only" v-if="role == 3 && info.userRoleType != 6"> | |||
<!-- 项目后台 --> | |||
@@ -508,11 +529,17 @@ | |||
环比:{{ cardlist.sequential.wordFractionHb || 0 }}</span | |||
> | |||
<span class="span2-2" v-if="cardlist.liftlist.wordFractionHb > 0"> | |||
<span | |||
class="span2-2" | |||
v-if="cardlist.liftlist.wordFractionHb > 0" | |||
> | |||
+{{ cardlist.liftlist.wordFractionHb || 0 }}% | |||
<i class="up"></i> | |||
</span> | |||
<span class="span2-3" v-if="cardlist.liftlist.wordFractionHb < 0"> | |||
<span | |||
class="span2-3" | |||
v-if="cardlist.liftlist.wordFractionHb < 0" | |||
> | |||
{{ cardlist.liftlist.wordFractionHb || 0 }}% | |||
<i class="down"></i> | |||
</span> | |||
@@ -569,11 +596,17 @@ | |||
环比:{{ cardlist.sequential.wordFinishFractionHb || 0 }}</span | |||
> | |||
<span class="span2-2" v-if="cardlist.liftlist.wordFinishFractionHb > 0"> | |||
<span | |||
class="span2-2" | |||
v-if="cardlist.liftlist.wordFinishFractionHb > 0" | |||
> | |||
+{{ cardlist.liftlist.wordFinishFractionHb || 0 }}% | |||
<i class="up"></i> | |||
</span> | |||
<span class="span2-3" v-if="cardlist.liftlist.wordFinishFractionHb < 0"> | |||
<span | |||
class="span2-3" | |||
v-if="cardlist.liftlist.wordFinishFractionHb < 0" | |||
> | |||
{{ cardlist.liftlist.wordFinishFractionHb || 0 }}% | |||
<i class="down"></i> | |||
</span> | |||
@@ -2236,6 +2269,8 @@ export default { | |||
list: [], | |||
fraction: "", | |||
}, | |||
templateList: [], // 销讲业务列表 | |||
marketingBusiness: [], // 选中的销讲业务 | |||
}; | |||
}, | |||
@@ -2325,6 +2360,8 @@ export default { | |||
this.findProhibitedRecord(); | |||
// 获取设备 | |||
this.findAllZkEquipment(); | |||
this.getMarketingBusiness(); | |||
} else { | |||
// 公司 | |||
this.waitingForOperation(); | |||
@@ -2534,6 +2571,7 @@ export default { | |||
startDate: this.statDateStart, | |||
endDate: this.statDateEnd, | |||
orgType: localStorage.getItem("orgType"), | |||
marketingBusiness: this.marketingBusiness.join(","), | |||
}; | |||
if (this.role == 1) { | |||
obj.agentId = localStorage.getItem("agentId") / 1; | |||
@@ -2614,6 +2652,19 @@ export default { | |||
this.findAllZkEquipment(); | |||
}); | |||
}, | |||
// 获取销讲业务 | |||
getMarketingBusiness() { | |||
this.$api.http | |||
.marketingBusiness({ houseId: this.houseId }) | |||
.then((res) => { | |||
console.log(res, '的萨克角度看待'); | |||
if (res.code == 10000) { | |||
this.templateList = res.data; | |||
} | |||
}); | |||
}, | |||
//获取卡片数据 | |||
getgicd() { | |||
let obj = { | |||
@@ -2621,11 +2672,13 @@ export default { | |||
dateType: this.TimetoAhoose == 5 ? null : this.TimetoAhoose, | |||
statDateStart: this.statDateStart, | |||
statDateEnd: this.statDateEnd, | |||
marketingBusiness: this.marketingBusiness.join(","), | |||
}; | |||
this.$api.http.houseIndex(obj).then((res) => { | |||
this.cardlist.datalist = res.data.todayStat | |||
this.cardlist.liftlist = res.data.comparedStat | |||
this.cardlist.sequential = res.data.yesterdayStat | |||
this.cardlist.datalist = res.data.todayStat; | |||
this.cardlist.liftlist = res.data.comparedStat; | |||
this.cardlist.sequential = res.data.yesterdayStat; | |||
}); | |||
}, | |||
//获取设备 | |||
@@ -2635,6 +2688,8 @@ export default { | |||
.findAllZkEquipment({ | |||
onLine: this.classatec, | |||
houseId: this.houseId, | |||
marketingBusiness: this.marketingBusiness.join(","), | |||
}) | |||
.then((res) => { | |||
// 在这里赋值 低电 | |||
@@ -2652,6 +2707,8 @@ export default { | |||
dateType: this.TimetoAhoose == 5 ? null : this.TimetoAhoose, | |||
statDateStart: this.statDateStart, | |||
statDateEnd: this.statDateEnd, | |||
marketingBusiness: this.marketingBusiness.join(","), | |||
}) | |||
.then((res) => { | |||
this.prohibitedlist = res.data; | |||
@@ -2665,6 +2722,8 @@ export default { | |||
dateType: this.TimetoAhoose == 5 ? null : this.TimetoAhoose, | |||
statDateStart: this.statDateStart, | |||
statDateEnd: this.statDateEnd, | |||
marketingBusiness: this.marketingBusiness.join(","), | |||
}) | |||
.then((res) => { | |||
this.indexZxllist = res.data.list || []; | |||
@@ -2682,6 +2741,8 @@ export default { | |||
dateType: this.TimetoAhoose == 5 ? null : this.TimetoAhoose, | |||
statDateStart: this.statDateStart, | |||
statDateEnd: this.statDateEnd, | |||
marketingBusiness: this.marketingBusiness.join(","), | |||
}) | |||
.then((res) => { | |||
this.employeeExecutionRatelist = res.data; | |||
@@ -2728,6 +2789,18 @@ export default { | |||
this.waitingForOperation(); | |||
} | |||
}, | |||
confirmtimes() { | |||
if (this.role == 3) { | |||
this.getgicd(); | |||
this.getindexZxllist(); | |||
this.getemployeeExecutionRatelist(); | |||
this.findProhibitedRecord(); | |||
} else { | |||
this.waitingForOperation(); | |||
} | |||
} | |||
}, | |||
}; | |||
</script> | |||
@@ -803,7 +803,7 @@ export default { | |||
this.houseChange(); | |||
// 获取销讲业务 | |||
// this.getMarketingBusiness(); | |||
this.getMarketingBusiness(); | |||
}); | |||
}, | |||
// 置业顾问列表 | |||
@@ -300,7 +300,7 @@ | |||
></el-option> | |||
</el-select> | |||
</div> | |||
<div class="div-lab" v-if="false"> | |||
<div class="div-lab"> | |||
<div class="label">销讲业务:</div> | |||
<el-select | |||
class="div-inp" | |||
@@ -310,6 +310,7 @@ | |||
filterable | |||
collapse-tags | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in templateList" | |||
@@ -944,7 +945,7 @@ export default { | |||
this.houseChange(); | |||
// 获取销讲业务 | |||
// this.getMarketingBusiness(); | |||
this.getMarketingBusiness(); | |||
}); | |||
}, | |||
// 置业顾问列表 | |||
@@ -72,6 +72,30 @@ | |||
</el-option> | |||
</el-select> | |||
</div> | |||
<template v-if="templateList.length > 0"> | |||
<div class="div-lab"> | |||
<div class="label" style="margin-left: 20px">销讲业务:</div> | |||
<el-select | |||
class="div-inp" | |||
v-model="marketingBusiness" | |||
multiple | |||
@change="deptChange" | |||
clearable | |||
filterable | |||
collapse-tags | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in templateList" | |||
:key="item.id" | |||
:label="item.templateName" | |||
:value="item.id" | |||
> | |||
</el-option> | |||
</el-select> | |||
</div> | |||
</template> | |||
</div> | |||
</div> | |||
<!-- 表格 --> | |||
@@ -949,6 +973,9 @@ export default { | |||
num5: "", | |||
houseList: [], | |||
role: "", | |||
templateList: [], // 销讲业务列表 | |||
marketingBusiness: "", // 选中的销讲业务 | |||
}; | |||
}, | |||
computed: { | |||
@@ -979,11 +1006,23 @@ export default { | |||
this.tabtimetap(this.dateType); | |||
this.deptFindList(); | |||
this.teamAllLeve(); | |||
this.getMarketingBusiness(); | |||
} else { | |||
this.zkhousePage(); | |||
} | |||
}, | |||
methods: { | |||
// 获取销讲业务 | |||
getMarketingBusiness() { | |||
this.$api.http | |||
.marketingBusiness({ houseId: this.houseId }) | |||
.then((res) => { | |||
console.log(res); | |||
if (res.code == 10000) { | |||
this.templateList = res.data; | |||
} | |||
}); | |||
}, | |||
// 排序触发 | |||
customTabLast(e) { | |||
console.log(e); | |||
@@ -92,6 +92,30 @@ | |||
</el-option> | |||
</el-select> | |||
</div> | |||
<template v-if="templateList.length > 0"> | |||
<div class="label" style="margin-left: 20px">销讲业务:</div> | |||
<el-select | |||
class="div-inp" | |||
@change="packtaps" | |||
v-model="marketingBusiness" | |||
multiple | |||
clearable | |||
filterable | |||
collapse-tags | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in templateList" | |||
:key="item.id" | |||
:label="item.templateName" | |||
:value="item.id" | |||
> | |||
</el-option> | |||
</el-select> | |||
</template> | |||
</div> | |||
</div> | |||
@@ -497,6 +521,9 @@ export default { | |||
role: "", | |||
data6flag: true, | |||
data4flag: true, | |||
templateList: [], // 销讲业务列表 | |||
marketingBusiness: [], // 选中的销讲业务 | |||
}; | |||
}, | |||
computed: { | |||
@@ -510,6 +537,7 @@ export default { | |||
if (this.role == 3) { | |||
this.houseId = localStorage.getItem("houseId"); | |||
this.init(); | |||
this.getMarketingBusiness() | |||
} else { | |||
this.zkhousePage(); | |||
} | |||
@@ -528,6 +556,18 @@ export default { | |||
} | |||
}, | |||
methods: { | |||
// 获取销讲业务 | |||
getMarketingBusiness() { | |||
this.$api.http | |||
.marketingBusiness({ houseId: this.houseId }) | |||
.then((res) => { | |||
console.log(res); | |||
if (res.code == 10000) { | |||
this.templateList = res.data; | |||
} | |||
}); | |||
}, | |||
downLoad() { | |||
let obj = { | |||
houseId: this.houseId, | |||
@@ -572,6 +612,7 @@ export default { | |||
userA: this.consultantlistid, | |||
userB: this.Pklistid, | |||
type: 1, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
}; | |||
if (this.TimetoAhoose == 7) { | |||
pamaet.dateType = null; | |||
@@ -610,6 +651,8 @@ export default { | |||
size: this.size, | |||
accountId: this.consultantlistid, | |||
dateType: this.TimetoAhoose == 7 ? null : this.TimetoAhoose, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
}) | |||
.then((res) => { | |||
this.tableData = res.data.records; | |||
@@ -664,6 +707,8 @@ export default { | |||
userA: this.consultantlistid, | |||
userB: this.Pklistid, | |||
type: 2, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
}; | |||
if (this.TimetoAhoose == 7) { | |||
pamaet.dateType = null; | |||
@@ -739,6 +784,7 @@ export default { | |||
statDateEnd: this.statDateEnd, | |||
userA: this.consultantlistid, | |||
userB: this.Pklistid, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
type: 4, | |||
}; | |||
if (this.TimetoAhoose == 7) { | |||
@@ -774,6 +820,7 @@ export default { | |||
userA: this.consultantlistid, | |||
userB: this.Pklistid, | |||
type: 5, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
words: this.teamAllLeve2id, | |||
}; | |||
if (this.TimetoAhoose == 7) { | |||
@@ -809,6 +856,7 @@ export default { | |||
statDateStart: this.statDateStart, | |||
statDateEnd: this.statDateEnd, | |||
userA: this.consultantlistid, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
userB: this.Pklistid, | |||
type: 6, | |||
}; | |||
@@ -871,6 +919,16 @@ export default { | |||
this.accountData6(); | |||
}, | |||
packtaps() { | |||
this.accountData1(); | |||
this.accountData2(); | |||
this.accountData3(); | |||
this.accountData4(); | |||
this.accountData5(); | |||
this.accountData6(); | |||
}, | |||
// 获取一级 | |||
teamAllLeve() { | |||
this.teamAllLevel = [{ name: "平均执行", value: "" }]; | |||
@@ -879,6 +937,7 @@ export default { | |||
houseId: this.houseId, | |||
dateType: 0, | |||
statDateStart: this.statDateStart, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
statDateEnd: this.statDateEnd, | |||
}; | |||
if (this.TimetoAhoose == 7) { | |||
@@ -909,6 +968,7 @@ export default { | |||
let pamaet = { | |||
houseId: this.houseId, | |||
statDateStart: this.statDateStart, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
statDateEnd: this.statDateEnd, | |||
}; | |||
if (this.TimetoAhoose == 7) { | |||
@@ -85,6 +85,26 @@ | |||
</el-option> | |||
</el-select> | |||
</div> | |||
<div style="margin-left: 26px" class="div-lab"> | |||
<div style="margin-right: 20px" class="titel-text">销讲业务:</div> | |||
<el-select | |||
class="div-inp" | |||
v-model="marketingBusiness" | |||
multiple | |||
clearable | |||
filterable | |||
collapse-tags | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in templateList" | |||
:key="item.id" | |||
:label="item.templateName" | |||
:value="item.id" | |||
> | |||
</el-option> | |||
</el-select> | |||
</div> | |||
</div> | |||
<div class="app-titel" style="margin: 15px 0 0 110px"> | |||
<div> | |||
@@ -105,7 +125,7 @@ | |||
></i | |||
></el-button> | |||
</div> | |||
<div | |||
style="margin-left: auto; margin-right: 10px" | |||
v-if="sta_rec_downLoad" | |||
@@ -364,6 +384,9 @@ export default { | |||
dialogVisible: false, | |||
houseList: [], | |||
role: "", | |||
templateList: [], // 销讲业务列表 | |||
marketingBusiness: [], // 选中的销讲业务 | |||
}; | |||
}, | |||
computed: { | |||
@@ -377,12 +400,24 @@ export default { | |||
if (this.role == 3) { | |||
this.houseId = localStorage.getItem("houseId"); | |||
this.tabtimetap(4); | |||
this.getMarketingBusiness(); | |||
this.deptFindList(); | |||
} else { | |||
this.zkhousePage(); | |||
} | |||
}, | |||
methods: { | |||
// 获取销讲业务 | |||
getMarketingBusiness() { | |||
this.$api.http | |||
.marketingBusiness({ houseId: this.houseId }) | |||
.then((res) => { | |||
console.log(res); | |||
if (res.code == 10000) { | |||
this.templateList = res.data; | |||
} | |||
}); | |||
}, | |||
// 排序触发 | |||
customTabLast(e) { | |||
console.log(e); | |||
@@ -482,6 +517,7 @@ export default { | |||
deptId: this.deptId, | |||
accountId: this.accountId, | |||
type: 2, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
}) | |||
.then((res) => { | |||
this.detailData = res.data.records; | |||
@@ -542,6 +578,7 @@ export default { | |||
.receptionStatisticsAllAccount({ | |||
houseId: this.houseId, | |||
deptId: this.deptId, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
}) | |||
.then((res) => { | |||
console.log(res); | |||
@@ -566,6 +603,7 @@ export default { | |||
accountId: this.accountId, | |||
dateType: this.dateType == 7 ? null : this.dateType, | |||
type: 1, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
}) | |||
.then((res) => { | |||
this.tableData = res.data.records; | |||
@@ -21,30 +21,6 @@ | |||
</el-select> | |||
</div> | |||
</div> | |||
<!-- <div class="app-titel"> | |||
<div style="text-indent: 30px;font-weight: bold;">接待时间:</div> | |||
<div class="toptimeqhuan"> | |||
<div :class="{ tophove: TimetoAhoose == 4 }" @click="tabtimetap(4)"> | |||
近7天 | |||
</div> | |||
<div :class="{ tophove: TimetoAhoose == 5 }" @click="tabtimetap(5)"> | |||
近15天 | |||
</div> | |||
<div :class="{ tophove: TimetoAhoose == 6 }" @click="tabtimetap(6)"> | |||
近30天 | |||
</div> | |||
</div> | |||
<div style="margin-left: 26px"> | |||
<el-date-picker v-model="customtime" @change="confirmtime()" type="daterange" :clearable="false" | |||
range-separator="-" :default-time="['00:00:00', '23:59:59']" value-format="yyyy-MM-dd" | |||
start-placeholder="开始日期" end-placeholder="结束日期"> | |||
</el-date-picker> | |||
</div> | |||
<div style="margin-left: auto; margin-right: 10px" v-if="sta_team_downLoad"> | |||
<el-button @click="downLoad" icon="el-icon-download">导出</el-button> | |||
</div> | |||
</div> --> | |||
<div class="app-titel projectBackend"> | |||
<div class="titel-text">筛选日期:</div> | |||
<div style="margin-left: 14px"> | |||
@@ -78,10 +54,35 @@ | |||
> | |||
</el-date-picker> | |||
</div> | |||
<template v-if="templateList.length > 0"> | |||
<div class="titel-text" style="margin-left: 20px">销讲业务:</div> | |||
<el-select | |||
class="div-inp" | |||
v-model="marketingBusiness" | |||
multiple | |||
@change="allhttp()" | |||
clearable | |||
filterable | |||
collapse-tags | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in templateList" | |||
:key="item.id" | |||
:label="item.templateName" | |||
:value="item.id" | |||
> | |||
</el-option> | |||
</el-select> | |||
</template> | |||
</div> | |||
</div> | |||
<!-- 表格 --> | |||
<div class="cen-tab" :style="{'margin-top':role != 3?'100px':'60px'}"> | |||
<div | |||
class="cen-tab" | |||
:style="{ 'margin-top': role != 3 ? '100px' : '60px' }" | |||
> | |||
<div style="overflow: auto"> | |||
<table> | |||
<tbody> | |||
@@ -602,12 +603,17 @@ | |||
</div> | |||
<div class="app-box-san"> | |||
<div class="zuo" style="margin-right: 0;"> | |||
<div class="zuo" style="margin-right: 0"> | |||
<div class="title"> | |||
<div class="text1">违禁接待次数 | |||
<el-tooltip effect="light" content="筛选时间内,出现违禁的接待次数,不包含待接单/无效接待/无效违禁;" placement="bottom-end"> | |||
<i class="el-icon-question" style="color:#74A3EA"></i> | |||
</el-tooltip> | |||
<div class="text1"> | |||
违禁接待次数 | |||
<el-tooltip | |||
effect="light" | |||
content="筛选时间内,出现违禁的接待次数,不包含待接单/无效接待/无效违禁;" | |||
placement="bottom-end" | |||
> | |||
<i class="el-icon-question" style="color: #74a3ea"></i> | |||
</el-tooltip> | |||
</div> | |||
<div class="text2"> | |||
<el-select | |||
@@ -626,7 +632,7 @@ | |||
</el-select> | |||
</div> | |||
</div> | |||
<div class="hejisan" style="margin: 0 auto;"> | |||
<div class="hejisan" style="margin: 0 auto"> | |||
<div class="sanbox1" style="width: 50%"> | |||
<div class="text1-1">团队总数</div> | |||
<div class="text1-2">{{ teamobj5.num || 0 }}个</div> | |||
@@ -651,10 +657,7 @@ | |||
<div class="jinboxbott">{{ item.zxl }}次</div> | |||
</div> | |||
</div> | |||
<div | |||
class="nulllist" | |||
v-if="teamobj5.list.length == 0" | |||
> | |||
<div class="nulllist" v-if="teamobj5.list.length == 0"> | |||
<div class="imgboxc"> | |||
<img class="imgboxc-img" src="/img/nullnull.png" alt="" /> | |||
<div class="nulltext">暂无数据</div> | |||
@@ -724,6 +727,9 @@ export default { | |||
houseList: [], | |||
isshowcd: true, | |||
isshowcd2: true, | |||
templateList: [], // 销讲业务列表 | |||
marketingBusiness: [], // 选中的销讲业务 | |||
}; | |||
}, | |||
computed: { | |||
@@ -737,6 +743,7 @@ export default { | |||
if (this.role == 3) { | |||
this.houseId = localStorage.getItem("houseId"); | |||
this.allhttp(); | |||
this.getMarketingBusiness(); | |||
} else { | |||
this.zkhousePage(); | |||
} | |||
@@ -754,6 +761,18 @@ export default { | |||
} | |||
}, | |||
methods: { | |||
// 获取销讲业务 | |||
getMarketingBusiness() { | |||
this.$api.http | |||
.marketingBusiness({ houseId: this.houseId }) | |||
.then((res) => { | |||
console.log(res); | |||
if (res.code == 10000) { | |||
this.templateList = res.data; | |||
} | |||
}); | |||
}, | |||
downLoad() { | |||
let pamaet = { | |||
houseId: this.houseId, | |||
@@ -1253,9 +1272,8 @@ export default { | |||
tabtimetap(index) { | |||
this.TimetoAhoose = index; | |||
if (index == 0) { | |||
this.customtime = [] | |||
this.customtime = []; | |||
} | |||
if (index == 4) { | |||
let starTime = new Date().getTime() - 24 * 60 * 60 * 1000 * 7; | |||
@@ -1,43 +1,53 @@ | |||
<template> | |||
<div class="box-center"> | |||
<!-- 头 --> | |||
<div class="app-top" style="display:flex;padding:10px 16px;flex-direction: column;"> | |||
<div class="app-titel" v-if="role != 3" style="width:27%;margin-bottom: 15px;"> | |||
<div | |||
class="app-top" | |||
style="display: flex; padding: 10px 16px; flex-direction: column" | |||
> | |||
<div | |||
class="app-titel" | |||
v-if="role != 3" | |||
style="width: 27%; margin-bottom: 15px" | |||
> | |||
<div class="titel-text">项目选择:</div> | |||
<div style="margin-left: 26px"> | |||
<el-select v-model="houseId" placeholder="请选择" filterable @change="houseChange"> | |||
<el-option v-for="item in houseList" :key="item.id" :label="item.propertyName" :value="item.id"> | |||
<el-select | |||
v-model="houseId" | |||
placeholder="请选择" | |||
filterable | |||
@change="houseChange" | |||
> | |||
<el-option | |||
v-for="item in houseList" | |||
:key="item.id" | |||
:label="item.propertyName" | |||
:value="item.id" | |||
> | |||
</el-option> | |||
</el-select> | |||
</div> | |||
</div> | |||
<div style="display: flex;align-items: center"> | |||
<div style="display: flex; align-items: center"> | |||
<div class="titel-text">筛选日期:</div> | |||
<div style="margin-left: 16px;"> | |||
<el-button :class="{ 'el-button--primary': timeType == 4 }" @click="tabtimetap(4)">近7天</el-button> | |||
<el-button :class="{ 'el-button--primary': timeType == 5 }" @click="tabtimetap(5)">近15天</el-button> | |||
<el-button :class="{ 'el-button--primary': timeType == 6 }" @click="tabtimetap(6)">近30天</el-button> | |||
<div style="margin-left: 16px"> | |||
<el-button | |||
:class="{ 'el-button--primary': timeType == 4 }" | |||
@click="tabtimetap(4)" | |||
>近7天</el-button | |||
> | |||
<el-button | |||
:class="{ 'el-button--primary': timeType == 5 }" | |||
@click="tabtimetap(5)" | |||
>近15天</el-button | |||
> | |||
<el-button | |||
:class="{ 'el-button--primary': timeType == 6 }" | |||
@click="tabtimetap(6)" | |||
>近30天</el-button | |||
> | |||
</div> | |||
<div style="margin-left: 20px;display: flex;align-items: center;"> | |||
<el-date-picker @change="confirmtime" v-model="customtime" :clearable="false" type="daterange" | |||
range-separator="-" format="yyyy-MM-dd" value-format="yyyy-MM-dd" start-placeholder="开始日期" | |||
end-placeholder="结束日期" :picker-options="pickerOptions"> | |||
</el-date-picker> | |||
<!-- <div style="text-indent: 30px; min-width: 104px">接待时间:</div> | |||
<div class="toptimeqhuan"> | |||
<div :class="{ tophove: timeType == 4 }" @click="tabtimetap(4)"> | |||
近7天 | |||
</div> | |||
<div :class="{ tophove: timeType == 5 }" @click="tabtimetap(5)"> | |||
近15天 | |||
</div> | |||
<div :class="{ tophove: timeType == 6 }" @click="tabtimetap(6)"> | |||
近30天 | |||
</div> | |||
</div> --> | |||
<!-- <div style="margin-left: 20px"> | |||
<div style="margin-left: 20px; display: flex; align-items: center"> | |||
<el-date-picker | |||
@change="confirmtime" | |||
v-model="customtime" | |||
@@ -51,23 +61,28 @@ | |||
:picker-options="pickerOptions" | |||
> | |||
</el-date-picker> | |||
</div> --> | |||
<div style="margin-left: 20px"> | |||
<el-checkbox v-model="checked" @change="radioChange">对比时间段</el-checkbox> | |||
<el-checkbox v-model="checked" @change="radioChange" | |||
>对比时间段</el-checkbox | |||
> | |||
</div> | |||
<div v-if="checked" style=" | |||
margin-left: 20px; | |||
border: 1px solid #dcdfe6; | |||
min-width: 220px; | |||
height: 30px; | |||
border-radius: 4px; | |||
max-width: 360px; | |||
font-size: 13px; | |||
line-height: 30px; | |||
text-indent: 8px; | |||
width: 300px; | |||
cursor: pointer; | |||
" @click="show"> | |||
<div | |||
v-if="checked" | |||
style=" | |||
margin-left: 20px; | |||
border: 1px solid #dcdfe6; | |||
min-width: 220px; | |||
height: 30px; | |||
border-radius: 4px; | |||
max-width: 360px; | |||
font-size: 13px; | |||
line-height: 30px; | |||
text-indent: 8px; | |||
width: 300px; | |||
cursor: pointer; | |||
" | |||
@click="show" | |||
> | |||
<!-- {{ selectTime1 ? "时段二: " : "请选择: " }} | |||
<span v-if="selectTime1">{{ selectTime + "-" + selectTime1 }}</span> --> | |||
<div style="display: flex"> | |||
@@ -80,42 +95,91 @@ | |||
{{ selectTime }} | |||
</div> | |||
<span>-</span> | |||
<div style="min-width: 120px; text-align: center; margin-right: 32px"> | |||
<div | |||
style=" | |||
min-width: 120px; | |||
text-align: center; | |||
margin-right: 32px; | |||
" | |||
> | |||
{{ selectTime1 }} | |||
</div> | |||
</div> | |||
</div> | |||
<el-date-picker style="opacity: 0" v-model="time" @change="timeChange" ref="time" type="date" | |||
:clearable="false" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" | |||
:picker-options="pickerOptions"> | |||
<el-date-picker | |||
style="opacity: 0" | |||
v-model="time" | |||
@change="timeChange" | |||
ref="time" | |||
type="date" | |||
:clearable="false" | |||
placeholder="选择日期" | |||
format="yyyy-MM-dd" | |||
value-format="yyyy-MM-dd" | |||
:picker-options="pickerOptions" | |||
> | |||
</el-date-picker> | |||
</div> | |||
</div> | |||
</div> | |||
<template v-if="templateList.length > 0"> | |||
<div class="titel-text" style="margin-left: 20px">销讲业务:</div> | |||
<el-select | |||
class="div-inp" | |||
@change="trendtrendAnalysis()" | |||
v-model="marketingBusiness" | |||
multiple | |||
clearable | |||
filterable | |||
collapse-tags | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in templateList" | |||
:key="item.id" | |||
:label="item.templateName" | |||
:value="item.id" | |||
> | |||
</el-option> | |||
</el-select> | |||
</template> | |||
</div> | |||
</div> | |||
<!-- //卡片 --> | |||
<div class="kapian-box" :style="{'margin-top':role != 3?'100px':'50px'}"> | |||
<div | |||
class="kapian-box" | |||
:style="{ 'margin-top': role != 3 ? '100px' : '50px' }" | |||
> | |||
<div class="kayi"> | |||
<div class="shang"> | |||
<div class="zuo"> | |||
<div class="text1">有效接待 | |||
<el-tooltip effect="light" content="筛选时间内,标记为有效的接待数,不包含待接单;" placement="bottom-end"> | |||
<div class="text1"> | |||
有效接待 | |||
<el-tooltip | |||
effect="light" | |||
content="筛选时间内,标记为有效的接待数,不包含待接单;" | |||
placement="bottom-end" | |||
> | |||
<i class="pop"></i> | |||
</el-tooltip> | |||
</div> | |||
<div class="text2">{{ cardobj.startSumCustomer || 0 }}次</div> | |||
</div> | |||
<div class="you"> | |||
<img class="youimg" src="/img/indexIcon/indexCardIcon2.png" alt="" /> | |||
<img | |||
class="youimg" | |||
src="/img/indexIcon/indexCardIcon2.png" | |||
alt="" | |||
/> | |||
</div> | |||
</div> | |||
<div v-if="Confirmthecontrast" class="xia"> | |||
<div class="projectColumn"> | |||
<div class="span2Card"> | |||
<span class="span2-1"> | |||
环比:{{ cardobj.endSumCustomer || 0 }}次</span> | |||
环比:{{ cardobj.endSumCustomer || 0 }}次</span | |||
> | |||
<span class="span2-2" v-if="cardobj.contrastSumCustomer > 0"> | |||
+{{ cardobj.contrastSumCustomer || 0 }} | |||
@@ -128,7 +192,6 @@ | |||
<span v-if="cardobj.contrastSumCustomer > 0">数据有所增长</span> | |||
<span v-if="cardobj.contrastSumCustomer < 0">数据有所下降</span> | |||
</div> | |||
</div> | |||
</div> | |||
@@ -137,22 +200,32 @@ | |||
<div class="kayi"> | |||
<div class="shang"> | |||
<div class="zuo"> | |||
<div class="text1">平均执行率 | |||
<el-tooltip effect="light" content="筛选时间内,有效接待(不包含待接单)的平均执行率;" placement="bottom-end"> | |||
<div class="text1"> | |||
平均执行率 | |||
<el-tooltip | |||
effect="light" | |||
content="筛选时间内,有效接待(不包含待接单)的平均执行率;" | |||
placement="bottom-end" | |||
> | |||
<i class="pop"></i> | |||
</el-tooltip> | |||
</div> | |||
<div class="text2">{{ cardobj.startFraction || 0 }}%</div> | |||
</div> | |||
<div class="you"> | |||
<img class="youimg" src="/img/indexIcon/indexCardIcon4.png" alt="" /> | |||
<img | |||
class="youimg" | |||
src="/img/indexIcon/indexCardIcon4.png" | |||
alt="" | |||
/> | |||
</div> | |||
</div> | |||
<div v-if="Confirmthecontrast" class="xia"> | |||
<div class="projectColumn"> | |||
<div class="span2Card"> | |||
<span class="span2-1"> | |||
环比:{{ cardobj.endFraction || 0 }}次</span> | |||
环比:{{ cardobj.endFraction || 0 }}次</span | |||
> | |||
<span class="span2-2" v-if="cardobj.contrastFraction > 0"> | |||
+{{ cardobj.contrastFraction || 0 }}% | |||
@@ -165,7 +238,6 @@ | |||
<span v-if="cardobj.contrastFraction > 0">数据有所增长</span> | |||
<span v-if="cardobj.contrastFraction < 0">数据有所下降</span> | |||
</div> | |||
</div> | |||
</div> | |||
@@ -174,21 +246,32 @@ | |||
<div class="kayi" style="margin: 0px"> | |||
<div class="shang"> | |||
<div class="zuo"> | |||
<div class="text1">平均接待时长/min | |||
<el-tooltip effect="light" content="筛选时间内,有效接待(不包含待接单)的平均录音时长,单位分钟;" placement="bottom-end"> | |||
<i class="pop"></i> | |||
<div class="text1"> | |||
平均接待时长/min | |||
<el-tooltip | |||
effect="light" | |||
content="筛选时间内,有效接待(不包含待接单)的平均录音时长,单位分钟;" | |||
placement="bottom-end" | |||
> | |||
<i class="pop"></i> | |||
</el-tooltip> | |||
</div> | |||
<div class="text2">{{ cardobj.startSumDuration || 0 }}</div> | |||
</div> | |||
<div class="you"> | |||
<img class="youimg" src="/img/indexIcon/indexCardIcon8.png" alt="" /> | |||
<img | |||
class="youimg" | |||
src="/img/indexIcon/indexCardIcon8.png" | |||
alt="" | |||
/> | |||
</div> | |||
</div> | |||
<div v-if="Confirmthecontrast" class="xia"> | |||
<div class="projectColumn"> | |||
<div class="span2Card"> | |||
<span class="span2-1">环比:{{ cardobj.endSumDuration || 0 }}次</span> | |||
<span class="span2-1" | |||
>环比:{{ cardobj.endSumDuration || 0 }}次</span | |||
> | |||
<span class="span2-2" v-if="cardobj.contrastSumDuration > 0"> | |||
+{{ cardobj.contrastSumDuration || 0 }} | |||
@@ -201,7 +284,6 @@ | |||
<span v-if="cardobj.contrastSumDuration > 0">数据有所增长</span> | |||
<span v-if="cardobj.contrastSumDuration < 0">数据有所下降</span> | |||
</div> | |||
</div> | |||
</div> | |||
@@ -211,7 +293,11 @@ | |||
<!-- 图表 --> | |||
<div class="app-box-er"> | |||
<div class="titletab" style="cursor: pointer"> | |||
<div :class="{ claindex: aliasclass == 1 }" @click="tapChange(1)" style="border-radius: 4px 0 0 4px;"> | |||
<div | |||
:class="{ claindex: aliasclass == 1 }" | |||
@click="tapChange(1)" | |||
style="border-radius: 4px 0 0 4px" | |||
> | |||
平均执行率 | |||
</div> | |||
<div :class="{ claindex: aliasclass == 2 }" @click="tapChange(2)"> | |||
@@ -223,66 +309,123 @@ | |||
<div :class="{ claindex: aliasclass == 4 }" @click="tapChange(4)"> | |||
销讲一级执行 | |||
</div> | |||
<div :class="{ claindex: aliasclass == 5 }" @click="tapChange(5)" style="border-radius:0 4px 4px 0;"> | |||
<div | |||
:class="{ claindex: aliasclass == 5 }" | |||
@click="tapChange(5)" | |||
style="border-radius: 0 4px 4px 0" | |||
> | |||
销讲二级执行 | |||
</div> | |||
</div> | |||
<!-- 团队选部门 --> | |||
<div v-if="aliasclass == 2" style="display: flex; align-items: center; margin-top: 26px"> | |||
<div | |||
v-if="aliasclass == 2" | |||
style="display: flex; align-items: center; margin-top: 26px" | |||
> | |||
部门: | |||
<el-select @change="departmenttap()" v-model="departmentid" placeholder="请选择"> | |||
<el-option v-for="item in departmentlist" :key="item.deptId" :label="item.name" :value="item.deptId"> | |||
<el-select | |||
@change="departmenttap()" | |||
v-model="departmentid" | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in departmentlist" | |||
:key="item.deptId" | |||
:label="item.name" | |||
:value="item.deptId" | |||
> | |||
</el-option> | |||
</el-select> | |||
</div> | |||
<!-- 选择顾问 --> | |||
<div v-if="aliasclass == 3" style="display: flex; align-items: center; margin-top: 26px"> | |||
<div | |||
v-if="aliasclass == 3" | |||
style="display: flex; align-items: center; margin-top: 26px" | |||
> | |||
顾问: | |||
<el-select @change="consultanttap()" v-model="consultantid" placeholder="请选择"> | |||
<el-option v-for="item in consultantlist" :key="item.accountId" :label="item.accountName" | |||
:value="item.accountId"> | |||
<el-select | |||
@change="consultanttap()" | |||
v-model="consultantid" | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in consultantlist" | |||
:key="item.accountId" | |||
:label="item.accountName" | |||
:value="item.accountId" | |||
> | |||
</el-option> | |||
</el-select> | |||
</div> | |||
<!-- 一二级 --> | |||
<div v-if="aliasclass == 5" style="display: flex; align-items: center; margin-top: 26px"> | |||
<div | |||
v-if="aliasclass == 5" | |||
style="display: flex; align-items: center; margin-top: 26px" | |||
> | |||
一级: | |||
<el-select @change="Level1tap()" v-model="Level1id" placeholder="请选择"> | |||
<el-option v-for="item in Level1" :key="item.marketingId" :label="item.name" :value="item.marketingId"> | |||
<el-select | |||
@change="Level1tap()" | |||
v-model="Level1id" | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in Level1" | |||
:key="item.marketingId" | |||
:label="item.name" | |||
:value="item.marketingId" | |||
> | |||
</el-option> | |||
</el-select> | |||
二级: | |||
<el-select @change="Level2tap()" v-model="Level2id" placeholder="请选择"> | |||
<el-option v-for="item in Level2" :key="item.marketingId" :label="item.name" :value="item.marketingId"> | |||
<el-select | |||
@change="Level2tap()" | |||
v-model="Level2id" | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in Level2" | |||
:key="item.marketingId" | |||
:label="item.name" | |||
:value="item.marketingId" | |||
> | |||
</el-option> | |||
</el-select> | |||
</div> | |||
<div class="noData" v-if="departmentlist.length == 0 && aliasclass == 2"> | |||
<div class="imgboxc"> | |||
<!-- <img class="imgboxc-img" src="/img/nullnull.png" alt="" /> --> | |||
<div class="nulltext" style="font-size:14px;">暂无数据</div> | |||
<div class="nulltext" style="font-size: 14px">暂无数据</div> | |||
</div> | |||
</div> | |||
<div class="noData" v-if="consultantlist.length == 0 && aliasclass == 3"> | |||
<div class="imgboxc"> | |||
<!-- <img class="imgboxc-img" src="/img/nullnull.png" alt="" /> --> | |||
<div class="nulltext" style="font-size:14px;">暂无数据</div> | |||
<div class="nulltext" style="font-size: 14px">暂无数据</div> | |||
</div> | |||
</div> | |||
<div v-if="mainFlag" id="main"></div> | |||
<div class="flag" style="text-align:center;" v-if="!mainFlag"> | |||
<div class="flag" style="text-align: center" v-if="!mainFlag"> | |||
<div class="imgboxc"> | |||
<!-- <img class="imgboxc-img" src="/img/nullnull.png" alt="" /> --> | |||
<div class="nulltext" style="font-size:14px;">暂无数据</div> | |||
<div class="nulltext" style="font-size: 14px">暂无数据</div> | |||
</div> | |||
</div> | |||
</div> | |||
<!-- 表格 --> | |||
<div class="app-box-san" v-if="Confirmthecontrast && aliasclass != 3 && aliasclass != 4"> | |||
<div | |||
class="app-box-san" | |||
v-if="Confirmthecontrast && aliasclass != 3 && aliasclass != 4" | |||
> | |||
<div class="santitle">对比报表</div> | |||
<div class="santab"> | |||
<el-table :header-cell-style="{background:'#F5F7FA',color:'#333333'}" :data="tableData" height="640" border style="width: 100%"> | |||
<el-table | |||
:header-cell-style="{ background: '#F5F7FA', color: '#333333' }" | |||
:data="tableData" | |||
height="640" | |||
border | |||
style="width: 100%" | |||
> | |||
<el-table-column prop="name" label="时间" align="center"> | |||
</el-table-column> | |||
<el-table-column prop="shiduan1" label="时段1" align="center"> | |||
@@ -298,41 +441,69 @@ | |||
<el-table-column prop="heji" label="变化" align="center"> | |||
<template slot-scope="scope"> | |||
<span v-if="scope.row.heji > 0"> | |||
<i class="el-icon-top" style="color: red"></i>{{ scope.row.heji }}%</span> | |||
<i class="el-icon-top" style="color: red"></i | |||
>{{ scope.row.heji }}%</span | |||
> | |||
<span v-if="scope.row.heji == 0">{{ scope.row.heji }}%</span> | |||
<span v-if="scope.row.heji < 0"> | |||
<i class="el-icon-bottom" style="color: #25ceba"></i>{{ scope.row.heji }}%</span> | |||
<i class="el-icon-bottom" style="color: #25ceba"></i | |||
>{{ scope.row.heji }}%</span | |||
> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
</div> | |||
</div> | |||
<div v-if="(aliasclass == 3 || aliasclass == 4) && tablelist1.length > 0" class="app-box-san" style="padding: 12px"> | |||
<div | |||
v-if="(aliasclass == 3 || aliasclass == 4) && tablelist1.length > 0" | |||
class="app-box-san" | |||
style="padding: 12px" | |||
> | |||
<div style="overflow: auto"> | |||
<table class="table"> | |||
<tbody class="tbody"> | |||
<tr v-if="tablelist1.length != 0"> | |||
<td class="theadtd" v-for="(item, index) in tablelist1" :key="index"> | |||
<td | |||
class="theadtd" | |||
v-for="(item, index) in tablelist1" | |||
:key="index" | |||
> | |||
{{ item.name }} | |||
</td> | |||
</tr> | |||
<tr v-if="tablelist2.length != 0"> | |||
<td class="theadtd" v-for="(item, index) in tablelist2" :key="index"> | |||
<td | |||
class="theadtd" | |||
v-for="(item, index) in tablelist2" | |||
:key="index" | |||
> | |||
{{ item.name }} | |||
</td> | |||
</tr> | |||
<tr v-if="tablelist3.length != 0"> | |||
<td class="theadtd" v-for="(item, index) in tablelist3" :key="index"> | |||
<td | |||
class="theadtd" | |||
v-for="(item, index) in tablelist3" | |||
:key="index" | |||
> | |||
{{ item.name }} | |||
</td> | |||
</tr> | |||
<tr v-if="tablelist4.length != 0"> | |||
<td class="theadtd" v-for="(item, index) in tablelist4" :key="index"> | |||
<td | |||
class="theadtd" | |||
v-for="(item, index) in tablelist4" | |||
:key="index" | |||
> | |||
<span v-if="item.name == '变化'">{{ item.name }}</span> | |||
<span v-else-if="item.name == 0">{{ item.name }}%</span> | |||
<span v-else-if="item.name > 0" style="color: red">{{ item.name }}%</span> | |||
<span v-else-if="item.name < 0" style="color: #25ceba">{{ item.name }}%</span> | |||
<span v-else-if="item.name > 0" style="color: red" | |||
>{{ item.name }}%</span | |||
> | |||
<span v-else-if="item.name < 0" style="color: #25ceba" | |||
>{{ item.name }}%</span | |||
> | |||
</td> | |||
</tr> | |||
</tbody> | |||
@@ -347,7 +518,7 @@ import * as echarts from "echarts"; | |||
import { mapGetters } from "vuex"; | |||
import { exportMethodPost } from "@/util/util"; | |||
import color from "../../util/theme.color" | |||
import color from "../../util/theme.color"; | |||
export default { | |||
data() { | |||
return { | |||
@@ -389,6 +560,9 @@ export default { | |||
houseList: [], | |||
role: "", | |||
mainFlag: true, | |||
templateList: [], // 销讲业务列表 | |||
marketingBusiness: [], // 选中的销讲业务 | |||
}; | |||
}, | |||
computed: { | |||
@@ -403,13 +577,13 @@ export default { | |||
this.houseId = localStorage.getItem("houseId"); | |||
this.tabtimetap(4); | |||
this.overviewfindList(); | |||
this.getMarketingBusiness() | |||
} else { | |||
this.zkhousePage(); | |||
} | |||
}, | |||
methods: { | |||
downLoad() { | |||
// exportMethodPost() | |||
}, | |||
houseChange() { | |||
@@ -447,6 +621,7 @@ export default { | |||
lastStartDate: this.selectTime, | |||
lastEndDate: this.selectTime1, | |||
marketingId: this.Level2id, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
}; | |||
if (this.timeType == -1) { | |||
@@ -490,8 +665,8 @@ export default { | |||
if (sdf == zxc) { | |||
newline2.push( | |||
item.statDate.substring(5, 10) + | |||
"vs" + | |||
child.statDate.substring(5, 10) | |||
"vs" + | |||
child.statDate.substring(5, 10) | |||
); | |||
arr.push({ | |||
name: | |||
@@ -548,6 +723,8 @@ export default { | |||
firstEndDate: this.page.closeTime, | |||
lastStartDate: this.selectTime, | |||
lastEndDate: this.selectTime1, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
}; | |||
if (this.timeType == -1) { | |||
@@ -585,7 +762,7 @@ export default { | |||
trendAnalysisAllAccount(pamaet) { | |||
this.$api.http.trendAnalysisAllAccount(pamaet).then((res) => { | |||
this.consultantlist = res.data || []; | |||
this.tablelist1 = [] | |||
this.tablelist1 = []; | |||
this.tablelist2 = []; | |||
this.tablelist3 = []; | |||
this.tablelist4 = []; | |||
@@ -601,7 +778,7 @@ export default { | |||
}, | |||
trendAnalysisAccount() { | |||
// console.log("snsnsnsnsnsnsnnswn") | |||
this.tablelist1 = [] | |||
this.tablelist1 = []; | |||
this.tablelist2 = []; | |||
this.tablelist3 = []; | |||
this.tablelist4 = []; | |||
@@ -615,6 +792,8 @@ export default { | |||
firstEndDate: this.page.closeTime, | |||
lastStartDate: this.selectTime, | |||
lastEndDate: this.selectTime1, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
}; | |||
if (this.aliasclass == 3) { | |||
pamaet.accountId = this.consultantid; | |||
@@ -715,6 +894,8 @@ export default { | |||
firstEndDate: this.page.closeTime, | |||
lastStartDate: this.selectTime, | |||
lastEndDate: this.selectTime1, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
}; | |||
if (this.timeType == -1) { | |||
@@ -787,8 +968,8 @@ export default { | |||
if (sdf == zxc) { | |||
newline2.push( | |||
item.statDate.substring(5, 10) + | |||
"vs" + | |||
child.statDate.substring(5, 10) | |||
"vs" + | |||
child.statDate.substring(5, 10) | |||
); | |||
arr.push({ | |||
name: | |||
@@ -836,6 +1017,20 @@ export default { | |||
} | |||
}); | |||
}, | |||
// 获取销讲业务 | |||
getMarketingBusiness() { | |||
this.$api.http | |||
.marketingBusiness({ houseId: this.houseId }) | |||
.then((res) => { | |||
console.log(res); | |||
if (res.code == 10000) { | |||
this.templateList = res.data; | |||
} | |||
}); | |||
}, | |||
//切换部门 | |||
departmenttap() { | |||
this.trendtrendAnalysis(); | |||
@@ -844,7 +1039,7 @@ export default { | |||
//选项卡切换 | |||
tapChange(idx) { | |||
this.aliasclass = idx; | |||
this.mainFlag = true | |||
this.mainFlag = true; | |||
this.trendtrendAnalysis(); | |||
}, | |||
//时间tab切换 | |||
@@ -891,8 +1086,8 @@ export default { | |||
this.selectTime = e; | |||
this.selectTime1 = this.timestampToTime( | |||
new Date(e).getTime() + | |||
new Date(this.page.closeTime).getTime() - | |||
new Date(this.page.openTime).getTime() | |||
new Date(this.page.closeTime).getTime() - | |||
new Date(this.page.openTime).getTime() | |||
); | |||
} else { | |||
// 获取今天昨天近一周 | |||
@@ -964,12 +1159,12 @@ export default { | |||
legend: { | |||
data: ["起始时间"], | |||
top: "10", | |||
icon:"roundRect" | |||
icon: "roundRect", | |||
}, | |||
grid: { | |||
left: 10, | |||
right: 10, | |||
bottom:18, | |||
bottom: 18, | |||
containLabel: true, | |||
}, | |||
xAxis: { | |||
@@ -1024,15 +1219,12 @@ export default { | |||
type: "line", | |||
smooth: true, | |||
areaStyle: { | |||
color: new echarts.graphic.LinearGradient( | |||
0, 0, 0, 1, | |||
[ | |||
{ offset: 0, color: color.randomColor }, | |||
{ offset: 1, color: "#fff" } | |||
] | |||
), | |||
opacity: 0.1 | |||
} | |||
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ | |||
{ offset: 0, color: color.randomColor }, | |||
{ offset: 1, color: "#fff" }, | |||
]), | |||
opacity: 0.1, | |||
}, | |||
}, | |||
], | |||
}; | |||
@@ -1041,7 +1233,6 @@ export default { | |||
window.addEventListener("resize", () => { | |||
myChart.resize(); | |||
}); | |||
}, | |||
SwitchCARDS2(newline, newline1, newline2) { | |||
echarts.init(document.getElementById("main")).dispose(); | |||
@@ -1073,12 +1264,12 @@ export default { | |||
legend: { | |||
data: ["起始时间", "对比时间"], | |||
top: "10", | |||
icon:"roundRect" | |||
icon: "roundRect", | |||
}, | |||
grid: { | |||
left: 10, | |||
right: 10, | |||
bottom:18, | |||
bottom: 18, | |||
containLabel: true, | |||
}, | |||
@@ -1163,7 +1354,7 @@ export default { | |||
data: ["起始时间", "对比时间"], | |||
right: "10", | |||
top: "10", | |||
icon:"roundRect" | |||
icon: "roundRect", | |||
}, | |||
color: ["#2671E2", "#F3787B"], | |||
radar: { | |||
@@ -1194,14 +1385,12 @@ export default { | |||
window.addEventListener("resize", () => { | |||
myChart.resize(); | |||
}); | |||
this.mainFlag = true | |||
} | |||
catch (err) { | |||
this.mainFlag = false | |||
console.log(err, '234'); | |||
this.mainFlag = true; | |||
} catch (err) { | |||
this.mainFlag = false; | |||
console.log(err, "234"); | |||
echarts.init(document.getElementById("main")).dispose(); | |||
} | |||
}, | |||
piechart(newline, newlinename) { | |||
echarts.init(document.getElementById("main")).dispose(); | |||
@@ -1217,7 +1406,7 @@ export default { | |||
data: ["起始时间"], | |||
right: "10", | |||
top: "10", | |||
icon:"roundRect" | |||
icon: "roundRect", | |||
}, | |||
color: ["#2671E2", "#F3787B"], | |||
radar: { | |||
@@ -1248,12 +1437,11 @@ export default { | |||
window.addEventListener("resize", () => { | |||
myChart.resize(); | |||
}); | |||
this.mainFlag = true | |||
} | |||
catch (err) { | |||
this.mainFlag = false | |||
this.mainFlag = true; | |||
} catch (err) { | |||
this.mainFlag = false; | |||
echarts.init(document.getElementById("main")).dispose(); | |||
console.log(err, '123'); | |||
console.log(err, "123"); | |||
} | |||
}, | |||
}, | |||
@@ -1401,9 +1589,8 @@ export default { | |||
border-top: 1px solid #e0e0e0; | |||
border-bottom: 1px solid #e0e0e0; | |||
font-size: 14px; | |||
&:last-child{ | |||
border-right: 1px solid #e0e0e0; | |||
&:last-child { | |||
border-right: 1px solid #e0e0e0; | |||
} | |||
} | |||
@@ -1446,8 +1633,8 @@ export default { | |||
color: #666666; | |||
margin-left: 30px; | |||
margin-top: 24px; | |||
display: flex; | |||
align-items: center; | |||
display: flex; | |||
align-items: center; | |||
} | |||
.text2 { | |||
@@ -1502,7 +1689,7 @@ export default { | |||
.app-top { | |||
// width: 100%; | |||
// width: calc(100% - 270px); | |||
position: fixed; | |||
position: fixed; | |||
z-index: 999; | |||
margin-top: -16px; | |||
background: #ffffff; | |||
@@ -1511,7 +1698,7 @@ export default { | |||
border-radius: 4px; | |||
padding-top: 15px; | |||
padding-bottom: 15px; | |||
left:255px; | |||
left: 255px; | |||
right: 15px; | |||
} | |||
@@ -1580,16 +1767,16 @@ export default { | |||
margin-top: 100px; | |||
color: #999999; | |||
} | |||
.pop{ | |||
.pop { | |||
display: inline-block; | |||
width: 18px; | |||
height: 18px; | |||
background: url('../../../public/img/pop.png') no-repeat; | |||
background: url("../../../public/img/pop.png") no-repeat; | |||
background-size: 100%; | |||
margin-left: 6px; | |||
} | |||
/deep/ .el-button--primary{ | |||
background: #2671E2 !important; | |||
border: 1px solid #2671E2 !important; | |||
/deep/ .el-button--primary { | |||
background: #2671e2 !important; | |||
border: 1px solid #2671e2 !important; | |||
} | |||
</style> |
@@ -23,7 +23,7 @@ | |||
</div> | |||
<div class="app-titel2"> | |||
<div style="text-indent: 30px;">接待时间:</div> | |||
<div style="text-indent: 30px">接待时间:</div> | |||
<div> | |||
<el-button | |||
:class="{ 'el-button--primary': TimetoAhoose == 0 }" | |||
@@ -41,7 +41,7 @@ | |||
>近30天</el-button | |||
> | |||
</div> | |||
<div style="margin-left: 26px"> | |||
<div style="margin-left: 26px; display: flex; align-items: center"> | |||
<el-date-picker | |||
v-model="customtime" | |||
@change="confirmtime()" | |||
@@ -53,12 +53,32 @@ | |||
end-placeholder="结束日期" | |||
> | |||
</el-date-picker> | |||
<!-- <template v-if="templateList.length > 0"> --> | |||
<div class="titel-text" style="margin-left: 0px">销讲业务:</div> | |||
<el-select | |||
class="div-inp" | |||
v-model="marketingBusiness" | |||
@change="confirmtimes" | |||
multiple | |||
clearable | |||
filterable | |||
collapse-tags | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in templateList" | |||
:key="item.id" | |||
:label="item.templateName" | |||
:value="item.id" | |||
> | |||
</el-option> | |||
</el-select> | |||
<!-- </template> --> | |||
</div> | |||
<div style="position: absolute;right: 20px;"> | |||
<el-button | |||
class="el-button--primary" | |||
@click="exportExcel" | |||
<div style="position: absolute; right: 20px"> | |||
<el-button class="el-button--primary" @click="exportExcel" | |||
>导出</el-button | |||
> | |||
</div> | |||
@@ -66,9 +86,19 @@ | |||
</div> | |||
<!-- 中间 --> | |||
<div style="display: flex;justify-content: space-between;margin: 20px 0 0 0;"> | |||
<el-card style="width: 33%;display: flex;flex-direction: column;align-items: center;text-align: center"> | |||
<div @click="goTo(1)">{{ efficient || '-' }}</div> | |||
<div | |||
style="display: flex; justify-content: space-between; margin: 20px 0 0 0" | |||
> | |||
<el-card | |||
style=" | |||
width: 33%; | |||
display: flex; | |||
flex-direction: column; | |||
align-items: center; | |||
text-align: center; | |||
" | |||
> | |||
<div @click="goTo(1)">{{ efficient || "-" }}</div> | |||
<div @click="goTo(1)" style="margin-top: 10px">有效接待</div> | |||
</el-card> | |||
<el-card | |||
@@ -113,7 +143,12 @@ | |||
</div> | |||
<div v-else> | |||
<div class="empty-box"> | |||
<img class="imgboxc-img" style="width: 120px; height: 120px" src="/img/nullnull.png" alt="" /> | |||
<img | |||
class="imgboxc-img" | |||
style="width: 120px; height: 120px" | |||
src="/img/nullnull.png" | |||
alt="" | |||
/> | |||
<div class="nulltext" style="font-size: 14px">暂无数据</div> | |||
</div> | |||
</div> | |||
@@ -146,7 +181,11 @@ | |||
margin-top: 100px; | |||
" | |||
> | |||
<img style="width: 120px; height: 120px" src="/img/nullnull.png" alt="" /> | |||
<img | |||
style="width: 120px; height: 120px" | |||
src="/img/nullnull.png" | |||
alt="" | |||
/> | |||
暂无数据 | |||
</div> | |||
@@ -161,13 +200,46 @@ | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
"> | |||
<span class="sequenceNum" :style="{ | |||
'background': inde + 1 == 1 ? 'linear-gradient(180deg, #FFA395 0%, #F54D3F 100%)' : inde + 1 == 2 ? 'linear-gradient(180deg, #FFBE70 0%, #FF981E 100%)' : inde + 1 == 3 ? 'linear-gradient(180deg, #FFE683 0%, #FFCC00 100%)' : '#E5F0FF', | |||
'color': inde + 1 == 1 ? '#FFF' : inde + 1 == 2 ? '#FFF' : inde + 1 == 3 ? '#FFF' : '#333', | |||
'box-shadow': inde + 1 == 1 ? '0px 0px 6px 1px #F54D3F' : inde + 1 == 2 ? '0px 0px 6px 1px #FF981E' : inde + 1 == 3 ? '0px 0px 6px 1px #FFCC00' : '#E5F0FF', | |||
'border': inde + 1 == 1 ? '1px solid #FFCAC6' : inde + 1 == 2 ? '1px solid #FFD6AA' : inde + 1 == 3 ? '1px solid #FFEEAC' : 'none', | |||
}">{{ inde + 1 }}</span> | |||
" | |||
> | |||
<span | |||
class="sequenceNum" | |||
:style="{ | |||
background: | |||
inde + 1 == 1 | |||
? 'linear-gradient(180deg, #FFA395 0%, #F54D3F 100%)' | |||
: inde + 1 == 2 | |||
? 'linear-gradient(180deg, #FFBE70 0%, #FF981E 100%)' | |||
: inde + 1 == 3 | |||
? 'linear-gradient(180deg, #FFE683 0%, #FFCC00 100%)' | |||
: '#E5F0FF', | |||
color: | |||
inde + 1 == 1 | |||
? '#FFF' | |||
: inde + 1 == 2 | |||
? '#FFF' | |||
: inde + 1 == 3 | |||
? '#FFF' | |||
: '#333', | |||
'box-shadow': | |||
inde + 1 == 1 | |||
? '0px 0px 6px 1px #F54D3F' | |||
: inde + 1 == 2 | |||
? '0px 0px 6px 1px #FF981E' | |||
: inde + 1 == 3 | |||
? '0px 0px 6px 1px #FFCC00' | |||
: '#E5F0FF', | |||
border: | |||
inde + 1 == 1 | |||
? '1px solid #FFCAC6' | |||
: inde + 1 == 2 | |||
? '1px solid #FFD6AA' | |||
: inde + 1 == 3 | |||
? '1px solid #FFEEAC' | |||
: 'none', | |||
}" | |||
>{{ inde + 1 }}</span | |||
> | |||
<!-- <img v-if="inde == 0" style="width: 30px; height: 30px" src="/img/ranking1.png" alt="" /> | |||
<img v-else-if="inde == 1" style="width: 30px; height: 30px" src="/img/ranking2.png" alt="" /> | |||
<img v-else-if="inde == 2" style="width: 30px; height: 30px" src="/img/ranking3.png" alt="" /> | |||
@@ -243,11 +315,14 @@ export default { | |||
efficient: "", | |||
markCount: "", | |||
noMarkCount: "", | |||
templateList: [], // 销讲业务列表 | |||
marketingBusiness: [], // 选中的销讲业务 | |||
}; | |||
}, | |||
mounted() { | |||
this.zkhousePage(); | |||
this.getMarketingBusiness() | |||
if (this.TimetoAhoose == 4) { | |||
let starTime = new Date().getTime() - 24 * 60 * 60 * 1000 * 7; | |||
let startDate = `${new Date(starTime).getFullYear()}-${ | |||
@@ -262,15 +337,31 @@ export default { | |||
} | |||
}, | |||
methods: { | |||
// 获取销讲业务 | |||
getMarketingBusiness() { | |||
this.$api.http | |||
.marketingBusiness({ houseId: localStorage.getItem("houseId") }) | |||
.then((res) => { | |||
console.log(res); | |||
if (res.code == 10000) { | |||
this.templateList = res.data; | |||
} | |||
}); | |||
}, | |||
// 导出excel | |||
exportExcel() { | |||
const obj = { | |||
dateType: this.TimetoAhoose == 7 ? '' : this.TimetoAhoose, | |||
dateType: this.TimetoAhoose == 7 ? "" : this.TimetoAhoose, | |||
houseId: this.houseId, | |||
statDateStart: this.fromobj.starttime, | |||
statDateEnd: this.fromobj.endoftime, | |||
} | |||
this.exportMethodPost('/autoSR/matchKeywords/findmatchdataExport', '用户画像', obj) | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
}; | |||
this.exportMethodPost( | |||
"/autoSR/matchKeywords/findmatchdataExport", | |||
"用户画像", | |||
obj | |||
); | |||
}, | |||
// 导出.Excel公用方法 | |||
exportMethodPost(url, name, data = {}) { | |||
@@ -282,8 +373,8 @@ export default { | |||
}) | |||
.then((res) => { | |||
if (!res) { | |||
this.$message.error('获取数据失败,请稍候再试') | |||
return | |||
this.$message.error("获取数据失败,请稍候再试"); | |||
return; | |||
} | |||
let blob = new Blob([res], { type: "application/vnd.ms-excel" }); | |||
let date = new Date(); | |||
@@ -400,10 +491,10 @@ export default { | |||
houseId: this.houseId, | |||
}; | |||
if (this.TimetoAhoose == 0) { | |||
Userrecord.TimetoAhoose = this.TimetoAhoose | |||
Userrecord.TimetoAhoose = this.TimetoAhoose; | |||
} | |||
if (this.TimetoAhoose == 4) { | |||
Userrecord.TimetoAhoose = 2 | |||
Userrecord.TimetoAhoose = 2; | |||
} | |||
this.$router.push({ | |||
path: "/Statistics/Insightintothedetails", | |||
@@ -434,14 +525,18 @@ export default { | |||
this.fromobj.endoftime = this.customtime[1]; | |||
this.getorgCode(); | |||
}, | |||
confirmtimes() { | |||
this.getorgCode(); | |||
}, | |||
//切换时间 | |||
tabtimetap(index) { | |||
this.TimetoAhoose = index; | |||
if (index == 0) { | |||
this.customtime = [] | |||
this.customtime = []; | |||
} | |||
if (index == 4) { | |||
let starTime = new Date().getTime() - 24 * 60 * 60 * 1000 * 7; | |||
let startDate = `${new Date(starTime).getFullYear()}-${ | |||
@@ -488,6 +583,7 @@ export default { | |||
dateType: dateType, | |||
houseId: this.houseId, | |||
statDateStart: this.fromobj.starttime, | |||
marketingBusiness: this.marketingBusiness.join(','), | |||
statDateEnd: this.fromobj.endoftime, | |||
}) | |||
.then((res) => { | |||
@@ -527,7 +623,7 @@ export default { | |||
legend: { | |||
show: true, | |||
bottom: "0", | |||
type: 'scroll', | |||
type: "scroll", | |||
}, | |||
graphic: [ | |||
{ | |||
@@ -567,7 +663,6 @@ export default { | |||
radius: ["48%", "70%"], | |||
avoidLabelOverlap: true, | |||
data: objoptlis, | |||
}, | |||
], | |||
}; | |||
@@ -603,7 +698,7 @@ export default { | |||
.box-center { | |||
width: 100%; | |||
padding:20px 15px 40px; | |||
padding: 20px 15px 40px; | |||
min-width: 1000px; | |||
} | |||
@@ -680,10 +775,16 @@ export default { | |||
padding-bottom: 2px; | |||
padding-top: 4px; | |||
box-shadow: -1px 1px 1px #e0e0e0; | |||
&:nth-child(1),&:nth-child(2),&:nth-child(3),&:nth-child(4),&:nth-child(5),&:nth-child(6){ | |||
&:nth-child(1), | |||
&:nth-child(2), | |||
&:nth-child(3), | |||
&:nth-child(4), | |||
&:nth-child(5), | |||
&:nth-child(6) { | |||
border-top: 1px solid #e0e0e0; | |||
} | |||
&:nth-child(6n),&:last-child{ | |||
&:nth-child(6n), | |||
&:last-child { | |||
border-right: 1px solid #e0e0e0; | |||
} | |||
} | |||
@@ -698,7 +799,7 @@ export default { | |||
text-align: center; | |||
} | |||
} | |||
.empty-box{ | |||
.empty-box { | |||
width: 100%; | |||
height: 200px; | |||
display: flex; | |||
@@ -799,7 +900,7 @@ export default { | |||
height: 24px; | |||
justify-content: center; | |||
align-items: center; | |||
background: #E5F0FF; | |||
background: #e5f0ff; | |||
border-radius: 15px; | |||
color: #333333; | |||
} | |||
@@ -194,7 +194,7 @@ | |||
<!-- 评分 --> | |||
<div class="content-right"> | |||
<el-row> | |||
<el-col :span="10" v-if="false"> | |||
<el-col :span="10"> | |||
<div style="display: flex; align-items: center"> | |||
<span style="width: 120px">话术名称</span> | |||
@@ -34,14 +34,14 @@ export default { | |||
label: "模板名称", | |||
prop: "templateName", | |||
}, | |||
// { | |||
// label: "默认话术", | |||
// prop: "defaultTemplate", | |||
// formatter: (data) => { | |||
// if(data.defaultTemplate == 0) return '是' | |||
// if(data.defaultTemplate == 1) return '否' | |||
// } | |||
// }, | |||
{ | |||
label: "默认话术", | |||
prop: "defaultTemplate", | |||
formatter: (data) => { | |||
if(data.defaultTemplate == 0) return '是' | |||
if(data.defaultTemplate == 1) return '否' | |||
} | |||
}, | |||
{ | |||
label: "大类个数", | |||
prop: "count", | |||