<template>
    <view>
        <!-- subpages/addResi/pages/addResi/addResi.wxml -->
        <view class="header">
            <image src="/static/images/back.png" class="back" :style="' top: ' + statusHeight + 'px;width: 50rpx;height: 50rpx;'" @tap="back" mode="" />
            <image class="header-bg" src="/static/subpages/addResi/pages/images/header.png" mode="widthFix" />
            <view class="navigation" :style="'height: ' + navigationHeight + 'px; top: ' + statusHeight + 'px;'">
                {{ formType == 'edit' ? '修改人口信息' : '新增人口信息' }}
            </view>
            <view class="content">
                <view class="h2">填写居民信息</view>
                <view class="tag">
                    带
                    <b>*</b>
                    号为必填项
                </view>
            </view>
        </view>
        <view class="content">
            <view class="form_card">
                <view class="title">
                    <text class="tag"></text>
                    基本信息
                </view>
                <view class="form_item">
                    <view class="label">
                        <text class="must">*</text>
                        <view class="title">所在网格</view>
                    </view>
                    <view class="input">
                        <picker @change="bindPickerChangeGrid" range-key="label" :value="index" :range="gridList">
                            <view :class="form.gridName ? '' : 'gray'">
                                {{ form.gridName ? form.gridName : '请选择' }}
                            </view>
                        </picker>
                        <image src="/static/images/right.png" mode="" />
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <text class="must">*</text>
                        <view class="title">所在小区</view>
                    </view>
                    <view class="input">
                        <picker @change="bindPickerChangevillageId" range-key="label" :value="index" :range="villageList">
                            <view :class="villageName ? '' : 'gray'">
                                {{ villageName ? villageName : '请选择' }}
                            </view>
                        </picker>
                        <image src="/static/images/right.png" mode="" />
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <text class="must">*</text>
                        <view class="title">所在楼栋</view>
                    </view>
                    <view class="input">
                        <picker @change="bindPickerChangebuilding" range-key="label" :value="index" :range="buildingList">
                            <view :class="buildingName ? '' : 'gray'">
                                {{ buildingName ? buildingName : '请选择' }}
                            </view>
                        </picker>
                        <image src="/static/images/right.png" mode="" />
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <text class="must">*</text>
                        <view class="title">所在单元</view>
                    </view>
                    <view class="input">
                        <picker @change="bindPickerChangeUnit" range-key="label" :value="index" :range="unitList">
                            <view :class="unitName ? '' : 'gray'">
                                {{ unitName ? unitName : '请选择' }}
                            </view>
                        </picker>
                        <image src="/static/images/right.png" mode="" />
                    </view>
                </view>
                <view class="form_house">
                    <view class="form_item">
                        <view class="label">
                            <text class="must">*</text>
                            <view class="title">所在房屋</view>
                        </view>
                        <view class="input">
                            <picker @change="bindPickerChangeHouse" range-key="label" :value="index" :range="houseList">
                                <view :class="houseName ? '' : 'gray'">
                                    {{ houseName ? houseName : '请选择' }}
                                </view>
                            </picker>
                            <image src="/static/images/right.png" mode="" />
                        </view>
                    </view>
                    <view class="form_bottom">
                        选项中如无该房屋,请先
                        <text @tap="handelJump">新增房屋</text>
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <text class="must">*</text>
                        <view class="title">姓名</view>
                    </view>
                    <view class="input">
                        <input confirm-type="next" @blur="bindNameInput" @input="bindNameInput" :value="form.name" placeholder-class="gray" placeholder="请输入" />
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <text class="must">*</text>
                        <view class="title">性别</view>
                    </view>
                    <view class="input">
                        <picker @change="bindPickerChangeGender" range-key="label" :value="index" :range="genderList">
                            <view :class="form.gender ? '' : 'gray'">
                                {{ genderName ? genderName : '请选择' }}
                            </view>
                        </picker>
                        <image src="/static/images/right.png" mode="" />
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <text class="must">*</text>
                        <view class="title">出生日期</view>
                    </view>
                    <view class="input">
                        <picker mode="date" :value="form.birthday" :end="day" @change="bindDateChange">
                            <view :class="form.birthday ? '' : 'gray'">
                                {{ form.birthday ? form.birthday : '请选择' }}
                            </view>
                        </picker>
                        <image src="/static/images/right.png" mode="" />
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <text class="must">*</text>
                        <view class="title">证件号</view>
                    </view>
                    <view class="input">
                        <input confirm-type="next" @blur="bindIdNumInput" @input="bindidNumInput" :value="form.idNum" placeholder-class="gray" placeholder="请输入" />
                        <block v-if="resiId">
                            <view @tap="showData" v-if="isShowIdNum" data-key="idNum">
                                <van-icon name="closed-eye" />
                            </view>
                            <view @tap="hideDataFun" v-else data-key="idNum">
                                <van-icon name="eye-o" />
                            </view>
                        </block>
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <text class="must">*</text>
                        <view class="title">联系电话</view>
                    </view>
                    <view class="input">
                        <input confirm-type="next" @blur="bindMobileInput" @input="bindmobileInput" :value="form.mobile" placeholder-class="gray" placeholder="请输入" />
                        <block v-if="resiId">
                            <view @tap="showData" v-if="isShowIdTel" data-key="mobile">
                                <van-icon name="closed-eye" />
                            </view>
                            <view @tap="hideDataFun" v-else data-key="mobile">
                                <van-icon name="eye-o" />
                            </view>
                        </block>
                    </view>
                </view>
            </view>
            <view class="form_card m-top20">
                <view class="title">
                    <text class="tag"></text>
                    详细信息
                </view>
                <view class="form_item">
                    <view class="label">
                        <view class="title">户籍地</view>
                    </view>
                    <view class="input">
                        <input
                            confirm-type="next"
                            @blur="bindPlaceOfDomicileInput"
                            @input="bindPlaceOfDomicileInput"
                            :value="form.resideInfoDto.placeOfDomicile"
                            placeholder-class="gray"
                            placeholder="请输入"
                        />
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <view class="title">现居地</view>
                    </view>
                    <view class="input">
                        <input
                            confirm-type="next"
                            @blur="bindCurrentResidenceInput"
                            @input="bindCurrentResidenceInput"
                            :value="form.resideInfoDto.currentResidence"
                            placeholder-class="gray"
                            placeholder="请输入"
                        />
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <view class="title">民族</view>
                    </view>
                    <view class="input">
                        <picker @change="bindPickerChangeNation" range-key="label" :value="index" :range="nation">
                            <view :class="form.nation ? '' : 'gray'">
                                {{ form.nation ? nation[form.nation].label : '请选择' }}
                            </view>
                        </picker>
                        <image src="/static/images/right.png" mode="" />
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <view class="title">籍贯</view>
                    </view>
                    <view class="input">
                        <input
                            confirm-type="next"
                            @blur="bindNativePlaceInput"
                            @input="bindNativePlaceInput"
                            :value="form.resideInfoDto.nativePlace"
                            placeholder-class="gray"
                            placeholder="请输入"
                        />
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <view class="title">文化程度</view>
                    </view>
                    <view class="input">
                        <picker @change="bindPickerChangeEducation" range-key="label" :value="index" :range="education">
                            <view :class="form.eduInfoDto.cultureLevel ? '' : 'gray'">
                                {{ form.eduInfoDto.cultureLevel ? education[form.eduInfoDto.cultureLevel].label : '请选择' }}
                            </view>
                        </picker>
                        <image src="/static/images/right.png" mode="" />
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <view class="title">婚姻状况</view>
                    </view>
                    <view class="input">
                        <picker @change="bindPickerChangemarriage" range-key="label" :value="index" :range="marriageList">
                            <view :class="form.familyInfoDto.marriage ? '' : 'gray'">
                                {{ marriageName ? marriageName : '请选择' }}
                            </view>
                        </picker>
                        <image src="/static/images/right.png" mode="" />
                    </view>
                </view>
                <view class="form_item">
                    <view class="label">
                        <view class="title">宗教信仰</view>
                    </view>
                    <view class="input">
                        <input
                            confirm-type="next"
                            @blur="bindReligionInput"
                            @input="bindReligionInput"
                            :value="form.religionDto.religion"
                            placeholder-class="gray"
                            placeholder="请输入"
                        />
                    </view>
                </view>
            </view>
            <view class="form_card m-top20">
                <view class="title">
                    <text class="tag"></text>
                    居民类别
                </view>
                <view class="form_item">
                    <view class="label">
                        <view class="title">居民类别</view>
                    </view>
                    <view class="input" @tap="onClick3">
                        <view :class="'residentCategorySty ' + (residentCategorySty ? '' : 'gray')" style="text-align: left">
                            {{ residentCategorySty ? residentCategorySty : '请选择' }}
                        </view>
                        <image src="/static/images/right.png" mode="" />
                    </view>
                </view>
                <view class="form_item" :key="index" @tap="openDynamicForms" :data-title="item.title" :data-formtype="item.value" v-for="(item, index) in residentTypeFormCell">
                    <view class="label">
                        <view class="title">{{ item.title }}</view>
                    </view>

                    <view class="input text-right">
                        <image src="/static/images/right.png" mode="" />
                    </view>
                </view>
            </view>
            <view class="bottom_btn" @tap="submit">提交</view>
        </view>
        <wux-select id="wux-select3" />

        <DynamicForms :show="isShowDynamicForms" :title="dynamicFormsTitle" @close="closeDynamicForms" @ok="okDynamicForms" :formController="formController" />
    </view>
</template>

<script>
import wuxSelect from '../../../../wxcomponents/dist/select';
import DynamicForms from '../../../../components/DynamicForms/DynamicForms';
// subpages/addResi/pages/addResi/addResi.js
import api from '../../../../utils/api';
import { cardHide } from '../../../../utils/util';
import { $wuxSelect } from '../../../../wxcomponents/dist/index';
import {
    dictlist,
    getHouseType,
    getOldPeopleDetailById,
    getVeteranDetailById,
    getVolunteerDetailById,
    publicWelfarePost,
    residentEnsureHouse,
    residentSpecial,
    residentTenant,
    residentUnemployed,
    residentUnitedFront,
    specialSupport
} from '../../../../utils/statisticsApi';
const app = getApp();
export default {
    components: {
        wuxSelect,
        DynamicForms
    },
    data() {
        return {
            hideData: {},
            isShowIdNum: true,
            isShowIdTel: true,
            formController: [],
            ensureHouseFlagOpen: false,
            unemployedFlagOpen: false,
            veteranFlagOpen: false,
            unitedFrontFlagOpen: false,
            volunteerFlagOpen: false,
            specialSupportFlagOpen: false,
            tenantFlagOpen: false,
            specialCrowdFlagOpen: false,
            oldPeopleFlagOpen: false,
            publicWelfareFlagOpen: false,

            residentTypeForm: {
                ensureHouseFlag: [
                    {
                        type: 'select',
                        value: '',
                        valueIndex: -1,
                        label: '住房性质',
                        optionsKey: 'label',
                        valueKey: 'value',
                        options: [],
                        // 字典获取
                        key: 'housingNature'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '保障类型',
                        key: 'securityType'
                    },
                    {
                        type: 'date',
                        value: '',
                        label: '发证日期',
                        key: 'certificateDate'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '补贴编号',
                        key: 'subsidyNum'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '补贴金额',
                        afterText: '元',
                        key: 'subsidyAmount'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '房东姓名',
                        key: 'landlordName'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '房东证件号',
                        key: 'landlordIdNum'
                    },
                    {
                        type: 'date',
                        value: '',
                        label: '通知书领取日期',
                        key: 'notificationRcvDate'
                    }
                ],
                unemployedFlag: [
                    {
                        type: 'input',
                        value: '',
                        label: '原工作单位',
                        key: 'originWorkUnit'
                    },
                    {
                        type: 'date',
                        value: '',
                        label: '失业时间',
                        key: 'unemploymentTime'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '失业证号',
                        key: 'unemploymentNum'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '再就业优惠证号',
                        key: 'employmentNum'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '技术特长',
                        key: 'specialSkill'
                    },
                    {
                        type: 'select',
                        value: '',
                        valueIndex: -1,
                        label: '失业原因',
                        optionsKey: 'label',
                        valueKey: 'value',
                        options: [],
                        // 字典获取
                        key: 'unemploymentReason'
                    },
                    {
                        type: 'select',
                        value: '',
                        valueIndex: -1,
                        label: '是否就业困难对象',
                        optionsKey: 'label',
                        valueKey: 'value',
                        options: [
                            {
                                value: 1,
                                label: '是'
                            },
                            {
                                value: 0,
                                label: '否'
                            }
                        ],
                        key: 'employmentHardFlag'
                    },
                    {
                        type: 'select',
                        value: '',
                        valueIndex: -1,
                        label: '劳动能力就业愿望',
                        optionsKey: 'label',
                        valueKey: 'value',
                        options: [],
                        // 字典获取
                        key: 'employmentWish'
                    }
                ],
                veteranFlag: [
                    {
                        type: 'date',
                        value: '',
                        label: '入伍时间',
                        key: 'joinArmyTime'
                    },
                    {
                        type: 'date',
                        value: '',
                        label: '退伍时间',
                        key: 'leaveArmyTime'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '服役单位',
                        key: 'serviceUnit'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '接收单位',
                        key: 'receiveUnit'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '待安置补助金',
                        afterText: '元',
                        key: 'settlementAmount'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '培训状况',
                        key: 'trainDesc'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '现就业情况',
                        key: 'employmentSituation'
                    },
                    {
                        type: 'select',
                        value: '',
                        valueIndex: -1,
                        label: '是否办理公益性岗位',
                        optionsKey: 'label',
                        valueKey: 'value',
                        options: [
                            {
                                value: 1,
                                label: '是'
                            },
                            {
                                value: 0,
                                label: '否'
                            }
                        ],
                        key: 'pubWelfareJobFlag'
                    }
                ],
                unitedFrontFlag: [
                    {
                        type: 'input',
                        value: '',
                        label: '职务',
                        key: 'duty'
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '探亲情况',
                        key: 'visitation'
                    }
                ],
                volunteerFlag: [
                    {
                        type: 'checkbox',
                        value: '',
                        label: '志愿者类别',
                        key: 'volunteerCategory'
                    },
                    {
                        type: 'textarea',
                        value: '',
                        maxlength: 120,
                        label: '备注',
                        key: 'volunteerRemark'
                    }
                ],
                specialSupportFlag: [
                    {
                        type: 'select',
                        value: '',
                        valueIndex: -1,
                        label: '特扶类别',
                        optionsKey: 'label',
                        valueKey: 'value',
                        options: [
                            {
                                value: '1',
                                label: '失独'
                            },
                            {
                                value: '2',
                                label: '伤残'
                            }
                        ],
                        // 字典
                        key: 'specialSupportType',
                        masterControl: true
                    },
                    {
                        type: 'input',
                        value: '',
                        label: '子女姓名',
                        key: 'childName',
                        showFlag: '2',
                        hide: true
                    },
                    {
                        type: 'select',
                        value: '',
                        valueIndex: -1,
                        label: '子女性别',
                        optionsKey: 'label',
                        valueKey: 'value',
                        options: [
                            {
                                value: '1',
                                label: '男'
                            },
                            {
                                value: '2',
                                label: '女'
                            }
                        ],
                        // 字典
                        key: 'childGender'
                    },
                    {
                        type: 'date',
                        value: '',
                        label: '子女死亡日期',
                        key: 'childDeathDate',
                        showFlag: '1',
                        hide: true
                    },
                    {
                        type: 'select',
                        value: '',
                        valueIndex: -1,
                        label: '伤残类别',
                        optionsKey: 'label',
                        valueKey: 'value',
                        options: [],
                        // 字典
                        key: 'childDisabilityCategoryCode',
                        showFlag: '2',
                        hide: true
                    },
                    {
                        type: 'select',
                        value: '',
                        valueIndex: -1,
                        label: '伤残等级',
                        optionsKey: 'label',
                        valueKey: 'value',
                        options: [],
                        // 字典
                        key: 'childDisabilityLevel',
                        showFlag: '2',
                        hide: true
                    },
                    {
                        type: 'textarea',
                        value: '',
                        maxlength: 120,
                        label: '备注',
                        key: 'remark'
                    }
                ],
                tenantFlag: [
                    {
                        type: 'date',
                        value: '',
                        label: '合同开始时间',
                        key: 'contractStartDate'
                    },
                    {
                        type: 'date',
                        value: '',
                        label: '合同结束时间',
                        key: 'contractEndDate'
                    }
                ],
                specialCrowdFlag: [
                    {
                        type: 'select',
                        value: '',
                        valueIndex: -1,
                        label: '人群类别',
                        optionsKey: 'label',
                        valueKey: 'value',
                        options: [],
                        // 字典
                        key: 'specialCategoryCode'
                    }
                ],
                oldPeopleFlag: [
                    {
                        type: 'input',
                        value: '',
                        label: '高龄补助',
                        afterText: '元',
                        key: 'oldSubsidy'
                    }
                ],
                publicWelfareFlag: [
                    {
                        type: 'date',
                        value: '',
                        label: '入职时间',
                        key: 'hireData'
                    },
                    {
                        type: 'checkbox',
                        value: '',
                        valueIndex: -1,
                        label: '岗位类型',
                        optionsKey: 'label',
                        valueKey: 'value',
                        options: [],
                        // 字典
                        key: 'postTypes'
                    },
                    {
                        type: '',
                        value: '',
                        key: 'userId'
                    }
                ]
            },

            residentTypeFormCell: [],
            nation: [],
            education: [],
            marriageList: [],
            marriageName: '',

            form: {
                agencyName: '',
                agencyId: '',
                resiId: '',
                houseMergeId: '',
                categoryId: '',
                gridName: '',
                gridId: '',
                villageId: '',
                buildId: '',
                unitId: '',
                homeId: '',
                name: '',
                nation: '',
                remark: '',
                localResidenceFlag: '',
                birthday: '',
                idNum: '',
                gender: '',
                mobile: '',
                partyFlag: 0,
                subsistenceAllowanceFlag: 0,
                ensureHouseFlag: 0,
                unemployedFlag: 0,
                fertileWomanFlag: 0,
                veteranFlag: 0,
                unitedFrontFlag: 0,
                petitionOfficerFlag: '',
                volunteerFlag: 0,
                specialSupportFlag: 0,
                tenantFlag: 0,
                floatingFlag: 0,
                specialCrowdFlag: 0,
                oldPeopleFlag: 0,
                emptyNesterFlag: 0,
                liveAloneFlag: 0,
                disabledFlag: 0,
                dementedFlag: 0,
                disabilityFlag: 0,
                seriousIllnessFlag: 0,
                chronicDiseaseFlag: 0,
                publicWelfareFlag: 0,
                resideInfoDto: {
                    placeOfDomicile: '',
                    currentResidence: '',
                    nativePlace: ''
                },
                eduInfoDto: {
                    cultureLevel: ''
                },
                familyInfoDto: {
                    marriage: ''
                },
                religionDto: {
                    religion: ''
                }
            },

            isFirstLoadGrid: true,
            isFirstLoadVillage: true,
            isFirstLoadBuilding: true,
            isFirstLoadUnit: true,
            isFirstLoadHouse: true,
            agencyId: '',
            gridList: [],
            villageList: [],
            villageName: '',
            buildingList: [],
            buildingName: '',
            unitList: [],
            unitName: '',
            houseList: [],
            houseName: '',

            genderList: [
                {
                    label: '男',
                    value: '1'
                },
                {
                    label: '女',
                    value: '2'
                }
            ],

            genderName: '',
            day: '',
            value3: [],

            residentCategory: [
                {
                    title: '党员',
                    value: 'partyFlag'
                },
                {
                    title: '低保人员',
                    value: 'subsistenceAllowanceFlag'
                },
                {
                    title: '保障房人员',
                    value: 'ensureHouseFlag',
                    isForm: true
                },
                {
                    title: '失业人员',
                    value: 'unemployedFlag',
                    isForm: true
                },
                {
                    title: '育龄妇女',
                    value: 'fertileWomanFlag'
                },
                {
                    title: '退役军人',
                    value: 'veteranFlag',
                    isForm: true
                },
                {
                    title: '统战人员',
                    value: 'unitedFrontFlag',
                    isForm: true
                },
                {
                    title: '信访人员',
                    value: 'petitionOfficerFlag'
                },
                {
                    title: '志愿者',
                    value: 'volunteerFlag',
                    isForm: true
                },
                {
                    title: '特扶人员',
                    value: 'specialSupportFlag',
                    isForm: true
                },
                {
                    title: '租户',
                    value: 'tenantFlag',
                    isForm: true
                },
                {
                    title: '流动人口',
                    value: 'floatingFlag'
                },
                {
                    title: '特殊人群',
                    value: 'specialCrowdFlag',
                    isForm: true
                },
                {
                    title: '老年人',
                    value: 'oldPeopleFlag',
                    isForm: true
                },
                {
                    title: '空巢老人',
                    value: 'emptyNesterFlag'
                },
                {
                    title: '独居老人',
                    value: 'liveAloneFlag'
                },
                {
                    title: '失能老人',
                    value: 'disabledFlag'
                },
                {
                    title: '失智老人',
                    value: 'dementedFlag'
                },
                {
                    title: '残疾',
                    value: 'disabilityFlag'
                },
                {
                    title: '大病',
                    value: 'seriousIllnessFlag'
                },
                {
                    title: '慢病',
                    value: 'chronicDiseaseFlag'
                },
                {
                    title: '公益岗人员',
                    value: 'publicWelfareFlag',
                    isForm: true
                }
            ],

            residentCategorySty: '',
            categoryInfo: '',
            isShowDynamicForms: false,
            dynamicTitle: ' ',
            statusHeight: '',
            navigationHeight: '',
            formType: '',
            resiId: '',
            isFirstLoadunit: false,
            title3: '',
            dynamicFormsTitle: '',
            currentFormController: '',
            label: ''
        };
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: async function (options) {
        var nowDate = new Date();
        var year = nowDate.getFullYear();
        var month = nowDate.getMonth() + 1;
        var day = nowDate.getDate();
        this.setData({
            statusHeight: app.globalData.deviceInfo.statusHeight,
            navigationHeight: app.globalData.deviceInfo.navigationHeight,
            agencyId: app.globalData.user.agencyId,
            'form.agencyId': app.globalData.user.agencyId,
            'form.agencyName': app.globalData.user.agencyName,
            day: `${year}-${month}-${day}`,
            formType: options.type,
            resiId: options.resiId
        });
        await this.getNationDictList();
        await this.getGridoptionDict();
        await this.getEducationDictList();
        await this.getmarriageDict();
        if (options.resiId) {
            uni.setNavigationBarTitle({
                title: '修改人口信息'
            });
            await this.getResiDetail();
            await this.getResidentResideInfo();
            await this.getResidentReligion();
            await this.getResidentEduInfo();
            setTimeout(() => {
                this.getFamilyInfoDetailById();
            }, 500);
        } else {
            if (options.idCard) {
                this.setData({
                    'form.name': options.name,
                    'form.idNum': options.idCard,
                    'form.gender': options.gender == '男' ? '1' : '2',
                    genderName: options.gender,
                    'form.birthday': options.birth
                });
            }
            this.setData({
                isFirstLoadGrid: false,
                isFirstLoadVillage: false,
                isFirstLoadBuilding: false,
                isFirstLoadUnit: false,
                isFirstLoadHouse: false
            });
        }
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {},
    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {},
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {},
    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {},
    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {},
    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {},
    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {},
    methods: {
        getResiDetail: async function () {
            try {
                let res = await api.getResiDetail(this.resiId);
                const {
                    birthday,
                    gender,
                    idNum,
                    mobile,
                    name,
                    nation,
                    houseInfo = {},
                    // 为houseInfo提供一个默认值
                    categoryInfo,
                    genderName
                } = res.data;
                let result = this.residentCategory.filter((item) => categoryInfo[item.value] === 1);
                let residentCategorySty = result.map((item) => item.title);
                let categoryInfoArr = result.map((item) => item.value);
                this.setDynamicForm(result);
                uni.showLoading({
                    title: '加载中...'
                });
                let form = this.form;
                for (let i in categoryInfoArr) {
                    form[categoryInfoArr[i]] = 1;
                }
                this.setData({
                    form
                });
                this.setDataAsync({
                    'form.name': name,
                    'form.birthday': birthday,
                    'form.gender': gender,
                    'form.idNum': cardHide(idNum),
                    'form.mobile': mobile,
                    'form.nation': nation,
                    'form.gridId': houseInfo?.gridId || '',
                    // 使用了可选链
                    'form.gridName': houseInfo?.gridName || '',
                    // 使用了可选链
                    'form.villageId': houseInfo?.villageId || '',
                    // 使用了可选链
                    'form.buildId': houseInfo?.buildId || '',
                    // 使用了可选链
                    'form.unitId': houseInfo?.unitId || '',
                    // 使用了可选链
                    'form.homeId': houseInfo?.homeId || '',
                    // 使用了可选链
                    'form.houseMergeId': houseInfo?.mergeId || '',
                    // 使用了可选链
                    genderName,
                    categoryInfo: categoryInfoArr,
                    residentCategorySty
                });
                await this.delay(1000);
                await this.bindPickerChangeGrid();
                await this.delay(400);
                await this.bindPickerChangevillageId();
                await this.delay(400);
                await this.bindPickerChangebuilding();
                await this.delay(400);
                await this.bindPickerChangeUnit();
                await this.delay(400);
                await this.bindPickerChangeHouse();
                uni.hideLoading();
            } catch (err) {
                console.log('CatchClause', err);
                console.log('CatchClause', err);
                console.log(err);
            }
        },

        setDataAsync: function (data) {
            return new Promise((resolve) => {
                this.setData(data, resolve);
            });
        },

        delay(ms) {
            return new Promise((resolve) => setTimeout(resolve, ms));
        },

        // 居住信息详情
        getResidentResideInfo() {
            api.getResidentResideInfo(this.resiId)
                .then((res) => {
                    this.setData({
                        'form.resideInfoDto': res.data
                    });
                })
                .catch((err) => {
                    console.log(err);
                });
        },

        // 宗教信仰详情
        getResidentReligion() {
            api.getResidentReligion(this.resiId)
                .then((res) => {
                    this.setData({
                        'form.religionDto': res.data
                    });
                })
                .catch((err) => {
                    console.log(err);
                });
        },

        // 获取教育信息详情
        getResidentEduInfo() {
            api.getResidentEduInfo(this.resiId)
                .then((res) => {
                    this.setData({
                        'form.eduInfoDto': res.data
                    });
                })
                .catch((err) => {
                    console.log(err);
                });
        },

        // 获取婚姻信息
        getFamilyInfoDetailById() {
            api.getFamilyInfoDetailById(this.resiId)
                .then((res) => {
                    this.setData({
                        'form.familyInfoDto': res.data,
                        marriageName: this.marriageList.filter((item) => item.value == res.data.marriage)[0].label
                    });
                })
                .catch((err) => {
                    console.log(err);
                });
        },

        getNationDictList() {
            api.getNationDictList()
                .then((res) => {
                    this.setData({
                        nation: res.data
                    });
                })
                .catch((err) => {
                    console.log(err);
                });
        },

        getEducationDictList() {
            api.getEducationDictList()
                .then((res) => {
                    this.setData({
                        education: res.data
                    });
                })
                .catch((err) => {
                    console.log(err);
                });
        },

        getGridoptionDict() {
            let parm = {
                agencyId: this.agencyId,
                purpose: 'addorupdate'
            };
            api.getGridoptionDict(parm)
                .then((res) => {
                    this.setData({
                        gridList: res.data
                    });
                })
                .catch((err) => {
                    console.log(err);
                });
        },

        getmarriageDict() {
            api.getDictList('marriage')
                .then((res) => {
                    this.setData({
                        marriageList: res.data
                    });
                })
                .catch((err) => {
                    console.log(err);
                });
        },

        // 获取小区列表
        getQuartersOptions(gridId) {
            let parm = {
                gridId,
                agencyId: this.agecyId
            };
            api.getQuartersOptions(parm)
                .then((res) => {
                    this.setData({
                        villageList: res.data
                    });
                })
                .catch((err) => {
                    console.log(err);
                });
        },

        // 获取楼栋列表
        getBuildingoption(villageId) {
            api.getBuildingoption(villageId)
                .then((res) => {
                    this.setData({
                        buildingList: res.data
                    });
                })
                .catch((err) => {
                    console.log(err);
                });
        },

        // 获取单元列表
        getUnitoption(buildingId) {
            api.getUnitoption(buildingId)
                .then((res) => {
                    this.setData({
                        unitList: res.data
                    });
                })
                .catch((err) => {
                    console.log(err);
                });
        },

        // 获取房屋列表
        getHouseoption(unitId) {
            api.getHouseoption(unitId)
                .then((res) => {
                    this.setData({
                        houseList: res.data
                    });
                })
                .catch((err) => {
                    console.log(err);
                });
        },

        // 获取网格列表
        async bindPickerChangeGrid() {
            return new Promise(async (resolve, reject) => {
                if (this.isFirstLoadGrid) {
                    // 编辑回填逻辑
                    const id = this.form.gridId;
                    const temp = this.gridList.filter((item) => item.value == id);
                    let gridName = '';
                    if (temp.length != 0) {
                        gridName = temp[0].label;
                    } else {
                        this.showToast('网格信息有误');
                        return;
                    }
                    this.setData({
                        'form.gridName': gridName,
                        'form.gridId': id
                    });
                    this.getQuartersOptions(id);
                    this.setData({
                        isFirstLoadGrid: false
                    });
                } else {
                    // 正常修改逻辑
                    const selectedIndex = e.detail.value;
                    const selectedVillage = this.gridList[selectedIndex];
                    this.setData({
                        'form.gridName': selectedVillage.label,
                        'form.gridId': selectedVillage.value,
                        'form.villageId': '',
                        'form.buildId': '',
                        'form.unitId': '',
                        'form.homeId': '',
                        villageName: '',
                        villageList: [],
                        buildingName: '',
                        buildingList: [],
                        unitName: '',
                        unitList: [],
                        houseName: '',
                        houseList: []
                    });
                    this.getQuartersOptions(selectedVillage.value);
                }
                resolve();
            });
        },

        bindPickerChangevillageId(e) {
            return new Promise((resolve, reject) => {
                if (this.isFirstLoadVillage) {
                    // 编辑回填逻辑
                    const id = this.form.villageId;
                    const temp = this.villageList.filter((item) => item.value == id);
                    let villageName = '';
                    if (temp.length != 0) {
                        villageName = temp[0].label;
                    } else {
                        this.showToast('小区信息有误');
                        return;
                    }
                    this.setData({
                        villageName: villageName,
                        'form.villageId': id
                    });
                    this.getBuildingoption(id);
                    this.setData({
                        isFirstLoadVillage: false
                    });
                    console.log(this.villageList, '小区');
                } else {
                    // 正常修改逻辑
                    const selectedIndex = e.detail.value;
                    const selectedVillage = this.villageList[selectedIndex];
                    this.setData({
                        villageName: selectedVillage.label,
                        'form.villageId': selectedVillage.value,
                        'form.buildId': '',
                        'form.unitId': '',
                        'form.homeId': '',
                        buildingName: '',
                        buildingList: [],
                        unitName: '',
                        unitList: [],
                        houseName: '',
                        houseList: []
                    });
                    this.getBuildingoption(selectedVillage.value);
                }
                resolve();
            });
        },

        bindPickerChangebuilding(e) {
            return new Promise((resolve, reject) => {
                if (this.isFirstLoadBuilding) {
                    const id = this.form.buildId;
                    const temp = this.buildingList.filter((item) => item.value == id);
                    let buildingName = '';
                    if (temp.length != 0) {
                        buildingName = temp[0].label;
                    } else {
                        this.showToast('小区信息有误');
                        return;
                    }
                    this.setData({
                        buildingName: buildingName,
                        'form.buildId': id
                    });
                    this.getUnitoption(id);
                    this.setData({
                        isFirstLoadBuilding: false
                    });
                } else {
                    const selectedIndex = e.detail.value;
                    const selectedVillage = this.buildingList[selectedIndex];
                    this.setData({
                        buildingName: selectedVillage.label,
                        'form.buildId': selectedVillage.value,
                        'form.unitId': '',
                        'form.homeId': '',
                        unitName: '',
                        unitList: [],
                        houseName: '',
                        houseList: []
                    });
                    this.getUnitoption(selectedVillage.value);
                }
                resolve();
            });
        },

        bindPickerChangeUnit(e) {
            return new Promise((resolve, reject) => {
                if (this.isFirstLoadUnit) {
                    const id = this.form.unitId;
                    const temp = this.unitList.filter((item) => item.value == id);
                    let unitName = '';
                    if (temp.length != 0) {
                        unitName = temp[0].label;
                    } else {
                        this.showToast('楼栋信息有误');
                        return;
                    }
                    this.setData({
                        unitName: unitName,
                        'form.unitId': id
                    });
                    this.getHouseoption(id);
                    this.setData({
                        isFirstLoadunit: false
                    });
                } else {
                    const selectedIndex = e.detail.value;
                    const selectedVillage = this.unitList[selectedIndex];
                    this.setData({
                        unitName: selectedVillage.label,
                        'form.unitId': selectedVillage.value,
                        'form.homeId': '',
                        houseName: '',
                        houseList: []
                    });
                    this.getHouseoption(selectedVillage.value);
                }
                resolve();
            });
        },

        bindPickerChangeHouse(e) {
            return new Promise((resolve, reject) => {
                if (this.isFirstLoadHouse) {
                    const id = this.form.homeId;
                    const temp = this.houseList.filter((item) => item.value == id);
                    let houseName = '';
                    if (temp.length != 0) {
                        houseName = temp[0].label;
                    } else {
                        this.showToast('房屋信息有误');
                        return;
                    }
                    this.setData({
                        houseName: houseName,
                        'form.homeId': id
                    });
                    this.setData({
                        isFirstLoadHouse: false
                    });
                } else {
                    const selectedIndex = e.detail.value;
                    const selectedVillage = this.houseList[selectedIndex];
                    this.setData({
                        houseName: selectedVillage.label,
                        'form.homeId': selectedVillage.value
                    });
                }
                resolve();
            });
        },

        bindNameInput(e) {
            this.setData({
                'form.name': e.detail.value
            });
            console.log(this.form);
        },

        bindPickerChangeGender(e) {
            this.setData({
                genderName: this.genderList[e.detail.value].label,
                'form.gender': this.genderList[e.detail.value].value
            });
        },

        bindDateChange(e) {
            this.setData({
                'form.birthday': e.detail.value
            });
        },

        bindidNumInput(e) {
            this.setData({
                isShowIdNum: false,
                'form.idNum': e.detail.value
            });
            console.log(this.form);
        },

        bindMobileInput(e) {
            this.setData({
                isShowIdTel: false,
                'form.mobile': e.detail.value
            });
            console.log(this.form);
        },

        bindPlaceOfDomicileInput(e) {
            this.setData({
                'form.resideInfoDto.placeOfDomicile': e.detail.value
            });
            console.log(this.form);
        },

        bindCurrentResidenceInput(e) {
            this.setData({
                'form.resideInfoDto.currentResidence': e.detail.value
            });
            console.log(this.form);
        },

        bindPickerChangeNation(e) {
            this.setData({
                'form.nation': this.nation[e.detail.value].value
            });
        },

        bindNativePlaceInput(e) {
            this.setData({
                'form.resideInfoDto.nativePlace': e.detail.value
            });
        },

        bindPickerChangeEducation(e) {
            this.setData({
                'form.eduInfoDto.cultureLevel': this.education[e.detail.value].value
            });
        },

        bindPickerChangemarriage(e) {
            this.setData({
                'form.familyInfoDto.marriage': this.marriageList[e.detail.value].value,
                marriageName: this.marriageList[e.detail.value].label
            });
        },

        bindReligionInput(e) {
            this.setData({
                'form.religionDto.religion': e.detail.value
            });
        },

        onClick3() {
            const than = this;
            $wuxSelect('#wux-select3').open({
                value: this.categoryInfo,
                multiple: true,
                toolbar: {
                    title: '居民类别',
                    confirmText: '确定'
                },
                options: than.residentCategory,
                onChange: (value, index, options) => {
                    console.log('onChange', value, index, options);
                    const matchingLabels = value
                        .map((valueToFind) => {
                            const matchedItem = than.residentCategory.find((item) => item.value === valueToFind);
                            return matchedItem ? matchedItem.title : null;
                        })
                        .filter(Boolean);
                    this.setData({
                        value3: value,
                        residentCategorySty: matchingLabels.join(',')
                    });
                },
                onConfirm: (value, index, options) => {
                    console.log('onConfirm', value, index, options);
                    let updatedForm = {
                        ...this.form
                    };
                    than.residentCategory.forEach((option) => {
                        if (value.includes(option.value)) {
                            updatedForm[option.value] = 1;
                        } else if (updatedForm[option.value] === 1) {
                            updatedForm[option.value] = 0;
                        }
                    });
                    this.setData({
                        value3: value,
                        title3: index.map((n) => options[n].title),
                        form: updatedForm
                    });
                    let residentTypeFormCell = [];
                    index.forEach((item) => {
                        residentTypeFormCell.push(this.residentCategory[item]);
                    });
                    this.setDynamicForm(residentTypeFormCell);
                    console.log(this.form);
                }
            });
        },

        showToast(title) {
            uni.showToast({
                title: title,
                duration: 2000,
                icon: 'none'
            });
        },

        submit: async function () {
            if (!this.form.gridId) {
                this.showToast('请选择所在网格');
                return;
            }
            if (!this.form.villageId) {
                this.showToast('请选择所在小区');
                return;
            }
            if (!this.form.buildId) {
                this.showToast('请选择所在楼栋');
                return;
            }
            if (!this.form.unitId) {
                this.showToast('请选择所在单元');
                return;
            }
            if (!this.form.homeId) {
                this.showToast('请选择所在房屋');
                return;
            }
            if (!this.form.name) {
                this.showToast('请填写姓名');
                return;
            }
            if (!this.form.gender) {
                this.showToast('请选择性别');
                return;
            }
            if (!this.form.birthday) {
                this.showToast('请选择出生日期');
                return;
            }
            if (!this.form.idNum) {
                this.showToast('请填写证件号');
                return;
            }
            if (!this.form.mobile) {
                this.showToast('请填写联系电话');
                return;
            }
            console.log(this.isShowIdNum, this.formType != 'edit');
            const parm = {
                ...this.form,
                // idNum: this.data.isShowIdNum&&this.data.formType === 'edit'?undefined:this.data.form.idNum,
                // mobile: this.data.isShowIdTel&&this.data.formType === 'edit'?undefined:this.data.form.mobile,
                ensureHouseDto: this.ensureHouseFlagOpen ? this.getValue(this.residentTypeForm.ensureHouseFlag) : undefined,
                unemployedDto: this.unemployedFlagOpen ? this.getValue(this.residentTypeForm.unemployedFlag) : undefined,
                veteranDto: this.veteranFlagOpen ? this.getValue(this.residentTypeForm.veteranFlag) : undefined,
                unitedFrontDto: this.unitedFrontFlagOpen ? this.getValue(this.residentTypeForm.unitedFrontFlag) : undefined,
                volunteerDto: this.volunteerFlagOpen ? this.getValue(this.residentTypeForm.volunteerFlag) : undefined,
                specialSupportDto: this.specialSupportFlagOpen ? this.getValue(this.residentTypeForm.specialSupportFlag) : undefined,
                tenantDto: this.tenantFlagOpen ? this.getValue(this.residentTypeForm.tenantFlag) : undefined,
                specialDto: this.specialCrowdFlagOpen ? this.getValue(this.residentTypeForm.specialCrowdFlag) : undefined,
                oldPeopleDto: this.oldPeopleFlagOpen ? this.getValue(this.residentTypeForm.oldPeopleFlag) : undefined,
                postDto: this.publicWelfareFlagOpen ? this.getValue(this.residentTypeForm.publicWelfareFlag) : undefined
            };
            console.log(this.formType);
            if (this.formType == 'edit') {
                parm.resiId = this.resiId;
                try {
                    const res = await api.resiEdit(parm);
                    if (res.code === 0) {
                        uni.showToast({
                            title: '编辑成功',
                            duration: 3000,
                            success: function () {
                                setTimeout(() => {
                                    uni.navigateBack({
                                        delta: 1
                                    });
                                }, 3000);
                            }
                        });
                    }
                } catch (err) {
                    console.log('CatchClause', err);
                    console.log('CatchClause', err);
                    console.log(err);
                }
            } else {
                try {
                    const res = await api.resiAdd(parm);
                    if (res.code === 0) {
                        uni.showToast({
                            title: '新增成功',
                            duration: 3000,
                            success: function () {
                                setTimeout(() => {
                                    uni.navigateBack({
                                        delta: 1
                                    });
                                }, 3000);
                            }
                        });
                    }
                } catch (err) {
                    console.log('CatchClause', err);
                    console.log('CatchClause', err);
                    console.log(err);
                }
            }
        },

        back() {
            //返回上一级，关闭当前页面
            uni.navigateBack({
                delta: 1
            });
        },

        handelJump() {
            uni.navigateTo({
                url: '/subpages/addhouse/pages/addhouse/addhouse'
            });
        },

        closeDynamicForms() {
            this.setData({
                isShowDynamicForms: false
            });
        },

        okDynamicForms(e) {
            console.log(e);
            let residentTypeForm = this.residentTypeForm;
            residentTypeForm[this.currentFormController] = e.detail;
            this.setData({
                residentTypeForm
            });
        },

        setDynamicForm(data) {
            let residentTypeFormCell = data.filter((item) => item.isForm);
            let values = residentTypeFormCell.map((item) => item.value);
            // 保障房人员
            if (values.includes('ensureHouseFlag')) {
                this.getHouseTypes();
            }
            // 失业人员
            if (values.includes('unemployedFlag')) {
                // 失业原因
                this.getDictData('unemployment_reason', 'unemploymentReason');
                // 愿望
                this.getDictData('career_goals', 'employmentWish');
            }
            // 志愿者
            if (values.includes('volunteerFlag')) {
                // 志愿者类别
                this.getDictData('VOLUNTEER_CATEGORY', 'volunteerCategory');
            }
            // 特扶
            if (values.includes('specialSupportFlag')) {
                //获取伤残类别字典
                this.getDictData('disability_category_code', 'childDisabilityCategoryCode');
                // 获取伤残等级字典
                this.getDictData('disability_level', 'childDisabilityLevel');
            }

            // 特殊人群
            if (values.includes('specialCrowdFlag')) {
                //人群类别
                this.getDictData('special_resident_category', 'specialCategoryCode');
            }
            // 公益岗人员
            if (values.includes('specialCrowdFlag')) {
                //岗位类型
                this.getDictData('public_welfare_post_type', 'postTypes');
            }
            this.setData({
                residentTypeFormCell
            });
            // residentTypeForm
        },

        async openDynamicForms(e) {
            var data = {};
            let formtype = e.currentTarget.dataset.formtype;
            let id = this.resiId;
            if (formtype === 'ensureHouseFlag') {
                let res = await residentEnsureHouse(id);
                data = res.data;
            }
            if (formtype === 'unemployedFlag') {
                let res = await residentUnemployed(id);
                data = res.data;
            }
            if (formtype === 'veteranFlag') {
                let res = await getVeteranDetailById(id);
                data = res.data;
            }
            if (formtype === 'unitedFrontFlag') {
                let res = await residentUnitedFront(id);
                data = res.data;
            }
            if (formtype === 'volunteerFlag') {
                let res = await getVolunteerDetailById(id);
                data = res.data;
            }
            if (formtype === 'specialSupportFlag') {
                let res = await specialSupport(id);
                data = res.data;
            }
            if (formtype === 'tenantFlag') {
                let res = await residentTenant(id);
                data = res.data;
            }
            if (formtype === 'specialCrowdFlag') {
                let res = await residentSpecial(id);
                data = res.data;
            }
            if (formtype === 'oldPeopleFlag') {
                let res = await getOldPeopleDetailById(id);
                data = res.data;
            }
            if (formtype === 'publicWelfareFlag') {
                let res = await publicWelfarePost(id);
                data = res.data;
            }
            let residentTypeForm = this.residentTypeForm;
            residentTypeForm[formtype].forEach((item) => {
                if (item.key === 'userId') {
                    item.value = id;
                }
                for (let i in data) {
                    if (item.key === i) {
                        item.value = data[item.key];
                        if (data[item.key]) {
                            console.log(data[item.key], 'data[item.key]');
                            if (item.type === 'date') {
                                item.value = data[item.key].split(' ')[0];
                            }
                            if (item.type === 'checkbox') {
                                let arr = [];
                                let value = data[item.key].split(',');
                                value.forEach((item2) => {
                                    arr.push(...item.options.filter((item3) => item3.value === item2));
                                });
                                item.selected = arr.map((item) => item.label).join(',');
                            }
                            if (item.type === 'select') {
                                let options = item.options.map((item2) => item2[item.valueKey]);
                                item.valueIndex = options.indexOf(item.value);
                                if (item.masterControl) {
                                    residentTypeForm[formtype].forEach((item3) => {
                                        if (item3.showFlag) {
                                            if (item3.showFlag === item.value) {
                                                item3.hide = false;
                                            } else {
                                                item3.hide = true;
                                            }
                                        }
                                    });
                                }
                            } else {
                                item.valueIndex = -1;
                            }
                        }
                    }
                }
            });
            this.setData({
                residentTypeForm,
                [formtype + 'Open']: true,
                dynamicFormsTitle: '填写' + e.currentTarget.dataset.title,
                currentFormController: formtype,
                formController: this.residentTypeForm[e.currentTarget.dataset.formtype],
                isShowDynamicForms: true
            });
            console.log(this);
        },

        // 获取住房性质
        getHouseTypes() {
            getHouseType({
                formCode: 'resi_base_info'
            }).then((res) => {
                console.log(res.data);
                this.setPickerOptions('housingNature', res.data);
            });
        },

        getDictData(dictType, formName) {
            dictlist({
                dictType: dictType
            }).then((res) => {
                this.setPickerOptions(formName, res.data);
            });
        },

        setPickerOptions(key, options) {
            let residentTypeForm = this.residentTypeForm;
            for (let item in residentTypeForm) {
                residentTypeForm[item].forEach((item2) => {
                    if (item2.key === key) {
                        item2.options = options;
                    }
                });
            }
            this.setData({
                residentTypeForm
            });
        },

        getValue(arry) {
            let obj = {};
            arry.forEach((item) => {
                if (item.type === 'date' && item.value != '') {
                    item.value = item.value + ' 00:00:00';
                }
                obj[item.key] = item.value;
            });
            return obj;
        },

        hideDataFun(e) {
            let key = e.currentTarget.dataset.key;
            let form = this.form;
            form[key] = this.hideData[key];
            if (key === 'idNum') {
                this.setData({
                    isShowIdNum: !this.isShowIdNum
                });
            }
            if (key === 'mobile') {
                this.setData({
                    isShowIdTel: !this.isShowIdTel
                });
            }
            this.setData({
                form
            });
        },

        showData(e) {
            let key = e.currentTarget.dataset.key;
            let form = this.form;
            let hideData = this.hideData;
            hideData[key] = form[key];
            this.setData({
                hideData
            });
            api.getResiUserInfo(this.resiId).then((res) => {
                if (key === 'idNum') {
                    this.setData({
                        isShowIdNum: !this.isShowIdNum
                    });
                }
                if (key === 'mobile') {
                    this.setData({
                        isShowIdTel: !this.isShowIdTel
                    });
                }
                form[key] = res.data[key];
                this.setData({
                    form
                });
                console.log(res.data[key], this.form[key]);
            });
        },

        bindIdNumInput() {
            console.log('占位：函数 bindIdNumInput 未声明');
        },

        bindmobileInput() {
            console.log('占位：函数 bindmobileInput 未声明');
        }
    }
};
</script>
<style>
/* subpages/addResi/pages/addResi/addResi.wxss */
page {
    width: 100%;
    min-height: 100vh;
    overflow-y: auto;
    background-color: #f7f7f7;
}
.gray {
    color: #c1c1c1;
}
.m-top20 {
    margin-top: 20rpx;
}
.header {
    width: 100%;
    height: 444rpx;
    overflow: hidden;
    /* position: fixed;
    top: 0;
    left: 0;
    z-index: 1000; */
}
.header .header-bg {
    width: 100%;
    height: 444rpx;
    position: absolute;
    height: 100%;
    z-index: -999;
}
.back {
    width: 30rpx;
    height: 30rpx;
    margin-left: 20rpx;
    position: absolute;
    margin-top: 20rpx;
    border-radius: 0rpx;
    z-index: 101;
}
.header .navigation {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #333333;
    font-size: 32rpx;
    position: relative;
    z-index: 100;
}
.header .content {
    margin: 160rpx 0 0 50rpx;
}
.header .content .h2 {
    font-size: 44rpx;
    font-family: PingFang SC;
    font-weight: 800;
    color: #333333;
    margin-bottom: 28rpx;
}
.header .content .tag {
    width: 200rpx;
    height: 50rpx;
    position: relative;
    line-height: 48rpx;
    font-size: 28rpx;
    font-family: PingFang SC;
    font-weight: 500;
    color: #94a6c2;
    padding-left: 15rpx;
}
.header .content .tag b {
    color: #ff2a00;
}
.header .content .tag image {
    width: 170rpx;
    height: 50rpx;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -888;
}
.content {
    width: 100%;
    height: auto;
    padding: 0 20rpx;
    box-sizing: border-box;
    position: relative;
    top: -30rpx;
}
.form_card {
    background-color: #fff;
    border-radius: 10rpx;
    padding: 0 30rpx;
    box-sizing: border-box;
    height: auto;
}
.form_card > .title {
    height: 90rpx;
    line-height: 90rpx;
    font-size: 34rpx;
    font-family: PingFang SC;
    font-weight: bold;
    color: #333333;
    position: relative;
}
.form_card .title .tag {
    width: 10rpx;
    height: 28rpx;
    background: #3a80e7;
    border-radius: 4rpx;
    position: absolute;
    left: -30rpx;
    top: 50%;
    transform: translateY(-14rpx);
}
.form_card .form_item {
    display: flex;
    align-items: center;
    border-top: 1px solid #eaeaea;
    height: 100rpx;
}
.form_card .form_house {
    height: 139rpx;
    display: flex;
    flex-direction: column;
}
.form_card .form_house .form_bottom {
    font-size: 24rpx;
    color: #c1c1c1;
    position: relative;
    top: -10rpx;
}
.form_card .form_house .form_bottom text {
    color: #3a80e7;
}
.form_card .form_item .label {
    min-width: 130rpx;
    height: 100%;
    line-height: 100rpx;
    font-size: 32rpx;
    font-family: PingFang SC;
    font-weight: 500;
    color: #666666;
    position: relative;
}
.form_card .form_item .label .must {
    font-size: 32rpx;
    font-weight: 500;
    color: #ff2a00;
    position: absolute;
    left: -18rpx;
    top: 50%;
    transform: translateY(-50rpx);
}
.form_card .form_item .input {
    flex: 1;
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin-left: 51rpx;
    overflow: hidden;
}
.form_card .form_item .input .residentCategorySty {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.form_card .form_item .input picker,
.form_card .form_item .input input {
    flex: 1;
}
.form_card .form_item .input image {
    height: 22rpx;
    width: 22rpx;
}
.bottom_btn {
    width: 600rpx;
    height: 86rpx;
    background: linear-gradient(87deg, #81b5fb 0%, #3e92ff 100%);
    border-radius: 43rpx;
    text-align: center;
    color: #fff;
    margin: 30rpx auto 0;
    line-height: 86rpx;
}
.text-right {
    text-align: right !important;
    justify-content: flex-end !important;
}
</style>
