douzhuo 1 год назад
Родитель
Сommit
b247bf80e7
11 измененных файлов: 754 добавлений и 237 удалений
  1. +80
    -7
      src/page/wel.vue
  2. +1
    -1
      src/views/Customer/index.vue
  3. +3
    -2
      src/views/ReceivingRecords/index.vue
  4. +39
    -0
      src/views/Statistics/ConsultantBrand.vue
  5. +60
    -0
      src/views/Statistics/MentoringAbility.vue
  6. +39
    -1
      src/views/Statistics/ReceptionStatistical.vue
  7. +55
    -37
      src/views/Statistics/TheTeamCompared.vue
  8. +332
    -145
      src/views/Statistics/TrendAnalysis.vue
  9. +136
    -35
      src/views/Statistics/index.vue
  10. +1
    -1
      src/views/Template/Pinspeakwords.vue
  11. +8
    -8
      src/views/Template/table.js

+ 80
- 7
src/page/wel.vue Просмотреть файл

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


+ 1
- 1
src/views/Customer/index.vue Просмотреть файл

@@ -803,7 +803,7 @@ export default {
this.houseChange();

// 获取销讲业务
// this.getMarketingBusiness();
this.getMarketingBusiness();
});
},
// 置业顾问列表


+ 3
- 2
src/views/ReceivingRecords/index.vue Просмотреть файл

@@ -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();
});
},
// 置业顾问列表


+ 39
- 0
src/views/Statistics/ConsultantBrand.vue Просмотреть файл

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


+ 60
- 0
src/views/Statistics/MentoringAbility.vue Просмотреть файл

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


+ 39
- 1
src/views/Statistics/ReceptionStatistical.vue Просмотреть файл

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


+ 55
- 37
src/views/Statistics/TheTeamCompared.vue Просмотреть файл

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


+ 332
- 145
src/views/Statistics/TrendAnalysis.vue Просмотреть файл

@@ -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>
&nbsp; &nbsp; 二级:
<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>

+ 136
- 35
src/views/Statistics/index.vue Просмотреть файл

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


+ 1
- 1
src/views/Template/Pinspeakwords.vue Просмотреть файл

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



+ 8
- 8
src/views/Template/table.js Просмотреть файл

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


Загрузка…
Отмена
Сохранить