From 14c7c489dccd062244410afd27c7235db3d27d63 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 24 四月 2024 16:00:08 +0800 Subject: [PATCH] 考核结果一级页面 --- src/views/system/result/index.vue | 371 ++++++++++++++++++++-------------------------------- 1 files changed, 145 insertions(+), 226 deletions(-) diff --git a/src/views/system/result/index.vue b/src/views/system/result/index.vue index 334fc76..ac0043a 100644 --- a/src/views/system/result/index.vue +++ b/src/views/system/result/index.vue @@ -1,5 +1,12 @@ <template> <div id="warp"> + <div> + <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect" style="margin-bottom: 10px"> + <el-menu-item index="1">鐪佸巺鑰冩牳</el-menu-item> + <el-menu-item index="2">甯傚眬鑰冩牳</el-menu-item> + </el-menu> + </div> + <div class="data-chart-container"> <el-card class="data-card" :body-style="{ height: '100%' }"> <div class="card-content"> @@ -10,239 +17,56 @@ </el-date-picker> </div> </div> - <div class="echart-container"> <div id="barChart" ref="barChart"></div> </div> </div> </el-card> </div> - <el-row :gutter="100"> - <el-col :span="6"> - <div class="city-warp"> - <div class="city"> - <div class="title"> - 鑷祦浜� - </div> - <div class="score-warp"> - <div class="score-item"> - <div style="font-size: 15px;margin-bottom: 15px">2024骞�4鏈�12鏃�</div> + + <div> + <el-row :gutter="100"> + <el-col :span="6" v-for="(city, index) in checkScoreList" :key="index"> + <div class="city-warp"> + <div class="city"> + <div class="title"> + {{ translateDeptId(index) }} </div> - <div class="score-item"> - <div>瑙嗛锛�</div> - <div class="score">99.5</div> + <div class="score-warp"> + <div class="score-item"> + <div style="font-size: 15px; margin-bottom: 15px">{{ formatCreateDate(city[0].createTime) }}</div> + </div> + <div v-for="(score, scoreIndex) in city" :key="scoreIndex"> + <div class="score-item"> + <div v-if="score.examineCategory == 0">杞﹁締锛�</div> + <div v-else-if="score.examineCategory == 1">浜鸿劯锛�</div> + <div v-else-if="score.examineCategory == 2">瑙嗛锛�</div> + <div class="score">{{ score.score }}</div> + </div> + </div> </div> - <div class="score-item"> - <div>浜鸿劯锛�</div> - <div class="score">87</div> + <div class="bottom-publish"> + <el-button + size="medium" + :type="isAnyUnpublished(city) ? 'success' : 'danger'" + @click="publish(city)" + > + {{ isAnyUnpublished(city) ? '鍙戝竷' : '鍙栨秷' }} + </el-button> + <el-button size="medium" @click="jumpDetail(index)" type="info">璇︽儏</el-button> </div> - <div class="score-item"> - <div>杞﹁締锛�</div> - <div class="score">94</div> - </div> - </div> - <div class="bottom-publish"> - <el-button size="medium" type="success">鍙戝竷</el-button> - <el-button size="medium" @click="jumpDetail" type="info">璇︽儏</el-button> </div> </div> - </div> - </el-col> - <el-col :span="6"> - <div class="city-warp"> - <div class="city"> - <div class="title"> - 瀵岄『 - </div> - <div class="score-warp"> - <div class="score-item"> - <div style="font-size: 15px;margin-bottom: 15px">2024骞�4鏈�12鏃�</div> - </div> - <div class="score-item"> - <div>瑙嗛锛�</div> - <div class="score">99.5</div> - </div> - <div class="score-item"> - <div>浜鸿劯锛�</div> - <div class="score">87</div> - </div> - <div class="score-item"> - <div>杞﹁締锛�</div> - <div class="score">94</div> - </div> - - </div> - <div class="bottom-publish"> - <el-button size="medium" v-hasPermi="['calculate:rule:add']" type="success">鍙戝竷</el-button> - <el-button size="medium" v-hasPermi="['calculate:rule:query']" @click="jumpDetail" type="info">璇︽儏</el-button> - </div> - </div> - </div> - </el-col> - <el-col :span="6"> - <div class="city-warp"> - <div class="city"> - <div class="title"> - 鑽e幙 - </div> - <div class="score-warp"> - <div class="score-item"> - <div style="font-size: 15px;margin-bottom: 15px">2024骞�4鏈�12鏃�</div> - </div> - <div class="score-item"> - <div>瑙嗛锛�</div> - <div class="score">99.5</div> - </div> - <div class="score-item"> - <div>浜鸿劯锛�</div> - <div class="score">87</div> - </div> - <div class="score-item"> - <div>杞﹁締锛�</div> - <div class="score">94</div> - </div> - - </div> - <div class="bottom-publish"> - <el-button size="medium" type="success">鍙戝竷</el-button> - <el-button size="medium" @click="jumpDetail" type="info">璇︽儏</el-button> - </div> - </div> - </div> - </el-col> - <el-col :span="6"> - <div class="city-warp"> - <div class="city"> - <div class="title"> - 娌挎哗鍖� - </div> - <div class="score-warp"> - <div class="score-item"> - <div style="font-size: 15px;margin-bottom: 15px">2024骞�4鏈�12鏃�</div> - </div> - <div class="score-item"> - <div>瑙嗛锛�</div> - <div class="score">99.5</div> - </div> - <div class="score-item"> - <div>浜鸿劯锛�</div> - <div class="score">87</div> - </div> - <div class="score-item"> - <div>杞﹁締锛�</div> - <div class="score">94</div> - </div> - - </div> - <div class="bottom-publish"> - <el-button size="medium" type="success">鍙戝竷</el-button> - <el-button size="medium" @click="jumpDetail" type="info">璇︽儏</el-button> - </div> - </div> - </div> - </el-col> - - - </el-row> - - <el-row style="margin-top: 30px" :gutter="100"> - <el-col :span="6"> - <div class="city-warp"> - <div class="city"> - <div class="title"> - 楂樻柊鍖� - </div> - <div class="score-warp"> - <div class="score-item"> - <div style="font-size: 15px;margin-bottom: 15px">2024骞�4鏈�12鏃�</div> - </div> - <div class="score-item"> - <div>瑙嗛锛�</div> - <div class="score">99.5</div> - </div> - <div class="score-item"> - <div>浜鸿劯锛�</div> - <div class="score">87</div> - </div> - <div class="score-item"> - <div>杞﹁締锛�</div> - <div class="score">94</div> - </div> - </div> - <div class="bottom-publish"> - <el-button size="medium" type="success">鍙戝竷</el-button> - <el-button size="medium" @click="jumpDetail" type="info">璇︽儏</el-button> - </div> - </div> - </div> - </el-col> - <el-col :span="6"> - <div class="city-warp"> - <div class="city"> - <div class="title"> - 澶у畨鍖� - </div> - <div class="score-warp"> - <div class="score-item"> - <div style="font-size: 15px;margin-bottom: 15px">2024骞�4鏈�12鏃�</div> - </div> - <div class="score-item"> - <div>瑙嗛锛�</div> - <div class="score">99.5</div> - </div> - <div class="score-item"> - <div>浜鸿劯锛�</div> - <div class="score">87</div> - </div> - <div class="score-item"> - <div>杞﹁締锛�</div> - <div class="score">94</div> - </div> - </div> - <div class="bottom-publish"> - <el-button size="medium" type="success">鍙戝竷</el-button> - <el-button size="medium" @click="jumpDetail" type="info">璇︽儏</el-button> - </div> - </div> - </div> - </el-col> - <el-col :span="6"> - <div class="city-warp"> - <div class="city"> - <div class="title"> - 璐′簳鍖� - </div> - <div class="score-warp"> - <div class="score-item"> - <div style="font-size: 15px;margin-bottom: 15px">2024骞�4鏈�12鏃�</div> - </div> - <div class="score-item"> - <div>瑙嗛锛�</div> - <div class="score">99.5</div> - </div> - <div class="score-item"> - <div>浜鸿劯锛�</div> - <div class="score">87</div> - </div> - <div class="score-item"> - <div>杞﹁締锛�</div> - <div class="score">94</div> - </div> - - </div> - <div class="bottom-publish"> - <el-button size="medium" type="success">鍙戝竷</el-button> - <el-button size="medium" @click="jumpDetail" type="info">璇︽儏</el-button> - </div> - </div> - </div> - </el-col> - </el-row> + </el-col> + </el-row> + </div> </div> </template> <script> +import { areaSelect } from '@/api/system/dept'; +import { listScore, getScore, delScore, addScore, updateScore,publishScore} from "@/api/platform/check-score"; import * as echarts from 'echarts'; let observer = null; let chart = null; @@ -250,8 +74,14 @@ name: 'index', data() { return { + province:{ + id: [], + publish: null, + }, + checkScoreList:[], + areaList:[], activeIndex: '1', - activeIndex2: '1', + activeIndex2: '2', date: '', company: '', dataList: { @@ -260,11 +90,29 @@ data2: [93.7, 93.5, 94.3, 96.5, 95.3, 94.2, 93.3], data3: [98.3, 94.3, 93.3, 95.5, 96.8, 96.1, 95.8], }, + // 鏌ヨ鍙傛暟 + queryParams: { + examineTag: null, + createTime: null + }, } }, + created() { + this.getList(); + this.areaSelect(); + }, + mounted() { + chart = echarts.init(this.$refs.barChart); + this.initEchart(); + }, methods: { - jumpDetail() { - this.$router.push("/examine/detail") + jumpDetail(index) { + this.$router.push({ + path: '/examine/detail', + query: { + index: index + } + }) }, initEchart() { const option = { @@ -319,13 +167,82 @@ ] } chart.setOption(option, true); + }, + // 鍖哄煙涓嬫媺鏁版嵁 + areaSelect() { + areaSelect().then(res => { + this.areaList = res.data; + }) + }, + translateDeptId(deptId) { + const department = this.areaList.find(dept => dept.id === deptId); + return department ? department.value : '鏈煡'; + }, - } + isAnyUnpublished(city) { + // 妫�鏌� city 鐨� score 鏁扮粍涓槸鍚︽湁浠讳綍涓�涓殑 publish 灞炴�т负 'UNPUBLISHED' + return city.some(score => score.publish === 'UNPUBLISHED'); + }, + formatCreateDate(dateString) { + const date = new Date(dateString); + const year = date.getFullYear(); + const month = date.getMonth() + 1; // getMonth() 杩斿洖鐨勬湀浠芥槸浠� 0 寮�濮嬬殑锛屾墍浠ヨ鍔� 1 + const day = date.getDate(); + + // 浣跨敤 padStart 鏂规硶纭繚鏈堜唤鍜屾棩鏈熷缁堟槸涓や綅鏁� + const formattedMonth = month.toString().padStart(2, '0'); + const formattedDay = day.toString().padStart(2, '0'); + + return `${year}骞�${formattedMonth}鏈�${formattedDay}鍙穈; + }, + /** 瀵艰埅鍒囨崲 */ + handleSelect(key){ + this.activeIndex = key; // 鏇存柊褰撳墠婵�娲荤殑鑿滃崟椤� + this.getList(); + }, + /** 鏌ヨ鑰冩牳鎴愮哗鍒楄〃 */ + getList() { + this.loading = true; + if (this.activeIndex === '1') { + this.queryParams.examineTag = '0'; // 鐪佸巺鑰冩牳 + } else if (this.activeIndex === '2') { + this.queryParams.examineTag = '1'; // 鍖哄煙鑰冩牳 + } + // 鑾峰彇褰撳墠鏃ユ湡 + const today = new Date(); + + // 璁$畻鏄ㄥぉ鐨勬棩鏈� + const yesterday = new Date(today); + yesterday.setDate(today.getDate() - 1); + + // 灏嗘槰澶╃殑鏃ユ湡鏍煎紡鍖栦负瀛楃涓诧紝杩欓噷鍋囪鍚庣鏈熸湜鐨勬槸ISO 8601鏍煎紡 + this.queryParams.createTime = yesterday.toISOString().split('T')[0]; + + console.log(this.queryParams); + listScore(this.queryParams).then(response => { + this.checkScoreList = response.data; + console.log(this.checkScoreList); + this.loading = false; + }); + }, + publish(city){ + let text = this.isAnyUnpublished(city) ? "鍙戝竷":"鍙栨秷鍙戝竷"; + const cityName = this.translateDeptId(parseInt(city[0].deptId)); + this.province.publish = text === "鍙戝竷" ? "PUBLISHED" : "UNPUBLISHED"; + this.province.id = city.map(city => city.id); + this.$modal.confirm('鏄惁纭' + text + '鑰冩牳鍚嶄负"' + cityName + '"鐨勬暟鎹」锛�') + .then(() => { + return publishScore(this.province); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess(text + "鎴愬姛"); + }) + .catch(() => { + // 閿欒澶勭悊閫昏緫 + }); + }, }, - mounted() { - chart = echarts.init(this.$refs.barChart); - this.initEchart(); - } } </script> @@ -345,9 +262,10 @@ .score { width: 60px; text-align: right; + padding: 3px 0; } #warp { - padding: 20px; + padding: 0 10px; } .city-warp { display: flex; @@ -355,6 +273,7 @@ align-items: center; justify-content: center; height: 210px; + margin-bottom: 25px; } .city { width: 240px; -- Gitblit v1.8.0