ZaiZai 1 год назад
Родитель
Сommit
d1fc641a54
2 измененных файлов с 82 добавлено и 25 удалено
  1. 8 0
      src/api/modules/datav/projectdata.js
  2. 74 25
      src/views/home/datav.vue

+ 8 - 0
src/api/modules/datav/projectdata.js

@@ -33,4 +33,12 @@ export default {
             params: form,
         }, false)
     },
+    //工作要点-数据看板
+    async queryWorkFocusDataInfo(form) {
+        return HcApi({
+            url: '/api/blade-attach/workfocus/queryWorkFocusDataInfo',
+            method: 'get',
+            params: form,
+        }, false)
+    },
 }

+ 74 - 25
src/views/home/datav.vue

@@ -12,7 +12,7 @@
                 </div>
                 <div class="hc-datav-search-select hc-flex w-full">
                     <div ref="searchRef" class="relative">
-                        <HcDatavSelect v-model="searchForm.year" :datas="yearArr" />
+                        <HcDatavSelect v-model="searchForm.year" :datas="yearArr" :clearable="false" />
                         <HcDatavSelect v-model="pageType" :datas="pageTypeArr" :clearable="false" @change="pageTypeChange" />
                         <template v-if="pageType === '1'">
                             <HcDatavSelect v-model="searchForm.month" :datas="monthArr" placeholder="选择月份" @change="searchChange" />
@@ -21,9 +21,10 @@
                         </template>
                         <HcDatavSelect v-model="searchForm.projectStage" :datas="stageArr" placeholder="项目阶段" @change="searchChange" />
                         <HcDatavSelect v-if="pageType === '1'" v-model="searchForm.projectType" :datas="typeArr" placeholder="项目类型" @change="searchChange" />
-                        <HcDatavSelect v-else v-model="searchForm.quarter" :datas="quarterArr" placeholder="选择季度" />
+                        <HcDatavSelect v-else v-model="searchForm.quarter" :datas="quarterArr" placeholder="选择季度" :clearable="false" @change="searchQuarterChange" />
                     </div>
-                    <div class="date flex-1">截止时间: {{ endDate }}</div>
+                    <div v-if="pageType === '1'" class="date flex-1">截止时间: {{ endDate }}</div>
+                    <div v-if="pageType === '2'" class="date flex-1">截止时间: {{ workInfo.lastDate || '暂无填写记录' }}</div>
                 </div>
             </div>
             <div class="hc-datav-total relative p-[14px]">
@@ -51,7 +52,7 @@
                     <el-col :span="6">
                         <HcDatavCard>
                             <div class="hc-diy-datav-card hc-full hc-flex-center">
-                                <span class="num vertical-sub text-[60px] font-bold" style="color: #ECCF6D">8</span>
+                                <span class="num vertical-sub text-[60px] font-bold" style="color: #ECCF6D">{{ workInfo.stagesCount || 0 }}</span>
                                 <span class="text text-[28px] font-bold">个方面</span>
                             </div>
                         </HcDatavCard>
@@ -59,7 +60,7 @@
                     <el-col :span="6">
                         <HcDatavCard>
                             <div class="hc-diy-datav-card hc-full hc-flex-center">
-                                <span class="num vertical-sub text-[60px] font-bold" style="color: #0BD70E">30</span>
+                                <span class="num vertical-sub text-[60px] font-bold" style="color: #0BD70E">{{ workInfo.taskCount || 0 }}</span>
                                 <span class="text text-[28px] font-bold">项任务</span>
                             </div>
                         </HcDatavCard>
@@ -289,7 +290,7 @@
             <div v-else class="hc-datav-row-column work h-full">
                 <div class="title">工作要点</div>
                 <div class="hc-datav-table relative" style="height: 100%;">
-                    <HcDatavTable :column="workColumn" :datas="workData" />
+                    <HcDatavTable :column="workColumn" :datas="workInfo.tabList" />
                 </div>
             </div>
         </div>
@@ -314,6 +315,7 @@ import HcDatavCharts from './modules/charts.vue'
 import { getArrValue, getObjValue, isNullES } from 'js-fast-way'
 import { getDictionaryData } from '~src/utils/tools'
 import projectApi from '~api/datav/projectdata'
+import dayjs from 'dayjs'
 
 const store = useAppStore()
 
@@ -355,7 +357,12 @@ const tourFinishClose = () => {
 
 //搜索表单
 const pageType = ref('1')
-const searchForm = ref({ year: '2024', month: -1, projectScheduleGrade: '-1', projectStage: null, projectType: null, projectScheduleType:'-1' })
+const searchForm = ref({
+    year: new dayjs().year(), month: -1, projectScheduleGrade: '-1', projectStage: null, projectType: null, projectScheduleType:'-1',
+    quarter: '1',
+})
+
+//下拉框
 const yearArr = [{ id: '2024', name: '2024年' }, { id: '2023', name: '2023年' }, { id: '2022', name: '2022年' }]
 const pageTypeArr = [{ id: '1', name: '项目数据看板' }, { id: '2', name: '工作要点' }]
 const monthArr = ref([])
@@ -382,7 +389,6 @@ const getProStation = async () => {
             name:ele.label,
         })
     })
-
 }
 //获取截止时间
 const endDate = ref('2024年04月08日')
@@ -395,17 +401,39 @@ const getEndDate = async ()=>{
         endDate.value = ''
     }
 }
-//项目
-//搜索条
+
 //页面类型改变
-const pageTypeChange = () => {
+const pageTypeChange = (type) => {
+    console.log(type)
+    //工作要点
+    if (Number(type) === 2) {
+        queryWorkFocusDataInfo()
+    }
+}
 
+//获取工作要点的数据
+const workInfo = ref({})
+const queryWorkFocusDataInfo = async () => {
+    const { year, projectStage } = searchForm.value
+    const { data } = await projectApi.queryWorkFocusDataInfo({
+        year: year,
+        workFocusStage: projectStage || '',
+    })
+    const res = getObjValue(data)
+    res.tabList = getArrValue(res?.tabList)
+    workInfo.value = res
+    console.log(data)
 }
+
 //搜索条件改变1
 const searchChange = ()=>{
-    getDataProjectStat()
-    getDataInvestStat()
-    getScheduleStat()
+    if (pageType.value === '1') {
+        getDataProjectStat()
+        getDataInvestStat()
+        getScheduleStat()
+    } else {
+        queryWorkFocusDataInfo()
+    }
 }
 //获取项目统计
 const projectStat = ref({
@@ -459,7 +487,7 @@ const getDataInvestStat = async ()=>{
         } else {
             chartsData.value = {}
         }
-        
+
     } else {
         investStat.value = {
             oneFinished:0,
@@ -565,18 +593,39 @@ const lagData2 = ref([
 ])
 
 //工作要点表格
-const workColumn = [
-    { key: 'key1', name: '项目阶段' }, { key: 'key2', name: '目标任务' },
-    { key: 'key3', name: '工作内容' }, { key: 'key4', name: '1月' },
-    { key: 'key5', name: '2月' }, { key: 'key6', name: '3月' },
-    { key: 'key7', name: '责任单位' },
-]
-const workData = ref([
-    { key1: 'xxxx', key2: 'xxxx', key3: 'xxxx', key4: 'xxxx', key5: 'xxxx', key6: 'xxxx', key7: 'xxxx' },
-    { key1: 'xxxx', key2: 'xxxx', key3: 'xxxx', key4: 'xxxx', key5: 'xxxx', key6: 'xxxx', key7: 'xxxx' },
-    { key1: 'xxxx', key2: 'xxxx', key3: 'xxxx', key4: 'xxxx', key5: 'xxxx', key6: 'xxxx', key7: 'xxxx' },
+const workColumn = ref([
+    { key: 'workFocusStageName', name: '项目阶段' }, { key: 'targetPlan', name: '目标任务' },
+    { key: 'workPlan', name: '工作内容' }, { key: 'moth1', name: '1月' },
+    { key: 'moth2', name: '2月' }, { key: 'moth3', name: '3月' },
+    { key: 'dutyUnit', name: '责任单位' },
 ])
 
+//季度选择
+const searchQuarterChange = () => {
+    const { quarter } = searchForm.value
+    const newArr = [{ key: 'workFocusStageName', name: '项目阶段' }, { key: 'targetPlan', name: '目标任务' }, { key: 'workPlan', name: '工作内容' }]
+    if (quarter === '1') {
+        newArr.push({ key: 'moth1', name: '1月' })
+        newArr.push({ key: 'moth2', name: '2月' })
+        newArr.push({ key: 'moth3', name: '3月' })
+    } else if (quarter === '2') {
+        newArr.push({ key: 'moth4', name: '4月' })
+        newArr.push({ key: 'moth5', name: '5月' })
+        newArr.push({ key: 'moth6', name: '6月' })
+    } else if (quarter === '3') {
+        newArr.push({ key: 'moth7', name: '7月' })
+        newArr.push({ key: 'moth8', name: '8月' })
+        newArr.push({ key: 'moth9', name: '9月' })
+    } else if (quarter === '4') {
+        newArr.push({ key: 'moth10', name: '10月' })
+        newArr.push({ key: 'moth11', name: '11月' })
+        newArr.push({ key: 'moth12', name: '12月' })
+    }
+    newArr.push({ key: 'dutyUnit', name: '责任单位' })
+    workColumn.value = newArr
+    queryWorkFocusDataInfo()
+}
+
 //跳转到首页
 const toHomePage = () => {
     router.push({ name: store.page })