Files
gaoYuJournal/miniprogram/pages/main/tabs/other/index.ts
2026-01-29 11:58:18 +08:00

61 lines
1.2 KiB
TypeScript

import Permission from "../../../../utils/Permission";
type NavItem = {
title: string;
icon: string;
url: string;
requiredUploadPermission: boolean;
};
interface OtherData {
navList: NavItem[];
canUpload: boolean;
}
const baseNavList: NavItem[] = [
{
title: "备忘录",
icon: "task-checked",
url: "/pages/main/other/memo/index",
requiredUploadPermission: true
},
{
title: "专拍",
icon: "face-retouching",
url: "/pages/main/other/portfolio/index",
requiredUploadPermission: false
}
];
function buildNavList(canUpload: boolean): NavItem[] {
if (canUpload) {
return [...baseNavList];
}
return baseNavList.filter((item) => !item.requiredUploadPermission);
}
Page({
data: <OtherData>{
navList: buildNavList(false),
canUpload: false
},
async onShow() {
const cached = Permission.getCachedUploadPermission();
let canUpload = cached;
if (cached === null) {
canUpload = await Permission.checkAndCacheUploadPermission();
}
this.setData({
canUpload: !!canUpload,
navList: buildNavList(!!canUpload)
});
},
onNavTap(e: WechatMiniprogram.BaseEvent) {
const { url } = e.currentTarget.dataset as { url?: string };
if (!url) {
return;
}
wx.navigateTo({ url });
}
});