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