// subpages/addResi/pages/addResi/addResi.js import api from "../../../../utils/api" import { cardHide } from "../../../../utils/util" import { $wuxSelect } from '../../../../components/dist/index' import { dictlist, getHouseType, getOldPeopleDetailById, getVeteranDetailById, getVolunteerDetailById, publicWelfarePost, residentEnsureHouse, residentSpecial, residentTenant, residentUnemployed, residentUnitedFront, specialSupport } from "../../../../utils/statisticsApi"; const app = getApp() Page({ data: { 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: " ", }, /** * 生命周期函数--监听页面加载 */ 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) { wx.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, }) } }, getResiDetail: async function () { try { let res = await api.getResiDetail(this.data.resiId); const { birthday, gender, idNum, mobile, name, nation, houseInfo = {}, // 为houseInfo提供一个默认值 categoryInfo, genderName } = res.data; let result = this.data.residentCategory.filter(item => categoryInfo[item.value] === 1); let residentCategorySty = result.map(item => item.title); let categoryInfoArr = result.map(item => item.value); this.setDynamicForm(result) wx.showLoading({ title: '加载中...', }); let form = this.data.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(); wx.hideLoading(); } catch (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.data.resiId).then(res => { this.setData({ 'form.resideInfoDto': res.data, }) }).catch(err => { console.log(err); }) }, // 宗教信仰详情 getResidentReligion() { api.getResidentReligion(this.data.resiId).then(res => { this.setData({ 'form.religionDto': res.data }) }).catch(err => { console.log(err); }) }, // 获取教育信息详情 getResidentEduInfo() { api.getResidentEduInfo(this.data.resiId).then(res => { this.setData({ 'form.eduInfoDto': res.data }) }).catch(err => { console.log(err); }) }, // 获取婚姻信息 getFamilyInfoDetailById() { api.getFamilyInfoDetailById(this.data.resiId).then(res => { this.setData({ 'form.familyInfoDto': res.data, marriageName: this.data.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.data.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.data.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); }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { }, // 获取网格列表 async bindPickerChangeGrid() { return new Promise(async (resolve, reject) => { if (this.data.isFirstLoadGrid) { // 编辑回填逻辑 const id = this.data.form.gridId; const temp = this.data.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.data.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.data.isFirstLoadVillage) { // 编辑回填逻辑 const id = this.data.form.villageId; const temp = this.data.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.data.villageList, '小区'); } else { // 正常修改逻辑 const selectedIndex = e.detail.value; const selectedVillage = this.data.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.data.isFirstLoadBuilding) { const id = this.data.form.buildId; const temp = this.data.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.data.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.data.isFirstLoadUnit) { const id = this.data.form.unitId; const temp = this.data.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.data.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.data.isFirstLoadHouse) { const id = this.data.form.homeId; const temp = this.data.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.data.houseList[selectedIndex]; this.setData({ houseName: selectedVillage.label, "form.homeId": selectedVillage.value }); } resolve(); }); }, bindNameInput(e) { this.setData({ 'form.name': e.detail.value }) console.log(this.data.form) }, bindPickerChangeGender(e) { this.setData({ genderName: this.data.genderList[e.detail.value].label, "form.gender": this.data.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.data.form) }, bindMobileInput(e) { this.setData({ isShowIdTel: false, 'form.mobile': e.detail.value }) console.log(this.data.form) }, bindPlaceOfDomicileInput(e) { this.setData({ 'form.resideInfoDto.placeOfDomicile': e.detail.value }) console.log(this.data.form) }, bindCurrentResidenceInput(e) { this.setData({ 'form.resideInfoDto.currentResidence': e.detail.value }) console.log(this.data.form) }, bindPickerChangeNation(e) { this.setData({ "form.nation": this.data.nation[e.detail.value].value }) }, bindNativePlaceInput(e) { this.setData({ 'form.resideInfoDto.nativePlace': e.detail.value }) }, bindPickerChangeEducation(e) { this.setData({ "form.eduInfoDto.cultureLevel": this.data.education[e.detail.value].value }) }, bindPickerChangemarriage(e) { this.setData({ "form.familyInfoDto.marriage": this.data.marriageList[e.detail.value].value, marriageName: this.data.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.data.categoryInfo, multiple: true, toolbar: { title: '居民类别', confirmText: '确定', }, options: than.data.residentCategory, onChange: (value, index, options) => { console.log('onChange', value, index, options) const matchingLabels = value.map(valueToFind => { const matchedItem = than.data.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.data.form }; than.data.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.data.residentCategory[item]) }) this.setDynamicForm(residentTypeFormCell) console.log(this.data.form); }, }) }, showToast(title) { wx.showToast({ title: title, duration: 2000, icon: 'none' }) }, submit: async function () { if (!this.data.form.gridId) { this.showToast('请选择所在网格') return } if (!this.data.form.villageId) { this.showToast('请选择所在小区') return } if (!this.data.form.buildId) { this.showToast('请选择所在楼栋') return } if (!this.data.form.unitId) { this.showToast('请选择所在单元') return } if (!this.data.form.homeId) { this.showToast('请选择所在房屋') return } if (!this.data.form.name) { this.showToast('请填写姓名') return } if (!this.data.form.gender) { this.showToast('请选择性别') return } if (!this.data.form.birthday) { this.showToast('请选择出生日期') return } if (!this.data.form.idNum) { this.showToast('请填写证件号') return } if (!this.data.form.mobile) { this.showToast('请填写联系电话') return } console.log(this.data.isShowIdNum,this.data.formType != 'edit') const parm = { ...this.data.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.data.ensureHouseFlagOpen ? this.getValue(this.data.residentTypeForm.ensureHouseFlag) : undefined, unemployedDto: this.data.unemployedFlagOpen ? this.getValue(this.data.residentTypeForm.unemployedFlag) : undefined, veteranDto: this.data.veteranFlagOpen ? this.getValue(this.data.residentTypeForm.veteranFlag) : undefined, unitedFrontDto: this.data.unitedFrontFlagOpen ? this.getValue(this.data.residentTypeForm.unitedFrontFlag) : undefined, volunteerDto: this.data.volunteerFlagOpen ? this.getValue(this.data.residentTypeForm.volunteerFlag) : undefined, specialSupportDto: this.data.specialSupportFlagOpen ? this.getValue(this.data.residentTypeForm.specialSupportFlag) : undefined, tenantDto: this.data.tenantFlagOpen ? this.getValue(this.data.residentTypeForm.tenantFlag) : undefined, specialDto: this.data.specialCrowdFlagOpen ? this.getValue(this.data.residentTypeForm.specialCrowdFlag) : undefined, oldPeopleDto: this.data.oldPeopleFlagOpen ? this.getValue(this.data.residentTypeForm.oldPeopleFlag) : undefined, postDto: this.data.publicWelfareFlagOpen ? this.getValue(this.data.residentTypeForm.publicWelfareFlag) : undefined, } console.log(this.data.formType); if (this.data.formType == 'edit') { parm.resiId = this.data.resiId try { const res = await api.resiEdit(parm) if (res.code === 0) { wx.showToast({ title: '编辑成功', duration: 3000, success: function () { setTimeout(() => { wx.navigateBack({ delta: 1 }) }, 3000) } }) } } catch (err) { console.log(err); } } else { try { const res = await api.resiAdd(parm) if (res.code === 0) { wx.showToast({ title: '新增成功', duration: 3000, success: function () { setTimeout(() => { wx.navigateBack({ delta: 1 }) }, 3000) } }) } } catch (err) { console.log(err); } } }, back() { //返回上一级,关闭当前页面 wx.navigateBack({ delta: 1 }) }, handelJump() { wx.navigateTo({ url: '/subpages/addhouse/pages/addhouse/addhouse', }) }, closeDynamicForms() { this.setData({ isShowDynamicForms: false }) }, okDynamicForms(e) { console.log(e) let residentTypeForm = this.data.residentTypeForm residentTypeForm[this.data.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.data.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.data.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.data.residentTypeForm[e.currentTarget.dataset.formtype], isShowDynamicForms: true }) console.log(this.data) }, // 获取住房性质 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.data.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 }, hideData(e) { let key = e.currentTarget.dataset.key let form = this.data.form form[key] = this.data.hideData[key] if(key === 'idNum') { this.setData({ isShowIdNum: !this.data.isShowIdNum }) } if(key === 'mobile') { this.setData({ isShowIdTel: !this.data.isShowIdTel }) } this.setData({ form }) }, showData(e) { let key = e.currentTarget.dataset.key let form = this.data.form; let hideData = this.data.hideData hideData[key] = form[key] this.setData({ hideData }) api.getResiUserInfo(this.data.resiId).then(res => { if(key === 'idNum') { this.setData({ isShowIdNum: !this.data.isShowIdNum }) } if(key === 'mobile') { this.setData({ isShowIdTel: !this.data.isShowIdTel }) } form[key] = res.data[key] this.setData({ form }) console.log(res.data[key], this.data.form[key]) }) } })