【开门红业绩查询】设置下拉选数据外勤-第一职级(区部组).不显示全部

This commit is contained in:
liyuetong
2021-11-18 19:39:30 +08:00
parent 38db2defca
commit 893c8825af
3 changed files with 148 additions and 67 deletions

View File

@@ -10,6 +10,15 @@ export function getComList(data) {
})
}
// 开门红业绩查询机构列表查询
export function getMisComList(data) {
return request({
url: getUrl('/data/performance/getMisComList', 1),
method: 'post',
data
})
}
// 百宝箱菜单列表查询
export function getTreasureMenus(data) {
return request({
@@ -62,3 +71,12 @@ export function getMapDataList(data) {
data
})
}
//获取当前人机构
export function getBranchByUser(data) {
return request({
url: getUrl(`/data/branch/getBranchByUser`, 1),
method: 'post',
data
})
}

View File

@@ -51,9 +51,10 @@ export default {
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 }
{ name: '营业区', available: false, level: 5 },
{ name: '下辖营业', available: false, level: 6 },
{ name: '下辖营业', available: false, level: 7 },
{ name: '下辖营业组', available: false, level: 8 }
],
needGettingKey: ['name', 'ysbb', 'ysjs', 'bzbf', 'cbjs'],
tableColumns: [
@@ -136,13 +137,13 @@ $bgRed: #f03;
$white: #fff;
.th-rank {
width: 50px;
width: 35px;
}
.orgName {
width: 8em;
width: 100px;
position: sticky;
left: 59px;
left: 35px;
}
.organization {
@@ -172,18 +173,18 @@ $white: #fff;
.table-wrapper {
overflow: auto;
margin: 0 10px;
// margin: 0 10px;
}
.myTable {
text-align: center;
min-width: 200vw;
min-width: 94vw;
}
.myTable td,
.myTable th {
font-size: 14px;
padding: 10px 5px;
padding: 10px 0px;
border-bottom: $border;
border-collapse: collapse;
background-color: $white;

View File

@@ -7,11 +7,11 @@
<span class="ml5 mr5">标保</span>
</van-button>
</div>
<div class="header-center">
<!-- <div class="header-center">
<van-button class="btn-gray" :class="{ activeBtn: timeType === 0 }" @click="isDayConditionShow = true"></van-button>
<van-button class="btn-gray month" :class="{ activeBtn: timeType === 1 }" @click="isMonthConditionShow = true"></van-button>
<van-button class="btn-gray" :class="{ activeBtn: timeType === 2 }" @click="isYearConditionShow = true"></van-button>
</div>
</div> -->
<div class="header-right">
<van-button @click="isTimeBarShow = true">
<span class="mr5">{{ timeCondition }}</span>
@@ -23,8 +23,9 @@
<div class="classification">
<div :style="scrollObj">
<span>机构名称: </span>
<span v-for="(level, index) in 6" :key="index" class="filter" @click="showLevelCondition(level)">
<span>{{ levelNames[level] }}</span>
<span v-for="(level, index) in (8-levelLength)+1" :key="index" class="filter" @click="showLevelCondition(levelLength + index)">
<!-- <span>{{ levelNames[level] }}</span> -->
<span>{{ levelNames[levelLength + index] }}</span>
<van-icon name="arrow-down" />
</span>
</div>
@@ -33,7 +34,7 @@
<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' }">
<van-popup v-for="(level, index) in 8" :key="index" v-model="popCondition[index]" position="bottom" :style="{ height: '40vh' }">
<van-picker show-toolbar :columns="columns[level]" @confirm="onLevelConditionConfirm($event, level)" @cancel="closeLevelConditionPopup(level)" />
</van-popup>
<!-- 时间筛选栏 -->
@@ -41,17 +42,18 @@
<van-datetime-picker
v-model="dayTimeCondition"
type="datetime"
:min-date="minDate"
:max-date="maxDate"
@confirm="onDayTimeConditionConfirm"
@cancel="isTimeBarShow = false"
/>
</van-popup>
<!-- -->
<van-popup v-model="isDayConditionShow" position="bottom" :style="{ height: '40vh' }">
<!-- <van-popup v-model="isDayConditionShow" position="bottom" :style="{ height: '40vh' }">
<van-datetime-picker v-model="dayCondition" type="date" :max-date="maxDate" @confirm="onDayConditionConfirm" @cancel="isDayConditionShow = false" />
</van-popup>
</van-popup> -->
<!-- -->
<van-popup v-model="isMonthConditionShow" position="bottom" :style="{ height: '40vh' }">
<!-- <van-popup v-model="isMonthConditionShow" position="bottom" :style="{ height: '40vh' }">
<van-datetime-picker
v-model="monthCondition"
type="year-month"
@@ -59,11 +61,11 @@
@confirm="onMonthConditionConfirm"
@cancel="isMonthConditionShow = false"
/>
</van-popup>
</van-popup> -->
<!-- -->
<van-popup v-model="isYearConditionShow" position="bottom" :style="{ height: '40vh' }">
<!-- <van-popup v-model="isYearConditionShow" position="bottom" :style="{ height: '40vh' }">
<van-picker show-toolbar :columns="years" @confirm="onYearConditionConfirm" @cancel="isYearConditionShow = false" />
</van-popup>
</van-popup> -->
</div>
</template>
@@ -72,7 +74,7 @@ import point from '@/assets/images/ebiz/point.png'
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 { getComPerformance, getMisComList, getBranchByUser } from '@/api/ebiz/goodStart'
import { getAgentInfo } from '@/api/ebiz/my/my'
// 当前时间
@@ -91,6 +93,7 @@ export default {
},
data() {
return {
levelLength:1, //内勤职级数为8外勤区部组职级数不确定
// 代理人是否是内勤
isInner: false,
availableLevel: 0,
@@ -102,9 +105,13 @@ export default {
3: ['全部'],
4: ['全部'],
5: ['全部'],
6: ['全部']
6: ['全部'],
7: ['全部'],
8: ['全部']
},
timeType: 0,
// 最小查询日期
// minDate: new Date('2021-12-12 00:00:00'),
// 最大查询日期
maxDate: currentDate,
// 日期筛选条件
@@ -114,7 +121,7 @@ export default {
// 年份筛选条件
yearCondition: currentDate.getFullYear(),
// 实时筛选时间条件
timeCondition: dateUtil.formatDate(currentDate, 'MM-dd HH:mm'),
timeCondition: dateUtil.formatDate(currentDate, 'yyyy-MM-dd HH:mm'),
dayTimeCondition: currentDate,
// 0: 标保, 1: 人力, 2: 产品
typeIndex: 0,
@@ -134,7 +141,9 @@ export default {
3: '全部',
4: '全部',
5: '全部',
6: '全部'
6: '全部',
7: '全部',
8: '全部'
},
level1Code: 0,
level1Objs: [],
@@ -148,6 +157,10 @@ export default {
level5Objs: [],
level6Code: 0,
level6Objs: [],
level7Code: 0,
level7Objs: [],
level8Code: 0,
level8Objs: [],
provinceCode: 0,
provinceObjs: [],
cityCode: 0,
@@ -171,7 +184,26 @@ export default {
async mounted() {
// 判断内外勤
await this.judgeUserType()
this.initData()
//获取当前人机构
let resData = await getBranchByUser({})
//内勤level 01,02,03,04,05时从全国开始 服务机构 外勤level 06,07,08时从当前职级开始
if (resData.result != '0') return this.$toast(resData.resultMessage)
let manageLv = Number(resData.content.level.substr(1, 1))
if(manageLv == '1' || manageLv == '2' || manageLv == '3' || manageLv == '4'|| manageLv == '5'){
this.initData() //内勤
}else{
let manageCode = resData.content.code
//外勤区部组职级数
this.levelLength = manageLv
// 外勤当前用户的第一职级
this.levelNames[manageLv] = resData.name
this.availableLevel = manageLv
this[`level${manageLv}Objs`].splice(0)
this[`level${manageLv}Objs`].push(resData)
this.setLevelColumnsWai(manageLv)
this.initData(manageCode,manageLv) //外勤
}
// this.initData()
// 设置APP右上角按钮图片
this.setRightBtn()
},
@@ -197,7 +229,7 @@ export default {
},
// 查询某一层级机构筛选选项
async getLevelFilterColumn(manageCode = '', manageLv = '') {
const result = await getComList({
const result = await getMisComList({
bussinessType: 'kmh',
manageCode,
manageLv
@@ -209,6 +241,14 @@ export default {
return false
}
},
// 设置下拉选数据外勤-第一职级(区部组).不显示全部
setLevelColumnsWai(level) {
const columns = []
this[`level${level}Objs`].forEach(item => {
columns.push(item.name)
})
this.$set(this.columns, level, columns)
},
// 设置下拉选数据
setLevelColumns(level) {
const columns = [level === 1 ? '全国' : '全部']
@@ -224,7 +264,7 @@ export default {
// 设置选择的机构名称
this.levelNames[level] = data
// 将当前机构下属机构设置为全部
for (let i = level + 1; i <= 6; i++) {
for (let i = level + 1; i <= 8; i++) {
this.$set(this.levelNames, i, '全部')
}
// 查找选择的机构
@@ -233,15 +273,15 @@ export default {
})
// 选择的机构存在&不是最后一级时查询下级机构下拉选数据
if (target) {
// level1~3取code, level4~6取inCode
if (level >= 4) {
// level1~5取code, level6~8取inCode
if (level > 5) {
this[`level${level}Code`] = target.inCode
} else {
this[`level${level}Code`] = target.code
}
// 不是最后一级机构查询下级机构数据
if (level < 6) {
const data = await this.getLevelFilterColumn(target.code, `0${level + 1}`)
if (level < 8) {
const data = await this.getLevelFilterColumn(target.code, level)
if (data) {
// 清空数据再设置下级机构下拉选数据
this[`level${level + 1}Objs`].splice(0)
@@ -261,9 +301,10 @@ export default {
if (data === '全国') {
this.params.manageLv = '01'
} else if (data === '全部') {
this.params.manageLv = `0${level}`
this.params.manageLv = `0${level}`
} else {
this.params.manageLv = `0${level + 1}`
// this.params.manageLv = `0${level + 1}`
this.params.manageLv = `0${level}`
}
// 发送接口查数据
this.getSetDate()
@@ -299,7 +340,7 @@ export default {
}, 1000)
window.appCallBack = this.appCallBack
},
async initData() {
async initData(manageCode,manageLv) {
// 初始化年份筛选数据
const currentYear = new Date().getFullYear()
const startYear = currentYear - 10
@@ -307,24 +348,38 @@ export default {
this.years.unshift(year)
}
// 查询全部分公司
const res = await this.getLevelFilterColumn()
const res = await this.getLevelFilterColumn(manageCode,manageLv)
if (res) {
const firsts = res.content
// 内勤
if (this.isInner) {
// 设置下拉选
this.level1Objs = firsts
this.setLevelColumns(1)
// 查询默认数据
await this.getSetDate()
}
// 外勤
else {
if (!this.isInner) {
// this.levelNames = {}
// this.columns = {}
// for (var i = 0; i < (8-manageLv)+1; i++) {
// this.columns[manageLv+i] = ['全部']
// this.levelNames[manageLv+i] = '全部'
// console.log(manageLv+i,'manageLv+i')
// }
// 清空数据再设置下级机构下拉选数据
this[`level${firsts[0].level}Objs`].splice(0)
this[`level${firsts[0].level}Objs`].push(...firsts)
this.setLevelColumns(firsts[0].level)
this.params.manageCode = manageLv > 5 ? this[`level${manageLv}Objs`][0].inCode : this[`level${manageLv}Objs`][0].code
this.params.manageLv = `0${manageLv}`
// await this.getSetDate()
}else { // 内勤
// 原逻辑--开始
// 设置下拉选
// this.level1Objs = firsts
// this.setLevelColumns(manageLv)
// await this.getSetDate()
// 原逻辑--结束
// 外勤时返回无法修改的机构列表
const unavailableOrgs = firsts.filter(item => item.code !== '86').reverse()
// 第一级时不走此逻辑
for (let org of unavailableOrgs) {
this.$set(this.levelNames, org.level - 1, org.name)
this[`level${org.level}Code`] = org.level > 4 ? org.inCode : org.code
this[`level${org.level}Code`] = org.level > 5 ? org.inCode : org.code
}
// 外勤可以查看的最高级别机构
const availableOrg = firsts[0]
@@ -333,12 +388,16 @@ export default {
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[`level${data.content[0].level}Objs`].splice(0)
this[`level${data.content[0].level}Objs`].push(...data.content)
this.setLevelColumns(data.content[0].level)
}
this.params.manageCode = this.availableLevel >= 4 ? firsts[0].inCode : firsts[0].code
this.params.manageCode = this.availableLevel > 5 ? firsts[0].inCode : firsts[0].code
this.params.manageLv = `0${this.availableLevel}`
await this.getSetDate()
// console.log(this.params.manageCode,'this.params.manageCode')
// console.log(this.params.manageLv,'this.params.manageLv')
// console.log(this.params,'this.params')
}
}
},
@@ -367,26 +426,26 @@ export default {
let result = await getComPerformance(this.params)
return result
},
async onDayConditionConfirm() {
this.isDayConditionShow = false
this.timeType = 0
await this.getSetDate()
},
async onMonthConditionConfirm() {
this.isMonthConditionShow = false
this.timeType = 1
await this.getSetDate()
},
async onYearConditionConfirm() {
this.isYearConditionShow = false
this.timeType = 2
await this.getSetDate()
},
// async onDayConditionConfirm() {
// this.isDayConditionShow = false
// this.timeType = 0
// await this.getSetDate()
// },
// async onMonthConditionConfirm() {
// this.isMonthConditionShow = false
// this.timeType = 1
// await this.getSetDate()
// },
// async onYearConditionConfirm() {
// this.isYearConditionShow = false
// this.timeType = 2
// await this.getSetDate()
// },
// 筛选时间确认事件
async onDayTimeConditionConfirm(time) {
this.isTimeBarShow = false
this.timeType = 3
this.timeCondition = dateUtil.formatDate(time, 'MM-dd HH:mm')
this.timeCondition = dateUtil.formatDate(time, 'yyyy-MM-dd HH:mm')
this.params.date = ''
await this.getSetDate()
},
@@ -402,9 +461,12 @@ export default {
this.params.queryCom = 'q'
break
case 3:
this.params.queryCom = 'b'
this.params.queryCom = 'wq'
break
case 4:
this.params.queryCom = 'b'
break
case 5:
this.params.queryCom = 'zz'
break
}
@@ -478,7 +540,7 @@ span {
}
::v-deep .van-button {
padding: 0 10px;
padding: 0 40px;
}
*::-webkit-scrollbar {