@@ -3,8 +3,7 @@ | |||
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue" | |||
}, | |||
//这个pages里只放这五个页面,新增页面时请对应的放到下面的分包里 | |||
"pages": [ | |||
{ | |||
"pages": [{ | |||
"path": "pages/index/guide", | |||
"style": { | |||
"navigationBarBackgroundColor": "#008EF2", | |||
@@ -46,18 +45,18 @@ | |||
"navigationBarTextStyle": "white", | |||
"enablePullDownRefresh": true | |||
} | |||
}, | |||
}, | |||
{ | |||
"path": "pages/index/personal", | |||
"style": { | |||
"navigationBarTitleText": "我的", | |||
"navigationBarBackgroundColor": "#F8F8F8", | |||
"navigationStyle":"custom", | |||
"navigationStyle": "custom", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, | |||
{ | |||
"path": "pages/reportExcel/dayReport", | |||
"style": { | |||
@@ -65,7 +64,7 @@ | |||
"navigationBarBackgroundColor": "#ffffff", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, | |||
{ | |||
"path": "pages/reportExcel/weekReport", | |||
@@ -74,7 +73,7 @@ | |||
"navigationBarBackgroundColor": "#ffffff", | |||
"navigationBarTextStyle": "black" | |||
} | |||
} | |||
], | |||
//这下面是分包 | |||
@@ -598,8 +597,24 @@ | |||
"navigationBarBackgroundColor": "#FFFFFF", | |||
"navigationBarTextStyle": "black" | |||
} | |||
}, { | |||
"path": "dataBoard/dataBoard", | |||
"style": { | |||
"navigationBarTitleText": "数据看板", | |||
"enablePullDownRefresh": false | |||
} | |||
} | |||
] | |||
,{ | |||
"path" : "RuleEditing/RuleEditing", | |||
"style" : | |||
{ | |||
"navigationBarTitleText": "编辑指标", | |||
"enablePullDownRefresh": false | |||
} | |||
} | |||
] | |||
} | |||
], | |||
@@ -657,14 +672,12 @@ | |||
"navigationBarTitleText": "AI销讲助手", | |||
"navigationBarTextStyle": "black" | |||
}, | |||
"condition" : { //模式配置,仅开发期间生效 | |||
"condition": { //模式配置,仅开发期间生效 | |||
"current": 0, //当前激活的模式(list 的索引项) | |||
"list": [ | |||
{ | |||
"name": "访客登记表", //模式名称 | |||
"path": "pages/mine/registerForm", //启动页面,必选 | |||
"query": "" //启动参数,在页面的onLoad函数里面得到 | |||
} | |||
] | |||
"list": [{ | |||
"name": "访客登记表", //模式名称 | |||
"path": "pages/mine/registerForm", //启动页面,必选 | |||
"query": "" //启动参数,在页面的onLoad函数里面得到 | |||
}] | |||
} | |||
} | |||
} |
@@ -0,0 +1,246 @@ | |||
<template> | |||
<view class="pages"> | |||
<!-- 待处理 --> | |||
<view class="grop"> | |||
<view class="title"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" /> | |||
待处理 | |||
</view> | |||
<u-checkbox-group class="grop-box" @change="checkboxGroupChange($event, 'stayPendingProcessingArr')"> | |||
<block v-for="(item, index) in stayPendingProcessingArr" :key="index"> | |||
<u-checkbox class="grop-box-item" v-model="item.checked" :name="item.title">{{item.title}} | |||
</u-checkbox> | |||
</block> | |||
</u-checkbox-group> | |||
</view> | |||
<!-- 简报指标 --> | |||
<view class="grop"> | |||
<view class="title"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" /> | |||
简报指标 | |||
</view> | |||
<u-checkbox-group class="grop-box" @change="checkboxGroupChange($event, 'ReceptionBriefingArr')"> | |||
<block v-for="(item, index) in ReceptionBriefingArr" :key="index"> | |||
<u-checkbox class="grop-box-item" v-model="item.checked" :name="item.title">{{item.title}} | |||
</u-checkbox> | |||
</block> | |||
</u-checkbox-group> | |||
</view> | |||
<!-- 指标排名 --> | |||
<view class="grop"> | |||
<view class="title"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" /> | |||
指标排名 | |||
</view> | |||
<u-checkbox-group class="grop-box" :max="groupMax" @change="checkboxGroupChange($event, 'IndexRankingArr')"> | |||
<block v-for="(item, index) in IndexRankingArr" :key="index"> | |||
<u-checkbox class="grop-box-item" v-model="item.checked" :name="item.title">{{item.title}} | |||
</u-checkbox> | |||
</block> | |||
</u-checkbox-group> | |||
</view> | |||
<!-- 指标趋势 --> | |||
<view class="grop"> | |||
<view class="title"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" /> | |||
指标趋势 | |||
</view> | |||
<u-checkbox-group class="grop-box" :max="groupMax" | |||
@change="checkboxGroupChange($event, 'IndicatorTrendsArr')"> | |||
<block v-for="(item, index) in IndicatorTrendsArr" :key="index"> | |||
<u-checkbox class="grop-box-item" v-model="item.checked" :name="item.title">{{item.title}} | |||
</u-checkbox> | |||
</block> | |||
</u-checkbox-group> | |||
</view> | |||
<!-- 指标分布 --> | |||
<view class="grop"> | |||
<view class="title"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" /> | |||
指标分布 | |||
</view> | |||
<u-checkbox-group class="grop-box" :max="groupMax" | |||
@change="checkboxGroupChange($event, 'IndicatorDistributionArr')"> | |||
<block v-for="(item, index) in IndicatorDistributionArr" :key="index"> | |||
<u-checkbox class="grop-box-item" v-model="item.checked" :name="item.title">{{item.title}} | |||
</u-checkbox> | |||
</block> | |||
</u-checkbox-group> | |||
</view> | |||
<view class="save-btn" @click="saveBiRule"> | |||
保存 | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
var util = require("@/utils/util.js"); | |||
import * as allArrList from '../dataBoard/arr.js' | |||
export default { | |||
data() { | |||
return { | |||
stayPendingProcessingArr: allArrList.stayPendingProcessingArr, // 待处理 | |||
ReceptionBriefingArr: allArrList.ReceptionBriefingArr, // 接待简报 | |||
IndexRankingArr: allArrList.IndexRankingArr, // 排名 | |||
IndicatorTrendsArr: allArrList.IndicatorTrendsArr, // 排名 | |||
IndicatorDistributionArr: allArrList.IndicatorDistributionArr, // 排名 | |||
needFormatArr: ['stayPendingProcessingArr', 'ReceptionBriefingArr', 'IndexRankingArr', | |||
'IndicatorTrendsArr', 'IndicatorDistributionArr' | |||
], // 需要格式化的数组 | |||
groupMax: 5, // 可选择的最大数量 | |||
} | |||
}, | |||
onLoad() { | |||
this.biDictionary() | |||
}, | |||
methods: { | |||
// 选中任一checkbox时,由checkbox-group触发 | |||
checkboxGroupChange(e, params) {}, | |||
// 字典 | |||
biDictionary() { | |||
this.$u.get('/customer/biDict').then(res => { | |||
console.log(res) | |||
if (res) { | |||
this.needFormatArr.forEach((item, index) => { | |||
this[item] = this[item].map(it => { | |||
return { | |||
...it, | |||
indexType: index | |||
} | |||
}) | |||
let arr1 = res.filter(arr => arr.indexType == index) | |||
arr1.map(ie => { | |||
let objs = this[item].findIndex(obj => { | |||
return obj.title == ie.indexName && obj.indexType == ie | |||
.indexType | |||
}) || 0 | |||
this[item][objs].id = ie.id || '' | |||
}) | |||
}) | |||
this.getFindBiByAccountId() | |||
} | |||
}) | |||
}, | |||
// 回显 | |||
getFindBiByAccountId() { | |||
this.$u.get('/customer/findBiByAccountId').then(res => { | |||
console.log(res, 'getFindBiByAccountId') | |||
if (res) { | |||
let arr = [...res.index1.split(','), ...res.index2.split(','), ...res.index3.split(','), ...res.index4.split(','), ...res.index5.split(',')] | |||
console.log(arr) | |||
this.needFormatArr.forEach(item => { | |||
this[item].forEach(items => { | |||
let obj = arr.find(obj => obj == items.id) | |||
if (obj) items.checked = true | |||
else items.checked = false | |||
}) | |||
}) | |||
} | |||
}) | |||
}, | |||
// bi看板指标保存 | |||
saveBiRule() { | |||
const params = { | |||
index1: '', // 待处理 | |||
index2: '', // 简报指标 | |||
index3: '', // 指标排名 | |||
index4: '', // 指标趋势 | |||
index5: '', // 指标分布 | |||
accountId: uni.getStorageSync('weapp_session_userInfo_data').accountId || '', // 用户id | |||
} | |||
this.needFormatArr.forEach((ite, index) => { | |||
let arr = this[ite].filter(obj => obj.checked).map(item => { | |||
return item.id | |||
}) | |||
params['index' + (index + 1)] = arr.join((',')) || '' | |||
}) | |||
console.log(params) | |||
// this.stayPendingProcessingArr | |||
this.$u.post('/customer/bisave', params).then(res => { | |||
console.log(res) | |||
util.showNone("提交成功!"); | |||
setTimeout(() => { | |||
uni.navigateBack() | |||
}, 1500) | |||
}) | |||
}, | |||
} | |||
} | |||
</script> | |||
<style lang="scss" scoped> | |||
.pages { | |||
width: 100vw; | |||
min-height: 100vh; | |||
background: #f2f2f2; | |||
display: flex; | |||
flex-direction: column; | |||
.grop { | |||
margin: 20rpx 0 0 0; | |||
padding: 20rpx; | |||
width: 100%; | |||
background: #fff; | |||
.title { | |||
height: 42rpx; | |||
font-size: 30rpx; | |||
font-family: PingFangSC-Semibold, PingFang SC; | |||
font-weight: 600; | |||
color: #333333; | |||
line-height: 42rpx; | |||
margin-bottom: 24rpx; | |||
display: flex; | |||
align-items: center; | |||
.title-icon { | |||
width: 12rpx; | |||
height: 20rpx; | |||
margin-right: 18rpx; | |||
} | |||
} | |||
.grop-box { | |||
/deep/.u-checkbox-group { | |||
display: grid; | |||
grid-template-columns: repeat(2, 1fr); | |||
grid-gap: 20rpx; | |||
} | |||
} | |||
} | |||
.save-btn { | |||
position: sticky; | |||
bottom: 0; | |||
margin: 20rpx 0 0 0; | |||
width: 100%; | |||
height: 90rpx; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
font-size: 38rpx; | |||
color: #fff; | |||
background: #1890FF; | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,535 @@ | |||
const stayPendingProcessingArr = [{ | |||
title: '录音未开启', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '录音未合并', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '录音待上传', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '违禁待处理', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '无效待审核', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '低电设备', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '离线设备', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
] | |||
const ReceptionBriefingArr = [{ | |||
title: '接待量', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '有效接待', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '正在接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '复访接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '违禁接待', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '无录音', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '平均挖掘执行率', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '平均销讲执行率', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '平均客户意向度', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '平均挖掘成功率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '录音开启失败', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均接待时长', | |||
params: '', // 后端定义参数 | |||
show: true, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '录音开启平均时长', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '录音开启率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均信号强度', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
] | |||
const IndexRankingArr = [{ | |||
title: '接待量', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '有效接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '正在接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '复访接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '违禁接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '无录音', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均挖掘执行率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均销讲执行率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均客户意向度', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均挖掘成功率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '录音开启失败', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均接待时长', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '录音开启平均时长', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '录音开启率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均信号强度', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
] | |||
const IndicatorTrendsArr = [{ | |||
title: '接待量', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '有效接待', | |||
params: '', // 后端定义参数 | |||
checked: false, // 是否选中 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '正在接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '复访接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '违禁接待', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '无录音', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均挖掘执行率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均销讲执行率', | |||
params: '', // 后端定义参数 | |||
checked: false, // 是否选中 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均客户意向度', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均挖掘成功率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '录音开启失败', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均接待时长', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '录音开启平均时长', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '录音开启率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '平均信号强度', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
{ | |||
title: '接待质量', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
checked: false, // 是否选中 | |||
data: 0, // 对应展示的值 | |||
}, | |||
] | |||
const IndicatorDistributionArr = [ | |||
{ | |||
title: '到访次数', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '无效原因', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '销讲执行率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '接待时长', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '挖掘执行率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '挖掘成功率', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '客户意向度', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '客户等级', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '录音开启时长', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '不完整录音分布', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
{ | |||
title: '离线原因分布', | |||
params: '', // 后端定义参数 | |||
show: false, // 是否展示默认展示一部分 | |||
data: 0, // 对应展示的值 | |||
checked: false, // 是否选中 | |||
}, | |||
] | |||
export { | |||
stayPendingProcessingArr, | |||
ReceptionBriefingArr, | |||
IndexRankingArr, | |||
IndicatorTrendsArr, | |||
IndicatorDistributionArr, | |||
} |
@@ -0,0 +1,656 @@ | |||
<template> | |||
<view class="pages"> | |||
<!-- 筛选框 --> | |||
<view class="boxtittabs"> | |||
<view class="items" @tap="screenShow = true">{{ showTimeText }} | |||
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon> | |||
</view> | |||
<view class="items" @tap="showSelect('companyList')">{{ showBeText }} | |||
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon> | |||
</view> | |||
<view class="items" @tap="showSelect('houseList')">{{ showBeText1 }} | |||
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx"></u-icon> | |||
</view> | |||
</view> | |||
<!-- 编辑指标 --> | |||
<view class="edit" v-if="CHECKAUTHORITY('biEditTarget')"> | |||
<view class="edits" @click="toEdit"> | |||
编辑指标 | |||
</view> | |||
</view> | |||
<!-- 待处理 --> | |||
<view class="grop"> | |||
<view class="title"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" /> | |||
转写消费 | |||
</view> | |||
<view class="grid5"> | |||
<block v-for="(item,index) in stayPendingProcessingArr"> | |||
<view :key="index" class="real" v-if="item.show"> | |||
<view class="realnum">{{item.data || 0}}</view> | |||
<view class="realtext">{{ item.title }}</view> | |||
</view> | |||
</block> | |||
</view> | |||
</view> | |||
<!-- 接待简报 --> | |||
<view class="grop"> | |||
<view class="title"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" /> | |||
接待简报 | |||
</view> | |||
<view class="grid4"> | |||
<block v-for="(item,index) in ReceptionBriefingArr"> | |||
<view :key="index" class="real" v-if="item.show"> | |||
<view class="realnum">{{item.data || 0}}</view> | |||
<view class="realtext">{{ item.title }}</view> | |||
</view> | |||
</block> | |||
</view> | |||
</view> | |||
<!-- 排名柱状图 --> | |||
<block v-for="(item, index) in IndexRankingArr"> | |||
<view class="grop" :key="index" v-if="item.show"> | |||
<view class="titles"> | |||
<view class="lside"> | |||
{{item.title}}排名(top10) | |||
</view> | |||
<view class="rside"> | |||
<view class="rside-item"> | |||
按项目 | |||
</view> | |||
<view class="rside-item"> | |||
按城市 | |||
</view> | |||
</view> | |||
</view> | |||
<view class="echarts"> | |||
<template v-if="item.lineOptsect"> | |||
<qiun-data-charts :type="item.type" :chartData="item.lineOptsect" :opts="item.lineOpts" | |||
background="none" :ontouch="true" :canvasId="item.canvasId" :canvas2d="true" /> | |||
</template> | |||
<template v-else> | |||
<view class="empty"> | |||
<view | |||
style="width: 100%;height: 300rpx;display: flex;flex-direction: column;justify-content: center;align-items: center;"> | |||
<view style="width: 100%;text-align: center;"> | |||
<image style="width: 220rpx;height: 200rpx;" | |||
src="https://static.quhouse.com/zhikong_xcx_img/nodatalist.png" mode=""> | |||
</image> | |||
</view> | |||
<view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据 | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
</view> | |||
</view> | |||
</block> | |||
<!-- 趋势折线图 --> | |||
<block v-for="(item, index) in IndicatorTrendsArr"> | |||
<view class="grop" :key="index" v-if="item.show"> | |||
<view class="titles"> | |||
<view class="lside"> | |||
{{item.title}}趋势 | |||
</view> | |||
</view> | |||
<view class="echarts"> | |||
<template v-if="item.lineOptsect"> | |||
<qiun-data-charts :type="item.type" :chartData="item.lineOptsect" :opts="item.lineOpts" | |||
background="none" :ontouch="true" :canvasId="item.canvasId" :canvas2d="true" /> | |||
</template> | |||
<template v-else> | |||
<view class="empty"> | |||
<view | |||
style="width: 100%;height: 300rpx;display: flex;flex-direction: column;justify-content: center;align-items: center;"> | |||
<view style="width: 100%;text-align: center;"> | |||
<image style="width: 220rpx;height: 200rpx;" | |||
src="https://static.quhouse.com/zhikong_xcx_img/nodatalist.png" mode=""> | |||
</image> | |||
</view> | |||
<view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据 | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
</view> | |||
</view> | |||
</block> | |||
<!-- 分布饼图 --> | |||
<block v-for="(item, index) in IndicatorDistributionArr"> | |||
<view class="grop" :key="index" v-if="item.show"> | |||
<view class="titles"> | |||
<view class="lside"> | |||
{{item.title}}分布 | |||
</view> | |||
</view> | |||
<view class="echarts"> | |||
<template v-if="item.lineOptsect"> | |||
<qiun-data-charts :type="item.type" :chartData="item.lineOptsect" :opts="item.lineOpts" | |||
background="none" :ontouch="true" :canvasId="item.canvasId" :canvas2d="true" /> | |||
</template> | |||
<template v-else> | |||
<view class="empty"> | |||
<view | |||
style="width: 100%;height: 300rpx;display: flex;flex-direction: column;justify-content: center;align-items: center;"> | |||
<view style="width: 100%;text-align: center;"> | |||
<image style="width: 220rpx;height: 200rpx;" | |||
src="https://static.quhouse.com/zhikong_xcx_img/nodatalist.png" mode=""> | |||
</image> | |||
</view> | |||
<view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据 | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
</view> | |||
</view> | |||
</block> | |||
<!-- 更多筛选 --> | |||
<u-popup v-model="screenShow" mode="bottom" height="400"> | |||
<view class="screen"> | |||
<view class="boxtittab"> | |||
<view class="tabbox"> | |||
<view :class="{ activecllasscet: params.dateType == 0 }" @click="tabtimetap(0, '今天')">今天</view> | |||
</view> | |||
<view class="tabbox"> | |||
<view :class="{ activecllasscet: params.dateType == 1 }" @click="tabtimetap(1, '近七天')">近七天</view> | |||
</view> | |||
<view class="tabbox"> | |||
<view :class="{ activecllasscet: params.dateType == 2 }" @click="tabtimetap(2, '近30天')">近30天</view> | |||
</view> | |||
<view class="tabbox"> | |||
<view :class="{ activecllasscet: params.dateType == null }" @click="tabtimetap(null, '自定义')">自定义 | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</u-popup> | |||
<!-- 日期选择器 --> | |||
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar> | |||
<!-- 项目&公司 --> | |||
<u-select :mask-close-able="false" label-name="templateName" value-name="id" v-model="showTemplate" | |||
mode="single-column" :list="templateList" @cancel="templateCancel" @confirm="templateConfirm"></u-select> | |||
</view> | |||
</template> | |||
<script> | |||
const config = require("@/config"); | |||
import * as allArrList from './arr.js' | |||
export default { | |||
data() { | |||
return { | |||
showTimeText: '今天', // 展示文字 | |||
showBeText: '公司', // | |||
showBeText1: '项目', // | |||
showTemplate: false, | |||
screenShow: false, // 日期选择器 | |||
templateList: [], // 销讲业务 | |||
houseList: [], // 项目列表 | |||
companyList: [], // 项目列表 | |||
stayPendingProcessingArr: allArrList.stayPendingProcessingArr, // 待处理 | |||
ReceptionBriefingArr: allArrList.ReceptionBriefingArr, // 接待简报 | |||
IndexRankingArr: allArrList.IndexRankingArr, // 排名 | |||
IndicatorTrendsArr: allArrList.IndicatorTrendsArr, // 排名 | |||
IndicatorDistributionArr: allArrList.IndicatorDistributionArr, // 排名 | |||
params: { | |||
staDate: '', //开启时间 | |||
endDate: '', // 结束时间 | |||
houseId: '', // 楼盘 | |||
orgCode: '', // 公司code | |||
dateType: 0, // 自定义时间 今天0 昨天1 近七天2 | |||
}, | |||
needFormatArr: ['stayPendingProcessingArr', 'ReceptionBriefingArr', 'IndexRankingArr', | |||
'IndicatorTrendsArr', 'IndicatorDistributionArr' | |||
], // 需要格式化的数组 | |||
publicId: '', // 标识区别选择的是公司还是项目 | |||
}; | |||
}, | |||
onLoad() { | |||
this.getHouse() | |||
this.getCompany() | |||
this.initPage() | |||
}, | |||
methods: { | |||
// 字典 | |||
biDictionary() { | |||
this.$u.get('/customer/biDict').then(res => { | |||
if (res) { | |||
this.needFormatArr.forEach((item, index) => { | |||
this[item] = this[item].map(it => { | |||
return { | |||
...it, | |||
indexType: index | |||
} | |||
}) | |||
let arr1 = res.filter(arr => arr.indexType == index) | |||
arr1.map(ie => { | |||
let objs = this[item].findIndex(obj => { | |||
return obj.title == ie.indexName && obj.indexType == ie | |||
.indexType | |||
}) || 0 | |||
this[item][objs].id = ie.id || '' | |||
}) | |||
}) | |||
this.getFindBiByAccountId() | |||
} | |||
}) | |||
}, | |||
// 回显 | |||
getFindBiByAccountId() { | |||
this.$u.get('/customer/findBiByAccountId').then(res => { | |||
if (res) { | |||
let arr = [...res.index1.split(','), ...res.index2.split(','), ...res.index3.split(','), ...res.index4.split(','), ...res.index5.split(',')] | |||
this.needFormatArr.forEach(item => { | |||
this[item].forEach(items => { | |||
let obj = arr.find(obj => obj == items.id) | |||
if (obj) items.show = true | |||
else items.show = false | |||
}) | |||
}) | |||
} | |||
}) | |||
}, | |||
async initPage() { | |||
await this.biDictionary() | |||
await this.bishowIndex1() | |||
await this.bishowIndex2() | |||
// await this.bishowIndex3() | |||
await this.bishowIndex4() | |||
}, | |||
bishowIndex1() { | |||
this.$u.post('/customer/bishowIndex1', this.params).then(res => { | |||
console.log(res) | |||
if (res) { | |||
this.stayPendingProcessingArr.forEach(item => { | |||
item.data = res[item.id] || 0 | |||
}) | |||
} | |||
}) | |||
}, | |||
bishowIndex2() { | |||
this.$u.post('/customer/bishowIndex2', this.params).then(res => { | |||
console.log(res) | |||
if (res) { | |||
this.ReceptionBriefingArr.forEach(item => { | |||
item.data = res[item.id] || 0 | |||
}) | |||
} | |||
}) | |||
}, | |||
bishowIndex3() { | |||
this.$u.post('/customer/bishowIndex3', this.params).then(res => { | |||
console.log(res) | |||
// if (res) { | |||
// this.IndexRankingArr.forEach(item => { | |||
// item.data = res[item.id] || 0 | |||
// }) | |||
// } | |||
}) | |||
}, | |||
bishowIndex4() { | |||
this.$u.post('/customer/bishowIndex4', this.params).then(res => { | |||
console.log(res) | |||
// if (res) { | |||
// this.IndexRankingArr.forEach(item => { | |||
// item.data = res[item.id] || 0 | |||
// }) | |||
// } | |||
}) | |||
}, | |||
toEdit() { | |||
uni.navigateTo({ | |||
url: '/pages/center/RuleEditing/RuleEditing' | |||
}) | |||
}, | |||
showSelect(params) { | |||
this.publicId = params | |||
this.templateList = this[params] | |||
this.showTemplate = true | |||
}, | |||
// 获取项目 | |||
getHouse() { | |||
uni.request({ | |||
url: config.service.getUser, | |||
method: "GET", | |||
header: { | |||
'content-type': 'application/json', | |||
'Authorization': 'Bearer ' + uni.getStorageSync('weapp_session_login_data').token | |||
}, | |||
success: (res) => { | |||
this.houseList = res.data.data.houseList.map(item => { | |||
return { | |||
id: item.id, | |||
templateName: item.propertyName, | |||
} | |||
}) | |||
} | |||
}) | |||
}, | |||
// 获取公司 | |||
getCompany() { | |||
this.$u.post('/customer/getMyOrg').then(res => { | |||
if (res) { | |||
this.companyList = res.map(item => { | |||
return { | |||
id: item.id, | |||
templateName: item.name | |||
} | |||
}) | |||
} | |||
}) | |||
}, | |||
//时间切换 | |||
tabtimetap(index, text) { | |||
this.params.dateType = index; | |||
if (index == null) { | |||
this.totalTimeShow = true; | |||
this.screenShow = false | |||
} else { | |||
this.screenShow = false | |||
this.showTimeText = text | |||
this.params.endDate = '' | |||
this.params.staDate = '' | |||
this.initPage() | |||
} | |||
}, | |||
//自定义时间 | |||
totalTimeChange(e) { | |||
this.screenShow = false | |||
this.showTimeText = `${e.startDate}-${e.endDate}` | |||
this.params.dateType = null; | |||
this.params.endDate = e.endDate | |||
this.params.staDate = e.startDate | |||
this.initPage() | |||
}, | |||
// | |||
templateCancel() { | |||
this.showTemplate = false; | |||
}, | |||
// | |||
templateConfirm(e) { | |||
this.showTemplate = false; | |||
if (this.publicId == 'houseList') { | |||
this.showBeText1 = e[0].label | |||
this.params.houseId = e[0].value | |||
} else { | |||
this.showBeText = e[0].label | |||
this.params.orgCode = e[0].value | |||
} | |||
}, | |||
}, | |||
} | |||
</script> | |||
<style lang="scss" scoped> | |||
.pages { | |||
padding: 0 0 20rpx 0; | |||
width: 100vw; | |||
min-height: 100vh; | |||
background: #f2f2f2; | |||
display: flex; | |||
flex-direction: column; | |||
.boxtittabs { | |||
width: 100%; | |||
height: 92rpx; | |||
background: #FFFFFF; | |||
display: flex; | |||
align-items: center; | |||
position: sticky; | |||
top: var(--window-top); | |||
.items { | |||
padding: 0 24rpx; | |||
width: 50%; | |||
height: 100%; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
overflow: hidden; | |||
white-space: nowrap; | |||
text-overflow: ellipsis; | |||
} | |||
} | |||
.screen { | |||
//时间切换的样式 | |||
.boxtittab { | |||
width: 100%; | |||
height: 100%; | |||
background: #FFFFFF; | |||
display: flex; | |||
flex-direction: column; | |||
border: none; | |||
.tabbox { | |||
flex: 1; | |||
height: 100%; | |||
text-align: center; | |||
line-height: 92rpx; | |||
color: #666666; | |||
font-size: 28rpx; | |||
font-weight: 400; | |||
display: flex; | |||
justify-content: center; | |||
.activecllasscet { | |||
width: 96rpx; | |||
color: #2671E2; | |||
font-weight: 600; | |||
border-bottom: 4rpx solid #2671E2; | |||
} | |||
} | |||
} | |||
} | |||
.edit { | |||
margin: 20rpx 0 0 0; | |||
padding: 0 20rpx; | |||
width: 100%; | |||
display: flex; | |||
align-items: center; | |||
justify-content: flex-end; | |||
.edits { | |||
padding: 10rpx 20rpx; | |||
background: #1890FF; | |||
color: #fff; | |||
border-radius: 16rpx; | |||
font-size: 32rpx; | |||
} | |||
} | |||
.grop { | |||
margin: 20rpx 0 0 0; | |||
padding: 20rpx; | |||
width: 100%; | |||
background: #fff; | |||
.title { | |||
height: 42rpx; | |||
font-size: 30rpx; | |||
font-family: PingFangSC-Semibold, PingFang SC; | |||
font-weight: 600; | |||
color: #333333; | |||
line-height: 42rpx; | |||
margin-bottom: 24rpx; | |||
display: flex; | |||
align-items: center; | |||
.title-icon { | |||
width: 12rpx; | |||
height: 20rpx; | |||
margin-right: 18rpx; | |||
} | |||
} | |||
.titles { | |||
width: 100%; | |||
display: flex; | |||
.lside { | |||
flex-grow: 1; | |||
height: 42rpx; | |||
font-size: 30rpx; | |||
font-family: PingFangSC-Semibold, PingFang SC; | |||
font-weight: 600; | |||
color: #333333; | |||
line-height: 42rpx; | |||
margin-bottom: 24rpx; | |||
display: flex; | |||
align-items: center; | |||
} | |||
.rside { | |||
flex-shrink: 0; | |||
display: flex; | |||
align-items: center; | |||
.rside-item { | |||
margin: 0 10rpx 0 0; | |||
&.class { | |||
color: #1890FF; | |||
} | |||
} | |||
} | |||
} | |||
.grid5 { | |||
padding: 20rpx 0; | |||
grid-row-gap: 20rpx; | |||
.real { | |||
width: 100%; | |||
height: 100%; | |||
.realnum { | |||
width: 100%; | |||
text-align: center; | |||
height: 50rpx; | |||
font-size: 36rpx; | |||
font-family: SourceHanSansCN-Medium, SourceHanSansCN; | |||
font-weight: bold; | |||
color: #333333; | |||
line-height: 50rpx; | |||
.qushi-icon { | |||
width: 28rpx; | |||
height: 14rpx; | |||
margin-left: 2rpx; | |||
} | |||
} | |||
.realtext { | |||
width: 100%; | |||
text-align: center; | |||
margin-top: 8rpx; | |||
height: 32rpx; | |||
font-size: 24rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #666666; | |||
line-height: 32rpx; | |||
} | |||
} | |||
} | |||
.grid4 { | |||
padding: 20rpx 0; | |||
grid-row-gap: 20rpx; | |||
.real { | |||
width: 100%; | |||
height: 100%; | |||
.realnum { | |||
width: 100%; | |||
text-align: center; | |||
height: 50rpx; | |||
font-size: 36rpx; | |||
font-family: SourceHanSansCN-Medium, SourceHanSansCN; | |||
font-weight: bold; | |||
color: #333333; | |||
line-height: 50rpx; | |||
.qushi-icon { | |||
width: 28rpx; | |||
height: 14rpx; | |||
margin-left: 2rpx; | |||
} | |||
} | |||
.realtext { | |||
width: 100%; | |||
text-align: center; | |||
margin-top: 8rpx; | |||
height: 32rpx; | |||
font-size: 24rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #666666; | |||
line-height: 32rpx; | |||
} | |||
} | |||
} | |||
} | |||
.grid5 { | |||
display: grid; | |||
grid-template-columns: repeat(5, 1fr); | |||
} | |||
.grid4 { | |||
display: grid; | |||
grid-template-columns: repeat(4, 1fr); | |||
} | |||
} | |||
</style> |
@@ -8,7 +8,7 @@ | |||
<view class="Switching4" v-if="buildingishow" @click="piskbuilding()">切换项目</view> | |||
</view> | |||
<view class="title" style="margin-top: 30rpx; display: flex; justify-content: space-between;" | |||
v-if="permissions.myisshebei"> | |||
v-if="permissions.wdsb"> | |||
<view class="gongpai"> | |||
我的工牌:{{imeiCode||'未绑定'}} | |||
</view> | |||
@@ -16,7 +16,7 @@ | |||
{{openFlag=='start'?'接待中':''}} | |||
</view> | |||
</view> | |||
<view v-if="permissions.myisshebei" style="margin-bottom: 20rpx"> | |||
<view v-if="permissions.wdsb" style="margin-bottom: 20rpx"> | |||
<view class="Workcard" v-if="Whetheroffline"> | |||
<view class="Workcard-box"> | |||
<view class="Workcardimg"> | |||
@@ -100,7 +100,7 @@ | |||
</view> | |||
</template> | |||
<!-- 设备总览 --> | |||
<view class="contbox" v-if="permissions.shebeinum"> | |||
<view class="contbox" v-if="permissions.sbtj"> | |||
<view class="title"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" /> | |||
@@ -127,7 +127,7 @@ | |||
</view> | |||
<!-- 今日工作 --> | |||
<view class="contbox" v-if="permissions.shishinum"> | |||
<view class="contbox" v-if="permissions.sstj"> | |||
<view class="title"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" />今日工作 | |||
@@ -186,7 +186,7 @@ | |||
</view> | |||
</view> | |||
<!-- 近30天 --> | |||
<view class="contbox" v-if="permissions.jileinum"> | |||
<view class="contbox" v-if="permissions.gzlj"> | |||
<view class="title"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" /> | |||
@@ -206,13 +206,13 @@ | |||
<view class="realnum">{{Thisweekobj.activeCustomer|| 0}}</view> | |||
<view class="realtext">有效接待</view> | |||
</view> | |||
<view class="real" @click="tapjumpreception(checkParams('44'))"> | |||
<view class="realnum">{{Thisweekobj.tagCustomer || 0}}</view> | |||
<view class="realtext">未标顾问</view> | |||
</view> | |||
<view class="real" @click="prohibitedtap(2)" v-if="methodsisshow"> | |||
<view class="realnum" style="color: red;">{{Thisweekobj.prohibitedCustomer || 0}}</view> | |||
@@ -247,26 +247,26 @@ | |||
</view> | |||
<!-- 常用功能 --> | |||
<view class="contbox"> | |||
<view class="title" v-if="permissions.commonly2||permissions.commonly3||permissions.commonly10"> | |||
<view class="title" v-if="hospitalityShow"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" />接待管理 | |||
</view> | |||
<view class="commonly-box"> | |||
<view class="commonly" @click="Piabodata('接待记录')" v-if="permissions.commonly2"> | |||
<view class="commonly" @click="Piabodata('接待记录')" v-if="permissions.jdjl"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" | |||
src="https://static.quhouse.com/4649b5bd19124afca0f1a809f93bfd73.png" mode=""></image> | |||
</view> | |||
<view class="commonly-text">接待记录</view> | |||
</view> | |||
<view class="commonly" @click="Piabodata('违禁记录')" v-if="permissions.commonly3"> | |||
<view class="commonly" @click="Piabodata('违禁记录')" v-if="permissions.wjjl"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" | |||
src="https://static.quhouse.com/b1dd1da2a969465bbbf41818320b8487.png" mode=""></image> | |||
</view> | |||
<view class="commonly-text">违禁记录</view> | |||
</view> | |||
<view class="commonly" @click="toUserinsightinto()" v-if="permissions.commonly10"> | |||
<view class="commonly" @click="toUserinsightinto()" v-if="permissions.tddb"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" | |||
src="https://static.quhouse.com/c2c2e1af3d5f41d180ec55a04a5d4f26.png" mode=""></image> | |||
@@ -274,34 +274,35 @@ | |||
<view class="commonly-text">客户画像</view> | |||
</view> | |||
</view> | |||
<view class="title" | |||
v-if="permissions.commonly4||permissions.commonly8||permissions.commonly7||permissions.commonly9"> | |||
<view class="title" v-if="dataAnalysisShow"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" />数据分析 | |||
</view> | |||
<view class="commonly-box"> | |||
<view class="commonly" @click="Piabodata('销讲分析')" v-if="permissions.commonly4"> | |||
<view class="commonly" @click="Piabodata('销讲分析')" v-if="permissions.xjfx"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" | |||
src="https://static.quhouse.com/1f01dfa38203493b88d9668a506fdff3.png" mode=""></image> | |||
</view> | |||
<view class="commonly-text">销讲分析</view> | |||
</view> | |||
<view class="commonly" @click="toTrendAnalysis()" v-if="permissions.commonly8"> | |||
<view class="commonly" @click="toTrendAnalysis()" v-if="permissions.lpdb"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" | |||
src="https://static.quhouse.com/df070b1a2d5e48359c7de5654e4f7a17.png" mode=""></image> | |||
</view> | |||
<view class="commonly-text">销讲趋势</view> | |||
</view> | |||
<view class="commonly" @click="Piabodata('顾问排名')" v-if="permissions.commonly7"> | |||
<view class="commonly" @click="Piabodata('顾问排名')" v-if="permissions.gwpm"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" | |||
src="https://static.quhouse.com/f5a6b2d6032348a1b256cfd7083be436.png" mode=""></image> | |||
</view> | |||
<view class="commonly-text">顾问排名</view> | |||
</view> | |||
<view class="commonly" @click="toStaffAnalysis()" v-if="permissions.commonly9"> | |||
<view class="commonly" @click="toStaffAnalysis()" v-if="permissions.xjqs"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" | |||
src="https://static.quhouse.com/c2d3801540cf4880a68cce0e04eb59b0.png" mode=""></image> | |||
@@ -315,35 +316,52 @@ | |||
</view> | |||
<view class="commonly-text">需求挖掘分析</view> | |||
</view> | |||
<view class="commonly" @click="toDataBoard" v-if="permissions.sjkb_sy"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" src="https://static.quhouse.com/20230523104819.jpg" mode=""> | |||
</image> | |||
</view> | |||
<view class="commonly-text">数据看板</view> | |||
</view> | |||
<view class="commonly" @click="toRequireAnalysis()" v-if="permissions.xmyj_sy"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" src="https://static.quhouse.com/20230523104803.jpg" mode=""> | |||
</image> | |||
</view> | |||
<view class="commonly-text">项目预警</view> | |||
</view> | |||
</view> | |||
<view class="title" | |||
v-if="permissions.commonly11||permissions.commonly12||permissions.commonly5||permissions.commonly6"> | |||
<view class="title" v-if="teamManagementShow"> | |||
<image class="title-icon" src="https://static.quhouse.com/bc2ec951ad9a47e5bf58f2829926e143.png" | |||
mode="" />团队管理 | |||
</view> | |||
<view class="commonly-box"> | |||
<view class="commonly" @click="Theteamcompared()" v-if="permissions.commonly11"> | |||
<view class="commonly" @click="Theteamcompared()" v-if="permissions.gwnl"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" | |||
src="https://static.quhouse.com/4f5a3a61c06a4508a806eb290ef678e6.png" mode=""></image> | |||
</view> | |||
<view class="commonly-text">团队对比</view> | |||
</view> | |||
<view class="commonly" @click="Groupcontrast()" v-if="permissions.commonly12"> | |||
<view class="commonly" @click="Groupcontrast()" v-if="permissions.yhhx"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" | |||
src="https://static.quhouse.com/759c2e3240e54213827196559ce38fa4.png" mode=""></image> | |||
</view> | |||
<view class="commonly-text">集团对比</view> | |||
</view> <view class="commonly-text">集团对比</view> | |||
</view> | |||
<view class="commonly" @click="Piabodata('设备管理')" v-if="permissions.commonly5"> | |||
<view class="commonly" @click="Piabodata('设备管理')" v-if="permissions.sbgl"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" | |||
src="https://static.quhouse.com/e617133ecbbd46498e30719444fc02e8.png" mode=""></image> | |||
</view> | |||
<view class="commonly-text">设备管理</view> | |||
</view> | |||
<view class="commonly" @click="Piabodata('值班顾问')" v-if="permissions.commonly6"> | |||
<view class="commonly" @click="Piabodata('值班顾问')" v-if="permissions.zbgw"> | |||
<view class="commonly-img"> | |||
<image class="commonly-img1" | |||
src="https://static.quhouse.com/196fcbc7f6aa456cb9dff22cd3753445.png" mode=""></image> | |||
@@ -438,30 +456,34 @@ | |||
totalTimeShow: false, | |||
statDateStart: '', | |||
statDateEnd: '', | |||
permissions: { | |||
commonly1: false, | |||
commonly2: false, | |||
commonly3: false, | |||
commonly4: false, | |||
commonly5: false, | |||
commonly6: false, | |||
commonly7: false, | |||
myisshebei: false, | |||
shebeinum: false, | |||
shishinum: false, | |||
jileinum: false | |||
}, | |||
// 标记顾问 bjgw | |||
// 接待无效标记 jdwxbj | |||
// 设为优秀案例 swyxal | |||
// 常错词 ccc | |||
// 校准 xz | |||
// 查看违禁执行 ckwjzx | |||
permissions: {}, // 权限菜单 | |||
paraphraseObj: {}, // 转写消费 | |||
}; | |||
}, | |||
components: {}, | |||
computed: { | |||
// 团队管理 | |||
teamManagementShow() { | |||
let permissions = this.permissions | |||
return permissions.gwnl || permissions.yhhx || permissions.sbgl || permissions.zbgw | |||
}, | |||
// 数据分析 | |||
dataAnalysisShow() { | |||
let permissions = this.permissions | |||
return permissions.xjfx || permissions.lpdb || permissions.gwpm || permissions.xjqs || permissions | |||
.sjkb_sy || permissions.xmyj_sy | |||
}, | |||
// 接待管理 | |||
hospitalityShow() { | |||
let permissions = this.permissions | |||
return permissions.jdjl||permissions.wjjl||permissions.tddb | |||
}, | |||
}, | |||
onLoad() { | |||
this.LOADING = true | |||
this.sendLog({ | |||
@@ -578,14 +600,22 @@ | |||
}) | |||
} | |||
}, | |||
// 数据看板 | |||
toDataBoard() { | |||
uni.navigateTo({ | |||
url: '/pages/center/dataBoard/dataBoard' | |||
}); | |||
}, | |||
// 需求挖掘分析 | |||
toRequireAnalysis() { | |||
uni.navigateTo({ | |||
url: '/pages/center/Piabodata/requireminingAnalysis' | |||
}); | |||
}, | |||
updateInit() { | |||
this.$u.get(config.service.notReadNum, { | |||
id: uni.getStorageSync('weapp_session_userInfo_data').accountId, | |||
@@ -610,7 +640,7 @@ | |||
}, | |||
indexStatus(i) { | |||
if (this.permissions.commonly5 == true) { | |||
if (this.permissions.sbgl == true) { | |||
if (i == 0) { | |||
uni.switchTab({ | |||
url: "/pages/index/customer" | |||
@@ -655,25 +685,9 @@ | |||
let rescor = data.data; | |||
if (rescor.code == 0) { | |||
uni.setStorageSync("weapp_session_Menu_data", rescor.data) | |||
let newmenulist = uni.getStorageSync('weapp_session_Menu_data'); | |||
this.permissions.commonly1 = newmenulist.khgl; | |||
this.permissions.commonly2 = newmenulist.jdjl; | |||
this.permissions.commonly3 = newmenulist.wjjl; | |||
this.permissions.commonly4 = newmenulist.xjfx; | |||
this.permissions.commonly5 = newmenulist.sbgl; | |||
this.permissions.commonly6 = newmenulist.zbgw; | |||
this.permissions.commonly7 = newmenulist.gwpm; | |||
this.permissions.commonly8 = newmenulist.lpdb; | |||
this.permissions.commonly9 = newmenulist.xjqs; | |||
this.permissions.commonly10 = newmenulist.tddb; | |||
this.permissions.commonly11 = newmenulist.gwnl; | |||
this.permissions.commonly12 = newmenulist.yhhx; | |||
this.permissions.myisshebei = newmenulist.wdsb; | |||
this.permissions.shebeinum = newmenulist.sbtj; | |||
this.permissions.shishinum = newmenulist.sstj; | |||
this.permissions.jileinum = newmenulist.gzlj; | |||
console.log(rescor.data, '这里') | |||
this.permissions = rescor.data; | |||
console.log(this.permissions, '这里per') | |||
} | |||
} | |||
}) | |||
@@ -877,7 +891,7 @@ | |||
this.Showhiddenunits = false; | |||
}, | |||
tapjumpequipment(i) { | |||
if (this.permissions.commonly5 == true) { | |||
if (this.permissions.sbgl == true) { | |||
uni.navigateTo({ | |||
url: '/pages/mine/equipment/index?active=' + i | |||
}); | |||
@@ -907,7 +921,7 @@ | |||
} | |||
} | |||
}, | |||
// 跳转参数 | |||
checkParams(i) { | |||
let str = '' | |||
@@ -950,29 +964,30 @@ | |||
} else if (this.zhixingcenterindex == 6) { | |||
str = '&activeTotal=3&validInvalid=0&markAdvisor=0' | |||
} else { | |||
str = `&activeTotal=4&staTime=${this.statDateStart}&endtime=${this.statDateEnd}&validInvalid=0&markAdvisor=0` | |||
str = | |||
`&activeTotal=4&staTime=${this.statDateStart}&endtime=${this.statDateEnd}&validInvalid=0&markAdvisor=0` | |||
} | |||
break; | |||
default: | |||
str = '&activeTotal=0&markAdvisor=0' | |||
break; | |||
} | |||
return str | |||
}, | |||
// 跳转 | |||
tapjumpreception(params) { | |||
// 校验是否有权限 | |||
if (this.permissions.commonly2) { | |||
if (this.permissions.jdjl) { | |||
uni.navigateTo({ | |||
url: `/pages/center/records/index?refresh=refresh${params}` | |||
}); | |||
} | |||
}, | |||
// tapjumpreception(i) { | |||
// if (this.permissions.commonly2 == true) { | |||
// if (this.permissions.jdjl == true) { | |||
// if (i == 1) { | |||
// uni.navigateTo({ | |||
// url: '/pages/center/records/index?refresh=refresh&activeTotal=0&validInvalid=0' | |||
@@ -1041,7 +1056,7 @@ | |||
// } | |||
// } | |||
// }, | |||
//集团对比 | |||
Groupcontrast() { | |||
uni.navigateTo({ | |||