You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
3.2 KiB
84 lines
3.2 KiB
<template>
|
|
<view class="px-3 pb-10">
|
|
<view :key="index" v-for="(item, index) in tasks">
|
|
<view class="flex items-center">
|
|
<TimeStatus :content="JSON.stringify(item.state)" :status="item.state" />
|
|
<view class="flex justify-between flex-1 ml-2">
|
|
<view>任务时间栏</view>
|
|
<view>
|
|
<view class="flex justify-between" style="min-width: 180rpx">
|
|
<u-icon custom-prefix="custom-icon" name="C-bxl-redux" size="34"></u-icon>
|
|
<u-icon custom-prefix="custom-icon" name="attachment" size="42"></u-icon>
|
|
<u-icon custom-prefix="custom-icon" name="moneycollect" size="40"></u-icon>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="border-l-2 border-gray-300 ml-3.5 my-2">
|
|
<view class="ml-4 overflow-hidden shadow-lg task-box">
|
|
<u-card
|
|
:show-foot="false"
|
|
:show-head="false"
|
|
:style="{ height: item.panel.height + 'px' }"
|
|
class="h-16"
|
|
margin="0"
|
|
v-if="item.panel.height"
|
|
>
|
|
<view slot="body">
|
|
<view :key="pluginIndex" class="p-0 u-col-between u-skeleton" v-for="(plugin, pluginIndex) in item.plugins">
|
|
<view :key="p.pluginId" v-for="p in plugin">
|
|
<!-- <component
|
|
:is="$t.plugin.defaults.find(item => item.id === p.pluginId).component"
|
|
:item="item"
|
|
v-if="$t.plugin.defaults.find(item => item.id === p.pluginId)"
|
|
></component>-->
|
|
<p-task-title :item="item" v-if="p.pluginId === 1" />
|
|
<p-task-description :item="item" v-if="p.pluginId === 2" />
|
|
<p-task-duration-delay :item="item" v-if="p.pluginId === 3" />
|
|
<p-task-start-time-delay :item="item" v-if="p.pluginId === 4" />
|
|
<p-deliverable :item="item" v-if="p.pluginId === 5" />
|
|
<p-subtasks :item="item" v-if="p.pluginId === 6" />
|
|
<p-subproject :item="item" v-if="p.pluginId === 7" />
|
|
<p-task-countdown :item="item" v-if="p.pluginId === 8" />
|
|
</view>
|
|
<!-- <view :key="p.pluginId" v-for="p in plugin">
|
|
<text v-if="p.pluginId === 4">这是个基准线</text>
|
|
<component :is="currentComponent"></component>
|
|
<task-title v-if="p.pluginId === 1" />
|
|
<task-description v-if="p.pluginId === 2" />
|
|
<task-duration-delay v-if="p.pluginId === 3" />
|
|
</view>-->
|
|
</view>
|
|
</view>
|
|
</u-card>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<Tips />
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapState, mapMutations } from 'vuex';
|
|
import TimeStatus from './TimeStatus.vue';
|
|
|
|
export default {
|
|
name: 'TimeBox',
|
|
components: { TimeStatus },
|
|
data() {
|
|
return { currentComponent: '' };
|
|
},
|
|
|
|
computed: mapState('home', ['roleId', 'timeNode', 'timeUnit', 'tasks']),
|
|
|
|
created() {},
|
|
|
|
methods: { ...mapMutations('home', ['setTipsContent', 'setTipsContent']) },
|
|
};
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.task-box {
|
|
border-radius: 24rpx;
|
|
}
|
|
</style>
|
|
|