From aadc4d9d43aad829e3de967107dcbb4fab969f98 Mon Sep 17 00:00:00 2001
From: wangyifeng <812766448@qq.com>
Date: Tue, 7 Jan 2025 18:57:29 +0800
Subject: [PATCH] =?UTF-8?q?OA=E4=BD=93=E5=88=B6=E5=86=85=E8=81=8A=E5=A4=A9?=
=?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=96=B0=E5=A2=9E=E7=BE=A4=E7=AE=A1=E7=90=86?=
=?UTF-8?q?=E5=91=98=E7=AE=A1=E7=90=86=E7=95=8C=E9=9D=A2=EF=BC=8C=E5=B9=B6?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=BA=E5=91=98=E9=80=89=E6=8B=A9=E9=80=9A?=
=?UTF-8?q?=E7=94=A8=E9=A1=B5=E9=9D=A2=EF=BC=9B=E5=8E=BB=E9=99=A4=E9=83=A8?=
=?UTF-8?q?=E5=88=86=E9=87=8D=E5=A4=8D=E8=AF=B7=E6=B1=82=E6=96=B9=E6=B3=95?=
=?UTF-8?q?=EF=BC=8C=E5=B0=86=E7=BE=A4=E6=88=90=E5=91=98=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E3=80=81=E7=BE=A4=E8=81=8A=E4=BF=A1=E6=81=AF=E7=BB=9F=E4=B8=80?=
=?UTF-8?q?=E5=9C=A8=E5=85=A8=E5=B1=80=E7=BB=B4=E6=8A=A4=EF=BC=9B=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E=E5=85=A8=E5=B1=80=E8=BE=93=E5=85=A5=E6=A1=86=E7=BB=84?=
=?UTF-8?q?=E4=BB=B6=E5=B0=81=E8=A3=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/chatSettings/index.js | 18 --
src/api/group/index.js | 2 +-
src/components/custom-input/custom-input.vue | 58 +++++++
src/pages.json | 16 ++
.../components/select-member-item.vue | 115 +++++++++++++
.../groupManage/manageGroupAdmin.vue | 106 ++++++++++++
.../groupManage/manageGroupMembers.vue | 43 +----
.../groupManage/manageGroupSilence.vue | 24 ++-
.../groupManage/selectMembers.vue | 159 ++++++++++++++++++
src/pages/chatSettings/index.vue | 90 +++-------
src/pages/search/components/searchList.vue | 33 +---
src/store/index.js | 1 +
src/store/modules/dialogue.js | 34 ++--
src/store/modules/group.js | 29 ++++
src/uni_modules/tmui/locale/zh-Hans.json | 5 +-
15 files changed, 573 insertions(+), 160 deletions(-)
create mode 100644 src/components/custom-input/custom-input.vue
create mode 100644 src/pages/chatSettings/components/select-member-item.vue
create mode 100644 src/pages/chatSettings/groupManage/manageGroupAdmin.vue
create mode 100644 src/pages/chatSettings/groupManage/selectMembers.vue
create mode 100644 src/store/modules/group.js
diff --git a/src/api/chatSettings/index.js b/src/api/chatSettings/index.js
index 3d124e2..dafa079 100644
--- a/src/api/chatSettings/index.js
+++ b/src/api/chatSettings/index.js
@@ -1,24 +1,6 @@
import request from '@/service/index.js'
import qs from 'qs'
-// 群信息查询
-export const ServeQueryGroupInfo = (data) => {
- return request({
- url: '/api/v1/group/detail',
- method: 'GET',
- data,
- })
-}
-
-// 查看群成员
-export const ServeQueryGroupMembers = (data) => {
- return request({
- url: '/api/v1/group/member/list',
- method: 'GET',
- data,
- })
-}
-
// 群公告查询
export const ServeQueryGroupNotice = (data) => {
return request({
diff --git a/src/api/group/index.js b/src/api/group/index.js
index 9fb5927..c2cc17b 100644
--- a/src/api/group/index.js
+++ b/src/api/group/index.js
@@ -207,6 +207,7 @@ export const ServeGroupAssignAdmin = (data) => {
})
}
+//指定人员禁言
export const ServeGroupNoSpeak = (data) => {
return request({
url: '/api/v1/group/no-speak',
@@ -214,4 +215,3 @@ export const ServeGroupNoSpeak = (data) => {
data,
})
}
-
diff --git a/src/components/custom-input/custom-input.vue b/src/components/custom-input/custom-input.vue
new file mode 100644
index 0000000..f7ad30e
--- /dev/null
+++ b/src/components/custom-input/custom-input.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
diff --git a/src/pages.json b/src/pages.json
index be2de0b..69299ec 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -138,6 +138,22 @@
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
+ },
+ {
+ "path": "pages/chatSettings/groupManage/selectMembers",
+ "type": "page",
+ "style": {
+ "navigationStyle": "custom",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/chatSettings/groupManage/manageGroupAdmin",
+ "type": "page",
+ "style": {
+ "navigationStyle": "custom",
+ "enablePullDownRefresh": false
+ }
}
],
"globalStyle": {
diff --git a/src/pages/chatSettings/components/select-member-item.vue b/src/pages/chatSettings/components/select-member-item.vue
new file mode 100644
index 0000000..4a03bc7
--- /dev/null
+++ b/src/pages/chatSettings/components/select-member-item.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
![]()
+
+ {{ imgText }}
+
+
+
+ {{ nameText }}
+
+
+
+
+
+ {{ $t('chatSettings.btn.undoSilence') }}
+
+
+ {{ $t('silence.tag.hasDone') }}
+
+
+
+
+
+
+
diff --git a/src/pages/chatSettings/groupManage/manageGroupAdmin.vue b/src/pages/chatSettings/groupManage/manageGroupAdmin.vue
new file mode 100644
index 0000000..35bc10c
--- /dev/null
+++ b/src/pages/chatSettings/groupManage/manageGroupAdmin.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+ {{ $t('chat.settings.groupAdmin') }}
+
+
+
+
+
+
+ {{ $t('chat.settings.groupAdmin') }}
+
+
+

+
+ {{ $t('chat.manage.addAdmin') }}
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/chatSettings/groupManage/manageGroupMembers.vue b/src/pages/chatSettings/groupManage/manageGroupMembers.vue
index 40d55bf..235a77d 100644
--- a/src/pages/chatSettings/groupManage/manageGroupMembers.vue
+++ b/src/pages/chatSettings/groupManage/manageGroupMembers.vue
@@ -6,8 +6,6 @@
:show-scrollbar="false"
:use-virtual-list="true"
:virtual-list-col="5"
- v-model="state.memberList"
- @query="getGroupMembers"
:auto="false"
:refresher-enabled="false"
:loading-more-enabled="false"
@@ -22,7 +20,9 @@
-
+
@@ -32,43 +32,16 @@
import groupMemberList from '../components/groupMembersList.vue'
import ZPaging from '@/uni_modules/z-paging/components/z-paging/z-paging.vue'
import useZPaging from '@/uni_modules/z-paging/components/z-paging/js/hooks/useZPaging.js'
-import { onLoad } from '@dcloudio/uni-app'
-import { ref, reactive } from 'vue'
-import { ServeQueryGroupMembers } from '@/api/chatSettings/index'
+import { ref, computed, reactive } from 'vue'
+import { useDialogueStore } from '@/store'
-const state = reactive({
- memberList: [], //人员列表
+const dialogueStore = useDialogueStore()
+const talkParams = reactive({
+ memberList: computed(() => dialogueStore.members),
})
const zPaging = ref()
useZPaging(zPaging)
-
-onLoad((options) => {
- console.log(options)
- if (options.groupId) {
- state.groupId = Number(options.groupId)
- getGroupMembers()
- }
-})
-
-//查看群成员
-const getGroupMembers = () => {
- let params = {
- group_id: state.groupId,
- }
- console.log(params)
- const resp = ServeQueryGroupMembers(params)
- console.log(resp)
- resp.then(({ code, data }) => {
- console.log(data)
- if (code == 200) {
- zPaging.value?.completeByNoMore(data.items, true)
- } else {
- }
- })
-
- resp.catch(() => {})
-}
diff --git a/src/pages/chatSettings/index.vue b/src/pages/chatSettings/index.vue
index b36bf13..7719454 100644
--- a/src/pages/chatSettings/index.vue
+++ b/src/pages/chatSettings/index.vue
@@ -27,7 +27,7 @@
class="base-info-tag"
:style="{
borderColor:
- groupTypeMapping[state?.groupInfo?.group_type]
+ groupTypeMapping[groupParams?.groupInfo?.group_type]
?.result_type_color,
}"
>
@@ -35,7 +35,7 @@
class="text-[24rpx] font-medium"
:style="{
color:
- groupTypeMapping[state?.groupInfo?.group_type]
+ groupTypeMapping[groupParams?.groupInfo?.group_type]
?.result_type_color,
}"
>
@@ -58,7 +58,7 @@
@toManagePage="toManagePage"
>
@@ -76,14 +76,7 @@
-
+
dialogueStore.online),
keyboard: computed(() => dialogueStore.keyboard),
num: computed(() => dialogueStore.members.length),
+ memberList: computed(() => dialogueStore.members),
})
const topItems = computed(() => talkStore.topItems)
const disturbItems = computed(() => talkStore.disturbItems)
-
+const groupStore = useGroupStore()
+const groupParams = reactive({
+ groupInfo: computed(() => groupStore.groupInfo),
+})
const state = reactive({
chatGroupMembers: [], //群成员form-item
chatGroupInfos: [], //群聊信息
@@ -192,19 +193,17 @@ const state = reactive({
chatSettings: [], //群聊设置
chatManagement: [], //群聊管理
groupId: '', //群id
- groupInfo: null, //群信息
- memberList: [], //群成员列表
groupNotice: [], //群公告
sessionId: '', //会话id
})
-onLoad((options) => {
+onLoad(async (options) => {
console.log(talkParams)
if (options.groupId) {
console.log(options.groupId)
state.groupId = Number(options.groupId)
- getGroupInfo()
- getGroupMembers()
+ await groupStore.setGroupInfo()
+ updateGroupInfos()
getGroupNotice()
}
if (options.sessionId) {
@@ -287,19 +286,19 @@ onMounted(() => {
//群头像
const groupAvatar = computed(() => {
return (
- state?.groupInfo?.avatar ||
- groupTypeMapping[state?.groupInfo?.group_type]?.defaultImg
+ groupParams?.groupInfo?.avatar ||
+ groupTypeMapping[groupParams?.groupInfo?.group_type]?.defaultImg
)
})
//群名称
const groupName = computed(() => {
- return state?.groupInfo?.group_name
+ return groupParams?.groupInfo?.group_name
})
//群人数
const groupNum = computed(() => {
- return state?.groupInfo?.group_num || 0
+ return groupParams?.groupInfo?.group_num || 0
})
// 映射表-根据groupType设置对应值
@@ -329,46 +328,9 @@ const groupTypeMapping = {
//群类型
const groupType = computed(() => {
- return groupTypeMapping[state?.groupInfo?.group_type]?.result_type || ''
+ return groupTypeMapping[groupParams?.groupInfo?.group_type]?.result_type || ''
})
-//查询群信息
-const getGroupInfo = () => {
- let params = {
- group_id: state.groupId,
- }
- const resp = ServeQueryGroupInfo(params)
- console.log(resp)
- resp.then(({ code, data }) => {
- console.log(data)
- if (code == 200) {
- state.groupInfo = data
- updateGroupInfos()
- } else {
- }
- })
-
- resp.catch(() => {})
-}
-
-//查看群成员
-const getGroupMembers = () => {
- let params = {
- group_id: state.groupId,
- }
- const resp = ServeQueryGroupMembers(params)
- console.log(resp)
- resp.then(({ code, data }) => {
- console.log(data)
- if (code == 200) {
- state.memberList = data.items
- } else {
- }
- })
-
- resp.catch(() => {})
-}
-
//群公告查询
const getGroupNotice = () => {
let params = {
@@ -466,6 +428,10 @@ const toManagePage = (label) => {
uni.navigateTo({
url: '/pages/chatSettings/groupManage/manageGroupSilence',
})
+ } else if (label === t('chat.settings.groupAdmin')) {
+ uni.navigateTo({
+ url: '/pages/chatSettings/groupManage/manageGroupAdmin',
+ })
}
}
}
diff --git a/src/pages/search/components/searchList.vue b/src/pages/search/components/searchList.vue
index fb6401d..cc086fb 100644
--- a/src/pages/search/components/searchList.vue
+++ b/src/pages/search/components/searchList.vue
@@ -22,19 +22,11 @@
>
-
+