diff --git a/src/components/x-confirm/index.vue b/src/components/x-confirm/index.vue index 943f8a8..1ca153e 100644 --- a/src/components/x-confirm/index.vue +++ b/src/components/x-confirm/index.vue @@ -10,8 +10,10 @@ let onCancel=null const confirm=ref(true) const contentText=ref('') const imageRef=ref('') -const confirmLabel=ref(language('components.confirm.confirmText')) -const cancelLabel=ref(language('components.confirm.cancelText')) +const confirmLabel=ref('确定') +const cancelLabel=ref('取消') +const confirmC=ref('#46299D') +const cancelC=ref('#1A1A1A') const sendCancel=()=>{ confirmState.value=false if (typeof onCancel==='function'){ @@ -24,7 +26,7 @@ const sendConfirm=()=>{ onConfirm() } } -const showConfirm=({content,image,onConfirm:confirm,onCancel:cancel,confirmText,cancelText})=>{ +const showConfirm=({content,image,onConfirm:confirm,onCancel:cancel,confirmText,cancelText,confirmColor,cancelColor})=>{ confirmState.value=true contentText.value=content imageRef.value = image?image:'' @@ -32,6 +34,8 @@ const showConfirm=({content,image,onConfirm:confirm,onCancel:cancel,confirmText, onCancel=cancel confirmLabel.value = confirmText || confirmLabel.value cancelLabel.value = cancelText || cancelLabel.value + confirmC.value = confirmColor || confirmC.value + cancelC.value = cancelColor || cancelC.value } defineExpose({ showConfirm @@ -59,7 +63,7 @@ defineExpose({ :fontSize="32" :height="112" :margin="[0]" - :font-color="'#1A1A1A'" + :font-color="cancelC" :transprent="cancel" text :label="cancelLabel"> @@ -75,7 +79,7 @@ defineExpose({ :transprent="confirm" :height="112" :margin="[0]" - :font-color="'#46299D'" + :font-color="confirmC" text :label="confirmLabel"> diff --git a/src/pages.json b/src/pages.json index 8877684..36e7e2b 100644 --- a/src/pages.json +++ b/src/pages.json @@ -22,6 +22,22 @@ "enablePullDownRefresh":false } }, + { + "path": "pages/creatGroupChat/index", + "type": "page", + "style": { + "navigationStyle": "custom", + "enablePullDownRefresh":false + } + }, + { + "path": "pages/chooseGroupType/index", + "type": "page", + "style": { + "navigationStyle": "custom", + "enablePullDownRefresh":false + } + }, { "path": "pages/chooseChat/index", "type": "page", diff --git a/src/pages/chooseGroupType/index.vue b/src/pages/chooseGroupType/index.vue new file mode 100644 index 0000000..82a1728 --- /dev/null +++ b/src/pages/chooseGroupType/index.vue @@ -0,0 +1,100 @@ + + + diff --git a/src/pages/creatGroupChat/index.vue b/src/pages/creatGroupChat/index.vue new file mode 100644 index 0000000..d84363e --- /dev/null +++ b/src/pages/creatGroupChat/index.vue @@ -0,0 +1,175 @@ + + + diff --git a/src/pages/dialog/index.vue b/src/pages/dialog/index.vue index c78f62a..c779c98 100644 --- a/src/pages/dialog/index.vue +++ b/src/pages/dialog/index.vue @@ -70,7 +70,7 @@
-
+ +
+
+ 撤回该条消息? +
+
+
+ 撤回 +
+
+
+ 取消 +
+
+
@@ -206,6 +227,7 @@ import zu6052 from "@/static/image/chatList/zu6052@2x.png" import zu6053 from "@/static/image/chatList/zu6053@2x.png" import deepBubble from "@/components/deep-bubble/deep-bubble.vue" import {isRevoke } from './menu' +import useConfirm from '@/components/x-confirm/useConfirm.js' @@ -213,6 +235,7 @@ Quill.register('formats/emoji', EmojiBlot) const { getDialogueList, updateZpagingRef, virtualList } = useDialogueListStore() const talkStore = useTalkStore() +const { showConfirm } = useConfirm(); const settingsStore = useSettingsStore() const userStore = useUserStore() const dialogueStore = useDialogueStore() @@ -235,6 +258,8 @@ const talkParams = reactive({ const state = ref({ isOpenEmojiPanel: false, isOpenFilePanel: false, + showWin: false, + onfocusItem: null, }) const handleEmojiPanel = () => { @@ -353,7 +378,7 @@ const isShowCopy = (item) => { default: return false } - + } const selectedMessage = computed(() => { @@ -552,7 +577,14 @@ const actionCite = (item) => { const actionWithdraw = (item) => { console.log('撤回'); - dialogueStore.ApiRevokeRecord(item.msg_id) + state.value.onfocusItem = item + state.value.showWin = true; +} + +const withdrawerConfirm = () => { + dialogueStore.ApiRevokeRecord(state.value.onfocusItem.msg_id) + state.value.onfocusItem = null + state.value.showWin = false; } const actionDelete = (item) => { @@ -603,10 +635,20 @@ const handleDelete = () => { return message.warning('未选择消息') } console.log('删除'); - const msgIds = selectedMessage.value.map(item => item.msg_id) - virtualList.value = virtualList.value.filter(item => !msgIds.includes(item.msg_id)) - dialogueStore.ApiDeleteRecord(msgIds) - clearMultiSelect() + showConfirm({ + content: '确定删除聊天记录', + confirmText:'删除', + confirmColor:'#CF3050', + onConfirm: async () => { + const msgIds = selectedMessage.value.map(item => item.msg_id) + virtualList.value = virtualList.value.filter(item => !msgIds.includes(item.msg_id)) + dialogueStore.ApiDeleteRecord(msgIds) + clearMultiSelect() + }, + onCancel: () => { + } + }) + } @@ -946,4 +988,9 @@ page { z-index: 1; /* 确保 z-index 低于 deepBubble */ } +.divider { + width: 100%; + height: 1rpx; + background-color: #E7E7E7; +} diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index 81069dd..907bb59 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -1,27 +1,74 @@
- +
diff --git a/src/static/image/chatList/cahtPopover.png b/src/static/image/chatList/cahtPopover.png new file mode 100644 index 0000000..fb79ec6 Binary files /dev/null and b/src/static/image/chatList/cahtPopover.png differ diff --git a/src/static/image/chatList/zu3289@2x.png b/src/static/image/chatList/zu3289@2x.png new file mode 100644 index 0000000..ee440a2 Binary files /dev/null and b/src/static/image/chatList/zu3289@2x.png differ diff --git a/src/static/image/chatList/zu6030@2x.png b/src/static/image/chatList/zu6030@2x.png new file mode 100644 index 0000000..5ad34ac Binary files /dev/null and b/src/static/image/chatList/zu6030@2x.png differ diff --git a/src/static/image/chatList/zu6031@2x.png b/src/static/image/chatList/zu6031@2x.png new file mode 100644 index 0000000..514f146 Binary files /dev/null and b/src/static/image/chatList/zu6031@2x.png differ diff --git a/src/static/image/chatList/zu6032@2x.png b/src/static/image/chatList/zu6032@2x.png new file mode 100644 index 0000000..19a1605 Binary files /dev/null and b/src/static/image/chatList/zu6032@2x.png differ diff --git a/src/store/auth/index.js b/src/store/auth/index.js index 7aefa06..47da20d 100644 --- a/src/store/auth/index.js +++ b/src/store/auth/index.js @@ -4,7 +4,7 @@ import {uniStorage} from "@/utils/uniStorage.js" import {ref} from 'vue' export const useAuth = createGlobalState(() => { // const token = useStorage('token', '', uniStorage) - const token = ref('30119d9978a6f3321fb4779c0040e997df4dd0dd0cf6b71119657617d2249ed783f940b0050d5be7e758740ea467afdf3eeb4d28fb5ea234af60ebe51fb218ff6a0563074f3084b41c1bc8dc0733d06bfbb433a8d5a1d13eb6227adbf50a5da566a4cacdbf91899e563f10864fe2acfe9526343f2c27f726448f6cf9ac172a9716f21a7079e22f4ded14f57418364bea07bfd33259ff97ca4c3c4a54cd90e529b1ac523444d29485f9ee637bb0ca5dfdd87125a1161291696084029bc0cc6bbcf690e3d99787d75eabd8906b6f79035c23391abf12bbabf10ab7b1a0ca998c38') + const token = ref('79b5c732d96d2b27a48a99dfd4a5566c43aaa5796242e854ebe3ffc198d6876b9628e7b764d9af65ab5dbb2d517ced88170491b74b048c0ba827c0d3741462cb89dc59ed46653a449af837a8262941ca1430937103230a1e32a1715f569f3efdbe6f8cb8b7b8642bd679668081b9b08f693d1b5be6002d936ec51e1e3e0c4927de9e32ac99a109b326e5d2bda27ec87624bb416ec70d2a95a2e190feeba9f0d6bae8571b3dfe89c824712344759a8f2bff9d70747c52525cf6a5614f9c770bca461a9b9c247b6dca97bcf83bbaf99bb726752c4fe1e9a4aa7de5c4cf3e88a3e480801280d45cdc124f9d8221105d8529c7c268c1251c3477bff5c051043bf980d1ae32bb67035d540ba9325759be69093c01497a2ece6c54d7ba2c2ccd07bb67242ccd7b216049b2afefd767f7269fa45ebb81dff8bec485f539e91611a2908af4407a64e67e6a1cb533d30ae71e630f') const refreshToken = useStorage('refreshToken', '', uniStorage) const userInfo = useStorage('userInfo', {}, uniStorage) const leaderList = useStorage('leaderList', [], uniStorage)