|
|
@ -15,8 +15,8 @@ |
|
|
|
@change="handleChangeAgency" |
|
|
|
></el-cascader> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-button class="btnSearch" size="small" @click="handleSearch">查询</el-button> |
|
|
|
<el-button class="diy-button--reset" size="small" @click="resetForm">重置</el-button> |
|
|
|
</div> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
@ -24,8 +24,8 @@ |
|
|
|
<el-row :gutter="20"> |
|
|
|
<el-col :span="12"> |
|
|
|
<div class="div_table_title">党员年龄统计</div> |
|
|
|
<el-row> |
|
|
|
<el-col :span="12"> |
|
|
|
<div class="flex"> |
|
|
|
<div class="width1"> |
|
|
|
<div :style="'height:220px;margin-top:20px'"> |
|
|
|
<screen-echarts-frame |
|
|
|
@handelClickMyPei="handelClickMyPei" |
|
|
@ -34,8 +34,8 @@ |
|
|
|
ref="pieChart" |
|
|
|
></screen-echarts-frame> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
</div> |
|
|
|
<div class="flex1"> |
|
|
|
<div :style="'height:220px;margin-top:20px;display:flex;align-items: center;'"> |
|
|
|
<div class="legend"> |
|
|
|
<div class="legend-row" :key="item.name" v-for="(item, index) in chartData.data" @click="handleClickItem(item)"> |
|
|
@ -48,60 +48,51 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<div class="census_searchcensus2"> |
|
|
|
<div class="census_searchcensus_box"></div> |
|
|
|
<el-button size="small" class="diy-button--output" @click="handleExport('age')">导出</el-button> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-table |
|
|
|
class="table" |
|
|
|
:data="tableDataAge" |
|
|
|
border |
|
|
|
:height="tableHeight" |
|
|
|
v-loading="tableLoadingAge" |
|
|
|
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }" |
|
|
|
style="width: 100%" |
|
|
|
> |
|
|
|
<el-table-column label="序号" header-align="center" align="center" type="index" width="50"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="name" header-align="center" align="center" label="姓名" :show-overflow-tooltip="true" min-width="120"></el-table-column> |
|
|
|
<el-table-column prop="age" header-align="center" align="center" :show-overflow-tooltip="true" label="年龄" min-width="100"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="mobile" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
:show-overflow-tooltip="true" |
|
|
|
label="手机号码" |
|
|
|
min-width="130" |
|
|
|
></el-table-column> |
|
|
|
|
|
|
|
<el-table-column label="操作" fixed="right" width="120" header-align="center" align="center" class="operate"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button type="text" class="div-table-button--detail" size="small" @click="handleDetail(scope.row)">查看</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
|
|
|
|
<el-pagination |
|
|
|
@size-change="pageSizeChangeHandleAge" |
|
|
|
@current-change="pageCurrentChangeHandleAge" |
|
|
|
:current-page.sync="agePageNo" |
|
|
|
:page-sizes="[10, 20, 50, 100, 200]" |
|
|
|
:page-size="agePageSize" |
|
|
|
layout="sizes, prev, pager, next, total" |
|
|
|
:total="ageTotal" |
|
|
|
></el-pagination> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</div> |
|
|
|
> |
|
|
|
</div> |
|
|
|
<div class="census_searchcensus2"> |
|
|
|
<div class="census_searchcensus_box"></div> |
|
|
|
<el-button size="small" class="diy-button--output" @click="handleExport('age')">导出</el-button> |
|
|
|
</div> |
|
|
|
|
|
|
|
<el-table |
|
|
|
class="table" |
|
|
|
:data="tableDataAge" |
|
|
|
border |
|
|
|
:height="tableHeight" |
|
|
|
v-loading="tableLoadingAge" |
|
|
|
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }" |
|
|
|
style="width: 100%" |
|
|
|
> |
|
|
|
<el-table-column label="序号" header-align="center" align="center" type="index" width="50"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="name" header-align="center" align="center" label="姓名" :show-overflow-tooltip="true" min-width="120"></el-table-column> |
|
|
|
<el-table-column prop="age" header-align="center" align="center" :show-overflow-tooltip="true" label="年龄" min-width="100"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="mobile" header-align="center" align="center" :show-overflow-tooltip="true" label="手机号码" min-width="130"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column label="操作" fixed="right" width="120" header-align="center" align="center" class="operate"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button type="text" class="div-table-button--detail" size="small" @click="handleDetail(scope.row)">查看</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
|
|
|
|
<el-pagination |
|
|
|
@size-change="pageSizeChangeHandleAge" |
|
|
|
@current-change="pageCurrentChangeHandleAge" |
|
|
|
:current-page.sync="agePageNo" |
|
|
|
:page-sizes="[10, 20, 50, 100, 200]" |
|
|
|
:page-size="agePageSize" |
|
|
|
layout="sizes, prev, pager, next, total,jumper" |
|
|
|
:total="ageTotal" |
|
|
|
></el-pagination> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<div class="div_table_title">党员学历统计</div> |
|
|
|
<el-row> |
|
|
|
<el-col :span="12"> |
|
|
|
<div class="flex"> |
|
|
|
<div class="width1"> |
|
|
|
<div :style="'height:220px;margin-top:20px'"> |
|
|
|
<screen-echarts-frame2 |
|
|
|
@handelClickMyPei="handelClickMyPei2" |
|
|
@ -110,8 +101,8 @@ |
|
|
|
ref="pieChart2" |
|
|
|
></screen-echarts-frame2> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
</div> |
|
|
|
<div class="flex1"> |
|
|
|
<div :style="'height:220px;margin-top:20px;display:flex;align-items: center;'"> |
|
|
|
<div class="legend"> |
|
|
|
<div class="legend-row" :key="item.name" v-for="(item, index) in chartData2.data" @click="handleClickItem(item)"> |
|
|
@ -124,55 +115,45 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<div class="census_searchcensus2"> |
|
|
|
<div class="census_searchcensus_box"></div> |
|
|
|
<el-button size="small" class="diy-button--output" @click="handleExport('edu')">导出</el-button> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-table |
|
|
|
class="table" |
|
|
|
:data="tableData" |
|
|
|
border |
|
|
|
:height="tableHeight" |
|
|
|
v-loading="tableLoading" |
|
|
|
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }" |
|
|
|
style="width: 100%" |
|
|
|
> |
|
|
|
<el-table-column label="序号" header-align="center" align="center" type="index" width="50"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="name" header-align="center" align="center" label="姓名" :show-overflow-tooltip="true" min-width="120"></el-table-column> |
|
|
|
<el-table-column prop="education" header-align="center" align="center" :show-overflow-tooltip="true" label="学历" min-width="130"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="mobile" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
:show-overflow-tooltip="true" |
|
|
|
label="手机号码" |
|
|
|
min-width="130" |
|
|
|
></el-table-column> |
|
|
|
|
|
|
|
<el-table-column label="操作" fixed="right" width="120" header-align="center" align="center" class="operate"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button type="text" class="div-table-button--detail" size="small" @click="handleDetail(scope.row)">查看</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
|
|
|
|
<el-pagination |
|
|
|
@size-change="pageSizeChangeHandleNew" |
|
|
|
@current-change="pageCurrentChangeHandleNew" |
|
|
|
:current-page.sync="pageNo" |
|
|
|
:page-sizes="[10, 20, 50, 100, 200]" |
|
|
|
:page-size="pageSize" |
|
|
|
layout="sizes, prev, pager, next, total" |
|
|
|
:total="total" |
|
|
|
></el-pagination> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="census_searchcensus2"> |
|
|
|
<div class="census_searchcensus_box"></div> |
|
|
|
<el-button size="small" class="diy-button--output" @click="handleExport('edu')">导出</el-button> |
|
|
|
</div> |
|
|
|
|
|
|
|
<el-table |
|
|
|
class="table" |
|
|
|
:data="tableData" |
|
|
|
border |
|
|
|
:height="tableHeight" |
|
|
|
v-loading="tableLoading" |
|
|
|
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }" |
|
|
|
style="width: 100%" |
|
|
|
> |
|
|
|
<el-table-column label="序号" header-align="center" align="center" type="index" width="50"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="name" header-align="center" align="center" label="姓名" :show-overflow-tooltip="true" min-width="120"></el-table-column> |
|
|
|
<el-table-column prop="education" header-align="center" align="center" :show-overflow-tooltip="true" label="学历" min-width="130"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="mobile" header-align="center" align="center" :show-overflow-tooltip="true" label="手机号码" min-width="130"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column label="操作" fixed="right" width="120" header-align="center" align="center" class="operate"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button type="text" class="div-table-button--detail" size="small" @click="handleDetail(scope.row)">查看</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
|
|
|
|
<el-pagination |
|
|
|
@size-change="pageSizeChangeHandleNew" |
|
|
|
@current-change="pageCurrentChangeHandleNew" |
|
|
|
:current-page.sync="pageNo" |
|
|
|
:page-sizes="[10, 20, 50, 100, 200]" |
|
|
|
:page-size="pageSize" |
|
|
|
layout="sizes, prev, pager, next, total,jumper" |
|
|
|
:total="total" |
|
|
|
></el-pagination> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</div> |
|
|
@ -220,19 +201,26 @@ export default { |
|
|
|
return { |
|
|
|
orgOptions: [], //组织 |
|
|
|
orgOptionProps: { |
|
|
|
//组织 |
|
|
|
multiple: false, |
|
|
|
value: 'agencyId', |
|
|
|
label: 'agencyName', |
|
|
|
children: 'subAgencyList', |
|
|
|
emitPath: false, |
|
|
|
checkStrictly: true |
|
|
|
value: 'id', |
|
|
|
label: 'partyOrgName', |
|
|
|
children: 'children', |
|
|
|
checkStrictly: true, |
|
|
|
emitPath: false |
|
|
|
|
|
|
|
//组织 |
|
|
|
// multiple: false, |
|
|
|
// value: 'agencyId', |
|
|
|
// label: 'agencyName', |
|
|
|
// children: 'subAgencyList', |
|
|
|
// emitPath: false, |
|
|
|
// checkStrictly: true |
|
|
|
}, |
|
|
|
pieInitState: false, |
|
|
|
pieInitState2: false, |
|
|
|
pieOption: [], |
|
|
|
pieOption2: [], |
|
|
|
color: ['#3C94FE', '#A17AFA', '#A19FFF', '#22C1C3', '#6FC364', '#F0D915', '#FEB349', '#FE6252', '#F44230', '#5DC7F0'], |
|
|
|
color: ['#3C94FE', '#A17AFA', '#A19FFF', '#22C1C3', '#6FC364', '#F0D915','#FEB349', '#FE6252', '#F44230', '#5DC7F0'], |
|
|
|
chartData: [], |
|
|
|
chartData2: [], |
|
|
|
pieData: [], |
|
|
@ -297,7 +285,9 @@ export default { |
|
|
|
await nextTick(100); |
|
|
|
await this.getOrgTreeList(); |
|
|
|
// await this.getPartyOggList(); |
|
|
|
|
|
|
|
console.log(this.$store.state); |
|
|
|
this.user = this.$store.state.user; |
|
|
|
this.agencyId = this.user.agencyId; |
|
|
|
this.getAgeCount(); |
|
|
|
this.getEduCount(); |
|
|
|
this.getAgeList(); |
|
|
@ -307,10 +297,18 @@ export default { |
|
|
|
// this.getGridList('query'); |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
resetForm() { |
|
|
|
for (const n in this.formData) { |
|
|
|
if (typeof this.formData[n] == 'object') this.formData[n] = []; |
|
|
|
else this.formData[n] = ''; |
|
|
|
} |
|
|
|
}, |
|
|
|
handleChangeAgency(val) { |
|
|
|
let obj = this.$refs['myCascader'].getCheckedNodes()[0].data; |
|
|
|
console.log('obj', obj); |
|
|
|
if (obj) { |
|
|
|
this.orgType = obj.level === 'grid' ? 'grid' : 'agency'; |
|
|
|
// this.orgType = obj.level === 'grid' ? 'grid' : 'agency'; |
|
|
|
// this.orgType = obj.level |
|
|
|
} else { |
|
|
|
this.orgType = ''; |
|
|
|
} |
|
|
@ -748,27 +746,46 @@ export default { |
|
|
|
this.visibleLoading = false; |
|
|
|
}, |
|
|
|
|
|
|
|
getOrgTreeList() { |
|
|
|
const { user } = this.$store.state; |
|
|
|
this.$http |
|
|
|
.post('/gov/org/customeragency/agencygridtree', {}) |
|
|
|
.then(({ data: res }) => { |
|
|
|
if (res.code !== 0) { |
|
|
|
return this.$message.error(res.msg); |
|
|
|
} else { |
|
|
|
console.log('获取组织树成功', res.data); |
|
|
|
// let { agencyList, subAgencyList } = res.data; |
|
|
|
// const _arr = [{ ...agencyList, subAgencyList: [...subAgencyList] }]; |
|
|
|
// this.orgOptions = this.deepTree(_arr); |
|
|
|
this.orgOptions = []; |
|
|
|
this.orgOptions.push(res.data); |
|
|
|
async getOrgTreeList() { |
|
|
|
function deleteChildren(arr) { |
|
|
|
let childs = arr; |
|
|
|
for (let i = childs.length; i--; i > 0) { |
|
|
|
if (childs[i].children) { |
|
|
|
if (childs[i].children.length) { |
|
|
|
this.deleteChildren(childs[i].children); |
|
|
|
} else { |
|
|
|
delete childs[i].children; |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch(() => { |
|
|
|
return this.$message.error('网络错误'); |
|
|
|
}); |
|
|
|
}, |
|
|
|
} |
|
|
|
return arr; |
|
|
|
} |
|
|
|
|
|
|
|
const { user } = this.$store.state; |
|
|
|
const url = '/resi/partymember/icPartyOrg/getSearchTreelist'; |
|
|
|
let params = { |
|
|
|
agencyId: user.agencyId |
|
|
|
}; |
|
|
|
|
|
|
|
const { data, code, msg } = await requestGet(url, params); |
|
|
|
console.log('data-orgparty----o', data); |
|
|
|
if (code === 0) { |
|
|
|
this.orgOptions = data; |
|
|
|
this.changeKey(this.orgOptions); |
|
|
|
} else { |
|
|
|
} |
|
|
|
}, |
|
|
|
changeKey(arr) { |
|
|
|
for (var i = 0; i < arr.length; i++) { |
|
|
|
arr[i].value = arr[i].userId; |
|
|
|
arr[i].label = arr[i].userName; |
|
|
|
if (arr[i].children.length) { |
|
|
|
this.changeKey(arr[i].children); |
|
|
|
} else { |
|
|
|
delete arr[i].children; |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
jumpDetail(val) { |
|
|
|
this.memberDialog = false; |
|
|
|
this.$router.push({ |
|
|
@ -822,10 +839,10 @@ export default { |
|
|
|
edu: '/epmetuser/icresiuser/partymembereducationlist/export' |
|
|
|
}; |
|
|
|
const _arr = this.selectAgency[this.selectAgency.length - 1].split('-'); |
|
|
|
const orgType = _arr[1] !== 'grid' ? 'agency' : 'grid'; |
|
|
|
|
|
|
|
let params = { |
|
|
|
orgId: _arr[0], |
|
|
|
orgType: orgType, |
|
|
|
orgId: this.orgId, |
|
|
|
orgType: this.orgType, |
|
|
|
code: type == 'age' ? this.ageCode : this.eduCode |
|
|
|
}; |
|
|
|
// .post('epmetuser/icresiuser/exportExcel', params) |
|
|
@ -1003,4 +1020,13 @@ export default { |
|
|
|
border-radius: 6px; |
|
|
|
color: #fff; |
|
|
|
} |
|
|
|
.flex { |
|
|
|
display: flex; |
|
|
|
.width1 { |
|
|
|
width: 220px; |
|
|
|
} |
|
|
|
.flex1 { |
|
|
|
flex: 1; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |
|
|
|