From fc98e676332302c4b835f8fa4ed42d72e177801f Mon Sep 17 00:00:00 2001
From: fei <791364011@qq.com>
Date: 星期二, 14 十月 2025 16:57:02 +0800
Subject: [PATCH] 增加了对应的代码
---
src/views/archiveStatics/index.vue | 294 ++++++++++++++++++++++------------------------------------
1 files changed, 112 insertions(+), 182 deletions(-)
diff --git a/src/views/archiveStatics/index.vue b/src/views/archiveStatics/index.vue
index 8f47ff1..f12700f 100644
--- a/src/views/archiveStatics/index.vue
+++ b/src/views/archiveStatics/index.vue
@@ -1,170 +1,9 @@
<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">
+ <!-- <el-col :span="1.5">
<el-button
type="primary"
plain
@@ -195,7 +34,7 @@
@click="handleDelete"
v-hasPermi="['system:records:remove']"
>鍒犻櫎</el-button>
- </el-col>
+ </el-col> -->
<el-col :span="1.5">
<el-button
type="warning"
@@ -209,18 +48,31 @@
<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="unwf" />
+ <el-table-column label="寰呬慨鏀�" align="center" prop="dxg" />
+
+ <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>
@@ -269,7 +121,7 @@
</el-row>
</el-form-item>
<el-form-item label="鍙戞枃鍙�" prop="inquiryNumber">
- <el-input v-model="form.inquiryNumber" placeholder="璇疯緭鍏ュ彂闂彿" />
+ <el-input v-model="form.inquiryNumber" placeholder="璇疯緭鍏ュ彂鏂囧彿" />
</el-form-item>
<el-form-item label="寤鸿椤圭洰鍚嶇О" prop="projectName">
<el-input v-model="form.projectName" placeholder="璇疯緭鍏ュ缓璁鹃」鐩悕绉�" />
@@ -336,17 +188,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: [],
@@ -416,7 +279,7 @@
{ required: true, message: "妗f鍙蜂笉鑳戒负绌�", trigger: "blur" }
],
inquiryNumber: [
- { required: true, message: "鍙戦棶鍙蜂笉鑳戒负绌�", trigger: "blur" }
+ { required: true, message: "鍙戞枃鍙蜂笉鑳戒负绌�", trigger: "blur" }
],
projectName: [
{ required: true, message: "椤圭洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
@@ -427,12 +290,69 @@
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','#409EFF','#E6A23C'], // 缁裤�佺孩銆佽摑銆佹鍥涜壊
+ 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.unfinished, name: '鏈畬鎴�' },
+ { value: row.unwf, name: '鏈笂浼犻檮浠�' },
+ { value: row.dxg, name: '寰呬慨鏀�' }
+ ]
+ }]
+ };
+ this.chartInstance.setOption(option);
+ });
+},
getId()
{
var _this = this;
@@ -481,11 +401,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
})
},
@@ -624,10 +544,20 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.download('system/records/export', {
- ...this.queryParams
+ // alert(98)
+ this.download('system/records/exportAllStatis', {
+ // ...this.queryParams
}, `records_${new Date().getTime()}.xlsx`)
}
}
}
</script>
+<style scoped>
+.force-width {
+ width: 900px !important; /* 璁剧疆鍥哄畾瀹藉害 */
+}
+
+body .el-message-box.force-width {
+ width: 800px !important;
+}
+</style>
--
Gitblit v1.9.1