96 lines
3.8 KiB
Plaintext
96 lines
3.8 KiB
Plaintext
<view class="page">
|
||
|
||
|
||
<view class="head">
|
||
<view class="head-title">{{typeLabel}}<text wx:if="{{groupName}}"> · {{groupName}}</text> · {{periodKey}}</view>
|
||
<view class="head-sub" wx:if="{{message}}">{{message}}</view>
|
||
</view>
|
||
|
||
<scroll-view class="form-scroll" scroll-y>
|
||
<block wx:if="{{loading}}">
|
||
<view class="card skeleton-card">
|
||
<view class="sk sk-line w-90"></view>
|
||
<view class="sk sk-line w-80"></view>
|
||
<view class="sk sk-line w-100"></view>
|
||
<view class="sk-block"></view>
|
||
<view class="sk-block"></view>
|
||
</view>
|
||
<view class="card skeleton-card">
|
||
<view class="sk sk-line w-60"></view>
|
||
<view class="sk-block"></view>
|
||
</view>
|
||
</block>
|
||
|
||
<block wx:elif="{{loadError}}">
|
||
<view class="error-card">
|
||
<view class="error-icon">!</view>
|
||
<view class="error-text">{{loadError}}</view>
|
||
<button class="btn-retry btn-primary" hover-class="btn-hover" bindtap="onRetry">重新加载</button>
|
||
</view>
|
||
</block>
|
||
|
||
<block wx:else>
|
||
<view class="readonly-tip" wx:if="{{!canSubmit}}">{{message || '当前周期不可提交,仅可查看'}}</view>
|
||
|
||
<view class="card">
|
||
<textarea
|
||
class="content {{canSubmit ? '' : 'readonly'}}"
|
||
placeholder="写下计划内容"
|
||
value="{{content}}"
|
||
bindinput="onContentInput"
|
||
maxlength="1000"
|
||
disabled="{{!canSubmit}}"
|
||
></textarea>
|
||
<view class="char-count">{{content.length}}/1000</view>
|
||
|
||
<view class="upload-section">
|
||
<button
|
||
class="upload-btn"
|
||
bindtap="chooseImages"
|
||
hover-class="btn-hover"
|
||
disabled="{{canSubmit === false || uploading || attachments.length >= 4}}"
|
||
>+ {{uploading ? '上传中...' : '添加图片(' + attachments.length + '/4)'}}</button>
|
||
<view class="thumb-grid" wx:if="{{attachments.length}}">
|
||
<view class="thumb-item" wx:for="{{attachments}}" wx:key="*this">
|
||
<image class="thumb" src="{{attachmentThumbs[index]}}" mode="aspectFill" data-index="{{index}}" bindtap="previewImage"></image>
|
||
<view class="thumb-del" data-index="{{index}}" catchtap="removeImage">×</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<button
|
||
class="btn-primary btn-save"
|
||
bindtap="submit"
|
||
hover-class="btn-hover"
|
||
loading="{{submitting}}"
|
||
disabled="{{submitting || !canSubmit}}"
|
||
>{{!canSubmit ? '不可提交' : (checked ? '保存修改' : '保存计划')}}</button>
|
||
<view class="save-hint" wx:if="{{canSubmit && checked}}">保存将覆盖本周期已提交的计划</view>
|
||
</view>
|
||
|
||
<block wx:if="{{planType !== 'weekly'}}">
|
||
<view class="section-title">历史计划</view>
|
||
<view class="card history-card" wx:for="{{history}}" wx:key="id" wx:for-item="his">
|
||
<view class="history-head">{{his.period_key}} · <text class="{{his.status === '未完成' ? 'pending' : ''}}">{{his.status}}</text></view>
|
||
<view class="content-text" wx:if="{{his.content}}">{{his.content}}</view>
|
||
<view class="history-thumbs" wx:if="{{his.thumbSrcs.length}}">
|
||
<image
|
||
wx:for="{{his.thumbSrcs}}"
|
||
wx:for-item="thumbSrc"
|
||
wx:for-index="imgIndex"
|
||
wx:key="*this"
|
||
class="history-thumb"
|
||
src="{{thumbSrc}}"
|
||
mode="aspectFill"
|
||
data-id="{{his.id}}"
|
||
data-index="{{imgIndex}}"
|
||
bindtap="previewHistoryImage"
|
||
></image>
|
||
</view>
|
||
</view>
|
||
<view class="empty" wx:if="{{history.length === 0}}">暂无历史计划</view>
|
||
</block>
|
||
</block>
|
||
</scroll-view>
|
||
</view>
|