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

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) { export function getTreasureMenus(data) {
return request({ return request({
@@ -62,3 +71,12 @@ export function getMapDataList(data) {
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: [ tabs: [
{ name: '中心支公司', available: false, level: 3 }, { name: '中心支公司', available: false, level: 3 },
{ name: '营销服务部', available: false, level: 4 }, { name: '营销服务部', available: false, level: 4 },
{ name: '下辖营业区', available: false, level: 5 }, { name: '营业区', available: false, level: 5 },
{ name: '下辖营业', available: false, level: 6 }, { name: '下辖营业', available: false, level: 6 },
{ name: '下辖营业', available: false, level: 7 } { name: '下辖营业', available: false, level: 7 },
{ name: '下辖营业组', available: false, level: 8 }
], ],
needGettingKey: ['name', 'ysbb', 'ysjs', 'bzbf', 'cbjs'], needGettingKey: ['name', 'ysbb', 'ysjs', 'bzbf', 'cbjs'],
tableColumns: [ tableColumns: [
@@ -136,13 +137,13 @@ $bgRed: #f03;
$white: #fff; $white: #fff;
.th-rank { .th-rank {
width: 50px; width: 35px;
} }
.orgName { .orgName {
width: 8em; width: 100px;
position: sticky; position: sticky;
left: 59px; left: 35px;
} }
.organization { .organization {
@@ -172,18 +173,18 @@ $white: #fff;
.table-wrapper { .table-wrapper {
overflow: auto; overflow: auto;
margin: 0 10px; // margin: 0 10px;
} }
.myTable { .myTable {
text-align: center; text-align: center;
min-width: 200vw; min-width: 94vw;
} }
.myTable td, .myTable td,
.myTable th { .myTable th {
font-size: 14px; font-size: 14px;
padding: 10px 5px; padding: 10px 0px;
border-bottom: $border; border-bottom: $border;
border-collapse: collapse; border-collapse: collapse;
background-color: $white; background-color: $white;

View File

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