feature: 开门红业绩查询

1. 增加内外勤权限控制
This commit is contained in:
mengxiaolong
2020-11-24 16:53:57 +08:00
parent d82fece5b6
commit 0bc6f1f952
2 changed files with 92 additions and 17 deletions

View File

@@ -1,7 +1,7 @@
<template>
<div class="organization">
<van-tabs :ellipsis="false" :line-width="20" @change="updateQueryConditon">
<van-tab v-for="(tab, index) in tabs" :key="index" :title="tab" />
<van-tabs v-model="active" :ellipsis="false" :line-width="20" @change="updateQueryConditon">
<van-tab v-for="(tab, index) in tabs" :key="index" :title="tab.name" :disabled="tab.available" />
</van-tabs>
<div class="table-wrapper">
<table class="myTable mb30" cellspacing="0" cellpadding="0">
@@ -31,9 +31,22 @@ export default {
[Tab.name]: Tab,
[Tabs.name]: Tabs
},
props: {
availableLevel: {
type: Number,
default: 0
}
},
data() {
return {
tabs: ['中心支公司', '营销服务部', '下辖营业区', '下辖营业部', '下辖营业组'],
active: 0,
tabs: [
{ name: '中心支公司', available: false, level: 3 },
{ name: '营销服务部', available: false, level: 4 },
{ name: '下辖营业区', available: false, level: 5 },
{ name: '下辖营业部', available: false, level: 6 },
{ name: '下辖营业组', available: false, level: 7 }
],
needGettingKey: ['name', 'ysbb', 'ysjs', 'bzbf', 'cbjs'],
tableColumns: [
{ name: '机构', key: 'name' },
@@ -45,6 +58,16 @@ export default {
values: []
}
},
watch: {
availableLevel(nv) {
this.active = nv - 2
for (let tab of this.tabs) {
if (tab.level < this.availableLevel) {
tab.available = true
}
}
}
},
methods: {
updateQueryConditon(index) {
this.$emit('updateQueryCom', index)

View File

@@ -30,7 +30,7 @@
</div>
</div>
<div class="content">
<Organization ref="organization" @updateQueryCom="updateQueryCom" />
<Organization ref="organization" @updateQueryCom="updateQueryCom" :availableLevel.sync="availableLevel" />
</div>
<!-- 机构筛选栏 -->
<van-popup v-for="(level, index) in 6" :key="index" v-model="popCondition[index]" position="bottom" :style="{ height: '40vh' }">
@@ -73,6 +73,7 @@ import { Popup, Tab, Tabs, DatetimePicker, Picker, Toast } from 'vant'
import Organization from './Organization.vue'
import dateUtil from '@/assets/js/utils/date-utils.js'
import { getComPerformance, getComList } from '@/api/ebiz/goodStart'
import { getAgentInfo } from '@/api/ebiz/my/my'
// 当前时间
const currentDate = new Date()
@@ -90,6 +91,9 @@ export default {
},
data() {
return {
// 代理人是否是内勤
isInner: false,
availableLevel: 0,
scrollObj: { width: 'auto', whiteSpace: 'nowrap' },
popCondition: [false, false, false, false, false, false],
columns: {
@@ -164,14 +168,26 @@ export default {
}
}
},
mounted() {
async mounted() {
// 判断内外勤
await this.judgeUserType()
this.initData()
// 设置APP右上角按钮图片
this.setRightBtn()
},
methods: {
async judgeUserType() {
const result = await getAgentInfo({})
if (result.result === '0') {
const regx = /^N.*$/
this.isInner = regx.test(result.branchType)
} else {
this.$toast(result.resultMessage)
}
},
// 显示机构下拉选
showLevelCondition(level) {
if (!this.isInner && level < this.availableLevel) return
this.$set(this.popCondition, level - 1, true)
},
// 隐藏机构下拉选
@@ -180,10 +196,16 @@ export default {
},
// 查询某一层级机构筛选选项
async getLevelFilterColumn(manageCode = '', manageLv = '') {
return await getComList({
const result = await getComList({
manageCode,
manageLv
})
if (result.result === '0') {
return result
} else {
this.$toast(result.resultMessage)
return false
}
},
// 设置下拉选数据
setLevelColumns(level) {
@@ -218,12 +240,14 @@ export default {
// 不是最后一级机构查询下级机构数据
if (level < 6) {
const data = await this.getLevelFilterColumn(target.code, `0${level + 1}`)
if (data) {
// 清空数据再设置下级机构下拉选数据
this[`level${level + 1}Objs`].splice(0)
this[`level${level + 1}Objs`].push(...data.content)
this.setLevelColumns(level + 1)
}
}
}
// 选择全部时取上级机构
if (data === '全国') {
this.params.manageCode = '86'
@@ -247,7 +271,11 @@ export default {
},
async getSetDate() {
let result = await this.getPerformanceRankData()
if (result.result === '0') {
this.$refs.organization.setTableData(result.content.list)
} else {
this.$toast(result.resultMessage)
}
},
appCallBack(data) {
if (data.trigger == 'right_button_click') {
@@ -278,12 +306,36 @@ export default {
}
// 查询全部分公司
const res = await this.getLevelFilterColumn()
if (res) {
const firsts = res.content
this.level1Objs = firsts
// 内勤
if (this.isInner) {
// 设置下拉选
this.level1Objs = firsts
this.setLevelColumns(1)
// 查询默认数据
await this.getSetDate()
}
// 外勤
else {
const availableOrgs = firsts.filter(item => item.code !== '86').reverse()
for (let org of availableOrgs) {
this.$set(this.levelNames, org.level - 1, org.name)
this[`level${org.level}Code`] = org.level > 4 ? org.inCode : org.code
}
const availableOrg = firsts[0]
this.availableLevel = availableOrg.level
const data = await this.getLevelFilterColumn(availableOrg.code, availableOrg.level)
if (data) {
// 清空数据再设置下级机构下拉选数据
this[`level${availableOrg.level}Objs`].splice(0)
this[`level${availableOrg.level}Objs`].push(...data.content)
this.setLevelColumns(availableOrg.level)
}
this.params.manageCode = this.availableLevel >= 4 ? firsts[0].inCode : firsts[0].code
this.params.manageLv = `0${this.availableLevel}`
}
}
},
// 查询业绩数据
async getPerformanceRankData() {