zxc 3 years ago
parent
commit
3fe6cc06dd
  1. 597
      src/views/modules/communityParty/stas/index.vue

597
src/views/modules/communityParty/stas/index.vue

@ -1,235 +1,180 @@
<template>
<div class="mod-rent__rentDeath resi-container">
<el-card ref="searchCard" class="search-card">
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
label-width="100px">
<el-form-item prop="mySelectOrg" label="所属党组织">
<el-cascader
class="list_item_width_1"
v-model="mySelectOrg"
size="small"
:options="orgList"
placeholder="请选择党组织"
:props="{
checkStrictly: true,
label: 'partyOrgName',
value: 'id',
children: 'children'
}"
@change="handleChangeOrg"
clearable/>
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input
v-model="dataForm.name"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入姓名">
</el-input>
</el-form-item>
<el-form-item label="手机" prop="mobile">
<el-input
v-model="dataForm.mobile"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入手机">
</el-input>
</el-form-item>
<el-form-item label="身份证" prop="idCard">
<el-input
v-model="dataForm.idCard"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入身份证">
</el-input>
</el-form-item>
<br />
<el-form-item label="评分年度" prop="year">
<el-date-picker
class="list_item_width_1"
v-model="dataForm.year"
type="year"
size="small"
placeholder="选择年"
value-format="yyyy">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button
class="diy-button--search"
@click="getDataList()"
size="small">{{ $t('query') }}</el-button>
</el-form-item>
<el-form-item>
<el-button class="diy-button--reset" size="small" @click="resetForm">重置</el-button>
</el-form-item>
<div class="div_main">
<div class="div_search">
<el-form :inline="true"
:model="form"
ref="ref_searchform"
:label-width="'100px'">
<div>
<el-form-item prop="mySelectOrg" label-width="130px" label="参加活动党组织">
<el-cascader
class="list_item_width_1"
v-model="joinOrgIds"
size="small"
:options="orgList"
placeholder="请选择党组织"
:props="partyProps"
@change="handleChangeOrg"
clearable/>
</el-form-item>
<el-form-item label="活动开始时间"
prop="serviceTimeArea">
<el-date-picker v-model="serviceTimeArea"
clearable
type="daterange"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-button style="margin-left:10px"
class="diy-button--search"
size="small"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
class="diy-button--reset"
size="small"
@click="handleExport">导出报表</el-button>
</div>
</el-form>
</el-card>
<el-card class="resi-card-table">
<el-table
class="resi-table"
v-loading="dataListLoading"
:data="dataList"
border
@selection-change="dataListSelectionChangeHandle"
style="width: 100%"
:height="tableHeight">
<el-table-column
label="序号"
header-align="center"
align="center"
width="50px"
>
<template slot-scope="scope">
{{ scope.$index + 1 }}
</template>
</div>
<div class="div_table">
<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="joinOrgName"
header-align="center"
align="center"
label="参加活动党组织"
min-width="100">
</el-table-column>
<el-table-column prop="dydhNum"
header-align="center"
align="center"
label="支部党员大会(次)"
min-width="80">
</el-table-column>
<el-table-column prop="wyhNum"
header-align="center"
align="center"
label="支部委员会(次)"
show-overflow-tooltip
max-width="100">
</el-table-column>
<el-table-column prop="dxzhNum"
header-align="center"
show-overflow-tooltip
align="center"
label="党小组会(次)"
width="80">
</el-table-column>
<el-table-column prop="dkNum"
header-align="center"
align="center"
show-overflow-tooltip
label="党课(次)"
mix-width="230">
</el-table-column>
<el-table-column prop="ztdrNum"
header-align="center"
align="center"
show-overflow-tooltip
label="主题党日(次)"
width="100">
</el-table-column>
<el-table-column prop="wmfwNum"
header-align="center"
align="center"
show-overflow-tooltip
label="为民服务活动(次)"
width="130">
</el-table-column>
<el-table-column
prop="year"
label="年度"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="partyOrg"
label="所属党组织"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="name"
label="姓名"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="idCard"
label="身份证"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="mobile"
label="手机号"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="totalScore"
label="总分"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="basePoint"
label="基础积分分值"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="reviewPoint"
label="民主评议积分分值"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="inspirePoint"
label="激励积分分值"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="warnPoint"
label="警示扣分分值"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="remark"
label="备注"
header-align="center"
align="center"
></el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"
>
</el-pagination>
</el-card>
</div>
</div>
<!-- </el-card> -->
</template>
<script>
import viewPost from '@/mixins/view-post'
import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading //
export default {
mixins: [viewPost],
data() {
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/resi/partymember/icPartyMemberPoint/getList',
getDataListIsPage: true
form: {
joinOrgId: '',
joinOrgType: '',
startTime: '',
endTime: ''
},
mySelectOrg: '',
tableData: [],
orgList: [],
searchH: 0,
dataForm: {
id: '',
orgId: '',
name: '',
idCard: '',
mobile: '',
year: ''
allOrgList: [],
serviceTimeArea: '',
partyOrg: {
partyOrgType: '',
id: ''
},
joinOrgIds: [],
tableLoading: false,
partyProps: {
label: 'partyOrgName',
value: 'id',
checkStrictly: true,
joinOrgType: 'partyOrgType'
}
}
},
computed: {
...mapGetters(['clientHeight', 'iframeHeight']),
tableHeight() {
const h = this.clientHeight - this.searchH - 230 + this.iframeHeigh
const _h = this.clientHeight - 230 - this.searchH
return this.$store.state.inIframe ? h : _h
}
components: {
},
created() {
async created () {
this.getOrgList()
},
mounted() {
this.$nextTick(() => {
this.searchH = this.$refs.searchCard.$el.offsetHeight
console.log('tableHeight', this.tableHeight)
})
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
this.handleSearch()
},
methods: {
resetForm(formName) {
for (const n in this.dataForm) {
this.dataForm[n] = ''
}
this.getDataList()
this.mySelectOrg = ''
handleSearch () {
this.loadTable()
},
handleSizeChange(val) {
console.log(`每页 ${val}`)
this.pageSize = val
this.getDataList()
handleChangeOrg () {
if (this.joinOrgIds.length > 0 && this.joinOrgIds) {
this.form.joinOrgId = this.joinOrgIds[this.joinOrgIds.length - 1]
} else {
this.form.joinOrgId = ''
}
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`)
this.currentPage = val
this.getDataList()
getOrgList() {
return this.$http
.get('/resi/partymember/icPartyOrg/getSearchTreelist', {
params: { agencyId: localStorage.getItem('agencyId') }
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.orgList = this.deepArrTOnull(res.data)
})
.catch(() => {})
},
deepArrTOnull(arr) {
let a = []
@ -239,101 +184,171 @@ export default {
children: (item.children.length > 0 && this.deepArrTOnull(item.children) )|| null
}
})
this.allOrgList = a
return a
},
//
getOrgList() {
return this.$http
.get('/resi/partymember/icPartyOrg/getSearchTreelist', {
params: { agencyId: localStorage.getItem('agencyId') }
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.orgList = this.deepArrTOnull(res.data)
})
.catch(() => {})
},
//
handleChangeOrg(e) {
if (this.mySelectOrg.length > 0 && this.mySelectOrg) {
this.dataForm.orgId = this.mySelectOrg[this.mySelectOrg.length - 1]
async loadTable () {
this.tableLoading = true
if (Array.isArray(this.serviceTimeArea) && this.serviceTimeArea.length > 0) {
this.form.startTime = this.serviceTimeArea[0];
this.form.endTime = this.serviceTimeArea[1];
}else {
this.form.startTime = '';
this.form.endTime = '';
}
if (this.form.joinOrgId === '' || this.form.joinOrgId === null || this.form.joinOrgId === undefined){
let a = this.orgList[0]
this.form.joinOrgId = a.id;
this.form.joinOrgType = a.partyOrgType;
}else {
this.form.joinOrgId = this.partyProps.value;
this.form.joinOrgType = this.partyProps.joinOrgType;
}
console.log('start')
const url = "/resi/partymember/icPartyAct/patryactstatis"
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/patryactstatis"
let params = {
...this.form
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.tableData = data
} else {
this.dataForm.orgId = ''
this.$message.error(msg)
}
this.tableLoading = false
},
//
resetSearch () {
this.form = {
joinOrgId: '',
joinOrgType: '',
startTime: '',
endTime: ''
}
this.serviceTimeArea = ''
this.joinOrgIds = []
this.partyOrg = {
id: '',
partyOrgType: ''
}
this.loadTable()
},
//
async handleExport () {
let title = '党建数据统计'
const url = "/resi/partymember/icPartyAct/export"
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/export"
let params = {
...this.form
}
app.ajax.exportFilePost(
url,
params,
(data, rspMsg) => {
this.download(data, title + '.xls')
},
(rspMsg, data) => {
this.$message.error(rspMsg);
}
);
},
//
download (data, fileName) {
if (!data) {
return
}
var csvData = new Blob([data])
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(csvData, fileName);
}
// for Non-IE (chrome, firefox etc.)
else {
var a = document.createElement('a');
document.body.appendChild(a);
a.style = 'display: none';
var url = window.URL.createObjectURL(csvData);
a.href = url;
a.download = fileName;
a.click();
a.remove();
window.URL.revokeObjectURL(url);
}
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
if (loading) {
loading.close()
}
}
},
computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 350 + this.iframeHeight : this.clientHeight - 350
},
...mapGetters(['clientHeight', 'iframeHeight'])
},
watch: {
},
props: {
}
}
</script>
<style lang="scss" scoped>
@import '@/assets/scss/buttonstyle.scss';
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
@import "@/assets/scss/modules/management/list-main.scss";
.div_main {
width: 100%;
}
.resi-container .resi-card-table {
::v-deep .el-table th {
color: #fff;
background-color: rgba(33, 149, 254, 1);
// border-right: 1px solid rgba(33, 149, 254, 1);
}
.div_search {
background: #ffffff;
border-radius: 4px;
padding: 30px 20px 5px;
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
}
.resi-table {
::v-deep .el-button--text {
text-decoration: underline;
}
::v-deep .btn-color-del {
margin-left: 10px;
color: rgba(213, 16, 16, 1);
}
::v-deep .btn-color-edit {
color: rgba(0, 167, 169, 1);
}
.item_width_1 {
width: 260px;
}
.form-wr {
.input-width {
width: 260px;
}
.input-width-textarea {
width: 500px;
}
.imsg-list {
display: flex;
align-items: center;
.imgs-item {
position: relative;
margin-right: 10px;
.el-icon-delete {
position: absolute;
top: 0;
right: 0;
font-size: 18px;
color: red;
z-index: 3;
cursor: pointer;
}
}
}
.item_width_2 {
width: 620px;
}
.div-content {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
.div_table {
background: #ffffff;
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
border-radius: 4px;
margin-top: 15px;
// padding: 23px 30px 10px;
.table {
margin-top: 20px;
}
}
.resi-row-btn {
.el-row {
/* margin-bottom: 20px; */
display: flex;
margin-bottom: 13px;
.el-button {
margin-left: 10px;
border: 0;
}
// .el-button--success {
// background: rgba(34, 193, 195, 1);
// }
// .el-button--warning {
// background: rgba(254, 179, 73, 1);
// }
// .el-button--danger {
// background: rgba(254, 98, 82, 1);
// }
flex-wrap: wrap;
margin-top: 10px;
margin-right: 50px;
}
</style>

Loading…
Cancel
Save