wkw il y a 1 mois
Parent
commit
5fd576db94

+ 12 - 10
.env

@@ -8,21 +8,23 @@ VITE_DEV_PATH='https://wallet.angeltokens.io'
 VITE_PRO_PATH='https://wallet.angeltokens.io'
 
 
-# VITE_IM_PATH_FIlE ='https://nim.angeltokens.io/api/v1/file/'
-# VITE_PRO_IM_WSS ='wss://nim.angeltokens.io/api/v1/socket.io'
-# VITE_PRO_IM_PATH='https://nim.angeltokens.io' 
+VITE_IM_PATH_FIlE ='https://nim.angeltokens.io/api/v1/file/'
+VITE_PRO_IM_WSS ='wss://nim.angeltokens.io/api/v1/socket.io'
+VITE_PRO_IM_PATH='https://nim.angeltokens.io' 
 
-# VITE_DEV_IM_PATH='https://nim.angeltokens.io'
+VITE_DEV_IM_PATH='https://nim.angeltokens.io'
 
-VITE_PRO_IM_WSS ='ws://192.168.0.20:8888/api/v1/socket.io'
-VITE_IM_PATH_FIlE ='http://192.168.0.20:8888/api/v1/file/'
-VITE_DEV_IM_PATH='http://192.168.0.20:8888'
+# VITE_PRO_IM_WSS ='ws://192.168.0.20:8888/api/v1/socket.io'
+# VITE_IM_PATH_FIlE ='http://192.168.0.20:8888/api/v1/file/'
+# VITE_DEV_IM_PATH='http://192.168.0.20:8888'
 
-VITE_PRO_IM_PATH='http://192.168.0.20:8888' 
+# VITE_PRO_IM_PATH='http://192.168.0.20:8888' 
 
 
 VITE_PRO_BACKEND_PATH='https://backend.angeltoken.net'
 
 
-
-VITE_VITE_DAPP_BUILD='1'
+# 1是钱包 2是独立im
+VITE_VITE_DAPP_BUILD='1'
+# 用于判断环境,1是测试环境
+VITE_SYS_DEV='0'

+ 1 - 1
capacitor.config.ts

@@ -51,7 +51,7 @@ let config: CapacitorConfig = {
   }
 };
 // 开发服务器配置(热更新用)
-if (['1','2'].includes(process.env.VITE_DAPP_BUILD)  ) {
+if (process.env.VITE_DAPP_DEV == '1') {
   config.server = {
     url: 'https://192.168.0.70:5173',
     cleartext: false,          // 允许HTTP明文通信(仅开发环境)

+ 2 - 1
package.json

@@ -4,7 +4,7 @@
   "private": true,
   "type": "module",
   "scripts": {
-    "dev": "cross-env VITE_DAPP_BUILD=1 vite --host",
+    "dev": "cross-env VITE_DAPP_BUILD=1 VITE_SYS_DEV=1 vite --host",
     "dev:im": "cross-env VITE_DAPP_BUILD=2 vite --host",
     "updata": "node ./updataSetVersion.js",
     "s": "cross-env VITE_DAPP_BUILD=1 npx cap sync android",
@@ -17,6 +17,7 @@
     "build:im": "cross-env VITE_DAPP_BUILD=2 vite build && npm run updata",
     "build:apk": "npm run s && cross-env VITE_DAPP_BUILD=1 npx cap copy  && (cd android && ./gradlew assembleRelease)",
     "build:apk:windows": "npm run s && cross-env VITE_DAPP_BUILD=1 npx cap copy  && (cd android && .\\gradlew assembleRelease)",
+    "build:im:apk:windows": "npm run s && cross-env VITE_DAPP_BUILD=2 npx cap copy  && (cd android && .\\gradlew assembleRelease)",
     "icon": "npx capacitor-assets generate --android",
     "preview": "vite preview"
   },

+ 2 - 0
src/router/index.js

@@ -9,6 +9,8 @@ import { createRouterGuards } from './router.guards.js'
 
 let routes = []
 
+console.log("import.meta.env.VITE_DAPP_BUILD=", import.meta.env.VITE_DAPP_BUILD);
+
 if (import.meta.env.VITE_DAPP_BUILD == "1") {
   routes = [
     ...systemRoutes,

+ 1 - 0
src/stores/modules/walletStore.js

@@ -224,6 +224,7 @@ export const useWalletStore = defineStore("useWalletStore", {
     },
     // 更新当前选中钱包代币余额
     async updateTokenVal() {
+      console.log('111',this.tokenList)
       const findIndex = this.walletList.findIndex(item => item.id === this.id);
       const { data } = await hotTokens({ chain: this.accountName, address: this.account });
       this.tokenList.forEach(el => {

+ 37 - 15
src/stores/modules/webSocketStore.js

@@ -612,12 +612,28 @@ export const useWebSocketStore = defineStore("webSocketStore", {
       if(message.isTemp){
         lastMsg = '[阅后即焚]';
       }
+      // 额外数据
+      const ext = {};
+
+      // 修改群公告信息
+      if (message.nickname) {
+        ext.nickname = message.nickname
+      }
+      if (message.notice) {
+        ext.notice = message.notice
+      }
+      if (message.slience || message.slience === 0) {
+        ext.slience = message.slience
+      }
+      if (message.stick || message.stick === 0) {
+        ext.stick = message.stick
+      }
 
       // 更新
       if(index >= 0){
         systemStore.ImsessionList = systemStore.ImsessionList.map((item, i)=>{
           if(i == index){
-            return {...item, unReadNum: item.unReadNum + 1, message: lastMsg, lastTime: time};
+            return { ...item, ...ext, unReadNum: item.unReadNum + 1, message: lastMsg, lastTime: time};
           }
           return item;
         })
@@ -817,7 +833,7 @@ export const useWebSocketStore = defineStore("webSocketStore", {
         // 恢复会话权限
         this.funRestoreDelAuth(message.to);
         // 刷新/更新会话列表
-        this.needRefreshIm += 1;
+        this.chatRefresh += 1;
       }
     },
     // 删除好友操作
@@ -925,19 +941,25 @@ export const useWebSocketStore = defineStore("webSocketStore", {
       }
     },
     // 群成员列表
-    async fetchGroupMembers(){
-      if (this.toUserInfo.type == 'group'){
-        if (this.groupMembersList[this.toUserInfo.uuid]) {
-          return this.groupMembersList[this.toUserInfo.uuid]
-        }
-        try {
-          const res = await groupList(this.toUserInfo.uuid);
-          this.groupMembersList[this.toUserInfo.uuid] = res.data || [];
-          return res.data
-        } catch (e) {
-          console.error('获取群成员失败', e);
-          return []
-        }
+    async fetchGroupMembers(force = false) {
+      if (this.toUserInfo.type !== 'group') {
+        return []
+      }
+
+      // 如果已有缓存且不强制刷新,直接返回
+      if (!force && this.groupMembersList[this.toUserInfo.uuid]) {
+        return this.groupMembersList[this.toUserInfo.uuid]
+      }
+
+      try {
+        const res = await groupList(this.toUserInfo.uuid)
+        const members = res.data || []
+        // 更新缓存
+        this.groupMembersList[this.toUserInfo.uuid] = members
+        return members
+      } catch (e) {
+        console.error('获取群成员失败', e)
+        return []
       }
     }
   },

+ 3 - 3
src/updater/update.json

@@ -1,7 +1,7 @@
 {
-  "version": "2.0.18",
-  "releaseDate": "2025-08-30 11:09:25",
-  "checksum": "e28177761ba22dd4dd2e3ea9c615e32df19f82171f8ced8c1c7f9d7c20d9d0e0",
+  "version": "2.0.24",
+  "releaseDate": "2025-09-03 14:13:11",
+  "checksum": "ea7f77efa0cffa1bf045413cd300ef61ee9dda427d21c335d69d8b75aaf07a8e",
   "minBinaryVersion": "2.0.0",
   "mandatory": false,
   "upDataDescription": "✨修正一些錯誤。。。。!!!"

+ 4 - 2
src/views/im/chat/components/AtUserList/index.vue

@@ -68,8 +68,10 @@ const open = () => {
 };
 onMounted(async () => {
   // 获取群成员信息
-  let members = await wsStore.fetchGroupMembers()
-  users.value = members.filter(member => member.uuid !== walletStore.account)
+  if(wsStore.toUserInfo.type == 'group'){
+    let members = await wsStore.fetchGroupMembers()
+    users.value = members?.filter(member => member.uuid !== walletStore.account)
+  }
 })
 defineExpose({ open });
 </script>

+ 26 - 7
src/views/im/chat/index.vue

@@ -177,7 +177,6 @@
               v-model="text"
               @focus="onFocus"
               placeholder="输入文本"
-              @keypress="handleKeyPress"
               @keyup.enter="sendMessage"
             />
             <!-- :disabled="deletefriend.includes(wsStore.toUserInfo.uuid)" -->
@@ -696,13 +695,33 @@ const handleTouchEnd = () => {
 };
 
 // 监听输入 @
-const handleKeyPress = (e) => {
-  console.log("监听输入 @", e);
-  if(wsStore.toUserInfo.type == 'user') return;
-  if (e.key === "@") {
-    atList.value.open(); // 打开选人弹窗
+// const handleKeyPress = (e) => {
+//   console.log("监听输入 @", e);
+//   if(wsStore.toUserInfo.type == 'user') return;
+//   if (e.key === "@") {
+//     atList.value.open(); // 打开选人弹窗
+//   }
+// };
+watch(
+  () => text.value,
+  (val) => {
+    if (val.slice(-1) === '@' && wsStore.toUserInfo.type != 'user') {
+      atList.value.open(); // 打开选人弹窗
+    }
   }
-};
+);
+
+// const handleInput = (e) => {
+//   const val = e.target.value || '';
+//   console.log("输入内容", val);
+
+//   if (wsStore.toUserInfo.type === 'user') return;
+
+//   // 判断最后一个字符是不是 @
+//   if (val.slice(-1) === '@') {
+//     atList.value.open(); // 打开选人弹窗
+//   }
+// };
 
 // 选择用户回填输入框
 const onSelectUser = (user) => {

+ 1 - 0
src/views/im/detail/addMember/index.vue

@@ -144,6 +144,7 @@ const submit = async () => {
                     messageType: MsgType.INVITATION_GROUP,
                 };
                 wsStore.sendMessage(message);
+                await wsStore.fetchGroupMembers(true)
                 // systemStore.needRefreshIm = true;
                 // router.push('im')
                 // router.push({

+ 1 - 0
src/views/im/detail/deleteMember/index.vue

@@ -143,6 +143,7 @@
             messageType:REMOVE_GROUP
           };
           wsStore.sendMessage(message);
+          await wsStore.fetchGroupMembers(true)
           // systemStore.needRefreshIm = true;
           // router.push('im')
           // router.push({

+ 2 - 1
src/views/im/detail/index.vue

@@ -205,7 +205,7 @@ const systemStore = useSystemStore();
 const groupMembers = ref([]); //显示部分成员
 const groupMembersNum = ref([]); //全部成员
 const information = reactive({
-    name: wsStore.toUserInfo.nickname,
+    name: wsStore.toUserInfo.nickname || '群聊',
     notice: wsStore.toUserInfo.notice,
     nickname: ''
 });
@@ -382,6 +382,7 @@ const popExit = async () => {
                 wsStore.sendMessage(message);
             }
             systemStore.needRefreshIm = true;
+            await wsStore.fetchGroupMembers(true)
             router.push('im');
         } else {
             showToast(failMsg);

+ 1 - 1
src/views/login/login.vue

@@ -43,7 +43,7 @@ const onSubmit = async (values) => {
         login({ wallet_address: username.value }),
         imLogin({ uuid: username.value }),
     ]);
-
+    walletStore.account = username.value;
     const loginResult = results[0].value;
     const imLoginResult = results[1].value;