Просмотр исходного кода

添加更新提示 & 绑定医生 ID 取值

cc12458 1 год назад
Родитель
Сommit
5abbe113fc
4 измененных файлов с 41 добавлено и 7 удалено
  1. 6 5
      miniprogram/app.ts
  2. 16 0
      miniprogram/lib/wx/update.ts
  3. 9 2
      miniprogram/pages/home/home.ts
  4. 10 0
      miniprogram/utils/route-query.ts

+ 6 - 5
miniprogram/app.ts

@@ -1,4 +1,6 @@
 import { login } from "./lib/logic"
 import { login } from "./lib/logic"
+import { appUpdate } from "./lib/wx/update";
+import { useRouteQuery } from "./utils/route-query";
 // import { Get } from "./lib/request/method";
 // import { Get } from "./lib/request/method";
 
 
 // app.ts
 // app.ts
@@ -10,12 +12,11 @@ App<IAppOption>({
   },
   },
   onLaunch(options: WechatMiniprogram.App.LaunchShowOption) {
   onLaunch(options: WechatMiniprogram.App.LaunchShowOption) {
     console.log('log:AppLaunch-->', options);
     console.log('log:AppLaunch-->', options);
-    
-    const scene = decodeURIComponent(options.query.scene)
-    const params = scene?.split('&').map(item=> item?.split('=')) ?? [];
-    const doctorId = params.find(([key])=> ['ys', 'doctorId'].includes(key))?.[1] ?? ''
+    appUpdate(true);
+    const query = useRouteQuery(options.query.scene);
+    const doctorId = query.ys;
     this.globalData.doctorId = doctorId;
     this.globalData.doctorId = doctorId;
-    wx.setStorageSync('doctorId',doctorId);
+    wx.setStorageSync('doctorId', doctorId);
     login();
     login();
   },
   },
 })
 })

+ 16 - 0
miniprogram/lib/wx/update.ts

@@ -0,0 +1,16 @@
+const updateManager = wx.getUpdateManager();
+export function appUpdate(force = false) {
+  updateManager.onUpdateReady(function () {
+    wx.showModal({
+      title: '更新提示',
+      content: '新版本已经准备好,是否重启应用?',
+      showCancel: !force,
+      success(res) {
+        if (res.confirm) {
+          // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
+          updateManager.applyUpdate()
+        }
+      }
+    })
+  })
+}

+ 9 - 2
miniprogram/pages/home/home.ts

@@ -1,6 +1,8 @@
 import PageContainerBehavior from "../../core/behavior/page-container.behavior";
 import PageContainerBehavior from "../../core/behavior/page-container.behavior";
 import { DraggableSheetBehavior, getDraggableSheetContext } from "../../core/behavior/draggableSheet.behavior";
 import { DraggableSheetBehavior, getDraggableSheetContext } from "../../core/behavior/draggableSheet.behavior";
 import { login } from "../../lib/logic";
 import { login } from "../../lib/logic";
+import { useRouteQuery } from "../../utils/route-query";
+import { appUpdate } from "../../lib/wx/update";
 
 
 const { shared, Easing, timing } = wx.worklet
 const { shared, Easing, timing } = wx.worklet
 const offset = shared(0);
 const offset = shared(0);
@@ -17,7 +19,12 @@ Page({
     PageContainerBehavior,
     PageContainerBehavior,
     DraggableSheetBehavior('.draggable-sheet-wrapper'),
     DraggableSheetBehavior('.draggable-sheet-wrapper'),
   ],
   ],
-  onLoad() {
+  onLoad(options) {
+    appUpdate();
+    
+    const query = useRouteQuery(options.scene!);
+    if (query.ys) wx.setStorageSync('doctorId', query.ys);
+
     this.initFabAnimated();
     this.initFabAnimated();
   },
   },
   onShow() {
   onShow() {
@@ -25,7 +32,7 @@ Page({
     this.load();
     this.load();
   },
   },
   onHide() {
   onHide() {
-    wx.hideShareMenu({menus}).then();
+    wx.hideShareMenu({ menus }).then();
     offset.value = timing(0, { duration: 100, easing: (<any>Easing).linear }, () => { 'worklet' });
     offset.value = timing(0, { duration: 100, easing: (<any>Easing).linear }, () => { 'worklet' });
   },
   },
   onShareAppMessage(opts): WechatMiniprogram.Page.ICustomShareContent {
   onShareAppMessage(opts): WechatMiniprogram.Page.ICustomShareContent {

+ 10 - 0
miniprogram/utils/route-query.ts

@@ -0,0 +1,10 @@
+type Query = Record<string, any>;
+export function useRouteQuery(scene: string): Query {
+  return decodeURIComponent(scene)
+    ?.split('&')
+    .reduce((query, item) => {
+      const [key, value] = item?.split('=') ?? [];
+      if (key) query[key] = value;
+      return query;
+    }, {} as Query) ?? {};
+}