riku
2025-06-09 38ff09bd2a638bc43a365efe0390cc3510d62e68
src/components/inspection/TaskItem.vue
@@ -1,52 +1,56 @@
<template>
  <!-- <div class="demo-progress border-r-small"> -->
  <el-row justify="end">
    <el-text type="info">{{ name }}</el-text>
  <el-row justify="start">
    <el-text>{{ name }}</el-text>
  </el-row>
  <el-row justify="space-evenly">
    <el-col span="12">
      <div class="v-center">
        <el-text>总量</el-text>
        <el-progress
          :width="100"
          type="circle"
          status="warning"
          :percentage="percentFormat(completetask, totaltask)"
        >
          <template #default="{ percentage }">
            <span class="percentage-value">{{ percentage }}%</span>
            <!-- <span class="percentage-label">{{ finish + '/' + total }}</span> -->
          </template>
        </el-progress>
        <el-text size="small">{{ completetask + '/' + totaltask }}</el-text>
      </div>
    </el-col>
    <el-col span="12" class="flex-bottom">
      <!-- <div>{{ name }}</div> -->
      <!-- <div>{{ planTime }}</div> -->
      <!-- <div>{{ userName }}</div> -->
      <el-row style="gap: 40px" justify="space-between">
        <div class="v-center" v-for="item in count" :key="item.sceneType">
          <el-text size="small">{{ item.sceneType }}</el-text>
          <el-progress
            :width="50"
            :stroke-width="3"
            type="circle"
            status="warning"
            :percentage="percentFormat(item.finish, item.total)"
          >
            <template #default="{ percentage }">
              <span class="percentage-value-small">{{ percentage }}%</span>
            </template>
          </el-progress>
          <el-text size="small">{{ item.finish + '/' + item.total }}</el-text>
          <!-- <div class="percentage-label-small">{{ item.sceneType }}</div> -->
          <!-- <span class="percentage-label-small">{{ item.finish + '/' + item.total }} </span> -->
        </div>
      </el-row>
    </el-col>
  <div>
    <el-text>总量</el-text>
    <el-text size="small">{{ completetask + '/' + totaltask }}</el-text>
    <el-progress
      style="width: 300px"
      type="line"
      status="warning"
      :text-inside="true"
      :stroke-width="18"
      :striped="percentFormat(completetask, totaltask) < 100"
      striped-flow
      :percentage="percentFormat(completetask, totaltask)"
    >
      <template #default="{ percentage }">
        <span class="percentage-value">{{ percentage }}%</span>
      </template>
    </el-progress>
  </div>
  <!-- </el-col> -->
  <!-- <el-col span="12" class="flex-bottom"> -->
  <!-- <div>{{ name }}</div> -->
  <!-- <div>{{ planTime }}</div> -->
  <!-- <div>{{ userName }}</div> -->
  <el-row class="m-t-8">
    <div
      align="center"
      :style="'width: ' + 300 / count.length + 'px'"
      v-for="item in count"
      :key="item.sceneType"
    >
      <el-progress
        :stroke-width="18"
        status="exception"
        :text-inside="true"
        :striped="percentFormat(item.finish, item.total) < 100"
        striped-flow
        :percentage="percentFormat(item.finish, item.total)"
      >
        <template #default="{ percentage }">
          <span class="percentage-value-small">{{ percentage }}%</span>
        </template>
      </el-progress>
      <el-text size="small" truncated>{{ item.sceneType }}</el-text>
      <!-- <el-text size="small">{{ item.finish + '/' + item.total }}</el-text> -->
      <!-- <span class="percentage-value-small">{{ percentFormat(item.finish, item.total) }}%</span> -->
      <!-- <div class="percentage-label-small">{{ item.sceneType }}</div> -->
      <!-- <span class="percentage-label-small">{{ item.finish + '/' + item.total }} </span> -->
    </div>
  </el-row>
  <!-- </div> -->
</template>
<script>
@@ -93,8 +97,12 @@
      if (total == 0) {
        return 0
      } else {
        return Math.round((finish / total) * 100)
        const per = finish / total > 1 ? 1 : finish / total
        return Math.round(per * 100)
      }
    },
    format(percentage) {
      percentage === 100 ? 'Full' : `${percentage}%`
    }
  }
}
@@ -114,8 +122,7 @@
.percentage-value {
  display: block;
  margin-top: 10px;
  font-size: var(--el-font-size-base);
  font-size: var(--el-font-size-small);
}
.percentage-value-small {
  display: block;