<template>
  <view class="px-3 py-5">
    <view :key="index" v-for="(item, index) in tasks">
      <view class="flex">
        <TimeStatus :content="JSON.stringify(item.process)" :status="item.process" />
        <view class="flex justify-between items-center flex-1 ml-2">
          <view>{{ $moment(+item.planStart).format('MM-DD HH:mm') }} {{ $t.time.formatDuration(item.planDuration) }}</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: setHeight(item.panel) }"
            @click="changeTimeNode(item.planStart)"
            class="h-16"
            margin="0"
          >
            <!-- 任务面板插件 -->
            <view slot="body">
              <skeleton :banner="false" :loading="!item.plugins.length" :row="4" animate class="mt-2 u-line-2 skeleton"></skeleton>
              <view class="p-0 u-col-between">
                <view class="grid grid-cols-3 gap-2 h-36" v-if="item.plugins.length">
                  <Plugin
                    :class="getClass(plugin.col, plugin.row)"
                    :key="pluginIndex"
                    :pluginId="plugin.pluginId"
                    :styleType="styleType"
                    v-for="(plugin, pluginIndex) in item.plugins"
                  />
                </view>
              </view>
              <!-- <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">
                  <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>-->
            </view>
          </u-card>
        </view>
      </view>
    </view>
    <Tips />
  </view>
</template>

<script>
import { mapState, mapMutations } from 'vuex';
import TimeStatus from './TimeStatus.vue';
import Skeleton from '@/components/Skeleton/Skeleton';

export default {
  name: 'TimeBox',
  components: { TimeStatus, Skeleton },
  data() {
    return { currentComponent: '', styleType: 0 };
  },

  computed: mapState('home', ['roleId', 'timeNode', 'timeUnit', 'tasks']),

  created() {},

  methods: {
    ...mapMutations('home', ['setTipsContent', 'setTipsContent', 'setTimeNode']),

    // 设置任务面板高度
    setHeight(panel) {
      if (panel && panel.height) {
        return panel.height + 'px';
      } else {
        return 'auto';
      }
    },

    // 点击任务面板 修改store时间基准点
    changeTimeNode(time) {
      this.setTimeNode(time);
    },

    getClass(col, row) {
      return [`row-span-${row}`, `col-span-${col}`];
    },
  },
};
</script>

<style scoped lang="scss">
.task-box {
  border-radius: 24rpx;
}
</style>
