mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-09 15:46:43 +08:00
feature: 开门红首页业绩报表
1. 获取代理人信息本地无token时调客户端方法获取token 2. 机构排行/业绩排行接口调试
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import { Dialog, Toast } from 'vant'
|
import { Dialog, Toast } from 'vant'
|
||||||
|
import { device } from '@/assets/js/business-common.js'
|
||||||
let proposal = [
|
let proposal = [
|
||||||
'/proposal/proposal/list',
|
'/proposal/proposal/list',
|
||||||
'/proposal/proposal/toInsurance',
|
'/proposal/proposal/toInsurance',
|
||||||
@@ -79,9 +80,6 @@ let productStore = [
|
|||||||
'/customer/shop/getShareList' //查询分享轨迹(转发记录)
|
'/customer/shop/getShareList' //查询分享轨迹(转发记录)
|
||||||
]
|
]
|
||||||
|
|
||||||
// 卡单
|
|
||||||
let cardList = []
|
|
||||||
|
|
||||||
// 续期
|
// 续期
|
||||||
let renewalManage = [
|
let renewalManage = [
|
||||||
'/renewal/getRenewalList' //续期列表查询
|
'/renewal/getRenewalList' //续期列表查询
|
||||||
@@ -107,7 +105,7 @@ const service = axios.create({
|
|||||||
|
|
||||||
// request拦截器
|
// request拦截器
|
||||||
service.interceptors.request.use(
|
service.interceptors.request.use(
|
||||||
config => {
|
async config => {
|
||||||
let relativePath = config.url && config.url.split('v1')[1]
|
let relativePath = config.url && config.url.split('v1')[1]
|
||||||
if (whiteList.includes(relativePath)) {
|
if (whiteList.includes(relativePath)) {
|
||||||
Toast.loading({
|
Toast.loading({
|
||||||
@@ -118,7 +116,23 @@ service.interceptors.request.use(
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
config.headers['token'] = window.localStorage.getItem('token')
|
let token = window.localStorage.getItem('token')
|
||||||
|
/**
|
||||||
|
* 在HomeProduct页面获取代理人信息时, 客户端可能还未将token存储在本地
|
||||||
|
* 此时如果token为空, 调用客户端方法获取token并放入localstorage中
|
||||||
|
*/
|
||||||
|
if (relativePath === '/customer/agent/info' && !token) {
|
||||||
|
// 设备类型
|
||||||
|
const target = device()
|
||||||
|
// 安卓or苹果
|
||||||
|
if (target.isAndroid || target.isIphone) {
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
const res = await EWebBridge.webCallAppInJs('getToken')
|
||||||
|
const token = JSON.parse(res).token
|
||||||
|
window.localStorage.setItem('token', token)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
config.headers['token'] = token
|
||||||
// config.headers['token'] = `f0003a753d1d492083248f723ab1b6e9`//TEST测试专用
|
// config.headers['token'] = `f0003a753d1d492083248f723ab1b6e9`//TEST测试专用
|
||||||
return config
|
return config
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -55,31 +55,40 @@
|
|||||||
<!-- 个险 -->
|
<!-- 个险 -->
|
||||||
<template v-if="isGoodStart">
|
<template v-if="isGoodStart">
|
||||||
<div class="home-product-content">
|
<div class="home-product-content">
|
||||||
<!-- 产品中心 -->
|
<!-- 机构排名/业绩排名 -->
|
||||||
<div class="pcenter-title flex pt10 pb10 mr15 justify-content-s align-items-c" style="height: 30px;">
|
<div class="pcenter-title flex pt10 pb10 mr15 justify-content-s align-items-c" style="height: 30px;">
|
||||||
<img class="title-img" :src="performance" />
|
<img v-if="isInner" class="title-img" :src="$assetsUrl + 'images/goodStart/organizationTitle.png'" />
|
||||||
|
<img v-else class="title-img" :src="$assetsUrl + 'images/goodStart/performanceTitle.png'" />
|
||||||
</div>
|
</div>
|
||||||
<div class="home-product-pcenter performance">
|
<div class="home-product-pcenter performance">
|
||||||
<div class="pcenter-list">
|
<div class="pcenter-list">
|
||||||
<table class="myTable" style="min-width: 140vw;" cellspacing="0" cellpadding="0">
|
<table class="myTable" style="min-width: 160vw;" cellspacing="0" cellpadding="0">
|
||||||
<tr>
|
<tr>
|
||||||
<th>产品名称</th>
|
<th v-for="(thead, index) in theads" :key="index">{{ thead }}</th>
|
||||||
<th>承保标保(万元)</th>
|
|
||||||
<th>承保件数(件)</th>
|
|
||||||
<th>保费占比(%)</th>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-for="i in 5" :key="i * 100">
|
<template v-if="isInner">
|
||||||
<td>六六大顺营销 服务部门</td>
|
<tr v-for="(org, i) in organizationData" :key="i" :class="{ hidden: i >= 5 && !idMoreDataShow }">
|
||||||
<td>5000</td>
|
<td>{{ i + 1 }}</td>
|
||||||
<td>200</td>
|
<td class="org-name">{{ org.name | blankFilter }}</td>
|
||||||
<td>20</td>
|
<td>{{ org.ysbfDay | blankFilter }}</td>
|
||||||
</tr>
|
<td>{{ org.ysbfMon | blankFilter }}</td>
|
||||||
<template v-for="i in 20">
|
<td>{{ org.cbbfDay | blankFilter }}</td>
|
||||||
<tr v-if="idMoreDataShow" :key="i">
|
<td>{{ org.cbbfMon | blankFilter }}</td>
|
||||||
<td>六六大顺营销 服务部门</td>
|
</tr>
|
||||||
<td>5000</td>
|
<tr v-if="organizationData.length === 0">
|
||||||
<td>200</td>
|
<td :colspan="theads.length">暂无数据</td>
|
||||||
<td>20</td>
|
</tr>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<tr v-for="(org, i) in performanceData" :key="i" :class="{ hidden: i >= 5 && !idMoreDataShow }">
|
||||||
|
<td>{{ org.rank | blankFilter }}</td>
|
||||||
|
<td>{{ org.name | blankFilter }}</td>
|
||||||
|
<td class="org-name">{{ org.comName | blankFilter }}</td>
|
||||||
|
<td>{{ org.ysbb | blankFilter }}</td>
|
||||||
|
<td>{{ org.bzbf | blankFilter }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr v-if="performanceData.length === 0">
|
||||||
|
<td :colspan="theads.length" style="text-align: left; padding-left: 22%;">暂无数据</td>
|
||||||
</tr>
|
</tr>
|
||||||
</template>
|
</template>
|
||||||
</table>
|
</table>
|
||||||
@@ -116,21 +125,49 @@
|
|||||||
import performance from '@/assets/images/goodStart/performanceIcon.png'
|
import performance from '@/assets/images/goodStart/performanceIcon.png'
|
||||||
import product from '@/assets/images/goodStart/product.png'
|
import product from '@/assets/images/goodStart/product.png'
|
||||||
import { getAgentInfo } from '@/api/ebiz/my/my'
|
import { getAgentInfo } from '@/api/ebiz/my/my'
|
||||||
|
import { getCongratulationList } from '@/api/ebiz/congratulation/congratulation.js'
|
||||||
|
import dateUtil from '@/assets/js/utils/date-utils.js'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
idMoreDataShow: false,
|
idMoreDataShow: false,
|
||||||
performance,
|
performance,
|
||||||
product,
|
product,
|
||||||
isGoodStart: false
|
isGoodStart: true,
|
||||||
|
isInner: false,
|
||||||
|
organizationTheads: ['排名', '机构', '当日预收(标保)', '月预收标保', '日承保标保', '月承保标保'],
|
||||||
|
performanceTheads: ['排名', '姓名', '营销服务部', '预收标保', '承保标保'],
|
||||||
|
organizationData: [],
|
||||||
|
performanceData: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
theads() {
|
||||||
|
if (this.isInner) {
|
||||||
|
return this.organizationTheads
|
||||||
|
} else {
|
||||||
|
return this.performanceTheads
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getAgentInfo()
|
this.getAgentInfo()
|
||||||
|
this.getTableData()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
async getTableData() {
|
||||||
|
let currMonth = dateUtil.formatDate(new Date(), 'yyyy-MM-dd')
|
||||||
|
let data = await getCongratulationList({ date: currMonth, queryType: 'm', type: 'kmh' })
|
||||||
|
if (this.isInner) {
|
||||||
|
this.organizationData = data.content
|
||||||
|
} else {
|
||||||
|
this.performanceData = data.content.list
|
||||||
|
}
|
||||||
|
},
|
||||||
async getAgentInfo() {
|
async getAgentInfo() {
|
||||||
const result = await getAgentInfo({})
|
const result = await getAgentInfo({})
|
||||||
|
let reg = /^N.*/
|
||||||
|
this.isInner = reg.test(result.branchType)
|
||||||
this.isGoodStart = result.showTemplate === 'KMH'
|
this.isGoodStart = result.showTemplate === 'KMH'
|
||||||
},
|
},
|
||||||
showMore() {
|
showMore() {
|
||||||
@@ -157,10 +194,8 @@ export default {
|
|||||||
},
|
},
|
||||||
//查看详情
|
//查看详情
|
||||||
goDetail(code) {
|
goDetail(code) {
|
||||||
console.log(code)
|
|
||||||
//将产品 code 存起来
|
//将产品 code 存起来
|
||||||
localStorage.productDetailCode = code
|
localStorage.productDetailCode = code
|
||||||
console.log(`/product/productDetail${code}`)
|
|
||||||
this.$jump({
|
this.$jump({
|
||||||
flag: 'h5',
|
flag: 'h5',
|
||||||
extra: {
|
extra: {
|
||||||
@@ -197,6 +232,15 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
filters: {
|
||||||
|
blankFilter(val) {
|
||||||
|
if (val) {
|
||||||
|
return val
|
||||||
|
} else {
|
||||||
|
return '-'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -254,7 +298,7 @@ export default {
|
|||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
td,
|
td,
|
||||||
th {
|
th {
|
||||||
padding: 10px 0;
|
padding: 10px 5px;
|
||||||
background-color: #fff3f1;
|
background-color: #fff3f1;
|
||||||
color: #d84535;
|
color: #d84535;
|
||||||
}
|
}
|
||||||
@@ -313,4 +357,8 @@ span,
|
|||||||
i {
|
i {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.org-name {
|
||||||
|
width: 8em;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user