<template>
|
<div class="page_member">
|
<v-header title="报到单位总计数据"></v-header>
|
<!-- 统计区 -->
|
<div class="fl-fw mr-b-10">
|
<div class="fl-f mr-r-30">
|
<div class="left-lable-dian"></div>
|
<div class="fl-co mr-l-10 fz-7">
|
<span>报到单位总数</span>
|
<span class="mr-t-10 fc-red">{{ StatusObject.unitTotal || 0 }}</span>
|
</div>
|
</div>
|
<div class="fl-f mr-r-30">
|
<div class="left-lable-dian"></div>
|
<div class="fl-co mr-l-10 fz-7">
|
<span>已报到机关单位</span>
|
<span class="mr-t-10 fc-red">{{ StatusObject.organTotal || 0 }}</span>
|
</div>
|
</div>
|
<div class="fl-f mr-r-30">
|
<div class="left-lable-dian"></div>
|
<div class="fl-co mr-l-10 fz-7">
|
<span>已报到企事业单位</span>
|
<span class="mr-t-10 fc-red">{{
|
StatusObject.businessTotal || 0
|
}}</span>
|
</div>
|
</div>
|
<div class="fl-f mr-r-30" v-if="isZuZhibuUser">
|
<div class="left-lable-dian"></div>
|
<div class="fl-co mr-l-10 fz-7">
|
<span>已报到党员</span>
|
<span class="mr-t-10 fc-red">{{
|
StatusObject.partyMemberTotal || 0
|
}}</span>
|
</div>
|
</div>
|
</div>
|
<!-- 按钮区 -->
|
<!-- <div class="tool" v-if="isZuZhibuUser">
|
<el-button size="medium" type="primary" @click="add">新增</el-button>
|
</div> -->
|
<!-- 正文 -->
|
<div class="cen">
|
<div class="tab_data">
|
<div class="tab">
|
<v-tool-table :trs="trs" :tds="tds">
|
<template v-slot:partyMemberTotal="item">
|
<el-button
|
type="text"
|
@click="handleClick('partyMemberTotal', item.scope)"
|
>{{ item.scope.partyMemberTotal }}</el-button
|
>
|
</template>
|
<template v-slot:organTotal="item">
|
<el-button
|
type="text"
|
@click="handleClick('organTotal', item.scope)"
|
>{{ item.scope.organTotal }}</el-button
|
>
|
</template>
|
<template v-slot:businessTotal="item">
|
<el-button
|
type="text"
|
@click="handleClick('businessTotal', item.scope)"
|
>{{ item.scope.businessTotal }}</el-button
|
>
|
</template>
|
<template v-slot:unitTotal="item">
|
<el-button
|
type="text"
|
@click="handleClick('unitTotal', item.scope)"
|
>{{ item.scope.unitTotal }}</el-button
|
>
|
</template>
|
</v-tool-table>
|
</div>
|
<div class="page">
|
<v-tool-page :item="paged" @on-page="onPage"></v-tool-page>
|
</div>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import { mapState } from "vuex";
|
export default {
|
props: {},
|
components: {},
|
data() {
|
return {
|
os: {},
|
total: 0,
|
paged: { page: 0, total: 0, r: 0, limit: 10 },
|
trs: [
|
{ text: "序号", val: "index" },
|
{ text: "单位归属", val: "belongTo", slot: "time" },
|
{ text: "合计报到单位", val: "btn", slot: "unitTotal" },
|
{ text: "已报到机关单位", val: "btn", slot: "organTotal" },
|
{ text: "已报到企事业单位", val: "btn", slot: "businessTotal" },
|
{ text: "已报到党员", val: "btn", slot: "partyMemberTotal" },
|
],
|
tds: [],
|
isZuZhibuUser: false,
|
StatusObject: {},
|
};
|
},
|
computed: {
|
...mapState({ vuex_page: "pageReset" }),
|
},
|
watch: {
|
vuex_page: {
|
handler(n) {
|
if (n.page === this.$route.path) {
|
this.paged.page = 1;
|
this.init();
|
}
|
},
|
deep: true,
|
},
|
},
|
methods: {
|
// 分页点击
|
onPage(v) {
|
if (v.page === this.paged.page && v.page && !v.reset) {
|
return 0;
|
}
|
this.paged.page = v.page;
|
this.paged.limit = v.limit;
|
this.init();
|
},
|
// 获取数据
|
init() {
|
let v = demo.copy(
|
Object.assign(this.os, {
|
pageNum: this.paged.page,
|
pageSize: this.paged.limit,
|
})
|
);
|
if (!this.isZuZhibuUser && demo.$session.get("user").communityId != 0) {
|
v.communityId = demo.$session.get("user").communityId;
|
}
|
this.$api.post("checkUnit/statistics", v, (e) => {
|
e.records.map((item, index) => {
|
item.index = (this.paged.page - 1) * this.paged.limit + index + 1;
|
});
|
this.paged.total = e.total;
|
this.paged.r++;
|
this.tds = e.records || [];
|
});
|
},
|
handleClick(type, row) {
|
switch (type) {
|
case "businessTotal": {
|
this.$router.push(
|
"/statisticsDetails?name=企事业单位&belongTo=" + row.belongTo
|
);
|
break;
|
}
|
case "organTotal": {
|
this.$router.push(
|
"/statisticsDetails?name=机关单位&belongTo=" + row.belongTo
|
);
|
break;
|
}
|
case "partyMemberTotal": {
|
this.$router.push(
|
"/menberDetails?labelCheckType=1&name=全部党员&belongTo=" +
|
row.belongTo
|
);
|
break;
|
}
|
case "unitTotal": {
|
this.$router.push(
|
"/statisticsDetails?name=全部单位&belongTo=" + row.belongTo
|
);
|
break;
|
}
|
default: {
|
break;
|
}
|
}
|
},
|
getTopData() {
|
let obj = {};
|
if (demo.$session.get("user").communityId != 0) {
|
obj.communityId = demo.$session.get("user").communityId;
|
}
|
this.$api.get("checkUnit/statistics/top", obj, (e) => {
|
this.StatusObject = e;
|
});
|
},
|
},
|
mounted() {
|
this.getTopData();
|
this.isZuZhibuUser = demo.$session.get("user").account == "zuzhibu";
|
if (!this.isZuZhibuUser) {
|
this.trs.splice(5, 1);
|
}
|
},
|
};
|
</script>
|
<style lang='less' scoped>
|
.page_member {
|
overflow-y: auto;
|
.tool {
|
margin: 5px 0 15px;
|
}
|
.cen {
|
display: flex;
|
height: 500px;
|
> div {
|
height: 100%;
|
position: relative;
|
}
|
.list {
|
width: 160px;
|
p {
|
background-color: #f2f2f2;
|
font-size: 14px;
|
font-weight: 650;
|
}
|
.lists {
|
height: calc(~"100% - 40px");
|
}
|
p,
|
li {
|
height: 40px;
|
line-height: 40px;
|
}
|
li {
|
cursor: pointer;
|
transition: all 0.2s;
|
font-size: 13px;
|
text-indent: 5px;
|
}
|
li.active {
|
background-color: #1890ff;
|
color: #fff;
|
}
|
}
|
.tab_data {
|
.page {
|
height: 50px;
|
box-sizing: border-box;
|
padding-top: 10px;
|
}
|
}
|
}
|
}
|
.left-lable-dian {
|
width: 12px;
|
height: 12px;
|
border-radius: 50%;
|
background-color: rgb(24, 135, 240);
|
}
|
</style>
|