<template>
|
<div class="page_member">
|
<v-header :title="pageTitle"></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 fl-al">
|
<el-radio-group v-model="unitCheckType" @change="unitCheckHandle">
|
<el-radio-button label="全部单位">全部单位</el-radio-button>
|
<el-radio-button label="机关单位">机关单位</el-radio-button>
|
<el-radio-button label="企事业单位">企事业单位</el-radio-button>
|
</el-radio-group>
|
<div class="fl-al mr-l-50">
|
<span>关键字搜索:</span>
|
<el-input
|
class="input-width mr-r-10"
|
v-model="searchVal"
|
placeholder="单位名称、党组织负责人"
|
></el-input>
|
<el-button type="primary" @click="searchHandle">查询</el-button>
|
</div>
|
</div>
|
<!-- 正文 -->
|
<div class="cen">
|
<div class="tab_data">
|
<div class="tab">
|
<v-tool-table :trs="trs" :tds="tds"> </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 {
|
searchVal: "",
|
pageTitle: "直属市",
|
os: {},
|
total: 0,
|
paged: { page: 0, total: 0, r: 0, limit: 10 },
|
trs: [
|
{ text: "序号", val: "index" },
|
{ text: "单位名称", val: "name" },
|
{ text: "单位性质", val: "natureName" },
|
{ text: "单位归属", val: "belongTo" },
|
{ text: "服务社区", val: "helpCommunityName" },
|
{ text: "下沉服务小区(网格)院落", val: "villageName" },
|
{ text: "社区联系人", val: "helpCommunityContactsName" },
|
{ text: "社区联系人电话", val: "helpCommunityContacts" },
|
{ text: "党组织负责人", val: "contacts" },
|
{ text: "党组织负责人电话", val: "phone" },
|
{ text: "职能特长及服务意愿", val: "specialtyName" },
|
{ text: "单位管理员", val: "adminName" },
|
{ text: "管理员手机号", val: "adminPhone" },
|
],
|
tds: [],
|
isZuZhibuUser: false,
|
StatusObject: {},
|
unitCheckType: "全部单位",
|
};
|
},
|
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: {
|
natureNameReturnText(text) {
|
let label = "";
|
switch (text) {
|
case "全部单位": {
|
label = null;
|
break;
|
}
|
case "机关单位": {
|
label = "机关单位";
|
break;
|
}
|
case "企事业单位": {
|
label = "企事业单位";
|
break;
|
}
|
default: {
|
label = null;
|
break;
|
}
|
}
|
return label;
|
},
|
searchHandle() {
|
this.paged.page = 1;
|
this.paged.limit = 10;
|
this.init();
|
},
|
// 分页点击
|
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();
|
},
|
unitCheckHandle() {
|
this.paged.page = 1;
|
this.paged.limit = 10;
|
this.init();
|
},
|
// 获取数据
|
init() {
|
let v = demo.copy(
|
Object.assign(this.os, {
|
pageNum: this.paged.page,
|
pageSize: this.paged.limit,
|
natureName: this.natureNameReturnText(this.unitCheckType),
|
belongTo: this.pageTitle,
|
keyWord: this.searchVal,
|
})
|
);
|
if (!this.isZuZhibuUser&&demo.$session.get("user").communityId != 0) {
|
v.communityId = demo.$session.get("user").communityId;
|
}
|
this.$api.post("checkUnit/page", v, (e) => {
|
this.paged.total = e.total;
|
e.records.map((item, index) => {
|
item.index = (this.paged.page - 1) * this.paged.limit + index + 1;
|
});
|
this.paged.r++;
|
this.tds = e.records || [];
|
});
|
},
|
getTopData() {
|
let obj = {};
|
if (demo.$session.get("user").communityId != 0) {
|
obj.communityId = demo.$session.get("user").communityId;
|
}
|
obj.choice = this.pageTitle;
|
this.$api.get("checkUnit/statistics/top", obj, (e) => {
|
this.StatusObject = e;
|
});
|
},
|
},
|
mounted() {
|
const ROUTE_VALUE = this.$route.query;
|
this.pageTitle = ROUTE_VALUE.belongTo;
|
this.unitCheckType = ROUTE_VALUE.name;
|
this.isZuZhibuUser = demo.$session.get("user").account == "zuzhibu";
|
this.getTopData();
|
},
|
};
|
</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);
|
}
|
.input-width {
|
width: 300px;
|
}
|
</style>
|