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> <template>
<div class="mod-rent__rentDeath resi-container"> <div class="div_main">
<el-card ref="searchCard" class="search-card"> <div class="div_search">
<el-form <el-form :inline="true"
:inline="true" :model="form"
:model="dataForm" ref="ref_searchform"
@keyup.enter.native="getDataList()" :label-width="'100px'">
label-width="100px"> <div>
<el-form-item prop="mySelectOrg" label="所属党组织"> <el-form-item prop="mySelectOrg" label-width="130px" label="参加活动党组织">
<el-cascader <el-cascader
class="list_item_width_1" class="list_item_width_1"
v-model="mySelectOrg" v-model="joinOrgIds"
size="small" size="small"
:options="orgList" :options="orgList"
placeholder="请选择党组织" placeholder="请选择党组织"
:props="{ :props="partyProps"
checkStrictly: true, @change="handleChangeOrg"
label: 'partyOrgName', clearable/>
value: 'id', </el-form-item>
children: 'children' <el-form-item label="活动开始时间"
}" prop="serviceTimeArea">
@change="handleChangeOrg" <el-date-picker v-model="serviceTimeArea"
clearable/> clearable
</el-form-item> type="daterange"
<el-form-item label="姓名" prop="name"> format="yyyy-MM-dd"
<el-input value-format="yyyy-MM-dd"
v-model="dataForm.name" range-separator="至"
size="small" start-placeholder="开始日期"
class="list_item_width_1" end-placeholder="结束日期">
clearable </el-date-picker>
placeholder="请输入姓名"> </el-form-item>
</el-input> <el-button style="margin-left:10px"
</el-form-item> class="diy-button--search"
<el-form-item label="手机" prop="mobile"> size="small"
<el-input @click="handleSearch">查询</el-button>
v-model="dataForm.mobile" <el-button style="margin-left:10px"
size="small" class="diy-button--reset"
class="list_item_width_1" size="small"
clearable @click="handleExport">导出报表</el-button>
placeholder="请输入手机"> </div>
</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>
</el-form> </el-form>
</el-card> </div>
<el-card class="resi-card-table"> <div class="div_table">
<el-table <el-table class="table"
class="resi-table" :data="tableData"
v-loading="dataListLoading" border
:data="dataList" :height="tableHeight"
border v-loading="tableLoading"
@selection-change="dataListSelectionChangeHandle" :header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
style="width: 100%" style="width: 100%">
:height="tableHeight"> <el-table-column label="序号"
<el-table-column header-align="center"
label="序号" align="center"
header-align="center" type="index"
align="center" width="50"></el-table-column>
width="50px"
> <el-table-column prop="joinOrgName"
<template slot-scope="scope"> header-align="center"
{{ scope.$index + 1 }} align="center"
</template> 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>
<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-table>
<el-pagination </div>
: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> </template>
<script> <script>
import viewPost from '@/mixins/view-post' import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading //
export default { export default {
mixins: [viewPost], data () {
data() {
return { return {
mixinViewModuleOptions: { form: {
getDataListURL: '/resi/partymember/icPartyMemberPoint/getList', joinOrgId: '',
getDataListIsPage: true joinOrgType: '',
startTime: '',
endTime: ''
}, },
mySelectOrg: '', tableData: [],
orgList: [], orgList: [],
searchH: 0, allOrgList: [],
dataForm: { serviceTimeArea: '',
id: '', partyOrg: {
orgId: '', partyOrgType: '',
name: '', id: ''
idCard: '', },
mobile: '', joinOrgIds: [],
year: '' tableLoading: false,
partyProps: {
label: 'partyOrgName',
value: 'id',
checkStrictly: true,
joinOrgType: 'partyOrgType'
} }
} }
}, },
computed: { components: {
...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
}
}, },
created() { async created () {
this.getOrgList() this.getOrgList()
}, },
mounted() { async mounted () {
this.$nextTick(() => { const { user } = this.$store.state
this.searchH = this.$refs.searchCard.$el.offsetHeight this.agencyId = user.agencyId
console.log('tableHeight', this.tableHeight) this.handleSearch()
})
}, },
methods: { methods: {
resetForm(formName) { handleSearch () {
for (const n in this.dataForm) { this.loadTable()
this.dataForm[n] = ''
}
this.getDataList()
this.mySelectOrg = ''
}, },
handleSizeChange(val) { handleChangeOrg () {
console.log(`每页 ${val}`) if (this.joinOrgIds.length > 0 && this.joinOrgIds) {
this.pageSize = val this.form.joinOrgId = this.joinOrgIds[this.joinOrgIds.length - 1]
this.getDataList()
} else {
this.form.joinOrgId = ''
}
}, },
handleCurrentChange(val) { getOrgList() {
console.log(`当前页: ${val}`) return this.$http
this.currentPage = val .get('/resi/partymember/icPartyOrg/getSearchTreelist', {
this.getDataList() 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) { deepArrTOnull(arr) {
let a = [] let a = []
@ -239,101 +184,171 @@ export default {
children: (item.children.length > 0 && this.deepArrTOnull(item.children) )|| null children: (item.children.length > 0 && this.deepArrTOnull(item.children) )|| null
} }
}) })
this.allOrgList = a
return a return a
}, },
// async loadTable () {
getOrgList() { this.tableLoading = true
return this.$http if (Array.isArray(this.serviceTimeArea) && this.serviceTimeArea.length > 0) {
.get('/resi/partymember/icPartyOrg/getSearchTreelist', { this.form.startTime = this.serviceTimeArea[0];
params: { agencyId: localStorage.getItem('agencyId') } this.form.endTime = this.serviceTimeArea[1];
}) }else {
.then(({ data: res }) => { this.form.startTime = '';
if (res.code !== 0) { this.form.endTime = '';
return this.$message.error(res.msg) }
} if (this.form.joinOrgId === '' || this.form.joinOrgId === null || this.form.joinOrgId === undefined){
this.orgList = this.deepArrTOnull(res.data) let a = this.orgList[0]
}) this.form.joinOrgId = a.id;
.catch(() => {}) this.form.joinOrgType = a.partyOrgType;
}, }else {
// this.form.joinOrgId = this.partyProps.value;
handleChangeOrg(e) { this.form.joinOrgType = this.partyProps.joinOrgType;
if (this.mySelectOrg.length > 0 && this.mySelectOrg) { }
this.dataForm.orgId = this.mySelectOrg[this.mySelectOrg.length - 1] 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 { } 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> </script>
<style lang="scss" scoped> <style lang="scss" scoped >
@import '@/assets/scss/buttonstyle.scss'; @import "@/assets/scss/buttonstyle.scss";
@import "@/assets/scss/modules/management/list-main.scss";
.div_main {
width: 100%;
}
.resi-container .resi-card-table { .div_search {
::v-deep .el-table th { background: #ffffff;
color: #fff; border-radius: 4px;
background-color: rgba(33, 149, 254, 1); padding: 30px 20px 5px;
// border-right: 1px solid rgba(33, 149, 254, 1); box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
}
} }
.resi-table {
::v-deep .el-button--text { .item_width_1 {
text-decoration: underline; width: 260px;
}
::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);
}
} }
.form-wr { .item_width_2 {
.input-width { width: 620px;
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;
}
}
}
} }
.div-content {
width: 100%; .div_table {
overflow: hidden; background: #ffffff;
text-overflow: ellipsis; box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
white-space: nowrap; border-radius: 4px;
margin-top: 15px;
// padding: 23px 30px 10px;
.table {
margin-top: 20px;
}
} }
.resi-row-btn {
.el-row {
/* margin-bottom: 20px; */
display: flex; display: flex;
margin-bottom: 13px; flex-wrap: wrap;
.el-button { margin-top: 10px;
margin-left: 10px; margin-right: 50px;
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);
// }
} }
</style> </style>

Loading…
Cancel
Save