diff --git a/src/api/deps/index.js b/src/api/deps/index.js index 0976880..22bd56a 100644 --- a/src/api/deps/index.js +++ b/src/api/deps/index.js @@ -1,6 +1,5 @@ import request from '@/service/index.js' -// 查询用户群聊服务接口 export const departmentV2TreeMy = (data) => { return request({ url: '/department/v2/tree/my', @@ -9,3 +8,20 @@ export const departmentV2TreeMy = (data) => { data, }) } + +export const departmentV2AllPosition = (data) => { + return request({ + url: '/department/v2/tree/all/position', + baseURL:import.meta.env.VITE_EPR_BASEURL, + method: 'POST', + data, + }) +} + +export const groupCreateDept = (data) => { + return request({ + url: '/api/v1/group/create-dept', + method: 'POST', + data, + }) +} diff --git a/src/api/user/index.js b/src/api/user/index.js index ccf507f..a4eb9fb 100644 --- a/src/api/user/index.js +++ b/src/api/user/index.js @@ -7,3 +7,21 @@ export const ServeGetUserSetting = (data) => { data, }) } + +export const userInfoApi = (data) => { + return request({ + url: '/user/info', + method: 'POST', + data, + baseURL:import.meta.env.VITE_EPR_BASEURL, + }) +} + +export const userLeaderApi = (data) => { + return request({ + url: '/oa/user/other-info', + method: 'POST', + data, + baseURL:import.meta.env.VITE_EPR_BASEURL, + }) +} diff --git a/src/pages.json b/src/pages.json index ec6f8c2..85b7a57 100644 --- a/src/pages.json +++ b/src/pages.json @@ -46,6 +46,14 @@ "enablePullDownRefresh":false } }, + { + "path": "pages/chooseGroupAdmin/index", + "type": "page", + "style": { + "navigationStyle": "custom", + "enablePullDownRefresh":false + } + }, { "path": "pages/chooseChat/index", "type": "page", diff --git a/src/pages/chooseDeps/index.vue b/src/pages/chooseDeps/index.vue index e556889..e32a295 100644 --- a/src/pages/chooseDeps/index.vue +++ b/src/pages/chooseDeps/index.vue @@ -1,7 +1,7 @@ + diff --git a/src/pages/chooseGroupType/index.vue b/src/pages/chooseGroupType/index.vue index 7f046a5..fe7cc88 100644 --- a/src/pages/chooseGroupType/index.vue +++ b/src/pages/chooseGroupType/index.vue @@ -26,7 +26,7 @@
-
+
部门群
@@ -34,12 +34,23 @@ 指定部门员工入职自动进群 离职后自动退群
-
+
选择部门
+
+
+ {{ depCheckedKeys.map(v=>v.name).toString() }} +
+
+
查看全部
+
+ +
+
+
@@ -59,8 +70,9 @@
{ + let disabledT = false; + switch (groupActiveIndex.value) { + case 0: + break; + case 1: + if (!depCheckedKeys.value.length) { + disabledT = true; + } + break; + case 2: + break; + default: + break; + } + return disabledT +}) const chooseDep = () => { uni.navigateTo({ @@ -92,6 +121,13 @@ const chooseDep = () => { }); }; +const handleConfirm = () => { + uni.navigateBack() + // uni.navigateTo({ + // url: '/pages/creatGroupChat/index' + // }); +}; + diff --git a/src/store/auth/index.js b/src/store/auth/index.js index a1333ce..17128b9 100644 --- a/src/store/auth/index.js +++ b/src/store/auth/index.js @@ -1,10 +1,11 @@ import {createGlobalState,useStorage} from '@vueuse/core' import {uniStorage} from "@/utils/uniStorage.js" +import { userInfoApi } from "@/api/user"; import {ref} from 'vue' export const useAuth = createGlobalState(() => { // const token = useStorage('token', '', uniStorage) - const token = ref('79b5c732d96d2b27a48a99dfd4a5566c43aaa5796242e854ebe3ffc198d6876b9628e7b764d9af65ab5dbb2d517ced88170491b74b048c0ba827c0d3741462cb89dc59ed46653a449af837a8262941ca1430937103230a1e32a1715f569f3efdbe6f8cb8b7b8642bd679668081b9b08f693d1b5be6002d936ec51e1e3e0c4927de9e32ac99a109b326e5d2bda27ec87624bb416ec70d2a95a2e190feeba9f0d6bae8571b3dfe89c824712344759a8f2bff9d70747c52525cf6a5614f9c770bca461a9b9c247b6dca97bcf83bbaf99bb726752c4fe1e9a4aa7de5c4cf3e88a3e480801280d45cdc124f9d8221105d8529c7c268c1251c3477bff5c051043bf980aeac85434ccb1cebe1e9f4e069aeab4e7218dd08b25d2c7a248688eacf5337b097fe8e841ea8fa3ac1563adc6d41200a4ab1d210a428141915919cd9d74796e80000b9d024850015b8f7defce2919e15') + const token = ref('79b5c732d96d2b27a48a99dfd4a5566c43aaa5796242e854ebe3ffc198d6876b9628e7b764d9af65ab5dbb2d517ced88170491b74b048c0ba827c0d3741462cb89dc59ed46653a449af837a8262941ca1430937103230a1e32a1715f569f3efdbe6f8cb8b7b8642bd679668081b9b08f693d1b5be6002d936ec51e1e3e0c4927de9e32ac99a109b326e5d2bda27ec87624bb416ec70d2a95a2e190feeba9f0d6bae8571b3dfe89c824712344759a8f2bff9d70747c52525cf6a5614f9c770bca461a9b9c247b6dca97bcf83bbaf99bb726752c4fe1e9a4aa7de5c4cf3e88a3e480801280d45cdc124f9d8221105d8529c7c268c1251c3477bff5c051043bf9804c4f7096c5178cc01261bbedf04108b969333baf0bd5226c426de3591fc50b70691f2a5e275fa67ea3a7301df448929c13e4b71bf2182b6bfc270e21c142aa693844a0a175637f907e4438786a6e5e50') const refreshToken = useStorage('refreshToken', '', uniStorage) const userInfo = useStorage('userInfo', {}, uniStorage) const leaderList = useStorage('leaderList', [], uniStorage) @@ -20,25 +21,25 @@ export const useAuth = createGlobalState(() => { userInfo.value=res.data } } - const getUserLeader=async ()=>{ - const data={ - departmentId:userInfo.value.PositionUsers?.map(x=>x.DepartmentId) - } + // const getUserLeader=async ()=>{ + // const data={ + // departmentId:userInfo.value.PositionUsers?.map(x=>x.DepartmentId) + // } - const res= await userLeaderApi(data) - if (res.status===0){ - isLeader.value=!!res.data.departmentLeaders?.find((x) => { - return x.userID === userInfo.value.ID - }) - leaderList.value=res.data.departmentLeaders - myCompany.value=res.data.company - } + // const res= await userLeaderApi(data) + // if (res.status===0){ + // isLeader.value=!!res.data.departmentLeaders?.find((x) => { + // return x.userID === userInfo.value.ID + // }) + // leaderList.value=res.data.departmentLeaders + // myCompany.value=res.data.company + // } - } + // } return { leaderList, myCompany, - getUserLeader, + // getUserLeader, getUserInfo, userInfo, token, diff --git a/src/store/groupType/index.js b/src/store/groupType/index.js index 54e344a..4d757cf 100644 --- a/src/store/groupType/index.js +++ b/src/store/groupType/index.js @@ -5,14 +5,18 @@ import lodash from 'lodash' import {ref} from 'vue' import {createGlobalState,useStorage} from '@vueuse/core' import {uniStorage} from "@/utils/uniStorage.js" -import {departmentV2TreeMy} from '@/api/deps/index.js' +import {departmentV2TreeMy,departmentV2AllPosition,groupCreateDept} from '@/api/deps/index.js' export const useGroupTypeStore = createGlobalState(() => { + const groupName = ref('') + const groupActiveIndex = ref(-1) // 当前激活的分组索引 const depTreeMyList = ref([]) + const postTreeList = ref([]) const crumbs = ref([]) const crumbsIndex = ref(0) - const onChoosenDeps = ref([]) - // const checkedKeys = ref([]) + const depCheckedKeys = ref([]) // 选中的部门keys + const groupAdmins = ref([]) // 选中的管理员 + // const halfCheckedKeys = ref([]) const getDepsTreeMy= async()=>{ @@ -22,13 +26,56 @@ export const useGroupTypeStore = createGlobalState(() => { } } + const getPositionsTree= async()=>{ + const res = await departmentV2AllPosition() + if(res.status===0){ + postTreeList.value = res.data.nodes + } + } + + const resetGroupInfo = () => { + groupName.value = ''; + groupActiveIndex.value = -1; + depTreeMyList.value = []; + postTreeList.value = []; + crumbs.value = []; + crumbsIndex.value = 0 + depCheckedKeys.value = [] + groupAdmins.value = [] + } + + const createDepGroup = async (param) => { + const res = await groupCreateDept({ + name:groupName.value, + deptInfos:depCheckedKeys.value.map(v=>{ + return { + dept_id:v.ID, + dept_name:v.name + } + }), + positionInfos:groupAdmins.value.map(v=>{ + return { + position_id:v.ID, + position_name:v.name + } + }) + }) + return res; + } return { + groupName, + groupActiveIndex, depTreeMyList, + postTreeList, getDepsTreeMy, + getPositionsTree, crumbs, crumbsIndex, - onChoosenDeps + depCheckedKeys, + groupAdmins, + resetGroupInfo, + createDepGroup, } }) diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 5f468f8..e5a4567 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -2,6 +2,7 @@ import { defineStore } from 'pinia' import { ServeGetUserSetting } from '@/api/user/index.js' // import { ServeFindFriendApplyNum } from '@/api/contact' import { ServeGroupApplyUnread } from '@/api/group' +import {useAuth} from '@/store/auth' // import { delAccessToken } from '@/utils/auth' // import { storage } from '@/utils/storage' @@ -20,7 +21,9 @@ export const useUserStore = defineStore('chatUser', { online: false, // 在线状态 isQiye: false, isContactApply: false, - isGroupApply: false + isGroupApply: false, + deps:[], + positions:[], } }, getters: {}, @@ -40,6 +43,9 @@ export const useUserStore = defineStore('chatUser', { loadSetting() { ServeGetUserSetting().then(({ code, data }) => { if (code == 200) { + const {getUserInfo,userInfo} = useAuth() + userInfo.value.ID = data.user_info.erp_user_id + getUserInfo() this.nickname = data.user_info.nickname this.uid = data.user_info.uid this.avatar = data.user_info.avatar @@ -49,6 +55,8 @@ export const useUserStore = defineStore('chatUser', { this.email = data.user_info.email || '' this.motto = data.user_info.motto this.isQiye = data.user_info.is_qiye || false + this.deps = data.user_info.user_depts || [] + this.positions = data.user_info.user_positions || [] // storage.set('user_info', data) }