|
@@ -6,11 +6,15 @@
|
|
|
<HcGradientCard color="green1">
|
|
|
<div class="hc-card-item-sub">
|
|
|
<div class="item-sub-icon">
|
|
|
- <HcIcon name="calendar-todo"/>
|
|
|
+ <HcIcon name="calendar-todo" />
|
|
|
</div>
|
|
|
<div class="item-sub-content">
|
|
|
- <div class="num">{{planOverview.totalPlan ?? 0}}条</div>
|
|
|
- <div class="title">您的任务总计划</div>
|
|
|
+ <div class="num">
|
|
|
+ {{ planOverview.totalPlan ?? 0 }}条
|
|
|
+ </div>
|
|
|
+ <div class="title">
|
|
|
+ 您的任务总计划
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</HcGradientCard>
|
|
@@ -19,11 +23,15 @@
|
|
|
<HcGradientCard color="blue2">
|
|
|
<div class="hc-card-item-sub">
|
|
|
<div class="item-sub-icon">
|
|
|
- <HcIcon name="calendar-check"/>
|
|
|
+ <HcIcon name="calendar-check" />
|
|
|
</div>
|
|
|
<div class="item-sub-content">
|
|
|
- <div class="num">{{planOverview.finishedPlan ?? 0}}条</div>
|
|
|
- <div class="title">已完成计划</div>
|
|
|
+ <div class="num">
|
|
|
+ {{ planOverview.finishedPlan ?? 0 }}条
|
|
|
+ </div>
|
|
|
+ <div class="title">
|
|
|
+ 已完成计划
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</HcGradientCard>
|
|
@@ -32,11 +40,15 @@
|
|
|
<HcGradientCard color="pink1">
|
|
|
<div class="hc-card-item-sub">
|
|
|
<div class="item-sub-icon">
|
|
|
- <HcIcon name="alert" fill/>
|
|
|
+ <HcIcon name="alert" fill />
|
|
|
</div>
|
|
|
<div class="item-sub-content">
|
|
|
- <div class="num">{{planOverview.riskPlan ?? 0}}条</div>
|
|
|
- <div class="title">风险计划</div>
|
|
|
+ <div class="num">
|
|
|
+ {{ planOverview.riskPlan ?? 0 }}条
|
|
|
+ </div>
|
|
|
+ <div class="title">
|
|
|
+ 风险计划
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</HcGradientCard>
|
|
@@ -45,11 +57,15 @@
|
|
|
<HcGradientCard color="purple1">
|
|
|
<div class="hc-card-item-sub">
|
|
|
<div class="item-sub-icon">
|
|
|
- <HcIcon name="time"/>
|
|
|
+ <HcIcon name="time" />
|
|
|
</div>
|
|
|
<div class="item-sub-content">
|
|
|
- <div class="num">{{planOverview.postponePlan ?? 0}}条</div>
|
|
|
- <div class="title">延期计划</div>
|
|
|
+ <div class="num">
|
|
|
+ {{ planOverview.postponePlan ?? 0 }}条
|
|
|
+ </div>
|
|
|
+ <div class="title">
|
|
|
+ 延期计划
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</HcGradientCard>
|
|
@@ -60,26 +76,34 @@
|
|
|
<el-col :span="12">
|
|
|
<HcCardItem ui="hac-card-item">
|
|
|
<template #header>
|
|
|
- <div class="hac-card-title">最新预警信息</div>
|
|
|
+ <div class="hac-card-title">
|
|
|
+ 最新预警信息
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<div class="hac-card-item-table">
|
|
|
- <HcTable ui="no-border" indexName="编号" :column="tableColumn" :datas="tableData"/>
|
|
|
+ <HcTable ui="no-border" index-name="编号" :column="tableColumn" :datas="tableData" />
|
|
|
</div>
|
|
|
</HcCardItem>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<HcCardItem ui="hac-card-item">
|
|
|
<template #header>
|
|
|
- <div class="hac-card-title">通知</div>
|
|
|
+ <div class="hac-card-title">
|
|
|
+ 通知
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<div class="hac-card-item-table">
|
|
|
<el-scrollbar v-if="userInformData.length > 0">
|
|
|
<div v-for="item in userInformData" class="hac-home-notice-item">
|
|
|
- <div class="line-clamp-2 title">{{item.informDetails}}</div>
|
|
|
- <div class="time">{{item.informDate}}</div>
|
|
|
+ <div class="line-clamp-2 title">
|
|
|
+ {{ item.informDetails }}
|
|
|
+ </div>
|
|
|
+ <div class="time">
|
|
|
+ {{ item.informDate }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-scrollbar>
|
|
|
- <HcNoData v-else/>
|
|
|
+ <HcNoData v-else />
|
|
|
</div>
|
|
|
</HcCardItem>
|
|
|
</el-col>
|
|
@@ -87,47 +111,73 @@
|
|
|
|
|
|
<HcCardItem ui="hac-card-item mt-4">
|
|
|
<template #header>
|
|
|
- <div class="hac-card-title">任务统计</div>
|
|
|
+ <div class="hac-card-title">
|
|
|
+ 任务统计
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<template #extra>
|
|
|
- <el-date-picker type="month" v-model="planTime" format="YYYY-MM" value-format="YYYY-MM" style="width: 130px;" @change="planTimeChange"/>
|
|
|
+ <el-date-picker v-model="planTime" type="month" format="YYYY-MM" value-format="YYYY-MM" style="width: 130px;" @change="planTimeChange" />
|
|
|
</template>
|
|
|
<div class="hac-card-item-body">
|
|
|
<el-row :gutter="14">
|
|
|
<el-col :span="4">
|
|
|
<div class="hac-row-total-item">
|
|
|
- <div class="num">{{monthPlan.totalPlan ?? 0}}</div>
|
|
|
- <div class="text">累计任务总数</div>
|
|
|
+ <div class="num">
|
|
|
+ {{ monthPlan.totalPlan ?? 0 }}
|
|
|
+ </div>
|
|
|
+ <div class="text">
|
|
|
+ 累计任务总数
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
<el-col :span="4">
|
|
|
<div class="hac-row-total-item">
|
|
|
- <div class="num">{{monthPlan.unfinishedPlan ?? 0}}</div>
|
|
|
- <div class="text">累计未完成任务</div>
|
|
|
+ <div class="num">
|
|
|
+ {{ monthPlan.unfinishedPlan ?? 0 }}
|
|
|
+ </div>
|
|
|
+ <div class="text">
|
|
|
+ 累计未完成任务
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
<el-col :span="4">
|
|
|
<div class="hac-row-total-item">
|
|
|
- <div class="num">{{monthPlan.cancelPlan ?? 0}}</div>
|
|
|
- <div class="text">累计取消任务</div>
|
|
|
+ <div class="num">
|
|
|
+ {{ monthPlan.cancelPlan ?? 0 }}
|
|
|
+ </div>
|
|
|
+ <div class="text">
|
|
|
+ 累计暂停计划
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
<el-col :span="4">
|
|
|
<div class="hac-row-total-item">
|
|
|
- <div class="num">{{monthPlan.postponePlan ?? 0}}</div>
|
|
|
- <div class="text">累计延期任务</div>
|
|
|
+ <div class="num">
|
|
|
+ {{ monthPlan.postponePlan ?? 0 }}
|
|
|
+ </div>
|
|
|
+ <div class="text">
|
|
|
+ 累计延期任务
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
<el-col :span="4">
|
|
|
<div class="hac-row-total-item">
|
|
|
- <div class="num">{{monthPlan.transferPlan ?? 0}}</div>
|
|
|
- <div class="text">累计转移任务</div>
|
|
|
+ <div class="num">
|
|
|
+ {{ monthPlan.transferPlan ?? 0 }}
|
|
|
+ </div>
|
|
|
+ <div class="text">
|
|
|
+ 累计转移任务
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
<el-col :span="4">
|
|
|
<div class="hac-row-total-item">
|
|
|
- <div class="num">{{monthPlan.notFilledLog ?? 0}}</div>
|
|
|
- <div class="text">累计未填写日志</div>
|
|
|
+ <div class="num">
|
|
|
+ {{ monthPlan.notFilledLog ?? 0 }}
|
|
|
+ </div>
|
|
|
+ <div class="text">
|
|
|
+ 累计未填写日志
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -136,12 +186,14 @@
|
|
|
|
|
|
<HcCardItem ui="hac-card-item mt-4">
|
|
|
<template #header>
|
|
|
- <div class="hac-card-title">计划统计图</div>
|
|
|
+ <div class="hac-card-title">
|
|
|
+ 计划统计图
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<div class="hac-card-item-body">
|
|
|
<div class="hc-row-echarts-box">
|
|
|
- <BarLabelRotation isMonth :datas="planDatas" :legend="{show:false, }" v-if="planDatas.length > 0"/>
|
|
|
- <HcStatus class="hc-home-bar-label-rotation-status" v-else/>
|
|
|
+ <BarLabelRotation v-if="planDatas.length > 0" is-month :datas="planDatas" :legend="{ show: false }" />
|
|
|
+ <HcStatus v-else class="hc-home-bar-label-rotation-status" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</HcCardItem>
|
|
@@ -150,13 +202,13 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import {onActivated, onMounted, ref} from "vue";
|
|
|
-import mainApi from "~api/home/index";
|
|
|
-import BarLabelRotation from "~com/echarts/BarLabelRotation.vue";
|
|
|
-import {getArrValue, getObjValue} from "js-fast-way";
|
|
|
+import { onActivated, onMounted, ref } from 'vue'
|
|
|
+import mainApi from '~api/home/index'
|
|
|
+import BarLabelRotation from '~com/echarts/BarLabelRotation.vue'
|
|
|
+import { getArrValue, getObjValue } from 'js-fast-way'
|
|
|
|
|
|
//时间类
|
|
|
-import dayjs from "dayjs"
|
|
|
+import dayjs from 'dayjs'
|
|
|
import 'dayjs/locale/zh-cn'
|
|
|
dayjs.locale('zh-cn')
|
|
|
|
|
@@ -181,7 +233,7 @@ const getApi = () => {
|
|
|
//项目类型
|
|
|
const planOverview = ref({})
|
|
|
const getPlanOverview = async () => {
|
|
|
- const {error, code, data} = await mainApi.planOverview()
|
|
|
+ const { error, code, data } = await mainApi.planOverview()
|
|
|
//判断状态
|
|
|
if (!error && code === 200) {
|
|
|
planOverview.value = getObjValue(data)
|
|
@@ -192,13 +244,13 @@ const getPlanOverview = async () => {
|
|
|
|
|
|
//最新预警信息
|
|
|
const tableColumn = [
|
|
|
- {key: 'planTaskDesc', name: '任务名称', align: 'left'},
|
|
|
- {key: 'projectName', name: '关联项目', align: 'left'},
|
|
|
- {key: 'planEndTime', name: '完成时间', align: 'left'}
|
|
|
+ { key: 'planTaskDesc', name: '任务名称', align: 'left' },
|
|
|
+ { key: 'projectName', name: '关联项目', align: 'left' },
|
|
|
+ { key: 'planEndTime', name: '完成时间', align: 'left' },
|
|
|
]
|
|
|
const tableData = ref([])
|
|
|
const getTableData = async () => {
|
|
|
- const {error, code, data} = await mainApi.postponePlan()
|
|
|
+ const { error, code, data } = await mainApi.postponePlan()
|
|
|
//判断状态
|
|
|
if (!error && code === 200) {
|
|
|
tableData.value = getArrValue(data)
|
|
@@ -210,7 +262,7 @@ const getTableData = async () => {
|
|
|
//通知数据
|
|
|
const userInformData = ref([])
|
|
|
const getUserInform = async () => {
|
|
|
- const {error, code, data} = await mainApi.getUserInform()
|
|
|
+ const { error, code, data } = await mainApi.getUserInform()
|
|
|
//判断状态
|
|
|
if (!error && code === 200) {
|
|
|
userInformData.value = getArrValue(data)
|
|
@@ -228,8 +280,8 @@ const planTimeChange = () => {
|
|
|
//门户普通权限单月计划统计
|
|
|
const monthPlan = ref({})
|
|
|
const getMonthPlanOverview = async () => {
|
|
|
- const {error, code, data} = await mainApi.monthPlanOverview({
|
|
|
- planDate: planTime.value
|
|
|
+ const { error, code, data } = await mainApi.monthPlanOverview({
|
|
|
+ planDate: planTime.value,
|
|
|
})
|
|
|
//判断状态
|
|
|
if (!error && code === 200) {
|
|
@@ -242,12 +294,12 @@ const getMonthPlanOverview = async () => {
|
|
|
//计划统计图
|
|
|
const initPlanData = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
|
const planDatas = ref([
|
|
|
- {name: '总计划', value: initPlanData},
|
|
|
- {name: '已完成', value: initPlanData},
|
|
|
- {name: '未完成', value: initPlanData},
|
|
|
+ { name: '总计划', value: initPlanData },
|
|
|
+ { name: '已完成', value: initPlanData },
|
|
|
+ { name: '未完成', value: initPlanData },
|
|
|
])
|
|
|
const getMonthOfYearPlanOverview = async () => {
|
|
|
- const {error, code, data} = await mainApi.monthOfYearPlanOverview()
|
|
|
+ const { error, code, data } = await mainApi.monthOfYearPlanOverview()
|
|
|
//判断状态
|
|
|
if (!error && code === 200) {
|
|
|
planDatas.value = [] //先清空数据
|
|
@@ -258,17 +310,17 @@ const getMonthOfYearPlanOverview = async () => {
|
|
|
} else {
|
|
|
//接口没有返回数据,显示全部默认为0的数据
|
|
|
planDatas.value = [
|
|
|
- {name: '总计划', value: initPlanData},
|
|
|
- {name: '已完成', value: initPlanData},
|
|
|
- {name: '未完成', value: initPlanData},
|
|
|
+ { name: '总计划', value: initPlanData },
|
|
|
+ { name: '已完成', value: initPlanData },
|
|
|
+ { name: '未完成', value: initPlanData },
|
|
|
]
|
|
|
}
|
|
|
} else {
|
|
|
//接口没有返回数据(报错或异常时),显示全部默认为0的数据
|
|
|
planDatas.value = [
|
|
|
- {name: '总计划', value: initPlanData},
|
|
|
- {name: '已完成', value: initPlanData},
|
|
|
- {name: '未完成', value: initPlanData},
|
|
|
+ { name: '总计划', value: initPlanData },
|
|
|
+ { name: '已完成', value: initPlanData },
|
|
|
+ { name: '未完成', value: initPlanData },
|
|
|
]
|
|
|
}
|
|
|
}
|