105 lines
4.9 KiB
Plaintext
105 lines
4.9 KiB
Plaintext
<view class="container">
|
|
<view class="page-header">
|
|
<view class="page-title">书籍管理</view>
|
|
<view class="page-subtitle">列表、导入、预览与读书任务</view>
|
|
</view>
|
|
<view class="card">
|
|
<view class="card-title">书籍列表</view>
|
|
<view class="section-title">状态/关键词</view>
|
|
<view class="row">
|
|
<input class="input" data-key="status" value="{{status}}" bindinput="onInput" />
|
|
<input class="input" data-key="keyword" value="{{keyword}}" bindinput="onInput" />
|
|
</view>
|
|
<view class="section-title">页码/每页</view>
|
|
<view class="row">
|
|
<input class="input" type="number" data-key="page" value="{{page}}" bindinput="onInput" />
|
|
<input class="input" type="number" data-key="pageSize" value="{{pageSize}}" bindinput="onInput" />
|
|
</view>
|
|
<view class="row pagination">
|
|
<view class="badge">页码 {{page || 1}}</view>
|
|
<view class="badge">每页 {{pageSize || 10}}</view>
|
|
</view>
|
|
<view class="section-hint">修改上方页码/每页后点击查询</view>
|
|
<view class="row action-row">
|
|
<button class="btn btn-secondary" bindtap="listBooks">查询</button>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="card">
|
|
<view class="card-title">导入书籍</view>
|
|
<view class="section-title">服务器路径</view>
|
|
<input class="input" data-key="path" value="{{path}}" bindinput="onInput" />
|
|
<view class="section-title">创建人</view>
|
|
<input class="input" data-key="creator" value="{{creator}}" bindinput="onInput" />
|
|
<view class="row action-row">
|
|
<button class="btn btn-secondary" bindtap="importByPath">路径导入</button>
|
|
<button class="btn btn-secondary" bindtap="chooseFile">选择PDF</button>
|
|
<button class="btn" bindtap="uploadPDF">上传导入</button>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="card">
|
|
<view class="card-title">书籍详情/预览</view>
|
|
<view class="section-title">书籍ID/页码</view>
|
|
<view class="row">
|
|
<input class="input" data-key="bookId" value="{{bookId}}" bindinput="onInput" />
|
|
<input class="input" type="number" data-key="bookPage" value="{{bookPage}}" bindinput="onInput" />
|
|
</view>
|
|
<view class="row action-row">
|
|
<button class="btn btn-secondary" bindtap="bookDetail">详情</button>
|
|
<button class="btn btn-secondary" bindtap="previewPage">预览页</button>
|
|
<button class="btn btn-danger" bindtap="deleteBook">删除书籍</button>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="card">
|
|
<view class="card-title">读书任务</view>
|
|
<view class="section-title">书籍ID/任务ID</view>
|
|
<view class="row">
|
|
<input class="input" data-key="taskBookId" value="{{taskBookId}}" bindinput="onInput" placeholder="book_id" />
|
|
<input class="input" data-key="taskId" value="{{taskId}}" bindinput="onInput" placeholder="task_id" />
|
|
</view>
|
|
<view class="section-title">天数/推送时间</view>
|
|
<view class="row">
|
|
<input class="input" type="number" data-key="days" value="{{days}}" bindinput="onInput" />
|
|
<input class="input" data-key="push_times" value="{{push_times}}" bindinput="onInput" placeholder="08:00,20:00" />
|
|
</view>
|
|
<view class="section-title">渠道/邮箱/微信备注</view>
|
|
<view class="row">
|
|
<input class="input" data-key="channel" value="{{channel}}" bindinput="onInput" />
|
|
<input class="input" data-key="email" value="{{email}}" bindinput="onInput" />
|
|
</view>
|
|
<input class="input" data-key="wechat_remark" value="{{wechat_remark}}" bindinput="onInput" placeholder="微信备注" />
|
|
<view class="row action-row">
|
|
<button class="btn btn-secondary" bindtap="listTasks">任务列表</button>
|
|
<button class="btn" bindtap="createTask">创建任务</button>
|
|
<button class="btn btn-secondary" bindtap="updateTask">更新任务</button>
|
|
<button class="btn btn-secondary" bindtap="pushOnce">手动推送</button>
|
|
<button class="btn btn-secondary" bindtap="previewNext">预览下一批</button>
|
|
<button class="btn btn-danger" bindtap="deleteTask">删除任务</button>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="card" wx:if="{{imagePath}}">
|
|
<view class="card-title">预览</view>
|
|
<image class="preview-image" mode="widthFix" src="{{imagePath}}" />
|
|
</view>
|
|
|
|
<view class="card result-card" wx:if="{{result}}">
|
|
<view class="result-header">
|
|
<view class="result-title">结果</view>
|
|
<view class="badge">原始数据</view>
|
|
</view>
|
|
<view class="result-hint">已为你保留完整响应</view>
|
|
<view wx:if="{{resultCards.length}}" class="list">
|
|
<view wx:for="{{resultCards}}" wx:key="label" class="card card--inner list-item">
|
|
<view class="row" style="justify-content: space-between;">
|
|
<view class="module-title">{{item.label}}</view>
|
|
<view class="badge">{{item.value}}</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="result">{{result}}</view>
|
|
</view>
|
|
</view>
|