feat: 电子药箱小程序 - 4Tab药品管理

- 电子药箱: 药品库存管理 + 手动录入 + 今日用药打卡
- 药品百科: 搜索 + 分类筛选 + 20种药品静态数据
- 惠教中心: 4条药品使用指南课程
- 我的: 家庭成员信息管理
- 自定义TabBar + navigation-bar组件
- SVG药品分类插图
This commit is contained in:
陈誉午
2026-07-29 11:20:52 +08:00
commit 994b267f5c
683 changed files with 43849 additions and 0 deletions
+100
View File
@@ -0,0 +1,100 @@
// app.ts
import { startSSE, stopSSE } from './utils/server-sent-events'
import { checkUpdate } from './utils/updateManager'
// @ts-ignore
const systemInfo = wx.getWindowInfo();
export { };
App<IAppOption>({
globalData: {
isLogin: false, // 当前是否登录
wasLogin: false, // 之前是否登录过,用来判断是不是 登录状态失效
safeBottom: systemInfo.safeArea.bottom - systemInfo.safeArea.height,
safeTop: systemInfo.safeArea.top * 2,
store: {},
joinedArray: [], //加入的频道,加入了就不会重复加入
sseStore: {
chat: [],
system: [],
product: []
},
isModalShowing: false, //防止有多个登录弹窗打开
},
async onLaunch(props: any) {
wx.removeStorageSync("state");
if (props.query.state) {
wx.setStorageSync("state", props.query.state)
} else {
wx.removeStorageSync("state")
}
// 检查小程序版本更新
checkUpdate();
this.checkLoginState();
startSSE();
},
onHide() {
stopSSE();
},
checkLoginState() {
const openId = wx.getStorageSync("openId");
const unionId = wx.getStorageSync("unionId");
const userId = wx.getStorageSync("userId");
const ok = openId && unionId && userId;
if (!ok) {
// 清理
wx.removeStorageSync("mbuId");
wx.removeStorageSync("userName");
wx.removeStorageSync("openId");
wx.removeStorageSync("unionId");
wx.removeStorageSync("addressId");
wx.removeStorageSync("defualtAddress");
}
// 保存上一次的登录状态,用来判断是否从 已登录 变成 未登录
const prev = this.globalData.isLogin;
this.globalData.isLogin = !!ok;
this.globalData.wasLogin = prev;
return this.globalData.isLogin;
},
login(value: string) {
if (!this.checkLoginState()) {
wx.reLaunch({ url: `/pages/login/login?back=${value}` });
return false;
}
return true;
},
redirectLogin() {
if (!this.checkLoginState()) {
//已有modal在展示,就不展示了
if (this.globalData.isModalShowing) {
return false;
}
this.globalData.isModalShowing = true;
const content = this.globalData.wasLogin
? "登录状态失效,请重新登录!"
: "请登录获取完整服务!";
wx.showModal({
title: "登录提示",
content,
confirmText: "去登录",
success: (options) => {
if (options.confirm) {
wx.navigateTo({ url: "/pages/login/login" });
}
},
complete: () => {
this.globalData.isModalShowing = false;
}
});
return false;
}
return true;
}
});