2 changed files with 498 additions and 6 deletions
@ -0,0 +1,431 @@ |
|||||
|
<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> |
Loading…
Reference in new issue