Browse Source

feat:开发一户一码

release
123456 3 years ago
parent
commit
9bd64c3895
  1. 35
      epdc-resident-mp-yushan/app.json
  2. 6
      epdc-resident-mp-yushan/pages/index/index.js
  3. 5
      epdc-resident-mp-yushan/pages/index/index.wxml
  4. 13
      epdc-resident-mp-yushan/project.config.json
  5. BIN
      epdc-resident-mp-yushan/subpages/family/images/arrow.png
  6. 117
      epdc-resident-mp-yushan/subpages/family/pages/bindFamily/bindFamily.js
  7. 3
      epdc-resident-mp-yushan/subpages/family/pages/bindFamily/bindFamily.json
  8. 172
      epdc-resident-mp-yushan/subpages/family/pages/bindFamily/bindFamily.wxml
  9. 55
      epdc-resident-mp-yushan/subpages/family/pages/bindFamily/bindFamily.wxss
  10. 192
      epdc-resident-mp-yushan/subpages/family/pages/familyInfo/familyInfo.js
  11. 3
      epdc-resident-mp-yushan/subpages/family/pages/familyInfo/familyInfo.json
  12. 234
      epdc-resident-mp-yushan/subpages/family/pages/familyInfo/familyInfo.wxml
  13. 1
      epdc-resident-mp-yushan/subpages/family/pages/familyInfo/familyInfo.wxss
  14. 71
      epdc-resident-mp-yushan/subpages/family/pages/index/index.js
  15. 3
      epdc-resident-mp-yushan/subpages/family/pages/index/index.json
  16. 50
      epdc-resident-mp-yushan/subpages/family/pages/index/index.wxml
  17. 1
      epdc-resident-mp-yushan/subpages/family/pages/index/index.wxss
  18. 66
      epdc-resident-mp-yushan/subpages/family/pages/noAccess/noAccess.js
  19. 3
      epdc-resident-mp-yushan/subpages/family/pages/noAccess/noAccess.json
  20. 2
      epdc-resident-mp-yushan/subpages/family/pages/noAccess/noAccess.wxml
  21. 1
      epdc-resident-mp-yushan/subpages/family/pages/noAccess/noAccess.wxss
  22. 57
      epdc-resident-mp-yushan/subpages/family/utils/api.js
  23. 1
      epdc-resident-mp-yushan/subpages/family/wxss/family.wxss
  24. 1
      epdc-resident-mp-yushan/subpages/family/wxss/familyInfo.wxss
  25. 1
      epdc-resident-mp-yushan/subpages/family/wxss/register.wxss

35
epdc-resident-mp-yushan/app.json

@ -18,7 +18,8 @@
"pages/gridLeaderRegister/gridLeaderRegister",
"pages/property/property"
],
"subPackages": [{
"subPackages": [
{
"root": "subpages/home",
"name": "home",
"pages": [
@ -226,30 +227,50 @@
"pages/joinOrg/joinOrg",
"pages/memberDetail/memberDetail"
]
},
{
"root": "subpages/family",
"name": "family",
"pages": [
"pages/index/index",
"pages/bindFamily/bindFamily",
"pages/familyInfo/familyInfo",
"pages/noAccess/noAccess"
]
}
],
"preloadRule": {
"pages/index/index": {
"network": "all",
"packages": ["subpages/changegrid", "subpages/home"]
"packages": [
"subpages/changegrid",
"subpages/home"
]
},
"pages/discussion/discussion": {
"network": "all",
"packages": ["discussion"]
"packages": [
"discussion"
]
},
"pages/association/association": {
"network": "all",
"packages": ["subpages/association"]
"packages": [
"subpages/association"
]
},
"pages/mine/mine": {
"network": "all",
"packages": ["mine"]
"packages": [
"mine"
]
},
"pages/property/property": {
"network": "all",
"packages": ["subpages/property"]
"packages": [
"subpages/property"
]
}
},
"window": {
"backgroundTextStyle": "light",

6
epdc-resident-mp-yushan/pages/index/index.js

@ -409,6 +409,12 @@ Page({
// url: '/subpages/extend/pages/vaccines/vaccines'
})
},
// 绑定家庭入口
toFamily() {
wx.navigateTo({
url: '/subpages/family/pages/index/index',
})
},
// 获取最新社区资讯
contentList() {
const params = {

5
epdc-resident-mp-yushan/pages/index/index.wxml

@ -157,6 +157,11 @@
</view>
<!-- 悬浮按钮 -->
<move-btn wx:if="{{vaccinationSwitch}}" button-width="142" button-height="164" button-left="620" area-top="120" area-height="80%" img-url="../../images/vaccines.png" bindmovebtnCallBack="toVaccines"></move-btn>
<!-- 测试使用 -->
<!-- <move-btn wx:if="{{vaccinationSwitch}}" button-width="100" button-height="80" button-left="620" area-top="-100" area-height="80%" img-url="../../images/logo.png" bindmovebtnCallBack="toFamily"></move-btn> -->
<!-- 拨打电话 -->
<!-- <view class="fixed-phone-container {{phoneSlideState === 'open' ? 'open' : ''}}" catch:touchend="openPhonePannel">
<view class="left">

13
epdc-resident-mp-yushan/project.config.json

@ -21,21 +21,24 @@
"checkSiteMap": true,
"uploadWithSourceMap": true,
"compileHotReLoad": false,
"useMultiFrameRuntime": true,
"useApiHook": true,
"useApiHostProcess": true,
"lazyloadPlaceholderEnable": false,
"useMultiFrameRuntime": false,
"useApiHook": false,
"useApiHostProcess": false,
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
},
"enableEngineNative": false,
"useIsolateContext": false,
"userConfirmedBundleSwitch": false,
"packNpmManually": false,
"packNpmRelationList": [],
"minifyWXSS": true,
"showES6CompileOption": false
"disableUseStrict": false,
"showES6CompileOption": false,
"useCompilerPlugins": false,
"ignoreUploadUnusedFiles": true
},
"compileType": "miniprogram",
"libVersion": "2.10.4",

BIN
epdc-resident-mp-yushan/subpages/family/images/arrow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

117
epdc-resident-mp-yushan/subpages/family/pages/bindFamily/bindFamily.js

@ -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 () {
}
})

3
epdc-resident-mp-yushan/subpages/family/pages/bindFamily/bindFamily.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

172
epdc-resident-mp-yushan/subpages/family/pages/bindFamily/bindFamily.wxml

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

55
epdc-resident-mp-yushan/subpages/family/pages/bindFamily/bindFamily.wxss

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

192
epdc-resident-mp-yushan/subpages/family/pages/familyInfo/familyInfo.js

@ -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 () {
}
})

3
epdc-resident-mp-yushan/subpages/family/pages/familyInfo/familyInfo.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

234
epdc-resident-mp-yushan/subpages/family/pages/familyInfo/familyInfo.wxml

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

1
epdc-resident-mp-yushan/subpages/family/pages/familyInfo/familyInfo.wxss

@ -0,0 +1 @@
@import '../../wxss/familyInfo.wxss';

71
epdc-resident-mp-yushan/subpages/family/pages/index/index.js

@ -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 () {
}
})

3
epdc-resident-mp-yushan/subpages/family/pages/index/index.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

50
epdc-resident-mp-yushan/subpages/family/pages/index/index.wxml

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

1
epdc-resident-mp-yushan/subpages/family/pages/index/index.wxss

@ -0,0 +1 @@
@import '../../wxss/family.wxss';

66
epdc-resident-mp-yushan/subpages/family/pages/noAccess/noAccess.js

@ -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 () {
}
})

3
epdc-resident-mp-yushan/subpages/family/pages/noAccess/noAccess.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

2
epdc-resident-mp-yushan/subpages/family/pages/noAccess/noAccess.wxml

@ -0,0 +1,2 @@
<!--subpages/family/pages/noAccess/noAccess.wxml-->
<text>subpages/family/pages/noAccess/noAccess.wxml</text>

1
epdc-resident-mp-yushan/subpages/family/pages/noAccess/noAccess.wxss

@ -0,0 +1 @@
/* subpages/family/pages/noAccess/noAccess.wxss */

57
epdc-resident-mp-yushan/subpages/family/utils/api.js

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

1
epdc-resident-mp-yushan/subpages/family/wxss/family.wxss

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

1
epdc-resident-mp-yushan/subpages/family/wxss/familyInfo.wxss

File diff suppressed because one or more lines are too long

1
epdc-resident-mp-yushan/subpages/family/wxss/register.wxss

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save