25 changed files with 1081 additions and 12 deletions
After Width: | Height: | Size: 267 B |
@ -0,0 +1,117 @@ |
|||
// subpages/family/pages/bindFamily/bindFamily.js
|
|||
|
|||
import { |
|||
bindingFamily, |
|||
getPlotOption, |
|||
getBuildingOption, |
|||
getUnitOption, |
|||
getHouseOption, |
|||
addFamilyMember, |
|||
updateFamilyMember, |
|||
getFamilyMember |
|||
} from '../../utils/api.js' |
|||
const api = require('../../../../utils/api') |
|||
const app = getApp() |
|||
|
|||
Page({ |
|||
/** |
|||
* 页面的初始数据 |
|||
*/ |
|||
data: { |
|||
isApplied: true, |
|||
fmData: { |
|||
nickname: "", |
|||
surname: "", |
|||
name: "", |
|||
street: "", |
|||
district: "", |
|||
buildingAddress: "", |
|||
idNum: "", |
|||
mobile: '' |
|||
}, |
|||
submitBtnIsAllowed: false, |
|||
loadingHidden:false, |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面加载 |
|||
*/ |
|||
onLoad: function (options) { |
|||
wx.showToast({title: '加载中', icon: 'loading', duration: 10000}); |
|||
this.getUserState() |
|||
let idCard = options |
|||
wx.hideToast() |
|||
}, |
|||
// 根据微信code查询用户当前状态
|
|||
getUserState() { |
|||
wx.login({ |
|||
success(res) { |
|||
if (res.code) { |
|||
let code = res.code |
|||
api.getToken(code).then(res => { |
|||
const state = res.data.userState |
|||
app.globalData.infoCompleted = state |
|||
wx.setStorageSync('topGridName', res.data.grid) |
|||
wx.setStorageSync('token', res.data.token) |
|||
}) |
|||
} else { |
|||
console.log('登录失败' + res.errMsg) |
|||
} |
|||
} |
|||
}) |
|||
}, |
|||
submit(e){ |
|||
let { nickname, surname,name,street,district,buildingAddress,idNum,mobile} = e.detail.value; |
|||
this.setDate({ |
|||
nickname, surname,name,street,district,buildingAddress,idNum,mobile |
|||
}) |
|||
}, |
|||
/** |
|||
* 生命周期函数--监听页面初次渲染完成 |
|||
*/ |
|||
onReady: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面显示 |
|||
*/ |
|||
onShow: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面隐藏 |
|||
*/ |
|||
onHide: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面卸载 |
|||
*/ |
|||
onUnload: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面相关事件处理函数--监听用户下拉动作 |
|||
*/ |
|||
onPullDownRefresh: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面上拉触底事件的处理函数 |
|||
*/ |
|||
onReachBottom: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 用户点击右上角分享 |
|||
*/ |
|||
onShareAppMessage: function () { |
|||
|
|||
} |
|||
}) |
@ -0,0 +1,3 @@ |
|||
{ |
|||
"usingComponents": {} |
|||
} |
@ -0,0 +1,172 @@ |
|||
<form wx:if="{{isApplied}}" |
|||
class="m-fm" |
|||
bindsubmit="submit" |
|||
report-submit="true"> |
|||
<view class="fm"> |
|||
<view class="item-title">基础信息</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="z-stress">*</text> |
|||
昵称 |
|||
</view> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.nickname }}" |
|||
placeholder="请输入您的昵称" |
|||
placeholder-class="z-ph" |
|||
name="nickname" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="z-stress">*</text> |
|||
姓 |
|||
</view> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.surname }}" |
|||
placeholder="请输入您的姓氏" |
|||
placeholder-class="z-ph" |
|||
name="surname" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="z-stress">*</text> |
|||
名 |
|||
</view> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.name }}" |
|||
placeholder="请输入您的名字" |
|||
placeholder-class="z-ph" |
|||
name="name" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="z-stress">*</text> |
|||
手机号 |
|||
</view> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.mobile }}" |
|||
placeholder="请输入您的手机号" |
|||
placeholder-class="z-ph" |
|||
name="mobile" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="z-stress">*</text> |
|||
身份证号 |
|||
</view> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.idNum }}" |
|||
placeholder="请输入您的身份证号码" |
|||
placeholder-class="z-ph" |
|||
name="idNum" |
|||
cursor-spacing="14" |
|||
maxlength="18" /> |
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
|
|||
<view class="fm mt20"> |
|||
<view class="item-title border-bot0">现居住地</view> |
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="z-stress">*</text> |
|||
路牌号 |
|||
</view> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.street }}" |
|||
placeholder="* 什么路(街、村)多少号" |
|||
placeholder-class="z-ph" |
|||
name="street" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="z-white">*</text> |
|||
小区名称 |
|||
</view> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.district }}" |
|||
placeholder="小区名称" |
|||
placeholder-class="z-ph" |
|||
name="district" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="z-white">*</text> |
|||
楼栋 |
|||
</view> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.buildingAddress }}" |
|||
placeholder="楼栋号-单元室(如8号楼602)" |
|||
placeholder-class="z-ph" |
|||
name="buildingAddress" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="z-white">*</text> |
|||
单元 |
|||
</view> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.buildingAddress }}" |
|||
placeholder="楼栋号-单元室(如8号楼602)" |
|||
placeholder-class="z-ph" |
|||
name="buildingAddress" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="z-stress">*</text> |
|||
房屋 |
|||
</view> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.buildingAddress }}" |
|||
placeholder="楼栋号-单元室(如8号楼602)" |
|||
placeholder-class="z-ph" |
|||
name="buildingAddress" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<button formType="submit" |
|||
class="submit-btn {{ submitBtnIsAllowed ? '' : 'z-disabled'}}" |
|||
plain="true">提交</button> |
|||
</form> |
|||
|
@ -0,0 +1,55 @@ |
|||
@import '../../wxss/register.wxss'; |
|||
|
|||
|
|||
.item-title { |
|||
padding: 25rpx 0; |
|||
font-size: 34rpx; |
|||
color: #000; |
|||
font-family: SourceHanSerifSC-Heavy; |
|||
line-height: 1; |
|||
border-bottom: 1rpx solid #eee; |
|||
} |
|||
.border-bot0 { |
|||
border-bottom: 0; |
|||
} |
|||
|
|||
.m-fm .fm { |
|||
width: 100%; |
|||
box-sizing: border-box; |
|||
margin: 0; |
|||
padding: 0 30rpx; |
|||
} |
|||
.m-fm .mt20 { |
|||
margin-top: 20rpx; |
|||
} |
|||
.z-white{ |
|||
color: #fff; |
|||
} |
|||
.submit-btn{ |
|||
display:block; |
|||
margin:80rpx auto; |
|||
padding:0; |
|||
width:600rpx; |
|||
height:80rpx; |
|||
min-height:80rpx; |
|||
line-height:80rpx; |
|||
border-radius:80rpx; |
|||
border:none!important; |
|||
outline:0; |
|||
font-size:30rpx; |
|||
background-color:#e60000; |
|||
color: #fff!important; |
|||
text-align:center; |
|||
transition:background-color .13s; |
|||
font-family:Source Han Serif SC; |
|||
font-weight:500 |
|||
} |
|||
.m-fm .submit-btn.z-disabled{ |
|||
background-color:#ffb2b5 |
|||
} |
|||
.m-fm .submit-btn.z-disabled:active{ |
|||
background-color:#ff999c |
|||
} |
|||
.m-fm .submit-btn:active{ |
|||
background-color:#ff1921 |
|||
} |
@ -0,0 +1,192 @@ |
|||
// subpages/family/pages/familyInfo/familyInfo.js
|
|||
Page({ |
|||
|
|||
/** |
|||
* 页面的初始数据 |
|||
*/ |
|||
data: { |
|||
submitBtnIsAllowed: false, |
|||
isShowDialog: false, |
|||
fmData: { |
|||
name: '', |
|||
idCard: '', |
|||
sex: '', |
|||
birthday: '', |
|||
mobile: '', |
|||
nationValue: '', |
|||
nationName: '', |
|||
houseRelation: "", |
|||
houseRelationName: "", |
|||
presentAddressPathCode: "", |
|||
presentAddressCode: "", |
|||
presentAddress: "", |
|||
}, |
|||
nationList: [ |
|||
{ |
|||
value: "汉族", |
|||
label: "汉族", |
|||
}, |
|||
{ |
|||
value: "维吾尔", |
|||
label: "维吾尔", |
|||
} |
|||
], |
|||
houseRelationList: [ |
|||
{ |
|||
value: "1", |
|||
label: "户主", |
|||
}, |
|||
{ |
|||
value: "0", |
|||
label: "不是户主", |
|||
}, |
|||
] |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面加载 |
|||
*/ |
|||
onLoad: function (options) { |
|||
|
|||
}, |
|||
nameSync(e){ |
|||
this.setData({ |
|||
'fmData.name' : e.detail.value |
|||
}) |
|||
}, |
|||
idCardSync(e){ |
|||
this.setData({ |
|||
'fmData.idCard' : e.detail.value |
|||
}) |
|||
}, |
|||
mobileSync(e){ |
|||
this.setData({ |
|||
'fmData.mobile' : e.detail.value |
|||
}) |
|||
}, |
|||
nationSyncPicker(e){ |
|||
this.setData({ |
|||
'fmData.nationValue' : this.data.nationList[e.detail.value].value, |
|||
'fmData.nationName' : this.data.nationList[e.detail.value].label |
|||
}) |
|||
}, |
|||
houseSyncPicker(e){ |
|||
this.setData({ |
|||
'fmData.houseRelation' : this.data.nationList[e.detail.value].value, |
|||
'fmData.houseRelationName' : this.data.nationList[e.detail.value].label |
|||
}) |
|||
}, |
|||
addressSync(e){ |
|||
this.setData({ |
|||
'fmData.presentAddress' : e.detail.value |
|||
}) |
|||
}, |
|||
handleValidBlur: function (e) { |
|||
var fmData = this.data.fmData; |
|||
var right = this.identityCodeValid(e.detail.value); |
|||
if (right) { |
|||
fmData.birthday = this.getBirthday(this.data.fmData.idCard); |
|||
fmData.sex = this.getSex(this.data.fmData.idCard); |
|||
this.setData({ fmData: fmData }); |
|||
} |
|||
else { |
|||
fmData.idCard = ''; |
|||
this.setData({ fmData: fmData }); |
|||
wx.showToast({ |
|||
title: '身份证号不正确,请重新输入', |
|||
icon: "none", |
|||
duration: 1500, |
|||
}); |
|||
} |
|||
}, |
|||
identityCodeValid: function (idcode) { |
|||
var weightFactor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; |
|||
var checkCode = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; |
|||
var code = idcode + ''; |
|||
var last = idcode[17]; |
|||
var seventeen = code.substring(0, 17); |
|||
var arr = seventeen.split(''); |
|||
var len = arr.length; |
|||
var num = 0; |
|||
for (var i = 0; i < len; i++) { |
|||
num = num + arr[i] * weightFactor[i]; |
|||
} |
|||
var resisue = num % 11; |
|||
var lastNo = checkCode[resisue]; |
|||
var idcardPatter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/; |
|||
var format = idcardPatter.test(idcode); |
|||
return !!(last === lastNo && format); |
|||
}, |
|||
getBirthday: function (psidno) { |
|||
var birthdayno, birthdaytemp; |
|||
if (psidno.length === 18) { |
|||
birthdayno = psidno.substring(6, 14); |
|||
} |
|||
else if (psidno.length === 15) { |
|||
birthdaytemp = psidno.substring(6, 12); |
|||
birthdayno = '19' + birthdaytemp; |
|||
} |
|||
else { |
|||
return ''; |
|||
} |
|||
var birthday = birthdayno.substring(0, 4) + '-' + birthdayno.substring(4, 6) + '-' + birthdayno.substring(6, 8); |
|||
return birthday; |
|||
}, |
|||
getSex: function (psidno) { |
|||
var num = psidno.charAt(16); |
|||
if (num % 2 == 0) { |
|||
return '女'; |
|||
} |
|||
else { |
|||
return '男'; |
|||
} |
|||
}, |
|||
/** |
|||
* 生命周期函数--监听页面初次渲染完成 |
|||
*/ |
|||
onReady: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面显示 |
|||
*/ |
|||
onShow: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面隐藏 |
|||
*/ |
|||
onHide: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面卸载 |
|||
*/ |
|||
onUnload: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面相关事件处理函数--监听用户下拉动作 |
|||
*/ |
|||
onPullDownRefresh: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面上拉触底事件的处理函数 |
|||
*/ |
|||
onReachBottom: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 用户点击右上角分享 |
|||
*/ |
|||
onShareAppMessage: function () { |
|||
|
|||
} |
|||
}) |
@ -0,0 +1,3 @@ |
|||
{ |
|||
"usingComponents": {} |
|||
} |
@ -0,0 +1,234 @@ |
|||
<view class="g-bd"> |
|||
<view class="m-fm"> |
|||
<view class="fm"> |
|||
<view class="fm-title">基本信息</view> |
|||
<view class="item-list"> |
|||
<view class="item"> |
|||
<view class="field"> |
|||
<view class="must">*</view> |
|||
<view class="field-text">姓名</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.name }}" |
|||
placeholder="请输入" |
|||
placeholder-class="z-ph" |
|||
bindinput="nameSync" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<view class="must">*</view> |
|||
<view class="field-text">身份证号</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.idCard }}" |
|||
placeholder="请输入上报人身份证号" |
|||
placeholder-class="z-ph" |
|||
bindinput="idCardSync" |
|||
cursor-spacing="14" |
|||
maxlength="100" |
|||
bindblur="handleValidBlur" /> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<view class="must">*</view> |
|||
<view class="field-text">性别</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="input"> |
|||
{{fmData.sex}} |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<view class="must">*</view> |
|||
<view class="field-text">出生日期</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="input"> |
|||
{{fmData.birthday}} |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<view class="must">*</view> |
|||
<view class="field-text">联系电话</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ fmData.mobile }}" |
|||
placeholder="请输入联系电话" |
|||
placeholder-class="z-ph" |
|||
data-fm="fmData" |
|||
data-name="mobile" |
|||
bindinput="mobileSync" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="fm"> |
|||
<view class="item-list"> |
|||
|
|||
<view class="item" style="border-top: 0rpx"> |
|||
<view class="field"> |
|||
<view class="field-text">民族</view> |
|||
</view> |
|||
<view class="value"> |
|||
<picker class="picker" |
|||
range="{{nationList}}" |
|||
range-key="label" |
|||
bindchange="nationSyncPicker"> |
|||
<view class="picker-text" wx:if="{{fmData.nationName}}">{{fmData.nationName}}</view> |
|||
<view class="picker-text z-weak" wx:else>请选择</view> |
|||
<image class="menu-arrow" src="/subpages/family/images/arrow.png" mode="aspectFit" /> |
|||
</picker> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<view class="field-text">与户主关系</view> |
|||
</view> |
|||
<view class="value"> |
|||
<picker class="picker" |
|||
range="{{houseRelationList}}" |
|||
range-key="label" |
|||
bindchange="houseSyncPicker"> |
|||
<view class="picker-text" wx:if="{{fmData.houseRelationName}}">{{fmData.houseRelationName}}</view> |
|||
<view class="picker-text z-weak" wx:else>请选择</view> |
|||
<image class="menu-arrow" src="/subpages/family/images/arrow.png" mode="aspectFit" /> |
|||
</picker> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<view class="field-text">现居住地</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="picker" bind:tap="select5Addr"> |
|||
<view class="picker-text" wx:if="{{fmData.presentAddress}}">{{fmData.presentAddress}}</view> |
|||
<view class="picker-text z-weak" wx:else>请选择</view> |
|||
<image class="menu-arrow" src="/subpages/family/images/arrow.png" mode="aspectFit" /> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<view class="field-text">详细地址</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="input"> |
|||
<input type="text" |
|||
value="{{ address }}" |
|||
placeholder="xx小区(号)x号楼x单元x户" |
|||
placeholder-class="z-ph" |
|||
bindinput="addressSync" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="operate"> |
|||
<view class="btn {{ submitBtnIsAllowed ? '' : 'z-disabled'}}" bind:tap="submit">确认提交</view> |
|||
</view> |
|||
<view class="edit"> |
|||
<view class="btn {{ submitBtnIsAllowed ? '' : 'z-disabled'}} left">编辑</view> |
|||
<view class="btn right" bindtap="delect">删除</view> |
|||
</view> |
|||
<view class="edit-two"> |
|||
<view class="btn {{ submitBtnIsAllowed ? '' : 'z-disabled'}} left">取消编辑</view> |
|||
<view class="btn {{ submitBtnIsAllowed ? '' : 'z-disabled'}} right">提交</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<!-- minfloor="3" maxFloor="3" --> |
|||
<select5Address id="select5Address"></select5Address> |
|||
|
|||
<!-- 删除dialog --> |
|||
<view class="m-modal" wx:if="{{isShowDialog}}"> |
|||
<view class="content"> |
|||
<view class="close-dialog" |
|||
bindtap="cancel" > |
|||
<image src="../../../../../assets/images/guanbi.png" /> |
|||
</view> |
|||
|
|||
<view class="title">家庭成员信息删除</view> |
|||
<view class="fm"> |
|||
<view class="item-list"> |
|||
|
|||
<view class="item" style="border-top: 0rpx"> |
|||
<view class="field"> |
|||
<view class="must">*</view> |
|||
<view class="field-text">删除原因</view> |
|||
</view> |
|||
<view class="value"> |
|||
<picker class="picker" |
|||
range="{{nationList}}" |
|||
range-key="label" |
|||
data-list-name="nationList" |
|||
data-id-key="nationValue" |
|||
data-name-key="nationName" |
|||
bindchange="inputSyncPicker"> |
|||
<view class="picker-text" wx:if="{{fmData.nationName}}">{{fmData.nationName}}</view> |
|||
<view class="picker-text z-weak" wx:else>请选择</view> |
|||
<image class="menu-arrow" src="/subpages/family/images/arrow.png" mode="aspectFit" /> |
|||
</picker> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item" style="border-top: 0rpx"> |
|||
<view class="field"> |
|||
<view class="must">*</view> |
|||
<view class="field-text">情况说明:</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="textarea"> |
|||
<textarea type="text" |
|||
value="{{ fmData.remark }}" |
|||
placeholder="请输入情况说明" |
|||
placeholder-class="z-ph" |
|||
data-fm="fmData" |
|||
data-name="remark" |
|||
bindinput="inputSync" |
|||
cursor-spacing="14" |
|||
maxlength="300"> |
|||
</textarea> |
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
</view> |
|||
<view class="btns"> |
|||
<view class="btn right">确定</view> |
|||
<view class="btn left" bindtap="cancel">取消</view> |
|||
</view> |
|||
</view> |
|||
</view> |
@ -0,0 +1 @@ |
|||
@import '../../wxss/familyInfo.wxss'; |
@ -0,0 +1,71 @@ |
|||
// subpages/family/pages/index/index.js
|
|||
Page({ |
|||
|
|||
/** |
|||
* 页面的初始数据 |
|||
*/ |
|||
data: { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面加载 |
|||
*/ |
|||
onLoad: function (options) { |
|||
|
|||
}, |
|||
toFamilyInfo(){ |
|||
wx.navigateTo({ |
|||
url: '/subpages/family/pages/familyInfo/familyInfo', |
|||
}) |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面初次渲染完成 |
|||
*/ |
|||
onReady: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面显示 |
|||
*/ |
|||
onShow: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面隐藏 |
|||
*/ |
|||
onHide: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面卸载 |
|||
*/ |
|||
onUnload: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面相关事件处理函数--监听用户下拉动作 |
|||
*/ |
|||
onPullDownRefresh: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面上拉触底事件的处理函数 |
|||
*/ |
|||
onReachBottom: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 用户点击右上角分享 |
|||
*/ |
|||
onShareAppMessage: function () { |
|||
|
|||
} |
|||
}) |
@ -0,0 +1,3 @@ |
|||
{ |
|||
"usingComponents": {} |
|||
} |
@ -0,0 +1,50 @@ |
|||
<view class="f-container"> |
|||
|
|||
<view class="f-top"> |
|||
<view class="f-card"> |
|||
<view class="card-left"> |
|||
<view class="card-title">金色海岸3号楼2单元501户</view> |
|||
<view class="card-num"> |
|||
<text >No.370252***00125</text> |
|||
<image /> |
|||
</view> |
|||
</view> |
|||
<view class="card-right"> |
|||
<view class="card-qr"> |
|||
<image /> |
|||
</view> |
|||
<view class="card-qr-name">我的“e家码”</view> |
|||
|
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="f-wr"> |
|||
<view class="title-wr"> |
|||
<view class="title-label">家庭成员</view> |
|||
<view class="title-right"> |
|||
<view class="title-right-label">明细</view> |
|||
<image class="right-icon" src="../../images/arrow-right.png" /> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="f-table mt40"> |
|||
<view class="table-cell table-header"> |
|||
<view class="table-col">姓名</view> |
|||
<view class="table-col">成员关系</view> |
|||
<view class="table-col">手机号</view> |
|||
<view class="table-col">明细</view> |
|||
</view> |
|||
<view class="table-cell" wx:for="{{6}}"> |
|||
<view class="table-col">张三李四</view> |
|||
<view class="table-col">户主</view> |
|||
<view class="table-col">13388990099</view> |
|||
<view class="table-col table-col-4" bind:tap="toFamilyInfo">查看</view> |
|||
</view> |
|||
</view> |
|||
|
|||
|
|||
</view> |
|||
|
|||
|
|||
</view> |
@ -0,0 +1 @@ |
|||
@import '../../wxss/family.wxss'; |
@ -0,0 +1,66 @@ |
|||
// subpages/family/pages/noAccess/noAccess.js
|
|||
Page({ |
|||
|
|||
/** |
|||
* 页面的初始数据 |
|||
*/ |
|||
data: { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面加载 |
|||
*/ |
|||
onLoad: function (options) { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面初次渲染完成 |
|||
*/ |
|||
onReady: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面显示 |
|||
*/ |
|||
onShow: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面隐藏 |
|||
*/ |
|||
onHide: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面卸载 |
|||
*/ |
|||
onUnload: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面相关事件处理函数--监听用户下拉动作 |
|||
*/ |
|||
onPullDownRefresh: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面上拉触底事件的处理函数 |
|||
*/ |
|||
onReachBottom: function () { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 用户点击右上角分享 |
|||
*/ |
|||
onShareAppMessage: function () { |
|||
|
|||
} |
|||
}) |
@ -0,0 +1,3 @@ |
|||
{ |
|||
"usingComponents": {} |
|||
} |
@ -0,0 +1,2 @@ |
|||
<!--subpages/family/pages/noAccess/noAccess.wxml--> |
|||
<text>subpages/family/pages/noAccess/noAccess.wxml</text> |
@ -0,0 +1 @@ |
|||
/* subpages/family/pages/noAccess/noAccess.wxss */ |
@ -0,0 +1,57 @@ |
|||
const request = require('../../../utils/request') |
|||
|
|||
/** |
|||
* 绑定我的家庭房屋 |
|||
*/ |
|||
export function bindingFamily (param) { |
|||
return request.post('/api/custom/family/bindingFamily',param) |
|||
} |
|||
|
|||
/** |
|||
* 获取小区下拉列表 |
|||
*/ |
|||
export function getPlotOption (param) { |
|||
return request.get('/api/custom/personroom/getPlotOption',param) |
|||
} |
|||
|
|||
/** |
|||
* 获取楼栋下拉列表 |
|||
*/ |
|||
export function getBuildingOption (param) { |
|||
return request.get('/api/custom/personroom/getBuildingOption',param) |
|||
} |
|||
|
|||
/** |
|||
* 获取单元下拉列表 |
|||
*/ |
|||
export function getUnitOption (param) { |
|||
return request.get('/api/custom/personroom/getUnitOption',param) |
|||
} |
|||
|
|||
/** |
|||
* 获取房屋下拉列表 |
|||
*/ |
|||
export function getHouseOption (param) { |
|||
return request.get('/api/custom/personroom/getHouseOption', param) |
|||
} |
|||
|
|||
/** |
|||
* 添加成员信息 |
|||
*/ |
|||
export function addFamilyMember (param) { |
|||
return request.post('/api/custom/personroom/addFamilyMember', param) |
|||
} |
|||
|
|||
/** |
|||
* 修改成员信息 |
|||
*/ |
|||
export function updateFamilyMember (param) { |
|||
return request.post('/api/custom/personroom/updateFamilyMember',param) |
|||
} |
|||
|
|||
/** |
|||
* 获取成员信息 |
|||
*/ |
|||
export function getFamilyMember (param) { |
|||
return request.get('/api/custom/personroom/getFamilyMember',param) |
|||
} |
@ -0,0 +1 @@ |
|||
page{background:#fff}.f-top{position:relative;width:100%;height:200rpx;background:#e3271c;border-radius:0 0 30rpx 30rpx;-webkit-border-radius:0 0 30rpx 30rpx;-moz-border-radius:0 0 30rpx 30rpx;-ms-border-radius:0 0 30rpx 30rpx;-o-border-radius:0 0 30rpx 30rpx}.f-top .f-card{position:absolute;left:50%;bottom:-64rpx;display:flex;justify-content:space-between;align-items:center;width:690rpx;height:200rpx;margin-left:-345rpx;box-sizing:border-box;padding:28rpx 30rpx 18rpx;background-color:#fff;box-shadow:0 5rpx 32rpx 0 rgba(184,184,184,.25);border-radius:14rpx;-moz-border-radius:14rpx;-ms-border-radius:14rpx;-o-border-radius:14rpx;-webkit-border-radius:14rpx}.f-top .f-card .card-right{flex-shrink:0;margin-left:30rpx}.f-top .f-card .card-title{height:96rpx;font-family:PingFang-SC-Bold;font-size:34rpx;letter-spacing:1rpx;color:#020202;overflow:hidden}.f-top .f-card .card-num{display:flex;align-items:center;font-family:PingFang-SC-Medium;font-size:28rpx;letter-spacing:1rpx;color:#333}.f-top .f-card .card-num image{width:32rpx;height:18rpx}.f-top .f-card .card-qr{width:120rpx;height:120rpx;border:1rpx solid #eee}.f-top .f-card .card-qr image{display:block;width:100%;height:100%}.f-top .f-card .card-qr-name{margin-top:10rpx;font-family:PingFang-SC-Regular;font-size:22rpx;font-weight:400;font-stretch:normal;letter-spacing:1rpx;color:#333}.f-wr{width:100%;box-sizing:border-box;padding:100rpx 20rpx 0}.title-right,.title-wr{display:flex;align-items:center}.title-wr{justify-content:space-between;padding:28rpx 0;border-bottom:1rpx solid #e7eeee}.title-wr .title-label{position:relative;padding-left:25rpx;font-family:PingFang-SC-Bold;font-size:34rpx;font-weight:400;font-stretch:normal;letter-spacing:0;color:#333}.title-wr .title-label::after{content:'';position:absolute;top:50%;left:0;width:6rpx;height:30rpx;margin-top:-15rpx;background-color:#e60000;border-radius:3rpx;-webkit-border-radius:3rpx;-moz-border-radius:3rpx;-ms-border-radius:3rpx;-o-border-radius:3rpx}.title-wr .title-right-label{font-family:PingFang-SC-Light;font-size:26rpx;font-weight:400;font-stretch:normal;color:#999}.title-wr .right-icon{width:30rpx;height:30rpx}.f-table{background-color:#fbfbfb}.f-table .table-cell{display:flex;align-items:center;padding:26rpx 0;border:solid 1rpx #e3e3e3;border-top:0;font-family:PingFang-SC-Regular;font-size:30rpx;color:#000003}.f-table .table-cell .table-col{flex:1;text-align:center;line-height:1}.f-table .table-cell .table-col-4{color:#dd2a2a}.f-table .table-header{background:#f1f1f1;border:0;font-family:PingFang-SC-Regular;font-size:28rpx;color:#666}.mt40{margin-top:40rpx} |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue