From da81d1bd13bb180c9d1ee6d02df6d2036da30d86 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期四, 11 四月 2024 15:46:05 +0800 Subject: [PATCH] 考核结果 --- src/views/system/calculate/order/index.vue | 5 src/views/system/result/detail/detail.vue | 176 +---------------- src/views/system/platform/index.vue | 24 -- src/views/system/result/detail/index1.vue | 348 ++++++++++++++++++++++++---------- 4 files changed, 268 insertions(+), 285 deletions(-) diff --git a/src/views/system/calculate/order/index.vue b/src/views/system/calculate/order/index.vue index c944342..ceabfcd 100644 --- a/src/views/system/calculate/order/index.vue +++ b/src/views/system/calculate/order/index.vue @@ -82,6 +82,8 @@ <div class="text item">鑰冩牳鍒嗘暟<span class="time">{{ item.checkScore }}</span></div> <div class="text item">鑰冩牳鏃堕棿 <span class="time">{{ item.checkTime }}</span> + <el-button size="small" round style="float: right;" @click="handlePublish(item)" v-show="item.publish != 1" v-hasPermi="['result:contract:publish']">纭鍙戝竷</el-button> + <el-button size="small" round style="float: right;" @click="handlePublish(item)" v-show="item.publish == 1" v-hasPermi="['result:contract:publish']">宸插彂甯�</el-button> </div> </el-card> @@ -430,7 +432,8 @@ this.download('system/checkResult/export', { ...this.queryParams }, `checkResult_${new Date().getTime()}.xlsx`) - } + }, + } }; </script> diff --git a/src/views/system/platform/index.vue b/src/views/system/platform/index.vue index 34d5f02..5b585e5 100644 --- a/src/views/system/platform/index.vue +++ b/src/views/system/platform/index.vue @@ -21,10 +21,6 @@ <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3> <p>寮傚父鏁�</p > </div> - <div class="dashboard-item"> - <h3>{{ count.totalViews }}</h3> - <p>鐢熸垚寮傚父宸ュ崟鏁�</p > - </div> </div> </el-col> </el-row> @@ -61,21 +57,7 @@ /> </el-select> </el-form-item> - <el-form-item label="鏄惁鐢熸垚寮傚父宸ュ崟" prop="defaultOrder" label-width="130px"> - <el-select - v-model="queryParams.status" - placeholder="鏄惁鐢熸垚寮傚父宸ュ崟" - clearable - style="width: 170px" - > - <el-option - v-for="dict in dict.type.platform_yes_no" - :key="dict.value" - :label="dict.label" - :value="dict.value" - /> - </el-select> - </el-form-item> + <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> @@ -164,7 +146,7 @@ </template> </el-table-column> </el-table> - + <pagination v-show="total>0" :total="total" @@ -409,4 +391,4 @@ .dashboard-item { text-align: center; } -</style> \ No newline at end of file +</style> diff --git a/src/views/system/result/detail/detail.vue b/src/views/system/result/detail/detail.vue index 16209a7..731d044 100644 --- a/src/views/system/result/detail/detail.vue +++ b/src/views/system/result/detail/detail.vue @@ -2,136 +2,10 @@ <div class="app-container"> <el-page-header @back="goBack" content="璇︽儏椤甸潰"> </el-page-header> - <el-container> - <el-main style="padding-top: 0px"> - <h2>鑰冩牳鍒嗘暟鏄庣粏</h2> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> -<!-- <el-form-item label="鑰冩牳瀵硅薄" prop="ruleName">--> -<!-- <el-select--> -<!-- v-model="queryParams.address"--> -<!-- placeholder="璇烽�夋嫨鍖哄煙"--> -<!-- clearable--> -<!-- >--> -<!-- <el-option label="鑷础甯�" value="鑷础甯�"/>--> -<!-- <el-option label="娌挎哗鍖�" value="娌挎哗鍖�"/>--> -<!-- <el-option label="澶у畨鍖�" value="澶у畨鍖�"/>--> -<!-- <el-option label="璐′簳鍖�" value="璐′簳鍖�"/>--> -<!-- <el-option label="鑷祦浜曞尯" value="鑷祦浜曞尯"/>--> -<!-- <el-option label="楂樻柊鍖�" value="楂樻柊鍖�"/>--> -<!-- <el-option label="鑽e幙" value="鑽e幙"/>--> -<!-- <el-option label="瀵岄『鍘�" value="瀵岄『鍘�"/>--> -<!-- </el-select>--> -<!-- </el-form-item>--> - <el-form-item label="鑰冩牳鏃ユ湡" prop="createTime"> - <div class="block"> - <el-date-picker - v-model="value2" - align="right" - type="date" - placeholder="閫夋嫨鏃ユ湡" - :picker-options="pickerOptions"> - </el-date-picker> - </div> - </el-form-item> - <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> - </el-form-item> - </el-form> - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button - type="success" - plain - icon="el-icon-edit" - size="mini" - :disabled="single" - @click="handleScoreUpdate" - >淇敼</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="danger" - plain - icon="el-icon-delete" - size="mini" - :disabled="multiple" - @click="handleDelete" - >鍒犻櫎</el-button> - </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getScoreList"></right-toolbar> - </el-row> - <el-table v-loading="loading" :data="scoreList" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="鑰冩牳瑙勫垯" align="center" prop="ruleId"> - <template slot-scope="scope"> - <div v-if="scope.row.ruleId == 5">涓�鏈轰竴妗f敞鍐岀巼</div> - <div v-else-if="scope.row.ruleId == 4">涓�鏈轰竴妗e悎鏍肩巼</div> - <div v-else-if="scope.row.ruleId == 3">骞冲彴鍦ㄧ嚎鐜�</div> - </template> - </el-table-column> - <el-table-column label="鑰冩牳瀵硅薄" align="center" prop="unitName"> - <template slot-scope="scope"> - <div v-if="scope.row.unitName ==='鎴愰兘x杩愮淮' ">鎴愰兘x杩愮淮</div> - <div v-else>鑷祦浜曞尯</div> - </template> - </el-table-column> - <el-table-column label="鍒嗗��" align="center" prop="score" /> - <el-table-column label="鑰冩牳鏃堕棿" align="center" prop="createTime" /> - <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> - <template slot-scope="scope"> - <el-button - size="mini" - type="text" - icon="el-icon-edit" - @click="handleScoreUpdate(scope.row)" - >淇敼</el-button> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click="handleScoreDelete(scope.row)" - >鍒犻櫎</el-button> - </template> - </el-table-column> - </el-table> - <pagination - v-show="total>0" - :total="scoreTotal" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getRuleList" - /> - </el-main> - </el-container> <el-container> <el-main> <h2>鑰冩牳瑙勫垯</h2> - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button - type="success" - plain - icon="el-icon-edit" - size="mini" - :disabled="single" - @click="handleRuleUpdate" - >淇敼</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="danger" - plain - icon="el-icon-delete" - size="mini" - :disabled="multiple" - @click="handleDelete" - >鍒犻櫎</el-button> - </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getRuleList"></right-toolbar> - </el-row> - <el-table v-loading="loading" :data="ruleList" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center" /> <el-table-column label="瑙勫垯鍚嶇О" align="center" prop="ruleName" /> @@ -167,40 +41,6 @@ <el-container> <el-main> <h2>鑰冩牳鎴愮哗</h2> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> -<!-- <el-form-item label="鑰冩牳瀵硅薄" prop="ruleName">--> -<!-- <el-select--> -<!-- v-model="queryParams.address"--> -<!-- placeholder="璇烽�夋嫨鍖哄煙"--> -<!-- clearable--> -<!-- >--> -<!-- <el-option label="鑷础甯�" value="鑷础甯�"/>--> -<!-- <el-option label="娌挎哗鍖�" value="娌挎哗鍖�"/>--> -<!-- <el-option label="澶у畨鍖�" value="澶у畨鍖�"/>--> -<!-- <el-option label="璐′簳鍖�" value="璐′簳鍖�"/>--> -<!-- <el-option label="鑷祦浜曞尯" value="鑷祦浜曞尯"/>--> -<!-- <el-option label="楂樻柊鍖�" value="楂樻柊鍖�"/>--> -<!-- <el-option label="鑽e幙" value="鑽e幙"/>--> -<!-- <el-option label="瀵岄『鍘�" value="瀵岄『鍘�"/>--> -<!-- </el-select>--> -<!-- </el-form-item>--> - <el-form-item label="鑰冩牳鏃ユ湡" prop="createTime"> - <div class="block"> - <el-date-picker - v-model="value2" - align="right" - type="date" - placeholder="閫夋嫨鏃ユ湡" - :picker-options="pickerOptions"> - </el-date-picker> - </div> - </el-form-item> - <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> - </el-form-item> - </el-form> - <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button @@ -391,6 +231,8 @@ dicts: ['platform_audit_state'], data() { return { + activeIndex: '1', + activeIndex2: '1', activeNames: ['1'], companyName: "鎴愰兘x杩愮淮鍏徃", detailTitle: '', @@ -785,7 +627,10 @@ this.download('system/checkResult/export', { ...this.queryParams }, `checkResult_${new Date().getTime()}.xlsx`) - } + }, + handleSelect(key, keyPath) { + console.log(key, keyPath); + }, } }; </script> @@ -838,4 +683,13 @@ flex-direction: row; justify-content: center; } +.header-container { + display: flex; + align-items: center; /* 鍨傜洿灞呬腑 */ +} + +.header-container h2 { + margin-right: 10px; /* 鏍规嵁闇�瑕佽皟鏁存爣棰樺拰鑿滃崟涔嬮棿鐨勯棿璺� */ +} + </style> diff --git a/src/views/system/result/detail/index1.vue b/src/views/system/result/detail/index1.vue index d8b604f..6417889 100644 --- a/src/views/system/result/detail/index1.vue +++ b/src/views/system/result/detail/index1.vue @@ -1,39 +1,23 @@ <template> - <div style="padding: 15px"> - <div style="display: flex;flex-direction: row;"> - <div class="now-item"> - <div class="box now"> - <div class="title"> - 瑙嗛 + <div style="padding: 5px"> + <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"> + <div class="title-container"> + <h1>鑰冩牳鎴愮哗</h1> </div> - <div> - 98 + <div class="chart-container"> + <div id="chartContent" ref="chartContent"></div> </div> </div> - </div> - <div class="now-item"> - <div class="box now"> - <div class="title"> - 浜鸿劯 - </div> - <div> - 98 - </div> - </div> - </div> - <div class="now-item"> - <div class="box now"> - <div class="title"> - 鐩戞帶 - </div> - <div> - 98 - </div> - </div> - </div> - <div style="justify-content: center;align-items: center;display: flex;width: 80px"> - <i class="el-icon-caret-left">鏈湀</i> - </div> + </el-card> </div> <div style="margin-top: 35px"> @@ -41,38 +25,48 @@ :data="tableData" style="width: 100%"> <el-table-column - label="鏈堜唤" - prop="month"> + label="鑰冩牳鏃堕棿" + prop="time" + align="center"> </el-table-column> <el-table-column - label="浜鸿劯" - prop="renlian"> + label="鏍囩" + prop="tag" + align="center"> </el-table-column> <el-table-column - label="瑙嗛" - prop="shipin"> + label="鑰冩牳绫诲瀷" + prop="category" + align="center"> </el-table-column> <el-table-column - label="杞﹁締" - prop="cheliang"> + label="鑰冩牳棰戠巼" + prop="frequency" + align="center"> </el-table-column> <el-table-column - align="right"> - <template slot="header" slot-scope="scope"> - <el-date-picker - size="mini" - style="width: 100%" - v-model="searchForm.time" - type="monthrange" - range-separator="~" - start-placeholder="寮�濮嬫湀" - end-placeholder="缁撴潫鏈�"> - </el-date-picker> - </template> + label="鍒嗘暟" + prop="score" + align="center"> + </el-table-column> + <el-table-column + label="鐘舵��" + prop="state" + align="center"> <template slot-scope="scope"> + <dict-tag :options="dict.type.platform_examine_use" :value="scope.row.state"/> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button size="small" type="text" v-show="scope.row.publish != 1">纭鍙戝竷</el-button> + <el-button size="small" type="text" v-show="scope.row.publish == 1">鍙栨秷鍙戝竷</el-button> <el-button size="mini" - @click="handleDetail(scope.$index, scope.row)">璇︽儏</el-button> + type="text" + icon="el-icon-view" + @click="handleDetail(scope.row,scope.index)" + >璇︾粏</el-button> </template> </el-table-column> </el-table> @@ -86,7 +80,7 @@ :page-sizes="[5, 10, 20]" :page-size="5" layout="total, sizes, prev, pager, next, jumper" - :total="5"> + :total="4"> </el-pagination> </div> @@ -94,41 +88,65 @@ </template> <script> +import * as echarts from 'echarts'; +let lineChart = null; +let observer = null; export default { name: 'index', + dicts: ['platform_examine_use'], data() { return { + activeIndex: '1', + activeIndex2: '1', + dateRange: '', + company: '', + dataList: [ + { + name: '鍏ㄩ儴', + complete: { '4.5': 95.5, '4.6': 95.3, '4.7': 96.0, '4.8': 97.2, '4.9': 96.5 , + '4.10': 95.5, '4.11': 95.3, '4.12': 96.0, '4.13': 97.2, '4.14': 96.5 }, + waiting: { '4.5': 94.8, '4.6': 91.3, '4.7': 95.3, '4.8': 92.3, '4.9': 93.3, + '4.10': 94.8, '4.11': 91.3, '4.12': 95.3, '4.13': 92.3, '4.14': 93.3 }, + pending: { '4.5': 91.6, '4.6': 92.6, '4.7': 93.7, '4.8': 94.0, '4.9': 95.9 + ,'4.10': 91.6, '4.11': 92.6, '4.12': 93.7, '4.13': 94.0, '4.14': 95.9 } + } + ], tableData: [ { - renlian: 94, - shipin: 89.5, - cheliang: 92, - month: "2024骞�3鏈�" + time: '2024-04-15', + tag: '鐪佸巺鑰冩牳', + category: '杞﹁締鑰冩牳', + frequency: '鏈堝害鑰冩牳', + score: '96.5', + state: '0', + publish: '0' }, { - renlian: 94, - shipin: 89.5, - cheliang: 92, - month: "2024骞�2鏈�" + time: '2024-04-15', + tag: '鐪佸巺鑰冩牳', + category: '浜鸿劯鑰冩牳', + frequency: '鏈堝害鑰冩牳', + score: '93.3', + state: '0', + publish: '0' }, { - renlian: 94, - shipin: 89.5, - cheliang: 92, - month: "2024骞�1鏈�" + time: '2024-04-15', + tag: '鐪佸巺鑰冩牳', + category: '瑙嗛鑰冩牳', + frequency: '鏈堝害鑰冩牳', + score: '95.9', + state: '0', + publish: '0' }, { - renlian: 94, - shipin: 89.5, - cheliang: 92, - month: "2023骞�12鏈�" - }, - , - { - renlian: 94, - shipin: 89.5, - cheliang: 92, - month: "2023骞�11鏈�" + time: '2024-04-14', + tag: '鐪佸巺鑰冩牳', + category: '杞﹁締鑰冩牳', + frequency: '鏈堝害鑰冩牳', + score: '96.5', + state: '1', + publish: '1' }, ], searchForm: { @@ -137,6 +155,7 @@ } }, methods: { + handleSizeChange(val) { console.log(`姣忛〉 ${val} 鏉); }, @@ -149,37 +168,162 @@ }, handleDelete(index, row) { console.log(index, row); + }, + initChart() { + const option = { + legend: { + right: 'right', + top: 'top', + icon: 'rect', + orient: "vertical", + data: [ + { + name: '杞﹁締鑰冩牳', + itemStyle: { + color: 'rgba(62, 144, 247, 1)' + } + }, + { + name: '浜鸿劯鑰冩牳', + itemStyle: { + color: 'rgba(85, 192, 191, 1)' + } + }, + { + name: '瑙嗛鑰冩牳', + itemStyle: { + color: 'rgba(255, 165, 0, 1)' + } + }, + ], + }, + grid: { + left: 0, + right: 0, + bottom: 0, + top: '20%', + containLabel: true + }, + tooltip: {}, + xAxis: { + type: 'category', + data: Object.keys(this.acitveData.complete), + }, + yAxis: { + min: 90, + }, + series: [ + { + name: '杞﹁締鑰冩牳', + data: Object.entries(this.acitveData.complete).map(([key, value]) => value), + type: 'line', + itemStyle: { + color: 'rgba(62, 144, 247, 1)' + } + }, + { + name: '浜鸿劯鑰冩牳', + data: Object.entries(this.acitveData.waiting).map(([key, value]) => value), + type: 'line', + itemStyle: { + color: 'rgba(85, 192, 191, 1)' + } + }, + { + name: '瑙嗛鑰冩牳', + data: Object.entries(this.acitveData.pending).map(([key, value]) => value), + type: 'line', + itemStyle: { + color: 'rgba(255, 165, 0, 1)' + } + } + ] + }; + lineChart.setOption(option, true); + }, + + + // 鐩戝惉鍙樺寲 + observe() { + if (!observer) { + observer = new ResizeObserver(entries => { + this.handleResize(); + }) + } + observer.observe(this.$refs.chartContent); + }, + // 绐楀彛鍙樻崲 + handleResize() { + if (lineChart) { + lineChart.resize(); + } } + + }, + mounted() { + this.acitveData = this.dataList[0]; + this.company = this.acitveData.name; + lineChart = echarts.init(this.$refs.chartContent); + this.initChart(); + this.observe(); + }, + beforeDestroy() { + if (lineChart) { + lineChart.dispose(); + observer.unobserve(this.$refs.chartContent); + } + }, + handleSelect(key, keyPath) { + console.log(key, keyPath); }, } </script> -<style scoped> -.now-item { - flex: 1; - display: flex; - justify-content: center; - align-items: center; -} -.now { - /*background-color: #42b983;*/ - height: 80px !important; -} -.box { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - box-shadow: 0 2px 6px hsla(0, 0%, 7%, .1); - border-radius: 10px; - width: 240px; - height: 50px; -} -.box:hover{ - cursor: pointer; +<style lang="scss" scoped> +.data-chart-container { + height: 400px; + margin-bottom: 20px; + + .data-card { + height: 100%; + + .card-content { + width: 100%; + height: 100%; + position: relative; + } + } } -.title { - font-size: larger; +.title-container { + position: absolute; + display: flex; + justify-content: space-between; + align-items: center; + z-index: 2; + + + .more-button { + cursor: pointer; + font-size: 16px; + padding: 0 10px; + } } + +.chart-container { + + width: 100%; + height: 100%; + + #chartContent { + width: 100%; + height: 100%; + } +} + +.select-container { + margin: 0 20px; + width: 180px; +} + </style> -- Gitblit v1.8.0