fuck wechat reviewer
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"t-icon": "tdesign-miniprogram/icon/icon",
|
||||
"t-empty": "tdesign-miniprogram/empty/empty",
|
||||
"t-navbar": "tdesign-miniprogram/navbar/navbar"
|
||||
},
|
||||
"disableScroll": true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,3 +64,14 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
page {
|
||||
.no-permission {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
background: var(--td-bg-color-page);
|
||||
min-height: 100vh;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// 备忘录页面逻辑
|
||||
import { ToolApi } from "../../../../api/ToolApi";
|
||||
import Permission from "../../../../utils/Permission";
|
||||
|
||||
type EditorInputEvent = WechatMiniprogram.CustomEvent<{
|
||||
html?: string;
|
||||
@@ -16,6 +17,8 @@ interface MemoData {
|
||||
isEditorReady: boolean;
|
||||
contentHtml: string;
|
||||
contentText: string;
|
||||
canUpload: boolean;
|
||||
permissionChecked: boolean;
|
||||
}
|
||||
|
||||
Page({
|
||||
@@ -28,13 +31,19 @@ Page({
|
||||
isSaving: false,
|
||||
isEditorReady: false,
|
||||
contentHtml: "",
|
||||
contentText: ""
|
||||
contentText: "",
|
||||
canUpload: false,
|
||||
permissionChecked: false
|
||||
},
|
||||
editorCtx: null as WechatMiniprogram.EditorContext | null,
|
||||
pendingHtml: "",
|
||||
hasSavedOnLeave: false,
|
||||
hasLoadFailed: false,
|
||||
async onLoad() {
|
||||
const canUpload = await this.ensureUploadPermission();
|
||||
if (!canUpload) {
|
||||
return;
|
||||
}
|
||||
const platform = wx.getSystemInfoSync().platform;
|
||||
const isIOS = platform === "ios";
|
||||
this.setData({ isIOS });
|
||||
@@ -46,11 +55,46 @@ Page({
|
||||
this.hasSavedOnLeave = false;
|
||||
},
|
||||
async onUnload() {
|
||||
if (!this.data.canUpload) {
|
||||
return;
|
||||
}
|
||||
await this.saveMemoOnLeave();
|
||||
},
|
||||
async onHide() {
|
||||
if (!this.data.canUpload) {
|
||||
return;
|
||||
}
|
||||
await this.saveMemoOnLeave();
|
||||
},
|
||||
async ensureUploadPermission(): Promise<boolean> {
|
||||
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"
|
||||
});
|
||||
},
|
||||
bindKeyboardHeightChange() {
|
||||
let keyboardHeight = 0;
|
||||
wx.onKeyboardHeightChange((res) => {
|
||||
@@ -159,4 +203,4 @@ Page({
|
||||
this.setData({ isSaving: false });
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,65 +1,72 @@
|
||||
<!-- 备忘录页面 -->
|
||||
<view class="custom-navbar">
|
||||
<t-navbar class="custom-navbar" title="备忘录" left-arrow placeholder />
|
||||
</view>
|
||||
<view class="memo setting-bg">
|
||||
<view class="content">
|
||||
<view class="container" style="height:{{editorHeight}}px;">
|
||||
<editor
|
||||
id="memo-editor"
|
||||
class="editor"
|
||||
placeholder="{{placeholder}}"
|
||||
bindready="onEditorReady"
|
||||
bindinput="onEditorInput"
|
||||
bindstatuschange="onStatusChange"
|
||||
show-img-size="{{false}}"
|
||||
show-img-toolbar="{{false}}"
|
||||
show-img-resize="{{false}}"
|
||||
/>
|
||||
</view>
|
||||
<view
|
||||
class="toolbar"
|
||||
catchtouchend="format"
|
||||
hidden="{{0 < keyboardHeight ? false : true}}"
|
||||
style="bottom: {{isIOS ? keyboardHeight : 0}}px"
|
||||
>
|
||||
<text
|
||||
class="icon {{formats.header === 2 ? 'active' : ''}}"
|
||||
data-name="header"
|
||||
data-value="{{2}}"
|
||||
>H2</text>
|
||||
<text
|
||||
class="icon {{formats.header === 3 ? 'active' : ''}}"
|
||||
data-name="header"
|
||||
data-value="{{3}}"
|
||||
>H3</text>
|
||||
<t-icon
|
||||
class="icon {{formats.bold ? 'active' : ''}}"
|
||||
name="textformat-bold"
|
||||
data-name="bold"
|
||||
/>
|
||||
<t-icon
|
||||
class="icon {{formats.italic ? 'active' : ''}}"
|
||||
name="textformat-italic"
|
||||
data-name="italic"
|
||||
/>
|
||||
<t-icon
|
||||
class="icon {{formats.underline ? 'active' : ''}}"
|
||||
name="textformat-underline"
|
||||
data-name="underline"
|
||||
/>
|
||||
<t-icon
|
||||
class="icon"
|
||||
name="task"
|
||||
data-name="list"
|
||||
data-value="check"
|
||||
/>
|
||||
<t-icon
|
||||
class="icon {{formats.list === 'bullet' ? 'active' : ''}}"
|
||||
name="bulletpoint"
|
||||
data-name="list"
|
||||
data-value="bullet"
|
||||
/>
|
||||
<block wx:if="{{canUpload}}">
|
||||
<view class="custom-navbar">
|
||||
<t-navbar class="custom-navbar" title="备忘录" left-arrow placeholder />
|
||||
</view>
|
||||
<view class="memo setting-bg">
|
||||
<view class="content">
|
||||
<view class="container" style="height:{{editorHeight}}px;">
|
||||
<editor
|
||||
id="memo-editor"
|
||||
class="editor"
|
||||
placeholder="{{placeholder}}"
|
||||
bindready="onEditorReady"
|
||||
bindinput="onEditorInput"
|
||||
bindstatuschange="onStatusChange"
|
||||
show-img-size="{{false}}"
|
||||
show-img-toolbar="{{false}}"
|
||||
show-img-resize="{{false}}"
|
||||
/>
|
||||
</view>
|
||||
<view
|
||||
class="toolbar"
|
||||
catchtouchend="format"
|
||||
hidden="{{0 < keyboardHeight ? false : true}}"
|
||||
style="bottom: {{isIOS ? keyboardHeight : 0}}px"
|
||||
>
|
||||
<text
|
||||
class="icon {{formats.header === 2 ? 'active' : ''}}"
|
||||
data-name="header"
|
||||
data-value="{{2}}"
|
||||
>H2</text>
|
||||
<text
|
||||
class="icon {{formats.header === 3 ? 'active' : ''}}"
|
||||
data-name="header"
|
||||
data-value="{{3}}"
|
||||
>H3</text>
|
||||
<t-icon
|
||||
class="icon {{formats.bold ? 'active' : ''}}"
|
||||
name="textformat-bold"
|
||||
data-name="bold"
|
||||
/>
|
||||
<t-icon
|
||||
class="icon {{formats.italic ? 'active' : ''}}"
|
||||
name="textformat-italic"
|
||||
data-name="italic"
|
||||
/>
|
||||
<t-icon
|
||||
class="icon {{formats.underline ? 'active' : ''}}"
|
||||
name="textformat-underline"
|
||||
data-name="underline"
|
||||
/>
|
||||
<t-icon
|
||||
class="icon"
|
||||
name="task"
|
||||
data-name="list"
|
||||
data-value="check"
|
||||
/>
|
||||
<t-icon
|
||||
class="icon {{formats.list === 'bullet' ? 'active' : ''}}"
|
||||
name="bulletpoint"
|
||||
data-name="list"
|
||||
data-value="bullet"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
<block wx:elif="{{permissionChecked}}">
|
||||
<view class="no-permission">
|
||||
<t-empty icon="error-circle" description="无权限操作" />
|
||||
</view>
|
||||
</block>
|
||||
|
||||
Reference in New Issue
Block a user