From 301532b5c1cad2c1d45080bfef86579b20486bf5 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 25 十二月 2024 10:33:23 +0800 Subject: [PATCH] 首页调整、考核结果页面调整 --- src/api/platform/check-score.js | 8 ++ src/views/home/examine/index.vue | 4 src/views/home/data-chart/index.vue | 8 +- src/components/RightToolbar/index.vue | 14 +++- src/views/system/check/result/index.vue | 95 ++++++++++++++++++++++--------- src/views/system/check/result/detail/index.vue | 13 ++- src/views/home/work-order/index.vue | 16 ++++- 7 files changed, 110 insertions(+), 48 deletions(-) diff --git a/src/api/platform/check-score.js b/src/api/platform/check-score.js index 8b4d400..77deeb0 100644 --- a/src/api/platform/check-score.js +++ b/src/api/platform/check-score.js @@ -8,6 +8,14 @@ data: data }) } +// 鏌ヨ鑰冩牳绉垎鍗$墖鍒楄〃 +export function barScore(data) { + return request({ + url: '/check/score/bar', + method: 'post', + data: data + }) +} // 鏌ヨ鑰冩牳绉垎鎶樼嚎鍥� export function chartScore(query) { return request({ diff --git a/src/components/RightToolbar/index.vue b/src/components/RightToolbar/index.vue index a56bab7..02213b4 100644 --- a/src/components/RightToolbar/index.vue +++ b/src/components/RightToolbar/index.vue @@ -156,11 +156,15 @@ }) }, delColumn(id, index) { - deleteDynamicColumnById(id).then(res => { - this.$message.success("鍒犻櫎鎴愬姛") - this.getDyColumn(); - this.$emit('refreshHeader'); - }) + if(id) { + deleteDynamicColumnById(id).then(res => { + this.$message.success("鍒犻櫎鎴愬姛") + this.getDyColumn(); + this.$emit('refreshHeader'); + }) + }else { + this.dynamicColumnList.splice(index,1) + } }, dynamicColumnClose() { this.showDynamicColumn = false diff --git a/src/views/home/data-chart/index.vue b/src/views/home/data-chart/index.vue index 7dc8aec..48f1994 100644 --- a/src/views/home/data-chart/index.vue +++ b/src/views/home/data-chart/index.vue @@ -43,6 +43,8 @@ }, methods: { initChart() { + const sortedKeys = Object.keys(this.acitveData.state) + .sort(); // 鎸夌収瀛楃涓茬殑瀛楀吀搴忓閿繘琛屾帓搴� const option = { legend: { right: 'right', @@ -74,13 +76,13 @@ tooltip: {}, xAxis: { type: 'category', - data: Object.keys(this.acitveData.state), + data: sortedKeys, }, yAxis: {}, series: [ { name: '姝e父鏁�', - data: Object.entries(this.acitveData.state).map(([key, value]) => value), + data: sortedKeys.map(key => this.acitveData.state[key]), type: 'line', itemStyle: { color: 'rgba(62, 144, 247, 1)' @@ -88,7 +90,7 @@ }, { name: '寮傚父鏁�', - data: Object.entries(this.acitveData.state2).map(([key, value]) => value), + data: sortedKeys.map(key => this.acitveData.state2[key]), type: 'line', itemStyle: { color: 'rgba(85, 192, 191, 1)' diff --git a/src/views/home/examine/index.vue b/src/views/home/examine/index.vue index 14fed79..cf73564 100644 --- a/src/views/home/examine/index.vue +++ b/src/views/home/examine/index.vue @@ -5,13 +5,13 @@ <div class="card-content"> <div class="title-container"> <h1>鑰冩牳棰勮</h1> - <div class="more-button" @click="$router.push({ path: '/contract/score' })"> + <div class="more-button" @click="$router.push({ path: '/check/result' })"> <span>鏇村</span> <i class="el-icon-arrow-right"></i> </div> </div> - <el-table :data="tableData" height="400"> + <el-table :data="tableData" height="400" empty-text="鏈�杩戜竴鍛ㄦ殏鏃犳暟鎹�"> <el-table-column prop="createTime" label="璀︽姤鏃堕棿" align="center"> </el-table-column> <el-table-column prop="area" label="鍖哄煙" align="center"> diff --git a/src/views/home/work-order/index.vue b/src/views/home/work-order/index.vue index dd29ecf..6fb264f 100644 --- a/src/views/home/work-order/index.vue +++ b/src/views/home/work-order/index.vue @@ -49,6 +49,9 @@ }, methods: { initChart() { + // 瀵� complete 瀵硅薄鐨勯敭杩涜鎺掑簭 + const sortedKeys = Object.keys(this.acitveData.complete) + .sort(); // 鎸夌収瀛楃涓茬殑瀛楀吀搴忓閿繘琛屾帓搴� const option = { legend: { right: 'right', @@ -86,13 +89,17 @@ tooltip: {}, xAxis: { type: 'category', - data: Object.keys(this.acitveData.complete), + data: sortedKeys, + axisLabel: { + interval: 0 // 寮哄埗鏄剧ず鎵�鏈夋爣绛� + }, + sortSeriesData: false }, yAxis: {}, series: [ { name: '瀹屾垚宸ュ崟鏁�', - data: Object.entries(this.acitveData.complete).map(([key, value]) => value), + data: sortedKeys.map(key => this.acitveData.complete[key]), type: 'line', itemStyle: { color: 'rgba(62, 144, 247, 1)' @@ -100,7 +107,7 @@ }, { name: '寰呭畬鎴愬伐鍗曟暟', - data: Object.entries(this.acitveData.waiting).map(([key, value]) => value), + data: sortedKeys.map(key => this.acitveData.waiting[key]), type: 'line', itemStyle: { color: 'rgba(85, 192, 191, 1)' @@ -108,7 +115,7 @@ }, { name: '寰呭鎵瑰伐鍗曟暟', - data: Object.entries(this.acitveData.pending).map(([key, value]) => value), + data: sortedKeys.map(key => this.acitveData.pending[key]), type: 'line', itemStyle: { color: 'rgba(255, 165, 0, 1)' @@ -131,6 +138,7 @@ pending: {} } } + lineChart = echarts.init(this.$refs.chartContent); this.initChart(); this.observe(); diff --git a/src/views/system/check/result/detail/index.vue b/src/views/system/check/result/detail/index.vue index 0c1dd20..1001197 100644 --- a/src/views/system/check/result/detail/index.vue +++ b/src/views/system/check/result/detail/index.vue @@ -344,11 +344,14 @@ }, getAllDay() { - // const date = new Date(); - // const year = date.getFullYear(); - // const month = (date.getMonth() + 1) >= 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1); - // this.date = year + '-' + month; - const currentDate = this.date.split('-'); + let date = this.date + if(!this.date) { + date = new Date(); + const year = date.getFullYear(); + const month = (date.getMonth() + 1) >= 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1); + date = year + '-' + month; + } + const currentDate = date.split('-'); const currentYear = currentDate[0]; const currentMonth = currentDate[1]; const daysInMonth = new Date(currentYear, currentMonth, 0).getDate(); diff --git a/src/views/system/check/result/index.vue b/src/views/system/check/result/index.vue index 4551ab5..4124b07 100644 --- a/src/views/system/check/result/index.vue +++ b/src/views/system/check/result/index.vue @@ -4,12 +4,9 @@ <div style="width: 100%"> <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect" style="margin-bottom: 10px"> - <el-menu-item index="0">鐪佸巺鏈堝害</el-menu-item> - <el-menu-item index="1">鐪佸巺瀛e害</el-menu-item> - <el-menu-item index="2">鍖哄幙鏈堝害</el-menu-item> - <el-menu-item index="3">鍖哄幙瀛e害</el-menu-item> - <el-menu-item index="4">鍏畨閮ㄦ湀搴�</el-menu-item> - <el-menu-item index="5">鍏畨閮ㄥ搴�</el-menu-item> + <el-menu-item index="0">鐪佸巺鑰冩牳</el-menu-item> + <el-menu-item index="1">鍖哄幙鑰冩牳</el-menu-item> + <el-menu-item index="2">鍏畨閮ㄨ�冩牳</el-menu-item> </el-menu> </div> <!-- 瀵煎嚭鎸夐挳 --> @@ -72,6 +69,19 @@ <div class="card-content"> <div class="title-container"> <h1>鑰冩牳鎴愮哗</h1> + <div class="select-container"> + <el-date-picker v-model="date" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd" + type="daterange" + placeholder="閫夋嫨鏃ユ湡" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + @change="dateChange" + @clear="handleClear" + :picker-options="pickerOptions"> + </el-date-picker> + </div> </div> <div class="echart-container"> <div id="barChart" ref="barChart"></div> @@ -121,6 +131,7 @@ import {areaSelect} from '@/api/system/dept'; import {listScore, publishScore} from "@/api/platform/check-score"; import * as echarts from 'echarts'; +import {barScore} from "../../../../api/platform/check-score"; let observer = null; let chart = null; @@ -137,25 +148,25 @@ shortcuts: [{ text: '绗竴瀛e害', onClick(picker) { - picker.$emit('pick', [new Date(new Date().getFullYear() + "-01"), new Date(new Date().getFullYear() + "-03")]); + picker.$emit('pick', [new Date(new Date().getFullYear() + "-01"+ "-01"), new Date(new Date().getFullYear() + "-03"+"-31")]); } }, { text: '绗簩瀛e害', onClick(picker) { - picker.$emit('pick', [new Date(new Date().getFullYear() + "-04"), new Date(new Date().getFullYear() + "-06")]); + picker.$emit('pick', [new Date(new Date().getFullYear() + "-04"+"-01"), new Date(new Date().getFullYear() + "-06"+"-30")]); } }, { text: '绗笁瀛e害', onClick(picker) { - picker.$emit('pick', [new Date(new Date().getFullYear() + "-07"), new Date(new Date().getFullYear() + "-09")]) + picker.$emit('pick', [new Date(new Date().getFullYear() + "-07"+"-01"), new Date(new Date().getFullYear() + "-09"+"-30")]) } }, { text: '绗洓瀛e害', onClick(picker) { - picker.$emit('pick', [new Date(new Date().getFullYear() + "-10"), new Date(new Date().getFullYear() + "-12")]) + picker.$emit('pick', [new Date(new Date().getFullYear() + "-10"+"-01"), new Date(new Date().getFullYear() + "-12"+"-31")]) } }] }, @@ -172,7 +183,7 @@ checkScoreList: [], areaList: [], activeIndex: '0', - date: '', + date: [], company: '', // 瀵煎嚭 exportForm: { @@ -187,13 +198,24 @@ examineTag: null, createTime: null }, + // 鏌ヨ鍙傛暟 + barParams: { + examineTag: null, + createTime: null + }, } }, created() { }, mounted() { this.queryParams.examineTag = this.activeIndex + this.barParams.examineTag = this.activeIndex chart = echarts.init(this.$refs.barChart); + const currentDate = new Date(); + const year = currentDate.getFullYear(); + const month = String(currentDate.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟涓斾繚璇佷袱浣嶆暟 + const day = String(currentDate.getDate()).padStart(2, '0'); // 淇濊瘉涓や綅鏁� + this.date = [`${year}-${month}-${day}`,`${year}-${month}-${day}`]; this.areaSelect() // this.setChartOption(this.checkScoreList); }, @@ -208,6 +230,7 @@ }) }, initEchart() { + const option = { grid: { left: 0, @@ -358,6 +381,7 @@ areaSelect().then(res => { this.areaList = res.data; this.getList(); + this.getChart(); }) }, translateDeptId(deptId) { @@ -397,30 +421,43 @@ handleSelect(key) { this.activeIndex = key; // 鏇存柊褰撳墠婵�娲荤殑鑿滃崟椤� this.queryParams.examineTag = key; + this.barParams.examineTag = key; this.getList(); + this.getChart(); }, - /** 鏌ヨ鑰冩牳鎴愮哗鍒楄〃 */ + dateChange() { + this.getChart(); + }, + handleClear() { + const currentDate = new Date(); + const year = currentDate.getFullYear(); + const month = String(currentDate.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟涓斾繚璇佷袱浣嶆暟 + const day = String(currentDate.getDate()).padStart(2, '0'); // 淇濊瘉涓や綅鏁� + this.barParams.startDate = `${year}-${month}-${day}`; + this.barParams.endDate = `${year}-${month}-${day}`; + this.getChart(); + }, + /** 鑾峰彇鏌辩姸鍥炬暟鎹� */ + getChart() { + this.loading = true; + if(this.date) { + this.barParams.startDate = this.date[0] + this.barParams.endDate = this.date[1] + } + barScore(this.barParams).then(response => { + this.setChartOption(response.data); + this.loading = false; + }); + }, + /** + * 鏌ヨ鑰冩牳鎴愮哗鍒楄〃 + * 鍗$墖鍒楄〃榛樿鏄剧ず褰撳ぉ + * */ getList() { this.loading = true; - // 鑾峰彇褰撳墠鏃ユ湡 - const today = new Date(); - - // 灏嗘棩鏈熷噺鍘讳竴澶� - const yesterday = new Date(today.getTime() - 24 * 60 * 60 * 1000); - - // 鑾峰彇骞淬�佹湀銆佹棩 - const year = yesterday.getFullYear(); - let month = (yesterday.getMonth() + 1).toString().padStart(2, '0'); // 鏈堜唤鏄粠0寮�濮嬬殑锛屾墍浠ュ姞1 - let day = yesterday.getDate().toString().padStart(2, '0'); - - // 鎷兼帴鎴� yyyy-MM-dd 鏍煎紡 - this.queryParams.createTime = `${year}-${month}-${day}` - - console.log(this.queryParams); listScore(this.queryParams).then(response => { this.checkScoreList = response.data; - - this.setChartOption(this.checkScoreList); + // this.setChartOption(this.checkScoreList); this.loading = false; }); }, -- Gitblit v1.8.0