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.
239 lines
5.6 KiB
239 lines
5.6 KiB
<template>
|
|
<navigation-general :title="title">
|
|
<u-form :model="form" ref="uForm" label-width="130rpx">
|
|
<u-form-item label="姓名" prop="name"><u-input v-model="form.name" /></u-form-item>
|
|
<u-form-item label="身份证"><u-input v-model="form.credentialNo" /></u-form-item>
|
|
<u-form-item label="手机号" prop="phone"><u-input v-model="form.phone" /></u-form-item>
|
|
<u-form-item label="人员类型">
|
|
<u-checkbox-group @change="checkboxGroupChange">
|
|
<u-checkbox v-model="item.checked" v-for="(item, index) in typeList" :key="index" :name="item.name">
|
|
{{ item.name }}
|
|
</u-checkbox>
|
|
</u-checkbox-group>
|
|
</u-form-item>
|
|
<u-form-item label="户籍" prop="color">
|
|
<u-radio-group v-model="form.color">
|
|
<u-radio v-for="(item, index) in hujiList" :key="index" :name="item.dictLabel">
|
|
{{item.dictLabel}}{{item.dictLabel == "HZ" ? "(有户口自住)" : "(有户口不住)"}}
|
|
|
|
</u-radio>
|
|
</u-radio-group>
|
|
</u-form-item>
|
|
<u-form-item label="流动" prop="color">
|
|
<u-radio-group v-model="form.color">
|
|
<u-radio v-for="(item, index) in liudList" :key="index" :name="item.dictLabel">
|
|
{{item.dictLabel}}{{item.dictLabel == "NZ" ? "(没户口自住)" : "(没户口租客)"}}
|
|
</u-radio>
|
|
</u-radio-group>
|
|
</u-form-item>
|
|
<u-form-item label="工作单位"><u-input v-model="form.workunit" /></u-form-item>
|
|
<u-form-item label="备注"><u-input v-model="form.remark" /></u-form-item>
|
|
</u-form>
|
|
<bottom-btn type="primary" title="提交" @handlerClick="handlerClick"></bottom-btn>
|
|
|
|
|
|
</navigation-general>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
mapGetters
|
|
} from "vuex";
|
|
|
|
import {
|
|
addPerson,
|
|
getPerson,
|
|
updatePerson
|
|
} from "@/api/taicangpop/person.js";
|
|
import {
|
|
getDicts
|
|
} from "@/api/system/dict/data";
|
|
export default {
|
|
|
|
data() {
|
|
return {
|
|
multiple: [],
|
|
hujiList: [],
|
|
liudList: [],
|
|
title: '',
|
|
form: {
|
|
buildingId: undefined,
|
|
color: undefined,
|
|
credentialNo: undefined,
|
|
deptId: undefined,
|
|
houseId: undefined,
|
|
id: null,
|
|
isD: 0,
|
|
isJ: 0,
|
|
isK: 0,
|
|
isX: 0,
|
|
name: undefined,
|
|
phone: undefined,
|
|
remark: undefined,
|
|
type: null,
|
|
userId: null,
|
|
},
|
|
rules: {
|
|
name: [{
|
|
required: true,
|
|
message: '请输入姓名',
|
|
trigger: ['change', 'blur'],
|
|
},
|
|
|
|
],
|
|
phone: [{
|
|
required: true,
|
|
message: '请输入手机号',
|
|
trigger: ['change', 'blur'],
|
|
},
|
|
{
|
|
validator: (rule, value, callback) => {
|
|
console.log("value:" + value);
|
|
if (!/^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/.test(value)) {
|
|
callback(new Error("手机号只能为数字!"));
|
|
} else {
|
|
callback();
|
|
}
|
|
},
|
|
trigger: "blur"
|
|
},
|
|
],
|
|
color: [{
|
|
required: true,
|
|
message: '请选择分色',
|
|
trigger: ['change', 'blur'],
|
|
}],
|
|
},
|
|
typeList: [{
|
|
name: '中共党员',
|
|
key: 'isD',
|
|
checked: false,
|
|
|
|
},
|
|
{
|
|
name: '帮扶对象',
|
|
key: 'isK',
|
|
checked: false,
|
|
|
|
},
|
|
{
|
|
name: '重点人群',
|
|
checked: false,
|
|
key: 'isX',
|
|
|
|
},
|
|
{
|
|
name: '退伍军人',
|
|
key: 'isJ',
|
|
checked: false,
|
|
|
|
},
|
|
]
|
|
};
|
|
},
|
|
computed: {
|
|
...mapGetters(["userId"]),
|
|
},
|
|
onReady() {
|
|
this.$refs.uForm.setRules(this.rules);
|
|
},
|
|
onLoad(option) {
|
|
if (option.personId) {
|
|
this.title = '居民信息修改'
|
|
//获取人员详细信息
|
|
this.getPersonInfo(option.personId)
|
|
} else {
|
|
this.title = '新增居民'
|
|
this.form.buildingId = option.buildingId
|
|
this.form.houseId = option.houseId
|
|
this.form.deptId = option.deptId
|
|
|
|
}
|
|
|
|
this.getDictList()
|
|
},
|
|
methods: {
|
|
async getPersonInfo(personId) {
|
|
const res = await getPerson(personId)
|
|
for (let key in res.data) {
|
|
const item = res.data[key]
|
|
let index = this.typeList.findIndex(it => it.key == key)
|
|
if (index != -1) {
|
|
this.typeList[index].checked = item > 0 ? true : false
|
|
}
|
|
}
|
|
this.form = res.data
|
|
},
|
|
handlerClick() {
|
|
this.$refs.uForm.validate(valid => {
|
|
if (valid) {
|
|
if (this.form.color == "HZ" || this.form.color == "HO") {
|
|
this.form.type = 1;
|
|
} else {
|
|
this.form.type = 2;
|
|
}
|
|
this.form.userId = this.userId
|
|
if (this.form.id != null) {
|
|
updatePerson(this.form).then((response) => {
|
|
uni.showToast({
|
|
title: '修改成功',
|
|
success: () => {
|
|
setTimeout(() => {
|
|
uni.navigateBack()
|
|
}, 1000)
|
|
}
|
|
})
|
|
});
|
|
} else {
|
|
addPerson(this.form).then((res) => {
|
|
uni.showToast({
|
|
title: '新增成功',
|
|
success: () => {
|
|
setTimeout(() => {
|
|
uni.navigateBack()
|
|
}, 1000)
|
|
}
|
|
})
|
|
|
|
});
|
|
}
|
|
|
|
} else {
|
|
console.log('没有痛苦')
|
|
}
|
|
})
|
|
|
|
},
|
|
checkboxGroupChange(e) {
|
|
console.log(e)
|
|
this.form.isD = e.some((item) => item == "中共党员") ?
|
|
1 :
|
|
0;
|
|
this.form.isK = e.some((item) => item == "帮扶对象") ?
|
|
1 :
|
|
0;
|
|
this.form.isJ = e.some((item) => item == "退伍军人") ?
|
|
1 :
|
|
0;
|
|
this.form.isX = e.some((item) => item == "重点人群") ?
|
|
1 :
|
|
0;
|
|
},
|
|
//获取字典
|
|
async getDictList() {
|
|
const res = await getDicts('b_census_color_type')
|
|
this.hujiList = res.data
|
|
const result = await getDicts('b_flow_color_type')
|
|
this.liudList = result.data
|
|
console.log(this.hujiList)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.u-form {
|
|
background: #fff;
|
|
padding: 20rpx;
|
|
}
|
|
</style> |