You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
431 lines
13 KiB
431 lines
13 KiB
|
3 years ago
|
<template>
|
||
|
|
<div class="dialog-h-content scroll-h pd0">
|
||
|
|
<el-form label-width="120px" :model="form" :inline="true"
|
||
|
|
:disabled="disabled" :rules="rules" ref="ruleForm"
|
||
|
|
class="form-wr">
|
||
|
|
<div class="flex-div">
|
||
|
|
<el-form-item label="所属党组织" prop="sszb" class="wd50">
|
||
|
|
<el-cascader
|
||
|
|
v-model="form.sszb"
|
||
|
|
:options="partyList"
|
||
|
|
:props="partyProps"
|
||
|
|
clearable
|
||
|
|
class="input-width"
|
||
|
|
@change="handlePartyChange"></el-cascader>
|
||
|
|
</el-form-item>
|
||
|
|
<el-form-item label="党员中心户" prop="isDyzxh" class="wd50">
|
||
|
|
<el-radio-group v-model="form.isDyzxh">
|
||
|
|
<el-radio label="1">是</el-radio>
|
||
|
|
<el-radio label="0">否</el-radio>
|
||
|
|
</el-radio-group>
|
||
|
|
</el-form-item>
|
||
|
|
</div>
|
||
|
|
<div class="flex-div">
|
||
|
|
<el-form-item label="姓名" prop="name" class="wd50">
|
||
|
|
<el-input v-model="form.name" placeholder="请输入" :disabled="disabled" class="input-width" clearable></el-input>
|
||
|
|
</el-form-item>
|
||
|
|
<el-form-item label="免学习" prop="isMxx" class="wd50">
|
||
|
|
<el-radio-group v-model="form.isMxx">
|
||
|
|
<el-radio label="1">是</el-radio>
|
||
|
|
<el-radio label="0">否</el-radio>
|
||
|
|
</el-radio-group>
|
||
|
|
</el-form-item>
|
||
|
|
</div>
|
||
|
|
<div class="flex-div">
|
||
|
|
<el-form-item label="手机号" prop="mobile" class="wd50">
|
||
|
|
<el-input v-model="form.mobile" placeholder="请输入" :disabled="disabled" class="input-width" clearable />
|
||
|
|
</el-form-item>
|
||
|
|
<el-form-item label="职务" prop="partyZw" class="wd50">
|
||
|
|
<el-select v-model="form.partyZw" filterable :disabled="disabled" placeholder="请选择" class="input-width" clearable>
|
||
|
|
<el-option
|
||
|
|
v-for="item in zwList"
|
||
|
|
:key="item.value"
|
||
|
|
:label="item.label"
|
||
|
|
:value="item.value">
|
||
|
|
</el-option>
|
||
|
|
</el-select>
|
||
|
|
</el-form-item>
|
||
|
|
</div>
|
||
|
|
<div class="flex-div">
|
||
|
|
<el-form-item label="身份证" prop="idCard" class="wd50">
|
||
|
|
<el-input v-model="form.idCard" placeholder="请输入" :disabled="disabled"
|
||
|
|
class="input-width" clearable @blur="handleValidBlur" />
|
||
|
|
</el-form-item>
|
||
|
|
<el-form-item label="文化程度" prop="culture" class="wd50">
|
||
|
|
<el-select v-model="form.culture" filterable :disabled="disabled" placeholder="请选择" class="input-width" clearable>
|
||
|
|
<el-option
|
||
|
|
v-for="item in eduList"
|
||
|
|
:key="item.value"
|
||
|
|
:label="item.label"
|
||
|
|
:value="item.value">
|
||
|
|
</el-option>
|
||
|
|
</el-select>
|
||
|
|
</el-form-item>
|
||
|
|
</div>
|
||
|
|
<div class="flex-div">
|
||
|
|
<el-form-item label="地址" prop="address" class="wd50">
|
||
|
|
<el-input v-model="form.address" placeholder="请输入" :disabled="disabled || isAuto" class="input-width" clearable></el-input>
|
||
|
|
</el-form-item>
|
||
|
|
<el-form-item label="入党时间" prop="rdsj" class="wd50">
|
||
|
|
<el-date-picker
|
||
|
|
v-model="form.rdsj"
|
||
|
|
:disabled="disabled"
|
||
|
|
type="date"
|
||
|
|
class="input-width"
|
||
|
|
clearable
|
||
|
|
placeholder="选择日期"
|
||
|
|
format="yyyy 年 MM 月 dd 日"
|
||
|
|
value-format="yyyy-MM-dd">
|
||
|
|
</el-date-picker>
|
||
|
|
</el-form-item>
|
||
|
|
</div>
|
||
|
|
<div class="flex-div">
|
||
|
|
<el-form-item label="流动党员" prop="isLd" class="wd50">
|
||
|
|
<el-radio-group v-model="form.isLd" class="input-width">
|
||
|
|
<el-radio label="1">是</el-radio>
|
||
|
|
<el-radio label="0">否</el-radio>
|
||
|
|
</el-radio-group>
|
||
|
|
</el-form-item>
|
||
|
|
<el-form-item label="流动党员号" prop="ldzh" class="wd50">
|
||
|
|
<el-input v-model="form.ldzh" placeholder="请输入" :disabled="disabled" class="input-width" clearable></el-input>
|
||
|
|
</el-form-item>
|
||
|
|
</div>
|
||
|
|
<el-form-item label="备注" prop="remark">
|
||
|
|
<el-input v-model="form.remark" :autosize="{ minRows: 4, maxRows: 10}" :disabled="disabled" type="textarea" clearable class="input-width-textarea" placeholder="请输入内容"></el-input>
|
||
|
|
</el-form-item>
|
||
|
|
<div >
|
||
|
|
<div style="margin-top: 20px; text-align: center;">
|
||
|
|
<el-button size="small" @click="handleCancle">取消</el-button>
|
||
|
|
<el-button
|
||
|
|
v-if="form.icResiUser != null && form.icResiUser != ''"
|
||
|
|
type="primary"
|
||
|
|
:disabled="false"
|
||
|
|
size="small"
|
||
|
|
@click="jump(form.icResiUser)">查看更多</el-button>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
</el-form>
|
||
|
|
</div>
|
||
|
|
</template>
|
||
|
|
|
||
|
|
<script>
|
||
|
|
import { isCard, isMobile } from '@/utils/validate'
|
||
|
|
import { computedCard } from '@/utils/index'
|
||
|
|
|
||
|
|
export default {
|
||
|
|
components: {
|
||
|
|
|
||
|
|
},
|
||
|
|
props: {
|
||
|
|
partyList: {
|
||
|
|
type: Array,
|
||
|
|
default: () => []
|
||
|
|
},
|
||
|
|
info: {
|
||
|
|
type: Object,
|
||
|
|
default: () => {}
|
||
|
|
},
|
||
|
|
disabled: {
|
||
|
|
type: Boolean,
|
||
|
|
default: false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
data() {
|
||
|
|
let checkMObile = (rule, value, callback) => {
|
||
|
|
if (value === '') {
|
||
|
|
callback(new Error('请输入手机号'))
|
||
|
|
} else {
|
||
|
|
if (!isMobile(value)) {
|
||
|
|
callback(new Error('手机号格式不正确'))
|
||
|
|
}
|
||
|
|
callback()
|
||
|
|
}
|
||
|
|
}
|
||
|
|
let checkIdCard = (rule, value, callback) => {
|
||
|
|
if (value === '') {
|
||
|
|
callback(new Error('请输入身份证'))
|
||
|
|
} else {
|
||
|
|
if (!isCard(value)) {
|
||
|
|
callback(new Error('身份证号格式不正确'))
|
||
|
|
}
|
||
|
|
callback()
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return {
|
||
|
|
activesName: 'first',
|
||
|
|
isAuto: false,
|
||
|
|
formItemWd: '100%',
|
||
|
|
partymenberid: '',
|
||
|
|
partyProps: {
|
||
|
|
label: 'partyOrgName',
|
||
|
|
value: 'id',
|
||
|
|
emitPath: false
|
||
|
|
},
|
||
|
|
zwList: [
|
||
|
|
{
|
||
|
|
label: '普通党员',
|
||
|
|
value: '0'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
label: '支部书记',
|
||
|
|
value: '1'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
label: '支部委员',
|
||
|
|
value: '2'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
label: '党委委员',
|
||
|
|
value: '3'
|
||
|
|
},
|
||
|
|
],
|
||
|
|
form: {
|
||
|
|
icResiUser: '',
|
||
|
|
name: '',
|
||
|
|
mobile: '',
|
||
|
|
idCard: '',
|
||
|
|
address: '',
|
||
|
|
rdsj: '',
|
||
|
|
sszb: '',
|
||
|
|
isLd: '0',
|
||
|
|
ldzh: '',
|
||
|
|
partyZw: '0',
|
||
|
|
isDyzxh: '0',
|
||
|
|
isMxx: '0',
|
||
|
|
culture: '',
|
||
|
|
remark: ''
|
||
|
|
},
|
||
|
|
eduList: [],
|
||
|
|
rules: {
|
||
|
|
sszb: [{ required: true, message: '所属党组织不能为空', trigger: 'blur' }],
|
||
|
|
name: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
|
||
|
|
mobile: [{ required: true, validator: checkMObile, trigger: 'blur' }],
|
||
|
|
idCard: [{ required: true, validator: checkIdCard, trigger: 'blur' }],
|
||
|
|
},
|
||
|
|
partyOrgs: []
|
||
|
|
}
|
||
|
|
},
|
||
|
|
watch: {
|
||
|
|
info: {
|
||
|
|
handler(val) {
|
||
|
|
if (Object.keys(val).length > 0) {
|
||
|
|
this.form = { ...val }
|
||
|
|
if (val.icResiUserId || val.icResiUser) this.isAuto = true
|
||
|
|
console.log('val----------in', val)
|
||
|
|
console.log('isAuto----------in', this.isAuto)
|
||
|
|
this.partyOrgs = val.orgPids.split(':')
|
||
|
|
console.log('partyOrgs-----', this.partyOrgs)
|
||
|
|
this.partymenberid = val.id
|
||
|
|
}
|
||
|
|
},
|
||
|
|
immediate: true
|
||
|
|
}
|
||
|
|
},
|
||
|
|
created() {
|
||
|
|
this.getEduList()
|
||
|
|
console.log('partyList', this.partyList)
|
||
|
|
},
|
||
|
|
mounted() {
|
||
|
|
const w = document.getElementsByClassName('dialog-h-content')[0]
|
||
|
|
this.formItemWd = w.clientWidth + 'px'
|
||
|
|
},
|
||
|
|
destroyed() {
|
||
|
|
// this.$refs['ruleForm'].resetFields()
|
||
|
|
},
|
||
|
|
methods: {
|
||
|
|
handleCancle() {
|
||
|
|
this.$refs['ruleForm'].resetFields()
|
||
|
|
this.$emit('cancle')
|
||
|
|
},
|
||
|
|
handlePartyChange(val) {
|
||
|
|
console.log('val------pp', val)
|
||
|
|
// if (val.length > 0) {
|
||
|
|
// const i = val.length - 1
|
||
|
|
// this.form.sszb = val[i]
|
||
|
|
// } else this.form.sszb = ''
|
||
|
|
},
|
||
|
|
handleValidBlur(n) {
|
||
|
|
if (!isCard(this.form.idCard)) return
|
||
|
|
const { age } = computedCard(this.form.idCard)
|
||
|
|
this.form.isMxx = age >= 70 ? '1' : '0'
|
||
|
|
this.validateResi()
|
||
|
|
},
|
||
|
|
async getEduList() {
|
||
|
|
await this.$http
|
||
|
|
.post('/sys/dict/data/education')
|
||
|
|
.then(({ data: res }) => {
|
||
|
|
if (res.code !== 0) {
|
||
|
|
return this.$message.error(res.msg)
|
||
|
|
} else {
|
||
|
|
this.eduList = res.data
|
||
|
|
}
|
||
|
|
})
|
||
|
|
.catch(err => {
|
||
|
|
console.log('err', err)
|
||
|
|
return this.$message.error('网络错误')
|
||
|
|
})
|
||
|
|
},
|
||
|
|
async validateResi() {
|
||
|
|
const params = {
|
||
|
|
idCard: this.form.idCard,
|
||
|
|
agencyId: this.$store.state.user.agencyId
|
||
|
|
}
|
||
|
|
await this.$http
|
||
|
|
.post('/epmetuser/icresiuser/getUserByIdCard', params)
|
||
|
|
.then(({ data: res }) => {
|
||
|
|
if (res.code !== 0) {
|
||
|
|
return this.$message.error(res.msg)
|
||
|
|
} else {
|
||
|
|
const { address, icResiUserId } = res.data
|
||
|
|
if (icResiUserId) {
|
||
|
|
this.form.address = address
|
||
|
|
this.isAuto = true
|
||
|
|
} else {
|
||
|
|
this.form.address = ''
|
||
|
|
this.isAuto = false
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
})
|
||
|
|
.catch(err => {
|
||
|
|
console.log('err', err)
|
||
|
|
return this.$message.error('网络错误')
|
||
|
|
})
|
||
|
|
},
|
||
|
|
hadnleSubmitbase() {
|
||
|
|
this.$refs['ruleForm'].validate((valid) => {
|
||
|
|
if (valid) {
|
||
|
|
if (Object.keys(this.info).length > 0) this.editBase()
|
||
|
|
else this.saveBase()
|
||
|
|
} else {
|
||
|
|
console.log('error submit!!');
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
},
|
||
|
|
handleSavePoints(data) {
|
||
|
|
|
||
|
|
const _data = { ...data }
|
||
|
|
const params = {
|
||
|
|
..._data,
|
||
|
|
baseOptions: data.baseOptions.length > 0 ? data.baseOptions.toString() : '',
|
||
|
|
reviewOptions: data.reviewOptions.length > 0 ? data.reviewOptions.toString() : '',
|
||
|
|
inspireOptions: data.inspireOptions.length > 0 ? data.inspireOptions.toString() : '',
|
||
|
|
warnOptions: data.warnOptions.length > 0 ? data.warnOptions.toString() : ''
|
||
|
|
}
|
||
|
|
this.savePoints(params)
|
||
|
|
},
|
||
|
|
async jump(icResiUserId) {
|
||
|
|
this.$emit('saveBase', icResiUserId)
|
||
|
|
},
|
||
|
|
async saveBase() {
|
||
|
|
const params = {
|
||
|
|
...this.form
|
||
|
|
}
|
||
|
|
await this.$http
|
||
|
|
.post('/resi/partymember/icPartyMember/save', params)
|
||
|
|
.then(({ data: res }) => {
|
||
|
|
if (res.code !== 0) {
|
||
|
|
return this.$message.error(res.msg)
|
||
|
|
} else {
|
||
|
|
this.$message.success('保存成功')
|
||
|
|
this.partymenberid = res.data
|
||
|
|
this.$emit('saveBase', true)
|
||
|
|
|
||
|
|
}
|
||
|
|
})
|
||
|
|
.catch(err => {
|
||
|
|
console.log('err', err)
|
||
|
|
return this.$message.error('网络错误')
|
||
|
|
})
|
||
|
|
},
|
||
|
|
async editBase() {
|
||
|
|
const params = {
|
||
|
|
...this.form
|
||
|
|
}
|
||
|
|
await this.$http
|
||
|
|
.post('/resi/partymember/icPartyMember/update', params)
|
||
|
|
.then(({ data: res }) => {
|
||
|
|
if (res.code !== 0) {
|
||
|
|
return this.$message.error(res.msg)
|
||
|
|
} else {
|
||
|
|
this.$message.success('保存成功')
|
||
|
|
this.partymenberid = res.data
|
||
|
|
this.$emit('saveBase', true)
|
||
|
|
|
||
|
|
}
|
||
|
|
})
|
||
|
|
.catch(err => {
|
||
|
|
console.log('err', err)
|
||
|
|
return this.$message.error('网络错误')
|
||
|
|
})
|
||
|
|
},
|
||
|
|
async savePoints(form) {
|
||
|
|
const params = {
|
||
|
|
...form,
|
||
|
|
partyMemberId: this.partymenberid
|
||
|
|
}
|
||
|
|
let url = ''
|
||
|
|
if (form.id) url = '/resi/partymember/icPartyMemberPoint/update'
|
||
|
|
else url = '/resi/partymember/icPartyMemberPoint/save'
|
||
|
|
await this.$http
|
||
|
|
.post(url, params)
|
||
|
|
.then(({ data: res }) => {
|
||
|
|
if (res.code !== 0) {
|
||
|
|
return this.$message.error(res.msg)
|
||
|
|
} else {
|
||
|
|
this.$message.success('保存成功')
|
||
|
|
|
||
|
|
}
|
||
|
|
})
|
||
|
|
.catch(err => {
|
||
|
|
console.log('err', err)
|
||
|
|
return this.$message.error('网络错误')
|
||
|
|
})
|
||
|
|
},
|
||
|
|
async saveRecord(form) {
|
||
|
|
const params = {
|
||
|
|
...form,
|
||
|
|
partyMemberId: this.partymenberid
|
||
|
|
}
|
||
|
|
await this.$http
|
||
|
|
.post('/resi/partymember/icPartyMemberPoint/save', params)
|
||
|
|
.then(({ data: res }) => {
|
||
|
|
if (res.code !== 0) {
|
||
|
|
return this.$message.error(res.msg)
|
||
|
|
} else {
|
||
|
|
this.$message.success('保存成功')
|
||
|
|
|
||
|
|
}
|
||
|
|
})
|
||
|
|
.catch(err => {
|
||
|
|
console.log('err', err)
|
||
|
|
return this.$message.error('网络错误')
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
</script>
|
||
|
|
|
||
|
|
<style lang="scss" scoped>
|
||
|
|
.input-width-textarea {
|
||
|
|
width: 400px;
|
||
|
|
}
|
||
|
|
.input-width {
|
||
|
|
width: 220px;
|
||
|
|
}
|
||
|
|
.flex-div {
|
||
|
|
display: flex;
|
||
|
|
// justify-content: space-between;
|
||
|
|
}
|
||
|
|
.wd50 {
|
||
|
|
width: 50%;
|
||
|
|
}
|
||
|
|
.pdl40 {
|
||
|
|
padding-left: 40px;
|
||
|
|
}
|
||
|
|
.pd0 {
|
||
|
|
padding: 0 !important;
|
||
|
|
}
|
||
|
|
</style>
|