From 34fd0d5d4ce512c3bf621cbb07c92450cd377ef7 Mon Sep 17 00:00:00 2001 From: huxuejian Date: Tue, 27 Jan 2026 17:09:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=A1=B5=E9=9D=A2=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/empty-data.vue | 9 +- hooks/useInfoCheck.js | 19 + pages.json | 30 +- pages/login/login.vue | 11 +- pages/message/message.vue | 48 +- pages/work/service/contact-service.vue | 25 + pages/work/team/invite/invite-patient.vue | 152 +++ pages/work/team/invite/invite-teammate.vue | 3 + pages/work/team/invite/rename-popup.vue | 62 + pages/work/team/list/team-list.vue | 76 ++ pages/work/work.vue | 19 +- routes/index.js | 16 + store/account.js | 22 +- uni_modules/Sansnn-uQRCode/LICENSE.md | 201 +++ uni_modules/Sansnn-uQRCode/README.md | 392 ++++++ uni_modules/Sansnn-uQRCode/changelog.md | 12 + uni_modules/Sansnn-uQRCode/common/cache.js | 1 + uni_modules/Sansnn-uQRCode/common/queue.js | 41 + .../Sansnn-uQRCode/common/types/cache.d.ts | 3 + .../Sansnn-uQRCode/common/types/queue.d.ts | 4 + .../components/u-qrcode/u-qrcode.vue | 1131 ++++++++++++++++ .../components/uqrcode/uqrcode.vue | 1131 ++++++++++++++++ .../js_sdk/gcanvas/bridge/bridge-weex.js | 241 ++++ .../context-2d/FillStyleLinearGradient.js | 18 + .../gcanvas/context-2d/FillStylePattern.js | 8 + .../context-2d/FillStyleRadialGradient.js | 17 + .../gcanvas/context-2d/RenderingContext.js | 666 +++++++++ .../gcanvas/context-webgl/ActiveInfo.js | 11 + .../js_sdk/gcanvas/context-webgl/Buffer.js | 21 + .../gcanvas/context-webgl/Framebuffer.js | 21 + .../js_sdk/gcanvas/context-webgl/GLenum.js | 298 +++++ .../js_sdk/gcanvas/context-webgl/GLmethod.js | 142 ++ .../js_sdk/gcanvas/context-webgl/GLtype.js | 23 + .../js_sdk/gcanvas/context-webgl/Program.js | 21 + .../gcanvas/context-webgl/Renderbuffer.js | 21 + .../gcanvas/context-webgl/RenderingContext.js | 1191 +++++++++++++++++ .../js_sdk/gcanvas/context-webgl/Shader.js | 22 + .../context-webgl/ShaderPrecisionFormat.js | 11 + .../js_sdk/gcanvas/context-webgl/Texture.js | 22 + .../gcanvas/context-webgl/UniformLocation.js | 22 + .../gcanvas/context-webgl/classUtils.js | 3 + .../js_sdk/gcanvas/env/canvas.js | 74 + .../js_sdk/gcanvas/env/image.js | 96 ++ .../Sansnn-uQRCode/js_sdk/gcanvas/env/tool.js | 24 + .../Sansnn-uQRCode/js_sdk/gcanvas/index.js | 39 + .../Sansnn-uQRCode/js_sdk/uqrcode/uqrcode.js | 34 + uni_modules/Sansnn-uQRCode/package.json | 79 ++ utils/api.js | 4 +- 48 files changed, 6476 insertions(+), 61 deletions(-) create mode 100644 hooks/useInfoCheck.js create mode 100644 pages/work/service/contact-service.vue create mode 100644 pages/work/team/invite/invite-patient.vue create mode 100644 pages/work/team/invite/invite-teammate.vue create mode 100644 pages/work/team/invite/rename-popup.vue create mode 100644 pages/work/team/list/team-list.vue create mode 100644 uni_modules/Sansnn-uQRCode/LICENSE.md create mode 100644 uni_modules/Sansnn-uQRCode/README.md create mode 100644 uni_modules/Sansnn-uQRCode/changelog.md create mode 100644 uni_modules/Sansnn-uQRCode/common/cache.js create mode 100644 uni_modules/Sansnn-uQRCode/common/queue.js create mode 100644 uni_modules/Sansnn-uQRCode/common/types/cache.d.ts create mode 100644 uni_modules/Sansnn-uQRCode/common/types/queue.d.ts create mode 100644 uni_modules/Sansnn-uQRCode/components/u-qrcode/u-qrcode.vue create mode 100644 uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/bridge/bridge-weex.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-2d/FillStyleLinearGradient.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-2d/FillStylePattern.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-2d/FillStyleRadialGradient.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-2d/RenderingContext.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/ActiveInfo.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/Buffer.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/Framebuffer.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/GLenum.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/GLmethod.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/GLtype.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/Program.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/Renderbuffer.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/RenderingContext.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/Shader.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/ShaderPrecisionFormat.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/Texture.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/UniformLocation.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/context-webgl/classUtils.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/env/canvas.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/env/image.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/env/tool.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/gcanvas/index.js create mode 100644 uni_modules/Sansnn-uQRCode/js_sdk/uqrcode/uqrcode.js create mode 100644 uni_modules/Sansnn-uQRCode/package.json diff --git a/components/empty-data.vue b/components/empty-data.vue index c800ff2..2abbac3 100644 --- a/components/empty-data.vue +++ b/components/empty-data.vue @@ -1,6 +1,6 @@ @@ -22,4 +22,9 @@ const props = defineProps({ }) const style = computed(() => `width: ${props.size}rpx;height:${props.size}rpx`) - \ No newline at end of file + + \ No newline at end of file diff --git a/hooks/useInfoCheck.js b/hooks/useInfoCheck.js new file mode 100644 index 0000000..d741127 --- /dev/null +++ b/hooks/useInfoCheck.js @@ -0,0 +1,19 @@ +import { storeToRefs } from 'pinia'; +import useAccountStore from "@/store/account.js"; +import { confirm } from '@/utils/widget'; + +export default function useInfoCheck() { + + const { doctorInfo } = storeToRefs(useAccountStore()); + + function withInfo(fn) { + return async (...args) => { + if (!doctorInfo.value || !doctorInfo.value.anotherName) { + await confirm('请先完善您的个人信息,方可使用该功能!', { cancelText: '再等等', confirmText: '去完善' }) + return uni.navigateTo({ url: '/pages/work/profile' }); + } + return fn(...args); + } + } + return { withInfo } +} \ No newline at end of file diff --git a/pages.json b/pages.json index 55a5b8a..30e5735 100644 --- a/pages.json +++ b/pages.json @@ -13,12 +13,6 @@ "enablePullDownRefresh": false } }, - { - "path": "pages/message/common-phrases", - "style": { - "navigationBarTitleText": "常用语" - } - }, { "path": "pages/work/work", "style": { @@ -60,6 +54,30 @@ "style": { "navigationBarTitleText": "授权登录" } + }, + { + "path": "pages/work/team/invite/invite-patient", + "style": { + "navigationBarTitleText": "邀请患者" + } + }, + { + "path": "pages/work/team/invite/invite-teammate", + "style": { + "navigationBarTitleText": "邀请成员" + } + }, + { + "path": "pages/work/team/list/team-list", + "style": { + "navigationBarTitleText": "我的团队" + } + }, + { + "path": "pages/work/service/contact-service", + "style": { + "navigationBarTitleText": "联系企微客服" + } } ], "globalStyle": { diff --git a/pages/login/login.vue b/pages/login/login.vue index 73fb316..d339408 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -5,12 +5,12 @@ 生命全周期健康管理伙伴 - - @@ -69,8 +69,9 @@ function toHome() { async function getPhoneNumber(e) { const phoneCode = e && e.detail && e.detail.code; - if (e && !phoneCode) return; + // if (e && !phoneCode) return; const res = await login(phoneCode); + if (res && redirectUrl.value) { await attempToPage(redirectUrl.value); } else if (res && !(doctorInfo.value && doctorInfo.value.anotherName)) { diff --git a/pages/message/message.vue b/pages/message/message.vue index 0cacc4d..d18b739 100644 --- a/pages/message/message.vue +++ b/pages/message/message.vue @@ -365,36 +365,36 @@ onLoad(() => { }); // 页面显示 -onShow(async () => { - try { - // 初始化IM - const imReady = await initIM(); - if (!imReady) { - console.error("IM初始化失败"); - return; - } +// onShow(async () => { +// try { +// // 初始化IM +// const imReady = await initIM(); +// if (!imReady) { +// console.error("IM初始化失败"); +// return; +// } - // 先加载初始会话列表 - await loadConversationList(); +// // 先加载初始会话列表 +// await loadConversationList(); - // 再设置监听器,后续通过事件更新列表 - setupConversationListener(); - } catch (error) { - console.error("页面初始化失败:", error); - uni.showToast({ - title: "初始化失败,请重试", - icon: "none", - }); - } -}); +// // 再设置监听器,后续通过事件更新列表 +// setupConversationListener(); +// } catch (error) { +// console.error("页面初始化失败:", error); +// uni.showToast({ +// title: "初始化失败,请重试", +// icon: "none", +// }); +// } +// }); // 页面隐藏 onHide(() => { // 移除消息监听 - if (globalTimChatManager) { - globalTimChatManager.setCallback("onConversationListUpdated", null); - globalTimChatManager.setCallback("onMessageReceived", null); - } + // if (globalTimChatManager) { + // globalTimChatManager.setCallback("onConversationListUpdated", null); + // globalTimChatManager.setCallback("onMessageReceived", null); + // } }); diff --git a/pages/work/service/contact-service.vue b/pages/work/service/contact-service.vue new file mode 100644 index 0000000..58af50d --- /dev/null +++ b/pages/work/service/contact-service.vue @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/pages/work/team/invite/invite-patient.vue b/pages/work/team/invite/invite-patient.vue new file mode 100644 index 0000000..8aa8c83 --- /dev/null +++ b/pages/work/team/invite/invite-patient.vue @@ -0,0 +1,152 @@ + + + \ No newline at end of file diff --git a/pages/work/team/invite/invite-teammate.vue b/pages/work/team/invite/invite-teammate.vue new file mode 100644 index 0000000..ab452a4 --- /dev/null +++ b/pages/work/team/invite/invite-teammate.vue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/pages/work/team/invite/rename-popup.vue b/pages/work/team/invite/rename-popup.vue new file mode 100644 index 0000000..d782eba --- /dev/null +++ b/pages/work/team/invite/rename-popup.vue @@ -0,0 +1,62 @@ + + + + + \ No newline at end of file diff --git a/pages/work/team/list/team-list.vue b/pages/work/team/list/team-list.vue new file mode 100644 index 0000000..e7e5e10 --- /dev/null +++ b/pages/work/team/list/team-list.vue @@ -0,0 +1,76 @@ + + + \ No newline at end of file diff --git a/pages/work/work.vue b/pages/work/work.vue index 2274eda..0ad366e 100644 --- a/pages/work/work.vue +++ b/pages/work/work.vue @@ -2,9 +2,9 @@