From 1a64a71d96069b92c84d781ce2e39dc29f630ada Mon Sep 17 00:00:00 2001 From: fei <791364011@qq.com> Date: 星期二, 09 九月 2025 17:40:22 +0800 Subject: [PATCH] 新增了代码 --- src/views/archiveStatics/index.vue | 275 +++++++++++++++++++----------------------------------- 1 files changed, 99 insertions(+), 176 deletions(-) diff --git a/src/views/archiveStatics/index.vue b/src/views/archiveStatics/index.vue index 8f47ff1..7c0b815 100644 --- a/src/views/archiveStatics/index.vue +++ b/src/views/archiveStatics/index.vue @@ -1,167 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> - <el-form-item label="妗f鍙�1" prop="recordId"> - <el-input - v-model="queryParams.recordId" - placeholder="璇疯緭鍏ユ。妗堝彿" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鍙戞枃鍙�" prop="inquiryNumber"> - <el-input - v-model="queryParams.inquiryNumber" - placeholder="璇疯緭鍏ュ彂鏂囧彿" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="妗堝嵎棰樺悕" prop="caseTitle"> - <el-input - v-model="queryParams.caseTitle" - placeholder="璇疯緭鍏ユ鍗烽鍚�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鍏紑灞炴��" prop="publicAttribute"> - <el-select - v-model="queryParams.publicAttribute" - placeholder="璇烽�夋嫨鍏紑灞炴��" - clearable - > - <el-option - v-for="item in publicAttributeOptions" - :key="item.value" - :label="item.label" - :value="item.value" - /> - </el-select> - </el-form-item> - <el-form-item label="缂栧埗鍗曚綅" prop="preparationUnit"> - <el-input - v-model="queryParams.preparationUnit" - placeholder="璇疯緭鍏ョ紪鍒跺崟浣�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="缂栧埗鏃ユ湡" prop="preparationDate"> - <el-date-picker clearable - v-model="queryParams.preparationDate" - type="date" - value-format="yyyy-MM-dd" - placeholder="璇烽�夋嫨缂栧埗鏃ユ湡"> - </el-date-picker> - </el-form-item> - <el-form-item label="淇濈鏈熼檺" prop="retentionPeriod"> - <el-select - v-model="queryParams.retentionPeriod" - placeholder="璇烽�夋嫨淇濈鏈熼檺" - clearable - > - <el-option - v-for="item in retentionPeriodOptions" - :key="item.value" - :label="item.label" - :value="item.value" - /> - </el-select> - </el-form-item> - <el-form-item label="瀵嗙骇" prop="securityClassification"> - <el-input - v-model="queryParams.securityClassification" - placeholder="璇疯緭鍏ュ瘑绾�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="妗堝嵎椤垫暟" prop="pageCount"> - <el-input - v-model="queryParams.pageCount" - placeholder="璇疯緭鍏ユ鍗烽〉鏁�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="绔嬫鍙�" prop="filingNumber"> - <el-input - v-model="queryParams.filingNumber" - placeholder="璇疯緭鍏ョ珛妗堝彿" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="寤鸿鍗曚綅" prop="constructionUnit"> - <el-input - v-model="queryParams.constructionUnit" - placeholder="璇疯緭鍏ュ缓璁惧崟浣�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="寤鸿鍦板潃" prop="constructionAddress"> - <el-input - v-model="queryParams.constructionAddress" - placeholder="璇疯緭鍏ュ缓璁惧湴鍧�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="寤鸿椤圭洰鍚嶇О" prop="projectName"> - <el-input - v-model="queryParams.projectName" - placeholder="璇疯緭鍏ュ缓璁鹃」鐩悕绉�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="椤圭洰缂栧彿" prop="projectNumber"> - <el-input - v-model="queryParams.projectNumber" - placeholder="璇疯緭鍏ラ」鐩紪鍙�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鎵弿鍔犲伐鍏徃" prop="scanningCompany"> - <el-input - v-model="queryParams.scanningCompany" - placeholder="璇疯緭鍏ユ壂鎻忓姞宸ュ叕鍙�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="妗f绠�(瀹�)鍙�" prop="archiveRoomNumber"> - <el-input - v-model="queryParams.archiveRoomNumber" - placeholder="璇疯緭鍏ユ。妗堢(瀹�)鍙�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="缂╁井鍙�" prop="microfilmNumber"> - <el-input - v-model="queryParams.microfilmNumber" - placeholder="璇疯緭鍏ョ缉寰彿" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鍘嗗彶鐩稿叧鍙戞枃鍙�" prop="historicalReferenceNumber"> - <el-input - v-model="queryParams.historicalReferenceNumber" - placeholder="璇疯緭鍏ュ巻鍙茬浉鍏冲彂鏂囧彿" - clearable - @keyup.enter.native="handleQuery" - /> - </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"> @@ -209,18 +48,27 @@ <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> - <el-table v-loading="loading" :data="recordsList" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center" /> + <el-table v-loading="loading" :data="recordsList" @row-click="handleRowClick"> + <!-- <el-table-column type="selection" width="55" align="center" /> --> <!-- <el-table-column label="${comment}" align="center" prop="id" /> --> - <el-table-column label="妗f鍙�" align="center" prop="recordId" /> - <el-table-column label="鍙戞枃鍙�" align="center" prop="inquiryNumber" /> - <el-table-column label="妗堝嵎棰樺悕" align="center" prop="caseTitle" /> + <el-table-column label="椤圭洰鍚嶇О" align="center" prop="everyProjectName" /> + <el-table-column label="椤圭洰鍐呮鍗锋�绘暟" align="center" prop="cnt" /> + + <el-table-column label="瀹屾垚妗堝嵎鏁�" align="center" prop="finished" /> - <el-table-column label="寤鸿鍦板潃" align="center" prop="constructionAddress" /> - <el-table-column label="寤鸿椤圭洰鍚嶇О" align="center" prop="projectName" /> - <el-table-column label="鐘舵��" align="center" prop="projectName" /> + + <el-table-column label="鏈畬鎴愭鍗锋暟" align="center" prop="unfinished" /> + <el-table-column label="瀹屾垚鐧惧垎姣�" align="center"> + <template slot-scope="scope"> + <el-progress + :percentage="Math.round((scope.row.finished / scope.row.cnt) * 100)" + :status="scope.row.finished === scope.row.cnt ? 'success' : 'warning'"> + </el-progress> + <span>{{ scope.row.finished }}/{{ scope.row.cnt }} ({{ Math.round((scope.row.finished / scope.row.cnt) * 100) }}%)</span> + </template> + </el-table-column> </el-table> @@ -336,17 +184,28 @@ <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> + + + + <el-dialog + title="瀹屾垚鎯呭喌缁熻" + :visible.sync="dialogVisible" + width="60%"> + <div ref="chartContainer" style="width: 100%; height: 400px; display: flex; justify-content: center; align-items: center;"></div> +</el-dialog> </div> </template> <script> -import { listRecords,getMaxId, getRecords, delRecords, addRecords, updateRecords } from "@/api/system/records" +import { statisticInfo,listRecords,getMaxId, getRecords, delRecords, addRecords, updateRecords } from "@/api/system/records" import { listAllCategory } from "@/api/system/category" export default { name: "Records", data() { return { + dialogVisible: false, + chartInstance: null, maxId: 0, // 妗f绫诲瀷閫夐」 recordTypeOptions: [], @@ -427,12 +286,67 @@ created() { this.getList() - this.getId() - this.getRecordTypes() + // this.getId() + // this.getRecordTypes() }, + beforeDestroy() { + if (this.chartInstance) { + this.chartInstance.dispose(); + } +}, methods: { +handleRowClick(row) { + this.dialogVisible = true; + this.$nextTick(() => { + this.chartInstance = this.$echarts.init(this.$refs.chartContainer); + const option = { + tooltip: { + trigger: 'item', + formatter: '{a} <br/>{b}: {c} ({d}%)' + }, + legend: { + orient: 'vertical', + right: 10, + top: 'center' + }, + color: ['#67C23A', '#F56C6C'], + series: [{ + name: '瀹屾垚鎯呭喌', + type: 'pie', + radius: ['50%', '70%'], + avoidLabelOverlap: false, + itemStyle: { + borderRadius: 10, + borderColor: '#fff', + borderWidth: 2 + }, + label: { + show: true, + formatter: '{b}: {d}%' + }, + emphasis: { + label: { + show: true, + fontSize: '18', + fontWeight: 'bold' + } + }, + labelLine: { + show: true + }, + data: row.cnt === 0 ? + [{ value: 1, name: '鏆傛棤鏁版嵁', itemStyle: { color: '#909399' }}] : + [ + { value: row.finished, name: '宸插畬鎴�' }, + { value: row.cnt - row.finished, name: '鏈畬鎴�' } + ] + }] + }; + this.chartInstance.setOption(option); + }); +}, getId() { var _this = this; @@ -481,11 +395,11 @@ this.loading = true console.log(this.queryParams) console.log("--------------") - listRecords(this.queryParams).then(response => { + statisticInfo().then(response => { console.log(response) - this.recordsList = response.data.data - this.total = response.data.total + this.recordsList = response.data + this.total = response.data.length this.loading = false }) }, @@ -631,3 +545,12 @@ } } </script> +<style scoped> +.force-width { + width: 900px !important; /* 璁剧疆鍥哄畾瀹藉害 */ +} + +body .el-message-box.force-width { + width: 800px !important; +} +</style> -- Gitblit v1.9.1