|
@ -1,55 +1,61 @@ |
|
|
<template> |
|
|
<template> |
|
|
<view class="column"> |
|
|
<view class="column"> |
|
|
<view :key="index" v-for="(task, index) in tasks"> |
|
|
<view v-if="tasks && tasks.length"> |
|
|
<view class="flex"> |
|
|
<view :key="index" v-for="(task, index) in tasks"> |
|
|
<TimeStatus :task="task" /> |
|
|
<view class="flex"> |
|
|
|
|
|
<TimeStatus :task="task" /> |
|
|
|
|
|
|
|
|
<view class="flex items-center justify-between flex-1 ml-2 task-column"> |
|
|
<view class="flex items-center justify-between flex-1 ml-2 task-column"> |
|
|
<view>{{ $moment(+task.planStart).format(startTimeFormat) }}</view> |
|
|
<view>{{ $moment(+task.planStart).format(startTimeFormat) }}</view> |
|
|
|
|
|
|
|
|
<!-- 任务功能菜单 --> |
|
|
<!-- 任务功能菜单 --> |
|
|
<TaskTools /> |
|
|
<TaskTools /> |
|
|
|
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
<view class="border-l-2 border-gray-300 plugin"> |
|
|
<view class="border-l-2 border-gray-300 plugin"> |
|
|
<view class="ml-3 overflow-hidden shadow-lg task-box"> |
|
|
<view class="ml-3 overflow-hidden shadow-lg task-box"> |
|
|
<u-card |
|
|
<u-card |
|
|
:show-foot="false" |
|
|
:show-foot="false" |
|
|
:show-head="false" |
|
|
:show-head="false" |
|
|
:style="{ height: setHeight(task.panel) }" |
|
|
:style="{ height: setHeight(task.panel) }" |
|
|
@click="onClickTask(+task.planStart)" |
|
|
@click="onClickTask(+task.planStart)" |
|
|
class="h-16" |
|
|
class="h-16" |
|
|
margin="0" |
|
|
margin="0" |
|
|
> |
|
|
v-if="task.plugins && task.plugins.length" |
|
|
<!-- v-if="task.plugins && task.plugins.length" --> |
|
|
> |
|
|
<!-- 任务面板插件 --> |
|
|
<!-- 任务面板插件 --> |
|
|
<view slot="body"> |
|
|
<view slot="body"> |
|
|
<!-- TODO: 逻辑不完善 --> |
|
|
<!-- TODO: 逻辑不完善 --> |
|
|
<view v-if="!task.plugins.length"> |
|
|
<view v-if="!task.plugins.length"> |
|
|
<skeleton :banner="false" :loading="true" :row="2" animate class="mt-2 u-line-2 skeleton"></skeleton> |
|
|
<skeleton :banner="false" :loading="true" :row="4" animate class="mt-2 u-line-2 skeleton"></skeleton> |
|
|
</view> |
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<view class="p-0 u-col-between" v-else> |
|
|
<view class="p-0 u-col-between" v-else> |
|
|
<view :key="pIndex" v-for="(row, pIndex) in task.plugins"> |
|
|
<view :key="pIndex" v-for="(row, pIndex) in task.plugins"> |
|
|
<view class="grid gap-2" v-if="row.length"> |
|
|
<view class="grid gap-2" v-if="row.length"> |
|
|
<Plugin |
|
|
<Plugin |
|
|
:class="getClass(plugin.col, plugin.row)" |
|
|
:class="getClass(plugin.col, plugin.row)" |
|
|
:task="task" |
|
|
:task="task" |
|
|
:key="plugin.pluginTaskId" |
|
|
:key="plugin.pluginTaskId" |
|
|
:plugin-task-id="plugin.pluginTaskId" |
|
|
:plugin-task-id="plugin.pluginTaskId" |
|
|
:plugin-id="plugin.pluginId" |
|
|
:plugin-id="plugin.pluginId" |
|
|
:param="plugin.param" |
|
|
:param="plugin.param" |
|
|
:style-type="styleType || 0" |
|
|
:style-type="styleType || 0" |
|
|
v-for="plugin in row" |
|
|
v-for="plugin in row" |
|
|
/> |
|
|
/> |
|
|
|
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</u-card> |
|
|
</u-card> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
|
|
|
<view v-else class="flex flex-row items-center ml-1"> |
|
|
|
|
|
<u-icon name="plus-circle" color="#2979ff" size="40" class="mr-2"></u-icon> |
|
|
|
|
|
新建任务 |
|
|
|
|
|
</view> |
|
|
<!-- 局部弹框操作栏 --> |
|
|
<!-- 局部弹框操作栏 --> |
|
|
<Tips /> |
|
|
<Tips /> |
|
|
</view> |
|
|
</view> |
|
|