diff --git a/miniprogram/pages/main/journal/editor/index.json b/miniprogram/pages/main/journal/editor/index.json index 3d4a3d4..19bd0e1 100644 --- a/miniprogram/pages/main/journal/editor/index.json +++ b/miniprogram/pages/main/journal/editor/index.json @@ -7,6 +7,7 @@ "t-button": "tdesign-miniprogram/button/button", "t-navbar": "tdesign-miniprogram/navbar/navbar", "t-dialog": "tdesign-miniprogram/dialog/dialog", + "t-empty": "tdesign-miniprogram/empty/empty", "t-radio-group": "tdesign-miniprogram/radio-group/radio-group" } } diff --git a/miniprogram/pages/main/journal/editor/index.less b/miniprogram/pages/main/journal/editor/index.less index c24c5f0..9cf8e69 100644 --- a/miniprogram/pages/main/journal/editor/index.less +++ b/miniprogram/pages/main/journal/editor/index.less @@ -170,3 +170,14 @@ margin-bottom: 24rpx; } } + +page { + .no-permission { + width: 100%; + display: flex; + background: var(--td-bg-color-page); + min-height: 100vh; + align-items: center; + justify-content: center; + } +} diff --git a/miniprogram/pages/main/journal/editor/index.ts b/miniprogram/pages/main/journal/editor/index.ts index 6ecfa46..f09a2ab 100644 --- a/miniprogram/pages/main/journal/editor/index.ts +++ b/miniprogram/pages/main/journal/editor/index.ts @@ -8,6 +8,7 @@ import { JournalType } from "../../../../types/Journal"; import { MediaAttachType, PreviewImageMetadata } from "../../../../types/Attachment"; import IOSize, { Unit } from "../../../../utils/IOSize"; import { JournalApi } from "../../../../api/JournalApi"; +import Permission from "../../../../utils/Permission"; interface JournalEditorData { /** 模式:create 或 edit */ @@ -48,6 +49,10 @@ interface JournalEditorData { deleteDialogVisible: boolean; /** 删除确认文本 */ deleteConfirmText: string; + /** 是否拥有上传权限 */ + canUpload: boolean; + /** 是否已检查权限 */ + permissionChecked: boolean; } Page({ @@ -72,10 +77,16 @@ Page({ }, isAuthLocation: false, deleteDialogVisible: false, - deleteConfirmText: "" + deleteConfirmText: "", + canUpload: false, + permissionChecked: false }, async onLoad(options: any) { + const canUpload = await this.ensureUploadPermission(); + if (!canUpload) { + return; + } // 授权定位 const setting = await wx.getSetting(); wx.setStorageSync("isAuthLocation", setting.authSetting["scope.userLocation"] || false); @@ -116,6 +127,35 @@ Page({ this.getDefaultLocation(); } }, + async ensureUploadPermission(): Promise { + const cached = Permission.getCachedUploadPermission(); + if (cached !== null) { + this.setData({ + canUpload: cached, + permissionChecked: true + }); + if (!cached) { + this.redirectNoPermission(); + return false; + } + return true; + } + const canUpload = await Permission.checkAndCacheUploadPermission(); + this.setData({ + canUpload, + permissionChecked: true + }); + if (!canUpload) { + this.redirectNoPermission(); + return false; + } + return true; + }, + redirectNoPermission() { + wx.switchTab({ + url: "/pages/main/tabs/journal/index" + }); + }, /** 获取默认定位(创建模式) */ getDefaultLocation() { wx.getLocation({ diff --git a/miniprogram/pages/main/journal/editor/index.wxml b/miniprogram/pages/main/journal/editor/index.wxml index cce5006..206adb4 100644 --- a/miniprogram/pages/main/journal/editor/index.wxml +++ b/miniprogram/pages/main/journal/editor/index.wxml @@ -1,108 +1,99 @@ - - 取消 - - - - - 加载中... - - - -