Compare commits

...

46 Commits

Author SHA1 Message Date
mk 1522f8bc4f 房屋审核 2 years ago
tianq 35768995f8 改动 2 years ago
ZhaoTongYao 48c9f10539 增加悬浮按钮-大党委 3 years ago
ZhaoTongYao 3baeb9b88f Merge branch 'release' of http://git.elinkit.com.cn:7070/r/epdc-office-mp-yushan into release 3 years ago
ZhaoTongYao d11f1e271f roomCodeShow 3 years ago
123456 21d06ab1b0 fix:删除多余类型 3 years ago
123456 794cbfd54f fix:修改身份证号输入框类型 3 years ago
ZhaoTongYao 86c2b95be3 房屋类型回显 3 years ago
ZhaoTongYao 331c3e6ad7 优化 3 years ago
ZhaoTongYao 5e38b2df49 优化 3 years ago
123456 df5fcade41 提交路由 3 years ago
123456 9eb27ba9e9 对接一户一码 3 years ago
123456 0fd08e5baf 修改一户一码页面 3 years ago
123456 1bebe0339a Merge branch 'release' of http://git.elinkit.com.cn:7070/r/epdc-office-mp-yushan into release 3 years ago
ZhaoTongYao c92be5cc7c 增加一户一码 3 years ago
123456 bfad7dcef6 Merge branch 'release' of http://git.elinkit.com.cn:7070/r/epdc-office-mp-yushan into release 3 years ago
123456 78873f536e feat:增加一户一码 3 years ago
ZhaoTongYao 022a3adb0b 增加积分管理模块 4 years ago
ZhaoTongYao f319aa35a5 增加积分管理模块 4 years ago
ZhaoTongYao 868d845a0d 更换登录界面logo 4 years ago
zhaoyongnian dc69d60e0a 双实录入相关 4 years ago
ZhaoTongYao a44a46803b 修改前往网格员小程序路径 4 years ago
ZhaoTongYao 61f6c6746f 居民列表pageSize改为20 4 years ago
ZhaoTongYao a842e2ef0c 增加跳转平阴工作端 4 years ago
zhaoyongnian 4f5799293f 多余图片 4 years ago
zhaoyongnian 159528e185 多余图片 4 years ago
zhaoyongnian 837b88adfc 多余图片 4 years ago
zhaoyongnian aea377a6ff 多余图片处理 4 years ago
zhaoyongnian a9c356c867 多余图片 4 years ago
zhaoyongnian abdb768591 多余图片 4 years ago
zhaoyongnian aa9d849bb7 多余图片 4 years ago
zhaoyongnian 56fa745835 多余图片 4 years ago
zhaoyongnian 4966d19d86 替换logo 4 years ago
zhaoyongnian 454d7a145b 微笑榆山改成现代榆山 4 years ago
ZhaoTongYao c3a10f4827 工作日志插件升级; 4 years ago
ZhaoTongYao 3c352c275a 1.6.24 修复诉求须知富文本显示BUG; 5 years ago
zhaoyongnian 58568855c8 修改图标大小 5 years ago
zhaoyongnian 37ae1377fc 路径地址错误 5 years ago
zhaoyongnian 5530b4f356 首页改版 5 years ago
zhaoyongnian 0571a0057d 积分埋点接口拆分 5 years ago
zhaoyongnian 6a28ad0e78 接口拆分 5 years ago
zhaoyongnian 42a6abfc84 接口拆分 5 years ago
zhaoyongnian dcca67d670 接口拆分 5 years ago
liushaowen 007c22292b 修复某些不支持grid的机型显示错误 5 years ago
liushaowen d8e06434c5 bug修复 5 years ago
liushaowen 759c7c16c0 首页设置按钮变为登出按钮 5 years ago
  1. 12
      api/checkpendingrequest.js
  2. 18
      api/common.js
  3. 20
      api/houseAudit.js
  4. 41
      api/pointManagement.js
  5. 35
      app.json
  6. 9
      components/event/handleSubmit/handleSubmit/handleSubmit.js
  7. 2
      components/event/handleSubmit/handleSubmit/handleSubmit.wxml
  8. 4
      components/event/handleSubmit/handleSubmitItem/handleSubmitItem.wxml
  9. 2
      components/event/handleSubmit/waitResponse/waitResponse.wxml
  10. 47
      components/moveButton/moveButton.js
  11. 3
      components/moveButton/moveButton.json
  12. 8
      components/moveButton/moveButton.wxml
  13. 34
      components/moveButton/moveButton.wxss
  14. 5
      components/project/project.js
  15. 6
      components/project/project.wxml
  16. 6
      components/subject/subject.wxml
  17. 6
      components/userManage/userManage.js
  18. 6
      components/userManage/userManage.wxml
  19. BIN
      images/banner.png
  20. BIN
      images/btn-login.png
  21. BIN
      images/btn.png
  22. BIN
      images/btn2.png
  23. BIN
      images/btn3.png
  24. BIN
      images/btn4.png
  25. BIN
      images/daichuli.png
  26. BIN
      images/daihuiying.png
  27. BIN
      images/down.png
  28. BIN
      images/dyrenzheng.png
  29. BIN
      images/dyrenzhengshibai.png
  30. BIN
      images/family/down.png
  31. BIN
      images/family/plus.png
  32. BIN
      images/family/reply.png
  33. BIN
      images/family/sub.png
  34. BIN
      images/family/user.png
  35. BIN
      images/ic_dang2.png
  36. BIN
      images/jmdairenzheng.png
  37. BIN
      images/jmrenzheng.png
  38. BIN
      images/login-bg.png
  39. BIN
      images/logo.png
  40. BIN
      images/logout.png
  41. BIN
      images/notice.png
  42. BIN
      images/office_yushan_logo.png
  43. BIN
      images/scan.png
  44. BIN
      images/search.png
  45. BIN
      images/xmdaichuli.png
  46. BIN
      images/xmyiguanbi.png
  47. BIN
      images/xmyijiean.png
  48. BIN
      images/yibohui.png
  49. BIN
      images/yiguanbi.png
  50. 223
      pages/index/index.js
  51. 5
      pages/index/index.json
  52. 99
      pages/index/index.wxml
  53. 105
      pages/index/index.wxss
  54. 111
      pages/issueDetail/issueDetail.js
  55. 2
      pages/issueDetail/issueDetail.json
  56. 70
      pages/itemDetail/itemDetail.js
  57. 2
      pages/itemDetail/itemDetail.json
  58. 8
      pages/login/login.wxml
  59. 1
      pages/login/login.wxss
  60. 2
      pages/login_bk/login.wxml
  61. 10
      pages/project/project.js
  62. 2
      pages/project/project.json
  63. 2
      pages/project/projectDetail/projectDetail.json
  64. 2
      pages/subject/subject.json
  65. 20
      pages/user_moudle/checkpending/checkpending.js
  66. 2
      pages/user_moudle/checkpending/checkpending.wxml
  67. 7
      project.private.config.json
  68. BIN
      subpages/clerkOnline/images/icon_close.png
  69. BIN
      subpages/clerkOnline/images/ig_tianjiatupian@2x.png
  70. BIN
      subpages/clerkOnline/images/inform.png
  71. BIN
      subpages/clerkOnline/images/informRed.png
  72. BIN
      subpages/clerkOnline/images/large-ava.png
  73. BIN
      subpages/clerkOnline/images/small-ava.png
  74. 2
      subpages/clerkOnline/pages/memberList/memberList.wxml
  75. 6
      subpages/clerkOnline/pages/myGroup/myGroup.wxml
  76. 4
      subpages/clerkOnline/pages/myTalk/myTalk.wxml
  77. 4
      subpages/clerkOnline/pages/readlist/components/listItem/listItem.wxml
  78. 2
      subpages/clerkOnline/pages/topicDetail/components/detailContent/detailContent.wxml
  79. 2
      subpages/clerkOnline/pages/topicDetail/components/detailRemark/detailRemark.wxml
  80. 2
      subpages/conflictMediation/pages/index/index.json
  81. 2
      subpages/consult/components/questionList/questionList.wxss
  82. 2
      subpages/consult/pages/consultIndex/consultIndex.json
  83. BIN
      subpages/family/images/arrow-right.png
  84. BIN
      subpages/family/images/arrow.png
  85. BIN
      subpages/family/images/close.png
  86. BIN
      subpages/family/images/edit_info.png
  87. BIN
      subpages/family/images/family-qr.png
  88. BIN
      subpages/family/images/no-family.png
  89. 293
      subpages/family/pages/editHouseInfo/editHouseInfo.js
  90. 4
      subpages/family/pages/editHouseInfo/editHouseInfo.json
  91. 244
      subpages/family/pages/editHouseInfo/editHouseInfo.wxml
  92. 1
      subpages/family/pages/editHouseInfo/editHouseInfo.wxss
  93. 405
      subpages/family/pages/familyInfo/familyInfo.js
  94. 4
      subpages/family/pages/familyInfo/familyInfo.json
  95. 263
      subpages/family/pages/familyInfo/familyInfo.wxml
  96. 16
      subpages/family/pages/familyInfo/familyInfo.wxss
  97. 206
      subpages/family/pages/index/index.js
  98. 4
      subpages/family/pages/index/index.json
  99. 126
      subpages/family/pages/index/index.wxml
  100. 21
      subpages/family/pages/index/index.wxss

12
api/checkpendingrequest.js

@ -1,7 +1,9 @@
var fly = require('../utils/request.js')
module.exports = {
getResidentDetail: getResidentDetail,
authenticateResident: authenticateResident
authenticateResident: authenticateResident,
authenticateResidentPass:authenticateResidentPass,
authenticateResidentNoPass:authenticateResidentNoPass
}
// 居民用户详情
function getResidentDetail (params) {
@ -11,3 +13,11 @@ function getResidentDetail (params) {
function authenticateResident (params) {
return fly.post('work/user/swagger/authenticateResident', params)
}
// 通过: v2
function authenticateResidentPass(params) {
return fly.post('work/user/swagger/authenticateResidentPass', params)
}
// 不通过: v2
function authenticateResidentNoPass(params) {
return fly.post('work/user/swagger/authenticateResidentNoPass', params)
}

18
api/common.js

@ -9,7 +9,9 @@ module.exports = {
getIndexStatistics: getIndexStatistics,
logout,
checkUpdateAvatar,
updateAvatar
updateAvatar,
getCustomId,
getUserinfobycode
}
function getToken(wxCode) {
@ -55,4 +57,18 @@ function updateAvatar(avatar) {
return fly.get('work/user/updateAvatar',{
avatar: avatar
})
}
/**
* 工作日志-获取CustomId 2021.02.25
*/
function getCustomId () {
return fly.get("plugins/workLog/getCustomId")
}
/**
* 扫描兑换码获取用户信息接口 2022.03.07
* @param qrCodeId 二维码中的qrCodeId
*/
function getUserinfobycode(params) {
return fly.post('work/pointsverification/getuserinfobycode', params)
}

20
api/houseAudit.js

@ -0,0 +1,20 @@
var fly = require('../utils/request.js')
module.exports = {
getHousesalerentinfo,
housesalerentinfoAudit,
}
// 获取审核列表
function getHousesalerentinfo(params) {
return fly.get('work/custom/housesalerentinfo/list2audit', {
pageNum:params.pageNum,
pageSize:params.pageSize,
auditStatus:params.auditStatus,
})
}
// 提交房屋处理
function housesalerentinfoAudit(params) {
return fly.post('work/custom/housesalerentinfo/audit', params)
}

41
api/pointManagement.js

@ -0,0 +1,41 @@
var fly = require('../utils/request.js')
/**
* @param userId 用户ID
* @param operationType 积分操作类型 0-减积分1-加积分
* @param points 操作积分值
*/
// 积分核销接口
export function pointSverification(params) {
return fly.post('work/pointsverification/pointsverification', params)
}
/**
* @param typeKey 网格grid_party
*/
// 根据机构类型获取机构信息
export function getDeptInfo(typeKey) {
return fly.get(`work/pointsverification/getdeptinfo/${typeKey}`)
}
/**
* 工作端积分核销记录接口
* @param pageIndex Number 页码
* @param pageSize Number 页容量
* @param startTime 开始时间
* @param endTime 结束时间
* @param deptId 部门ID
*/
export function getVerificationLogs({
pageIndex,
pageSize,
startTime,
endTime,
deptId,
}) {
return fly.get("work/pointsverification/verificationlogs", {
pageIndex,
pageSize,
startTime,
endTime,
deptId,
})
}

35
app.json

@ -20,6 +20,14 @@
"pages/user_moudle/userManageList/userManageList"
],
"subpackages": [
{
"root": "subpages/pointManagement",
"name": "pointManagement",
"pages": [
"pages/pointClear/pointClear",
"pages/pointList/pointList"
]
},
{
"root": "subpages/clerkOnline",
"name": "clerkOnline",
@ -79,6 +87,23 @@
"pages/index/index",
"pages/historyDetail/historyDetail"
]
},
{
"root": "subpages/information",
"name": "information",
"pages": [
"pages/index/index"
]
},
{
"root": "subpages/family",
"name": "family",
"pages": [
"pages/index/index",
"pages/familyInfo/familyInfo",
"pages/noAccess/noAccess",
"pages/editHouseInfo/editHouseInfo"
]
}
],
"preloadRule": {
@ -92,7 +117,7 @@
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "微笑榆山",
"navigationBarTitleText": "现代榆山",
"navigationBarTextStyle": "black"
},
"networkTimeout": {
@ -100,7 +125,13 @@
},
"permission": {
"scope.userLocation": {
"desc": "微笑榆山将获取您的位置信息"
"desc": "现代榆山将获取您的位置信息"
}
},
"plugins": {
"work-plugin": {
"version": "1.2.0",
"provider": "wx0301bf7f534d97d1"
}
},
"sitemapLocation": "sitemap.json"

9
components/event/handleSubmit/handleSubmit/handleSubmit.js

@ -65,10 +65,11 @@ Component({
state = 2
} else if (item.text === "转项目") {
state = 4
} else if (item.text === '转项目并吹哨') {
state = 6
that.getIssueWhistlingDeptV2()
}
}
// else if (item.text === '转项目并吹哨') {
// state = 6
// that.getIssueWhistlingDeptV2()
// }
const handleSubmitData = Object.assign(that.data.handleSubmitData, {
state: state,

2
components/event/handleSubmit/handleSubmit/handleSubmit.wxml

@ -17,7 +17,7 @@
<textarea class="{{isBlock?'none':'block'}}" placeholder-class="place-holder" placeholder="请填写居民诉求的处理情况以及答复意见,向居民公开展示" bindblur="bindInputAdvice" maxlength="500" focus='{{focus}}' />
<view>
<wux-upload listType="picture-card" defaultFileList="{{ fileList }}" max="3" count="3" url="{{BASEURL}}group/topic/upload" bind:change="onChange" bind:success="onSuccess" bind:fail="onFail" bind:complete="onComplete" bind:preview="onPreview">
<image src="../../../../images/uploadImg3.png"></image>
<image src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/1810e711e94e4ed089069f92d968f1d2.png"></image>
</wux-upload>
</view>
</view>

4
components/event/handleSubmit/handleSubmitItem/handleSubmitItem.wxml

@ -43,7 +43,7 @@
<textarea class="{{isBlock?'none':'block'}}" placeholder-class="place-holder" placeholder="请填写居民诉求的处理情况以及答复意见,向居民公开展示" bindblur="bindInputOutHandleAdvice" maxlength="500" focus='{{focus}}'/>
<view>
<wux-upload listType="picture-card" defaultFileList="{{ fileList }}" max="3" count="3" url="{{BASEURL}}group/topic/upload" bind:change="onChange" bind:complete="onComplete" bind:preview="onPreview" data-type="outHandleImages">
<image src="../../../../images/uploadImg3.png"></image>
<image src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/1810e711e94e4ed089069f92d968f1d2.png"></image>
</wux-upload>
</view>
</view>
@ -58,7 +58,7 @@
<textarea placeholder="请填写项目的实际办理情况(如自己处理、吹哨报 道、内部协调),便于相关部门了解项目的实际情况" class="{{_isBlock?'none':'block'}}" placeholder-class="place-holder" bindblur="bindInputHandleAdvice" maxlength="500" focus='{{_focus}}'/>
<view>
<wux-upload listType="picture-card" defaultFileList="{{ fileList }}" max="3" count="3" url="{{BASEURL}}group/topic/upload" bind:change="onChange" bind:complete="onComplete" bind:preview="onPreview" data-type="handleImages">
<image src="../../../../images/uploadImg3.png"></image>
<image src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/1810e711e94e4ed089069f92d968f1d2.png"></image>
</wux-upload>
</view>
</view>

2
components/event/handleSubmit/waitResponse/waitResponse.wxml

@ -27,7 +27,7 @@
<textarea class="{{isBlock?'none':'block'}}" placeholder-class="place-holder" placeholder="请填写居民诉求的处理情况以及答复意见,向居民公开展示" bindblur="bindInputAdvice" maxlength="500" focus='{{focus}}' />
<view>
<wux-upload listType="picture-card" defaultFileList="{{ fileList }}" max="3" count="3" url="{{BASEURL}}group/topic/upload" bind:change="onChange" bind:success="onSuccess" bind:fail="onFail" bind:complete="onComplete" bind:preview="onPreview">
<image src="../../../../images/uploadImg3.png"></image>
<image src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/1810e711e94e4ed089069f92d968f1d2.png"></image>
</wux-upload>
</view>
</view>

47
components/moveButton/moveButton.js

@ -0,0 +1,47 @@
Component({
data: {
},
properties: {
areaTop: {
type: Number,
value: 0
},
areaLeft: {
type: Number,
value: 0
},
areaWidth: {
type: String,
value: '100%'
},
areaHeight: {
type: String,
value: '100%'
},
buttonWidth: {
type: Number,
value: 178
},
buttonHeight: {
type: Number,
value: 178
},
buttonTop: {
type: Number,
value: 1000
},
buttonLeft: {
type: Number,
value: 580
},
imgUrl: {
type: String,
value: ''
}
},
methods: {
onClickButton () {
this.triggerEvent('movebtnCallBack')
}
}
})

3
components/moveButton/moveButton.json

@ -0,0 +1,3 @@
{
"component": true
}

8
components/moveButton/moveButton.wxml

@ -0,0 +1,8 @@
<movable-area class="movable-area" style="top:{{areaTop}}rpx;left:{{areaLeft}}rpx;width:{{areaWidth}};height:{{areaHeight}};">
<movable-view class="movable-view" direction="all" inertia="true" friction="10"
style="width:{{buttonWidth}}rpx;height:{{buttonHeight}}rpx;top:{{buttonTop}}rpx;left:{{buttonLeft}}rpx;">
<view class="img-box" bindtap="onClickButton">
<image src="{{imgUrl}}" />
</view>
</movable-view>
</movable-area>

34
components/moveButton/moveButton.wxss

@ -0,0 +1,34 @@
/* 悬浮按钮 -start- */
.movable-area{
pointer-events:none;
z-index: 999;
width: 100%;
height: 90%;
position: fixed;
top: 60px;
left: 0;
right: 0;
bottom: 0;
}
.movable-view{
pointer-events:auto;
width: 178rpx;
height: 178rpx;
transform: translateX(0rpx) translateY(0rpx) translateZ(0rpx) scale(1);
transform-origin: center center;
will-change: auto;
position: absolute;
top: 0rpx;
left: 0rpx;
}
.img-box {
width: 100%;
height: 100%;
}
.img-box image {
width: 100%;
height: 100%;
object-fit: cover;
}
/* 悬浮按钮 -end- */

5
components/project/project.js

@ -28,7 +28,7 @@ Component({
},
methods: {
getItemList: function (page, index, clear) {
getItemList: function (page, index, clear, isPartyFlag=0) {
// wx.showLoading({
// title: '加载中',
// })
@ -55,7 +55,8 @@ Component({
"pageIndex": page,
"pageSize": app.globalData.pageSize,
"timestamp": utils.formatTimeOpen(new Date(), '-', ':'),
"itemState": itemState
"itemState": itemState,
"isPartyFlag": isPartyFlag
}
console.log("params:" + JSON.stringify(params))
api.getItemList(params).then(function (res) {

6
components/project/project.wxml

@ -34,21 +34,21 @@
<view class="btn_label btn-size-small btn_label-small" bindtap="toItemDetail" data-id="{{item.id}}">
去处理
</view>
<image class="ic_btn btn-size-small" src="/images/btn.png"></image>
<image class="ic_btn btn-size-small" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/c4aae02018fa4e49a30ed2baa3eb916f.png"></image>
</view>
<view class="buttons btn-size-small" wx:elif="{{state == '1'}}">
<view class="btn_label btn-size-small btn_label-small" bindtap="toItemDetail" data-id="{{item.id}}">
已结案
</view>
<image class="ic_btn btn-size-small" src="/images/btn2.png"></image>
<image class="ic_btn btn-size-small" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/743dde7d02084d629ecbcaa4961c1e94.png"></image>
</view>
<view class="buttons btn-size-small" wx:elif="{{state == '2'}}">
<view class="btn_label btn-size-small btn_label-small ygb-color" bindtap="toItemDetail" data-id="{{item.id}}">
已关闭
</view>
<image class="ic_btn btn-size-small" src="/images/btn4.png"></image>
<image class="ic_btn btn-size-small" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/743dde7d02084d629ecbcaa4961c1e94.png"></image>
</view>
</view>

6
components/subject/subject.wxml

@ -39,7 +39,7 @@
<view class="btn_label btn-size-small btn_label-small" bindtap="toIssueDetail" data-id="{{item.id}}">
去审核
</view>
<image class="ic_btn btn-size-small" src="/images/btn3.png"></image>
<image class="ic_btn btn-size-small" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/a7fd0ca263a5464f8118063b61fdf535.png"></image>
</view>
<view class="buttons btn-size-small" wx:elif="{{state == '2'}}">
@ -53,7 +53,7 @@
<view class="btn_label btn-size-small btn_label-small ygb-color" bindtap="toIssueDetail" data-id="{{item.id}}">
已关闭
</view>
<image class="ic_btn btn-size-small" src="/images/btn4.png"></image>
<image class="ic_btn btn-size-small" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/b170ba70da554469b5c8a35a18cb7dfb.png"></image>
</view>
</view>
</view>
@ -83,7 +83,7 @@
<view class="btn_label btn-size-small btn_label-small" bindtap="toIssueDetail" data-id="{{item.id}}">
去处理
</view>
<image class="ic_btn btn-size-small" src="/images/btn.png"></image>
<image class="ic_btn btn-size-small" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/c4aae02018fa4e49a30ed2baa3eb916f.png"></image>
</view>
</view>
</view>

6
components/userManage/userManage.js

@ -74,7 +74,7 @@ Component({
}
let params = {
"pageIndex": searchData.indexPage,
"pageSize": app.globalData.pageSize,
"pageSize": 20,
"timestamp": searchData.date,
"authenticatedFlag": authenticatedFlag,
"partyFlag": partyFlag,
@ -109,6 +109,10 @@ Component({
wx.navigateTo({
url: `../../../pages/user_moudle/certificationDetails/certificationDetails?userId=${userId}&partyFlag=1`
})
}else if (this.searchData.index == 4) {//党员认证失败
wx.navigateTo({
url: `../../subpages/houseAudit/page/index/index`
})
}
}

6
components/userManage/userManage.wxml

@ -20,19 +20,19 @@
<view class="btn_label btn-size-small btn_label-small" data-userId="{{item.userId}}" bindtap="toUserWaItDetails">
去认证
</view>
<image class="ic_btn btn-size-small" src="/images/btn.png"></image>
<image class="ic_btn btn-size-small" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/c4aae02018fa4e49a30ed2baa3eb916f.png"></image>
</view>
<view class="buttons btn-size-small wux-pull-right" wx:if="{{state=='1'}}">
<view class="btn_label btn-size-small btn_label-small" data-userId="{{item.userId}}" bindtap="toUserWaItDetails">
已认证
</view>
<image class="ic_btn btn-size-small" src="/images/btn2.png"></image>
<image class="ic_btn btn-size-small" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/743dde7d02084d629ecbcaa4961c1e94.png"></image>
</view>
<view class="buttons btn-size-small wux-pull-right" wx:if="{{state=='2'}}">
<view class="btn_label btn-size-small btn_label-small" data-userId="{{item.userId}}" bindtap="toUserWaItDetails">
已认证
</view>
<image class="ic_btn btn-size-small" src="/images/btn2.png"></image>
<image class="ic_btn btn-size-small" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/743dde7d02084d629ecbcaa4961c1e94.png"></image>
</view>
<view class="userManage_fail" wx:if="{{state=='3'}}">
<view data-userId="{{item.userId}}" bindtap="toUserWaItDetails">></view>

BIN
images/banner.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

BIN
images/btn-login.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

BIN
images/btn.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

BIN
images/btn2.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

BIN
images/btn3.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

BIN
images/btn4.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

BIN
images/daichuli.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/daihuiying.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

BIN
images/down.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

BIN
images/dyrenzheng.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

BIN
images/dyrenzhengshibai.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

BIN
images/family/down.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

BIN
images/family/plus.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
images/family/reply.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 B

BIN
images/family/sub.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
images/family/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 B

BIN
images/ic_dang2.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
images/jmdairenzheng.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

BIN
images/jmrenzheng.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

BIN
images/login-bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

BIN
images/logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

BIN
images/logout.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
images/notice.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
images/office_yushan_logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

BIN
images/scan.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
images/search.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
images/xmdaichuli.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

BIN
images/xmyiguanbi.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

BIN
images/xmyijiean.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

BIN
images/yibohui.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

BIN
images/yiguanbi.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

223
pages/index/index.js

@ -1,5 +1,4 @@
var api = require('../../api/common.js')
import regeneratorRuntime from '../../utils/runtime.js'
const config = require('../../utils/config')
import {
checkUpdateAvatar,
@ -19,7 +18,9 @@ Page({
userInfo: '',
propagation: true,
joinFlag: true,
buttonName:'',//获取点击按钮的名字
buttonName:'', // 获取点击按钮的名字
qrCodeId: '',
floatButton: {}
},
onLoad: function() {
// this.checkUpdateAvatar()
@ -48,8 +49,18 @@ Page({
getIndexPanel: function() {
let that = this
api.indexPanel().then(function(res) {
res.data.forEach(item => {
if (item.templateInfo.templateCode == 'dadangwei') {
that.data.floatButton.icon = item.childNav[0].icon,
that.data.floatButton.code = item.childNav[0].navCode,
that.data.floatButton.label = item.childNav[0].label
} else {
that.data.panel.push(item)
}
})
that.setData({
panel: res.data
floatButton: that.data.floatButton,
panel: that.data.panel
})
console.log('panel', res.data)
that.getIndexStatistics()
@ -123,7 +134,9 @@ Page({
console.log('e', JSON.stringify(e))
let tmp = e.currentTarget.dataset.tmp
let state = e.currentTarget.dataset.state
let navCode= e.currentTarget.dataset.navcode
let navCode = e.currentTarget.dataset.navcode
console.log(tmp);
console.log(navCode);
switch (tmp) {
case 'tmp-1':
let childNav = [];
@ -155,6 +168,8 @@ Page({
case 'tmp-3':
//一户一码审核
if(navCode!='0205'){
let b_childNav = [];
for (let i = 0; i < this.data.panel.length; i++) {
if (this.data.panel[i].templateInfo !== null) {
@ -165,7 +180,12 @@ Page({
}
wx.navigateTo({
url: '/pages/user_moudle/userManageList/userManageList?state=' + state + '&childNav=' + JSON.stringify(b_childNav)
})
})
}else{
wx.navigateTo({
url: "../../subpages/houseAudit/page/index/index"
})
}
break
case 'tmp-4':
@ -202,18 +222,42 @@ Page({
// })
// }
break
case 'tmp-6':
if(navCode==10031){
wx.navigateTo({
url: '/subpages/consult/pages/consultIndex/consultIndex',
})
}
if(navCode==10032){
wx.navigateTo({
url: '/subpages/conflictMediation/pages/index/index',
})
}
break
case 'tmp-6':
if(navCode==10031){
wx.navigateTo({
url: '/subpages/consult/pages/consultIndex/consultIndex',
})
}
if(navCode==10032){
wx.navigateTo({
url: '/subpages/conflictMediation/pages/index/index',
})
}
break
case 'tmp-7':
// let f_childNav = [];
// for (let i = 0; i < this.data.panel.length; i++){
// if (this.data.panel[i].templateInfo.templateCode == 'tmp-7') {///
// f_childNav = this.data.panel[i].childNav
// }
// }
if (navCode == 'work_log_01') {
this.toPlugin()
} else if (navCode == 'wgy_02') {
this.toWanggeyuan()
} else if (navCode.indexOf('plugin-h5') != -1) { // 如果包含plugin-h5 说明是h5 页面
wx.navigateTo({
url: `/subpages/information/pages/index/index?url=`+encodeURIComponent(e.currentTarget.dataset.remark)
})
}
break
case 'tmp-8':
if (navCode == '10081') {
this.toPointClear()
} else if (navCode == '10082') {
this.toPointList()
}
break
default:
let c_childNav = [];
for (let i = 0; i < this.data.panel.length; i++) {
@ -432,6 +476,149 @@ Page({
url: '/subpages/monthlyReport/pages/monthlyIndex/monthlyIndex?monthlyType=publish'
})
}
},
logout(){
api.logout().then(function (res) {
// $wuxToast().show({
// type: 'text',
// duration: 3000,
// color: '#fff',
// text: '退出成功',
// success: () => console.log('')
// })
console.log(wx.getStorageSync('token') + "************" + wx.getStorageSync('userTagKey'))
wx.setStorageSync('token', '')
wx.setStorageSync('userTagKey', '')
wx.setStorageSync('currentGrid', '')
console.log(wx.getStorageSync('token') + "************" + wx.getStorageSync('userTagKey'))
wx.reLaunch({
url: '../../pages/login/login'
})
})
},
toPlugin () {
let token = wx.getStorageSync('token')
api.getCustomId().then(res => {
if (res.code == 0 && res.msg == 'success') {
wx.navigateTo({
url: `plugin://work-plugin/main?token=${token}&customerId=${res.data}`,
})
}
}).catch(err => {
console.log(err)
})
},
// 前往 网格员 小程序
toWanggeyuan () {
wx.navigateToMiniProgram({
appId: 'wx2b75d556ba867750',
path: `/subpages/find/pages/logRecord/reviewDetail/reviewDetail`,
extraData: {
scrip: ''
},
envVersion: 'release', //trial //develop
success(res) {
console.log(res)
},
fail(err) {
console.log(err)
}
})
},
// 前往 积分核销
toPointClear () {
wx.scanCode({
onlyFromCamera: false,
scanType: ['barCode', 'qrCode', 'datamatrix', 'pdf417'],
success: res => {
if (res.errMsg == 'scanCode:ok') {
this.setData({
qrCodeId: res.result
})
this.getUserinfobycode()
}
},
fail: res => {
// 接口调用失败
// wx.showToast({
// icon: 'none',
// title: '接口调用失败!'
// })
},
complete: res => {
// 接口调用结束
console.log(res)
}
})
},
getUserinfobycode() {
let para = {
qrCodeId: this.data.qrCodeId
}
api.getUserinfobycode(para).then(function (res) {
let {
faceImg,
points,
realName,
userId
} = res.data
wx.navigateTo({
url: `/subpages/pointManagement/pages/pointClear/pointClear?faceImg=${faceImg}&points=${points}&realName=${realName}&userId=${userId}`
})
}).catch(err => {
console.log(err)
})
},
// 前往 核销记录
toPointList () {
wx.navigateTo({
url: '/subpages/pointManagement/pages/pointList/pointList'
})
},
// 一户一码 前往 家庭
toFamily () {
wx.scanCode({
onlyFromCamera: false,
scanType: ['barCode', 'qrCode', 'datamatrix', 'pdf417'],
success: res => {
if (res.errMsg == 'scanCode:ok') {
if (res.result) {
const arr = decodeURIComponent(res.result).split('/')
const roomCode = arr[arr.length - 1]
wx.navigateTo({
url: `/subpages/family/pages/index/index?roomCode=${roomCode}`
})
}
}
},
fail: res => {
// 接口调用失败
// wx.showToast({
// icon: 'none',
// title: '接口调用失败!'
// })
},
complete: res => {
// 接口调用结束
console.log(res)
}
})
},
// 点击悬浮按钮 大党委
clickMoveButton () {
const tabMenu = [
{
label: '待处理'
},
{
label: '已结案'
},
{
label: '已关闭'
}
]
wx.navigateTo({
url: '/pages/project/project?state=0&childNav=' + JSON.stringify(tabMenu) + '&isPartyFlag=1'
})
}
})

5
pages/index/index.json

@ -1,6 +1,9 @@
{
"navigationBarTitleText": "微笑榆山",
"navigationBarTitleText": "现代榆山",
"navigationBarBackgroundColor": "#BB0300",
"navigationBarTextStyle": "white",
"usingComponents": {
"move-btn": "/components/moveButton/moveButton",
"wux-icon": "../../dist/icon/index",
"wux-grids": "../../dist/grids/index",
"wux-grid": "../../dist/grid/index",

99
pages/index/index.wxml

@ -1,11 +1,12 @@
<view class="page">
<view class="title">
<view class="banner">
<!-- <view class="title">
<view class="banner"> -->
<!-- 背景图 -->
<image src="/images/banner.png" class="banner-bg" mode="widthFix" />
<!-- <image src="/images/banner.png" class="banner-bg" mode="widthFix" />
<view class="info">
<view class="name">{{curGridName}}</view>
<image bindtap="toSetUp" class="icon icon-right-1" src="/images/shezhi.png"></image>
<view class="name">{{curGridName}}</view> -->
<!-- <image bindtap="toSetUp" class="icon icon-right-1" src="/images/shezhi.png"></image> -->
<!-- <image bindtap="logout" class="icon icon-right-1" src="/images/logout.png"></image>
<image bindtap="toNotice" wx:if="{{notice == 0}}" class="icon icon-right-2" src="/images/notice.png"></image>
<image bindtap="toNotice" wx:else class="icon icon-right-2" src="/images/notice-xz.png"></image>
</view>
@ -23,7 +24,7 @@
</view>
</view>
</view>
</view>
</view> -->
<!-- 书记在线 -->
<!-- <view class="sudoku clerkOnline" wx:if="{{panel.length !==0}}">
<view class="content">
@ -35,38 +36,62 @@
</view>
</view> -->
<!-- 九宫格循环 -->
<block wx:for="{{panel}}" wx:for-item="itemPanel">
<view class="detailed">
<view class="detailed-name">{{itemPanel.mainLabel}}</view>
<view class="sudoku">
<view class="content">
<view wx:for="{{itemPanel.childNav}}" wx:for-index="index" wx:for-item="itemChild" data-state="{{index}}" data-tmp="{{itemPanel.templateInfo.templateCode}}" data-navcode="{{itemChild.navCode}}" bindtap="toTabs" hover-stay-time="150" hover-class="grid-hover" class="item">
<image src="{{itemChild.icon}}" />
<view class="name">{{itemChild.label}}</view>
<!-- 书记在线特殊处理 -->
<button wx:if="{{itemChild.navCode == 10011 && checkUpdateAvatar}}" class="button" open-type="getUserInfo" catchgetuserinfo="getInfo" hover-stop-propagation="{{propagation}}"></button>
<!-- 工作日志特殊处理 -->
<view wx:if="{{itemChild.navCode == 10021 && workCheckUpdateAvatar}}" class="but" data-navCode="{{itemChild.navCode}}" catchtap="navigateToUd" hover-stop-propagation="{{propagation}}">
<button data-navCode="{{itemChild.navCode}}" class="button button-wid" open-type="getUserInfo" bindgetuserinfo="getInfoWork"></button>
</view>
<!-- 周报告 -->
<view wx:if="{{itemChild.navCode == 10022 && workCheckUpdateAvatar}}" class="but button-weekly" data-navCode="{{itemChild.navCode}}" catchtap="navigateToUd" hover-stop-propagation="{{propagation}}">
<button data-navCode="{{itemChild.navCode}}" class="button button-wid button-weekly" open-type="getUserInfo" bindgetuserinfo="getInfoWork"></button>
</view>
<!-- 月报告 -->
<view wx:if="{{itemChild.navCode == 10023 && workCheckUpdateAvatar}}" class="but button-monthly" data-navCode="{{itemChild.navCode}}" catchtap="navigateToUd" hover-stop-propagation="{{propagation}}">
<button data-navCode="{{itemChild.navCode}}" class="button button-wid button-monthly" open-type="getUserInfo" bindgetuserinfo="getInfoWork"></button>
</view>
<view wx:if="{{itemChild.navCode == 10024 && workCheckUpdateAvatar}}" class="but button-left" data-navCode="{{itemChild.navCode}}" catchtap="navigateToUd" hover-stop-propagation="{{propagation}}">
<button data-navCode="{{itemChild.navCode}}" class="button button-wid button-left" open-type="getUserInfo" bindgetuserinfo="getInfoWork"></button>
</view>
<view wx:if="{{itemChild.num>0}}" class="number {{itemChild.label.length === 2 ? 'number-left-2': itemChild.label.length === 3 ? 'number-left-3': itemChild.label.length === 4 ? 'number-left-4':itemChild.label.length === 5 ? 'number-left-5':itemChild.label.length === 6 ? 'number-left-6' :''}}">
<text wx:if="{{itemChild.num > 999}}">999+</text>
<text wx:else>{{itemChild.num}}</text>
<view class="title-new">
<view class="grid-any">
<view bindtap="gridChange" class="grid-name">
<view>{{curGridName}}</view>
<image src="/images/down.png"></image>
</view>
<view class="grid-set">
<image bindtap="toFamily" class="scan" src="/images/scan.png"></image>
<image wx:if="{{notice == 0}}" bindtap="toNotice" class="notice" src="/images/notice.png"></image>
<image bindtap="toNotice" wx:else class="notice" src="/images/notice-xz.png"></image>
<image bindtap="logout" class="logout" src="/images/logout.png"></image>
</view>
</view>
<view class="explain-new">
<image src="/images/ic_dang2.png"></image>
<view class="explain-name-new">可按照网格支部查看</view>
</view>
</view>
<view class="list-all">
<block wx:for="{{panel}}" wx:for-item="itemPanel">
<view class="detailed">
<view class="detailed-name">{{itemPanel.mainLabel}}</view>
<view class="sudoku">
<view class="content">
<view wx:for="{{itemPanel.childNav}}" wx:for-index="index" wx:for-item="itemChild" data-state="{{index}}" data-tmp="{{itemPanel.templateInfo.templateCode}}" data-navcode="{{itemChild.navCode}}" data-remark="{{itemChild.remark}}" bindtap="toTabs" hover-stay-time="150" hover-class="grid-hover" class="item">
<image src="{{itemChild.icon}}" />
<view class="name">{{itemChild.label}}</view>
<!-- 书记在线特殊处理 -->
<button wx:if="{{itemChild.navCode == 10011 && checkUpdateAvatar}}" class="button" open-type="getUserInfo" catchgetuserinfo="getInfo" hover-stop-propagation="{{propagation}}"></button>
<!-- 工作日志特殊处理 -->
<view wx:if="{{itemChild.navCode == 10021 && workCheckUpdateAvatar}}" class="but" data-navCode="{{itemChild.navCode}}" catchtap="navigateToUd" hover-stop-propagation="{{propagation}}">
<button data-navCode="{{itemChild.navCode}}" class="button button-wid" open-type="getUserInfo" bindgetuserinfo="getInfoWork"></button>
</view>
<!-- 周报告 -->
<view wx:if="{{itemChild.navCode == 10022 && workCheckUpdateAvatar}}" class="but button-weekly" data-navCode="{{itemChild.navCode}}" catchtap="navigateToUd" hover-stop-propagation="{{propagation}}">
<button data-navCode="{{itemChild.navCode}}" class="button button-wid button-weekly" open-type="getUserInfo" bindgetuserinfo="getInfoWork"></button>
</view>
<!-- 月报告 -->
<view wx:if="{{itemChild.navCode == 10023 && workCheckUpdateAvatar}}" class="but button-monthly" data-navCode="{{itemChild.navCode}}" catchtap="navigateToUd" hover-stop-propagation="{{propagation}}">
<button data-navCode="{{itemChild.navCode}}" class="button button-wid button-monthly" open-type="getUserInfo" bindgetuserinfo="getInfoWork"></button>
</view>
<view wx:if="{{itemChild.navCode == 10024 && workCheckUpdateAvatar}}" class="but button-left" data-navCode="{{itemChild.navCode}}" catchtap="navigateToUd" hover-stop-propagation="{{propagation}}">
<button data-navCode="{{itemChild.navCode}}" class="button button-wid button-left" open-type="getUserInfo" bindgetuserinfo="getInfoWork"></button>
</view>
<view wx:if="{{itemChild.num>0}}" class="number {{itemChild.label.length === 2 ? 'number-left-2': itemChild.label.length === 3 ? 'number-left-3': itemChild.label.length === 4 ? 'number-left-4':itemChild.label.length === 5 ? 'number-left-5':itemChild.label.length === 6 ? 'number-left-6' :''}}">
<text wx:if="{{itemChild.num > 999}}">999+</text>
<text wx:else>{{itemChild.num}}</text>
</view>
</view>
</view>
</view>
</view>
</view>
</block>
</view>
</block>
</view>
</view>
<!-- 悬浮按钮 -->
<move-btn wx:if="{{floatButton}}" button-width="142" button-height="142" button-left="620" area-top="120" area-height="85%" img-url="{{floatButton.icon}}" bindmovebtnCallBack="clickMoveButton"></move-btn>

105
pages/index/index.wxss

@ -1,5 +1,5 @@
page {
background: #fff;
background: #f7f7f7;
}
.title {
@ -136,9 +136,13 @@ page {
/* 文字样式 */
.detailed {
width: 100%;
border-top: 10rpx solid #f6f8f8;
width: calc(100% - 40rpx);
/* border-top: 10rpx solid #f6f8f8; */
margin: 20rpx;
border-radius: 16rpx;
padding: 30rpx 0;
background: #ffffff;
}
.detailed .detailed-name {
@ -161,24 +165,29 @@ page {
width: 100%;
height: 100%;
background: #fff;
display: grid;
grid-template-columns: repeat(4, 1fr);
display: inline-block;
align-content: center;
grid-row-gap: 10%;
box-sizing: border-box;
padding: 0 20rpx;
/* padding: 0 20rpx; */
padding-bottom: 20rpx;
}
.sudoku .item {
display: flex;
/* display: flex;
flex-direction: column;
align-items: center;
justify-content: center; */
display: inline-flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 25%;
margin-top: 20rpx;
}
.sudoku .item image {
width: 64rpx;
height: 64rpx;
width: 90rpx;
height: 90rpx;
object-fit: contain;
}
@ -268,3 +277,79 @@ page {
margin-left: 102rpx;
margin-top: 5rpx;
}
/* 首页改版 */
.title-new{
width: 100%;
height: 200rpx;
background: #BB0300;
overflow:hidden;
/* padding-top: 38rpx; */
}
.title-new .grid-any{
margin-top: 38rpx;
width: calc(100% - 44rpx);
height: 40rpx;
margin-left: 22rpx;
background: #BB0300;
display: flex;
justify-content: space-between;
align-items: center;
}
.title-new .grid-any .grid-name {
display: flex;
justify-content: space-between;
align-items: center;
}
.title-new .grid-any .grid-name view{
font-size: 34rpx;
font-weight: 500;
color: #FFFFFF;
}
.title-new .grid-any .grid-name image{
width: 24rpx;
height: 16rpx;
margin-left: 13rpx;
}
.title-new .grid-any .grid-set{
display: flex;
justify-content: space-between;
align-items: center;
}
.title-new .grid-any .grid-set .logout{
width: 40rpx;
height: 40rpx;
}
.title-new .grid-any .grid-set .notice{
width: 40rpx;
height: 40rpx;
margin-right: 40rpx;
}
.title-new .grid-any .grid-set .scan{
width: 40rpx;
height: 40rpx;
margin-right: 50rpx;
}
.list-all{
margin-top: -60rpx;
}
.explain-new{
margin-top: 23rpx;
width: calc(100% - 18rpx);
height: 24rpx;
margin-left: 18rpx;
background: #BB0300;
display: flex;
align-items: center;
}
.explain-new image{
width: 24rpx;
height: 24rpx;
}
.explain-new .explain-name-new{
font-size: 24rpx;
font-weight: 500;
color: #FFFFFF;
opacity: 0.5;
}

111
pages/issueDetail/issueDetail.js

@ -43,7 +43,7 @@ Page({
// 获取事件详情
getEventDetail() {
api.getEventDetail(this.data.issueId).then((res) => {
console.log(res.data)
console.log(res.data.userId)
this.setData({
detailData: {
id: res.data.id,
@ -56,7 +56,8 @@ Page({
mobile: res.data.mobile,
address: res.data.address,
advice: res.data.advice,
handleResidentImages: res.data.handleResidentImages
handleResidentImages: res.data.handleResidentImages,
userId: res.data.userId,
}
})
})
@ -64,7 +65,7 @@ Page({
// 获取议题详情
getIssueDetail() {
api.getIssueDetail(this.data.issueId).then((res) => {
console.log(res.data)
console.log(res.data.userId)
this.setData({
detailData: {
id: res.data.id,
@ -81,7 +82,8 @@ Page({
approveNum: res.data.approveNum,
opposeNum: res.data.opposeNum,
commentNum: res.data.commentNum,
browseNum: res.data.browseNum
browseNum: res.data.browseNum,
userId: res.data.userId,
}
})
})
@ -167,17 +169,44 @@ Page({
categoryId: this.data.handleSubmitData.categoryId,
eventState: this.data.handleSubmitData.eventState,
advice: this.data.handleSubmitData.advice,
images: this.data.handleSubmitData.images
images: this.data.handleSubmitData.images,
userId: this.data.detailData.userId,
}
api.postEventHandleSubmit(params).then((res) => {
console.log(res)
if (res.code === 0) {
// 显示提醒
this.setData({
visible: true
})
}
wx.showLoading({
title: '正在提交,请稍后',
})
if (this.data.handleSubmitData.eventState == 2) { //事件状态(2-驳回,4-审核通过)
api.reviewNopass(params).then((res) => {
console.log(res)
wx.hideLoading()
if (res.code === 0) {
// 显示提醒
this.setData({
visible: true
})
}
})
} else if (this.data.handleSubmitData.eventState == 4) {
api.reviewPass(params).then((res) => {
console.log(res)
wx.hideLoading()
if (res.code === 0) {
// 显示提醒
this.setData({
visible: true
})
}
})
}
// api.postEventHandleSubmit(params).then((res) => {
// console.log(res)
// if (res.code === 0) {
// // 显示提醒
// this.setData({
// visible: true
// })
// }
// })
} else if (this.data.issueState == "1") { // 待处理
@ -206,17 +235,55 @@ Page({
id: this.data.detailData.id,
advice: this.data.handleSubmitData.advice,
state: this.data.handleSubmitData.state,
images: this.data.handleSubmitData.images
images: this.data.handleSubmitData.images,
userId: this.data.detailData.userId,
}
api.postIssueHandleSubmit(params).then((res) => {
console.log(res)
if (res.code === 0) {
// 显示提醒
this.setData({
visible: true
})
}
wx.showLoading({
title: '正在提交,请稍后',
})
if (this.data.handleSubmitData.state == 1) { //状态 1 回应,2 关闭,4 转项目
api.response(params).then((res) => {
console.log(res)
wx.hideLoading()
if (res.code === 0) {
// 显示提醒
this.setData({
visible: true
})
}
})
} else if (this.data.handleSubmitData.state == 2) {
api.close(params).then((res) => {
console.log(res)
wx.hideLoading()
if (res.code === 0) {
// 显示提醒
this.setData({
visible: true
})
}
})
} else if (this.data.handleSubmitData.state == 4) {
api.toItem(params).then((res) => {
console.log(res)
wx.hideLoading()
if (res.code === 0) {
// 显示提醒
this.setData({
visible: true
})
}
})
}
// api.postIssueHandleSubmit(params).then((res) => {
// console.log(res)
// if (res.code === 0) {
// // 显示提醒
// this.setData({
// visible: true
// })
// }
// })
}
},

2
pages/issueDetail/issueDetail.json

@ -1,5 +1,5 @@
{
"navigationBarTitleText": "微笑榆山",
"navigationBarTitleText": "现代榆山",
"usingComponents": {
"wux-actionsheet": "../../dist/actionsheet/index",
"wux-popup": "../../dist/popup/index",

70
pages/itemDetail/itemDetail.js

@ -46,7 +46,8 @@ Page({
approveNum: res.data.approveNum,
opposeNum: res.data.opposeNum,
commentNum: res.data.commentNum,
browseNum: res.data.browseNum
browseNum: res.data.browseNum,
userId: res.data.userId
}
});
// 获取项目处理进度
@ -152,22 +153,71 @@ Page({
outHandleImages: this.data.handleSubmitData.outHandleImages !== undefined ? this.data.handleSubmitData.outHandleImages : [],
handleImages: this.data.handleSubmitData.handleImages !== undefined ? this.data.handleSubmitData.handleImages : [],
handleCategory: this.data.handleSubmitData.state !== undefined ? this.data.handleSubmitData.state : 0,
userId: this.data.detailData.userId !== undefined ? this.data.detailData.userId : 0,
};
if (params.handleCategory === 1) { // 吹哨
params.deptResultDTOS = this.data.handleSubmitData.deptResultDTOS
} else if (params.handleCategory === 10) { // 结案
params.evaluateDeptDTOS = this.data.handleSubmitData.evaluateDeptDTOS
}
wx.showLoading({
title: '正在提交,请稍后',
})
if (params.handleCategory === 0) { //处理结果:0 回应,1 吹哨,5 关闭,10 结案
api.response(params).then(res => {
console.log(res);
wx.hideLoading()
if (res.code === 0) {
// 显示提醒
this.setData({
visible: true
});
}
});
} else if (params.handleCategory === 1) {
api.whistle(params).then(res => {
console.log(res);
wx.hideLoading()
if (res.code === 0) {
// 显示提醒
this.setData({
visible: true
});
}
});
} else if (params.handleCategory === 5) {
api.close(params).then(res => {
console.log(res);
wx.hideLoading()
if (res.code === 0) {
// 显示提醒
this.setData({
visible: true
});
}
});
} else if (params.handleCategory === 10) {
api.closeCase(params).then(res => {
console.log(res);
wx.hideLoading()
if (res.code === 0) {
// 显示提醒
this.setData({
visible: true
});
}
});
}
api.postItemHandleSubmit(params).then(res => {
console.log(res);
if (res.code === 0) {
// 显示提醒
this.setData({
visible: true
});
}
});
// api.postItemHandleSubmit(params).then(res => {
// console.log(res);
// if (res.code === 0) {
// // 显示提醒
// this.setData({
// visible: true
// });
// }
// });
},
// 关闭提醒

2
pages/itemDetail/itemDetail.json

@ -1,5 +1,5 @@
{
"navigationBarTitleText": "微笑榆山",
"navigationBarTitleText": "现代榆山",
"usingComponents": {
"wux-actionsheet": "../../dist/actionsheet/index",
"wux-popup": "../../dist/popup/index",

8
pages/login/login.wxml

@ -1,10 +1,10 @@
<view class="login">
<image class="login-bg" src="../../images/login-bg.png" />
<image class="login-bg" src="https://epdc-yushan.elinkservice.cn/files-pro/20210225/f3078274944147aabd0a053937bc2de5.png" />
<view class="content">
<view class="logo">
<image src="../../images/office_yushan_logo.png" />
<image src="https://epdc-yushan.elinkservice.cn/files-pro/20211027/798ef97bc30140099b25911edfe0089d.png" />
</view>
<view class="title">微笑榆山工作端</view>
<view class="title">现代榆山工作端</view>
<view class="logo-form">
<view class="username item">
<image src="../../images/login-username.png" />
@ -27,7 +27,7 @@
<view class="close">
<image catchtap="closeNote" src="../../images/login-close.png" />
</view>
<view class="program-intro">该小程序是微笑榆山党建引领城乡共治平台的工作人员业务端,用于处理居民端提报的一些问题,并及时处理或向上反馈。</view>
<view class="program-intro">该小程序是现代榆山党建引领城乡共治平台的工作人员业务端,用于处理居民端提报的一些问题,并及时处理或向上反馈。</view>
</view>
</view>
</view>

1
pages/login/login.wxss

@ -40,6 +40,7 @@ page {
width: 100%;
height:100%;
background: #fff;
border-radius: 50%;
}
.login .content .title {
font-size: 40rpx;

2
pages/login_bk/login.wxml

@ -13,7 +13,7 @@
<view class="login-btn">
<view class="buttons btn-size" bindtap="handleLogin">
<view class="btn_label btn-size">登录</view>
<image class="ic_btn btn-size" src="/images/btn-login.png"></image>
<image class="ic_btn btn-size" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/9341ccd7efeb4b938f3f9039e0c31e59.png"></image>
<button class="btn btn-size"></button>
</view>
</view>

10
pages/project/project.js

@ -24,6 +24,7 @@ Page({
title: 'Tab 4',
},
],
isPartyFlag: 0
},
onLoad: function (options) {
const temp = Number(options.state) + 1
@ -31,26 +32,27 @@ Page({
key: 'tab' + temp,
index: options.state,
childNav: JSON.parse(options.childNav),
isPartyFlag: options.isPartyFlag ? options.isPartyFlag : 0
})
},
onShow: function (options) {
this.setData({
indexPage:1
})
this.selectComponent("#state-" + this.data.index).getItemList(1, this.data.index, 0)
this.selectComponent("#state-" + this.data.index).getItemList(1, this.data.index, 0, this.data.isPartyFlag)
},
onReachBottom: function () {
this.setData({
indexPage: this.data.indexPage + 1
})
this.selectComponent("#state-" + this.data.index).getItemList(this.data.indexPage,this.data.index,1)
this.selectComponent("#state-" + this.data.index).getItemList(this.data.indexPage, this.data.index, 1, this.data.isPartyFlag)
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function (options) {
this.selectComponent("#state-" + this.data.index).getItemList(1, this.data.index, 0)
this.selectComponent("#state-" + this.data.index).getItemList(1, this.data.index, 0, this.data.isPartyFlag)
wx.stopPullDownRefresh();
},
onChange(e) {
@ -67,7 +69,7 @@ Page({
index,
indexPage: 1
})
this.selectComponent("#state-" + this.data.index).getItemList(this.data.indexPage,this.data.index,0)
this.selectComponent("#state-" + this.data.index).getItemList(this.data.indexPage, this.data.index, 0, this.data.isPartyFlag)
},
onSwiperChange(e) {
console.log('onSwiperChange', e)

2
pages/project/project.json

@ -1,5 +1,5 @@
{
"navigationBarTitleText": "微笑榆山",
"navigationBarTitleText": "现代榆山",
"usingComponents": {
"wux-tabs": "../../dist/tabs/index",
"wux-tab": "../../dist/tab/index",

2
pages/project/projectDetail/projectDetail.json

@ -1,5 +1,5 @@
{
"navigationBarTitleText": "微笑榆山",
"navigationBarTitleText": "现代榆山",
"usingComponents": {
"wux-actionsheet": "../../../dist/actionsheet/index",
"wux-popup": "../../../dist/popup/index",

2
pages/subject/subject.json

@ -1,5 +1,5 @@
{
"navigationBarTitleText": "微笑榆山",
"navigationBarTitleText": "现代榆山",
"usingComponents": {
"wux-tabs": "../../dist/tabs/index",
"wux-tab": "../../dist/tab/index",

20
pages/user_moudle/checkpending/checkpending.js

@ -99,11 +99,21 @@ Page({
"userId": this.data.userId,
"remark": this.data.remark
}
api.authenticateResident(params).then(function (res) {
that.togUserList()
console.log(res)
})
if (this.data.authenticatedFlag == '0') { //未通过
api.authenticateResidentNoPass(params).then(function(res) {
that.togUserList()
console.log(res)
})
} else {
api.authenticateResidentPass(params).then(function(res) {
that.togUserList()
console.log(res)
})
}
// api.authenticateResident(params).then(function (res) {
// that.togUserList()
// console.log(res)
// })
},
// 用户详情
handleResidentDetail: function () {

2
pages/user_moudle/checkpending/checkpending.wxml

@ -36,7 +36,7 @@
<view class="login-btn">
<view class="buttons btn-size" bindtap="handleAuti">
<view class="btn_label btn-size">确定</view>
<image class="ic_btn btn-size" src="../../../images/btn-login.png"></image>
<image class="ic_btn btn-size" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/9341ccd7efeb4b938f3f9039e0c31e59.png"></image>
<button class="btn btn-size"></button>
</view>
</view>

7
project.private.config.json

@ -0,0 +1,7 @@
{
"projectname": "榆山工作端",
"setting": {
"compileHotReLoad": true
},
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html"
}

BIN
subpages/clerkOnline/images/icon_close.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

BIN
subpages/clerkOnline/images/ig_tianjiatupian@2x.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

BIN
subpages/clerkOnline/images/inform.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

BIN
subpages/clerkOnline/images/informRed.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

BIN
subpages/clerkOnline/images/large-ava.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

BIN
subpages/clerkOnline/images/small-ava.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

2
subpages/clerkOnline/pages/memberList/memberList.wxml

@ -15,7 +15,7 @@
<view class="list-all">
<view class="left-img">
<image wx:if="{{item.userFace}}" src="{{item.userFace}}"></image>
<image wx:else src="../../images/large-ava.png"></image>
<image wx:else src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/bf46696b961a4fa680a824f60861bd0c.png"></image>
</view>
<view class="list-info">
<view class="name">{{item.nickName}}</view>

6
subpages/clerkOnline/pages/myGroup/myGroup.wxml

@ -5,7 +5,7 @@
<!-- 不是自己发布 -->
<view class="user" wx:if="{{item.selfPublishFlag=='0'}}">
<image src="{{item.userFace}}" class="user-image" wx:if="{{item.userFace!==''}}" />
<image src="../../images/small-ava.png" class="user-image" wx:if="{{item.userFace ==''}}" />
<image src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/bf46696b961a4fa680a824f60861bd0c.png" class="user-image" wx:if="{{item.userFace ==''}}" />
<view class="position" style="margin-right {{item.selfPublishFlag=='1'? '10rpx':''}}">
<text>{{item.nickName}}</text>
<text class="time">{{item.createTime}}</text>
@ -18,13 +18,13 @@
<text class="time">{{item.createTime}}</text>
</view>
<image src="{{item.userFace}}" class="user-image" wx:if="{{item.userFace!==''}}" />
<image src="../../images/small-ava.png" class="user-image" wx:if="{{item.userFace ==''}}" />
<image src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/bf46696b961a4fa680a824f60861bd0c.png" class="user-image" wx:if="{{item.userFace ==''}}" />
</view>
</view>
<view class="content" bind:tap="goTopicDetail" data-messageType="{{item.messageType}}" data-id="{{item.id}}">
<view class="top">
<image src="{{item.imgUrl}}" class="bac" wx:if="{{item.imgUrl !=='' && item.messageType=='1' }}"></image>
<image src="../../images/informRed.png" class="inform" wx:if="{{item.messageType=='2'}}"></image>
<image src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/4a95639254c64daf97da2feaf8c526df.png" class="inform" wx:if="{{item.messageType=='2'}}"></image>
<image src="../../images/top.png" class="isTop" wx:if="{{item.topFlag=='1'}}" />
<image src="../../images/top2.png" class="isTop" wx:if="{{item.messageType=='2' && item.topFlag=='1'}}" />
</view>

4
subpages/clerkOnline/pages/myTalk/myTalk.wxml

@ -11,9 +11,9 @@
<view class="image-item" wx:for="{{uploadImageList}}" wx:for-index="index" wx:for-item="item" wx:key="{{item.imageId}}">
<image class="issue-image" src="{{item.imgUrl}}" />
<image wx:if="{{!item.uploaded}}" class="loading" src="../../images/loading.gif" />
<image bindtap="deleteImage" data-imageid="{{item.imageId}}" class="close" wx:if="{{!isUploading}}" src="../../images/icon_close.png" />
<image bindtap="deleteImage" data-imageid="{{item.imageId}}" class="close" wx:if="{{!isUploading}}" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/c3e4b9743ca047db8bbc2b550ddceb61.png" />
</view>
<image wx:if="{{uploadImageList.length < imageListlenght}}" src="../../images/ig_tianjiatupian@2x.png" bindtap="chooseImage" />
<image wx:if="{{uploadImageList.length < imageListlenght}}" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/e747d3f8d8c84b36b85bf3758ec70681.png" bindtap="chooseImage" />
</view>
</view>
<view class="topic-button">

4
subpages/clerkOnline/pages/readlist/components/listItem/listItem.wxml

@ -3,7 +3,7 @@
<view class="list-all">
<view class="left-img">
<image wx:if="{{contentObj.userFace}}" src="{{contentObj.userFace}}"></image>
<image wx:else src="../../../../images/large-ava.png"></image>
<image wx:else src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/bf46696b961a4fa680a824f60861bd0c.png"></image>
</view>
<view class="list-info">
<view class="list-info-top">{{contentObj.nickName}}</view>
@ -19,7 +19,7 @@
<view class="list-all-wd">
<view class="left-img">
<image wx:if="{{contentObj.userFace}}" src="{{contentObj.userFace}}"></image>
<image wx:else src="../../../../images/large-ava.png"></image>
<image wx:else src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/bf46696b961a4fa680a824f60861bd0c.png"></image>
</view>
<view class="list-info">
<view class="name">{{contentObj.nickName}}</view>

2
subpages/clerkOnline/pages/topicDetail/components/detailContent/detailContent.wxml

@ -2,7 +2,7 @@
<view class="user-info">
<image class="avatar" src="{{topList.userFace}}" wx:if="{{topList.userFace !==''}}"/>
<image class="avatar" src="../../../../images/large-ava.png" wx:if="{{topList.userFace ==''}}"/>
<image class="avatar" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/bf46696b961a4fa680a824f60861bd0c.png" wx:if="{{topList.userFace ==''}}"/>
<view class="right">
<view class="identify">
<view class="nickname">{{topList.nickName}}</view>

2
subpages/clerkOnline/pages/topicDetail/components/detailRemark/detailRemark.wxml

@ -22,7 +22,7 @@
<view class="remark-list-item" wx:for="{{commentList}}" wx:key="index">
<view class="user-info">
<image class="avatar" src="{{item.user.userFace}}" wx:if="{{item.user.userFace !==''}}"/>
<image class="avatar" src="../../../../images/large-ava.png" wx:if="{{item.user.userFace ==''}}"/>
<image class="avatar" src="https://epdc-yushan.elinkservice.cn/files-pro/20210610/bf46696b961a4fa680a824f60861bd0c.png" wx:if="{{item.user.userFace ==''}}"/>
<view class="right">
<view class="identify">
<view class="nickname">{{item.user.nickName}}</view>

2
subpages/conflictMediation/pages/index/index.json

@ -4,7 +4,7 @@
"load-more": "../../components/loadMore/loadMore",
"pulldown-refresh": "../../components/pullDownRefresh/pullDownRefresh",
"wux-tabs": "../../../../dist/tabs/index",
"wux-tab": "../../dist/tab/index",
"wux-tab": "../../../../dist/tab/index",
"wux-date-picker":"../../../../dist/date-picker/index",
"wux-cell":"../../../../dist/cell/index"
}

2
subpages/consult/components/questionList/questionList.wxss

@ -89,9 +89,11 @@
.answer-content text{
line-height: 50rpx;
display: block;
word-break: break-all;
}
.question text{
line-height: 50rpx;
word-break: break-all;
}
.answer-content text.text-collapse{

2
subpages/consult/pages/consultIndex/consultIndex.json

@ -4,7 +4,7 @@
"load-more": "../../components/loadMore/loadMore",
"pulldown-refresh": "../../components/pullDownRefresh/pullDownRefresh",
"wux-tabs": "../../../../dist/tabs/index",
"wux-tab": "../../dist/tab/index",
"wux-tab": "../../../../dist/tab/index",
"question-list":"../../components/questionList/questionList"
}
}

BIN
subpages/family/images/arrow-right.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

BIN
subpages/family/images/arrow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

BIN
subpages/family/images/close.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
subpages/family/images/edit_info.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
subpages/family/images/family-qr.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
subpages/family/images/no-family.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

293
subpages/family/pages/editHouseInfo/editHouseInfo.js

@ -0,0 +1,293 @@
// @ts-nocheck
import {
getHouseInfo,
updateHouseInfo
} from '../../utils/api.js';
import validate from "../../utils/validate/index.js";
Page({
/**
* 页面的初始数据
*/
data: {
submitBtnIsAllowed: false,
fmData: {
houseId:'',
ownerName:'', // 房主姓名
idCard: '', // 身份证
mobile:'', // 房主电话
},
buildingunitlist: [], // 单元
houseTypeIndex: 0,
houseType: [ // 房屋类型
{
value: "1",
label: "楼房",
},
{
value: "2",
label: "平房",
},
{
value: "3",
label: "别墅",
}
],
purposeIndex: 0,
purposeArr: [ // 房屋用途
{ value: '1', label: '住宅' },
{ value: '2', label: '商业' },
{ value: '3', label: '办公' },
{ value: '4', label: '工业' },
{ value: '5', label: '仓储' },
{ value: '6', label: '商住混用' },
{ value: '7', label: '其他' }
],
rentFlagArrIndex: 0,
rentFlagArr: [ // 居住情况
{ value: '1', label: '出租' },
{ value: '2', label: '闲置' },
{ value: '0', label: '自住' }
]
},
/**
* 生命周期函数--监听页面加载
*/
async onLoad(options) {
wx.showLoading({
title: "加载中",
mask: true,
});
this.setData({
fmData: options
});
await this.getBuildingunitlist();
wx.hideLoading()
},
// 单元
async getBuildingunitlist() {
const { fmData } = this.data;
if (!fmData.roomCode) return
const res = await getHouseInfo({roomCode: fmData.roomCode});
if (res.msg === 'success' && res.code === 0) {
this.setData({
fmData: res.data
})
this.data.houseType.forEach((item, index) => {
if (item.value == res.data.roomType) {
this.setData({
houseTypeIndex: index
})
}
})
this.data.purposeArr.forEach((item, index) => {
if (item.value == res.data.roomUse) {
this.setData({
purposeArrIndex: index
})
}
})
this.data.rentFlagArr.forEach((item, index) => {
if (item.value == res.data.livingStatus) {
this.setData({
rentFlagArrIndex: index
})
}
})
console.log(this.data.fmData);
}
},
ownerNameSync(e){
this.setData({
'fmData.ownerName' : e.detail.value
})
},
ownerIdCardSync(e){
this.setData({
'fmData.ownerIdCard' : e.detail.value
})
},
ownerPhoneSync(e){
this.setData({
'fmData.ownerPhone' : e.detail.value
})
},
remarkSync(e){
this.setData({
'fmData.remark' : e.detail.value
})
},
// 房屋类型
houseTypePicker(e){
console.log('111111111', e)
this.setData({
houseTypeIndex: e.detail.value,
'fmData.roomType' : this.data.houseType[e.detail.value].value
})
},
// 房屋途径
housePurposePicker(e){
this.setData({
purposeArrIndex: e.detail.value,
'fmData.roomUse' : this.data.purposeArr[e.detail.value].value
})
},
// 房屋状态
houseStatePicker(e){
this.setData({
rentFlagArrIndex: e.detail.value,
'fmData.livingStatus' : this.data.rentFlagArr[e.detail.value].value
})
},
// 身份证失去焦点
handleValidBlur(e) {
let { fmData } = this.data;
const right = this.identityCodeValid(e.detail.value)
if (right) {
console.log('输入正确就没什么::::');
} else {
fmData.gender = ''
this.setData({ fmData })
wx.showToast({
title: '身份证号不正确,请重新输入',
icon: "none",
duration: 1500,
});
}
},
// 校验身份证是否正确
identityCodeValid (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)
// ISO 7064:1983.MOD 11-2
// 判断最后一位校验码是否正确
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]
// 格式的正则
// 正则思路
/*
第一位不可能是0
第二位到第六位可以是0-9
第七位到第十位是年份所以七八位为19或者20
十一位和十二位是月份这两位是01-12之间的数值
十三位和十四位是日期是从01-31之间的数值
十五十六十七都是数字0-9
十八位可能是数字0-9也可能是X
*/
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)
},
// 修改提交
async editSubmit () {
if (!this.computeSubmitBtnIsAllowed(false)) return;
const { fmData } = this.data;
wx.showLoading({
title: "提交中",
mask: true,
});
const res = await updateHouseInfo({...fmData});
wx.hideLoading();
if (res.msg === "success" && res.code === 0) {
wx.showToast({
title: "修改成功",
duration: 2000,
});
setTimeout(()=>{
wx.reLaunch({
url: `../index/index?roomCode=${!this.data.fmData.roomCode ? this.data.fmData.roomNo : this.data.fmData.roomCode}`
})
},2000)
}
},
// 更新data数据后需主动触发
$afterUpdateData() {
this.computeSubmitBtnIsAllowed();
},
// 校验
computeSubmitBtnIsAllowed(isQuiet = true) {
const { fmData } = this.data,
vlt = validate(fmData, {
buildingUnitId: [
{
rule: "required",
message: "请先选择【单元号】",
},
],
doorName: [
{
rule: "required",
message: "请先输入【门牌号】",
},
],
houseType: [
{
rule: "required",
message: "请先选择【房屋类型】",
},
],
purpose: [
{
rule: "required",
message: "请先选择【房屋用途】",
},
],
rentFlag: [
{
rule: "required",
message: "请先选择【房屋状态】",
},
]
});
if (!vlt.valid) {
if (!isQuiet) {
wx.showToast({
title: vlt.error,
icon: "none",
duration: 1500,
});
}
this.setData({
submitBtnIsAllowed: false,
});
return false;
} else {
this.setData({
submitBtnIsAllowed: true,
});
return true;
}
},
});

4
subpages/family/pages/editHouseInfo/editHouseInfo.json

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "编辑",
"usingComponents": {}
}

244
subpages/family/pages/editHouseInfo/editHouseInfo.wxml

@ -0,0 +1,244 @@
<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">
{{fmData.communityName ? fmData.communityName : ''}}
</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.gridName ? fmData.gridName : ''}}
</view>
</view>
</view>
<!-- 小区 -->
<view class="item">
<view class="field">
<view class="field-text">小区</view>
</view>
<view class="value">
<view class="input">
{{fmData.plotName ? fmData.plotName : ''}}
</view>
</view>
</view>
<!-- 楼栋 -->
<view class="item">
<view class="field">
<view class="field-text">楼栋</view>
</view>
<view class="value">
<view class="input">
{{fmData.buildingName ? fmData.buildingName : ''}}
</view>
</view>
</view>
<!-- 单元号 -->
<view class="item">
<view class="field">
<view class="field-text">单元号</view>
</view>
<view class="value">
<view class="input">
{{fmData.unit ? fmData.unit : ''}}
</view>
</view>
</view>
<!-- <view class="item">
<view class="field">
<view class="must">*</view>
<view class="field-text">单元号</view>
</view>
<view class="value">
<picker class="picker"
range="{{buildingunitlist}}"
range-key="label"
bindchange="inputSyncPicker">
<view class="picker-text" wx:if="{{fmData.unitName}}">{{fmData.unitName}}</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="input">
{{fmData.roomNo ? fmData.roomNo : ''}}
</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.doorName }}"
placeholder="请输入"
placeholder-class="z-ph"
data-fm="fmData"
data-name="doorName"
bindinput="inputSync"
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="must">*</view>
<view class="field-text">房屋类型</view>
</view>
<view class="value">
<picker class="picker"
range="{{houseType}}"
range-key="label"
bindchange="houseTypePicker" value="{{houseTypeIndex}}">
<view class="picker-text" wx:if="{{fmData.roomType}}">{{houseType[houseTypeIndex].label}}</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="must">*</view>
<view class="field-text">房屋用途</view>
</view>
<view class="value">
<picker class="picker"
range="{{purposeArr}}"
range-key="label"
bindchange="housePurposePicker" value="{{purposeArrIndex}}">
<view class="picker-text" wx:if="{{fmData.roomUse}}">{{purposeArr[purposeArrIndex].label}}</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="must">*</view>
<view class="field-text">居住情况</view>
</view>
<view class="value">
<picker class="picker"
range="{{rentFlagArr}}"
range-key="label"
bindchange="houseStatePicker" value="{{rentFlagArrIndex}}">
<view class="picker-text" wx:if="{{fmData.livingStatus}}">{{rentFlagArr[rentFlagArrIndex].label}}</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="input">
<input type="text"
value="{{ fmData.ownerName }}"
placeholder="请输入"
placeholder-class="z-ph"
bindinput="ownerNameSync"
cursor-spacing="14"
maxlength="100" />
</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="{{ fmData.idCard }}"
placeholder="请输入"
placeholder-class="z-ph"
bindinput="ownerIdCardSync"
cursor-spacing="14"
maxlength="100"
bindblur="handleValidBlur" />
</view>
</view>
</view>
<!-- 联系电话 -->
<view class="item">
<view class="field">
<view class="field-text">联系电话</view>
</view>
<view class="value">
<view class="input">
<input type="number"
value="{{ fmData.mobile ? fmData.mobile : '' }}"
placeholder="请输入"
placeholder-class="z-ph"
bindinput="ownerPhoneSync"
cursor-spacing="14"
maxlength="100" />
</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="{{ fmData.remark && fmData.remark != 'null' ? fmData.remark : '' }}"
placeholder="请输入"
placeholder-class="z-ph"
bindinput="remarkSync"
cursor-spacing="14"
maxlength="100" />
</view>
</view>
</view> -->
</view>
</view>
<view class="operate">
<view class="btn" style="opacity:1;" bind:tap="editSubmit">确认修改</view>
</view>
</view>
</view>

1
subpages/family/pages/editHouseInfo/editHouseInfo.wxss

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

405
subpages/family/pages/familyInfo/familyInfo.js

@ -0,0 +1,405 @@
import {
addFamilyMember,
updateFamilyMember,
getFamilyMember,
householderRelation
} from '../../utils/api.js'
import validate from "../../utils/validate/index.js";
Page({
/**
* 页面的初始数据
*/
data: {
submitBtnIsAllowed: false,
isShowDialog: false,
pageType: null, // add 新增 edit 编辑 look 查看
fmData: {
userName: '',
idCard: '',
gender: '',
birthday: '',
mobile: '',
nationValue: '',
nation: '',
householdRegisterName: "",
relation: "",
outLiveAddressName: "",
outLiveAddressDetail: "",
},
nationList: [],
houseRelationList: []
},
/**
* 生命周期函数--监听页面加载
*/
async onLoad (options) {
wx.showLoading({
title: "加载中",
mask: true,
});
let idCard = options.idCard
this.setData({
pageType:options.pageType
})
if(options.pageType !== 'add'){
await this.getMemberInfo(idCard)
}else{
this.setData({
'fmData.unitId':options.id
})
}
await this.householderRelationFun()
wx.hideLoading()
},
// 获取成员详情信息
async getMemberInfo(idCard){
const res = await getFamilyMember({idCard:idCard})
if(res.msg === 'success' && res.code === 0){
if (res.data) {
this.setData({
'fmData':res.data,
})
if (idCard) {
this.handleValidBlur('',idCard)
}
} else {
wx.showToast({
title: '个人信息为空',
icon: 'none',
duration: 2500
})
}
}
},
// 获取与户主关系
async householderRelationFun(){
const res = await householderRelation()
if(res.msg === 'success' && res.code === 0){
this.setData({
'houseRelationList':res.data,
})
}
},
nameSync(e){
this.setData({
'fmData.userName' : e.detail.value
})
},
idCardSync(e){
this.setData({
'fmData.idCard' : e.detail.value
})
},
mobileSync(e){
this.setData({
'fmData.mobile' : e.detail.value
})
},
nationSync(e){
this.setData({
'fmData.nation' : e.detail.value
})
},
nationSyncPicker(e){
this.setData({
'fmData.nationValue' : this.data.nationList[e.detail.value].dictValue,
'fmData.nation' : this.data.nationList[e.detail.value].dictName
})
},
houseSyncPicker(e){
this.setData({
'fmData.houseRelation' : this.data.houseRelationList[e.detail.value].dictValue,
'fmData.relation' : this.data.houseRelationList[e.detail.value].dictName
})
},
householdRegisterSync(e){
this.setData({
'fmData.householdRegisterName' : e.detail.value
})
},
outLiveAddressSync(e){
this.setData({
'fmData.outLiveAddressName' : e.detail.value
})
},
addressSync(e){
this.setData({
'fmData.outLiveAddressDetail' : e.detail.value
})
},
handleValidBlur (e,val) {
var fmData = this.data.fmData;
var right = this.identityCodeValid(val ? val : e.detail.value);
if (right) {
fmData.birthday = this.getBirthday(this.data.fmData.idCard);
fmData.gender = this.getGender(this.data.fmData.idCard);
this.setData({ fmData });
}else {
fmData.idCard = '';
this.setData({ fmData });
wx.showToast({
title: '身份证号不正确,请重新输入',
icon: "none",
duration: 1500,
});
}
},
// 校验身份证是否正确
identityCodeValid (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)
// ISO 7064:1983.MOD 11-2
// 判断最后一位校验码是否正确
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]
// 格式的正则
// 正则思路
/*
第一位不可能是0
第二位到第六位可以是0-9
第七位到第十位是年份所以七八位为19或者20
十一位和十二位是月份这两位是01-12之间的数值
十三位和十四位是日期是从01-31之间的数值
十五十六十七都是数字0-9
十八位可能是数字0-9也可能是X
*/
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;
},
getGender (psidno) {
var num = psidno.charAt(16);
if (num % 2 == 0) {
return '女';
}else {
return '男';
}
},
// 编辑按钮点击事件
editTap () {
if (this.data.fmData.idCard) {
this.handleValidBlur('',this.data.fmData.idCard)
}
this.setData({
pageType: 'edit'
})
},
// 取消编辑
closeEditTap () {
this.setData({
pageType: 'look'
})
},
// 注册
async submit() {
if (!this.computeSubmitBtnIsAllowed(false)) return;
const { fmData } = this.data;
if (fmData.gender === '男') {
fmData.gender = '1'
} else if (fmData.gender === '女') {
fmData.gender = '0'
}
this.setData({ fmData })
wx.showLoading({
title: "提交中",
mask: true,
});
const res = await addFamilyMember({...fmData})
wx.hideLoading();
if (res.msg === "success" && res.code === 0) {
wx.showToast({
title: "提交成功",
duration: 2000,
});
setTimeout(function () {
wx.navigateBack()
}, 1000)
// wxRedirectTo("../index", {});
}
},
// 修改提交
async editSubmit () {
if (!this.computeSubmitBtnIsAllowed(false)) return;
const { fmData } = this.data;
if (fmData.gender === '男') {
fmData.gender = '1'
} else if (fmData.gender === '女') {
fmData.gender = '0'
}
this.setData({ fmData })
wx.showLoading({
title: "提交中",
mask: true,
});
const res = await updateFamilyMember({...fmData})
wx.hideLoading();
if (res.msg === "success" && res.code === 0) {
wx.showToast({
title: "提交成功",
duration: 2000,
});
setTimeout(function () {
wx.navigateBack()
}, 1000)
}
},
// 更新data数据后需主动触发
$afterUpdateData() {
this.computeSubmitBtnIsAllowed();
},
// 校验
computeSubmitBtnIsAllowed(isQuiet = true) {
const { fmData } = this.data,
vlt = validate(fmData, {
// surname: [
// {
// rule: "required",
// message: "请先输入成员【姓】",
// },
// ],
userName: [
{
rule: "required",
message: "请先输入成员【姓名】",
},
],
idCard: [
{
rule: "required",
message: "请先输入成员【身份证号】",
},
],
mobile: [
{
rule: "required",
message: "请先输入成员【手机号】",
},
{
rule: "mobile",
message: "【手机号】格式不正确",
},
]
});
if (!vlt.valid) {
if (!isQuiet) {
wx.showToast({
title: vlt.error,
icon: "none",
duration: 1500,
});
}
this.setData({
submitBtnIsAllowed: false,
});
return false;
} else {
this.setData({
submitBtnIsAllowed: true,
});
return true;
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

4
subpages/family/pages/familyInfo/familyInfo.json

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "基本信息",
"usingComponents": {}
}

263
subpages/family/pages/familyInfo/familyInfo.wxml

@ -0,0 +1,263 @@
<view class="g-bd">
<view class="m-fm">
<view class="fm">
<view class="fm-title">基本信息</view>
<view class="item-list">
<view wx:if="{{pageType === 'add' || pageType === 'edit'}}">
<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.userName }}" 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="idcard" value="{{ fmData.idCard }}" placeholder="请输入上报人身份证号" placeholder-class="z-ph" bindinput="idCardSync" cursor-spacing="14" maxlength="18" 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.gender == '0' ? '女' : fmData.gender == '1' ? '男' : fmData.gender}}</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="number" value="{{ fmData.mobile }}" placeholder="请输入联系电话" placeholder-class="z-ph" data-fm="fmData" data-name="mobile" bindinput="mobileSync" cursor-spacing="14" maxlength="11" />
</view>
</view>
</view>
</view>
<view wx:if="{{pageType === 'look'}}">
<!-- 姓名 -->
<view class="item">
<view class="field">
<view class="must">*</view>
<view class="field-text">姓名</view>
</view>
<view class="value">
<view class="input">{{fmData.userName}}</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.idCard}}</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.gender == '0' ? '女' : fmData.gender == '1' ? '男' : fmData.gender}}
</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 ? 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">{{fmData.mobile ? fmData.mobile : ''}}</view>
</view>
</view>
</view>
</view>
</view>
<view class="fm">
<view class="item-list">
<view wx:if="{{pageType === 'add' || pageType === 'edit'}}">
<view class="item" style="border-top: 0rpx">
<view class="field">
<view class="field-text">民族</view>
</view>
<view class="value">
<view class="input">
<input type="text" value="{{ fmData.nation }}" placeholder="请输入民族"
bindinput="nationSync"
placeholder-class="z-ph" data-fm="fmData" data-name="nation" cursor-spacing="14" maxlength="100" />
</view>
</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="{{ fmData.householdRegisterName }}" placeholder="xx省x市x区(县)x街道" placeholder-class="z-ph" bindinput="householdRegisterSync" cursor-spacing="14" maxlength="100" />
</view>
</view>
</view>
<view class="item">
<view class="field">
<view class="field-text">与户主关系</view>
</view>
<view class="value">
<picker class="picker" range="{{houseRelationList}}" range-key="dictName" bindchange="houseSyncPicker">
<view class="picker-text" wx:if="{{fmData.relation}}">{{fmData.relation}}</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="{{ fmData.outLiveAddressName }}" placeholder="xx省x市x区(县)x街道" placeholder-class="z-ph" bindinput="outLiveAddressSync" cursor-spacing="14" maxlength="100" />
</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="{{ fmData.outLiveAddressDetail }}" placeholder="xx小区(号)x号楼x单元x户" placeholder-class="z-ph" bindinput="addressSync" cursor-spacing="14" maxlength="100" />
</view>
</view>
</view>
</view>
<view wx:if="{{pageType === 'look'}}">
<!-- 民族 -->
<view class="item">
<view class="field">
<view class="field-text">民族</view>
</view>
<view class="value">
<view class="input">{{fmData.nation ? fmData.nation : ''}}</view>
</view>
</view>
<!-- 户籍地 -->
<view class="item">
<view class="field">
<view class="field-text">户籍地</view>
</view>
<view class="value">
<view class="input">{{fmData.householdRegisterName ? fmData.householdRegisterName : ''}}</view>
</view>
</view>
<!-- 与户主关系 -->
<view class="item">
<view class="field">
<view class="field-text">与户主关系</view>
</view>
<view class="value">
<view class="input">{{fmData.relation ? fmData.relation : ''}}</view>
</view>
</view>
<!-- 现居住地 -->
<view class="item">
<view class="field">
<view class="field-text">现居住地</view>
</view>
<view class="value">
<view class="input">{{fmData.outLiveAddressName ? fmData.outLiveAddressName : ''}}</view>
</view>
</view>
<!-- 详细地址 -->
<view class="item">
<view class="field">
<view class="field-text">详细地址</view>
</view>
<view class="value">
<view class="input">{{fmData.outLiveAddressDetail ? fmData.outLiveAddressDetail : ''}}</view>
</view>
</view>
</view>
</view>
</view>
<view class="operate" wx:if="{{pageType === 'add'}}">
<view class="btn" style="opacity: 1;" bind:tap="submit">确认提交</view>
</view>
<view class="edit" wx:if="{{pageType === 'look'}}">
<view class="editbtn" bindtap="editTap">编辑</view>
</view>
<view class="edit-two" wx:if="{{pageType === 'edit'}}">
<view class="editbtn" bindtap="closeEditTap">取消编辑</view>
<view class="btn {{ submitBtnIsAllowed ? '' : 'z-disabled'}} right" bindtap="editSubmit">
提交
</view>
</view>
</view>
</view>

16
subpages/family/pages/familyInfo/familyInfo.wxss

@ -0,0 +1,16 @@
@import '../../wxss/familyInfo.wxss';
.editbtn{
margin:100rpx auto;
width:240rpx;
height:80rpx;
line-height:80rpx;
border-radius:40rpx;
text-align:center;
font-size:32rpx;
font-family:Source Han Serif SC;
font-weight:400;
color:#fff;
background-color: #0399d8;
}

206
subpages/family/pages/index/index.js

@ -0,0 +1,206 @@
import {
getHouseInfo
} from '../../utils/api.js'
Page({
/**
* 页面的初始数据
*/
data: {
familyInfo:null,
showQr: true,
memberList:[],
roomCode:null,
selectedTabBar:"resiNew",
loadMoreVisible:false,
keyWord:'',//房屋搜索字段
houseInfo:[],
houseFlag:'1'
},
/**
* 生命周期函数--监听页面加载
*/
async onLoad(options) {
wx.showLoading({
title: "加载中",
mask: true,
});
this.setData({
roomCode : options.roomCode
})
// this.setData({
// roomCode:'3702110100420037200006'
// })
wx.setStorage({
key: 'roomCode',
data: this.data.roomCode
})
await this.getInfo(this.data.roomCode)
wx.hideLoading()
},
/**
* 生命周期函数--监听页面显示
*/
async onShow() {
wx.showLoading({
title: "加载中",
mask: true,
});
let roomCode = wx.getStorageSync('roomCode')
this.setData({
roomCode : roomCode
})
await this.getInfo(this.data.roomCode)
wx.hideLoading()
},
// 获取房屋信息
async getInfo(code){
const res = await getHouseInfo({roomCode:code})
if(res.msg === 'success' && res.code === 0){
this.setData({
'familyInfo':res.data,
})
}
},
// 跳转新增页面
handleTo(){
if(this.data.selectedTabBar=='resiNew'){
wx.navigateTo({
url: '/subpages/family/pages/familyInfo/familyInfo?pageType=add&id='+ this.data.familyInfo.id
})
}else if(this.data.selectedTabBar=='housePrice'){
wx.navigateTo({
url: '/subpages/family/pages/addHouse/addHouse?name=卖房',
})
}else if(this.data.selectedTabBar=='groupPrice'){
wx.navigateTo({
url: '/subpages/family/pages/addGroupBuyPublish/addGroupBuyPublish',
})
}else{
}
},
chooseTabBar(e) {
this.data.pageNo = 1
this.data.pageSize = 10
if (e.currentTarget.dataset.type === 'resiNew') {
// this.getresiNewList()
} else if (e.currentTarget.dataset.type === 'housePrice') {
this.data.pageNo = 1
this.data.pageSize = 10
// this.getHousesalerentinfo()
} else if (e.currentTarget.dataset.type === 'groupPrice') {
}else if (e.currentTarget.dataset.type === 'integral'){
// this.getgroupPriceList()
wx.showLoading({
title: "加载中",
mask: true,
});
this.navigateToIntegralCentre()
}
this.setData({
selectedTabBar: e.currentTarget.dataset.type,
})
console.log(this.data.selectedTabBar);
},
handleActiveHouse(e){
this.setData({
houseFlag:e.currentTarget.dataset.status,
loadMoreVisible: false
})
this.getHousesalerentinfo()
},
handelKeyword(e){
this.setData({
keyWord:e.detail.value
})
this.getHousesalerentinfo()
},
navigateToIntegralCentre() {
wx.navigateTo({
url:'/subpages/pointManagement/pages/pointList/pointList'
})
wx.hideLoading()
},
getHousesalerentinfo(){
let parmas = {
pageNum:this.data.pageNo,
pageSize:this.data.pageSize,
houseStatus:this.data.houseFlag,
search:this.data.keyWord
}
wx.showLoading({
title: '加载中',
})
api
.getHousesalerentinfo(parmas)
.then((res) => {
console.log('房屋列表', res)
for(let i in res.data.list){
res.data.list[i].createdData = res.data.list[i].createdData.substr(0,10)
}
this.setData({
houseInfo:res.data.list,
})
})
.catch((err) => {
console.log(err)
})
wx.hideLoading()
},
// 跳转查看页面
toFamilyInfo(e){
wx.navigateTo({
url: '/subpages/family/pages/familyInfo/familyInfo?pageType=look&idCard='+ e.currentTarget.dataset.id
})
},
// 取消编辑
cancel() {
this.setData({
showQr: true,
});
},
// 点击保存二维码
comfirmSave() {
wx.downloadFile({
url: this.data.familyInfo.maUrl,
success: function (res) {
let imageFilePath = res.tempFilePath;
wx.saveImageToPhotosAlbum({
filePath: imageFilePath,
success: function (data) {
wx.showToast({
title: '保存成功',
icon: 'none',
duration: 1500
});
},
fail: function (res) {
wx.showToast({
title: '保存失败',
icon: 'none',
duration: 1500
})
}
})
},
fail: (err) => {
wx.showToast({
title: '下载失败',
icon: 'none',
duration: 1500
})
}
})
},
handlePreview() {
wx.navigateTo({
url: `/subpages/family/pages/editHouseInfo/editHouseInfo?roomCode=`+this.data.roomCode
})
},
})

4
subpages/family/pages/index/index.json

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "我的e家",
"usingComponents": {}
}

126
subpages/family/pages/index/index.wxml

@ -0,0 +1,126 @@
<view class="f-container">
<!-- wx:if="{{familyInfo.roomCode}}" 恢复-->
<block >
<view class="f-top">
<view class="f-card">
<view class="flex-view">
<view class="card-left">
<view class="card-title">{{ familyInfo.plotName }} - {{familyInfo.buildingName}} - {{familyInfo.unit}} - {{familyInfo.roomNo}}</view>
<!-- <view wx:if="{{familyInfo.roomCodeShow.length <= 24}}" class="card-num">
<text>No.{{ familyInfo.roomCodeShow }}</text> -->
<!-- <text >No.6666666666666666666666</text> -->
<!-- <image /> -->
<!-- </view> -->
</view>
<view class="card-right">
<view class="card-qr {{ familyInfo.roomCodeShow.length > 24 && 'card-qr-long'}}" bind:tap="handlePreview">
<image mode="widthFix" src="../../images/edit_info.png" />
</view>
</view>
</view>
<!-- <view wx:if="{{familyInfo.roomCodeShow.length > 24}}" class="card-num mt16">
<text>No.{{ familyInfo.roomCodeShow }}</text> -->
<!-- <text >No.666666666666666666666666666666666666</text> -->
<!-- <image /> -->
<!-- </view> -->
</view>
</view>
<view class="f-wr">
<view class="tab-bar">
<view class="type {{selectedTabBar === 'resiNew' ? 'selected-resiNew' : ''}}" data-type="resiNew" hover-class="hover-tabbar" hover-stay-time="300" bindtap="chooseTabBar">
成员新了
</view>
<view class="type {{selectedTabBar === 'housePrice' ? 'selected-housePrice' : ''}}" data-type="housePrice" hover-class="hover-tabbar" hover-stay-time="300" bindtap="chooseTabBar">
房价涨了
</view>
<view class="type {{selectedTabBar === 'groupPrice' ? 'selected-groupPrice' : ''}}" data-type="groupPrice" hover-class="hover-tabbar" hover-stay-time="300" bindtap="chooseTabBar">
团购火了
</view>
<view class="type {{selectedTabBar === 'integral' ? 'selected-integral' : ''}}" data-type="integral" hover-class="hover-tabbar" hover-stay-time="300" bindtap="chooseTabBar">
积分多了
</view>
<view class="select-bar {{selectedTabBar === 'resiNew' ? 'selected-resiNew' : selectedTabBar === 'housePrice' ? 'selected-housePrice' : selectedTabBar === 'groupPrice' ? 'selected-groupPrice' :selectedTabBar === 'integral' ? 'selected-integral':''}}"></view>
</view>
<!-- 成员新了 -->
<view class="resiNew-list" wx:if="{{selectedTabBar === 'resiNew'}}">
<view class="f-table mt40" wx:if="{{familyInfo.roomCodeShow}}">
<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>
<block wx:if="{{familyInfo.members.length > 0}}">
<view class="table-cell" wx:for="{{familyInfo.members}}" wx:key="userId" class="table-cell">
<view class="table-col">{{ item.userName }}</view>
<view class="table-col">{{ item.relation }}</view>
<!-- -->
<view class="table-col">{{ item.mobile }}</view>
<view class="table-col table-col-4" wx:if="{{item.auditType == '0' && item.auditState == '0'}}">待审核</view>
<view class="table-col table-col-4" data-type="edit" data-id="{{item.idCard}}" bind:tap="toFamilyInfo" wx:else>查看</view>
</view>
</block>
<view wx:else class="no-data">暂无成员</view>
</view>
<!-- <view class="f-btns" data-type="add" data-id="{{ info.icResiUserId }}" bind:tap="handleTo">
<view class="f-btns-icon">+</view>
<view class="f-btns-label">添加家庭成员</view>
</view> -->
<view class="no-data" wx:else>暂无家庭信息</view>
</view>
<!-- 房价涨了 -->
<view class="housePrice-list" wx:if="{{selectedTabBar === 'housePrice'}}">
<view class="housePrice-hader">
<view class="{{houseFlag==='1'?'active_btn':''}}" data-status="1" bindtap="handleActiveHouse"> 我要买房</view>
<view style="margin-left:20rpx" class="{{houseFlag === '2'?'active_btn':''}}" data-status="2" bindtap="handleActiveHouse"> 我要租房 </view>
</view>
<view class="search-box">
<input type="text" bindblur="handelKeyword" value="{{keyWord}}" class="search-input" placeholder="请输入搜索关键字" />
<image class="search-img" bindtap="handelKeyword" src="../../../../images/search.png" />
</view>
<block wx:if="{{houseInfo.length!=0}}">
<view class="housePrice-content" bindtap="handleClickHouse" data-obj="{{item}}"
wx:for="{{houseInfo}}" wx:key="index" >
<view class="housePrice-header">
<image src="../../images/user.png"></image>
<view class="housePrice-header-name">
<view class="housePrice-header-top">
<text class="address">{{item.address}}</text>
<text class="tag">{{houseFlag == '1'?'在售':'在租'}}</text>
<text class="date">{{item.createdData}}</text>
</view>
<view class="price">{{item.price}}</view>
</view>
</view>
<view class="housePrice-body"> {{item.description}}</view>
<view class="housePrice-images">
<image wx:for="{{item.photoList}}" wx:key="i" wx:for-item="img" src="{{img}}"></image>
</view>
</view>
</block>
<view class="no-data" wx:else>暂无房屋信息</view>
<view style="display: {{loadMoreVisible ? 'flex' : 'none'}}" class="nomore-tip">没有更多了~</view>
</view>
<!-- 团购火了 -->
<view class="groupPrice-list" wx:if="{{selectedTabBar === 'groupPrice'}}">
<view class="groupPrice-card" bindtap="handleClickGroupPrice" data-id="'12345'">
<image src="../../../../images/relieve.png"></image>
<view class="right">
<view class="title">【社区送达】 护手霜</view>
<view style="color: #999;font-size: 26rpx;"> <text style="color:#cf4133;font-size: 28rpx;">已截团</text > 2023-04-23 15:10:22</view>
</view>
</view>
</view>
<!-- <view class="f-btns" data-type="add" data-id="{{ info.icResiUserId }}" bind:tap="handleTo">
<view class="f-btns-icon">+</view>
<view class="f-btns-label">添加家庭成员</view>
</view> -->
</view>
</block>
<image src="../../../../images/family/plus.png" class="img_btn" bind:tap="handleTo"></image>
<!-- <view wx:else class="no-data">暂无家庭信息</view> 恢复-->
</view>

21
subpages/family/pages/index/index.wxss

@ -0,0 +1,21 @@
@import '../../wxss/family.wxss';
@import '../../wxss/c-popForm.wxss';
.card-qr {
width: 30rpx;
height: 30rpx;
}
.card-qr image {
display: block;
width: 100%;
height: 100%;
}
.title-label {flex:1}
.title-wr .flex{flex:1}
.f-top .f-card{
height:auto
}
.f-top .f-card .card-title{
height:auto
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save