Browse Source

志愿者去哪儿新增我要申请功能;志愿者注册页面顶部背景更换;

feature/optimise
ZhaoTongYao 5 years ago
parent
commit
1b46fe6472
  1. 5
      components/DateTimePicker/index.js
  2. 8
      project.config.json
  3. 65
      subpages/heart/components/notice/notice.js
  4. 6
      subpages/heart/components/notice/notice.json
  5. 16
      subpages/heart/components/notice/notice.wxml
  6. 84
      subpages/heart/components/notice/notice.wxss
  7. BIN
      subpages/heart/images/goback.png
  8. 56
      subpages/heart/pages/myApply/myApply.js
  9. 3
      subpages/heart/pages/myApply/myApply.json
  10. 5
      subpages/heart/pages/myApply/myApply.wxml
  11. 9
      subpages/heart/pages/myApply/myApply.wxss
  12. 15
      subpages/heart/pages/myApplyDetail/myApplyDetail.js
  13. 26
      subpages/heart/pages/myApplyDetail/myApplyDetail.wxml
  14. 2
      subpages/heart/pages/myApplyDetail/myApplyDetail.wxss
  15. 29
      subpages/heart/pages/myApplyList/myApplyList.js
  16. 5
      subpages/heart/pages/myApplyList/myApplyList.json
  17. 9
      subpages/heart/pages/myApplyList/myApplyList.wxss
  18. 23
      subpages/heart/pages/volunteer/volunteer.js
  19. 1
      subpages/heart/pages/volunteer/volunteer.json
  20. 20
      subpages/heart/pages/volunteer/volunteer.wxml
  21. 66
      subpages/heart/pages/volunteer/volunteer.wxss
  22. 11
      utils/api.js

5
components/DateTimePicker/index.js

@ -5,9 +5,12 @@ var months = [];
var days = [];
var hours = [];
var minutes = [];
for (var i = date.getFullYear(); i > (date.getFullYear() - 3); i--) {
for (var i = date.getFullYear(); i < (date.getFullYear() + 2); i++) {
years.push(i + "年");
}
// for (var i = date.getFullYear(); i > (date.getFullYear() - 3); i--) {
// years.push(i + "年");
// }
for (var i = 1; i <= 12; i++) {
months.push(i + "月");
}

8
project.config.json

@ -43,6 +43,8 @@
"hidedInDevtools": []
},
"scripts": {},
"simulatorType": "wechat",
"simulatorPluginLibVersion": {},
"condition": {
"plugin": {
"list": []
@ -117,12 +119,6 @@
"pathName": "subpages/heart/pages/leaderboardNew/leaderboardNew",
"query": "",
"scene": null
},
{
"name": "subpages/heart/pages/myApplyDetail/myApplyDetail",
"pathName": "subpages/heart/pages/myApplyDetail/myApplyDetail",
"query": "",
"scene": null
}
]
}

65
subpages/heart/components/notice/notice.js

@ -0,0 +1,65 @@
Component({
data: {
visible: false
},
properties: {
dialogVisible: {
type: Boolean,
value: false,
observer: function () {
this.setData({
visible: !this.data.visible
})
}
},
title: {
type: String,
value: ""
},
content: {
type: Array,
value: []
},
confirmText: {
type: String,
value: ""
},
cancelText: {
type: String,
value: ""
}
},
pageLifetimes: {
show () {
},
hide () {
}
},
lifetimes: {
attached () {
},
detached () {
}
},
methods: {
close () {
this.triggerEvent("close")
this.setData({
visible: false
})
},
confirm () {
this.triggerEvent("confirm")
this.setData({
visible: false
})
},
catchmove () {
}
}
})

6
subpages/heart/components/notice/notice.json

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"wux-icon": "../../../../dist/icon/index"
}
}

16
subpages/heart/components/notice/notice.wxml

@ -0,0 +1,16 @@
<cover-view class="notice" wx:if="{{visible}}" catchmove="catchmove">
<cover-view class="box">
<cover-view class="close">
<cover-image bindtap="close" src="../../images/delete.png" />
</cover-view>
<cover-view class="title">{{title}}</cover-view>
<cover-view class="content">
<cover-view wx:for="{{content}}" wx:key="index" wx:for-item="item" wx:for-index="index">{{item}}</cover-view>
</cover-view>
<cover-view wx:if="{{cancelText !== '' || confirmText !== ''}}" class="border"></cover-view>
<cover-view class="operation">
<cover-view wx:if="{{cancelText !== ''}}" class="cancel" bindtap="close">{{cancelText}}</cover-view>
<cover-view wx:if="{{confirmText !== ''}}" class="confirm" bindtap="confirm">{{confirmText}}</cover-view>
</cover-view>
</cover-view>
</cover-view>

84
subpages/heart/components/notice/notice.wxss

@ -0,0 +1,84 @@
.notice {
width: 100%;
height: 100vh;
position: fixed;
z-index: 100;
left: 0;
top: 0;
background: rgba(0,0,0, 0.4);
display: flex;
justify-content: center;
align-items: center;
}
.notice .box {
width: 490rpx;
background: #fff;
border-radius: 16rpx;
overflow: hidden;
padding: 0 20rpx;
position: relative;
}
.notice .box .close {
width:100%;
height: 60rpx;
display: flex;
justify-content: flex-end;
align-items: center;
}
.notice .box .close cover-image {
width: 40rpx;
height: 40rpx;
object-fit: cover;
}
.notice .box .title {
height: 60rpx;
line-height: 60rpx;
width: 100%;
text-align:center;
font-size: 36rpx;
color: #333;
margin-bottom: 23rpx;
}
.notice .box .content {
height: auto;
width: 100%;
padding-bottom: 35rpx;
}
.notice .box .content cover-view {
font-size: 30rpx;
line-height: 50rpx;
height: 50rpx;
width: 100%;
text-align: center;
color: #666;
}
.notice .box .border {
width: 100%;
height: 0;
border: 0.5rpx solid #eaeaea;
border-bottom: 1rpx solid transparent;
position: absolute;
left:0;
bottom: 105rpx;
}
.notice .box .operation {
width: calc(100% - 40rpx);
height: 75rpx;
padding: 15rpx 0;
display: flex;
justify-content: space-around;
align-items: center;
margin-left: 20rpx
}
.notice .box .operation cover-view {
flex: 1;
color: #999;
font-size: 36rpx;
width: 49%;
height: 100%;
line-height: 75rpx;
text-align:center;
}
.notice .box .operation .confirm{
color: #04BCA0;
}

BIN
subpages/heart/images/goback.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

56
subpages/heart/pages/myApply/myApply.js

@ -1,5 +1,6 @@
// subpages/heart/pages/myApply/myApply.js
const api = require("../../../../utils/api")
import { getTimestamp } from "../../../../utils/common"
Page({
@ -14,9 +15,10 @@ Page({
actAddress: '',
actStartTime: '', //起始时间
actEndTime: '', //结束时间
actPeopleNum: 0,
actPeopleNum: '',
actContacts: '',
actTel: ''
actTel: '',
dialogVisible: false, //提示框
},
curCode: '', //区分是start还是end
},
@ -94,7 +96,7 @@ Page({
},
onInputPeopleNum (e) {
this.setData({
'dataForm.actPeopleNum': parseInt(e.detail.value)
'dataForm.actPeopleNum': e.detail.value
})
},
onInputContacts (e) {
@ -121,6 +123,10 @@ Page({
showPicker: false,
'dataForm.actStartTime': e.detail.time
})
if (this.data.dataForm.actStartTime < getTimestamp()) {
this.showToast("开始时间应该大于当前时间")
}
} else if (this.data.curCode == 'end') {
this.setData({
showPicker: false,
@ -128,11 +134,7 @@ Page({
})
if (this.data.dataForm.actStartTime > this.data.dataForm.actEndTime) {
wx.showToast({
title: '结束时间应该大于起始时间',
icon: 'none',
duration: 2000
})
this.showToast('结束时间应该大于起始时间')
}
}
},
@ -163,14 +165,26 @@ Page({
this.showToast("请填写开始时间")
return false
}
if (this.data.dataForm.actStartTime < getTimestamp()) {
this.showToast("开始时间应该大于当前时间")
return false
}
if (!this.data.dataForm.actEndTime) {
this.showToast("请填写结束时间")
return false
}
if (this.data.dataForm.actStartTime > this.data.dataForm.actEndTime) {
this.showToast('结束时间应该大于起始时间')
return false
}
if (!this.data.dataForm.actPeopleNum) {
this.showToast("请填写需要人数")
return false
}
if (!(parseInt(this.data.dataForm.actPeopleNum) > 0)) {
this.showToast("请填写正确的人数")
return false
}
if (!this.data.dataForm.actContacts) {
this.showToast("请填写联系人")
return false
@ -179,11 +193,18 @@ Page({
this.showToast("请填写联系人电话")
return false
}
this.setData({
'dataForm.actPeopleNum': parseInt(this.data.dataForm.actPeopleNum)
})
const para = { ...this.data.dataForm }
console.log('submit apply', para)
// api.applyAct(para).then(res => {
// console.log(res.data)
// })
api.applyAct(para).then(res => {
if(res.code == '' && res.msg == 'success') {
this.setData({
dialogVisible: !this.data.dialogVisible
})
}
})
},
//简化提示
@ -200,4 +221,17 @@ Page({
url: "/subpages/heart/pages/myApplyList/myApplyList"
})
},
// 关闭弹框
closeDialog () {
wx.navigateTo({
url: "/pages/heartNew/heartNew"
})
},
// 弹框确定按钮
confirmDialog () {
wx.navigateTo({
url: "/pages/heartNew/heartNew"
})
}
})

3
subpages/heart/pages/myApply/myApply.json

@ -1,6 +1,7 @@
{
"navigationBarTitleText": "我要申请",
"usingComponents": {
"date-time-picker": "../../../../components/DateTimePicker/index"
"date-time-picker": "../../../../components/DateTimePicker/index",
"notice": "../../components/notice/notice"
}
}

5
subpages/heart/pages/myApply/myApply.wxml

@ -43,6 +43,7 @@
</view>
</view>
<view wx:if="{{showPicker}}">
<date-time-picker bind:cancel="pickerCancel" bind:confirm="pickerConfirm" init-time="{{typeTime.start}}"></date-time-picker>
<date-time-picker bind:cancel="pickerCancel" bind:confirm="pickerConfirm" init-time="{{dataForm.actStartTime}}"></date-time-picker>
</view>
<notice bind:close="closeDialog" bind:confirm="confirmDialog" dialogVisible="{{dialogVisible}}" title="待审核" content="{{['工作人员会尽快审核您的活动申请', '请耐心等待']}}" confirmText="知道了"></notice>

9
subpages/heart/pages/myApply/myApply.wxss

@ -1,16 +1,17 @@
/* subpages/heart/pages/myApply/myApply.wxss */
page {
width: 100%;
height: auto;
overflow-y: auto;
background: #f7f7f7;
}
.apply-list {
position: relative;
overflow: hidden;
}
.apply-list .my-apply-img {
position: absolute;
right: -10rpx;
top: 16rpx;
}
.apply-list .my-apply-img image {
width: 208rpx;
@ -47,11 +48,11 @@ page {
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 500;
color: #999999;
color: #666666;
}
.apply-list .apply-item .text-content {
font-weight: 400;
height: 88rpx;
color: #666666;
}
.submit {
width: 592rpx;

15
subpages/heart/pages/myApplyDetail/myApplyDetail.js

@ -8,6 +8,7 @@ Page({
*/
data: {
applyId: '',
applyDetails: {}
},
/**
@ -17,6 +18,7 @@ Page({
this.setData({
applyId: options.id
})
this.getApplyDetail()
},
/**
@ -64,13 +66,16 @@ Page({
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
// onShareAppMessage: function () {
},
// },
getApplyDetail () {
// api.applyActDetail(this.data.applyId).then(res => {
// console.log(res.data)
// })
api.applyActDetail(this.data.applyId).then(res => {
// console.log(res.data)
this.setData({
applyDetails: res.data
})
})
},
})

26
subpages/heart/pages/myApplyDetail/myApplyDetail.wxml

@ -2,45 +2,39 @@
<view class="my-apply">
<view class="apply-detail">
<view class="apply-item">
<view class="item-title">志愿服务标题</view>
<view class="item-content">组织环保志愿服务队</view>
<view class="item-title">活动标题</view>
<view class="item-content">{{applyDetails.actTitle}}</view>
</view>
<view class="apply-item">
<view class="item-title">活动内容</view>
<view class="item-content">
1.卫生大扫除、清洗护城河、清洗乱涂画和“小广告”、清理卫生死角、捡拾垃圾 (果皮、纸屑)等活动
</view>
<view class="item-content">
2.组织志愿者植树、美化绿化小区
</view>
<view class="item-content">
3.计划生育志愿服务 组织开展自我教育
{{applyDetails.actContent}}
</view>
</view>
<view class="apply-item">
<view class="item-title">活动地点</view>
<view class="item-content">平阴县锦水街道</view>
<view class="item-content">{{applyDetails.actAddress}}</view>
</view>
<view class="apply-item">
<view class="item-title">活动时间</view>
<view class="item-content">2020-10-22 13:30 至 2020-10-24 12:30</view>
<view class="item-content">{{applyDetails.actStartTime}} 至 {{applyDetails.actEndTime}}</view>
</view>
<view class="apply-item">
<view class="item-title">活动人数</view>
<view class="item-content">28</view>
<view class="item-content">{{applyDetails.actPeopleNum}}</view>
</view>
<view class="apply-item">
<view class="item-title">活动联系人</view>
<view class="item-content">王宇</view>
<view class="item-content">{{applyDetails.actContacts}}</view>
</view>
<view class="apply-item">
<view class="item-title">联系人电话</view>
<view class="item-content">18888888888</view>
<view class="item-content">{{applyDetails.actTel}}</view>
</view>
<view class="apply-item">
<view class="item-title">审核状态</view>
<view class="item-content">未通过</view>
<view class="item-content">原因:不符合要求</view>
<view class="item-content">{{applyDetails.actStatus}}</view>
<view class="item-content" wx:if="{{applyDetails.noPassReason}}">原因:{{applyDetails.noPassReason}}</view>
</view>
</view>
</view>

2
subpages/heart/pages/myApplyDetail/myApplyDetail.wxss

@ -6,7 +6,7 @@ page {
background: #f7f7f7;
}
.apply-detail {
margin-bottom: 60rpx;
}
.apply-detail .apply-item {
width: 100%;

29
subpages/heart/pages/myApplyList/myApplyList.js

@ -1,4 +1,5 @@
// subpages/heart/pages/myApplyList/myApplyList.js
const { checkWxUnionId } = require("../../../../utils/api")
const api = require("../../../../utils/api")
Page({
@ -12,33 +13,14 @@ Page({
nodata: false,
loadMoreType: 'none',
loadMoreVisible: false,
applylist: [
{
"id": "73290",
"actTitle": "洁美家园行动 组织开展以改善社区环境卫生",
"createdTime": "2020-10-22 15:20:00",
"actStatus": "0"
},
{
"id": "73291",
"actTitle": "组织开展以改善社区环境卫生为主内容的志愿活动,集中整治脏、乱、差现象",
"createdTime": "2020-10-22 15:20:00",
"actStatus": "1"
},
{
"id": "73292",
"actTitle": "便民服务中心志愿者",
"createdTime": "2020-10-22 15:20:00",
"actStatus": "2"
}
]
applylist: []
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
// this.getApplyList()
this.getApplyList()
},
/**
@ -128,6 +110,9 @@ Page({
},
//跳转到申请信息详情
toApplyDetail (e) {
console.log('toApplyDetail', e.currentTarget.dataset.id)
console.log('跳转申请详情', e.currentTarget.dataset.id)
wx.navigateTo({
url: `/subpages/heart/pages/myApplyDetail/myApplyDetail?id=${e.currentTarget.dataset.id}`
})
}
})

5
subpages/heart/pages/myApplyList/myApplyList.json

@ -1,4 +1,7 @@
{
"navigationBarTitleText": "申请记录",
"usingComponents": {}
"usingComponents": {
"load-more": "/components/loadMore/loadMore",
"no-data": "/components/nodata/nodata"
}
}

9
subpages/heart/pages/myApplyList/myApplyList.wxss

@ -57,17 +57,24 @@ page {
border-radius: 1px;
margin: 28rpx 0rpx;
}
.apply-list .apply-item .item-time {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 400;
color: #666666;
}
.apply-list .apply-item .item-state {
margin: 26rpx 0rpx 28rpx;
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 400;
color: #666666;
}
.apply-list .apply-item .item-state .state-0 {
color: #FB9F00;
}
.apply-list .apply-item .item-state .state-1 {
color: #666666;
color: #28C896;
}
.apply-list .apply-item .item-state .state-2 {
color: #D80000;

23
subpages/heart/pages/volunteer/volunteer.js

@ -8,6 +8,9 @@ Page({
* 页面的初始数据 全部为必填项
*/
data: {
statusHeight: 0, // 自定义头部状态栏高度
navigationHeight: 0, // 自定义头部导航栏高度
getImgUrl: '', //后台配置背景
realName: "", //真实姓名
mobile: "", //手机号
identityNo: "", //身份证号码
@ -37,12 +40,23 @@ Page({
disabled:false
},
onLoad: function () {
this.setData({
statusHeight: app.globalData.deviceInfo.statusHeight,
navigationHeight: app.globalData.deviceInfo.navigationHeight
})
this.getImgUrl()
this.getPrepareComplete().then(() => {
this.getGridList()
})
this.checkWxUnionId()
this.getWxCode()
},
//返回上一级
goback () {
wx.navigateBack({
delta: 1
})
},
bindRealNameInput (e) {
this.setData({
realName: e.detail.value
@ -97,6 +111,15 @@ Page({
volunteerSignature: e.detail.value
})
},
// 获取配置图片
getImgUrl:function (){//0:咨询热线
let that = this
api.getImgUrl("4").then(function (res) {
that.setData({
getImgUrl: res.data[0]
})
})
},
// 查看用户是否完善个人信息
checkWxUnionId () {
api.checkWxUnionId().then(res => {

1
subpages/heart/pages/volunteer/volunteer.json

@ -1,5 +1,6 @@
{
"navigationBarTitleText": "志愿者认证",
"navigationStyle": "custom",
"usingComponents": {
"wux-dialog": "../../../../dist/dialog/index",
"coverview-dialog": "../../components/coverViewDialog/coverViewDialog",

20
subpages/heart/pages/volunteer/volunteer.wxml

@ -1,13 +1,25 @@
<wux-dialog id="wux-dialog" />
<view class="container">
<view class="header" style="height: {{statusHeight + navigationHeight}}px;">
<image class="header-bg" src="https://epdc-kongcun.elinkit.com.cn/epdcFile/M00/00/49/rBAB71-aUhaAXIyeAADY71bhqjs551.png" />
<view class="navigation" style="height: {{navigationHeight}}px; top: {{statusHeight}}px;">
<view class="goback" bindtap="goback">
<image src="../../images/goback.png" />
</view>
<view class="title" bindtap="goback">
<view class="title-right">志愿者去哪儿</view>
</view>
<!-- 志愿者去哪儿 -->
</view>
</view>
<view class="container" style="margin-top: {{statusHeight + navigationHeight}}px">
<view class="top-bg">
<image src="../../images/renzheng-bg.png" />
<image src="{{getImgUrl.imgUrl}}" />
</view>
<view class="position-absolute">
<!-- 基本信息 -->
<view class="basic-info">
<view class="info-box">
<view class="info-left header">
<view class="info-left header-title">
基本信息
</view>
<view class="clear"></view>
@ -93,7 +105,7 @@
<!-- 居住地址 -->
<view class="info magin-top">
<view class="info-box">
<view class="info-left header">
<view class="info-left header-title">
居住地址
</view>
<view class="clear"></view>

66
subpages/heart/pages/volunteer/volunteer.wxss

@ -2,23 +2,81 @@ page {
background: #f7f7f7;
}
.header {
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 999;
}
.header .header-bg {
width: 100%;
height: 100%;
position: absolute;
z-index: 10;
left: 0;
top: 0;
}
.header .navigation {
/* width: calc(100% - 46rpx);
margin-left: 46rpx; */
display: flex;
align-items: center;
/* justify-content: center; */
position: relative;
z-index: 100;
}
.header .navigation .goback {
width: 40rpx;
padding-left: 14rpx;
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
.header .navigation .goback image {
width: 16rpx;
height: 28rpx;
}
.header .navigation .title {
display: flex;
align-items: center;
/* justify-content: center; */
width: calc(100% - 46rpx);
margin-left: 46rpx;
color: rgba(255, 255, 255, 0.9);
font-size: 32rpx;
letter-spacing: 2rpx;
}
.header .navigation .title .title-right {
/* margin-right: 46rpx; */
}
.container {
width: 100%;
position: relative;
}
.top-bg {
width: 100%;
height: 354rpx;
height: 454rpx;
}
.top-bg image {
width: 100%;
height: 290rpx;
height: 460rpx;
}
.position-absolute {
position: absolute;
top: 225rpx;
top: 400rpx;
left: 20rpx;
right: 20rpx;
}
@ -281,7 +339,7 @@ textarea {
line-height: 62rpx;
}
.header {
.header-title {
color: #333;
font-size: 34rpx;
font-weight: bold;

11
utils/api.js

@ -51,6 +51,7 @@ module.exports = {
applyAct: applyAct,
applyRecord: applyRecord,
applyActDetail: applyActDetail,
getImgUrl: getImgUrl,
completeResidentInfoV2: completeResidentInfoV2,
completePartyInfoV2: completePartyInfoV2,
userPointsRankinglist:userPointsRankinglist,
@ -489,23 +490,27 @@ function getWxPhone ({ wxCode, encryptedData, iv }) {
// 志愿者去哪儿-我要申请
function applyAct (para) {
return fly.post("heart/applyAct", para)
return fly.post("heart/actApply/applyAct", para)
}
// 志愿者去哪儿-申请记录
function applyRecord ({
pageIndex,
pageSize
}) {
return fly.get("heart/applyRecord", {
return fly.get("heart/actApply/applyRecord", {
pageIndex,
pageSize
})
}
// 志愿者去哪儿-活动详情
function applyActDetail (id) {
return fly.get(`heart/applyActDetail/${id}`)
return fly.get(`heart/actApply/applyActDetail/${id}`)
}
// 获取配置图片
function getImgUrl (imgType) {
return fly.get(`imgConfig/getImgUrl/${imgType}`)
}
// *****************************爱心互助接口***************************end
// 获取默认网格信息

Loading…
Cancel
Save