4 changed files with 939 additions and 0 deletions
@ -0,0 +1,152 @@ |
|||||
|
<template> |
||||
|
<el-dialog :visible="visible" |
||||
|
append-to-body |
||||
|
@close="visible = false" |
||||
|
title="提示-身份证号重复"> |
||||
|
<el-form :model="dataForm" |
||||
|
:rules="dataRule" |
||||
|
ref="dataForm" |
||||
|
@keyup.enter.native="dataFormSubmitHandle()" |
||||
|
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> |
||||
|
<p> |
||||
|
党员库中存在与该用户相同身份证号的用户,用户信息如下: |
||||
|
</p> |
||||
|
<el-table v-loading="dataListLoading" |
||||
|
:data="partyMembers" |
||||
|
border |
||||
|
@row-click.native="detail" |
||||
|
style="width: 100%;"> |
||||
|
<el-table-column label="选择" |
||||
|
align="center" |
||||
|
width="50px"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-checkbox v-model="scope.row.checked" |
||||
|
@change="changeCurrentRow($event, scope.$index, scope.row.id)" > |
||||
|
</el-checkbox> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column label="序号" |
||||
|
align="center" |
||||
|
width="50px"><template slot-scope="scope">{{scope.$index+1}}</template></el-table-column> |
||||
|
<el-table-column prop="realName" |
||||
|
label="姓名" |
||||
|
header-align="center" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column prop="identityNo" |
||||
|
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> |
||||
|
<p style="font-size: 13px;color: red;"> |
||||
|
注意:“通过并更新党员库信息”会将党员库中的原始数据更新,并将用户认证通过为党员,请谨慎操作。 |
||||
|
</p> |
||||
|
</el-form> |
||||
|
<template slot="footer"> |
||||
|
<el-button type="primary" |
||||
|
:disabled="isAble" |
||||
|
@click="passAndUpdatePartyMemberInfo()">{{ '通过并更新党员库信息' }}</el-button> |
||||
|
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import mixinViewModule from '@/mixins/view-module' |
||||
|
|
||||
|
export default { |
||||
|
mixins: [mixinViewModule], |
||||
|
data () { |
||||
|
return { |
||||
|
visible: false, |
||||
|
isAble: false, |
||||
|
dataForm: { |
||||
|
id: '', |
||||
|
partyFlag: '', |
||||
|
state: '', |
||||
|
remark: '', |
||||
|
realName: '', |
||||
|
mobile: '', |
||||
|
identityNo: '', |
||||
|
partyMemberId: '' |
||||
|
}, |
||||
|
partyMembers: [] |
||||
|
} |
||||
|
}, |
||||
|
computed: { |
||||
|
dataRule () { |
||||
|
return { |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
init () { |
||||
|
this.visible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs['dataForm'].resetFields() |
||||
|
this.dataForm.partyMemberId = '' |
||||
|
for (let index in this.partyMembers) { |
||||
|
this.partyMembers[index].checked = false |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
changeCurrentRow (val, rowIndex, id) { |
||||
|
const data = this.partyMembers |
||||
|
for (let index in data) { |
||||
|
let index1 = parseInt(index) |
||||
|
if (index1 === rowIndex) { |
||||
|
data[index1].checked = val |
||||
|
if (val) { |
||||
|
this.dataForm.partyMemberId = id |
||||
|
} else { |
||||
|
this.dataForm.partyMemberId = '' |
||||
|
} |
||||
|
} else { |
||||
|
data[index1].checked = false |
||||
|
} |
||||
|
} |
||||
|
this.partyMembers = data |
||||
|
}, |
||||
|
detail (row, column) { |
||||
|
if (column.property === 'checked') { |
||||
|
} |
||||
|
}, |
||||
|
passAndUpdatePartyMemberInfo () { |
||||
|
if (this.dataForm.partyMemberId === '') { |
||||
|
return this.$message.error('请选择一条更新记录') |
||||
|
} |
||||
|
this.isAble = true |
||||
|
let postData = { |
||||
|
userId: this.dataForm.id, |
||||
|
state: this.dataForm.state, |
||||
|
partyFlag: this.dataForm.partyFlag, |
||||
|
remark: this.dataForm.remark, |
||||
|
realName: this.dataForm.realName, |
||||
|
mobile: this.dataForm.mobile, |
||||
|
identityNo: this.dataForm.identityNo, |
||||
|
partyMemberId: this.dataForm.partyMemberId |
||||
|
} |
||||
|
this.$http[!this.dataForm.id ? 'post' : 'post']('/app-user/user/updatePartyInfo/', postData).then(({ data: res }) => { |
||||
|
this.isAble = false |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.$message({ |
||||
|
message: this.$t('prompt.success'), |
||||
|
type: 'success', |
||||
|
duration: 500, |
||||
|
onClose: () => { |
||||
|
this.visible = false |
||||
|
this.$emit('secondDialogCallBack', true) |
||||
|
} |
||||
|
}) |
||||
|
}).catch(() => { }) |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
} |
||||
|
} |
||||
|
</script> |
@ -0,0 +1,290 @@ |
|||||
|
<template> |
||||
|
<el-dialog :visible.sync="visible" |
||||
|
title="审核" |
||||
|
:modal-append-to-body="false" |
||||
|
:close-on-click-modal="false" |
||||
|
:close-on-press-escape="false"> |
||||
|
<el-form :model="dataForm" |
||||
|
:rules="dataRule" |
||||
|
ref="dataForm" |
||||
|
@keyup.enter.native="dataFormSubmitHandle()" |
||||
|
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> |
||||
|
<el-form-item label="姓名" |
||||
|
prop="realName"> |
||||
|
<el-input v-model="dataForm.realName" |
||||
|
placeholder="请输入" |
||||
|
clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="手机号" |
||||
|
prop="mobile"> |
||||
|
<el-input v-model="dataForm.mobile" |
||||
|
placeholder="请输入" |
||||
|
clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="身份证号" |
||||
|
prop="identityNo"> |
||||
|
<el-input v-model="dataForm.identityNo" |
||||
|
placeholder="请输入" |
||||
|
clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="认证网格" |
||||
|
prop="allDeptNames"> |
||||
|
<span>{{dataForm.allDeptNames}}</span> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="居民住址" |
||||
|
prop="address"> |
||||
|
<span>{{dataForm.address}}</span> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="认证历史" |
||||
|
prop="realName" |
||||
|
v-if="true"> |
||||
|
<span>累计提交认证{{dataForm.totalSubmitNum}}次 通过{{dataForm.totalPassSubmitNum}}次, 不通过{{dataForm.totalFailNum}}次</span> |
||||
|
|
||||
|
<el-button type="text" size="small" @click="userAuthenticateHistoryListHandle(dataForm.id)">查看详情</el-button> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="是否党员" |
||||
|
prop="partyFlag"> |
||||
|
<template> |
||||
|
<el-radio v-model="dataForm.partyFlag" |
||||
|
label="1">是</el-radio> |
||||
|
<el-radio v-model="dataForm.partyFlag" |
||||
|
label="0">否</el-radio> |
||||
|
</template> |
||||
|
<p style="font-size: 13px;color: red;line-height: 30px"> |
||||
|
选“是”该用户会认证为党员,并加入到已认证党列表<br> |
||||
|
选“否”该用户会认证为居民,并加入已认证居民列表 |
||||
|
</p> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="扫码网格"> |
||||
|
<el-table :data="userGridList" |
||||
|
style="width: 100%"> |
||||
|
<el-table-column prop="allDeptNames" |
||||
|
label="街道-社区-网格"> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="grid" |
||||
|
label="网格名称" v-if="false"> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="leaderFlag" |
||||
|
label="是否为网格长" |
||||
|
:formatter="showLeaderFlagFormatter"> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="认证备注" |
||||
|
prop="remark"> |
||||
|
<el-input v-model="dataForm.remark" |
||||
|
maxlength="50" |
||||
|
show-word-limit |
||||
|
placeholder="审核备注"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template slot="footer"> |
||||
|
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
||||
|
<el-button type="primary" |
||||
|
:disabled="isAble" |
||||
|
@click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> |
||||
|
</template> |
||||
|
<!-- 身份证号重复 --> |
||||
|
<identityno-repeat v-if="identityNoRepeatVisible" |
||||
|
@secondDialogCallBack="secondDialogCallBack" |
||||
|
ref="identitynoRepeat"></identityno-repeat> |
||||
|
<!-- 姓名重复 --> |
||||
|
<real-name-repeat v-if="realNameRepeatVisible" |
||||
|
@secondDialogCallBack="secondDialogCallBack" |
||||
|
ref="realNameRepeat"></real-name-repeat> |
||||
|
<authenticate-history v-if="authenticateHistoryVisible" |
||||
|
ref="authenticateHistory"></authenticate-history> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import debounce from 'lodash/debounce' |
||||
|
import IdentitynoRepeat from './identityno-repeat' |
||||
|
import RealNameRepeat from './real-name-repeat' |
||||
|
import AuthenticateHistory from './authenticate-history' |
||||
|
|
||||
|
export default { |
||||
|
data () { |
||||
|
return { |
||||
|
visible: false, |
||||
|
identityNoRepeatVisible: false, |
||||
|
realNameRepeatVisible: false, |
||||
|
isAble: false, |
||||
|
dataForm: { |
||||
|
id: '', |
||||
|
partyFlag: '', |
||||
|
cadreFlag: '', |
||||
|
state: '', |
||||
|
tagIds: [], |
||||
|
remark: '', |
||||
|
totalSubmitNum: '', |
||||
|
totalPassSubmitNum: '', |
||||
|
totalFailNum: '', |
||||
|
realName: '', |
||||
|
mobile: '', |
||||
|
identityNo: '' |
||||
|
}, |
||||
|
authenticateHistoryVisible: false, |
||||
|
cadreOptions: [{ cadreFlag: '1', cadreTitle: '是' }, { cadreFlag: '0', cadreTitle: '否' }], |
||||
|
tagOptions: [], |
||||
|
userGridList: [] |
||||
|
} |
||||
|
}, |
||||
|
computed: { |
||||
|
dataRule () { |
||||
|
return { |
||||
|
realName: [ |
||||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
||||
|
], |
||||
|
mobile: [ |
||||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
||||
|
], |
||||
|
identityNo: [ |
||||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
||||
|
], |
||||
|
partyFlag: [ |
||||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
init () { |
||||
|
this.visible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs['dataForm'].resetFields() |
||||
|
if (this.dataForm.id) { |
||||
|
this.getInfo() |
||||
|
} |
||||
|
}) |
||||
|
this.getTagOptions() |
||||
|
}, |
||||
|
getTagOptions () { |
||||
|
this.$http.get(`/app-user/usertag/list`).then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.tagOptions = res.data |
||||
|
}).catch(() => { }) |
||||
|
}, |
||||
|
// 获取信息 |
||||
|
getInfo () { |
||||
|
this.$http.get(`/app-user/user/${this.dataForm.id}`).then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.dataForm = { |
||||
|
...this.dataForm, |
||||
|
...res.data |
||||
|
} |
||||
|
this.dataForm.partyFlag = '' |
||||
|
this.dataForm.tagIds = [] |
||||
|
}).catch(() => { }) |
||||
|
this.$http.get(`/app-user/usergrid/listUserGrid/${this.dataForm.id}`).then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.userGridList = res.data |
||||
|
}).catch(() => { }) |
||||
|
}, |
||||
|
// 审核 |
||||
|
dataFormSubmitHandle: debounce(function () { |
||||
|
this.$refs['dataForm'].validate((valid) => { |
||||
|
if (!valid) { |
||||
|
return false |
||||
|
} |
||||
|
this.isAble = true |
||||
|
let postData = { |
||||
|
tagIds: this.dataForm.tagIds, |
||||
|
id: this.dataForm.id, |
||||
|
state: this.dataForm.state, |
||||
|
partyFlag: this.dataForm.partyFlag, |
||||
|
cadreFlag: this.dataForm.cadreFlag, |
||||
|
remark: this.dataForm.remark, |
||||
|
realName: this.dataForm.realName, |
||||
|
mobile: this.dataForm.mobile, |
||||
|
identityNo: this.dataForm.identityNo |
||||
|
} |
||||
|
this.$http[!this.dataForm.id ? 'post' : 'post']('/app-user/user/partyReview/', postData).then(({ data: res }) => { |
||||
|
this.isAble = false |
||||
|
if (res.code === 1) { |
||||
|
// 身份证号有重复记录 |
||||
|
this.identityNoRepeatVisible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs.identitynoRepeat.dataForm.id = this.dataForm.id |
||||
|
this.$refs.identitynoRepeat.dataForm.partyFlag = this.dataForm.partyFlag |
||||
|
this.$refs.identitynoRepeat.dataForm.remark = this.dataForm.remark |
||||
|
this.$refs.identitynoRepeat.dataForm.realName = this.dataForm.realName |
||||
|
this.$refs.identitynoRepeat.dataForm.mobile = this.dataForm.mobile |
||||
|
this.$refs.identitynoRepeat.dataForm.identityNo = this.dataForm.identityNo |
||||
|
this.$refs.identitynoRepeat.partyMembers = res.data |
||||
|
this.$refs.identitynoRepeat.init() |
||||
|
}) |
||||
|
} else if (res.code === 2) { |
||||
|
// 姓名有重复记录 |
||||
|
this.realNameRepeatVisible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs.realNameRepeat.dataForm.id = this.dataForm.id |
||||
|
this.$refs.realNameRepeat.dataForm.partyFlag = this.dataForm.partyFlag |
||||
|
this.$refs.realNameRepeat.dataForm.remark = this.dataForm.remark |
||||
|
this.$refs.realNameRepeat.dataForm.realName = this.dataForm.realName |
||||
|
this.$refs.realNameRepeat.dataForm.mobile = this.dataForm.mobile |
||||
|
this.$refs.realNameRepeat.dataForm.identityNo = this.dataForm.identityNo |
||||
|
this.$refs.realNameRepeat.partyMembers = res.data |
||||
|
this.$refs.realNameRepeat.init() |
||||
|
}) |
||||
|
} else if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} else { |
||||
|
this.$message({ |
||||
|
message: this.$t('prompt.success'), |
||||
|
type: 'success', |
||||
|
duration: 500, |
||||
|
onClose: () => { |
||||
|
this.visible = false |
||||
|
this.$emit('refreshDataList') |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
}).catch(() => { }) |
||||
|
}) |
||||
|
}, 1000, { 'leading': true, 'trailing': false }), |
||||
|
registerResult (userId) { |
||||
|
this.$http.get(`api/message/sms/registerResult?userId=` + userId).then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
}).catch(() => { }) |
||||
|
}, |
||||
|
// 查看详情 |
||||
|
userAuthenticateHistoryListHandle (userId) { |
||||
|
if (!this.dataForm.totalSubmitNum > 0) { |
||||
|
return this.$message.error('累计提交' + this.dataForm.totalSubmitNum + '次,没有认证历史记录') |
||||
|
} |
||||
|
this.authenticateHistoryVisible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs.authenticateHistory.dataForm.userId = userId |
||||
|
this.$refs.authenticateHistory.init() |
||||
|
}) |
||||
|
}, |
||||
|
showLeaderFlagFormatter (row, column, cellValue, index) { |
||||
|
if (cellValue === '1') { |
||||
|
return '是' |
||||
|
} else { |
||||
|
return '否' |
||||
|
} |
||||
|
}, |
||||
|
secondDialogCallBack (value) { |
||||
|
if (value) { |
||||
|
this.visible = false |
||||
|
this.$emit('firstDialogCallBack', true) |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
IdentitynoRepeat, |
||||
|
RealNameRepeat, |
||||
|
AuthenticateHistory |
||||
|
} |
||||
|
} |
||||
|
</script> |
@ -0,0 +1,316 @@ |
|||||
|
<template> |
||||
|
<el-card shadow="never" |
||||
|
class="aui-card--fill"> |
||||
|
<div class="mod-epdc__user}"> |
||||
|
<el-form :inline="true" |
||||
|
:model="dataForm" |
||||
|
@keyup.enter.native="getDataList()"> |
||||
|
<el-form-item label="所属机构"> |
||||
|
<el-cascader v-model="deptIdList" |
||||
|
:options="options" |
||||
|
:props="{ checkStrictly: true }" |
||||
|
clearable> |
||||
|
</el-cascader> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="街道" |
||||
|
v-if="false"> |
||||
|
<el-select v-model="dataForm.streetId" |
||||
|
clearable |
||||
|
placeholder="请选择" |
||||
|
@change="getCommunityList"> |
||||
|
<el-option v-for="(item,index) in streetOptions" |
||||
|
:key="index" |
||||
|
:label="item.name" |
||||
|
:value="item.id"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="社区" |
||||
|
v-if="false"> |
||||
|
<el-select v-model="dataForm.communityId" |
||||
|
clearable |
||||
|
placeholder="请选择" |
||||
|
@change="getGridList"> |
||||
|
<el-option v-for="(item,index) in communityOptions" |
||||
|
:key="index" |
||||
|
:label="item.name" |
||||
|
:value="item.id"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="网格" |
||||
|
v-if="false"> |
||||
|
<el-select v-model="dataForm.gridId" |
||||
|
clearable |
||||
|
placeholder="请选择"> |
||||
|
<el-option v-for="(item,index) in gridOptions" |
||||
|
:key="index" |
||||
|
:label="item.name" |
||||
|
:value="item.id"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="姓名"> |
||||
|
<el-input v-model="dataForm.realName" |
||||
|
placeholder="请输入" |
||||
|
clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="手机号"> |
||||
|
<el-input v-model="dataForm.mobile" |
||||
|
placeholder="请输入" |
||||
|
clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<!-- <div class="block"> --> |
||||
|
<span class="demonstration">注册时间</span> |
||||
|
<el-date-picker @change='setRegistTime' |
||||
|
v-model="time" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
type="daterange" |
||||
|
range-separator="至" |
||||
|
start-placeholder="开始日期" |
||||
|
end-placeholder="结束日期"></el-date-picker> |
||||
|
<el-form-item> |
||||
|
<el-button @click="getDataList()">{{ $t('query') }}</el-button> |
||||
|
</el-form-item> |
||||
|
<el-form-item> |
||||
|
<el-button v-if="$hasPermission('epdc:user:export')" |
||||
|
type="primary" |
||||
|
@click="exportHandle()">{{ $t('export') }}</el-button> |
||||
|
</el-form-item> |
||||
|
<!-- </div> --> |
||||
|
</el-form> |
||||
|
<el-table v-loading="dataListLoading" |
||||
|
:data="dataList" |
||||
|
border |
||||
|
@selection-change="dataListSelectionChangeHandle" |
||||
|
style="width: 100%;"> |
||||
|
<el-table-column type="selection" |
||||
|
header-align="center" |
||||
|
align="center" |
||||
|
width="50"></el-table-column> |
||||
|
<el-table-column label="序号" |
||||
|
width="70px"><template slot-scope="scope">{{scope.$index+1}}</template></el-table-column> |
||||
|
<el-table-column prop="realName" |
||||
|
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="identityNo" |
||||
|
label="身份证号" |
||||
|
header-align="center" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column prop="allDeptNames" |
||||
|
label="认证网格" |
||||
|
header-align="center" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column prop="address" |
||||
|
label="居住地址" |
||||
|
header-align="center" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column prop="updatedTime" |
||||
|
label="提交时间" |
||||
|
header-align="center" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column :label="$t('handle')" |
||||
|
fixed="right" |
||||
|
header-align="center" |
||||
|
align="center" |
||||
|
width="150"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-button type="text" |
||||
|
size="small" |
||||
|
@click="partyReview(scope.row.id)">手动审核</el-button> |
||||
|
</template> |
||||
|
</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> |
||||
|
<!-- 党员认证 --> |
||||
|
<party-review v-if="partyReviewVisible" |
||||
|
@firstDialogCallBack="firstDialogCallBack" |
||||
|
ref="partyReview" |
||||
|
@refreshDataList="getDataList"></party-review> |
||||
|
</div> |
||||
|
</el-card> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import mixinViewModule from '@/mixins/view-module' |
||||
|
import PartyReview from './party-review' |
||||
|
export default { |
||||
|
mixins: [mixinViewModule], |
||||
|
data () { |
||||
|
return { |
||||
|
mixinViewModuleOptions: { |
||||
|
getDataListURL: 'app-user/user/waitPartyPage', |
||||
|
getDataListIsPage: true, |
||||
|
deleteURL: '/app-use/user', |
||||
|
deleteIsBatch: true, |
||||
|
exportURL: '/app-user/user/exportWaitParty' |
||||
|
}, |
||||
|
dataForm: { |
||||
|
id: '', |
||||
|
streetId: '', |
||||
|
communityId: '', |
||||
|
gridId: '', |
||||
|
realName: '', |
||||
|
mobile: '', |
||||
|
identityNo: '', |
||||
|
startTime: '', |
||||
|
endTime: '', |
||||
|
partyFlag: '0', // 是否是党员(0-否,1-是) |
||||
|
state: '1' |
||||
|
}, |
||||
|
deptIdList: [], |
||||
|
options: [], |
||||
|
partyReviewVisible: false, |
||||
|
streetOptions: [], |
||||
|
communityOptions: [], |
||||
|
gridOptions: [], |
||||
|
time: '', |
||||
|
tabFlag: '1', // 对应原来的待审核用户 |
||||
|
state: '未认证用户', |
||||
|
partyFlagOptions: [{ id: '1', name: '是' }, { id: '0', name: '否' }] |
||||
|
} |
||||
|
}, |
||||
|
created () { |
||||
|
this.$http |
||||
|
.get(`/sys/user/deptOptions/getByLoginUser`) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.options = res.data.options |
||||
|
}) |
||||
|
.catch(() => { }) |
||||
|
}, |
||||
|
watch: { |
||||
|
'deptIdList': function (val) { |
||||
|
if (val.length === 0) { |
||||
|
this.dataForm.streetId = '' |
||||
|
this.dataForm.communityId = '' |
||||
|
this.dataForm.gridId = '' |
||||
|
} |
||||
|
if (val.length === 1) { |
||||
|
this.dataForm.streetId = this.deptIdList[0] |
||||
|
this.dataForm.communityId = '' |
||||
|
this.dataForm.gridId = '' |
||||
|
} |
||||
|
if (val.length === 2) { |
||||
|
this.dataForm.streetId = this.deptIdList[0] |
||||
|
this.dataForm.communityId = this.deptIdList[1] |
||||
|
this.dataForm.gridId = '' |
||||
|
} |
||||
|
if (val.length === 3) { |
||||
|
this.dataForm.streetId = this.deptIdList[0] |
||||
|
this.dataForm.communityId = this.deptIdList[1] |
||||
|
this.dataForm.gridId = this.deptIdList[2] |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
getStreetList () { |
||||
|
this.$http.get(`/sys/dept/sublist/` + (localStorage.getItem('street') === null ? '1169154711480528897' : localStorage.getItem('street'))).then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.streetOptions = res.data |
||||
|
}).catch(() => { }) |
||||
|
}, |
||||
|
getCommunityList () { |
||||
|
this.communityOptions = this.gridOptions = [] |
||||
|
this.dataForm.communityId = this.dataForm.gridId = null |
||||
|
if (this.dataForm.streetId) { |
||||
|
this.$http.get(`/sys/dept/sublist/` + this.dataForm.streetId).then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.communityOptions = res.data |
||||
|
}).catch(() => { }) |
||||
|
} |
||||
|
}, |
||||
|
getGridList () { |
||||
|
this.gridOptions = [] |
||||
|
this.dataForm.gridId = null |
||||
|
if (this.dataForm.communityId) { |
||||
|
this.$http.get(`/sys/dept/sublist/` + this.dataForm.communityId).then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.gridOptions = res.data |
||||
|
}).catch(() => { }) |
||||
|
} |
||||
|
}, |
||||
|
setRegistTime () { |
||||
|
this.dataForm.startTime = this.time[0] |
||||
|
this.dataForm.endTime = this.time[1] |
||||
|
}, |
||||
|
formatState: function (row, column) { |
||||
|
let state = row.state |
||||
|
if (state === '1') { |
||||
|
return '待审核' |
||||
|
} else if (state === '2') { |
||||
|
return '审核不通过' |
||||
|
} else if (state === '3') { |
||||
|
return '审核通过' |
||||
|
} else if (state === '0') { |
||||
|
return '已注册' |
||||
|
} |
||||
|
}, |
||||
|
formatPartyFlag: function (row, column) { |
||||
|
return row.partyFlag === '1' ? '是' : row.state === '0' ? '未知' : '否' |
||||
|
}, |
||||
|
// 获取数据列表 |
||||
|
getDataList () { |
||||
|
if (this.time === null) { |
||||
|
this.dataForm.startTime = '' |
||||
|
this.dataForm.endTime = '' |
||||
|
} |
||||
|
this.dataListLoading = true |
||||
|
this.$http.get( |
||||
|
this.mixinViewModuleOptions.getDataListURL, |
||||
|
{ |
||||
|
params: { |
||||
|
order: this.order, |
||||
|
orderField: this.orderField, |
||||
|
page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null, |
||||
|
limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null, |
||||
|
...this.dataForm |
||||
|
} |
||||
|
} |
||||
|
).then(({ data: res }) => { |
||||
|
this.dataListLoading = false |
||||
|
if (res.code !== 0) { |
||||
|
this.dataList = [] |
||||
|
this.total = 0 |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.dataList = this.mixinViewModuleOptions.getDataListIsPage ? res.data.list : res.data |
||||
|
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0 |
||||
|
}).catch(() => { |
||||
|
this.dataListLoading = false |
||||
|
}) |
||||
|
}, |
||||
|
partyReview (userId) { |
||||
|
this.partyReviewVisible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs.partyReview.dataForm.id = userId |
||||
|
this.$refs.partyReview.init() |
||||
|
}) |
||||
|
}, |
||||
|
firstDialogCallBack (value) { |
||||
|
if (value) { |
||||
|
this.getDataList() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
PartyReview |
||||
|
} |
||||
|
} |
||||
|
</script> |
@ -0,0 +1,181 @@ |
|||||
|
<template> |
||||
|
<el-dialog :visible="visible" |
||||
|
append-to-body |
||||
|
@close="visible = false" |
||||
|
title="提示-姓名重复"> |
||||
|
<el-form :model="dataForm" |
||||
|
:rules="dataRule" |
||||
|
ref="dataForm" |
||||
|
@keyup.enter.native="dataFormSubmitHandle()" |
||||
|
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> |
||||
|
<p> |
||||
|
党员库中存在与该用户相同姓名的用户,用户信息如下: |
||||
|
</p> |
||||
|
<el-table v-loading="dataListLoading" |
||||
|
:data="partyMembers" |
||||
|
border |
||||
|
@row-click.native="detail" |
||||
|
style="width: 100%;"> |
||||
|
<el-table-column label="选择" |
||||
|
align="center" |
||||
|
width="50px"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-checkbox v-model="scope.row.checked" |
||||
|
@change="changeCurrentRow($event, scope.$index, scope.row.id)" > |
||||
|
</el-checkbox> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column label="序号" |
||||
|
width="70px"><template slot-scope="scope">{{scope.$index+1}}</template></el-table-column> |
||||
|
<el-table-column prop="realName" |
||||
|
label="姓名" |
||||
|
header-align="center" |
||||
|
align="center"></el-table-column> |
||||
|
<el-table-column prop="identityNo" |
||||
|
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> |
||||
|
<p style="font-size: 13px;color: red;"> |
||||
|
注意:“通过”则将该用户作为新党员认证通过,并加入到已认证党员列表;“通过并更新党员库”会将党员库中的原始数据更新,并将用户认证通过为党员同时加入已认证党员列表;请确认用户信息后谨慎操作。 |
||||
|
</p> |
||||
|
</el-form> |
||||
|
<template slot="footer"> |
||||
|
<el-button type="primary" |
||||
|
:disabled="isAble" |
||||
|
@click="passPartyReview()">{{ '通过' }}</el-button> |
||||
|
<el-button type="primary" |
||||
|
:disabled="isAble" |
||||
|
@click="passAndUpdatePartyMemberInfo()">{{ '通过并更新党员库信息' }}</el-button> |
||||
|
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import mixinViewModule from '@/mixins/view-module' |
||||
|
|
||||
|
export default { |
||||
|
mixins: [mixinViewModule], |
||||
|
data () { |
||||
|
return { |
||||
|
visible: false, |
||||
|
isAble: false, |
||||
|
dataForm: { |
||||
|
id: '', |
||||
|
partyFlag: '', |
||||
|
state: '', |
||||
|
remark: '', |
||||
|
realName: '', |
||||
|
mobile: '', |
||||
|
identityNo: '', |
||||
|
partyMemberId: '' |
||||
|
}, |
||||
|
partyMembers: [] |
||||
|
} |
||||
|
}, |
||||
|
computed: { |
||||
|
dataRule () { |
||||
|
return { |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
init () { |
||||
|
this.visible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs['dataForm'].resetFields() |
||||
|
this.dataForm.partyMemberId = '' |
||||
|
for (let index in this.partyMembers) { |
||||
|
this.partyMembers[index].checked = false |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
changeCurrentRow (val, rowIndex, id) { |
||||
|
const data = this.partyMembers |
||||
|
for (let index in data) { |
||||
|
let index1 = parseInt(index) |
||||
|
if (index1 === rowIndex) { |
||||
|
data[index1].checked = val |
||||
|
if (val) { |
||||
|
this.dataForm.partyMemberId = id |
||||
|
} else { |
||||
|
this.dataForm.partyMemberId = '' |
||||
|
} |
||||
|
} else { |
||||
|
data[index1].checked = false |
||||
|
} |
||||
|
} |
||||
|
this.partyMembers = data |
||||
|
}, |
||||
|
detail (row, column) { |
||||
|
if (column.property === 'checked') { |
||||
|
} |
||||
|
}, |
||||
|
passPartyReview () { |
||||
|
this.isAble = true |
||||
|
let postData = { |
||||
|
userId: this.dataForm.id, |
||||
|
state: this.dataForm.state, |
||||
|
partyFlag: this.dataForm.partyFlag, |
||||
|
remark: this.dataForm.remark, |
||||
|
realName: this.dataForm.realName, |
||||
|
mobile: this.dataForm.mobile, |
||||
|
identityNo: this.dataForm.identityNo |
||||
|
} |
||||
|
this.$http[!this.dataForm.id ? 'post' : 'post']('/app-user/user/insertPartyInfo/', postData).then(({ data: res }) => { |
||||
|
this.isAble = false |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.$message({ |
||||
|
message: this.$t('prompt.success'), |
||||
|
type: 'success', |
||||
|
duration: 500, |
||||
|
onClose: () => { |
||||
|
this.visible = false |
||||
|
this.$emit('secondDialogCallBack', true) |
||||
|
} |
||||
|
}) |
||||
|
}).catch(() => { }) |
||||
|
}, |
||||
|
passAndUpdatePartyMemberInfo () { |
||||
|
if (this.dataForm.partyMemberId === '') { |
||||
|
return this.$message.error('请选择一条更新记录') |
||||
|
} |
||||
|
this.isAble = true |
||||
|
let postData = { |
||||
|
userId: this.dataForm.id, |
||||
|
state: this.dataForm.state, |
||||
|
partyFlag: this.dataForm.partyFlag, |
||||
|
remark: this.dataForm.remark, |
||||
|
realName: this.dataForm.realName, |
||||
|
mobile: this.dataForm.mobile, |
||||
|
identityNo: this.dataForm.identityNo, |
||||
|
partyMemberId: this.dataForm.partyMemberId |
||||
|
} |
||||
|
this.$http[!this.dataForm.id ? 'post' : 'post']('/app-user/user/updatePartyInfo/', postData).then(({ data: res }) => { |
||||
|
this.isAble = false |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} |
||||
|
this.$message({ |
||||
|
message: this.$t('prompt.success'), |
||||
|
type: 'success', |
||||
|
duration: 500, |
||||
|
onClose: () => { |
||||
|
this.visible = false |
||||
|
this.$emit('secondDialogCallBack', true) |
||||
|
} |
||||
|
}) |
||||
|
}).catch(() => { }) |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
} |
||||
|
} |
||||
|
</script> |
Loading…
Reference in new issue