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