ソースを参照

提交修改

dmb
douzhuo 1年前
コミット
5c080063ea
4個のファイルの変更319行の追加74行の削除
  1. +2
    -1
      pages/center/records/index.vue
  2. +30
    -0
      pages/mine/details2.vue
  3. +61
    -6
      pages/mine/reception/addreception.vue
  4. +226
    -67
      pages/reportExcel/dayReport.vue

+ 2
- 1
pages/center/records/index.vue ファイルの表示

@@ -74,7 +74,8 @@
<view class="left">
<view class="adviser">客</view>
<view class="cus">{{item.name || '--'}}</view>
<!-- <view class="arriveNum">第{{item.visitRecord || "--"}}次接待</view> -->
<!-- TODO -->
<view class="arriveNum">销讲业务:{{ item.marketingBusinessName || '--' }}</view>
<view class="arriveNum">{{ item.phone | encryption }}</view>
</view>
<view class="right">


+ 30
- 0
pages/mine/details2.vue ファイルの表示

@@ -719,6 +719,36 @@
})
},


// 销讲业务方法
templateCancel() {
this.showTemplate = false;
},

// 确认选择销讲业务
templateConfirm(e) {
this.showTemplate = false;
this.$u.post('/customer/updateMarketingBusiness', {
marketingBusiness: e[0].value,
id: this.userlistobj.id
}).then(res => {
uni.showToast({
title: '操作成功',
icon: 'none',
duration: 2000
})
this.init(this.infos);
this.gituserlist()
this.getMarketingBusiness()
}).catch(e => {
uni.showToast({
title: e.data.message,
icon: 'none',
duration: 2000
})
})
},

borderColor(index) {
let obj = {
color: '',


+ 61
- 6
pages/mine/reception/addreception.vue ファイルの表示

@@ -53,7 +53,21 @@
</view>
</view>


<view class="title" style="border: none;" @click="showTemplateSelect()">
<view class="titletext">销讲业务</view>
<view class="titletext2"
style="font-size: 30rpx;font-weight: 400;color: #B2B2B2;line-height: 110rpx;padding-left: 10rpx;">
<text v-if="templateName" style="color: #333333;">{{templateName}}</text>
<text v-else>请选择销讲业务</text>
</view>
<view class="titleimg">
<image class="titleimg1" src="../../../static/images/arrow.png" mode=""></image>
</view>
</view>

</view>

<view class="Pinspeak">顾问</view>
<view class="chented" @click="clickShowhid()">
<view class="title" style="border: none;">
@@ -69,13 +83,18 @@
</view>
</view>
<view class="clive" @click="$noMultipleClicks(save)">确定</view>
<u-select :mask-close-able="false" v-model="Showhiddenunits" mode="single-column" value-name="id" label-name="sourceName" :list="list" @cancel="cancel"
@confirm="confirm"></u-select>
<u-select :mask-close-able="false" v-model="Showhiddenunits" mode="single-column" value-name="id"
label-name="sourceName" :list="list" @cancel="cancel" @confirm="confirm"></u-select>
<u-select :mask-close-able="false" v-model="Showhid" mode="single-column" :list="freeList" @cancel="cancel1"
@confirm="confirm1"></u-select>
<u-modal v-model="show" :mask-close-able="true" :title="'代接待提醒'" :confirm-text="confirmtext"
:cancel-text='canceltext' @cancel="confirmA" @confirm="confirmB" :show-cancel-button='true'
:content="content"></u-modal>

<!-- 销讲业务 -->
<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>

@@ -120,6 +139,11 @@
isShow: false, // 默认隐藏该权限
isPass: false, // 当前顾问是否正在接待
fromBack: false, // 从选择顾问页面跳回


templateList: [], // 销讲业务
showTemplate: false, // 展示选择销讲业务弹窗
templateName: '', // 销讲业务类型文字
};
},

@@ -136,12 +160,13 @@
this.text = obj.name;
this.parames.agentId = customerId;
})
this.getMarketingBusiness();
},

onUnload() {
uni.$off('addreception')
},
onShow() {
let newmenulist = uni.getStorageSync('weapp_session_Menu_data');
this.isShow = newmenulist.jd_zp
@@ -150,16 +175,42 @@
this.zkAgentPoolSourceList();
},
methods: {
// 销讲业务方法
templateCancel() {
this.showTemplate = false;
},
templateConfirm(e) {
this.showTemplate = false;
this.templateName = e[0].label;
this.parames.marketingBusiness = e[0].value;
},
// 获取销讲业务
getMarketingBusiness() {
this.$u.get('/customer/marketingBusiness', {
houseId: uni.getStorageSync('buildingID').id,
status: 0,
}).then(res => {
this.templateList = res
if (res && res.length > 0) {
this.parames.marketingBusiness = res[0].id
this.templateName = res[0].templateName
}
})
},
// 获取客户来源
zkAgentPoolSourceList() {
this.$u.get('/zkAgentPool/source/list', { houseId: this.parames.projectId }).then(res => {
this.$u.get('/zkAgentPool/source/list', {
houseId: this.parames.projectId
}).then(res => {
console.log(res)
if (res) {
this.list = res
}
})
},
//取消
confirmA() {
if (this.daitiReceptionobj.assign != null) {
@@ -190,7 +241,7 @@
} else {
this.isPass = false
}
if (this.parames.name.length == 0) {
uni.showToast({
icon: "none",
@@ -327,6 +378,10 @@
Buildingselection() {
this.Showhiddenunits = true;
},

showTemplateSelect() {
this.showTemplate = true;
},
cancel() {
this.Showhiddenunits = false;
},


+ 226
- 67
pages/reportExcel/dayReport.vue ファイルの表示

@@ -54,11 +54,16 @@
</view>
<view class="right">
<view class="r-title">
<text>平均执行率:</text>
<text v-if="!weekObj.orgCode">平均执行率:</text>
<text v-else>销讲执行率:</text>
</view>
<view class="r-box">
<view class="r-box-item-lang">
<view>平均执行率<text class="value">{{ weekObj.fraction || 0 }}%</text></view>
<view>
<text v-if="!weekObj.orgCode">平均执行率:</text>
<text v-else>销讲执行率:</text>
<text class="value">{{ weekObj.fraction || 0 }}%</text>
</view>
<view class="contrast">对比昨天<text class="value"
:class="{down: weekObj.fractionPK < 0, up: weekObj.fractionPK > 0}">{{ weekObj.fractionPK > 0 ? '+' : '' }}{{ weekObj.fractionPK || 0 }}%</text>
</view>
@@ -92,28 +97,54 @@
</view>
<view class="right">
<view class="r-title">
<text>销讲维度执行前三:</text>
<text v-if="!weekObj.orgCode">销讲维度执行前三:</text>
<text v-else>项目平均执行率排名:</text>
</view>
<view class="ranking">
<block v-for="(rank, rankIndex) in carryOutTop" :key="rankIndex">
<view class="ranking-item">
<view class="serial">
{{ rankIndex+1 }}
<template v-if="!weekObj.orgCode">
<view class="ranking">
<block v-for="(rank, rankIndex) in carryOutTop" :key="rankIndex">
<view class="ranking-item">
<view class="serial">
{{ rankIndex+1 }}
</view>
<view class="lside">
{{ rank.title || '--' }}
</view>
<view class="rside">
({{ rank.value || 0 }}%)
</view>
</view>
<view class="lside">
{{ rank.title || '--' }}
</block>
<template v-if="carryOutTop.length == 0">
<view class="empty">
暂无数据
</view>
<view class="rside">
({{ rank.value || 0 }}%)
</template>
</view>
</template>
<template v-else>
<!-- consultant -->
<view class="ranking">
<block v-for="(rank, rankIndex) in consultant" :key="rankIndex">
<view class="ranking-item">
<view class="serial">
{{ rankIndex+1 }}
</view>
<view class="lside">
{{ rank.title || '--' }}
</view>
<view class="rside">
({{ rank.value || 0 }}%)
</view>
</view>
</view>
</block>
<template v-if="carryOutTop.length == 0">
<view class="empty">
暂无数据
</view>
</template>
</view>
</block>
<template v-if="consultant.length == 0">
<view class="empty">
暂无数据
</view>
</template>
</view>
</template>
</view>
</view>

@@ -123,32 +154,57 @@
</view>
<view class="right">
<view class="r-title">
<text>销讲维度执行弱项前三:</text>
<text v-if="!weekObj.orgCode">销讲维度执行弱项前三:</text>
<text v-else>项目平均接访时长排名:</text>
</view>
<view class="ranking">
<block v-for="(rank, rankIndex) in carryOutLast" :key="rankIndex">
<view class="ranking-item">
<view class="serial">
{{ rankIndex+1 }}
<template v-if="!weekObj.orgCode">
<view class="ranking">
<block v-for="(rank, rankIndex) in carryOutLast" :key="rankIndex">
<view class="ranking-item">
<view class="serial">
{{ rankIndex+1 }}
</view>
<view class="lside">
{{ rank.title || '--' }}
</view>
<view class="rside">
({{ rank.value || 0 }}%)
</view>
</view>
<view class="lside">
{{ rank.title || '--' }}
</block>
<template v-if="carryOutLast.length == 0">
<view class="empty">
暂无数据
</view>
<view class="rside">
({{ rank.value || 0 }}%)
</template>
</view>
</template>
<template v-else>
<view class="ranking">
<block v-for="(rank, rankIndex) in recording" :key="rankIndex">
<view class="ranking-item">
<view class="serial">
{{ rankIndex+1 }}
</view>
<view class="lside">
{{ rank.title || '--' }}
</view>
<view class="rside">
({{ tofixed2(rank.value/60) || 0 }}m)
</view>
</view>
</view>
</block>
<template v-if="carryOutLast.length == 0">
<view class="empty">
暂无数据
</view>
</template>
</view>
</block>
<template v-if="recording.length == 0">
<view class="empty">
暂无数据
</view>
</template>
</view>
</template>
</view>
</view>

<view class="arrs-items index6">
<view class="arrs-items index6" v-if="!weekObj.orgCode">
<view class="left">
6
</view>
@@ -179,7 +235,7 @@
</view>
</view>

<view class="arrs-items index7">
<view class="arrs-items index7" v-if="!weekObj.orgCode">
<view class="left">
7
</view>
@@ -212,26 +268,101 @@
</view>

<view class="arrs-items index8">
<view class="left">
<template v-if="!weekObj.orgCode">
8
</template>
<template v-else>
6
</template>
</view>
<view class="right">
<view class="r-title">
<text v-if="!weekObj.orgCode">平均执行率最低的顾问:</text>
<text v-else>执行率最低的项目:</text>
</view>
<template v-if="!weekObj.orgCode">
<view class="ranking">
<block v-for="(rank, rankIndex) in lowest" :key="rankIndex">
<view class="ranking-item">
<view class="lside">
{{ rank.title || '--' }}
</view>
<view class="rside value">
{{ rank.value || 0 }}%
</view>
</view>
</block>

<template v-if="lowest.length == 0">
<view class="empty">
暂无数据
</view>
</template>
</view>
</template>
<template v-else>
<view class="ranking">
<block v-for="(rank, rankIndex) in weekObj.minFraction" :key="rankIndex">
<view class="ranking-item">
<view class="lside">
{{ rankIndex || '--' }}
</view>
<view class="rside value">
{{ rank || 0 }}%
</view>
</view>
</block>

<template v-if="!weekObj.minFraction">
<view class="empty">
暂无数据
</view>
</template>
</view>
</template>
</view>
</view>

<view class="arrs-items index9">
<view class="left">
<template v-if="!weekObj.orgCode">
9
</template>
<template v-else>
7
</template>
</view>
<view class="right">
<view class="r-title">
<text>客户画像触达:</text>
<text class="num value">{{ weekObj.reachSum || 0 }}次</text>
</view>
</view>
</view>


<view class="arrs-items index8" v-if="weekObj.orgCode">
<view class="left">
8
</view>
<view class="right">
<view class="r-title">
<text>平均执行率最低的顾问:</text>
<text>画像一级触达接待前三:</text>
</view>
<view class="ranking">
<block v-for="(rank, rankIndex) in lowest" :key="rankIndex">
<block v-for="(rank, rankIndex) in weekObj.level1List" :key="rankIndex">
<view class="ranking-item">
<view class="lside">
{{ rank.title || '--' }}
{{ rank.name || '--' }}
</view>
<view class="rside value">
{{ rank.value || 0 }}%
({{ rank.total || 0 }})
</view>
</view>
</block>

<template v-if="lowest.length == 0">
<template v-if="!weekObj.level1List || weekObj.level1List.length == 0">
<view class="empty">
暂无数据
</view>
@@ -240,21 +371,43 @@
</view>
</view>

<view class="arrs-items index9">
<view class="arrs-items index8" v-if="weekObj.orgCode">
<view class="left">
9
</view>
<view class="right">
<view class="r-title">
<text>客户画像触达:</text>
<text class="num value">{{ weekObj.reachSum || 0 }}次</text>
<text>画像关键词触达接待前三:</text>
</view>
<view class="ranking">
<block v-for="(rank, rankIndex) in weekObj.level2List" :key="rankIndex">
<view class="ranking-item">
<view class="lside">
{{ rank.name || '--' }}
</view>
<view class="rside value">
({{ rank.total || 0 }})
</view>
</view>
</block>

<template v-if="!weekObj.level2List || weekObj.level2List.length == 0">
<view class="empty">
暂无数据
</view>
</template>
</view>
</view>
</view>

<view class="arrs-items index10">
<view class="left">
10
<template v-if="!weekObj.orgCode">
12
</template>
<template v-else>
10
</template>
</view>
<view class="right">
<view class="r-title">
@@ -268,7 +421,12 @@

<view class="arrs-items index11">
<view class="left">
11
<template v-if="!weekObj.orgCode">
13
</template>
<template v-else>
11
</template>
</view>
<view class="right">
<view class="r-title">
@@ -350,12 +508,12 @@
return 0
}
},
// 项目拷贝
copys() {
let str = `
${this.projectName}数智工牌日报
@@ -373,7 +531,7 @@
3、平均接待时长:${ this.weekObj.avgDuration || 0 }min
对比昨天:${this.weekObj.avgDurationPK > 0 ? '+' : '' }${ this.weekObj.avgDurationPK || 0 }min`
if (this.consultant.length > 0) {
str += `
@@ -383,7 +541,7 @@
top${index+1}.${item.title || '--'}${item.value||'0'}%`
})
}
if (this.recording.length > 0) {
str += `
@@ -393,7 +551,7 @@
top${index+1}.${item.title || '--'}${this.tofixed2(item.value/60)||'0'}m`
})
}
if (this.lowest.length > 0) {
str += `
@@ -403,12 +561,12 @@
${i || '--'}${this.weekObj.minFraction[i]||'0'}%`
}
}
str += `
7、客户画像触达:${this.weekObj.reachSum || 0}次`
if (this.weekObj.level1List.length > 0) {
str += `
@@ -419,7 +577,7 @@
top${index+1}.${item.name || '--'}${item.total||'0'}%`
})
}
if (this.weekObj.level1List.length > 0) {
str += `
@@ -430,8 +588,8 @@
top${index+1}.${item.name || '--'}${item.total||'0'}%`
})
}
str += `
10、未标记接待数:${ this.weekObj.unlabelledReceptionNum || 0 }条
@@ -440,20 +598,20 @@
11、设备情况:
在线:${this.weekObj.equipmentInfo.onlineNum || 0}
离线:${this.weekObj.equipmentInfo.offlineNum || 0}`
uni.setClipboardData({
data: str
})
},
forShare() {
this.$u.get("/zkMessage/shareMessage", {
id: this.id,
houseId: uni.getStorageSync('buildingID').id
})
},
// 跳转首页
toHome() {
uni.navigateTo({
@@ -489,6 +647,7 @@
},

copy() {
if (this.weekObj.orgCode) return this.copys()
let str = `
${this.projectName}销讲助手日报


読み込み中…
キャンセル
保存