Commit ee2c6e8a authored by hanfeng zhang's avatar hanfeng zhang

Merge branch 'main' of gitlab.33.cn:HF_web/OKR

parents 30a875bf c28b2d16
export enum Role { export enum Role {
TEAM_LEDER = 0, LEADER = 0,
SUPER_ADMIN = 1, SUPER_ADMIN = 1,
CLIENT_MANAGER = 2, CUSTOMER_ADMIN = 2,
COMMOM_MEMBER = 3 COMMON_MEMBER = 3,
CHILD_ADMIN = 4,
} }
export enum Apply { export enum Apply {
......
...@@ -2,6 +2,7 @@ import Mock from 'mockjs' ...@@ -2,6 +2,7 @@ import Mock from 'mockjs'
import { strChineseFirstPY } from './strChineseFirstPY' import { strChineseFirstPY } from './strChineseFirstPY'
import { oMultiDiff } from './oMultiDiff' import { oMultiDiff } from './oMultiDiff'
import { Staff } from '@/Interface' import { Staff } from '@/Interface'
import { Role } from '@/service/moudles/service.dto'
// 参数,中文字符串 // 参数,中文字符串
// 返回值:拼音首字母串数组 // 返回值:拼音首字母串数组
...@@ -108,3 +109,8 @@ export function getContacts(arr: Array<Staff>) { ...@@ -108,3 +109,8 @@ export function getContacts(arr: Array<Staff>) {
}) })
return contacts return contacts
} }
export function getLeaders(arr: Array<Staff>) {
if (typeof arr === 'undefined' || arr.length === 0) return []
return arr.filter((item: Staff) => item.role !== Role.COMMON_MEMBER).sort((a, b) => a.role - b.role)
}
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
:radio="true" :radio="true"
:multiple="multiple" :multiple="multiple"
:checked.sync="checkedMember" :checked.sync="checkedMember"
:contacts="contacts" :contact-list="contacts"
/> />
</div> </div>
<!-- 底部操作 --> <!-- 底部操作 -->
...@@ -62,7 +62,12 @@ export default Vue.extend({ ...@@ -62,7 +62,12 @@ export default Vue.extend({
type: String, type: String,
default: '团队成员' default: '团队成员'
}, },
contacts: Object, contacts: {
type: Array,
default() {
return []
}
},
actionType: String actionType: String
}, },
data() { data() {
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
:radio="true" :radio="true"
:multiple="multiple" :multiple="multiple"
:checked.sync="checkedMember" :checked.sync="checkedMember"
:contacts="contacts" :contact-list="contacts"
/> />
</div> </div>
<!-- 底部操作 --> <!-- 底部操作 -->
...@@ -103,7 +103,7 @@ export default Vue.extend({ ...@@ -103,7 +103,7 @@ export default Vue.extend({
return { return {
team, team,
loading: false, loading: false,
contacts: {}, contacts: [] as Array<Staff>,
parentId: '', parentId: '',
entId: '', entId: '',
ifContainChildDep: false, ifContainChildDep: false,
...@@ -197,7 +197,7 @@ export default Vue.extend({ ...@@ -197,7 +197,7 @@ export default Vue.extend({
if (data.code === this.$global.success) { if (data.code === this.$global.success) {
this.currentDep = data.data.dep this.currentDep = data.data.dep
// 通讯录 // 通讯录
this.contacts = getContacts(data.data.staffList || []) this.contacts = data.data.staffList || []
// 部门树 // 部门树
const depTree = data.data.dep const depTree = data.data.dep
depTree.children = data.data.subDepList depTree.children = data.data.subDepList
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
</div> </div>
<template v-if="Object.keys(list).length > 0"> <template v-if="Object.keys(list).length > 0">
<!-- 主管负责人 --> <!-- 主管负责人 -->
<div class="leaders"> <div class="leaders" v-if="leaders.length > 0">
<div <div
v-for="(leader, index) in leaders" v-for="(leader, index) in leaders"
:key="index" :key="index"
...@@ -91,16 +91,17 @@ ...@@ -91,16 +91,17 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import Vue from 'vue' import Vue, {PropType} from 'vue'
import { Staff, Contacts } from '@/Interface' import { Staff, Contacts } from '@/Interface'
import { Role } from '@/service/moudles/service.dto' import { Role } from '@/service/moudles/service.dto'
import { getContacts, getLeaders } from '@/util/Contact'
export default Vue.extend({ export default Vue.extend({
props: { props: {
contacts: { contactList: {
type: Object, type: Array as PropType<Array<Staff>>,
default() { default() {
return {} return []
} }
}, },
radio: { radio: {
...@@ -138,15 +139,14 @@ export default Vue.extend({ ...@@ -138,15 +139,14 @@ export default Vue.extend({
}, },
computed: { computed: {
leaders() { leaders() {
let arr: Array<Staff> = [] return getLeaders(this.contactList)
for (const key in this.contacts) { },
arr = arr.concat(this.contacts[key]) filteredContacts() {
} return getContacts(this.contactList.filter((staff: Staff) => staff.role === Role.COMMON_MEMBER) || [])
return arr.filter(item => item.role === Role.TEAM_LEDER || item.role === Role.SUPER_ADMIN ).sort((a, b) => b.role - a.role)
}, },
navs() { navs() {
let arr: Array<string> = [] let arr: Array<string> = []
for (let key in this.contacts) { for (let key in this.filteredContacts) {
if (key !== '#'){ if (key !== '#'){
arr.push(key) arr.push(key)
} else { } else {
...@@ -158,7 +158,7 @@ export default Vue.extend({ ...@@ -158,7 +158,7 @@ export default Vue.extend({
list() { list() {
const obj: Contacts = {} const obj: Contacts = {}
this.navs.forEach(nav => { this.navs.forEach(nav => {
obj[nav] = this.contacts[nav] obj[nav] = this.filteredContacts[nav]
}) })
return obj return obj
} }
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
:multiple="multiple" :multiple="multiple"
:action-type="actionType" :action-type="actionType"
:contacts="contacts" :contacts="contacts"
:leaders="leaders"
/> />
<div class="pt-14 px-4"> <div class="pt-14 px-4">
<input-cell <input-cell
...@@ -75,7 +76,7 @@ ...@@ -75,7 +76,7 @@
<script lang="ts"> <script lang="ts">
import { Department, Staff } from '@/Interface' import { Department, Staff } from '@/Interface'
import Vue from 'vue' import Vue from 'vue'
import { getContacts } from '@/util/Contact' import { getContacts, getLeaders } from '@/util/Contact'
export default Vue.extend({ export default Vue.extend({
name: 'DepartmentManagement', name: 'DepartmentManagement',
...@@ -105,7 +106,8 @@ export default Vue.extend({ ...@@ -105,7 +106,8 @@ export default Vue.extend({
memberSelectorTitle: '', memberSelectorTitle: '',
multiple: false, multiple: false,
contacts: {}, contacts: [],
leaders: [] as Array<Staff>,
showContactSelector: false, showContactSelector: false,
contactSelectorTitle: '', contactSelectorTitle: '',
actionType: 'add' actionType: 'add'
...@@ -162,8 +164,8 @@ export default Vue.extend({ ...@@ -162,8 +164,8 @@ export default Vue.extend({
this.loading = false this.loading = false
if (data.code === this.$global.success) { if (data.code === this.$global.success) {
// 通讯录 // 通讯录
this.contacts = getContacts(data.data.staffList || []) console.log(data.data.staffList, 'lll')
console.log(this.contacts, data.data.staffList, 'this.contacts') this.contacts = data.data.staffList || []
// 部门树 // 部门树
} else { } else {
this.$toast(data.msg) this.$toast(data.msg)
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<div class="text-text-secondary py-1">成员</div> <div class="text-text-secondary py-1">成员</div>
<team-contacts <team-contacts
:checked.sync="checkedMemberId" :checked.sync="checkedMemberId"
:contacts="contacts" :contact-list="contacts"
@click-member="clickMember" @click-member="clickMember"
/> />
</div> </div>
...@@ -56,7 +56,6 @@ ...@@ -56,7 +56,6 @@
import Vue from 'vue' import Vue from 'vue'
import { useLocalStorageState } from 'ahooks-vue' import { useLocalStorageState } from 'ahooks-vue'
import { appNavBack, getUserInfo, openCompanyUserInfo } from '@/util/Bridge' import { appNavBack, getUserInfo, openCompanyUserInfo } from '@/util/Bridge'
import { getContacts } from '@/util/Contact'
import { Department, Staff } from '@/Interface' import { Department, Staff } from '@/Interface'
// import {openCompanyUserInfo} from '@/util/Bridge' // import {openCompanyUserInfo} from '@/util/Bridge'
...@@ -88,7 +87,7 @@ export default Vue.extend({ ...@@ -88,7 +87,7 @@ export default Vue.extend({
title: '导航', title: '导航',
team, team,
loading: false, loading: false,
contacts: {}, contacts: [] as Array<Staff>,
parentId: '', parentId: '',
entId: '', entId: '',
ifContainChildDep: true, ifContainChildDep: true,
...@@ -168,7 +167,7 @@ export default Vue.extend({ ...@@ -168,7 +167,7 @@ export default Vue.extend({
if (data.code === this.$global.success) { if (data.code === this.$global.success) {
this.currentDep = data.data.dep this.currentDep = data.data.dep
// 通讯录 // 通讯录
this.contacts = getContacts(data.data.staffList || []) this.contacts = data.data.staffList
// 部门树 // 部门树
const depTree = data.data.dep const depTree = data.data.dep
depTree.children = data.data.subDepList depTree.children = data.data.subDepList
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment