Browse Source

跳转

feature
zxc 3 years ago
parent
commit
29b02c3f59
  1. 431
      src/views/modules/visual/communityParty/crateForm.vue
  2. 73
      src/views/modules/visual/communityParty/party.vue

431
src/views/modules/visual/communityParty/crateForm.vue

@ -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>

73
src/views/modules/visual/communityParty/party.vue

@ -131,6 +131,18 @@
</cpt-card> </cpt-card>
<el-dialog
title="党员信息"
:visible.sync="memberDialog"
width="60%"
top="5vh"
class="dialog-h"
append-to-body
:close-on-click-modal="false"
:before-close="handlerCancle">
<crate-form v-if="memberDialog" :info="memberDetailInfo" :partyList="optionsG" :disabled="disabled"
@saveBase="jumpDetail" @cancle="handlerCancle" />
</el-dialog>
</div> </div>
</template> </template>
@ -140,6 +152,7 @@ import screenTable from "../components/screen-table/index";
import cptCard from "@/views/modules/visual/cpts/card"; import cptCard from "@/views/modules/visual/cpts/card";
import nextTick from "dai-js/tools/nextTick"; import nextTick from "dai-js/tools/nextTick";
import screenEchartsFrame from "../components/screen-echarts-frame"; import screenEchartsFrame from "../components/screen-echarts-frame";
import crateForm from './crateForm.vue';
import { pieOption } from './options' import { pieOption } from './options'
import * as echarts from 'echarts'; import * as echarts from 'echarts';
@ -148,10 +161,15 @@ export default {
components: { components: {
cptCard, cptCard,
screenTable, screenTable,
screenEchartsFrame screenEchartsFrame,
crateForm
}, },
data() { data() {
return { return {
memberDialog: false,
disabled: true,
memberDetailInfo: {},
optionsG: [],
headerList: [ headerList: [
{ title: "序号", coulmn: 'index' }, { title: "序号", coulmn: 'index' },
{ title: "姓名", coulmn: 'name' }, { title: "姓名", coulmn: 'name' },
@ -289,7 +307,32 @@ export default {
// this.initChartType() // this.initChartType()
}, },
async created() {
this.getGridList('query')
},
methods: { methods: {
handleSearch () {
this.memberDialog = false
},
handlerCancle () {
this.memberDialog = false
},
async getGridList(type, agencyId) {
const { user } = await this.$store.state
// addorupdate query
await this.$http
.get('/resi/partymember/icPartyOrg/getSearchTreelist', { params: {agencyId: agencyId || user.agencyId} })
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.optionsG = this.deepArrTOnull(res.data)
}
})
.catch(() => {
return this.$message.error('网络错误')
})
},
pieInitOk (dom) { pieInitOk (dom) {
console.log('pie准备好了', dom) console.log('pie准备好了', dom)
this.pieAgeChartS = dom this.pieAgeChartS = dom
@ -719,14 +762,32 @@ export default {
return arr return arr
}, },
handleClickRow(val) { handleClickRow(val) {
console.log('click-row----', val) this.getDetail(val.userId)
if (!val.icResiUser) { this.memberDialog = true
return this.$message.warning('该党员居民信息未完善') },
} jumpDetail (val) {
this.memberDialog = false
this.$router.push({ this.$router.push({
path: `/main-shuju/visual-basicinfo-people/${val.icResiUser}`, path: `/main-shuju/visual-basicinfo-people/${val}`,
}); });
}, },
getDetail(id) {
let params = {
id,
}
this.$http
.post(`/resi/partymember/icPartyMember/${id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.memberDetailInfo = { ...res.data }
}
})
.catch((err) => {
return this.$message.error('网络错误')
})
},
handleCascader(val) { handleCascader(val) {
console.log('val-vvv', val) console.log('val-vvv', val)
const _arr = val[val.length - 1].split('-') const _arr = val[val.length - 1].split('-')

Loading…
Cancel
Save