Browse Source

调整居民类别

dev
战立标 2 years ago
parent
commit
892f507b4c
  1. 151
      components/DynamicForms/DynamicForms.js
  2. 12
      components/DynamicForms/DynamicForms.json
  3. 103
      components/DynamicForms/DynamicForms.wxml
  4. 38
      components/DynamicForms/DynamicForms.wxss
  5. 5
      components/ResourceInfo/ResourceInfo.js
  6. 4
      components/ResourceInfo/ResourceInfo.wxml
  7. 585
      subpages/addResi/pages/addResi/addResi.js
  8. 3
      subpages/addResi/pages/addResi/addResi.json
  9. 83
      subpages/addResi/pages/addResi/addResi.wxml
  10. 6
      subpages/addResi/pages/addResi/addResi.wxss
  11. 54
      utils/statisticsApi.js

151
components/DynamicForms/DynamicForms.js

@ -0,0 +1,151 @@
Component({
properties: {
show: {
type: Boolean,
value: false
},
title: {
type: String,
value: ' '
},
formController: {
type: Object,
value: () => {
},
observer(val) {
this.setData({
formControllers: val
})
}
},
},
data: {
showDate: false,
dateKey: "",
defaultDate: "",
dateIndex: "",
formControllers: {},
showCheckbox: false,
checkboxTitle: '',
checkboxResult: [],
checkboxOptions: [],
checkboxIndex: ''
},
methods: {
onClose() {
this.triggerEvent('close')
},
onCloseCheckbox() {
this.setData({
showCheckbox: false
})
},
sureCheckbox() {
let formControllers = this.data.formControllers;
let checkboxResult = this.data.checkboxResult
let label = []
formControllers[this.data.checkboxIndex].value = checkboxResult.join(',');
checkboxResult.forEach(item => {
formControllers[this.data.checkboxIndex].options.forEach(option => {
if (option.value == item) {
label.push(option.label)
}
})
})
formControllers[this.data.checkboxIndex].selected = label.join(',');
this.setData({
formControllers,
showCheckbox: false
})
},
toggle(event) {
console.log(event)
const {index} = event.currentTarget.dataset;
const checkbox = this.selectComponent(`.checkboxes-${index}`);
console.log(checkbox)
checkbox.toggle();
},
onChangeCheckbox(event) {
this.setData({
checkboxResult: event.detail,
});
},
onShowCheckbox(e) {
let {options, value, label, index} = e.currentTarget.dataset
this.setData({
showCheckbox: true,
checkboxTitle: '选择' + label,
checkboxResult: value.split(','),
checkboxOptions: options,
checkboxIndex: index
})
},
onShowDate(e) {
let {key, value, index} = e.currentTarget.dataset
console.log(e.currentTarget.dataset)
this.setData({
showDate: true,
dateKey: key,
defaultDate: value,
dateIndex: index
})
},
onCloseDate(e) {
this.setData({
showDate: false
})
},
formatDate(date) {
date = new Date(date);
return `${date.getFullYear()}-${date.getMonth() + 1 > 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1)}-${date.getDate() > 10 ? date.getDate() : '0' + date.getDate()}`;
},
onConfirmDate(e) {
let formControllers = this.data.formControllers;
formControllers[this.data.dateIndex].value = this.formatDate(e.detail)
this.setData({
showDate: false,
formControllers
});
console.log(this.data.formControllers)
},
setVal(e) {
let formControllers = this.data.formControllers;
console.log(e)
formControllers[e.currentTarget.dataset.index].value = e.detail
this.setData({
showDate: false,
formControllers
});
console.log(this.data.formControllers)
},
pickerChange(e) {
let {valuekey, options, currentindex, key} = e.currentTarget.dataset
let index = e.detail.value
console.log(key, 'key')
let formControllers = this.data.formControllers;
let selected = options[index]
formControllers[currentindex].value = selected[valuekey]
formControllers[currentindex].valueIndex = e.detail.value
if (selected.masterControl) {
formControllers.forEach(item => {
if (item.showFlag) {
if (item.showFlag === selected[valuekey]) {
item.hide = false
} else {
item.hide = true
}
}
})
}
this.setData({
formControllers
})
},
sure() {
console.log('ok', this.data.formControllers)
this.triggerEvent('ok', this.data.formControllers)
this.onClose();
}
},
});

12
components/DynamicForms/DynamicForms.json

@ -0,0 +1,12 @@
{
"component": true,
"usingComponents": {
"van-action-sheet": "@vant/weapp/action-sheet/index",
"van-field": "@vant/weapp/field/index",
"van-cell": "@vant/weapp/cell/index",
"van-cell-group": "@vant/weapp/cell-group/index",
"van-calendar": "@vant/weapp/calendar/index",
"van-checkbox-group": "@vant/weapp/checkbox-group/index",
"van-checkbox": "@vant/weapp/checkbox/index"
}
}

103
components/DynamicForms/DynamicForms.wxml

@ -0,0 +1,103 @@
<van-action-sheet show="{{ show }}" title="{{title}}" bind:close="onClose">
<van-cell-group>
<block wx:for="{{formControllers}}" wx:if="{{!item.hide}}">
<van-field
wx:if="{{item.type === 'input'}}"
label="{{item.label}}"
model:value="{{ item.value }}"
placeholder="请输入{{item.label}}"
bind:input="setVal"
data-key="{{item.key}}"
data-index="{{index}}"
/>
<van-field
wx:if="{{item.type === 'textarea'}}"
type="textarea"
label="{{item.label}}"
value="{{ item.value }}"
placeholder="请输入{{item.label}}"
autosize
maxlength="{{item.maxlength?item.maxlength:-1}}"
show-word-limit="{{item.maxlength}}"
bind:input="setVal"
data-key="{{item.key}}"
data-index="{{index}}"
/>
<block wx:if="{{item.type === 'date'}}">
<van-cell
title="{{item.label}}"
value="{{ item.value?item.value:'请选择'+item.label}}"
bind:click="onShowDate"
data-value="{{item.value}}"
data-index="{{index}}"
data-key="{{item.key}}"
/>
</block>
<block wx:if="{{item.type === 'checkbox'}}">
<van-cell
title="{{item.label}}"
value="{{ item.selected?item.selected:'请选择'+item.label}}"
bind:click="onShowCheckbox"
data-options="{{item.options}}"
data-value="{{item.value}}"
data-label="{{item.label}}"
data-index="{{index}}"
data-key="{{item.key}}"
/>
</block>
<block wx:if="{{item.type === 'select'}}">
<picker
value="{{item.valueIndex}}"
range="{{item.options}}"
range-key="{{item.optionsKey || 'label'}}"
bind:change="pickerChange"
data-value="{{item.value}}"
data-valuekey="{{item.valueKey || 'value'}}"
data-options="{{item.options || []}}"
data-currentindex="{{index}}"
data-optionsKey="{{item.optionsKey || 'label'}}"
data-index="{{index}}"
data-key="{{item.key}}"
>
<van-cell title="{{item.label}}"
value="{{ item.valueIndex>=0?item.options[item.valueIndex][item.optionsKey || 'label']:'请选择'+item.label }}"/>
</picker>
</block>
</block>
</van-cell-group>
<view class="bottom-btn">
<view class="btn btn-gray" bind:tap="onClose">取消</view>
<view class="btn btn-blue" bind:tap="sure">确定</view>
</view>
</van-action-sheet>
<van-calendar
show="{{ showDate }}"
bind:close="onCloseDate"
bind:confirm="onConfirmDate"
default-date="{{defaultDate}}"
/>
<van-action-sheet show="{{ showCheckbox }}" title="{{checkboxTitle}}" bind:close="onCloseCheckbox">
<scroll-view scroll-y style="max-height: 50vh">
<van-checkbox-group value="{{ checkboxResult }}" bind:change="onChangeCheckbox">
<view class="checkbox-item" wx:for="{{checkboxOptions}}"
data-index="{{ index }}"
bind:tap="toggle"
wx:key="index"
>
<van-checkbox
name="{{item.value}}"
class="checkboxes-{{ index }}"
>
{{item.label}}
</van-checkbox>
</view>
</van-checkbox-group>
</scroll-view>
<view class="bottom-btn">
<view class="btn btn-gray" bind:tap="onCloseCheckbox">取消</view>
<view class="btn btn-blue" bind:tap="sureCheckbox">确定</view>
</view>
</van-action-sheet>

38
components/DynamicForms/DynamicForms.wxss

@ -0,0 +1,38 @@
.btn {
width: 240rpx;
height: 76rpx;
border-radius: 38rpx;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
font-size: 32rpx;
font-weight: bold;
}
.btn-blue {
background: linear-gradient(87deg, #81B5FB 0%, #3E92FF 100%);
}
.btn-gray {
background: #D9D9D9;
}
.bottom-btn {
background: none;
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx 99rpx 20rpx;
/*padding-bottom: calc(env(safe-area-inset-bottom) + 10rpx);*/
width: 100%;
box-sizing: border-box;
z-index: 999;
position: static;
}
.checkbox-item {
display: flex;
align-items: center;
padding: 30rpx 40rpx;
border-bottom: 1px solid #f2f2f2;
}

5
components/ResourceInfo/ResourceInfo.js

@ -1,5 +1,5 @@
import {
communitySelfOrgDetail,
communitySelfOrgDetail, getServiceTypeRelationByHobbyCode,
icpartyunitDetail,
residentEduInfo,
residentHobbyInfo,
@ -74,12 +74,13 @@ Component({
if (monthDiff < 0 || (monthDiff === 0 && dayDiff < 0)) {
yearDiff--;
}
console.log(yearDiff, 'yearDiff')
return yearDiff;
},
// 志愿者 公益岗
getVolunteer() {
volunteerDetail(this.data.id).then(({data}) => {
data.birthday = data.birthday ? this.getAgeByDateOfBirth(new Date(data.birthday)) : '未知'
data.age = data.birthday ? this.getAgeByDateOfBirth(new Date(data.birthday)) : '未知'
this.setData({
detail: data || {}
})

4
components/ResourceInfo/ResourceInfo.wxml

@ -117,11 +117,11 @@
<view class="items">
<view class="label">所在位置:</view>
<view class="value">{{ detail.houseInfo ? detail.houseInfo.homeName : '' }}</view>
<view class="value">{{ detail&&detail.houseInfo&&detail.houseInfo.homeName ? detail.houseInfo.homeName : '' }}</view>
</view>
<view class="items">
<view class="label">兴趣爱好:</view>
<view class="value">{{ hobby ? hobby.hobbyRemark : '' }}</view>
<view class="value">{{ hobby&&hobby.hobbyRemark ? hobby.hobbyRemark : '' }}</view>
</view>
</block>
</view>

585
subpages/addResi/pages/addResi/addResi.js

@ -1,9 +1,354 @@
// subpages/addResi/pages/addResi/addResi.js
import api from "../../../../utils/api"
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: {
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: [],
@ -37,7 +382,7 @@ Page({
unitedFrontFlag: 0,
petitionOfficerFlag: "",
volunteerFlag: 0,
bereavedPersonFlag: 0,
specialSupportFlag: 0,
tenantFlag: 0,
floatingFlag: 0,
specialCrowdFlag: 0,
@ -87,18 +432,18 @@ Page({
residentCategory: [
{title: '党员', value: 'partyFlag'},
{title: '低保人员', value: 'subsistenceAllowanceFlag'},
{ title: '保障房人员', value: 'ensureHouseFlag'},
{ title: '失业人员', value: 'unemployedFlag'},
{title: '保障房人员', value: 'ensureHouseFlag', isForm: true},
{title: '失业人员', value: 'unemployedFlag', isForm: true},
{title: '育龄妇女', value: 'fertileWomanFlag'},
{ title: '退役军人', value: 'veteranFlag'},
{ title: '统战人员', value: 'unitedFrontFlag'},
{title: '退役军人', value: 'veteranFlag', isForm: true},
{title: '统战人员', value: 'unitedFrontFlag', isForm: true},
{title: '信访人员', value: 'petitionOfficerFlag'},
{ title: '志愿者', value: 'volunteerFlag' },
{ title: '特扶人员', value: 'bereavedPersonFlag' },
{ title: '租户', value: 'tenantFlag'},
{title: '志愿者', value: 'volunteerFlag', isForm: true},
{title: '特扶人员', value: 'specialSupportFlag', isForm: true},
{title: '租户', value: 'tenantFlag', isForm: true},
{title: '流动人口', value: 'floatingFlag'},
{ title: '特殊人群', value: 'specialCrowdFlag' },
{ title: '老年人', value: 'oldPeopleFlag'},
{title: '特殊人群', value: 'specialCrowdFlag', isForm: true},
{title: '老年人', value: 'oldPeopleFlag', isForm: true},
{title: '空巢老人', value: 'emptyNesterFlag'},
{title: '独居老人', value: 'liveAloneFlag'},
{title: '失能老人', value: 'disabledFlag'},
@ -106,10 +451,12 @@ Page({
{title: '残疾', value: 'disabilityFlag'},
{title: '大病', value: 'seriousIllnessFlag'},
{title: '慢病', value: 'chronicDiseaseFlag'},
{ title: '公益岗人员', value: 'publicWelfareFlag' }
{title: '公益岗人员', value: 'publicWelfareFlag', isForm: true}
],
residentCategorySty: '',
categoryInfo:''
categoryInfo: '',
isShowDynamicForms: false,
dynamicTitle: " ",
},
/**
@ -182,11 +529,18 @@ Page({
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,
@ -678,6 +1032,7 @@ Page({
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;
@ -702,6 +1057,11 @@ Page({
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);
},
})
@ -754,7 +1114,19 @@ Page({
this.showToast('请填写联系电话')
return
}
const parm = {...this.data.form}
const parm = {
...this.data.form,
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
@ -807,5 +1179,190 @@ Page({
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
},
})

3
subpages/addResi/pages/addResi/addResi.json

@ -1,6 +1,7 @@
{
"usingComponents": {
"wux-select": "../../../../components/dist/select"
"wux-select": "../../../../components/dist/select",
"DynamicForms": "../../../../components/DynamicForms/DynamicForms"
},
"navigationStyle": "custom"
}

83
subpages/addResi/pages/addResi/addResi.wxml

@ -1,18 +1,22 @@
<!--subpages/addResi/pages/addResi/addResi.wxml-->
<view class="header">
<image src="../../../../images/back.png" class="back" style=" top: {{statusHeight}}px;width: 50rpx;height: 50rpx;" bindtap="back" mode=""/>
<image src="../../../../images/back.png" class="back" style=" top: {{statusHeight}}px;width: 50rpx;height: 50rpx;"
bindtap="back" mode=""/>
<image class="header-bg" src="../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 class="tag">带 <b>*</b> 号为必填项
</view>
</view>
</view>
<view class="content">
<view class="form_card">
<view class="title"><text class="tag"></text> 基本信息</view>
<view class="title">
<text class="tag"></text> 基本信息
</view>
<view class="form_item">
<view class="label">
<text class="must">*</text>
@ -33,7 +37,8 @@
<view class="title">所在小区</view>
</view>
<view class="input">
<picker bindchange="bindPickerChangevillageId" range-key="label" value="{{index}}" range="{{villageList}}">
<picker bindchange="bindPickerChangevillageId" range-key="label" value="{{index}}"
range="{{villageList}}">
<view class="{{villageName?'':'gray'}}">
{{villageName ? villageName : '请选择'}}
</view>
@ -47,7 +52,8 @@
<view class="title">所在楼栋</view>
</view>
<view class="input">
<picker bindchange="bindPickerChangebuilding" range-key="label" value="{{index}}" range="{{buildingList}}">
<picker bindchange="bindPickerChangebuilding" range-key="label" value="{{index}}"
range="{{buildingList}}">
<view class="{{buildingName?'':'gray'}}">
{{buildingName ? buildingName : '请选择'}}
</view>
@ -76,7 +82,8 @@
<view class="title">所在房屋</view>
</view>
<view class="input">
<picker bindchange="bindPickerChangeHouse" range-key="label" value="{{index}}" range="{{houseList}}">
<picker bindchange="bindPickerChangeHouse" range-key="label" value="{{index}}"
range="{{houseList}}">
<view class="{{houseName?'':'gray'}}">
{{houseName ? houseName : '请选择'}}
</view>
@ -84,7 +91,9 @@
<image src="../../../../images/right.png" mode=""/>
</view>
</view>
<view class="form_bottom">选项中如无该房屋,请先 <text bind:tap="handelJump">新增房屋</text></view>
<view class="form_bottom">选项中如无该房屋,请先
<text bind:tap="handelJump">新增房屋</text>
</view>
</view>
<view class="form_item">
<view class="label">
@ -92,7 +101,8 @@
<view class="title">姓名</view>
</view>
<view class="input">
<input confirm-type="next" bindblur="bindNameInput" bindinput="bindNameInput" value="{{form.name}}" placeholder-class="gray" placeholder="请输入" />
<input confirm-type="next" bindblur="bindNameInput" bindinput="bindNameInput" value="{{form.name}}"
placeholder-class="gray" placeholder="请输入"/>
</view>
</view>
<view class="form_item">
@ -129,7 +139,8 @@
<view class="title">证件号</view>
</view>
<view class="input">
<input confirm-type="next" bindblur="bindIdNumInput" bindinput="bindidNumInput" value="{{form.idNum}}" placeholder-class="gray" placeholder="请输入" />
<input confirm-type="next" bindblur="bindIdNumInput" bindinput="bindidNumInput" value="{{form.idNum}}"
placeholder-class="gray" placeholder="请输入"/>
</view>
</view>
<view class="form_item">
@ -138,18 +149,22 @@
<view class="title">联系电话</view>
</view>
<view class="input">
<input confirm-type="next" bindblur="bindMobileInput" bindinput="bindmobileInput" value="{{form.mobile}}" placeholder-class="gray" placeholder="请输入" />
<input confirm-type="next" bindblur="bindMobileInput" bindinput="bindmobileInput"
value="{{form.mobile}}" placeholder-class="gray" placeholder="请输入"/>
</view>
</view>
</view>
<view class="form_card m-top20">
<view class="title"><text class="tag"></text> 详细信息</view>
<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" bindblur="bindPlaceOfDomicileInput" bindinput="bindPlaceOfDomicileInput" value="{{form.resideInfoDto.placeOfDomicile}}" placeholder-class="gray" placeholder="请输入" />
<input confirm-type="next" bindblur="bindPlaceOfDomicileInput" bindinput="bindPlaceOfDomicileInput"
value="{{form.resideInfoDto.placeOfDomicile}}" placeholder-class="gray" placeholder="请输入"/>
</view>
</view>
<view class="form_item">
@ -157,7 +172,8 @@
<view class="title">现居地</view>
</view>
<view class="input">
<input confirm-type="next" bindblur="bindCurrentResidenceInput" bindinput="bindCurrentResidenceInput" value="{{form.resideInfoDto.currentResidence}}" placeholder-class="gray" placeholder="请输入" />
<input confirm-type="next" bindblur="bindCurrentResidenceInput" bindinput="bindCurrentResidenceInput"
value="{{form.resideInfoDto.currentResidence}}" placeholder-class="gray" placeholder="请输入"/>
</view>
</view>
<view class="form_item">
@ -178,7 +194,8 @@
<view class="title">籍贯</view>
</view>
<view class="input">
<input confirm-type="next" bindblur="bindNativePlaceInput" bindinput="bindNativePlaceInput" value="{{form.resideInfoDto.nativePlace}}" placeholder-class="gray" placeholder="请输入" />
<input confirm-type="next" bindblur="bindNativePlaceInput" bindinput="bindNativePlaceInput"
value="{{form.resideInfoDto.nativePlace}}" placeholder-class="gray" placeholder="请输入"/>
</view>
</view>
<view class="form_item">
@ -186,7 +203,8 @@
<view class="title">文化程度</view>
</view>
<view class="input">
<picker bindchange="bindPickerChangeEducation" range-key="label" value="{{index}}" range="{{education}}">
<picker bindchange="bindPickerChangeEducation" range-key="label" value="{{index}}"
range="{{education}}">
<view class="{{form.eduInfoDto.cultureLevel?'':'gray'}}">
{{form.eduInfoDto.cultureLevel ? education[form.eduInfoDto.cultureLevel].label : '请选择'}}
</view>
@ -199,7 +217,8 @@
<view class="title">婚姻状况</view>
</view>
<view class="input">
<picker bindchange="bindPickerChangemarriage" range-key="label" value="{{index}}" range="{{marriageList}}">
<picker bindchange="bindPickerChangemarriage" range-key="label" value="{{index}}"
range="{{marriageList}}">
<view class="{{form.familyInfoDto.marriage?'':'gray'}}">
{{marriageName ? marriageName : '请选择'}}
</view>
@ -212,18 +231,37 @@
<view class="title">宗教信仰</view>
</view>
<view class="input">
<input confirm-type="next" bindblur="bindReligionInput" bindinput="bindReligionInput" value="{{form.religionDto.religion}}" placeholder-class="gray" placeholder="请输入" />
<input confirm-type="next" bindblur="bindReligionInput" bindinput="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="title">
<text class="tag"></text> 居民类别
</view>
<view class="form_item">
<view class="label">
<view class="title">居民类别</view>
</view>
<view class="input" bind:tap="onClick3">
<view class="residentCategorySty {{residentCategorySty?'':'gray'}}" style="text-align: left;"> {{residentCategorySty?residentCategorySty:'请选择'}}</view>
<view class="residentCategorySty {{residentCategorySty?'':'gray'}}" style="text-align: left;">
{{residentCategorySty ? residentCategorySty : '请选择'}}
</view>
<image src="../../../../images/right.png" mode=""/>
</view>
</view>
<view class="form_item"
wx:for="{{residentTypeFormCell}}"
:key="index"
bind:tap="openDynamicForms"
data-title="{{item.title}}"
data-formtype="{{item.value}}"
>
<view class="label">
<view class="title">{{item.title}}</view>
</view>
<view class="input text-right">
<image src="../../../../images/right.png" mode=""/>
</view>
</view>
@ -232,3 +270,10 @@
</view>
<wux-select id="wux-select3"/>
<DynamicForms
show="{{isShowDynamicForms}}"
title="{{dynamicFormsTitle}}"
bind:close="closeDynamicForms"
bind:ok="okDynamicForms"
formController="{{formController}}"
/>

6
subpages/addResi/pages/addResi/addResi.wxss

@ -133,7 +133,7 @@ page {
color:#3A80E7 ;
}
.form_card .form_item .label{
width: 130rpx;
min-width: 130rpx;
height: 100%;
line-height: 100rpx;
font-size: 32rpx;
@ -184,3 +184,7 @@ page {
margin: 30rpx auto 0;
line-height: 86rpx;
}
.text-right {
text-align: right!important;
justify-content: flex-end!important;
}

54
utils/statisticsApi.js

@ -268,3 +268,57 @@ export function dwdEventEventList(params) {
export function getOwnedRolesOfStaffId(id) {
return request.get('gov/access/govroleuser/getOwnedRolesOfStaffId/'+id)
}
// 房屋性质
export function getHouseType(params) {
return request.post('sys/dict/data/house',params)
}
// 保障房信息详情
export function residentEnsureHouse(id) {
return request.get('actual/base/residentEnsureHouse/detail/'+id)
}
// 失业信息详情
export function residentUnemployed(id) {
return request.get('actual/base/residentUnemployed/detail/'+id)
}
// 退役军人信息详情
export function getVeteranDetailById(id) {
return request.post('actual/base/residentVeteran/getVeteranDetailById/'+id)
}
// 统战人员详情
export function residentUnitedFront(id) {
return request.get('actual/base/residentUnitedFront/detail/'+id)
}
// 志愿者信息详情
export function getVolunteerDetailById(id) {
return request.post('actual/base/residentVolunteer/getVolunteerDetailById/'+id)
}
// 老年人信息详情
export function getOldPeopleDetailById(id) {
return request.post('actual/base/residentOldPeople/getOldPeopleDetailById/'+id)
}
// 公益岗人员信息详情
export function publicWelfarePost(id) {
return request.get('actual/base/resiCategorized/publicWelfarePost/detail/'+id)
}
// 特殊人群信息
export function residentSpecial(id) {
return request.get('actual/base/residentSpecial/detail/'+id)
}
// 租户详情
export function residentTenant(id) {
return request.get('actual/base/residentTenant/detailByResiId/'+id)
}
// 特扶人员信息详情
export function specialSupport(id) {
return request.get('actual/base/resiCategorized/specialSupport/detail/'+id)
}

Loading…
Cancel
Save