Browse Source

12345

feature
是小王呀\24601 1 year ago
parent
commit
cd3826541c
  1. 65
      src/views/modules/shequzhili/analysis/TableRow.vue
  2. 134
      src/views/modules/shequzhili/analysis/index.vue

65
src/views/modules/shequzhili/analysis/TableRow.vue

@ -0,0 +1,65 @@
<template>
<tbody>
<tr>
<td v-if="level === 1" :rowspan="calculateRowspan(item)">{{ item.categoryName }}</td>
<td v-else></td>
<td v-if="level === 2" :rowspan="calculateRowspan(item)">{{ item.categoryName }}</td>
<td v-else></td>
<td v-if="level === 3" :rowspan="calculateRowspan(item)">{{ item.categoryName }}</td>
<td v-else></td>
<td v-if="level === 4">{{ item.categoryName }}</td>
<td v-if="level === 4">{{ item.eventCount }}</td>
<td v-if="level === 4">{{ item.proportion }}</td>
</tr>
<component
v-for="child in item.children"
:is="'TableRow'"
:key="child.id"
:item="child"
:level="level + 1"
/>
</tbody>
</template>
<script>
export default {
name: 'TableRow',
props: {
item: {
type: Object,
required: true,
},
level: {
type: Number,
required: true,
},
},
methods: {
calculateRowspan(item) {
if (!item.children || !item.children.length) {
return 1;
}
return item.children.reduce((sum, child) => sum + this.calculateRowspan(child), 0);
},
},
};
</script>
<style scoped>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
width: 40px;
height: 20px;
border: 1px solid #ccc;
padding: 8px;
text-align: center;
}
thead {
background-color: #f9f9f9;
}
</style>

134
src/views/modules/shequzhili/analysis/index.vue

@ -68,7 +68,7 @@
<img style="width: 40px;height: 40px;" src="./img/overdue.png">
</div>
<div class="card-content">
<p class="card-title">{{analysisList.illegalResolveTotal}} <span class="percentage">{{analysisList.illegalResolveRate}}%</span></p>
<p class="card-title">{{analysisList.illegalResolveTotal}}{{analysisList.illegalResolveRate?analysisList.illegalResolveRate:"--"}} <span class="percentage">{{analysisList.illegalResolveRate?analysisList.illegalResolveRate:"--"}}%</span></p>
<p class="card-text">办理超期事件数</p>
</div>
</div>
@ -76,57 +76,56 @@
<div style="display: flex;justify-content: space-between;flex-direction:row;">
<h1 style="font-size: 24px; font-weight: bold;"> 事件类型统计 </h1>
</div>
<el-table :data="addressData" border class="m-table-item" style="width: 100%">
<!-- <el-table-column label="序号" fixed="left" type="index" align="center" width="50" /> -->
<!-- <el-table-column prop="address" align="center" label="地点" :show-overflow-tooltip="true"></el-table-column> -->
<el-table-column prop="categoryName" align="center" label="一级分类"
:show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="amount" align="center" label="二级分类" :show-overflow-tooltip="true">
<!-- <template slot-scope="{row}">
<el-button style="width: 100%" type="text" @click="clickAddressData(row)">{{row.amount}}</el-button>
</template> -->
</el-table-column>
<el-table-column prop="content" align="center" label="三级分类" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="content" align="center" label="四级分类" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="content" align="center" label="事件数量" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="content" align="center" label="同级占比" :show-overflow-tooltip="true"></el-table-column>
</el-table>
<table >
<thead>
<tr>
<th>一级分类</th>
<th>二级分类</th>
<th>三级分类</th>
<th>四级分类</th>
<th>事件数量</th>
<th>同级占比</th>
</tr>
<TableRow v-for="item in tableList" :key="item.id" :item="item" :level="1" />
</thead>
</table>
<div style="display: flex;justify-content: space-between;flex-direction:row;">
<h1 style="font-size: 24px; font-weight: bold;"> 部门科室工单量统计 </h1>
<h1 style="font-size: 24px; font-weight: bold; margin-right: 600px;"> 社区工单量统计 </h1>
</div>
<div style="display: flex;justify-content: space-between;flex-direction:row;">
<el-table :data="addressData" border class="m-table-item" style="width: 100%">
<el-table :data="departmentList" height="250" border class="m-table-item" style="width: 100%">
<!-- <el-table-column label="序号" fixed="left" type="index" align="center" width="50" /> -->
<!-- <el-table-column prop="address" align="center" label="地点" :show-overflow-tooltip="true"></el-table-column> -->
<el-table-column prop="categoryName" align="center" label="部门科室"
<el-table-column prop="assignOrgName" align="center" label="部门科室"
:show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="amount" align="center" label="事件数" :show-overflow-tooltip="true">
<el-table-column prop="total" align="center" label="事件数" :show-overflow-tooltip="true">
<!-- <template slot-scope="{row}">
<el-button style="width: 100%" type="text" @click="clickAddressData(row)">{{row.amount}}</el-button>
</template> -->
</el-table-column>
<el-table-column prop="content" align="center" label="占比" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="content" align="center" label="办结数" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="content" align="center" label="联系当事人超期数" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="content" align="center" label="办理超期数" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="totalRate" align="center" label="占比" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="unresolveRate" align="center" label="办结数" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="illegalConnectRate" align="center" label="联系当事人超期数" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="cillegalResolveRateontent" align="center" label="办理超期数" :show-overflow-tooltip="true"></el-table-column>
</el-table>
<el-table :data="addressData" border class="m-table-item" style="margin-left: 50px;">
<el-table :data="communityList" height="250" border class="m-table-item" style="margin-left: 50px; ">
<!-- <el-table-column label="序号" fixed="left" type="index" align="center" width="50" /> -->
<!-- <el-table-column prop="address" align="center" label="地点" :show-overflow-tooltip="true"></el-table-column> -->
<el-table-column prop="categoryName" align="center" label="社区"
<el-table-column prop="assignOrgName" align="center" label="社区"
:show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="amount" align="center" label="事件数" :show-overflow-tooltip="true">
<el-table-column prop="total" align="center" label="事件数" :show-overflow-tooltip="true">
<!-- <template slot-scope="{row}">
<el-button style="width: 100%" type="text" @click="clickAddressData(row)">{{row.amount}}</el-button>
</template> -->
</el-table-column>
<el-table-column prop="content" align="center" label="占比" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="content" align="center" label="办结数" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="content" align="center" label="联系当事人超期数" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="content" align="center" label="办理超期数" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="totalRate" align="center" label="占比" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="unresolveRate" align="center" label="办结数" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="illegalConnectRate" align="center" label="联系当事人超期数" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="cillegalResolveRateontent" align="center" label="办理超期数" :show-overflow-tooltip="true"></el-table-column>
</el-table>
</div>
@ -269,11 +268,14 @@ import { mapGetters } from "vuex";
import axios from "axios";
import * as echarts from "echarts";
import util from "@js/util.js";
import TableRow from './TableRow.vue';
export default {
components: {},
components: {TableRow},
data() {
return {
tableList:[],
communityList:[],
departmentList:[],
searchH: 20,
formData: {
queryDateStart: "",
@ -759,8 +761,54 @@ export default {
this.cleanReportData();
await this.getTableData();
await this.initEcharts();
await this.EventCategoryAnalysis()
await this.EventCategoryAnalysis();
await this.EventCate();
await this.getCategoryTree()
},
//
async getCategoryTree(){
const url = "/governance/icEvent/getCategoryTree";
//
let param = {
startDate:this.formData.queryDateStart,
endDate:this.formData.queryDateEnd,
usableFlag:true
}
const { data, code, msg } = await requestPost(url, param);
if (code === 0) {
console.log(data);
this.tableList=data
console.log(this.tableList,"lksdjfklj s");
} else {
this.$message.error(msg);
}
},
//
async EventCate(){
const url = "/governance/icEvent/EventCategoryAnalysis";
//
let param = {
startDate:this.formData.queryDateStart,
endDate:this.formData.queryDateEnd,
usableFlag:true
}
const { data, code, msg } = await requestPost(url, param);
if (code === 0) {
console.log(data);
data.map(item=>{
if(item.assignOrgType=="duty"){
this.departmentList.push(item)
}else{
this.communityList.push(item)
}
})
console.log(this.departmentList,"564534");
console.log(this.communityList,"sd ads ");
} else {
this.$message.error(msg);
}
},
//
async EventCategoryAnalysis(){
const url = "/governance/icEvent/EventCategoryAnalysis";
@ -768,10 +816,8 @@ export default {
startDate:this.formData.queryDateStart,
endDate:this.formData.queryDateEnd,
usableFlag:false
};
}
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
console.log(data);
this.analysisList = data[0];
@ -1049,6 +1095,22 @@ export default {
@import "@/assets/scss/modules/management/list-main.scss";
@import "@/assets/scss/modules/shequzhili/event-info.scss";
@import "./css/index.scss";
table {
width: 100%;
border-collapse: collapse;
}
th, td {
width: 40px;
height: 20px;
border: 1px solid #ccc;
padding: 8px;
text-align: center;
}
thead {
background-color: #f9f9f9;
}
.div_btn_left>* {
margin-right: 10px;

Loading…
Cancel
Save