| | |
| | | <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="档案号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="档案管(室)号" 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 |
| | |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:records:remove']" |
| | | >删除</el-button> |
| | | </el-col> |
| | | </el-col> --> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | |
| | | <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="档案号" 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> |
| | | |
| | |
| | | </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="请输入建设项目名称" /> |
| | |
| | | <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, |
| | | // 档案类型选项 |
| | | recordTypeOptions: [], |
| | |
| | | { required: true, message: "档案号不能为空", trigger: "blur" } |
| | | ], |
| | | inquiryNumber: [ |
| | | { required: true, message: "发问号不能为空", trigger: "blur" } |
| | | { required: true, message: "发文号不能为空", trigger: "blur" } |
| | | ], |
| | | projectName: [ |
| | | { required: true, message: "项目名称不能为空", trigger: "blur" } |
| | |
| | | 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; |
| | |
| | | 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 |
| | | }) |
| | | }, |
| | |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | 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> |