Browse Source

居民信息所属组织调整

feature
jiangyuying 2 years ago
parent
commit
4291740c55
  1. 423
      src/views/components/resiForm.vue
  2. 8
      src/views/modules/base/resi.vue
  3. 4
      src/views/modules/base/residentManagement/housingNature/addForm.vue
  4. 10
      src/views/modules/base/residentManagement/louzhang/addForm.vue
  5. 4
      src/views/modules/base/residentManagement/louzhang/louzhangList.vue
  6. 4
      src/views/modules/base/residentManagement/tefu/addForm.vue
  7. 4
      src/views/modules/base/residentManagement/tefu/tefuList.vue

423
src/views/components/resiForm.vue

@ -1,170 +1,180 @@
<template> <template>
<div class="g-main "> <div class="g-main ">
<el-form class="resi-form m-search" <el-form class="m-search"
:model="form" :model="form"
ref="formId"> ref="formId">
<el-form-item prop="gridId" <div>
:rules="rulesForm.gridId"
label="所属组织" <el-form-item v-if="formType==='add'"
label-width="100px"> prop="gridId"
<el-select v-model.trim="form.gridId" :rules="rulesForm.gridId"
placeholder="请选择网格" label="所属组织"
size="small" label-width="100px">
clearable <el-cascader class="item-agency"
class="u-item-width-normal" ref="myCascader"
@change="handleChangeGrid">
<el-option v-for="item in optionsG"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="所属房屋"
label-width="100px"
:required="true">
<div class="f-flex">
<el-form-item prop="villageId"
class="u-item-width-communitycascader f-bto0"
:rules="rulesForm.villageId">
<el-select v-model.trim="form.villageId"
placeholder="请选择小区"
size="small"
class="u-item-width-communitycascader f-bto0"
clearable clearable
@change="handleChangeV">
<el-option v-for="item in optionsV"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="buildId"
:rules="rulesForm.buildId">
<el-select v-model.trim="form.buildId"
placeholder="楼号"
size="small" size="small"
clearable v-model=" selGridId"
class="u-item-width-buildcascader f-bto0" :options="orgOptions"
@change="handleChangeB"> :props="orgOptionProps"
<el-option v-for="item in optionsB" @change="handleChangeAgency"></el-cascader>
:key="item.value"
:label="item.label" </el-form-item>
:value="item.value"> <el-form-item v-else
</el-option> prop="gridId"
</el-select> :rules="rulesForm.gridId"
</el-form-item> label="所属组织"
<el-form-item prop="unitId" label-width="100px">
:rules="rulesForm.unitId"> <span>{{form.gridName||'--'}}</span>
<el-select v-model.trim="form.unitId"
placeholder="单元" </el-form-item>
size="small" </div>
clearable <div class="resi-form">
class="u-item-width-buildcascader f-bto0" <el-form-item label="所属房屋"
@change="handleChangeD"> label-width="100px"
<el-option v-for="item in optionsD" :required="true">
:key="item.value" <div class="f-flex">
:label="item.label" <el-form-item prop="villageId"
:value="item.value"> class="u-item-width-communitycascader f-bto0"
</el-option> :rules="rulesForm.villageId">
</el-select> <el-select v-model.trim="form.villageId"
</el-form-item> placeholder="请选择小区"
<el-form-item prop="homeId" size="small"
:rules="rulesForm.homeId"> class="u-item-width-communitycascader f-bto0"
<el-select v-model.trim="form.homeId" clearable
placeholder="房号" @change="handleChangeV">
<el-option v-for="item in optionsV"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="buildId"
:rules="rulesForm.buildId">
<el-select v-model.trim="form.buildId"
placeholder="楼号"
size="small"
clearable
class="u-item-width-buildcascader f-bto0"
@change="handleChangeB">
<el-option v-for="item in optionsB"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="unitId"
:rules="rulesForm.unitId">
<el-select v-model.trim="form.unitId"
placeholder="单元"
size="small"
clearable
class="u-item-width-buildcascader f-bto0"
@change="handleChangeD">
<el-option v-for="item in optionsD"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="homeId"
:rules="rulesForm.homeId">
<el-select v-model.trim="form.homeId"
placeholder="房号"
size="small"
clearable
class="u-item-width-buildcascader f-bto0"
@change="handleChangeH">
<el-option v-for="item in optionsH"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</el-form-item>
<el-form-item v-for="(item,index) in basicInformation"
:label-width="'100px'"
:label="item.label"
:key="index"
:class="item.itemType=='textarea'?'textareaDidth':''"
:rules="item.rules"
:prop="item.formName">
<template v-if="item.itemType == 'radio'">
<section class="u-item-width-normal">
<el-radio v-for="ns in item.opction"
:key="ns.value"
size="small"
v-model.trim="form[item.formName]"
:label="ns.value">
{{ ns.label }}</el-radio>
</section>
</template>
<template v-if="item.itemType == 'input'">
<el-input clearable
size="small"
:placeholder="`请输入${item.label}`"
v-model.trim="form[item.formName]"
class="u-item-width-normal"
@blur="handleValidBlur(item)">
</el-input>
</template>
<template v-else-if="item.itemType == 'select'">
<el-select v-model="form[item.formName]"
:placeholder="`请选择${item.label}`"
size="small" size="small"
clearable clearable
class="u-item-width-buildcascader f-bto0" class="u-item-width-normal">
@change="handleChangeH"> <el-option v-for="items in item.opction "
<el-option v-for="item in optionsH" :key="items.value"
:key="item.value" :label="items.label"
:label="item.label" :value="items.value">
:value="item.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </template>
</div> <template v-else-if="item.itemType == 'textarea'">
</el-form-item> <el-input type="textarea"
<el-form-item v-for="(item,index) in basicInformation" placeholder="请输入内容"
:label-width="'100px'" class="item-width-textarea"
:label="item.label" maxlength="120"
:key="index" show-word-limit
:class="item.itemType=='textarea'?'textareaDidth':''" resize="none"
:rules="item.rules" rows="3"
:prop="item.formName"> v-model.trim="form[item.formName]">
<template v-if="item.itemType == 'radio'"> </el-input>
<section class="u-item-width-normal"> </template>
<el-radio v-for="ns in item.opction" <template v-else-if="item.itemType == 'checkbox'"
:key="ns.value" :label="item.label">
size="small" <el-checkbox v-for="(items,indexs) in item.opction"
v-model.trim="form[item.formName]" style="width:70px"
:label="ns.value"> :key="indexs"
{{ ns.label }}</el-radio> :label="items.label"
</section> :true-label="'1'"
</template> :false-label="'0'"
<template v-if="item.itemType == 'input'"> size="small"
<el-input clearable v-model="form[items.formName]"
size="small" @change="val => handleChangeCheckbox(items,val)">
:placeholder="`请输入${item.label}`" </el-checkbox>
v-model.trim="form[item.formName]" </template>
class="u-item-width-normal" <template v-else-if="item.itemType == 'datepicker'"
@blur="handleValidBlur(item)"> :label="item.label">
</el-input> <el-date-picker v-model.trim="form.birthday"
</template> class="u-item-width-normal"
<template v-else-if="item.itemType == 'select'"> type="date"
<el-select v-model="form[item.formName]" size="small"
:placeholder="`请选择${item.label}`" clearable
size="small" placeholder="选择日期"
clearable format="yyyy 年 MM 月 dd 日"
class="u-item-width-normal"> value-format="yyyy-MM-dd">
<el-option v-for="items in item.opction " </el-date-picker>
:key="items.value" </template>
:label="items.label"
:value="items.value"> </el-form-item>
</el-option> </div>
</el-select>
</template>
<template v-else-if="item.itemType == 'textarea'">
<el-input type="textarea"
placeholder="请输入内容"
class="item-width-textarea"
maxlength="120"
show-word-limit
resize="none"
rows="3"
v-model.trim="form[item.formName]">
</el-input>
</template>
<template v-else-if="item.itemType == 'checkbox'"
:label="item.label">
<el-checkbox v-for="(items,indexs) in item.opction"
style="width:70px"
:key="indexs"
:label="items.label"
:true-label="'1'"
:false-label="'0'"
size="small"
v-model="form[items.formName]"
@change="val => handleChangeCheckbox(items,val)">
</el-checkbox>
</template>
<template v-else-if="item.itemType == 'datepicker'"
:label="item.label">
<el-date-picker v-model.trim="form.birthday"
class="u-item-width-normal"
type="date"
size="small"
clearable
placeholder="选择日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd">
</el-date-picker>
</template>
</el-form-item>
<!-- 这里开始就是底部的input了-------------------------------------------------------------------> <!-- 这里开始就是底部的input了------------------------------------------------------------------->
<el-tabs v-model="activeName" <el-tabs v-model="activeName"
@tab-click="handleClickTab"> @tab-click="handleClickTab">
@ -401,9 +411,14 @@ export default {
type: String, type: String,
default: 'resiForm' default: 'resiForm'
}, },
formType: {
type: String,
default: 'add'
},
}, },
data () { data () {
return { return {
selGridId: [],
optionsV: [], optionsV: [],
optionsB: [], optionsB: [],
optionsH: [], optionsH: [],
@ -413,6 +428,17 @@ export default {
validateFlag: null, validateFlag: null,
disabilityCategoryCode: [], disabilityCategoryCode: [],
tabFlag: true, tabFlag: true,
orgOptions: [],
orgOptionProps: {
value: 'agencyId',
label: 'agencyName',
children: 'subAgencyList',
emitPath: false,
multiple: false,
checkStrictly: true
},
// input // input
basicInformation: [ basicInformation: [
{ {
@ -1555,14 +1581,60 @@ export default {
}, },
}, },
created () { created () {
this.getGridList() this.getOrgTreeList()
this.getAllDict() this.getAllDict()
this.setNewForm() this.setNewForm()
}, },
methods: { methods: {
getOrgTreeList () {
const { user } = this.$store.state;
this.$http
.post('/gov/org/customeragency/agencygridtree', {})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
console.log('获取组织树成功', res.data);
this.orgOptions = [];
this.orgOptions.push(res.data);
}
})
.catch(() => {
return this.$message.error('网络错误');
});
},
handleChangeAgency (val) {
let obj = this.$refs['myCascader'].getCheckedNodes()[0] ? this.$refs['myCascader'].getCheckedNodes()[0].data : null;
console.log('obj', obj);
console.log('gridId', this.gridId);
console.log('val', val);
if (obj) {
if (obj.level === 'grid') {
this.form.gridId = obj.agencyId;
this.form.agencyId = obj.pid
this.form.villageId = '';
this.form.buildId = '';
this.form.unitId = '';
this.form.homeId = '';
this.getValiheList();
} else {
this.selGridId = []
this.form.gridId = ''
this.form.agencyId = ''
this.$message.info('请选择网格')
return false
}
}
},
submit_from () { submit_from () {
this.setJSON() this.setJSON()
@ -1617,19 +1689,7 @@ export default {
} }
}, },
getGridList () {
const { user } = this.$store.state
this.$http.post('/gov/org/customergrid/gridoption', { agencyId: user.agencyId, purpose: 'addorupdate' }).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.optionsG = res.data
}
}).catch(() => {
return this.$message.error('网络错误')
})
},
getValiheList () { getValiheList () {
const { user } = this.$store.state const { user } = this.$store.state
this.$http.post('/actual/base/communityQuarters/listQuartersOptions', { gridId: this.form.gridId, agencyId: user.agencyId }).then(({ data: res }) => { this.$http.post('/actual/base/communityQuarters/listQuartersOptions', { gridId: this.form.gridId, agencyId: user.agencyId }).then(({ data: res }) => {
@ -1812,23 +1872,7 @@ export default {
} }
}, },
handleChangeGrid (val) {
for (let n of this.optionsG) {
if (n.value == val) {
this.form.gridName = n.label
}
}
this.form.villageId = ''
this.form.buildId = ''
this.form.unitId = ''
this.form.homeId = ''
this.getValiheList()
if (!val) {
this.getBuildList()
this.getUniList()
this.getHouseList()
}
},
validateIdcard (idCard, type) { validateIdcard (idCard, type) {
this.$http this.$http
.post('/epmetuser/icresiuser/getUserRoleByIdCard', { idCard }) .post('/epmetuser/icresiuser/getUserRoleByIdCard', { idCard })
@ -2823,4 +2867,7 @@ export default {
.f-bto0 { .f-bto0 {
margin-bottom: 0px !important; margin-bottom: 0px !important;
} }
.item-agency {
width: 400px;
}
</style> </style>

8
src/views/modules/base/resi.vue

@ -341,6 +341,7 @@
<div class="dialog-h-content scroll-h"> <div class="dialog-h-content scroll-h">
<resi-form v-if="dialogVisible" <resi-form v-if="dialogVisible"
ref="baseForm" ref="baseForm"
:formType="formType"
:fixed="true" :fixed="true"
:resi-id="editUserId" :resi-id="editUserId"
@changegroup="handleChangeGroup" /> @changegroup="handleChangeGroup" />
@ -496,6 +497,7 @@ export default {
isIndeterminate: false, isIndeterminate: false,
dialogEditVisible: false, dialogEditVisible: false,
dialogVisible: false, dialogVisible: false,
formType: 'add',
// //
dialogVisible2: false, dialogVisible2: false,
lookResiId: "", lookResiId: "",
@ -712,8 +714,8 @@ export default {
}, },
filterEdit (id) { filterEdit (id) {
const { user } = this.$store.state; const { user } = this.$store.state;
// return true; // return true; //
return id === user.agencyId; // return id === user.agencyId;
}, },
selectionChange (selection) { selectionChange (selection) {
this.selection = selection; this.selection = selection;
@ -990,6 +992,7 @@ export default {
async handleEdit (row) { async handleEdit (row) {
this.editUserId = row.resiId; this.editUserId = row.resiId;
this.formName = "编辑居民"; this.formName = "编辑居民";
this.formType = 'edit'
this.dialogVisible = true; this.dialogVisible = true;
await this.residentBaseInfo(); await this.residentBaseInfo();
}, },
@ -1013,6 +1016,7 @@ export default {
}, },
async handleAdd () { async handleAdd () {
this.formType = 'add'
this.formName = "新增居民"; this.formName = "新增居民";
this.editUserId = ""; this.editUserId = "";
this.dialogVisible = true; this.dialogVisible = true;

4
src/views/modules/base/residentManagement/housingNature/addForm.vue

@ -22,7 +22,7 @@
<el-cascader v-if="formType == 'add'" <el-cascader v-if="formType == 'add'"
ref="ref_cascader_agency" ref="ref_cascader_agency"
class="width-two" class="width-two"
v-model="formData.agencyId" v-model="selGridId"
:options="optionsA" :options="optionsA"
@change="handleChangeAngency" @change="handleChangeAngency"
:props="{ checkStrictly: true, emitPath: false,children:'subAgencyList',label:'agencyName',value:'agencyId'}" :props="{ checkStrictly: true, emitPath: false,children:'subAgencyList',label:'agencyName',value:'agencyId'}"
@ -468,6 +468,7 @@ export default {
return { return {
btnDisable: false, btnDisable: false,
optionsA: [], optionsA: [],
selGridId: [],
labelWidth: '120px', labelWidth: '120px',
formData: { formData: {
@ -566,6 +567,7 @@ export default {
if (obj.level !== 'community') { if (obj.level !== 'community') {
this.$message.info('请选择社区') this.$message.info('请选择社区')
this.formData.agencyId = '' this.formData.agencyId = ''
this.selGridId = []
return false return false
} else { } else {
this.formData.agencyId = val this.formData.agencyId = val

10
src/views/modules/base/residentManagement/louzhang/addForm.vue

@ -21,7 +21,7 @@
<el-cascader v-if="formType == 'add'" <el-cascader v-if="formType == 'add'"
ref="ref_cascader_agency" ref="ref_cascader_agency"
class="width-two" class="width-two"
v-model="formData.agencyId" v-model="selGridId"
:options="optionsA" :options="optionsA"
@change="handleChangeAngency" @change="handleChangeAngency"
:props="{ checkStrictly: true, emitPath: false,children:'subAgencyList',label:'agencyName',value:'agencyId'}" :props="{ checkStrictly: true, emitPath: false,children:'subAgencyList',label:'agencyName',value:'agencyId'}"
@ -169,6 +169,7 @@ export default {
data () { data () {
return { return {
selGridId: [],
btnDisable: false, btnDisable: false,
optionsA: [], optionsA: [],
optionsRange: [], optionsRange: [],
@ -260,6 +261,7 @@ export default {
if (obj.level !== 'community') { if (obj.level !== 'community') {
this.$message.info('请选择社区') this.$message.info('请选择社区')
this.formData.agencyId = '' this.formData.agencyId = ''
this.selGridId = []
return false return false
} else { } else {
this.formData.agencyId = val this.formData.agencyId = val
@ -419,15 +421,15 @@ export default {
return { return {
agencyId: [{ required: true, message: "所属组织不能为空", trigger: "change" }], agencyId: [{ required: true, message: "所属组织不能为空", trigger: "blur" }],
name: [{ required: true, message: "姓名不能为空", trigger: "change" }], name: [{ required: true, message: "姓名不能为空", trigger: "change" }],
mobile: [{ required: true, message: "联系电话不能为空", trigger: "change" }], mobile: [{ required: true, message: "联系电话不能为空", trigger: "change" }],
idNum: [ idNum: [
{ required: true, message: "证件号不能为空", trigger: "bulr" }, { required: true, message: "证件号不能为空", trigger: "bulr" },
{ required: true, validator: checkIdCard, trigger: "blur" }, { required: true, validator: checkIdCard, trigger: "blur" },
], ],
dormitoryTypeArray: [{ required: true, message: "类型不能为空", trigger: "change" }], dormitoryTypeArray: [{ required: true, message: "类型不能为空", trigger: "blur" }],
rangeList: [{ required: true, message: "管理范围不能为空", trigger: "change" }], rangeList: [{ required: true, message: "管理范围不能为空", trigger: "blur" }],

4
src/views/modules/base/residentManagement/louzhang/louzhangList.vue

@ -325,8 +325,8 @@ export default {
}, },
computed: { computed: {
maxTableHeight () { maxTableHeight () {
const h = this.clientHeight - this.searchH - 270 + this.iframeHeight; const h = this.clientHeight - this.searchH - 230 + this.iframeHeight;
const _h = this.clientHeight - 270 - this.searchH; const _h = this.clientHeight - 230 - this.searchH;
return this.$store.state.inIframe ? h : _h; return this.$store.state.inIframe ? h : _h;
}, },
...mapGetters(["clientHeight", "iframeHeight"]), ...mapGetters(["clientHeight", "iframeHeight"]),

4
src/views/modules/base/residentManagement/tefu/addForm.vue

@ -22,7 +22,7 @@
<el-cascader v-if="formType == 'add'" <el-cascader v-if="formType == 'add'"
ref="ref_cascader_agency" ref="ref_cascader_agency"
class="width-two" class="width-two"
v-model="formData.agencyId" v-model=" selGridId"
:options="optionsA" :options="optionsA"
@change="handleChangeAngency" @change="handleChangeAngency"
:props="{ checkStrictly: true, emitPath: false,children:'subAgencyList',label:'agencyName',value:'agencyId'}" :props="{ checkStrictly: true, emitPath: false,children:'subAgencyList',label:'agencyName',value:'agencyId'}"
@ -460,6 +460,7 @@ export default {
data () { data () {
return { return {
btnDisable: false, btnDisable: false,
selGridId: [],
optionsA: [], optionsA: [],
labelWidth: '120px', labelWidth: '120px',
@ -604,6 +605,7 @@ export default {
if (obj.level !== 'community') { if (obj.level !== 'community') {
this.$message.info('请选择社区') this.$message.info('请选择社区')
this.formData.agencyId = '' this.formData.agencyId = ''
this.selGridId = []
return false return false
} else { } else {
this.formData.agencyId = val this.formData.agencyId = val

4
src/views/modules/base/residentManagement/tefu/tefuList.vue

@ -438,8 +438,8 @@ export default {
}, },
computed: { computed: {
maxTableHeight () { maxTableHeight () {
const h = this.clientHeight - this.searchH - 330 + this.iframeHeight; const h = this.clientHeight - this.searchH - 280 + this.iframeHeight;
const _h = this.clientHeight - 330 - this.searchH; const _h = this.clientHeight - 280 - this.searchH;
return this.$store.state.inIframe ? h : _h; return this.$store.state.inIframe ? h : _h;
}, },
...mapGetters(["clientHeight", "iframeHeight"]), ...mapGetters(["clientHeight", "iframeHeight"]),

Loading…
Cancel
Save