Эх сурвалжийг харах

fix: 1.群二维码的结果的修改,
2.群生和的更改

suwenjiang 2 сар өмнө
parent
commit
28af371b36

+ 4 - 4
.env.development

@@ -14,17 +14,17 @@ VITE_APP_ENV=development
 # VITE_APP_BASE_URL=http://cilicli.qicp.vip
 
 # 黄雯本地
-# VITE_APP_BASE_URL=http://192.168.1.44:8082/
+VITE_APP_BASE_URL=http://192.168.1.44:8082/
 # 本地socoket
-# VITE_APP_IM_URL=ws://192.168.1.44:8082/system/message
+VITE_APP_IM_URL=ws://192.168.1.44:8082/system/message
 # 花生壳
 # VITE_APP_BASE_URL=http://q9943037p3.goho.co
 # VITE_APP_IM_URL=ws://q9943037p3.goho.co/system/message
 
 # 张维本地
-VITE_APP_BASE_URL=http://192.168.1.73:8082/
+# VITE_APP_BASE_URL=http://192.168.1.73:8082/
 # 本地socoket
-VITE_APP_IM_URL=ws://192.168.1.73:8082/system/message/
+# VITE_APP_IM_URL=ws://192.168.1.73:8082/system/message
 
 # VITE_APP_BASE_URL=http://192.168.1.204:8082
 VITE_APP_EMOJI_API=https://v.xiaoyaotravel.com/emoji/

+ 48 - 26
src/pages/chat/examine.vue

@@ -27,13 +27,24 @@
                   />
 
                   <div class="w-40 h-40 ml-13 mr-12 rounded-full overflow-hidden">
-                    <img class="w-full h-full shrink-0 object-cover" :src="item?.img" alt="" />
+                    <img
+                      v-if="item?.tourUser?.headImageUrl"
+                      class="w-full h-full shrink-0 object-cover"
+                      :src="item?.tourUser.headImageUrl"
+                      alt=""
+                    />
+                    <img
+                      v-else
+                      class="w-full h-full shrink-0 object-cover"
+                      src="~/assets/img/default_avatar.png"
+                      alt=""
+                    />
                   </div>
                 </div>
               </template>
               <template #title>
                 <div class="flex items-center">
-                  <h1 class="text-xl text-black-3">{{ item }}</h1>
+                  <h1 class="text-xl text-black-3">{{ item?.tourUser?.showName }}</h1>
                 </div>
               </template>
             </van-cell>
@@ -54,7 +65,7 @@
         取消
       </van-button>
       <van-button
-        @click="handlePass"
+        @click="handlePass(2)"
         size="large"
         class="font-semibold w-[48%]"
         round
@@ -81,7 +92,7 @@ const loading = ref(false)
 const finished = ref(false)
 const searchString = ref('')
 
-const checkedId = ref(['1877552279941410817'])
+const checkedId = ref([])
 
 const checked = ref([])
 const checkboxRefs = ref([])
@@ -93,12 +104,16 @@ onMounted(() => {
 const addDataList = ref([])
 const filterDataList = ref([])
 
-const toggle = (index) => {
-  // console.log(index)
-  checkboxRefs.value[index].toggle()
+const toggle = (id) => {
+  let index = checked.value.findIndex((el) => el?.id == id)
 
-  console.log(checked.value, 'checked')
-  console.log(checkboxRefs.value, 'checkboxRefs')
+  if (index != -1) {
+    checkedId.value.splice(index, 1)
+  } else {
+    checkedId.value.push(id)
+  }
+  console.log(checkedId.value, 'checkedId.value')
+  checkboxRefs.value[id].toggle()
 }
 
 const search = () => {
@@ -143,26 +158,33 @@ const getList = async () => {
 }
 
 // 通过成员
-async function handlePass() {
-  let { data } = await request('/website/tourGroup/applyIsPass', {
-    query: {
-      id: checkedId.value,
-      isPass: 2 //2 同意 3 不同意
-    }
-  })
+async function handlePass(isPass) {
+  try {
+    let { data } = await request('/website/tourGroup/applyIsPass', {
+      method: 'post',
+      body: {
+        groupId: route.query.groupId,
+        ids: checkedId.value,
+        isPass //2 同意 3 不同意
+      }
+    })
 
-  if (data) {
-    showSuccessToast('审核通过')
-  } else {
-    showSuccessToast('审核失败')
-  }
+    if (data) {
+      navigateTo('/chat/group', {
+        replace: true
+      })
+    }
+  } catch (error) {}
 }
-// 取消
+// 取消 审核
 function handleCancel() {
-  // checked.value = []
-  // navigateTo('/chat/group', {
-  //   replace: true
-  // })
+  if (checked.value.length == 0) {
+    navigateTo('/chat/group', {
+      replace: true
+    })
+  } else {
+    handlePass(3)
+  }
 }
 </script>
 <style lang="scss" scoped></style>

+ 5 - 7
src/pages/chat/group-all.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="w-full h-[100vh]">
-    <ChatHeader title="群成员" />
+    <ChatHeader title="全部群成员" />
     <ChatSearch v-model:searchString="showName" @search="search" />
 
     <ChatEmpty
@@ -97,15 +97,12 @@ const search = () => {
 
   // getList()
 }
-// /website/tourGroup/getGroupInfoAndMemberByGroupId
+
 // 获取群设置的配置信息
 const getList = async () => {
   try {
     loading.value = true
-    let {
-      data
-      // } = await request('/website/tourMember/getTourMemberInfoList', {
-    } = await request('/website/tourMember/getTourMemberInfoList', {
+    let { data } = await request('/website/tourGroup/getGroupInfoAndMemberByGroupId', {
       query: {
         groupId: route.query.groupId
       }
@@ -115,7 +112,8 @@ const getList = async () => {
       searchMember.value = data?.memberList
       groupMember.value = data?.memberList
     } else {
-      showName.value ? (searchMember.value = []) : (groupMember.value = [])
+      searchMember.value = []
+      groupMember.value = []
     }
 
     loading.value = false

+ 4 - 3
src/pages/chat/group-member.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="w-full h-[100vh]">
-    <ChatHeader title="群成员" />
+    <ChatHeader title="移除群成员" />
     <ChatSearch v-model:searchString="showName" @search="search" />
 
     <ChatEmpty
@@ -28,14 +28,14 @@
             {{ item?.showName }}
           </p>
         </van-col>
-        <van-col span="4" class="mb-12 mr-10" @click="navigateTo('/chat/group-add')">
+        <!-- <van-col span="4" class="mb-12 mr-10" @click="navigateTo('/chat/group-add')">
           <div
             class="w-40 h-40 rounded-full flex justify-center items-center bg-[#F3F3F3] border mx-auto overflow-hidden mb-4"
           >
             <van-icon name="plus" size="20" />
           </div>
           <p class="w-full line-clamp-1 lin text-sm text-center text-black-6">添加成员</p>
-        </van-col>
+        </van-col> -->
         <van-col v-if="isRankAndFiler(setData?.groupRole)" span="4 mb-12 mr-10">
           <div
             class="w-40 h-40 rounded-full flex justify-center items-center bg-[#F3F3F3] border mx-auto overflow-hidden mb-4"
@@ -93,6 +93,7 @@ const search = () => {
 
   // getList()
 }
+
 // /website/tourGroup/getGroupInfoAndMemberByGroupId
 // 获取群设置的配置信息
 const getList = async () => {

+ 63 - 31
src/pages/chat/qr-results.vue

@@ -2,12 +2,14 @@
   <div class="w-full h-[100vh]">
     <ChatHeaderBar title="扫码结果" />
     <div class="h-250"></div>
-    <!-- <ChatGroupAvatar class="mx-auto"></ChatGroupAvatar> -->
-    <MultiHeader :size="60" :imgUrls="imgUrls" />
-    <h1 class="w-220 text-center text-black-3 font-semibold text-xl mb-27 mt-16 mx-auto">
-      {{ itemData?.groupName }}
-    </h1>
-    <!-- @click="
+    <template v-if="!qrQueryParmars.overTime && qrQueryParmars.success">
+      <div class="mx-auto">
+        <MultiHeader :size="60" :imgUrls="imgUrls" />
+      </div>
+      <h1 class="w-220 text-center text-black-3 font-semibold text-xl mb-27 mt-16 mx-auto">
+        {{ itemData?.groupName }}
+      </h1>
+      <!-- @click="
          navigateTo({
            path: '/',
            query: {
@@ -15,7 +17,7 @@
            }
          })
       " -->
-    <!-- <van-cell center is-link size="large" :title="itemData?.showName" value="查看群主主页">
+      <!-- <van-cell center is-link size="large" :title="itemData?.showName" value="查看群主主页">
       <template #icon>
         <div class="w-48 h-48 rounded-full overflow-hidden border mr-12">
           <img
@@ -26,7 +28,7 @@
         </div>
       </template>
     </van-cell> -->
-    <!-- <van-cell
+      <!-- <van-cell
       center
       size="large"
       title="群介绍"
@@ -39,8 +41,8 @@
       label="为维护逍遥游良好社区氛围,请遵守《逍遥游社区规范》如群聊疑似违规,可点击举报群聊"
     ></van-cell> -->
 
-    <div class="fixed bottom-0 left-0 w-full box-border pb-40 pt-16 bg-white px-16">
-      <!-- <van-button
+      <div class="fixed bottom-0 left-0 w-full box-border pb-40 pt-16 bg-white px-16">
+        <!-- <van-button
         v-if="loading"
         round
         type="primary"
@@ -51,18 +53,18 @@
         {{ showIsExist ? '立即聊天' : '加入' }}
         {{ chageState(itemData?.codeShowStatus)?.text }}
       </van-button> -->
-      <van-button
-        v-model:loading="loading"
-        round
-        type="primary"
-        block
-        :color="buttonColor"
-        @click="handleQrcode"
-      >
-        {{ buttonText }}
-      </van-button>
+        <van-button
+          v-model:loading="loading"
+          round
+          type="primary"
+          block
+          :color="buttonColor"
+          @click="handleQrcode"
+        >
+          {{ buttonText }}
+        </van-button>
 
-      <!-- <van-button
+        <!-- <van-button
         v-if="itemData?.codeShowStatus == 1"
         round
         type="primary"
@@ -117,10 +119,17 @@
       >
         此群已解散
       </van-button> -->
-    </div>
+      </div>
+    </template>
+
+    <template v-else>
+      <ChatEmpty image="search" :title="'无法识别二维码'" />
+    </template>
   </div>
 </template>
 <script setup>
+import defaultAvatar from '~/assets/img/default_avatar.png'
+
 const route = useRoute()
 
 const userInfoStore = useUserInfoStore()
@@ -129,6 +138,11 @@ const { userInfo } = storeToRefs(userInfoStore)
 const itemData = ref({})
 const imgUrls = ref([])
 const loading = ref(false)
+
+const qrQueryParmars = reactive({
+  success: computed(() => route.query.success), //扫码成功
+  overTime: computed(() => route.query.overTime) //二维码过期与否 true 过期 false 不过期
+})
 // 是否存在
 const showIsExist = ref(false)
 
@@ -158,21 +172,31 @@ async function getGroupInfo() {
 
     if (typeof data == 'object') {
       itemData.value = data
-      // imgUrls.value = data.groupAvatar ? [] : ['~/assets/img/default_avatar.png']
 
-      if (data.bannedStatus) {
-        // showIsExist.value = data?.memberList.some((item) => item?.userId == userInfo.value.userId)
+      data.map((el) => {
+        if (Array.isArray(el?.memberList) && el?.memberList?.length > 0) {
+          imgUrls.value = [...changeHeadImage(el?.userList)]
+        } else {
+          imgUrls.value = [defaultAvatar]
+        }
+      })
 
-        if (showIsExist.value) {
-          buttonText.value = '立即聊天'
-          buttonColor.value = '#FF9300'
+      if (data.bannedStatus) {
+        if (!qrQueryParmars.overTime) {
+          if (showIsExist.value) {
+            buttonText.value = '立即聊天'
+            buttonColor.value = '#FF9300'
+          } else {
+            buttonText.value = '加入'
+            buttonColor.value = '#FF9300'
+          }
         } else {
-          buttonText.value = '加入'
-          buttonColor.value = '#FF9300'
+          buttonText.value = '二维码已过期'
+          buttonColor.value = '#D9D9D9'
         }
       } else {
         buttonText.value = '此群已解散'
-        buttonColor.value = '#FF9300'
+        buttonColor.value = '#D9D9D9'
       }
 
       loading.value = false
@@ -180,6 +204,14 @@ async function getGroupInfo() {
   } catch (error) {}
 }
 
+const changeHeadImage = (headerList) => {
+  let headImageList = headerList
+    .slice(0, 9)
+    .map((el) => (el?.headImageUrl ? el?.headImageUrl : defaultAvatar))
+
+  return headImageList
+}
+
 // const colorList = ['#FF9300', '#FF9300', '#D9D9D9', '#D9D9D9', '#D9D9D9']
 
 // // 切换状态

+ 18 - 18
src/pages/profile/my-news/index.vue

@@ -14,7 +14,7 @@
           v-model:show="showPopover"
           placement="bottom"
           theme="dark"
-          :offset="[5,20]"
+          :offset="[5, 20]"
           :actions="actionsList"
           @select="onSelect"
         >
@@ -75,7 +75,7 @@
                 {{
                   chatList[0]?.lastMessage
                     ? messageContentParse(chatList[0]?.lastMessage?.messageContent)
-                    : ''
+                    : '暂无系统消息'
                 }}
               </p>
             </div>
@@ -136,8 +136,8 @@
               <p class="line-clamp-1 h-20 text-sm text-black-6 leading-3xl">
                 {{
                   chatList[1]?.lastMessage
-                    ? messageShowName(chatList[1]?.lastMessage?.messageContent)
-                    : ''
+                    ? messageContentParse(chatList[1]?.lastMessage?.messageContent)
+                    : '暂无新增关注消息'
                 }}
               </p>
             </div>
@@ -207,7 +207,7 @@
                 {{
                   chatList[2]?.lastMessage
                     ? createTimeSplit(chatList[2]?.lastMessage?.createTime)
-                    : ''
+                    : '暂无互动消息'
                 }}
               </p>
             </div>
@@ -244,10 +244,10 @@
                       ? createTimeSplit(item?.lastMessage?.updateTime)
                       : ''
                   }"
-                    @on-chat-page="goDetails('single', item)"
-                    @on-no-bother="noBother(item)"
-                    @on-is-top="onIsTop(item)"
-                    @on-conv-delete="onIsShow(item)"
+                  @on-chat-page="goDetails('single', item)"
+                  @on-no-bother="noBother(item)"
+                  @on-is-top="onIsTop(item)"
+                  @on-conv-delete="onIsShow(item)"
                 />
               </template>
               <template v-else></template>
@@ -292,10 +292,10 @@
                 ...item,
                 updateTime: item?.lastMessage ? createTimeSplit(item?.lastMessage?.updateTime) : ''
               }"
-                @on-chat-page="goDetails('single', item)"
-                @on-no-bother="noBother(item)"
-                @on-is-top="onIsTop(item)"
-                @on-conv-delete="onIsShow(item)"
+              @on-chat-page="goDetails('single', item)"
+              @on-no-bother="noBother(item)"
+              @on-is-top="onIsTop(item)"
+              @on-conv-delete="onIsShow(item)"
             />
           </template>
         </van-list>
@@ -321,7 +321,7 @@ const actionsList = [
 const userInfoStore = useUserInfoStore()
 const { userInfo } = storeToRefs(userInfoStore)
 
-const chatsStore = useChatsStore();
+const chatsStore = useChatsStore()
 const { chatList, chatListLoading } = storeToRefs(chatsStore)
 
 const showPopover = ref(false)
@@ -447,15 +447,15 @@ const goDetails = (type, item) => {
   switch (type) {
     case 'single': // 单聊消息
       navigateTo({
-        path: '/chat/single', query: {
+        path: '/chat/single',
+        query: {
           getUserId: item?.toUserId,
           groupRemark: item?.groupRemark
         }
       })
-      break;
+      break
     default:
-
-      break;
+      break
   }
 }