fuck wechat reviewer

This commit is contained in:
Timi
2026-01-29 14:37:46 +08:00
parent 8269a29100
commit b2cf9572a4
16 changed files with 917 additions and 677 deletions

View File

@@ -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
}
}

View File

@@ -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;
}
}

View File

@@ -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 });
}
}
});
});

View File

@@ -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>