128 lines
3.6 KiB
Plaintext
128 lines
3.6 KiB
Plaintext
|
|
<!-- 任务页面 -->
|
||
|
|
<view class="task-container">
|
||
|
|
<!-- 任务创建区域 -->
|
||
|
|
<view class="task-create">
|
||
|
|
<view class="input-group">
|
||
|
|
<text class="label">任务标题:</text>
|
||
|
|
<input
|
||
|
|
class="task-input"
|
||
|
|
placeholder="请输入任务标题"
|
||
|
|
value="{{taskTitle}}"
|
||
|
|
bindinput="onTitleInput"
|
||
|
|
maxlength="100"
|
||
|
|
/>
|
||
|
|
</view>
|
||
|
|
|
||
|
|
<view class="input-group">
|
||
|
|
<text class="label">任务描述:</text>
|
||
|
|
<textarea
|
||
|
|
class="task-textarea"
|
||
|
|
placeholder="请输入任务描述"
|
||
|
|
value="{{taskDescription}}"
|
||
|
|
bindinput="onDescriptionInput"
|
||
|
|
maxlength="500"
|
||
|
|
auto-height
|
||
|
|
/>
|
||
|
|
</view>
|
||
|
|
|
||
|
|
<view class="input-group">
|
||
|
|
<text class="label">任务类型:</text>
|
||
|
|
<picker
|
||
|
|
bindchange="onTypeChange"
|
||
|
|
value="{{taskTypeIndex}}"
|
||
|
|
range="{{taskTypes}}"
|
||
|
|
range-key="{{'name'}}"
|
||
|
|
>
|
||
|
|
<view class="picker">
|
||
|
|
{{taskTypes[taskTypeIndex].name}}
|
||
|
|
<text class="picker-arrow">▼</text>
|
||
|
|
</view>
|
||
|
|
</picker>
|
||
|
|
</view>
|
||
|
|
|
||
|
|
<view class="input-group">
|
||
|
|
<text class="label">优先级:</text>
|
||
|
|
<picker
|
||
|
|
bindchange="onPriorityChange"
|
||
|
|
value="{{priorityIndex}}"
|
||
|
|
range="{{priorities}}"
|
||
|
|
range-key="{{'name'}}"
|
||
|
|
>
|
||
|
|
<view class="picker">
|
||
|
|
{{priorities[priorityIndex].name}}
|
||
|
|
<text class="picker-arrow">▼</text>
|
||
|
|
</view>
|
||
|
|
</picker>
|
||
|
|
</view>
|
||
|
|
|
||
|
|
<button class="submit-btn" bindtap="submitTask" disabled="{{!canSubmit}}">
|
||
|
|
提交任务
|
||
|
|
</button>
|
||
|
|
</view>
|
||
|
|
|
||
|
|
<!-- 任务列表 -->
|
||
|
|
<view class="task-list">
|
||
|
|
<view class="list-header">
|
||
|
|
<text class="list-title">任务列表</text>
|
||
|
|
<view class="filter-buttons">
|
||
|
|
<button
|
||
|
|
class="filter-btn {{filterStatus === 'all' ? 'active' : ''}}"
|
||
|
|
bindtap="setFilter"
|
||
|
|
data-status="all"
|
||
|
|
>
|
||
|
|
全部
|
||
|
|
</button>
|
||
|
|
<button
|
||
|
|
class="filter-btn {{filterStatus === 'pending' ? 'active' : ''}}"
|
||
|
|
bindtap="setFilter"
|
||
|
|
data-status="pending"
|
||
|
|
>
|
||
|
|
待处理
|
||
|
|
</button>
|
||
|
|
<button
|
||
|
|
class="filter-btn {{filterStatus === 'processing' ? 'active' : ''}}"
|
||
|
|
bindtap="setFilter"
|
||
|
|
data-status="processing"
|
||
|
|
>
|
||
|
|
处理中
|
||
|
|
</button>
|
||
|
|
<button
|
||
|
|
class="filter-btn {{filterStatus === 'completed' ? 'active' : ''}}"
|
||
|
|
bindtap="setFilter"
|
||
|
|
data-status="completed"
|
||
|
|
>
|
||
|
|
已完成
|
||
|
|
</button>
|
||
|
|
</view>
|
||
|
|
</view>
|
||
|
|
|
||
|
|
<scroll-view class="task-scroll" scroll-y="{{true}}">
|
||
|
|
<view wx:if="{{tasks.length === 0}}" class="empty-state">
|
||
|
|
<image src="/assets/images/empty-task.png" mode="aspectFit"></image>
|
||
|
|
<text class="empty-text">暂无任务</text>
|
||
|
|
</view>
|
||
|
|
|
||
|
|
<view wx:else>
|
||
|
|
<task-card
|
||
|
|
wx:for="{{filteredTasks}}"
|
||
|
|
wx:key="id"
|
||
|
|
taskId="{{item.id}}"
|
||
|
|
title="{{item.title}}"
|
||
|
|
description="{{item.description}}"
|
||
|
|
type="{{item.type}}"
|
||
|
|
status="{{item.status}}"
|
||
|
|
priority="{{item.priority}}"
|
||
|
|
createdAt="{{item.createdAt}}"
|
||
|
|
updatedAt="{{item.updatedAt}}"
|
||
|
|
result="{{item.result}}"
|
||
|
|
progress="{{item.progress}}"
|
||
|
|
bind:start="onStartTask"
|
||
|
|
bind:complete="onCompleteTask"
|
||
|
|
bind:retry="onRetryTask"
|
||
|
|
bind:detail="onTaskDetail"
|
||
|
|
bind:cancel="onCancelTask"
|
||
|
|
/>
|
||
|
|
</view>
|
||
|
|
</scroll-view>
|
||
|
|
</view>
|
||
|
|
</view>
|