lhl 3 years ago
parent
commit
04339ca251
60 changed files with 3295 additions and 2476 deletions
  1. 9 0
      api/index.js
  2. 110 0
      components/cascade.vue
  3. 3 3
      manifest.json
  4. 32 13
      pages.json
  5. 194 68
      pages/applic/aed.vue
  6. 120 45
      pages/applic/aid.vue
  7. 90 11
      pages/applic/contribution.vue
  8. 2 2
      pages/applic/donaSuccess.vue
  9. 2 2
      pages/applic/science.vue
  10. 1 1
      pages/applic/toknowledge.vue
  11. 7 4
      pages/applyHelp/index.vue
  12. 2 2
      pages/cart/cart.vue
  13. 279 528
      pages/cart/group.vue
  14. 9 8
      pages/cart/personal.vue
  15. 3 2
      pages/category/category.vue
  16. 84 8
      pages/form/applicationForm.vue
  17. 5 5
      pages/form/certificates.vue
  18. 442 371
      pages/form/donaSuccess.vue
  19. 1176 1001
      pages/form/tovolApply.vue
  20. 11 7
      pages/fu/axjz.vue
  21. 159 23
      pages/index/index.vue
  22. 109 0
      pages/index/joinus.vue
  23. 283 272
      pages/login/login.vue
  24. 11 11
      pages/share/card.vue
  25. 144 81
      pages/user/user.vue
  26. BIN
      static/icon/bm01.png
  27. BIN
      static/icon/bm02.png
  28. BIN
      static/icon/bm03.png
  29. BIN
      static/icon/dingwei.png
  30. BIN
      static/icon/erweima.jpg
  31. BIN
      static/icon/goto.png
  32. BIN
      static/icon/icon1.png
  33. BIN
      static/icon/icon2.png
  34. BIN
      static/icon/icon3.png
  35. BIN
      static/icon/icon4.png
  36. BIN
      static/icon/icon5.png
  37. BIN
      static/icon/img03.png
  38. BIN
      static/icon/img04.png
  39. BIN
      static/icon/u-1.png
  40. BIN
      static/icon/u-2.png
  41. BIN
      static/icon/u-3.png
  42. BIN
      static/icon/u-4.png
  43. BIN
      static/icon/u-5.png
  44. BIN
      static/img/erweima.jpg
  45. BIN
      static/img/graduation.png
  46. BIN
      static/img/group.png
  47. BIN
      static/img/jhz-bg.png
  48. BIN
      static/img/jiuzai.png
  49. BIN
      static/img/jkzs.jpg
  50. BIN
      static/img/join-banner.png
  51. BIN
      static/img/personal.png
  52. BIN
      static/img/top-bg.png
  53. BIN
      static/img/user-bg.png
  54. BIN
      static/img/zs.png
  55. BIN
      static/img/zs1.png
  56. BIN
      static/img/zyztc.png
  57. BIN
      static/tabBar/redkp-action.png
  58. BIN
      static/tabBar/redpk.png
  59. 4 4
      store/index.js
  60. 4 4
      store/model/info.js

+ 9 - 0
api/index.js

@@ -236,4 +236,13 @@ export function createOrder(data) {
 		method: 'post',
 		data
 	});
+}
+
+// 获取爱心捐款列表
+export function loveList(data) {
+	return request({
+		url: '/api/lave/lst',
+		method: 'get',
+		data: data
+	});
 }

+ 110 - 0
components/cascade.vue

@@ -0,0 +1,110 @@
+<template>
+	<picker @change="bindPickerChange" @columnchange="columnchange" :range="array" range-key="name" :value="value" mode="multiSelector">
+		<slot></slot>
+	</picker>
+</template>
+
+<script>
+	// import AllAddress from './data.js'
+	let selectVal = ['',''];
+	
+	export default {
+		data() {
+			return{
+				value: [0,0],
+				array: [],
+				index: 0,
+			}
+		},
+		props: {
+			allAddress:{
+				type: Array,
+				default: () => []
+			}
+		},
+		created() {
+			console.log(this.allAddress,'allAddress')
+			this.initSelect()
+		},
+		methods:{
+			// 初始化地址选项
+			initSelect() {
+				this.updateSourceDate() // 更新源数据
+				.updateAddressDate() // 更新结果数据
+				.$forceUpdate()  // 触发双向绑定
+			},
+			// 地址控件改变控件
+			columnchange(d) {
+				this.updateSelectIndex(d.detail.column, d.detail.value) // 更新选择索引
+				.updateSourceDate() // 更新源数据
+				.updateAddressDate() // 更新结果数据
+				.$forceUpdate()  // 触发双向绑定
+			},
+			
+			/**
+			 * 更新源数据
+			 * */
+			updateSourceDate() {
+				this.array = []
+				this.array[0] = this.allAddress.map(obj => {
+					return {
+						name: obj.name
+					}
+				})
+				this.array[1] = this.allAddress[this.value[0]].child.map(obj => {
+					return {
+						name: obj.name
+					}
+				})
+				// this.array[2] = AllAddress[this.value[0]].city[this.value[1]].area.map(obj => { 
+				// 	return {
+				// 		name: obj
+				// 	}
+				// })
+				return this
+			},
+			
+			/**
+			 * 更新索引
+			 * */
+			updateSelectIndex(column, value){
+				let arr = JSON.parse(JSON.stringify(this.value)) 
+				arr[column] = value
+				if(column === 0 ) {
+					arr[1] = 0
+					arr[2] = 0
+				}
+				if(column === 1 ) {
+					arr[2] = 0
+				}
+				this.value = arr
+				return this
+			},
+			
+			/**
+			 * 更新结果数据 
+			 * */
+			updateAddressDate() {
+				selectVal[0] = this.array[0][this.value[0]].name
+				selectVal[1] = this.array[1][this.value[1]].name 
+				// selectVal[2] = this.array[2][this.value[2]].name 
+				return this
+			},
+			
+			/**
+			 * 点击确定
+			 * */
+			bindPickerChange(e) {
+				this.$emit('change', {
+					index: this.value,
+					data: selectVal
+				})
+				return this
+			}
+			
+		}
+	}
+</script>
+
+<style>
+</style>

+ 3 - 3
manifest.json

@@ -1,5 +1,5 @@
 {
-    "name" : "洪湖市红十字会",
+    "name" : "长宁区红十字会",
     "appid" : "__UNI__F405D65",
     "description" : "",
     "versionName" : "1.0.0",
@@ -79,7 +79,7 @@
         "enable" : false
     },
     "h5" : {
-        "title" : "洪湖市红十字会",
+        "title" : "长宁区红十字会",
         "domain" : "admin.jzrc.org.cn",
         "router" : {
             "mode" : "hash",
@@ -88,7 +88,7 @@
         "devServer" : {
             "proxy" : {
                 "/api" : {
-                    "target" : "http://admin.jzrc.org.cn", //请求的目标域名
+                    "target" : "http://cnqadmin.igxys.com", //请求的目标域名
                     "changeOrigin" : true,
                     "secure" : false,
                     "pathRewrite" : {}

+ 32 - 13
pages.json

@@ -12,9 +12,22 @@
 					"titleNView": false
 				},
 				// #endif
-				"navigationBarTitleText": "洪湖市红十字会"
+				"navigationBarTitleText": "上海市长宁区红十字会"
 
 			}
+		},
+		{
+			"path": "pages/index/joinus",
+			"style": {
+				"navigationBarTitleText": "我要报名",
+				// #ifndef MP
+				"app-plus": {
+					"titleNView": false
+				}
+				// #endif
+				// "navigationBarBackgroundColor": "#FF727E",
+				// "navigationBarTextStyle":"white"
+			}
 		},
 		{
 			"path": "pages/applic/know",
@@ -39,7 +52,7 @@
 				// #endif
 				"navigationBarBackgroundColor": "#457DBF",
 				"navigationBarTextStyle": "white",
-				"navigationBarTitleText": "洪湖市红十字会安心捐赠"
+				"navigationBarTitleText": "长宁区红十字会安心捐赠"
 			}
 		},
 		{
@@ -916,7 +929,7 @@
 	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
-		"navigationBarTitleText": "洪湖市红十字会",
+		"navigationBarTitleText": "长宁区红十字会",
 		"navigationBarBackgroundColor": "#FFFFFF",
 		"backgroundColor": "#F8F8F8"
 	},
@@ -938,17 +951,23 @@
 			// 	"selectedIconPath": "static/tabBar/tab-fu-current.png",
 			// 	"text": "爱心帮扶"
 			// },
-			{
-				"pagePath": "pages/category/category",
-				"iconPath": "static/tabBar/dengji.png",
-				"selectedIconPath": "static/tabBar/dengji-action.png",
-				"text": "救在身边"
-			},
+			// {
+			// 	"pagePath": "pages/category/category",
+			// 	"iconPath": "static/tabBar/dengji.png",
+			// 	"selectedIconPath": "static/tabBar/dengji-action.png",
+			// 	"text": "救在身边"
+			// },
+			// {
+			// 	"pagePath": "pages/cart/cart",
+			// 	"iconPath": "static/tabBar/zuce.png",
+			// 	"selectedIconPath": "static/tabBar/zuce-action.png",
+			// 	"text": "会员报名"
+			// },
 			{
-				"pagePath": "pages/cart/cart",
-				"iconPath": "static/tabBar/zuce.png",
-				"selectedIconPath": "static/tabBar/zuce-action.png",
-				"text": "会员报名"
+				"pagePath": "pages/applic/science",
+				"iconPath": "static/tabBar/redpk.png",
+				"selectedIconPath": "static/tabBar/redkp-action.png",
+				"text": "红会科普"
 			},
 			{
 				"pagePath": "pages/user/user",

+ 194 - 68
pages/applic/aed.vue

@@ -1,19 +1,35 @@
 <template>
 	<view class="content">
+		<view class="" style="height: 20rpx;"></view>
+		<!-- map  -->
 		<view class="map">
-			<map @updated='mapChange' ref='map_1' style="width:750rpx;" :style="{'height': height}"
-				:latitude="latitude" :longitude="longitude" :markers="marker" @markertap="lookmore"></map>
+			<map @updated='mapChange' ref='map_1' class="map-map" 
+				:latitude="baseLat" :longitude="baseLng" :markers="marker" @markertap="lookmore" ></map>
 		</view>
-		<uni-popup ref="popup" type="bottom" @click="close">
-			<view class="popup_row">
-				<view class="rows">
-					<view class="rows-item" @click="toGaodeMap">高德地图</view>
-					<view class="rows-item" @click="tobaiDuMap">百度地图</view>
-					<view class="rows-item" @click="totengxunMap">腾讯地图</view>
+		<view class="" style="height: 20rpx;"></view>
+		<!-- 列表 -->
+		<scroll-view scroll-y="true" :style="{'height':height}" class="aed-list" @scrolltolower="loadData()">
+			<espempty v-if="(loaded && AEDList.length == 0)"></espempty>
+			<view class="aed-item flex" v-for="(item,mindex) in AEDList" @click="listlookmore(item,mindex)">
+				<view class="item-left">
+					<view class="clamp">
+						{{item.name}}
+					</view>
+					<view class="clamp aed-address">
+						地址:{{item.address}}
+					</view>
+				</view>
+				<view class="item-right flex">
+					<image src="../../static/icon/dingwei.png" mode=""></image>
+					<view class="">
+						{{item.range}}KM
+					</view>
 				</view>
 			</view>
-		</uni-popup>
-		<uni-popup ref="aedxq" type="bottom" @click="closeAedXq">
+			<uni-load-more :status="loadingType" v-if="!(loaded && AEDList.length == 0)"></uni-load-more>
+		</scroll-view>
+		<!-- aed详情 -->
+		<uni-popup ref="popupinfo" type="bottom" >
 			<view class="aedxq-wrap">
 				<view class="xq-top">
 					<view class="aed-name">
@@ -32,34 +48,34 @@
 				<view class="xq-img-wrap">
 					<scroll-view scroll-x="true" class="aed-img-scroll">
 						<view class="" style="display: flex;flex-wrap: nowrap;">
-							<image :src="'http://red.frp.liuniu946.com'+item" mode="heightFix"
-								v-for="item in showAed.imgs" class="aed-img" @click="openimg(item)"></image>
+							<image :src="'https://red.liuniu946.com' + item" mode="heightFix" v-for="item in showAed.imgs"
+								class="aed-img" @click="openimg(item)" :key="item"></image>
 						</view>
 					</scroll-view>
-					<view class="aed-phone" @click="makecall(showAed.phone)">
+					<!-- <view class="aed-phone" @click="makecall(showAed.phone)">
 						电话
-					</view>
+					</view> -->
 				</view>
 				<view class="aed-dh" @click="opendh">
 					导航
 				</view>
 			</view>
 		</uni-popup>
-		<uni-popup ref="lookimg" type="center">
-			<view class="pop-wrap" style="position: relative;">
-				<movable-area class="popup-box">
-					<movable-view class="popup-item" :scale="true" direction="all">
-						<image :src="chooseImg" mode="widthFix"></image>
-					</movable-view>
-				</movable-area>
-				<image src="../../static/icon/close.png" mode="" class="close" style="width: 80rpx;height: 80rpx;"
-					@click="closePup"></image>
+		<!-- 导航选择层 -->
+		<uni-popup ref="popup" type="bottom" @click="close">
+			<view class="popup_row">
+				<view class="rows">
+					<view class="rows-item" @click="toGaodeMap">高德地图</view>
+					<view class="rows-item" @click="tobaiDuMap">百度地图</view>
+					<view class="rows-item" @click="totengxunMap">腾讯地图</view>
+				</view>
 			</view>
 		</uni-popup>
 	</view>
 </template>
 
 <script>
+	import empty from '@/components/empty';
 	import {
 		mapState,
 		mapMutations
@@ -74,11 +90,14 @@
 		components: {
 			uniPopup,
 			espempty,
-			uniLoadMore
+			uniLoadMore,
+			empty
 		},
 		//相关配置参数
 		data() {
 			return {
+				baseLng: '',//地图中心经度
+				baseLat: '',//地图中心纬度
 				aedmarker: [],
 				loaded: false,
 				loadingType: 'more',
@@ -102,6 +121,9 @@
 					phone: ''
 				},
 				chooseImg: '',
+				mapid: 1,
+				isShow: false,
+				befoId: 0,
 			}
 		},
 		onReady(res) {
@@ -109,7 +131,7 @@
 			uni.getSystemInfo({
 				success: resu => {
 					const query = uni.createSelectorQuery();
-					query.select('.map').boundingClientRect();
+					query.select('.aed-list').boundingClientRect();
 					query.exec(function(res) {
 						console.log(res, 'ddddddddddddd');
 						_this.height = resu.windowHeight - res[0].top + 'px';
@@ -133,7 +155,6 @@
 			// 导航
 			opendh() {
 				console.log('导航')
-				this.$refs.aedxq.close()
 				this.$refs.popup.open();
 			},
 			// 关闭图片弹窗
@@ -141,9 +162,19 @@
 				this.$refs.lookimg.close()
 			},
 			// 打开图片弹窗
-			openimg(src) {
+			openimg(src,srcList) {
+				let obj = this
 				this.chooseImg = this.baseURL + src
-				this.$refs.lookimg.open()
+				
+				console.log('chooseImg', this.chooseImg)
+				// this.$refs.lookimg.open()
+				let arr = obj.showAed.imgs.map(item => {
+					return obj.baseURL + item
+				})
+				uni.previewImage({
+					current: this.chooseImg,
+					urls: arr
+				})
 			},
 			// 拨打电话
 			makecall(num) {
@@ -155,26 +186,55 @@
 			closeAedXq() {
 				this.$refs.aedxq.close()
 			},
+			listlookmore(e,index) {
+				let obj = this
+				if(obj.befoId !=0) {
+					obj.marker[obj.befoId].iconPath = '/static/icon/aed-na.png'
+				}
+				
+				obj.befoId = index*1 +1
+				let aedobj = e
+				console.log(aedobj.name,'aedobj++++')
+				obj.showAed = {
+					name: aedobj.name,
+					address: aedobj.address,
+					addressxq: aedobj.install_address,
+					dis: aedobj.range*1 >= 1 ? (aedobj.range + 'km') : (aedobj.distance + 'm'),
+					lat: aedobj.latitude,
+					lon: aedobj.longitude,
+					imgs: aedobj.images.split(','),
+					phone: aedobj.phone
+				}
+				obj.baseLat = aedobj.latitude
+				obj.baseLng = aedobj.longitude
+				obj.marker[index*1 + 1].iconPath = '/static/icon/aed-a.png'
+				console.log(obj.showAed.name,'obj.showAed')
+				// obj.isShow = true
+				obj.$refs.popupinfo.open()
+			},
 			// 打开aed详情
-			lookmore(e) {
-				console.log(e)
+			lookmore(e,from) {
+				console.log(e.id,'lookmore++++++++++++')
 				let obj = this
-				obj.AEDList.forEach(item => {
-					if (item.id == e.detail.markerId) {
-						obj.showAed = {
-							name: item.name,
-							address: item.address,
-							addressxq: item.install_address,
-							dis: item.range >= 1 ? (item.range + 'km') : (item.distance + 'm'),
-							lat: item.latitude,
-							lon: item.longitude,
-							imgs: item.images.split(','),
-							phone: item.phone
-						}
-						// break
-					}
-				})
-				this.$refs.aedxq.open()
+				if(obj.befoId != 0) {
+					obj.marker[obj.befoId].iconPath = '/static/icon/aed-na.png'
+				}
+				obj.befoId = e.detail.markerId * 1
+				let aedobj = obj.AEDList[e.detail.markerId * 1 - 1]
+				console.log(aedobj,'aedobj')
+				obj.showAed = {
+					name: aedobj.name,
+					address: aedobj.address,
+					addressxq: aedobj.install_address,
+					dis: aedobj.range*1 >= 1 ? (aedobj.range + 'km') : (aedobj.distance + 'm'),
+					lat: aedobj.latitude,
+					lon: aedobj.longitude,
+					imgs: aedobj.images.split(','),
+					phone: aedobj.phone
+				}
+				obj.marker[e.detail.markerId].iconPath = '/static/icon/aed-a.png'
+				// obj.isShow = true
+				obj.$refs.popupinfo.open()
 			},
 			// 获取本地坐标
 			getLocal() {
@@ -189,8 +249,8 @@
 							type: 'gcj02',
 							success(e) {
 								console.log(e)
-								obj.latitude = Math.abs(e.latitude)
-								obj.longitude = Math.abs(e.longitude)
+								obj.baseLat =  obj.latitude = Math.abs(e.latitude)
+								obj.baseLng =  obj.longitude = Math.abs(e.longitude)
 								console.log('本地坐标', obj.latitude, obj.longitude)
 								let item = {
 									id: 0,
@@ -213,8 +273,8 @@
 						type: 'gcj02',
 						success(e) {
 							console.log(e)
-							obj.latitude = Math.abs(e.latitude)
-							obj.longitude = Math.abs(e.longitude)
+							obj.baseLat =  obj.latitude = Math.abs(e.latitude)
+							obj.baseLng =  obj.longitude = Math.abs(e.longitude)
 							console.log('本地坐标', obj.latitude, obj.longitude)
 							let item = {
 								id: 0,
@@ -253,24 +313,36 @@
 					limit: obj.limit,
 				}).then(({
 					data
-				}) => {
+				}) => {		
 					console.log(data, 'aed++++++++++++++')
 					obj.AEDList = obj.AEDList.concat(data);
 					let arr = data.map(item => ({
 						latitude: item.latitude,
 						longitude: item.longitude,
-						iconPath: '/static/img/img014.png',
+						iconPath: '/static/icon/aed-na.png',
 						width: '35',
 						height: '35',
-						id: item.id,
+						id: obj.mapid++,
 						address: item.address
 					}));
+					obj.marker = obj.marker.concat(arr)
+					console.log(obj.page,'obj.page++++++')
+					if(obj.page == 1) {
+						console.log('obj.lookmore+++++++++++++')
+						// obj.lookmore({
+						// 	detail: {
+						// 		markerId: 1
+						// 	}
+						// })
+					}
+					obj.page++
+					console.log('加入完成+++++++++++++')
 					if (data.length == obj.limit) {
 						obj.loadingType = 'more'
 					} else {
 						obj.loadingType = 'noMore'
 					}
-					obj.marker = obj.marker.concat(arr)
+					obj.loaded = true
 				})
 			},
 			// 调用高德
@@ -338,8 +410,16 @@
 	}
 
 	.map {
-		width: 100%;
-		height: 100%;
+		// width: 100%;
+		// height: 100%;
+		height: 780rpx;
+		border-radius: 20rpx;
+		.map-map {
+			width: 689rpx;
+			height: 780rpx;
+			border-radius: 20rpx;
+			margin: auto;
+		}
 	}
 
 	/* #ifdef H5 */
@@ -600,6 +680,12 @@
 	}
 
 	.aedxq-wrap {
+	
+	
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
 		margin: auto;
 		width: 710rpx;
 		min-height: 400rpx;
@@ -607,42 +693,42 @@
 		padding: 0 25rpx;
 		background-color: rgba($color: #000000, $alpha: 0.9);
 		color: #fff;
-		position: relative;
-
+		// position: relative;
+	
 		.xq-top {
 			padding-top: 25rpx;
 			width: 660rpx;
 			min-height: 210rpx;
 			border-bottom: 1px solid #fff;
-
+	
 			.aed-name {
 				font-size: 28rpx;
 				width: 479rpx;
 			}
-
+	
 			.aed-dis {
 				padding-top: 10rpx;
 				font-size: 22rpx;
 				width: 479rpx;
 			}
 		}
-
+	
 		.xq-img-wrap {
 			height: 165rpx;
 			width: 660rpx;
 			display: flex;
 			align-items: center;
 			justify-content: space-between;
-
+	
 			.aed-img-scroll {
 				height: 107rpx;
-				width: 508rpx;
+				width: 620rpx;
 				// background-color: #bfa;
 				// display: flex;
 				// // justify-content: ;
 				// // flex-direction: column;
 				// flex-wrap: nowrap;
-
+	
 				.aed-img {
 					// display: inline-block;
 					height: 107rpx;
@@ -650,10 +736,10 @@
 					margin-right: 15rpx;
 					// background-color: red;
 					flex-shrink: 0;
-
+	
 				}
 			}
-
+	
 			.aed-phone {
 				width: 112rpx;
 				height: 52rpx;
@@ -662,10 +748,10 @@
 				border: 1px solid #fff;
 				border-radius: 10rpx;
 			}
-
+	
 			// background-color: red;
 		}
-
+	
 		.aed-dh {
 			width: 147rpx;
 			height: 82rpx;
@@ -718,4 +804,44 @@
 		right: 0;
 		margin: 0 auto;
 	}
+	.aed-list {
+		
+		
+		.aed-item {
+			width: 690rpx;
+			margin: auto;
+			justify-content: space-between;
+			align-items: center;
+			height: 100rpx;
+			border-bottom: 1px solid #F1F1F1;
+			.item-left {
+				width: 550rpx;
+				font-size: 28rpx;
+				font-weight: 500;
+				color: #333333;
+				.aed-address {
+					padding-top: 10rpx;
+					font-size: 20rpx;
+					font-weight: 500;
+					color: #999999;
+				}
+			}
+			.item-right {
+				width: 100rpx;
+				
+				flex-shrink: 0;
+				flex-direction: column;
+				justify-content: center;
+				align-items: center;
+				font-size: 20rpx;
+				font-weight: 500;
+				color: #999999;
+				image {
+					width: 28rpx;
+					height: 32rpx;
+					margin-bottom: 10rpx;
+				}
+			}
+		}
+	}
 </style>

+ 120 - 45
pages/applic/aid.vue

@@ -1,37 +1,34 @@
 <template>
 	<view class="content">
-		<view id="map" class="map">
-			<map @updated='mapChange' id="map_1" ref='map_1' style="width:750rpx;" :style="{'height': height}"
-				:latitude="latitude" :longitude="longitude" :markers="marker" @markertap="lookmore"></map>
+		<view class="" style="height: 20rpx;"></view>
+		<!-- map  -->
+		<view class="map">
+			<map @updated='mapChange' ref='map_1' class="map-map" 
+				:latitude="baseLat" :longitude="baseLng" :markers="marker" @markertap="lookmore" ></map>
 		</view>
-		<!-- <scroll-view scroll-y="true" class="scroll-wrapper" :style="{'height': height}" @scrolltolower="loadData">
-			<espempty v-if="loaded && AEDList.length === 0" :tit="'智能AED列表为空'"></espempty>
-			<view class="list-tpl flex" @click="openAddress(item)" v-for="(item, index) in AEDList" :key="item.id">
-				<template>
-					<view class="list-left">
-						<view class="info">
-							<view class="title">{{ item.name }}</view>
-							<view class="addr">地址:{{ item.install_address }}</view>
-						</view>
+		<view class="" style="height: 20rpx;"></view>
+		<!-- 列表 -->
+		<scroll-view scroll-y="true" :style="{'height':height}" class="aed-list" @scrolltolower="loadData()">
+			<espempty v-if="(loaded && AEDList.length == 0)"></espempty>
+			<view class="aed-item flex" v-for="(item,mindex) in AEDList" @click="listlookmore(item,mindex)">
+				<view class="item-left">
+					<view class="clamp">
+						{{item.name}}
 					</view>
-					<view class="image">
-						<image src="../../static/img/img10.png"></image>
-						<view class="tip">{{item.distance >= 1000 ? item.range + 'km': item.distance + 'm'}}</view>
+					<view class="clamp aed-address">
+						地址:{{item.address}}
+					</view>
+				</view>
+				<view class="item-right flex">
+					<image src="../../static/icon/dingwei.png" mode=""></image>
+					<view class="">
+						{{item.range}}KM
 					</view>
-				</template>
-			</view>
-			<uni-load-more :status="loadingType"></uni-load-more>
-		</scroll-view> -->
-		<uni-popup ref="popup" type="bottom" @click="close">
-			<view class="popup_row">
-				<view class="rows">
-					<view class="rows-item" @click="toGaodeMap">高德地图</view>
-					<view class="rows-item" @click="tobaiDuMap">百度地图</view>
-					<view class="rows-item" @click="totengxunMap">腾讯地图</view>
 				</view>
 			</view>
-		</uni-popup>
-		<uni-popup ref="aedxq" type="bottom" @click="closeAedXq">
+			<uni-load-more :status="loadingType" v-if="!(loaded && AEDList.length == 0)"></uni-load-more>
+		</scroll-view>
+		<uni-popup ref="aedxq" type="bottom">
 			<view class="aedxq-wrap">
 				<view class="logo-wrap flex">
 					<image :src="baseURL + showAed.imgs" mode="" class="logo"></image>
@@ -57,15 +54,13 @@
 				</view>
 			</view>
 		</uni-popup>
-		<uni-popup ref="lookimg" type="center">
-			<view class="pop-wrap" style="position: relative;">
-				<movable-area class="popup-box">
-					<movable-view class="popup-item" :scale="true" direction="all">
-						<image :src="chooseImg" mode="widthFix"></image>
-					</movable-view>
-				</movable-area>
-				<image src="../../static/icon/close.png" mode="" class="close" style="width: 80rpx;height: 80rpx;"
-					@click="closePup"></image>
+		<uni-popup ref="popup" type="bottom" @click="close">
+			<view class="popup_row">
+				<view class="rows">
+					<view class="rows-item" @click="toGaodeMap">高德地图</view>
+					<view class="rows-item" @click="tobaiDuMap">百度地图</view>
+					<view class="rows-item" @click="totengxunMap">腾讯地图</view>
+				</view>
 			</view>
 		</uni-popup>
 	</view>
@@ -92,6 +87,8 @@
 		//相关配置参数
 		data() {
 			return {
+				baseLng: '',//地图中心经度
+				baseLat: '',//地图中心纬度
 				aedmarker: [],
 				loaded: false,
 				loadingType: 'more',
@@ -115,6 +112,7 @@
 					phone: ''
 				},
 				chooseImg: '',
+				befoId: 0,
 			}
 		},
 		onReady(res) {
@@ -122,7 +120,7 @@
 			uni.getSystemInfo({
 				success: resu => {
 					const query = uni.createSelectorQuery();
-					query.select('.map').boundingClientRect();
+					query.select('.aed-list').boundingClientRect();
 					query.exec(function(res) {
 						console.log(res, 'ddddddddddddd');
 						_this.height = resu.windowHeight - res[0].top + 'px';
@@ -146,7 +144,7 @@
 			// 导航
 			opendh() {
 				console.log('导航')
-				this.$refs.aedxq.close()
+				// this.$refs.aedxq.close()
 				this.$refs.popup.open();
 			},
 			// 关闭图片弹窗
@@ -171,6 +169,9 @@
 			// 打开aed详情
 			lookmore(e) {
 				console.log(e)
+				if(e.detail.markerId == 0) {
+					return
+				}
 				let obj = this
 				obj.AEDList.forEach(item => {
 					if (item.id == e.detail.markerId) {
@@ -201,8 +202,8 @@
 							type: 'gcj02',
 							success(e) {
 								console.log(e)
-								obj.latitude = Math.abs(e.latitude)
-								obj.longitude = Math.abs(e.longitude)
+								obj.baseLat =  obj.latitude = Math.abs(e.latitude)
+								obj.baseLng =  obj.longitude = Math.abs(e.longitude)
 								console.log('本地坐标', obj.latitude, obj.longitude)
 								let item = {
 									id: 0,
@@ -225,8 +226,8 @@
 						type: 'gcj02',
 						success(e) {
 							console.log(e)
-							obj.latitude = Math.abs(e.latitude)
-							obj.longitude = Math.abs(e.longitude)
+							obj.baseLat =  obj.latitude = Math.abs(e.latitude)
+							obj.baseLng =  obj.longitude = Math.abs(e.longitude)
 							console.log('本地坐标', obj.latitude, obj.longitude)
 							let item = {
 								id: 0,
@@ -329,7 +330,33 @@
 					bd_lat: bd_lat,
 					bd_lng: bd_lng
 				};
-			}
+			},
+			listlookmore(e,index) {
+				let obj = this
+				if(obj.befoId != 0) {
+				obj.marker[obj.befoId].iconPath = '/static/img/img014.png'	
+				}
+				
+				obj.befoId = index*1 +1
+				let aedobj = e
+				console.log(aedobj.name,'aedobj++++')
+				obj.showAed = {
+					name: aedobj.name,
+					address: aedobj.address,
+					addressxq: aedobj.install_address,
+					dis: aedobj.range*1 >= 1 ? (aedobj.range + 'km') : (aedobj.distance + 'm'),
+					lat: aedobj.latitude,
+					lon: aedobj.longitude,
+					imgs: aedobj.image,
+					phone: aedobj.phone
+				}
+				obj.baseLat = aedobj.latitude
+				obj.baseLng = aedobj.longitude
+				obj.marker[index*1 + 1].iconPath = '/static/img/img014.png'
+				console.log(obj.showAed.name,'obj.showAed')
+				// obj.isShow = true
+				obj.$refs.aedxq.open()
+			},
 		}
 	}
 </script>
@@ -349,8 +376,16 @@
 	}
 
 	.map {
-		width: 100%;
-		height: 100%;
+		// width: 100%;
+		// height: 100%;
+		height: 780rpx;
+		border-radius: 20rpx;
+		.map-map {
+			width: 689rpx;
+			height: 780rpx;
+			border-radius: 20rpx;
+			margin: auto;
+		}
 	}
 
 	/* #ifdef H5 */
@@ -718,4 +753,44 @@
 		right: 0;
 		margin: 0 auto;
 	}
+	.aed-list {
+		
+		
+		.aed-item {
+			width: 690rpx;
+			margin: auto;
+			justify-content: space-between;
+			align-items: center;
+			height: 100rpx;
+			border-bottom: 1px solid #F1F1F1;
+			.item-left {
+				width: 550rpx;
+				font-size: 28rpx;
+				font-weight: 500;
+				color: #333333;
+				.aed-address {
+					padding-top: 10rpx;
+					font-size: 20rpx;
+					font-weight: 500;
+					color: #999999;
+				}
+			}
+			.item-right {
+				width: 100rpx;
+				
+				flex-shrink: 0;
+				flex-direction: column;
+				justify-content: center;
+				align-items: center;
+				font-size: 20rpx;
+				font-weight: 500;
+				color: #999999;
+				image {
+					width: 28rpx;
+					height: 32rpx;
+					margin-bottom: 10rpx;
+				}
+			}
+		}
+	}
 </style>

+ 90 - 11
pages/applic/contribution.vue

@@ -9,9 +9,20 @@
 					<text class="imp">*</text>捐款意向
 				</view>
 				<view class="box-right">
-					<picker :value="index" @change="PickerDire" :range="chooseDire" class="box-right" @click="addType">
+					<picker @change="PickerDire" :range="chooseDire" class="box-right" range-key="name">
 						<text>{{ intention || '请选择捐款意向'}}</text>
 					</picker>
+					<!-- <cascade class="box-right" @change="onCityClick" :allAddress="chooseList" v-if="chooseList.length > 0">{{intention||'请选择捐款意向'}}</cascade> -->
+				</view>
+			</view>
+			<view class="box-item" v-if="intention && (intention.indexOf('非定向') == -1)">
+				<view class="box-left">
+					<text class="imp">*</text>捐款项目
+				</view>
+				<view class="box-right">
+					<picker @change="changeTlist" :range="chooseTlist" class="box-right"  range-key="name">
+						<text>{{ tIntention || '请选择捐款项目'}}</text>
+					</picker>
 				</view>
 			</view>
 			<view class="box-item">
@@ -75,10 +86,10 @@
 			</view>
 			<view class="box-item">
 				<view class="box-left">
-					<text class="imp">*</text>手机号
+					<text class="imp">*</text>联系方式
 				</view>
 				<view class="box-right">
-					<input type="text" placeholder="请填写手机号" v-model="mobile" />
+					<input type="text" placeholder="请填写联系方式" v-model="mobile" />
 				</view>
 			</view>
 		</view>
@@ -202,15 +213,18 @@
 	import {
 		userinfo
 	} from '@/api/user.js';
+	import cascade from '@/components/cascade.vue'
 	export default {
 		components: {
 			uniPopup,
+			cascade
 			// uniLoadMore
 		},
 		data() {
 			return {
 				index: 0,
 				intention: '', // 捐款意向
+				tIntention: '',//二层捐款意向
 				category_id: '', // 捐款意向ID
 				way: '', // 捐款方式
 				way_id: '', // 捐款方式id
@@ -248,8 +262,9 @@
 				isshowMoney: false, // 其他金额是否展示
 				address: '', // 联系地址
 				// chooseDire: ['请选择捐款意向','红十字人道事业(非定向捐赠)','疫情防控','其他','红十字博爱送万家','AED救护及科普','青少年生命安全教育基地建设项目','关注重度失能老人项目','青少年白血病救护项目','地芯行动-关爱地中海贫血儿童','会费缴纳'],
-				chooseDire: [],
-				chooseList: [], //捐款意向真实列表
+				chooseDire: [],  //捐款意向处理列表
+				chooseList: [],//捐款意向原初列表
+				chooseTlist: [],//二次选择列表
 				chooseType: ['个人', '单位'],
 				chooseMoney: ['5元', '10元', '50元', '其他金额'],
 				payLoding: false, //判断是否支付中
@@ -271,6 +286,7 @@
 			}
 		},
 		onShow() {
+			
 			if (!this.hasLogin) {
 				// 登录拦截
 				uni.showModal({
@@ -291,7 +307,7 @@
 					}
 				});
 			} else {
-				// this.loadData();
+				this.addType()
 			}
 		},
 		computed: {
@@ -299,20 +315,83 @@
 			...mapState(['weichatObj']),
 		},
 		methods: {
+			onCityClick({data}) {
+				console.log(data)
+				let obj = this
+				obj.intention = data[1]
+				obj.chooseDire.forEach(item => {
+					if(item.name == obj.intention) {
+						obj.category_id = item.id
+					}
+				})
+				console.log(obj.category_id,'obj.category_id+++++++++++++')
+				// this.intention = this.chooseDire[e.target.value];
+				// this.category_id = this.chooseList[e.target.value].id;
+			},
 			// 点击捐赠意向
 			addType(e) {
+				let obj = this
 				chosintention({}).then(({
 					data
 				}) => {
-					this.chooseDire = data.map(item => item.name)
-					this.chooseList = data
+					// 版本一
+					// this.chooseDire = data
+					// let arr = data.filter(item => {
+					// 	return item.pid == 0
+					// })
+					// console.log(arr[1].id,arr[0].id,'arr+++++++++')
+					// let arr2 = data.filter(item => {
+					// 	return item.pid != 0
+					// })
+					// console.log(arr2,'ddddddddddddddddd')
+					// arr = arr.map(item => {
+					// 	item.child = []
+					// 	console.log(arr2,'arr2++++')
+					// 	arr2.forEach(itemt => {
+					// 		if(item.id == itemt.pid) {
+					// 			console.log('zhaodaole')
+					// 			item.child.push(itemt)
+					// 		}
+					// 	})
+					// 	return item
+					// })
+					// this.chooseList = arr
+					
+					// 版本二
+					console.log(data,'data++++')
+					obj.chooseList = data
+					obj.chooseDire = data.filter(item => {
+						return item.pid == 0
+					})
+					
+					console.log(obj.chooseDire,'obj.chooseDire')
 				}).catch()
 			},
 			// 选择捐赠意向
 			PickerDire: function(e) {
 				console.log(334, e)
-				this.intention = this.chooseDire[e.target.value];
-				this.category_id = this.chooseList[e.target.value].id;
+				let chooseType = this.chooseDire[e.detail.value]
+				this.intention = chooseType.name
+				if(chooseType.name.indexOf('非定向') != -1) {
+					
+					this.category_id = this.chooseDire[e.detail.value].id
+					this.tIntention = ''
+					console.log(this.category_id,'dddd')
+				}else {
+					this.chooseTlist = this.chooseList.filter(item => {
+						return item.pid == this.chooseDire[e.detail.value].id
+					})
+					console.log(this.chooseTlist,'this.chooseTlist++++')
+				}
+				// console.log()
+				// this.intention = this.chooseDire[e.target.value];
+				// this.category_id = this.chooseList[e.target.value].id;
+			},
+			// 选择二层捐款意向
+			changeTlist(e) {
+				console.log(e)
+				this.tIntention = this.chooseTlist[e.detail.value].name
+				this.category_id = this.chooseTlist[e.detail.value].id
 			},
 			// 选择捐款方式
 			PickerType: function(e) {
@@ -420,7 +499,7 @@
 
 				const reg = /^(\+?0?86-?)?1[\d]\d{9}$/;
 				if (!reg.test(obj.mobile)) {
-					obj.$api.msg('请填写正确的手机号码');
+					obj.$api.msg('请填写正确的联系方式');
 					return;
 				}
 				if (this.is_receipts == '0') {

+ 2 - 2
pages/applic/donaSuccess.vue

@@ -22,7 +22,7 @@
 			</view>
 			<view class="main">
 				<view class="box-2">
-					感谢您积极参与洪湖市红十字会志愿服务各项活动,关爱他人、无私付出,为有需要的人送去温暖,用实际行动诠释了“人道、博爱、奉献”的红十字精神。
+					感谢您积极参与长宁区红十字会志愿服务各项活动,关爱他人、无私付出,为有需要的人送去温暖,用实际行动诠释了“人道、博爱、奉献”的红十字精神。
 				</view>
 				<view class="box-2">
 					祝您及您的家人新年吉祥!身体健康!万事顺意!
@@ -36,7 +36,7 @@
 					谨表谢意
 				</view>
 				<view class="box-1">
-					洪湖市红十字会
+					长宁区红十字会
 				</view>
 			</view>
 		</view>

+ 2 - 2
pages/applic/science.vue

@@ -22,7 +22,7 @@
 					{{item.synopsis}}
 				</view>
 				<view class="right-foot">
-					已阅读人数:{{item.visit || 0}}
+					{{item.releasetime.split(' ')[0]}}
 				</view>
 			</view>
 		</view>
@@ -70,7 +70,7 @@
 			},
 			loadData(){
 				let obj = this;
-				getArticList({ifyid:57}).then(({ data }) => {
+				getArticList({ifyid:70}).then(({ data }) => {
 					console.log(data,123456);
 					obj.science = obj.science.concat(data.list);
 					console.log(obj.science,'999999999999999999')

+ 1 - 1
pages/applic/toknowledge.vue

@@ -44,7 +44,7 @@
 					<view class="name">怎样成为造血干细胞志愿捐献者??</view>
 				</view>
 				<view class="list-tpl">
-					您可与神农架林区红十字会联系,或在余姚市爱心献血屋(阳明西路桐江桥街心公园内)报名。到指定地点抽取6-8毫升血液,经HLA分型检验,把相关资料录入到中华骨髓库的数据库中,这样您就成为造血干细胞志愿捐献者了。
+					您可与长宁区红十字会联系,报名。到指定地点抽取6-8毫升血液,经HLA分型检验,把相关资料录入到中华骨髓库的数据库中,这样您就成为造血干细胞志愿捐献者了。
 				</view>
 			</view>
 			<view class="list-item">

+ 7 - 4
pages/applyHelp/index.vue

@@ -257,10 +257,13 @@
 	</view>
 </template>
 <script>
+	import {
+		upload,
+		addrescuer
+	} from '@/api/ask.js';
 	import uniList from '@/components/uni-list/uni-list.vue';
 	import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
 	import {
-		upload,
 		add_help
 	} from '@/api/index.js';
 	import {
@@ -593,9 +596,9 @@
 				if (obj.sex == '') {
 					return obj.$api.msg('请选择您的性别')
 				}
-				if (obj.politics == '') {
-					return obj.$api.msg('请选择您的政治面貌')
-				}
+				// if (obj.politics == '') {
+				// 	return obj.$api.msg('请选择您的政治面貌')
+				// }
 
 				if (obj.birthday == '') {
 					return obj.$api.msg('请选择您的出生日期')

+ 2 - 2
pages/cart/cart.vue

@@ -11,13 +11,13 @@
 					<!-- 订单列表 -->
 					<view class="order-item" @click="ToDetail(1)">
 						<view class="list-cell">
-							<image class="image" src="../../static/img/personal.jpg"></image>
+							<image class="image" src="../../static/img/personal.png"></image>
 							<view class="list-tpl">个人报名</view>
 						</view>
 					</view>
 					<view class="order-item" @click="ToDetail(2)">
 						<view class="list-cell">
-							<image class="image" src="../../static/img/group.jpg"></image>
+							<image class="image" src="../../static/img/group.png"></image>
 							<view class="list-tpl">团队报名</view>
 						</view>
 					</view>

+ 279 - 528
pages/cart/group.vue

@@ -1,561 +1,312 @@
 <template>
-	<view class="content">
-		<view class="top-box">团队报名</view>
-		<view class="box">
-			<view class="box-1">
-				<view class="box-left">
-					单位名称
-					<text class="imp"></text>
-					:
-				</view>
-				<input type="text" value="" class="list-input" v-model="unit_name" placeholder="请输入单位名称"
-					placeholder-class="placeholder" />
-			</view>
-			<view class="box-1">
-				<view class="box-left">
-					单位性质
-					<text class="imp"></text>
-					:
-				</view>
-				<input type="text" value="" class="list-input" v-model="unit_type" placeholder="请输入单位性质"
-					placeholder-class="placeholder" />
-			</view>
-			<view class="box-1">
-				<view class="box-left">
-					法人代表
-					<text class="imp"></text>
-					:
-				</view>
-				<input type="text" value="" class="list-input" v-model="unit_peo" placeholder="请输入法人代表"
-					placeholder-class="placeholder" />
-			</view>
-			<view class="box-1">
-				<view class="box-left">
-					单位人数
-					<text class="imp"></text>
-					:
-				</view>
-				<input type="number" value="" class="list-input" v-model="unit_num" placeholder="请输入单位人数" placeholder-class="placeholder" />
-			</view>
-			<view class="box-1">
-				<view class="box-left">
-					联系人
-					<text class="imp"></text>
-					:
-				</view>
-				<input type="text" value="" class="list-input" v-model="unit_concat" placeholder="请输入联系人"
-					placeholder-class="placeholder" />
-			</view>
-			<view class="box-1">
-				<view class="box-left">
-					常驻地区
-					<text class="imp"></text>
-					:
-				</view>
-				<input type="text" value="" class="list-input" v-model="usually_area" placeholder="请输入常驻地区"
-					placeholder-class="placeholder" />
+	<view class="center">
+		<view class="bg"><image class="imgBox" src="../../static/img/test_bg.png" mode="scaleToFill"></image></view>
+		<view class="top flex">
+			<image src="../../static/img/top_bg.png" mode="aspectFill"></image>
+			<view class="china-font">上海市长宁区红十字会</view>
+			<view class="english-font">RED CROSS SOCIETY OF CHINA SHANGHAI CHANGNING BRANCH</view>
+			<view class="fgx"></view>
+		</view>
+		<view class="buttom flex">
+			<view class="item flex">
+				<image class="home_img" src="../../static/img/test_home.png" mode="aspectFill"></image>
+				<view class="text"><text>长宁路895号1-2楼</text></view>
 			</view>
-			<view class="box-1">
-				<view class="box-left">
-					邮政编码
-					<text class="imp"></text>
-				
-				</view>
-				<input type="number" value="" class="list-input" v-model="postal_code" placeholder="请输入邮政编码"
-					placeholder-class="placeholder" />
+			<view class="item flex">
+				<image class="home_img" src="../../static/img/test_phone.png" mode="aspectFill"></image>
+				<!-- #ifdef H5 -->
+				<view class="text"><text class="text1">52064615</text></view>
+				<!-- #endif -->
+				<!-- #ifndef H5 -->
+				<view class="text" @click="uni.makePhoneCall({phoneNumber: '52064615'})"><text>****</text></view>
+				<!-- #endif -->
 			</view>
-			<view class="box-1">
-				<view class="box-left">
-					联系电话
-					<text class="imp"></text>
-					:
-				</view>
-				<input type="number" value="" class="list-input" v-model="concat_phone" placeholder="请输入联系电话"
-					placeholder-class="placeholder" />
+			<view class="item flex">
+				<image class="home_img" src="../../static/img/test_mail.png" mode="aspectFill"></image>
+				<view class="text"><text>cnjuanzeng2020@163.com</text></view>
 			</view>
-			<view class="box-1">
-				<view class="box-left">
-					电子邮箱
-					<text class="imp"></text>
-					:
+			<view class="map">
+				<!-- <image class="map-box" src="../../static/icon/erweima.jpg"></image> -->
+				<map class="map-box" id="map" :markers="markers" :scale="scale" :latitude="latitude"
+					:longitude="longitude" ref="map" :show-location="false"></map>
+				<view class="map-font flex">
+					<view class="font-left">上海市长宁区红十字会</view>
+					<view @click="navigation()" class="font-right"><image src="../../static/img/btn.png" mode="aspectFill"></image></view>
 				</view>
-				<input type="text" value="" class="list-input" v-model="email" placeholder="请输入电子邮箱"
-					placeholder-class="placeholder" />
 			</view>
-			<view class="box-1">
-				<view class="box-left">
-					联系地址
-					<text class="imp"></text>
-					:
+			<!-- <view class="qrcode">
+				<image src="../../static/images/qrcode.jpg" mode="aspectFill"></image>
+			</view> -->
+		</view>
+		<uni-popup ref="popup2" type="bottom" @click="close">
+			<view class="popup_row">
+				<view class="rows">
+					<view class="rows-item" @click="toGaodeMap()">高德地图</view>
+					<view class="rows-item" @click="toBaiduMap()">百度地图</view>
+					<view class="rows-item" @click="toTengxunMap()">腾讯地图</view>
 				</view>
-				<input type="text" value="" class="list-input" v-model="concat_address" placeholder="请输入联系地址"
-					placeholder-class="placeholder" />
 			</view>
-		</view>
-		<!-- <view class="buttom-ts" ></view> -->
-		<view class="buttom" :class="{ action: loding }" @click="!loding ? join() : ''">提交申请</view>
-	</view>
-</template>
-
+		</uni-popup>
+	</view>
+</template>
+
 <script>
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		saveUrl,
-		interceptor
-	} from '@/utils/loginUtils.js';
-	import {
-		vip,
-		getVipmoney,
-		createOrder
-	} from '@/api/index.js';
-	import {
-		upload
-	} from '@/api/ask.js';
-	export default {
-		data() {
-			const currentDate = this.getDate({
-				format: true
-			});
-			return {
-				loding: false, //是否提交中
-				unit_name: '', //单位名称
-				unit_peo: '', //法人代表
-				unit_type: '', //单位性质
-				unit_num: '', //单位人数
-				unit_concat: '', //单位联系人
-				usually_area: '', //常驻地区
-				postal_code: '', //邮政编码
-				concat_phone: '', //联系电话
-				email: '', //电子邮箱
-				id: '',
-				money: '',
-				concat_address: '' //联系地址
-			};
-		},
-		onShow() {
-			if (this.hasLogin) {
-				// this.loadBaseData();
-				const obj = this
-				console.log('getVipmoney+++++')
-				getVipmoney().then(({
-					data
-				}) => {
-					console.log(data, 'getVipmoney');
-					data.forEach(e => {
-						if (e.user_type == 2) {
-							obj.money = e.pay_price;
-							obj.id = e.id;
-							console.log(obj.money, obj.id)
-						}
-					});
-				});
-			} else {
-				saveUrl();
-				uni.showModal({
-					title: '登录',
-					content: '您未登录,是否马上登陆?',
-					success: e => {
-						if (e.confirm) {
-							interceptor();
-						}
-					},
-					fail: e => {
-						console.log(e);
-					}
-				});
-			}
+import uniPopup from '@/components/uni-popup/uni-popup.vue'
+import {
+		weixindata,
+		weixinlocation
+	} from '@/utils/wxAuthorized.js';
+export default {
+	components: {
+		uniPopup
+	},
+	data() {
+		return {
+			scale: '12',
+			longitude: '121.419499', //洪湖市经度,,
+			latitude: '31.218387', //洪湖市纬度
+			longitudeNew: '', //当前经度
+			latitudeNew: '', //当前纬度
+			addr: '长宁区红十字会',
+			markers: [{
+				id: '226',
+				title: '长宁区红十字会',
+				iconPath: '/static/img/img10.png',
+				width: '28',
+				height: '28',
+				longitude: '121.419499', //洪湖市经度,,
+				latitude: '31.218387', //洪湖市纬度
+			}]
+		};
+	},
+	onLoad() {
+		let obj = this;
+		this.IndexShare();
+		uni.getLocation({
+			type: 'wgs84',
+			success: res => {
+				console.log('当前位置的经度:' + res.longitude);
+				console.log('当前位置的纬度:' + res.latitude);
+				obj.longitudeNew = res.longitude;
+				obj.latitudeNew = res.latitude;
+			},
+			fail(e) {
+				console.log('获取位置失败', e);
+			}
+		});
+	},
+	methods: {
+		navigation() {
+			this.$refs.popup2.open();
+			// uni.openLocation({
+			// 	latitude:+latitude,
+			// 	longitude:+longitude,
+			// 	address:address,
+			// 	fail(e){
+			// 		console.log(e);
+			// 	}
+			// })
+			
+		},
+		toGaodeMap() {
+			let latitude = this.latitude
+			let longitude = this.longitude
+			let address = this.addr
+			console.log(latitude,longitude,address);
+			window.location.href = `https://uri.amap.com/marker?position=${longitude},${latitude}&name=${address}`
+		},
+		toTengxunMap() {
+			let latitude = this.latitude
+			let longitude = this.longitude
+			let address = this.addr
+			window.location.href = `http://apis.map.qq.com/uri/v1/marker?marker=coord:${latitude},${longitude};addr:${address}`;
+		},
+		toBaiduMap() {
+			
+			window.location.href=
+			`http://api.map.baidu.com/marker?location=30.357764,112.218665&title=长宁区红十字会&content=长宁区红十字会&output=html&src=webapp.baidu.openAPIdemo `
 		},
-		computed: {
-			...mapState('user', ['hasLogin', 'userInfo']),
-			...mapState(['weichatObj']),
-			// startDate() {
-			// 	return this.getDate('start');
-			// },
-			// endDate() {
-			// 	return this.getDate('end');
-			// }
-		},
-		methods: {
-			async join() {
-				let obj = this;
-				if (obj.unit_name == '') {
-					obj.$api.msg('请填写单位名称');
-					return;
-				}
-				if (obj.unit_type == '') {
-					obj.$api.msg('请填写单位性质');
-					return;
-				}
-				if (obj.unit_peo == '') {
-					obj.$api.msg('请填写法人代表');
-					return;
-				}
-				if (obj.unit_num == '') {
-					obj.$api.msg('请填写单位人数');
-					return;
-				}
-				if (obj.unit_concat == '') {
-					obj.$api.msg('请填写联系人');
-					return;
-				}
-				if (obj.usually_area == '') {
-					obj.$api.msg('请填写常驻地址');
-					return;
-				}
-				if (obj.postal_code == '') {
-					obj.$api.msg('请填写邮政编码');
-					return;
-				}
-				if (obj.concat_phone == '') {
-					obj.$api.msg('请填写联系电话');
-					return;
-				}
-				if (!/^((\+?86)|(\(\+86\)))?1\d{10}$/.test(obj.concat_phone)) {
-					obj.$api.msg('请填写正确的联系电话');
-					return;
-				}
-				if (obj.email == '') {
-					obj.$api.msg('请填写电子邮箱');
-					return;
-				}
-
-				if (!/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(obj.email)) {
-					obj.$api.msg('请填写正确的邮箱');
-					return;
-				}
-				if (obj.concat_address == '') {
-					obj.$api.msg('请填写联系地址');
-					return;
-				}
-				// obj.loding = true;
-				vip({
-						company_name: obj.unit_name, //单位名称
-						nature: obj.unit_type, //性质
-						legal_person: obj.unit_peo, //法人
-						company_member: obj.unit_num * 1, //公司人数
-						company_address: obj.concat_address, //联系地址
-						zip_code: obj.postal_code, //邮编
-						mobile: obj.concat_phone, //联系电话
-						company_email: obj.email, //邮箱
-						address: obj.usually_area, //常驻地址
-						full_name: obj.unit_concat, //联系人
-						user_type: 2
-					})
-					.then(e => {
-						if (e.status == 400) {
-							obj.$api.msg(e.msg);
-							return;
-						}
-						uni.showModal({
-							title: '提示',
-							content: '成为企业会员需要缴纳' + obj.money + '元年费,是否前往提交',
-							success: function(res) {
-								if (res.confirm) {
-									console.log('用户点击确定');
-									console.log(obj.money,obj.id,'obj.id+++++')
-									createOrder({
-										level_id: obj.id,
-										body: '企业红会年费',
-										pay_type: 0,
-										// name: obj.name,
-										pay_price: obj.money,
-										from: 'weixin'
-									}).then(({
-										data
-									}) => {
-										let res = data.jsConfig;
-										console.log(res);
-										obj.weichatObj.chooseWXPay({
-											timestamp: res.timestamp,
-											nonceStr: res.nonceStr,
-											package: res.package,
-											signType: res.signType,
-											paySign: res.paySign,
-											success: function(res) {
-												obj.unit_name = '';
-												obj.unit_type = '';
-												obj.unit_num = '';
-												obj.concat_address = '';
-												obj.postal_code = '';
-												obj.concat_phone = '';
-												obj.email = '';
-												obj.usually_area = '';
-												uni.navigateTo({
-													url: '../joinSuc/joinNow'
-												});
-											},
-											fail: function(res) {
-												this.$refs.popup1.open();
-												console.log(res, '失败');
-												console.log(res.errMsg);
-											}
-										});
-									});
-								} else if (res.cancel) {
-									console.log('用户点击取消');
-								}
-							}
-						});
-					})
-					.catch(function(e) {
-						console.log('出错了');
-						console.log(e);
-					});
-			},
-			imgsub() {
-				console.log('imgsub');
-				upload({
-					filename: ''
-				}).then(data => {
-					this.cardimg = data[0].url;
-				});
-			},
-			// 选择性别
-			bindPickerSex: function(e) {
-				console.log(this.array[e.target.value]);
-				this.sex = this.array[e.target.value];
-				this.index = e.target.value + 1;
-			},
-			// 选择教育程度
-			bindPickerEdu: function(e) {
-				this.education = this.chooseEdu[e.target.value];
-				this.index = e.target.value + 1;
-			},
-			// 选择日期
-			bindDateChange: function(e) {
-				this.birth = e.target.value;
-			},
-			// 是否参加志愿活动
-			bindPickerVol: function(e) {
-				this.is_vol = this.chooseVol[e.target.value];
-				this.index = e.target.value + 1;
-			},
-			// 有无服务经验
-			bindPickerExp: function(e) {
-				this.is_experience = this.chooseExp[e.target.value];
-				this.index = e.target.value + 1;
-			},
-			getDate(type) {
-				const date = new Date();
-				let year = date.getFullYear();
-				let month = date.getMonth() + 1;
-				let day = date.getDate();
-
-				if (type === 'start') {
-					year = year - 60;
-				} else if (type === 'end') {
-					year = year + 2;
-				}
-				month = month > 9 ? month : '0' + month;
-				day = day > 9 ? day : '0' + day;
-				return `${year}-${month}-${day}`;
-			},
-			// 选择可提供时间
-
-			// this.quantum = item.detail.value.join(',');
-
-			checktime1(e) {
-				// var items = this.timeList,
-				// let quantum = [];
-				this.quantum = e.detail.value.join(',');
-				console.log(this.quantum);
-			},
-			checktime2(e) {
-				// var items = this.timeList,
-				let values = e.detail.value;
-				// let quantum = [];
-				console.log(values);
-			},
-			checktime3(e) {
-				// var items = this.timeList,
-				let values = e.detail.value;
-				// let quantum = [];
-				console.log(values);
-			},
-			//选择有兴趣参与的工作
-			checkjob(item) {
-				this.taste = item.detail.value.join(',');
-			},
-			// 选择专长checkspeciality
-			checkspeciality(item) {
-				this.speciali = item.detail.value.join(',');
-			}
-		}
-	};
-</script>
-
+		//分享
+		IndexShare() {
+			let obj = this;
+			let item = {
+				link:  obj.$store.state.baseURL + '/index/#/pages/share/card',// 分享链接
+				imgUrl: obj.$store.state.baseURL + '/index/static/img/002.png',
+				desc: '电子名片分享',
+				title: '长宁区红十字会',
+			};
+			console.log('分享加',item)
+			weixindata(item);
+		},
+	}
+};
+</script>
+
 <style lang="scss">
+	.center {
+		border: 20rpx solid #eacd95;
+		min-height: 100%;
+		// min-height: 600px;
+	}
+	.flex {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+	}
 	page {
-		background-color: #fdcbc2;
+		width: 100%;
 		height: 100%;
+		margin: 0;
+		padding: 0;
 	}
-
-	.content {
-		max-height: 100%;
-		padding-top: 44rpx;
-		background-color: #fdcbc2;
-
-		.buttom-ts {
-			height: 120rpx;
+	.bg {
+		width: 100%;
+		height: 100%;
+		position: absolute;
+		left: 0;
+		top: 0;
+		padding: 20rpx;
+		.imgBox {
+			width: 100%;
+		}
+	}
+	.top {
+		flex-direction: column;
+		width: 100%;
+		image {
+			width: 312rpx;
+			height: 312rpx;
+			border-color: linear-gradient(0deg, #e01a1c, #e01a1c);
+			border-radius: 50%;
+			margin-top: 85rpx;
 		}
-
-		.buttom {
-			margin: 60rpx auto 0;
-			// position: absolute;
-			// bottom: 0;
-			width: 600rpx;
-			height: 100rpx;
-			border-radius: 50rpx;
-			background: #fa7e67;
-			font-size: 34rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #ffffff;
-			line-height: 100rpx;
+	
+		.china-font {
+			z-index: 0;
+			width: 100%;
+			font-size: 55rpx;
+			padding-left: 20rpx;
+			letter-spacing: 10rpx;
+			font-family: Swei Fist Leg CJK SC;
+			font-weight: bold;
+			color: #e01a1c;
+			line-height: 1;
+			margin-top: 19rpx;
 			text-align: center;
-
-			&.action {
-				background: #999999;
-			}
 		}
-
-		.box {
-			// margin-top: 44rpx;
-			width: 690rpx;
-			margin: 20rpx auto 0;
-			background-color: #ffffff;
-			border-radius: 20rpx;
-			// padding: 28rpx 20rpx 32rpx 20rpx;
-			position: relative;
-
-			.red-box {
+		.english-font {
+			margin-top: 14rpx;
+			z-index: 0;
+			letter-spacing: -1.9rpx;
+			width: 100%;
+			font-size: 18rpx;
+			font-weight: bold;
+			color: #e01a1c;
+			text-align: center;
+		}
+		.fgx {
+			margin-top: 25rpx;
+			margin-bottom: 25rpx;
+			z-index: 0;
+			width: 625rpx;
+			border-bottom: 1rpx dashed #e01a1c;
+		}
+	}
+	.buttom {
+		flex-direction: column;
+		.item {
+			z-index: 0;
+			margin: 0 auto;
+			margin-top: 20rpx;
+			width: 532rpx;
+			border: 1rpx solid #e01a1c;
+			border-radius: 38rpx;
+			justify-content: flex-start;
+	
+			.home_img {
+				height: 58rpx;
+				width: 58rpx;
+				margin: 8rpx 13rpx;
+			}
+	
+			.text {
 				width: 405rpx;
-				line-height: 66rpx;
+				// display: inline-block;
+				// padding-left: 75rpx;
+				letter-spacing: 1.2rpx;
+				font-size: 25rpx;
+				font-weight: bold;
 				text-align: center;
-				background: linear-gradient(0deg, #c90f1b, #f14d33);
-				// background-color: #c62316;
-				border-radius: 10rpx;
-				font-size: 30rpx;
-				font-weight: 500;
-				color: #ffffff;
-				// position: relative;
-				position: absolute;
-				top: -36rpx;
-				left: 50%;
-				transform: translateX(-50%);
-				z-index: 1;
-			}
-
-			.box-check {
-				font-size: 28rpx;
-				font-weight: 500;
-				color: #666666;
-				line-height: 100rpx;
+				// background-color: red;
+				// .text1 {
+				// 	padding-left: 60rpx;
+				// }
 			}
-
-			.imp {
-				color: red;
-				margin-left: 5rpx;
+		}
+		.map {
+			margin-top: 25rpx;
+			margin-bottom: 25rpx;
+			background-color: #ffffff;
+			z-index: 0;
+			width: 517rpx;
+			border: 2rpx solid #ea3638;
+			line-height: 0;
+			.map-box {
+				width: 513rpx;
+				height: 513rpx;
+				background: #ffffff;
 			}
-
-			.box-1 {
-				height: 98rpx;
+			.map-font {
+				height: 90rpx;
 				padding: 0 20rpx;
-				display: flex;
 				justify-content: space-between;
-				border-bottom: 1px solid #f0f0f0;
-				line-height: 98rpx;
-				align-items: center;
-				font-size: 28rpx;
-				font-family: PingFang SC;
-				font-weight: 500;
-				color: #333333;
-
-				// .box-left {
-				// 	width: 120rpx;
-				// }
-				// .list-input {
-				// 	width: 440rpx;
-				// }
-				// .box-right {
-				// 	width: 440rpx
-				// }
-				.list-input {
-					width: 440rpx;
-					// height: 26rpx;
-					font-size: 28rpx;
+				.font-left {
 					font-family: PingFang SC;
-					font-weight: 500;
-					color: #000;
-				}
-
-				.placeholder {
-					color: #999999;
+					font-weight: bold;
+					font-size: 29rpx;
+					color: #333333;
+					line-height: 1;
 				}
-
-				.box-right {
-					width: 440rpx;
+				.font-right {
+					border-radius: 10rpx;
+					overflow: hidden;
+					background-color: #1593ff;
+					image {
+						width: 120rpx;
+						height: 45rpx;
+					}
 				}
 			}
 		}
-	}
-
-	.upload-box {
-		// height: 247rpx;
-		background: #ffffff;
-		border-radius: 27rpx;
-		display: flex;
-		flex-direction: column;
-		padding: 30rpx 40rpx 30rpx 0;
-		margin: 15rpx auto 30rpx;
-		width: 690rpx;
-		background: #ffffff;
-		border-radius: 10rpx;
-
-		.upload-left {
-			padding-left: 20rpx;
-			font-weight: 400;
-			color: #000;
-		}
-
-		.upload-right {
-			flex: 1;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-
-			.upload-img {
-				width: 160rpx;
-				height: 160rpx;
-				margin-top: 24rpx;
+		.qrcode {
+			width: 517rpx;
+			image {
+				width: 517rpx;
+				margin: 20rpx 0 36rpx;
 			}
 		}
 	}
-
-	.top-box {
-		height: 58rpx;
-		font-size: 38rpx;
-		line-height: 58rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #fa7e67;
-		text-align: center;
-		position: relative;
-	
-	&::before {
-			content: '';
-			width: 215rpx;
-			height: 17rpx;
-			background: #fff;
-			opacity: 0.26;
-			position: absolute;
-			left: 0;
-			right: 0;
-			bottom: 0;
-			margin: 0 auto;
+	.popup_row {
+		width: 100%;
+		height: 500rpx;
+		background-color: #FFFFFF;
+		border-radius: 20rpx 20rpx 0 0;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		
+		.rows {
+			width: 100%;
+			padding: 0 24rpx;
+			
+			.rows-item {
+				height: 80rpx;
+				line-height: 80rpx;
+				text-align: center;
+				width: 100%;
+				font-size: 32rpx;
+				color: #303133;
+			}
 		}
-	}
+	}
 </style>

+ 9 - 8
pages/cart/personal.vue

@@ -197,10 +197,10 @@ export default {
 				obj.$api.msg('请填写您的工作单位');
 				return;
 			}
-			if (obj.cardimg == '') {
-				obj.$api.msg('请上传您的证件');
-				return;
-			}
+			// if (obj.cardimg == '') {
+			// 	obj.$api.msg('请上传您的证件');
+			// 	return;
+			// }
 
 			if (obj.specialty == '') {
 				obj.$api.msg('请填写您的职位');
@@ -391,13 +391,13 @@ page {
 
 .content {
 	padding-top: 44rpx;
-	background-color: #fdcbc2;
+	background-color: #fff;
 
 	.buttom {
 		margin: 60rpx auto 0;
 		width: 750rpx;
 		height: 100rpx;
-		background: #fa7e67;
+		background: #F3392C;
 		font-size: 34rpx;
 		font-family: PingFang SC;
 		font-weight: 500;
@@ -415,7 +415,8 @@ page {
 		margin: 20rpx auto 0;
 		background-color: #ffffff;
 		border-radius: 20rpx;
-		// padding: 28rpx 20rpx 32rpx 20rpx;
+		// padding: 28rpx 20rpx 32rpx 20rpx;
+		box-shadow: 0px 2px 24px 0px rgba(0,0,0,0.0600);
 		position: relative;
 
 		.red-box {
@@ -528,7 +529,7 @@ page {
 		content: '';
 		width: 215rpx;
 		height: 17rpx;
-		background: #fff;
+		background: #FF4C4C;
 		opacity: 0.26;
 		position: absolute;
 		left: 0;

+ 3 - 2
pages/category/category.vue

@@ -317,11 +317,12 @@
 		// background-color: #FD3B34;
 		.top {
 			width: 750rpx;
-
+			margin-bottom: -160rpx;
 			.bgi {
 				display: block;
 
-				width: 564rpx;
+				// width: 564rpx;
+				width: 750rpx;
 				height: 678rpx;
 				margin: 53rpx auto;
 				// position: relative;

+ 84 - 8
pages/form/applicationForm.vue

@@ -62,8 +62,11 @@
 		<view class="top">
 			<view class="title">个人声明</view>
 			<view class="info-box">
-				遗体器官捐献是服务医疗事业,造福人类的高尚行为,是“人道、博爱、奉献”精神的崇高体现,我已了解遗体器官捐献的基本常识和有关政策法规。<text style="font-size: 24rpx;font-family: PingFang SC;font-weight: 500;color: #666666;" v-if="type != '人体器官'">我自愿登记成为遗体器官捐献志愿者,自愿无偿捐献,请执行人和所有亲属尊重我的决定。</text></view>
-			<view class="info-box" style="padding-top: 0;" v-if="type == '人体器官' && ready">我自愿登记成为遗体器官捐献志愿者,自愿无偿捐献:</view>
+				遗体器官捐献是服务医疗事业,造福人类的高尚行为,是“人道、博爱、奉献”精神的崇高体现,我已了解遗体器官捐献的基本常识和有关政策法规。<text
+					style="font-size: 24rpx;font-family: PingFang SC;font-weight: 500;color: #666666;"
+					v-if="type != '人体器官'">我自愿登记成为遗体器官捐献志愿者,自愿无偿捐献,请执行人和所有亲属尊重我的决定。</text></view>
+			<view class="info-box" style="padding-top: 0;" v-if="type == '人体器官' && ready">我自愿登记成为遗体器官捐献志愿者,自愿无偿捐献:
+			</view>
 			<view class="uni-list" style="display: block;">
 				<checkbox-group v-if="type == '人体器官' && ready" @change="checkAllClick" style="padding-left: 50rpx;">
 					<label class="checkbox">
@@ -117,6 +120,23 @@
 		<view class="buttomBox">
 			<view class="buttom" :class="{ action: loding }" @click="!loding ? join() : ''">提交申请</view>
 		</view>
+		<uni-popup ref="tishi" type="center" :maskClick="false">
+			<view class="ts-wrap">
+				<view class="ts-tit">
+					捐献自愿书
+				</view>
+				<scroll-view scroll-y="true" class="ts-content" @scrolltolower="isbtm = true">
+					<view class="xq">
+						遗体(角膜)捐献是造福人类的善举,是“人道、博爱、奉献”精神的崇高体现。我自愿身后无偿捐献自己的遗体(角膜),为祖国医学教育、医学科研和医学临床事业做出自己最后的贡献。
+						</view>
+						<view class="xq">本人已经与执行人(父母、配偶、成年子女或其它监护人)充分沟通,他们全部同意尊重我的意愿,并支持我办理捐献手续。</view>
+						<view class="xq">本人填报的信息和承诺,都是我认真思考后本人意志的完整表达,所以信息真实。</view>
+				</scroll-view>
+				<view class="ts-btn" @click="agreen()" :style="{'background': isbtm?'#FF4C4C':'#eee','color':isbtm?'#fff':'#999'}">
+					我已阅读并同意
+				</view>
+			</view>
+		</uni-popup>
 	</view>
 </template>
 
@@ -138,13 +158,15 @@
 				format: true
 			});
 			return {
+				isRead: false,//是否同意
+				isbtm: true,//是否滑动到底部
 				ready: true,
 				all: false,
 				isall: false,
 				type: '',
 				loding: false, //是否提交中
 				array: ['男', '女'],
-				chooseEdu: ['小学以下', '小学', '初中', '高中/中专', '大专/高职','本科','研究生', '硕士', '博士', '博士后'],
+				chooseEdu: ['小学以下', '小学', '初中', '高中/中专', '大专/高职', '本科', '研究生', '硕士', '博士', '博士后'],
 				chooseVol: ['是', '否'],
 				chooseExp: ['是', '否'],
 				realyItems: [], //捐赠对照表
@@ -241,9 +263,17 @@
 			this.getDonateList()
 		},
 		methods: {
+			// 同意提示
+			agreen() {
+				if(this.isbtm) {
+					this.isRead = true
+					this.$refs.tishi.close()
+				}
+			},
 			// 获取捐赠对照列表
 			getDonateList() {
 				donate_ify().then(e => {
+
 					this.realyItems = e.data;
 					let arr = e.data.filter(item => {
 						item.type = false
@@ -252,13 +282,14 @@
 					})
 					this.apparatus = arr.reverse();
 					console.log(this.realyItems, '获取捐赠对照列表')
+					this.$refs.tishi.open()
 
 				});
 			},
 			async join() {
 				let obj = this;
 				let arr = []
-				
+
 				console.log(obj.remark)
 				if (obj.type == '') {
 					obj.$api.msg('请选择你要捐献的器官');
@@ -329,15 +360,15 @@
 				}
 				obj.loding = true;
 				obj.realyItems.forEach(item => {
-					console.log(item.name,obj.remark)
-					if(obj.remark.indexOf(item.name) != -1) {
+					console.log(item.name, obj.remark)
+					if (obj.remark.indexOf(item.name) != -1) {
 						arr.push(item.id + '')
 					}
 				})
-				console.log(arr.join(','),'ddddddddddd')
+				console.log(arr.join(','), 'ddddddddddd')
 				joinSecc({
 						full_name: obj.name, //姓名
-						sex: obj.sex == '男'? 0: 1, //性别0男1女
+						sex: obj.sex == '男' ? 0 : 1, //性别0男1女
 						birthday: obj.birthday, //生日
 						id_card: obj.card, //身份证号
 						vocation: obj.occupation, //职业
@@ -939,4 +970,49 @@
 	.placeholder {
 		line-height: 66rpx;
 	}
+
+	.ts-wrap {
+		width: 673rpx;
+		height: 800rpx;
+		background: #FFFFFF;
+		border-radius: 20rpx;
+        position: relative;
+		.ts-tit {
+			height: 103rpx;
+			padding-top: 40rpx;
+			text-align: center;
+			font-size: 36rpx;
+			font-weight: bold;
+			color: #000000;
+			width: 588rpx;
+			margin: auto;
+			border-bottom: 1px solid #a1a1a1;
+		}
+
+		.ts-content {
+			height: 400rpx;
+			margin: 30rpx 0;
+			text-align: justify;
+			font-size: 28rpx;
+			font-weight: 500;
+			color: #666666;
+			.xq {
+				width: 600rpx;
+				margin: auto;
+				text-indent:2em;
+			}
+		}
+		.ts-btn {
+			width: 673rpx;
+			line-height: 90rpx;
+			font-size: 32rpx;
+			font-weight: 500;
+			color: #FFFFFF;
+			text-align: center;
+			background: #FF4C4C;
+			border-radius: 0px 0px 20rpx 20rpx;
+			position: absolute;
+			bottom: 0;
+		}
+	}
 </style>

+ 5 - 5
pages/form/certificates.vue

@@ -53,7 +53,7 @@
 				companyName: '',
 				companyphone: '',
 				num: '',
-				people: '神农架林区红十字会',
+				people: '上海市长宁区红十字会',
 				signDate: '',
 				loading: true, //是否载入图片中
 				size: 180,
@@ -181,8 +181,8 @@
 
 				context.setFontSize(31 * obj.ratio)
 
-				context.fillText('您已完成洪湖市红十字会普及培训', 105 * obj.ratio, 670 * obj.ratio)
-				context.fillText('的全部课程,特发此证。', 105 * obj.ratio, 720 * obj.ratio)
+				context.fillText('您已完成上海市长宁区红十字会普', 105 * obj.ratio, 670 * obj.ratio)
+				context.fillText('及培训的全部课程,特发此证。', 105 * obj.ratio, 720 * obj.ratio)
 				context.setFontSize(22 * obj.ratio)
 				context.fillText('签发人:', 300 * obj.ratio, 800 * obj.ratio)
 				context.fillText('Siger:', 300 * obj.ratio, 830 * obj.ratio)
@@ -194,7 +194,7 @@
 				context.fillText('Issuer Date:', 300 * obj.ratio, 910 * obj.ratio)
 				context.setFontSize(26 * obj.ratio)
 				context.fillText(m, 475 * obj.ratio, 908 * obj.ratio)
-				context.fillText('洪湖市红十字会', 440 * obj.ratio, 820 * obj.ratio)
+				context.fillText('上海市长宁区红十字会', 400 * obj.ratio, 820 * obj.ratio)
 				// 画横线
 				context.moveTo(430 * obj.ratio, 915 * obj.ratio)
 				context.lineTo(660 * obj.ratio, 915 * obj.ratio)
@@ -254,7 +254,7 @@
 					link: obj.$store.state.baseURL + '/index/#/pages/form/certificates?name=' + encodeURI(obj.name) + '&sendtime=' + obj.sendtime,
 					imgUrl: obj.$store.state.baseURL + '/index/static/img/002.png',
 					desc: '结业证书',
-					title: '洪湖市红十字会',
+					title: '长宁区红十字会',
 				};
 				console.log('分享加', item)
 				weixindata(item);

+ 442 - 371
pages/form/donaSuccess.vue

@@ -1,372 +1,443 @@
-<template>
-	<view class="content">
-		<view class="box">
-			<view class="music">
-				<view class="player playing" :class="playing ? 'none' : 'keepgo'" @click.stop="play">
-					<image src="../../static/img/music.png" style="width: 68rpx;height: 68rpx;" :animation="animationData"></image>
-				</view>
-			</view>
-			<canvas v-if="showcanvas" id="qrShareBox" canvas-id="qrShareBox" class="tki-qrcode-canvas" />
-			<image class="imgbox" v-else :src="img"></image>
-		</view>
-		<!-- <image class="image" src="../../static/img/thinks.png" mode=""></image> -->
-	</view>
-</template>
-
-<script>
-import { weixindata } from '@/utils/wxAuthorized.js';
-export default {
-	data() {
-		return {
-			money: '',
-			url: '',
-			img: '',
-			showcanvas: true,
-			loading: true, //是否载入图片中
-			size: 180,
-			ratio: 1, //页面比例用于计算
-			canHeight: '',
-			canWeidth: '',
-			playing: true,
-			current: {
-				src: '../../static/audio/xx.mp3'
-			},
-			rotateIndex: '',
-			animation: {},
-			animationData: {},
-			audioAction: {
-				method: 'pause'
-			},
-			ran: -1,
-			isStop: true,
-			demo: 0,
-			name: '',
-			add_time: '',
-			
-		};
-	},
-	onReady() {
-		let query = uni.createSelectorQuery();
-		let obj = this;
-		console.log(999, obj.money);
-		// 获取页面比例
-		query
-			.select('.box')
-			.fields(
-				{
-					size: true
-				},
-				e => {
-					console.log('获取页面比例', e);
-					// 保存比例
-					this.ratio = e.width / 750;
-				}
-			)
-			.exec();
-		// 获取画布宽高信息
-		query
-			.select('#qrShareBox')
-			.fields(
-				{
-					size: true
-				},
-				e => {
-					console.log('获取画布宽高信息', e);
-					obj.canHeight = e.height;
-					obj.canWeidth = e.width;
-				}
-			)
-			.exec();
-		let ctxBg = '/static/img/thanks1.png'; //画布背景
-		let src = '/static/icon/erweima.jpg'; // 二维码
-
-		let context = uni.createCanvasContext('qrShareBox');
-		// 插入背景图片
-		console.log('插入背景图片', ctxBg, 0, 0, obj.canWeidth, obj.canHeight);
-		context.drawImage(ctxBg, 0, 0, obj.canWeidth, obj.canHeight);
-
-		const codeSize = obj.size * obj.ratio; //计算二维码大小
-		const codeX = ((750 - obj.size) * obj.ratio) / 2; //二维码所在x轴位置
-		const codeY = 960 * obj.ratio; //二维码所在y轴位置
-
-		const codeBoxColor = '#FFFFFF'; //包裹框颜色
-		const codeBoxWidht = 0; //包裹边框宽度
-		const codeBoxSize = (codeBoxWidht / 2) * obj.ratio; //计算二维码白色包裹框大小
-		const codeBoxX = codeX - codeBoxSize; //包裹框初始X轴
-		const codeBoxY = codeY - codeBoxSize; //包裹框初始Y轴
-		const codeBoxEnd = codeSize + codeBoxWidht * obj.ratio; //计算包裹框大小
-		const fontTop = codeY + codeBoxEnd + (codeBoxWidht + 20) * obj.ratio; //文字距离上边距高度
-		const fontSize = 24 * obj.ratio; //文字大小
-		const fontText = ''; //文字内容
-		const fontLeft = (codeSize - fontSize * fontText.length) / 2 + codeX; //文字左侧距离
-
-		// // 插入文字
-		context.setFontSize(28);
-		context.setFillStyle('#d5493b');
-		context.fillText('感谢信', ((750 - obj.size) * obj.ratio) / 2, 260 * obj.ratio)
-		context.setFontSize(30 * obj.ratio);
-		context.fillText('尊敬的' + this.name + ':', 60 * obj.ratio, 350 * obj.ratio);
-		context.fillText('衷心感谢您对洪湖市红十字事业的信任与支', 120 * obj.ratio, 410 * obj.ratio);
-		context.fillText('持!我们已收到您的捐款', 60 * obj.ratio, 465 * obj.ratio);
-		// 画横线
-		context.moveTo(380 * obj.ratio, 470 * obj.ratio);
-		context.lineTo(540 * obj.ratio, 470 * obj.ratio);
-		context.stroke();
-		context.setTextAlign('center')
-		context.fillText('¥' + obj.money, 460 * obj.ratio, 465 * obj.ratio);
-		context.setTextAlign('left')
-		context.fillText('元。我们承', 540 * obj.ratio, 465 * obj.ratio);
-		context.fillText('诺绝不辜负大家的信任,遵照您的意愿,将捐款', 60 * obj.ratio, 520 * obj.ratio);
-		context.fillText('全部用于相关救助项目。您的善举将给受助人带', 60 * obj.ratio, 575 * obj.ratio);
-		context.fillText('去温暖!', 60 * obj.ratio, 630 * obj.ratio);
-		context.fillText('爱心无界,情义无价。谨以此信表达谢意,', 120 * obj.ratio, 680 * obj.ratio);
-
-		context.fillText('我们因您更有力量,因您倍感温暖!', 60 * obj.ratio, 735 * obj.ratio);
-		// context.fillText('谨表谢意', (580 * obj.ratio), 680 * obj.ratio)
-		// context.setTextAlign('right')
-		context.fillText('洪湖市红十字会', 450 * obj.ratio, 850 * obj.ratio);
-        context.fillText(obj.add_time, 450 * obj.ratio, 910 * obj.ratio);
-		// 插入二维码
-		// console.log(codeX, codeY, codeSize, 999)
-		context.drawImage(src, codeX, codeY, codeSize, codeSize);
-
-		// 生成
-		context.draw(false, e => {
-			uni.canvasToTempFilePath({
-				x: 0,
-				y: 0,
-				width: obj.canWeidth,
-				height: obj.canHeight,
-				destWidth: obj.canWeidth,
-				destHeight: obj.canHeight,
-				canvasId: 'qrShareBox',
-				success: function(res) {
-					console.log(333, res);
-					// 在H5平台下,tempFilePath 为 base64
-					obj.showcanvas = false;
-					obj.img = res.tempFilePath;
-				}
-			});
-		});
-	},
-	onShow() {
-		var animation = uni.createAnimation();
-		this.animation = animation;
-		if (this.isStop) {
-			// 使用动画
-			this.scaleAndScale();
-			this.timer = setInterval(() => {
-				//创建定时器,3秒执行异一次
-				this.scaleAndScale();
-				// console.log('每三秒执行一次 , 达到往复运动的效果')
-			}, 1000);
-		} else {
-			this.noscaleAndScale();
-		}
-	},
-	onLoad(option) {
-		console.log(333, option);
-		this.money = option.money;
-		this.name = decodeURI(option.name)
-		this.add_time =decodeURI(option.time)
-		this.IndexShare();
-		this.ScanAudio(true);
-	},
-	onHide() {
-		//在页面隐藏时也要清除定时器
-		if (this.timer) {
-			// console.log('清除定时器-' + this.timer)
-			clearInterval(this.timer);
-		}
-	},
-	onUnload() {
-		//在页面卸载时清除定时器 避免出现多个定时器连续创建动画
-		if (this.timer) {
-			console.log('清除定时器-' + this.timer);
-			clearInterval(this.timer);
-		}
-	},
-	methods: {
-		// 分享
-		IndexShare() {
-			let obj = this;
-			// let money = obj.money;
-			let item = {
-				link: obj.$store.state.baseURL + '/index/#/pages/form/donaSuccess?money=' + obj.money + '&name=' + encodeURI(obj.name) + '&time=' + encodeURI(obj.add_time), // 分享链接
-				imgUrl: obj.$store.state.baseURL + '/index/static/img/002.png',
-				desc: '弘扬红十字精神,传播红十字观念,宣传红十字工作,这是一个汇聚爱心、救助之家力量的平台!',
-				title: '来自洪湖市红十字会的感谢信',
-				success: console.log('分享加载成功')
-			};
-			console.log('分享加', item);
-			weixindata(item);
-		},
-		musicClick() {
-			// if (this.isRoate) {
-			// 	this.isRoate = false
-			// 	this.stopScanAudio()
-			// } else {
-			// 	this.isRoate = true
-			// 	this.ScanAudio()
-			// }
-		},
-		play() {
-			this.playing = !this.playing;
-			this.ScanAudio(this.playing);
-			if (this.playing == true) {
-				this.timer = setInterval(() => {
-					//创建定时器,3秒执行异一次
-					this.scaleAndScale();
-					console.log('每1秒执行一次');
-				}, 1000);
-			} else {
-				clearInterval(this.timer);
-			}
-			// var music = uni.createInnerAudioContext();
-			// music.src= "../../static/audio/xx.mp3"; //选择播放的音频
-			//   music.onPause(); //暂停播放
-			// 	console.log('暂停播放')
-			// console.log('dianjizanting')
-			// this.stopAudio()
-			// this.playing = !this.playing; //背景音乐点击,暂停或继续
-		},
-		// 定义动画内容
-		scaleAndScale() {
-			// 定义动画内容
-			// this.animation.scale(1.2, 1.2).step() //先放大1,2倍
-			// this.animation.scale(1, 1).step() //缩小至原来的大小
-			// 导出动画数据传递给data层
-			// this.animationData = this.animation.export(); //每次执行导出动画时 会覆盖之前的动画
-			this.animation.rotate(this.demo).step({
-				duration: 1000
-			});
-			this.animationData = this.animation.export();
-			this.demo += 360;
-		},
-		noscaleAndScale() {
-			this.animation.rotate(0).step({
-				duration: 1000
-			});
-			this.animationData = this.animation.export();
-		}
-		// ScanAudio(){
-		// 	this.$api.music.play(); //执行播放
-		// 				console.log('执行播放')
-		// }
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	width: 100%;
-	height: 100%;
-}
-
-.content {
-	// background-color: pink;
-	width: 100%;
-	height: 100%;
-	position: relative;
-
-	.bgimg {
-		width: 100%;
-		height: 100%;
-
-		// background-color: pink;
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-
-	.tki-qrcode-canvas {
-		width: 750rpx;
-		height: 1350rpx;
-		margin: 0 auto;
-		// background-color: pink;
-	}
-
-	.box {
-		// position: absolute;
-		// left: 0;
-		// top: 0;
-		// background-color: pink;
-		// width: 100%;
-		// height: 100%;
-		// display: flex;
-		// flex-direction: column;
-		// align-items: center;
-		// color: #FFFFFF;
-		// padding: 0rpx 32rpx 0 32rpx;
-		color: #ffffff;
-		width: 100%;
-		height: 100vh;
-		// background-color: pink;
-
-		.music {
-			// width: 55rpx;
-			// height: 55rpx;
-			border-radius: 28rpx;
-			// background-color: pink;
-			position: absolute;
-			left: 40rpx;
-			top: 100rpx;
-			z-index: 999;
-		}
-
-		// .title {
-		// 	margin-top: 234rpx;
-		// 	font-size: 54rpx;
-		// }
-
-		// .main {
-		// 	margin-top: 20rpx;
-		// 	font-size: 32rpx;
-
-		// 	.box-2 {
-		// 		text-indent: 68rpx;
-		// 		margin-top: 12rpx;
-		// 	}
-		// }
-
-		// .footer {
-		// 	margin-top: 32rpx;
-		// 	// background-color: pink;
-		// 	width: 100%;
-
-		// 	.box-1 {
-		// 		display: flex;
-		// 		justify-content: flex-end;
-		// 		font-size: 28rpx;
-		// 		// padding-right: 14rpx;
-		// 	}
-		// }
-	}
-
-	// .playing {
-	// 		animation: run 10s linear 0s infinite;
-	// 	}
-
-	// .player {
-
-	// 	width: 65rpx;
-	// 	height: 65rpx;
-	// 	border-radius: 50%;
-	// 	background-color: rgba(0, 0, 0, 0.1);
-	// 	z-index: 999999;
-	// }
-
-	.keepgo {
-		animation-play-state: paused;
-	}
-	.imgbox {
-		height: 1350rpx;
-		width: 750rpx;
-	}
-}
-.image {
-	width: 100%;
-	height: 100%;
-}
+<template>
+	<view class="content">
+		<view class="box">
+			<view class="music" v-if="money*1 < 1000">
+				<view class="player playing" :class="playing ? 'none' : 'keepgo'" @click.stop="play">
+					<image src="../../static/img/music.png" style="width: 68rpx;height: 68rpx;"
+						:animation="animationData"></image>
+				</view>
+			</view>
+			<canvas v-if="showcanvas" id="qrShareBox" canvas-id="qrShareBox" class="tki-qrcode-canvas" />
+			<image class="imgbox" v-else :src="img"></image>
+		</view>
+		<!-- <image class="image" src="../../static/img/thinks.png" mode=""></image> -->
+	</view>
+</template>
+
+<script>
+	import {
+		weixindata
+	} from '@/utils/wxAuthorized.js';
+	export default {
+		data() {
+			return {
+				money: '',
+				url: '',
+				img: '',
+				showcanvas: true,
+				loading: true, //是否载入图片中
+				size: 180,
+				ratio: 1, //页面比例用于计算
+				canHeight: '',
+				canWeidth: '',
+				playing: true,
+				current: {
+					src: '../../static/audio/xx.mp3'
+				},
+				rotateIndex: '',
+				animation: {},
+				animationData: {},
+				audioAction: {
+					method: 'pause'
+				},
+				ran: -1,
+				isStop: true,
+				demo: 0,
+				name: '',
+				add_time: '',
+
+			};
+		},
+		onReady() {
+			let query = uni.createSelectorQuery();
+			let obj = this;
+			console.log(999, obj.money);
+			// 获取页面比例
+			query
+				.select('.box')
+				.fields({
+						size: true
+					},
+					e => {
+						console.log('获取页面比例', e);
+						// 保存比例
+						this.ratio = e.width / 750;
+					}
+				)
+				.exec();
+			// 获取画布宽高信息
+			query
+				.select('#qrShareBox')
+				.fields({
+						size: true
+					},
+					e => {
+						console.log('获取画布宽高信息', e);
+						obj.canHeight = e.height;
+						obj.canWeidth = e.width;
+					}
+				)
+				.exec();
+			if (obj.money * 1 >= 1000) {
+				let ctxBg = '/static/img/jkzs.jpg'; //画布背景
+				let context = uni.createCanvasContext('qrShareBox');
+				console.log(context,'context')
+				context.drawImage(ctxBg, 0, 0, obj.canWeidth, obj.canHeight);
+				const codeSize = obj.size * obj.ratio; //计算二维码大小
+				const codeX = ((750 - obj.size) * obj.ratio) / 2; //二维码所在x轴位置
+				const codeY = 960 * obj.ratio; //二维码所在y轴位置
+
+				const codeBoxColor = '#FFFFFF'; //包裹框颜色
+				const codeBoxWidht = 0; //包裹边框宽度
+				const codeBoxSize = (codeBoxWidht / 2) * obj.ratio; //计算二维码白色包裹框大小
+				const codeBoxX = codeX - codeBoxSize; //包裹框初始X轴
+				const codeBoxY = codeY - codeBoxSize; //包裹框初始Y轴
+				const codeBoxEnd = codeSize + codeBoxWidht * obj.ratio; //计算包裹框大小
+				const fontTop = codeY + codeBoxEnd + (codeBoxWidht + 20) * obj.ratio; //文字距离上边距高度
+				const fontSize = 24 * obj.ratio; //文字大小
+				const fontText = ''; //文字内容
+				const fontLeft = (codeSize - fontSize * fontText.length) / 2 + codeX; //文字左侧距离
+				context.setFillStyle('#000');
+				// context.fillText('感谢信', ((750 - obj.size) * obj.ratio) / 2, 260 * obj.ratio)
+				context.setFontSize(32 * obj.ratio);
+				context.set
+				context.fillText(this.name + ' 捐款 ' + (this.money*1) + '元', 80 * obj.ratio, 680 * obj.ratio);
+				context.fillText('上海市长宁区红十字会', 365 * obj.ratio, 1010 * obj.ratio);
+				context.fillText(obj.add_time, 440 * obj.ratio, 1070 * obj.ratio);
+				// 生成
+				context.draw(false, e => {
+					uni.canvasToTempFilePath({
+						x: 0,
+						y: 0,
+						width: obj.canWeidth,
+						height: obj.canHeight,
+						destWidth: obj.canWeidth,
+						destHeight: obj.canHeight,
+						canvasId: 'qrShareBox',
+						success: function(res) {
+							console.log(333, res);
+							// 在H5平台下,tempFilePath 为 base64
+							obj.showcanvas = false;
+							obj.img = res.tempFilePath;
+						}
+					});
+				});
+			} else {
+				let ctxBg = '/static/img/thanks1.png'; //画布背景
+				let src = '/static/icon/erweima.jpg'; // 二维码
+
+				let context = uni.createCanvasContext('qrShareBox');
+				// 插入背景图片
+				console.log('插入背景图片', ctxBg, 0, 0, obj.canWeidth, obj.canHeight);
+				context.drawImage(ctxBg, 0, 0, obj.canWeidth, obj.canHeight);
+
+				const codeSize = obj.size * obj.ratio; //计算二维码大小
+				const codeX = ((750 - obj.size) * obj.ratio) / 2; //二维码所在x轴位置
+				const codeY = 960 * obj.ratio; //二维码所在y轴位置
+
+				const codeBoxColor = '#FFFFFF'; //包裹框颜色
+				const codeBoxWidht = 0; //包裹边框宽度
+				const codeBoxSize = (codeBoxWidht / 2) * obj.ratio; //计算二维码白色包裹框大小
+				const codeBoxX = codeX - codeBoxSize; //包裹框初始X轴
+				const codeBoxY = codeY - codeBoxSize; //包裹框初始Y轴
+				const codeBoxEnd = codeSize + codeBoxWidht * obj.ratio; //计算包裹框大小
+				const fontTop = codeY + codeBoxEnd + (codeBoxWidht + 20) * obj.ratio; //文字距离上边距高度
+				const fontSize = 24 * obj.ratio; //文字大小
+				const fontText = ''; //文字内容
+				const fontLeft = (codeSize - fontSize * fontText.length) / 2 + codeX; //文字左侧距离
+
+				// // 插入文字
+				context.setFontSize(28);
+				context.setFillStyle('#d5493b');
+				context.fillText('感谢信', ((750 - obj.size) * obj.ratio) / 2, 260 * obj.ratio)
+				context.setFontSize(30 * obj.ratio);
+				context.fillText('尊敬的' + this.name + ':', 60 * obj.ratio, 350 * obj.ratio);
+				context.fillText('衷心感谢您对长宁区红十字事业的信任与支', 120 * obj.ratio, 410 * obj.ratio);
+				context.fillText('持!我们已收到您的捐款', 60 * obj.ratio, 465 * obj.ratio);
+				// 画横线
+				context.moveTo(380 * obj.ratio, 470 * obj.ratio);
+				context.lineTo(540 * obj.ratio, 470 * obj.ratio);
+				context.stroke();
+				context.setTextAlign('center')
+				context.fillText('¥' + obj.money, 460 * obj.ratio, 465 * obj.ratio);
+				context.setTextAlign('left')
+				context.fillText('元。我们承', 540 * obj.ratio, 465 * obj.ratio);
+				context.fillText('诺绝不辜负大家的信任,遵照您的意愿,将捐款', 60 * obj.ratio, 520 * obj.ratio);
+				context.fillText('全部用于相关救助项目。您的善举将给受助人带', 60 * obj.ratio, 575 * obj.ratio);
+				context.fillText('去温暖!', 60 * obj.ratio, 630 * obj.ratio);
+				context.fillText('爱心无界,情义无价。谨以此信表达谢意,', 120 * obj.ratio, 680 * obj.ratio);
+
+				context.fillText('我们因您更有力量,因您倍感温暖!', 60 * obj.ratio, 735 * obj.ratio);
+				// context.fillText('谨表谢意', (580 * obj.ratio), 680 * obj.ratio)
+				// context.setTextAlign('right')
+				context.fillText('上海市长宁区红十字会', 385* obj.ratio, 850 * obj.ratio);
+				context.fillText(obj.add_time, 455 * obj.ratio, 910 * obj.ratio);
+				// 插入二维码
+				// console.log(codeX, codeY, codeSize, 999)
+				context.drawImage(src, codeX, codeY, codeSize, codeSize);
+
+				// // 生成
+				// context.draw(false, e => {
+				// 	uni.canvasToTempFilePath({
+				// 		x: 0,
+				// 		y: 0,
+				// 		width: obj.canWeidth,
+				// 		height: obj.canHeight,
+				// 		destWidth: obj.canWeidth,
+				// 		destHeight: obj.canHeight,
+				// 		canvasId: 'qrShareBox',
+				// 		success: function(res) {
+				// 			console.log(333, res);
+				// 			// 在H5平台下,tempFilePath 为 base64
+				// 			obj.showcanvas = false;
+				// 			obj.img = res.tempFilePath;
+				// 		}
+				// 	});
+				// });
+				// 生成
+				context.draw(false, e => {
+					uni.canvasToTempFilePath({
+						x: 0,
+						y: 0,
+						width: obj.canWeidth,
+						height: obj.canHeight,
+						destWidth: obj.canWeidth,
+						destHeight: obj.canHeight,
+						canvasId: 'qrShareBox',
+						success: function(res) {
+							console.log(333, res);
+							// 在H5平台下,tempFilePath 为 base64
+							obj.showcanvas = false;
+							obj.img = res.tempFilePath;
+						}
+					});
+				});
+			}
+
+
+
+		},
+		onShow() {
+			var animation = uni.createAnimation();
+			this.animation = animation;
+			if (this.isStop) {
+				// 使用动画
+				this.scaleAndScale();
+				this.timer = setInterval(() => {
+					//创建定时器,3秒执行异一次
+					this.scaleAndScale();
+					// console.log('每三秒执行一次 , 达到往复运动的效果')
+				}, 1000);
+			} else {
+				this.noscaleAndScale();
+			}
+		},
+		onLoad(option) {
+			console.log(333, option);
+			this.money = option.money;
+			this.name = decodeURI(option.name)
+			this.add_time = decodeURI(option.time)
+			this.IndexShare();
+			this.ScanAudio(true);
+		},
+		onHide() {
+			//在页面隐藏时也要清除定时器
+			if (this.timer) {
+				// console.log('清除定时器-' + this.timer)
+				clearInterval(this.timer);
+			}
+		},
+		onUnload() {
+			//在页面卸载时清除定时器 避免出现多个定时器连续创建动画
+			if (this.timer) {
+				console.log('清除定时器-' + this.timer);
+				clearInterval(this.timer);
+			}
+		},
+		methods: {
+			// 分享
+			IndexShare() {
+				let obj = this;
+				// let money = obj.money;
+				let item = {
+					link: obj.$store.state.baseURL + '/index/#/pages/form/donaSuccess?money=' + obj.money + '&name=' +
+						encodeURI(obj.name) + '&time=' + encodeURI(obj.add_time), // 分享链接
+					imgUrl: obj.$store.state.baseURL + '/index/static/img/002.png',
+					desc: '弘扬红十字精神,传播红十字观念,宣传红十字工作,这是一个汇聚爱心、救助之家力量的平台!',
+					title: '来自长宁区红十字会的感谢信',
+					success: console.log('分享加载成功')
+				};
+				console.log('分享加', item);
+				weixindata(item);
+			},
+			musicClick() {
+				// if (this.isRoate) {
+				// 	this.isRoate = false
+				// 	this.stopScanAudio()
+				// } else {
+				// 	this.isRoate = true
+				// 	this.ScanAudio()
+				// }
+			},
+			play() {
+				this.playing = !this.playing;
+				this.ScanAudio(this.playing);
+				if (this.playing == true) {
+					this.timer = setInterval(() => {
+						//创建定时器,3秒执行异一次
+						this.scaleAndScale();
+						console.log('每1秒执行一次');
+					}, 1000);
+				} else {
+					clearInterval(this.timer);
+				}
+				// var music = uni.createInnerAudioContext();
+				// music.src= "../../static/audio/xx.mp3"; //选择播放的音频
+				//   music.onPause(); //暂停播放
+				// 	console.log('暂停播放')
+				// console.log('dianjizanting')
+				// this.stopAudio()
+				// this.playing = !this.playing; //背景音乐点击,暂停或继续
+			},
+			// 定义动画内容
+			scaleAndScale() {
+				// 定义动画内容
+				// this.animation.scale(1.2, 1.2).step() //先放大1,2倍
+				// this.animation.scale(1, 1).step() //缩小至原来的大小
+				// 导出动画数据传递给data层
+				// this.animationData = this.animation.export(); //每次执行导出动画时 会覆盖之前的动画
+				this.animation.rotate(this.demo).step({
+					duration: 1000
+				});
+				this.animationData = this.animation.export();
+				this.demo += 360;
+			},
+			noscaleAndScale() {
+				this.animation.rotate(0).step({
+					duration: 1000
+				});
+				this.animationData = this.animation.export();
+			}
+			// ScanAudio(){
+			// 	this.$api.music.play(); //执行播放
+			// 				console.log('执行播放')
+			// }
+		}
+	};
+</script>
+
+<style lang="scss">
+	page {
+		width: 100%;
+		height: 100%;
+	}
+
+	.content {
+		// background-color: pink;
+		width: 100%;
+		height: 100%;
+		position: relative;
+
+		.bgimg {
+			width: 100%;
+			height: 100%;
+
+			// background-color: pink;
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.tki-qrcode-canvas {
+			width: 750rpx;
+			height: 1350rpx;
+			margin: 0 auto;
+			// background-color: pink;
+		}
+
+		.box {
+			// position: absolute;
+			// left: 0;
+			// top: 0;
+			// background-color: pink;
+			// width: 100%;
+			// height: 100%;
+			// display: flex;
+			// flex-direction: column;
+			// align-items: center;
+			// color: #FFFFFF;
+			// padding: 0rpx 32rpx 0 32rpx;
+			color: #ffffff;
+			width: 100%;
+			height: 100vh;
+			// background-color: pink;
+
+			.music {
+				// width: 55rpx;
+				// height: 55rpx;
+				border-radius: 28rpx;
+				// background-color: pink;
+				position: absolute;
+				left: 40rpx;
+				top: 100rpx;
+				z-index: 999;
+			}
+
+			// .title {
+			// 	margin-top: 234rpx;
+			// 	font-size: 54rpx;
+			// }
+
+			// .main {
+			// 	margin-top: 20rpx;
+			// 	font-size: 32rpx;
+
+			// 	.box-2 {
+			// 		text-indent: 68rpx;
+			// 		margin-top: 12rpx;
+			// 	}
+			// }
+
+			// .footer {
+			// 	margin-top: 32rpx;
+			// 	// background-color: pink;
+			// 	width: 100%;
+
+			// 	.box-1 {
+			// 		display: flex;
+			// 		justify-content: flex-end;
+			// 		font-size: 28rpx;
+			// 		// padding-right: 14rpx;
+			// 	}
+			// }
+		}
+
+		// .playing {
+		// 		animation: run 10s linear 0s infinite;
+		// 	}
+
+		// .player {
+
+		// 	width: 65rpx;
+		// 	height: 65rpx;
+		// 	border-radius: 50%;
+		// 	background-color: rgba(0, 0, 0, 0.1);
+		// 	z-index: 999999;
+		// }
+
+		.keepgo {
+			animation-play-state: paused;
+		}
+
+		.imgbox {
+			height: 1350rpx;
+			width: 750rpx;
+		}
+	}
+
+	.image {
+		width: 100%;
+		height: 100%;
+	}
 </style>

+ 1176 - 1001
pages/form/tovolApply.vue

@@ -1,1002 +1,1177 @@
-<template>
-	<view class="content">
-		<!-- <view class="top">
-			<image src="../../static/img/activity.png" mode=""></image>
-		</view>
- -->
-		<view class="box">
-			<!-- <view class="red-box">
-				申请登记表
-			</view> -->
-			<view class="box-1">
-				<view class="box-left">
-					姓名
-					<text class="imp">*</text>
-					
-				</view>
-				<input type="text" placeholder="请填写你的名字" value="" class="list-input" v-model="name" />
-			</view>
-
-			<view class="box-1">
-				<view class="box-left">
-					性别
-					<text class="imp">*</text>
-					
-				</view>
-				<picker @change="bindPickerSex" :value="index" :range="array">
-					<view class="box-right">{{ sex == '0'? '男' : sex == '1'? '女' : sex }}</view>
-				</picker>
-			</view>
-
-			<view class="box-1">
-				<view class="box-left">
-					出生年月
-					<text class="imp">*</text>
-					
-				</view>
-				<picker mode="date" :value="birth" :start="startDate" :end="endDate" @change="bindDateChange">
-					<view class="box-right">{{ birth }}</view>
-				</picker>
-			</view>
-			<view class="upload-box">
-				<view class="upload-left">
-					照片
-					<text class="imp">*</text>
-					
-				</view>
-				<view class="upload-right">
-					<image :src="cardimg" mode="" class="upload-img" @click.stop="imgsub" v-if="cardimg"></image>
-					<image src="../../static/images/upload.png" class="upload-img" mode="" v-if="!cardimg" @click.stop="imgsub"></image>
-				</view>
-			</view>
-			<view class="box-1">
-				<view class="box-left">
-					移动电话
-					<text class="imp">*</text>
-					
-				</view>
-				<input type="text" placeholder="请填写移动电话" value="" class="list-input" v-model="phone" />
-			</view>
-
-
-			<view class="box-1">
-				<view class="box-left">电子邮件(选填)</view>
-				<input type="text" placeholder="请填写电子邮件" value="" class="list-input" v-model="email" />
-			</view>
-			<view class="box-1">
-				<view class="box-left">联系地址<text class="imp">*</text></view>
-				<input type="text" value="" placeholder="请填写联系地址" class="list-input" v-model="address" />
-			</view>
-			<view class="box-1">
-				<view class="box-left">工作单位(选填)</view>
-				<input type="text" value="" placeholder="请填写工作单位" class="list-input" v-model="work" />
-			</view>
-			<view class="box-1">
-				<view class="box-left">职业/职务/专业(选填)</view>
-				<input type="text" placeholder="请填写职业/职务/专业" value="" class="list-input" v-model="specialty" />
-			</view>
-
-			<view class="box-1">
-				<view class="box-left">教育程度<text class="imp">*</text></view>
-				<picker @change="bindPickerEdu" :value="index" :range="chooseEdu">
-					<view class="box-right">{{ education }}</view>
-				</picker>
-			</view>
-			<view class="box-1">
-				<view class="box-left">
-					是否受过志愿服务
-					<text class="imp">*</text>
-					
-				</view>
-			</view>
-			<view class="uni-list">
-				<radio-group @change="radioChange">
-					<view class="radio-list flex_item">
-						<label class="uni-list-cell uni-list-cell-pd flex_item" v-for="(item, index) in is_vol" :key="item.id">
-							<view><radio style="transform:scale(0.7)" color="#E71F2C" :value="item.id" :checked="index === current" /></view>
-							<view>{{ item.name }}</view>
-						</label>
-					</view>
-				</radio-group>
-			</view>
-			<view class="box-1">
-				<view class="box-left">
-					有无服务经验
-					<text class="imp">*</text>
-				</view>
-			</view>
-			<view class="uni-list">
-				<radio-group @change="radioChange1">
-					<view class="radio-list flex_item">
-						<label class="uni-list-cell uni-list-cell-pd flex_item" v-for="(item, index) in is_experience" :key="item.id">
-							<view><radio style="transform:scale(0.7)" color="#E71F2C" :value="item.id" :checked="index === current" /></view>
-							<view>{{ item.name }}</view>
-						</label>
-					</view>
-				</radio-group>
-			</view>
-			<view class="list-box">
-				<view class="list-title">可提供服务的时间</view>
-				<view class="tip">请选择适当方格,可选多项</view>
-				<view class="content_box">
-					<view class="box-1" style="margin: 10rpx;">
-						<view class="box-left">
-							开始时间
-							<text class="imp">*</text>
-							
-						</view>
-						<picker mode="time" :value="start_hour" @change="startTimeChange">
-							<view class="box-right">{{ start_hour }}</view>
-						</picker>
-					</view>
-					<view class="box-1" style="margin: 10rpx;">
-						<view class="box-left">
-							结束时间
-							<text class="imp">*</text>
-							
-						</view>
-						<picker mode="time" :value="end_hour" :start="start_hour" @change="endTimeChange">
-							<view class="box-right">{{ end_hour }}</view>
-						</picker>
-					</view>
-				</view>
-				<view class="content_box">
-					<view class="list-name">
-						日期
-						<text class="icon">*</text>
-					</view>
-					<view class="uni-list">
-						<checkbox-group @change="checkboxChange1">
-							<view class="radio-list flex_item">
-								<label class="uni-list-cell uni-list-cell-pd flex_item" v-for="item in items" :key="item.name">
-									<view><checkbox :value="item.value" style="transform:scale(0.7)" color="#E71F2C" :checked="item.checked" /></view>
-									<view>{{ item.name }}</view>
-								</label>
-							</view>
-						</checkbox-group>
-					</view>
-				</view>
-			</view>
-			<view class="list-box tpl-box">
-				<view class="list-title">有兴趣参与的工作</view>
-				<view class="tip">请选择适当方格,可选多项</view>
-				<view class="content_box">
-					<view class="uni-list">
-						<checkbox-group @change="checkboxChange2">
-							<view class="radio-list flex_item">
-								<label class="uni-list-cell uni-list-cell-pd flex_item" v-for="item in works" :key="item.name">
-									<view><checkbox :value="item.name" style="transform:scale(0.7)" color="#E71F2C" :checked="item.checked" /></view>
-									<view>{{ item.name }}</view>
-								</label>
-							</view>
-						</checkbox-group>
-					</view>
-					<input class="worksInput" type="text" v-model="worksText" />
-				</view>
-			</view>
-			<view class="list-box tpl-box">
-				<view class="list-title">专长</view>
-				<view class="tip">请选择适当方格,可选多项</view>
-				<view class="content_box">
-					<view class="uni-list">
-						<checkbox-group @change="checkboxChange3">
-							<view class="radio-list flex_item">
-								<label class="uni-list-cell uni-list-cell-pd flex_item" v-for="item in expertise" :key="item.name">
-									<view><checkbox :value="item.name" style="transform:scale(0.7)" color="#E71F2C" :checked="item.checked" /></view>
-									<view>{{ item.name }}</view>
-								</label>
-							</view>
-						</checkbox-group>
-					</view>
-					<input class="worksInput" type="text" v-model="expertiseText" />
-				</view>
-			</view>
-			<view class="list-box">
-				<view class="list-title">个人声明</view>
-				<view class="check_box">
-					<view>
-						<radio style="transform: scale(0.75)" @click="Getcheckbox" color="#E62129" :checked="Getchecked" />
-						本人同意将个人资料送交红十字志愿者工作委员会,申请注册登记,成为光荣的红十字志愿工作者,并乐于接受志愿工作安排,提供服务。
-					</view>
-				</view>
-			</view>
-		</view>
-
-		<view class="buttom" :class="{ action: loding }" @click="!loding ? join() : ''">立即提交</view>
-	</view>
-</template>
-
-<script>
-	import {
-		saveUrl,
-		interceptor
-	} from '@/utils/loginUtils.js';
-	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-import { add_volunteers } from '@/api/index.js';
-import { upload } from '@/api/ask.js';
-export default {
-	data() {
-		const currentDate = this.getDate({
-			format: true
-		});
-		return {
-			otherjob: '',
-			otherspe: '',
-			loding: false, //是否提交中
-			array: ['男', '女'],
-			chooseEdu: ['小学以下', '小学', '初中', '高中/中专', '大专/高职','本科','研究生', '硕士', '博士', '博士后'],
-			chooseVol: ['有', '无'],
-			is_experience: [
-				{
-					id: '1',
-					name: '有'
-				},
-				{
-					id: '2',
-					name: '无'
-				}
-			],
-			// is_experience: '',
-			chooseExp: ['是', '否'],
-			start_hour:'选择开始时间',//开始时间
-			end_hour:'选择结束时间',//
-			quantum: '',
-			//日期
-			items: [
-				{
-					value: '2',
-					name: '星期一'
-				},
-				{
-					value: '3',
-					name: '星期二'
-				},
-				{
-					value: '4',
-					name: '星期三'
-				},
-				{
-					value: '5',
-					name: '星期四'
-				},
-				{
-					value: '6',
-					name: '星期五'
-				},
-				{
-					value: '7',
-					name: '星期六'
-				},
-				{
-					value: '1',
-					name: '星期日'
-				}
-			],
-			dates: '',
-			//有兴趣参与的工作
-			works: [
-				{
-					value: '1',
-					name: '赈灾工作'
-				},
-				{
-					value: '2',
-					name: '救护培训'
-				},
-				{
-					value: '3',
-					name: '护送服务'
-				},
-				{
-					value: '4',
-					name: '编辑及出版'
-				},
-				{
-					value: '5',
-					name: '医疗护理服务'
-				},
-				{
-					value: '6',
-					name: '探访服务'
-				},
-				{
-					value: '7',
-					name: '外语翻译'
-				},
-				{
-					value: '8',
-					name: '调查服务'
-				},
-				{
-					value: '9',
-					name: '联络服务'
-				},
-				{
-					value: '10',
-					name: '宣传及推广'
-				},
-				{
-					value: '11',
-					name: '文书档案工作'
-				},
-				{
-					value: '12',
-					name: '其它(请注明)'
-				}
-			],
-			taste: '',
-			worksText: '', //工作其他
-			//专长
-			expertise: [
-				{
-					value: '1',
-					name: '医疗护理'
-				},
-				{
-					value: '2',
-					name: '紧急救护'
-				},
-				{
-					value: '3',
-					name: '出版/美术设计'
-				},
-				{
-					value: '4',
-					name: '影音制作'
-				},
-				{
-					value: '5',
-					name: '文艺演出'
-				},
-				{
-					value: '6',
-					name: '网络软件'
-				},
-				{
-					value: '7',
-					name: '摄影摄像'
-				},
-				{
-					value: '8',
-					name: '电脑中文打字'
-				},
-				{
-					value: '9',
-					name: '汽车驾驶'
-				},
-				{
-					value: '10',
-					name: '外语翻译'
-				},
-				{
-					value: '11',
-					name: '法律咨询'
-				},
-				{
-					value: '12',
-					name: '文案策划'
-				},
-				{
-					value: '13',
-					name: '其它(请注明)'
-				}
-			],
-			speciali: '',
-			current: '',
-			is_vol: [
-				{
-					id: '1',
-					name: '有'
-				},
-				{
-					id: '0',
-					name: '无'
-				}
-			],
-			index: 0,
-			// mz: '',
-			email: '',
-			cardimg: '', //证件照
-			// card: '',
-			// checklist: [],
-			name: '',
-			sex: '请选择你的性别',
-			birth: '请选择你的生日',
-			fillingDate: '',
-			phone: '',
-			address: '',
-			work: '',
-			specialty: '',
-			education: '请选择教育程度',
-			educationid:'',
-			checked1: '',
-			checked: '',
-			expertiseText: '', //专长其他
-			Getchecked: false //个人声明
-		};
-	},
-	onShow() {
-		if (this.hasLogin) {
-			// this.loadBaseData();
-		} else {
-			saveUrl();
-			uni.showModal({
-				title: '登录',
-				content: '您未登录,是否马上登陆?',
-				success: e => {
-					if (e.confirm) {
-						interceptor();
-					}
-				},
-				fail: e => {
-					console.log(e);
-				}
-			});
-		}
-	},
-	computed: {
-		...mapState('user', ['userInfo', 'baseURL', 'hasLogin']),
-		startDate() {
-			return this.getDate('start');
-		},
-		endDate() {
-			return this.getDate('end');
-		}
-	},
-	methods: {
-		async join() {
-			let obj = this;
-			if (obj.name == '') {
-				obj.$api.msg('请输入您的姓名');
-				return;
-			}
-			if (obj.sex === '') {
-				obj.$api.msg('请输入您的性别');
-				return;
-			}
-			if (obj.birth == '' || obj.birth == '请选择你的生日') {
-				obj.$api.msg('请填写您的生日');
-				return;
-			}
-			const reg = /^(\+?0?86-?)?1[\d]\d{9}$/;
-			if (obj.phone == '') {
-				obj.$api.msg('请填写您的移动电话');
-				return;
-			}
-			if (!reg.test(obj.phone)) {
-				obj.$api.msg('请填写正确的移动电话');
-				return;
-			}
-			// if (obj.address == '') {
-			// 	obj.$api.msg('请填写您的地址');
-			// 	return;
-			// }
-			// /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
-
-			if (obj.checked1 === '') {
-				obj.$api.msg('请选择有无服务经验');
-				return;
-			}
-			if (obj.checked === '') {
-				obj.$api.msg('请选择是否接受过志愿者服务');
-				return;
-			}
-			// if (obj.cardimg == '') {
-			// 	obj.$api.msg('请上传您的证件');
-			// 	return;
-			// }
-			if (!obj.start_hour){
-				this.$api.msg('请选择开始时间!');
-				return;
-			}
-			if (!obj.end_hour){
-				this.$api.msg('请选择结束时间!');
-				return;
-			}
-			if (!obj.dates) {
-				this.$api.msg('请选择日期!');
-				return;
-			}
-			if (obj.Getchecked == false) {
-				this.$api.msg('请阅读并同意个人声明!');
-				return;
-			}
-			// let reg1 = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
-			// if (!reg1.test(obj.card)) {
-			// 	obj.$api.msg('请填写正确的身份证信息');
-			// 	return;
-			// }
-			// if (obj.mz == '') {
-			// 	obj.$api.msg('请填写您所属的名族');
-			// 	return;
-			// }
-			// if (obj.specialty == '') {
-			// 	obj.$api.msg('请填写您的职位');
-			// 	return;
-			// }
-
-			// obj.loding = true;
-			add_volunteers({
-				name: obj.name,//姓名
-				phone: obj.phone,//手机号
-				sex: obj.sex,//性别
-				birth: obj.birth,//生日
-				image: obj.cardimg,//照片
-				email: obj.email,//邮件
-				address: obj.address,//地址
-				work: obj.work, //工作单位
-				specialty: obj.specialty, //职业/职务/专业
-				education: obj.educationid, //教育程度
-				is_vol: obj.checked,//是否受过志愿者服务
-				is_experience: obj.checked1 == 1 ? 0: 1,//有无工作经验
-				start_hour: obj.start_hour,
-				end_hour: obj.end_hour,
-				work_week: obj.dates,//星期几
-				taste: obj.taste,//有兴趣参与的工作
-				taste_title: obj.worksText, //工作其他
-				speciali: obj.speciali,//专长
-				speciali_title: obj.expertiseText,//其他专长
-			})
-				.then(e => {
-					obj.loding = false;
-					obj.sex = '请选择你的性别';
-					obj.education = '请选择教育程度';
-					obj.birth = '请选择你的生日';
-					uni.navigateTo({
-						url: '../joinSuc/joinNow'
-					});
-				})
-				.catch(function(e) {
-					console.log('出错了');
-					console.log(e);
-					obj.loding = false;
-				});
-		},
-		imgsub() {
-			console.log('imgsub');
-			upload({
-				filename: ''
-			}).then(data => {
-				console.log(data,'2222')
-				this.cardimg = data[0].fullurl;
-			});
-		},
-		// 选择性别
-		bindPickerSex: function(e) {
-			this.sex = e.target.value
-			this.index = e.target.value + 1;
-		},
-		// 选择教育程度
-		bindPickerEdu: function(e) {
-			this.education = this.chooseEdu[e.target.value];
-			this.educationid = e.target.value;
-			console.log(this.educationid)
-		},
-		// 选择日期
-		bindDateChange: function(e) {
-			this.birth = e.target.value;
-		},
-		// 选择开始时间
-		startTimeChange: function(e) {
-			console.log(e,'开始时间')
-			this.start_hour = e.target.value;
-		},
-		// 选择结束时间
-		endTimeChange: function(e) {
-			this.end_hour = e.target.value;
-		},
-		//选择填写日期
-		fillingDateChange: function(e) {
-			this.fillingDate = e.target.value;
-		},
-		// 是否参加志愿活动
-		bindPickerVol: function(e) {
-			this.is_vol = this.chooseVol[e.target.value];
-			this.index = e.target.value + 1;
-		},
-		// 有无服务经验
-		radioChange1(evt) {
-			this.checked1 = evt.detail.value;
-			console.log(this.checked1, '有无服务经验');
-		},
-		//是否受过志愿服务
-		radioChange(evt) {
-			this.checked = evt.detail.value;
-			console.log(this.checked, '是否受过志愿服务');
-		},
-		Getcheckbox() {
-			let obj = this;
-			obj.Getchecked = !obj.Getchecked;
-		},
-		getDate(type) {
-			const date = new Date();
-			let year = date.getFullYear();
-			let month = date.getMonth() + 1;
-			let day = date.getDate();
-
-			if (type === 'start') {
-				year = year - 60;
-			} else if (type === 'end') {
-				year = year + 2;
-			}
-			month = month > 9 ? month : '0' + month;
-			day = day > 9 ? day : '0' + day;
-			return `${year}-${month}-${day}`;
-		},
-		//时间段
-		checkboxChange: function(e) {
-			var items = this.days,
-				values = e.detail.value;
-			for (var i = 0, lenI = items.length; i < lenI; ++i) {
-				const item = items[i];
-				if (values.includes(item.value)) {
-					this.$set(item, 'checked', true);
-				} else {
-					this.$set(item, 'checked', false);
-				}
-			}
-			this.quantum = values.join(',');
-			console.log(this.quantum, '时间段');
-		},
-		//日期
-		checkboxChange1: function(e) {
-			var items = this.items,
-				values = e.detail.value;
-			for (var i = 0, lenI = items.length; i < lenI; ++i) {
-				const item = items[i];
-				if (values.includes(item.value)) {
-					this.$set(item, 'checked', true);
-				} else {
-					this.$set(item, 'checked', false);
-				}
-			}
-			this.dates = values.join(',');
-			console.log(this.dates, '日期');
-		},
-		//有兴趣参与的工作
-		checkboxChange2: function(e) {
-			var items = this.works,
-				values = e.detail.value;
-			for (var i = 0, lenI = items.length; i < lenI; ++i) {
-				const item = items[i];
-				if (values.includes(item.value)) {
-					this.$set(item, 'checked', true);
-				} else {
-					this.$set(item, 'checked', false);
-				}
-			}
-			this.taste = values.join(',');
-			console.log(this.taste, '有兴趣参与的工作');
-		},
-		//专长
-		checkboxChange3: function(e) {
-			var items = this.expertise,
-				values = e.detail.value;
-			for (var i = 0, lenI = items.length; i < lenI; ++i) {
-				const item = items[i];
-				if (values.includes(item.value)) {
-					this.$set(item, 'checked', true);
-				} else {
-					this.$set(item, 'checked', false);
-				}
-			}
-			this.speciali = values.join(',');
-			console.log(this.speciali, '专长');
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background-color: #ffffff;
-}
-
-.content {
-	// padding-top: 64rpx;
-	// background-color: #f3afad;
-
-	.top {
-		width: 100%;
-		height: 368rpx;
-
-		image {
-			width: 100%;
-			height: 368rpx;
-		}
-	}
-
-	.info-box {
-		text-indent: 64rpx;
-		margin: 12rpx 0 54rpx;
-		padding: 0 32rpx 20rpx;
-		// border: 3rpx solid #009100;
-		width: 100%;
-		display: flex;
-		flex-direction: column;
-		border-radius: 25rpx;
-		color: #e63931;
-	}
-	.statement {
-		// margin: 32rpx;
-		background-color: #ffffff;
-		// padding: 32rpx 23rpx;
-		border-radius: 12rpx;
-
-		.title {
-			height: 84rpx;
-			display: flex;
-			justify-content: center;
-			align-items: center;
-			font-size: 32rpx;
-			border-bottom: 2rpx dotted #f3f3f3;
-		}
-		.main {
-			padding: 24rpx;
-			text-indent: 48rpx;
-			color: #666;
-			font-weight: 400;
-		}
-	}
-
-	.buttom {
-		width: 100%;
-		height: 100rpx;
-		background: #df2412;
-		margin: 50rpx auto 0;
-		font-size: 36rpx;
-		font-weight: 400;
-		color: #ffffff;
-		line-height: 100rpx;
-		text-align: center;
-
-		&.action {
-			background: #999999;
-		}
-	}
-
-	.box {
-		// margin-top: 44rpx;
-		// width: 690rpx;
-		// margin: 32rpx auto 0;
-		background-color: #ffffff;
-		border-radius: 10rpx;
-		padding: 28rpx 32rpx 84rpx 32rpx;
-		position: relative;
-
-		// .red-box {
-		// 	width: 405rpx;
-		// 	line-height: 66rpx;
-		// 	text-align: center;
-		// 	background: linear-gradient(0deg, #C90F1B, #F14D33);
-		// 	border-radius: 10rpx;
-		// 	font-size: 30rpx;
-		// 	font-weight: 500;
-		// 	color: #FFFFFF;
-		// 	// position: relative;
-		// 	position: absolute;
-		// 	top: -36rpx;
-		// 	left: 50%;
-		// 	transform: translateX(-50%);
-		// 	z-index: 1;
-		// }
-
-		.box-check {
-			font-size: 28rpx;
-			font-weight: 500;
-			color: #666666;
-			line-height: 100rpx;
-		}
-
-		.imp {
-			color: red;
-			margin-left: 5rpx;
-		}
-
-		.check-box {
-			margin: 44rpx 0rpx;
-			padding: 25rpx 25rpx;
-			border: 3rpx solid #e9b2af;
-			width: 100%;
-			display: flex;
-			flex-direction: column;
-			border-radius: 25rpx;
-			color: #e63931;
-
-			.info {
-				margin-bottom: 32rpx;
-				text-align: center;
-			}
-
-			.chooseTim {
-				text-align: center;
-				font-size: 42rpx;
-			}
-			.choose-job {
-				color: #666666;
-				// height: 45rpx; 爱心捐赠
-				.goods_check {
-					display: flex;
-					flex-direction: column;
-					.uni-label-pointer {
-						// width: 50%;
-						// display: flex;
-					}
-				}
-				.other {
-					width: 100%;
-					border-bottom: 2rpx solid #f3f3f3;
-				}
-			}
-
-			.box-cent {
-				font-size: 28rpx;
-				font-weight: 500;
-				color: #666666;
-				display: flex;
-
-				.cent-left {
-					margin-right: 28rpx;
-
-					.left-txt {
-						line-height: 100rpx;
-					}
-				}
-
-				.cent-right {
-					flex: 1;
-					display: flex;
-					justify-content: space-around;
-					.right-check {
-						line-height: 100rpx;
-					}
-				}
-			}
-		}
-
-		.box-1 {
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			width: 100%;
-			margin-top: 42rpx;
-			// height: 133rpx;
-
-			.box-left {
-				padding-left: 2rpx;
-				width: 50%;
-				text-align: left;
-				color: #000000;
-			}
-
-			input {
-				height: 66rpx;
-				line-height: 66rpx;
-				// height: 88rpx;
-			}
-
-			.list-input {
-				padding-left: 24rpx;
-				// margin: 12rpx 0 ;
-				font-size: 28rpx;
-				// line-height: 66rpx;
-				display: flex;
-				align-items: center;
-				width: 50%;
-				flex: 1;
-				color: #000000;
-				text-align: right;
-				padding-right: 24rpx;
-
-				.input-placeholder {
-					height: 70rpx;
-					color: #959595;
-				}
-			}
-
-			.box-right {
-				display: flex;
-				padding-left: 24rpx;
-				height: 66rpx;
-				line-height: 66rpx;
-				border-radius: 22rpx;
-				// margin: 32rpx 36rpx 0 36rpx;
-				width: 100%;
-				padding-right: 24rpx;
-				font-size: 28rpx;
-				color: #959595;
-				text-align: right !important;
-				// line-height: 1;
-			}
-		}
-
-		.upload-box {
-			width: 100%;
-			height: 247rpx;
-			background: #ffffff;
-			// border: 1px solid #E63931;
-			border-radius: 27rpx;
-			display: flex;
-			flex-direction: column;
-			padding: 30rpx 40rpx 30rpx 0;
-			margin: 42rpx auto 30rpx;
-
-			.upload-left {
-				font-weight: 400;
-				color: #000000;
-			}
-
-			.upload-right {
-				flex: 1;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-
-				.upload-img {
-					width: 150rpx;
-					height: 150rpx;
-					margin-top: 24rpx;
-				}
-			}
-		}
-	}
-	.flex_item {
-		display: flex;
-		align-items: center;
-	}
-	.radio-list {
-		display: flex;
-		flex-wrap: wrap;
-		font-size: 28rpx;
-		padding-top: 30rpx;
-		color: #000000;
-		.uni-label-pointer {
-			padding-right: 25rpx;
-			padding-bottom: 30rpx;
-		}
-	}
-	.check_box {
-		padding: 25rpx 25rpx;
-		font-size: 28rpx;
-	}
-	.list-box {
-		background-color: #ffffff;
-		font-size: 28rpx;
-		width: 100%;
-		height: 100%;
-		border-top: 15rpx solid #f2f2f2;
-		color: #222222;
-		.worksInput {
-			margin-bottom: 35rpx;
-			border: 2rpx solid #979797;
-			width: 100%;
-			height: 70rpx;
-			line-height: 70rpx;
-			padding: 0rpx 25rpx;
-			border-radius: 15rpx;
-		}
-
-		.list-title {
-			color: #000000;
-			text-align: center;
-			padding: 30rpx 0rpx;
-			font-size: 34rpx;
-			font-weight: 500;
-			border-bottom: 2rpx dashed #b5b5b5;
-		}
-		.tip {
-			color: #000000;
-			padding-top: 25rpx;
-			width: 100%;
-			text-align: center;
-		}
-		.icon {
-			color: red;
-			margin-left: 5rpx;
-		}
-	}
-}
+<template>
+	<view class="content">
+		<!-- <view class="top">
+			<image src="../../static/img/activity.png" mode=""></image>
+		</view>
+ -->
+		<view class="box">
+			<!-- <view class="red-box">
+				申请登记表
+			</view> -->
+			<view class="box-1">
+				<view class="box-left">
+					姓名
+					<text class="imp">*</text>
+
+				</view>
+				<input type="text" placeholder="请填写您的姓名" value="" class="list-input" v-model="name" />
+			</view>
+
+			<view class="box-1">
+				<view class="box-left">
+					性别
+					<text class="imp">*</text>
+
+				</view>
+				<picker @change="bindPickerSex" :value="index" :range="array">
+					<view class="box-right">{{ sex == '0'? '男' : sex == '1'? '女' : sex }}</view>
+				</picker>
+			</view>
+
+			<view class="box-1">
+				<view class="box-left">
+					出生年月
+					<text class="imp">*</text>
+
+				</view>
+				<picker mode="date" :value="birth" :start="startDate" :end="endDate" @change="bindDateChange">
+					<view class="box-right">{{ birth }}</view>
+				</picker>
+			</view>
+			<!-- <view class="upload-box">
+				<view class="upload-left">
+					照片
+					<text class="imp">*</text>
+					
+				</view>
+				<view class="upload-right">
+					<image :src="cardimg" mode="" class="upload-img" @click.stop="imgsub" v-if="cardimg"></image>
+					<image src="../../static/images/upload.png" class="upload-img" mode="" v-if="!cardimg" @click.stop="imgsub"></image>
+				</view>
+			</view> -->
+			<view class="box-1">
+				<view class="box-left">
+					联系方式
+					<text class="imp">*</text>
+
+				</view>
+				<input type="text" placeholder="请填写联系方式" value="" class="list-input" v-model="phone" />
+			</view>
+
+		</view>
+		<view class="" class="tcc" :style="{'height':height}">
+			<view class="buttom" :class="{ action: loding }" @click="!loding ? join() : ''">下一步</view>
+		</view>
+
+		<uni-popup ref="tishi" type="center" :maskClick="false">
+			<view class="ts-wrap">
+				<view class="ts-tit">
+					志愿者条例
+				</view>
+				<scroll-view scroll-y="true" class="ts-content" @scrolltolower="isbtm = true">
+					<view class="tit">第一章 总 则</view>
+					<view class="xq">
+						 第一条 为了保障志愿者、志愿服务组织、志愿服务对象的合法权益,鼓励和规范志愿服务,发展志愿服务事业,培育和践行社会主义核心价值观,促进社会文明进步,制定本条例。
+					</view>
+					<view class="xq">
+						 第二条 本条例适用于在中华人民共和国境内开展的志愿服务以及与志愿服务有关的活动。
+					</view>
+					<view class="xq">
+						 本条例所称志愿服务,是指志愿者、志愿服务组织和其他组织自愿、无偿向社会或者他人提供的公益服务。
+					</view>
+					<view class="xq">
+						 第三条 开展志愿服务,应当遵循自愿、无偿、平等、诚信、合法的原则,不得违背社会公德、损害社会公共利益和他人合法权益,不得危害国家安全。
+					</view>
+					<view class="xq">
+						第四条 县级以上人民政府应当将志愿服务事业纳入国民经济和社会发展规划,合理安排志愿服务所需资金,促进广覆盖、多层次、宽领域开展志愿服务。
+					</view>
+					<view class="xq">
+						第五条 国家和地方精神文明建设指导机构建立志愿服务工作协调机制,加强对志愿服务工作的统筹规划、协调指导、督促检查和经验推广。
+					</view>
+					<view class="xq">
+						国务院民政部门负责全国志愿服务行政管理工作;县级以上地方人民政府民政部门负责本行政区域内志愿服务行政管理工作。
+					</view>
+					<view class="xq">
+						县级以上人民政府有关部门按照各自职责,负责与志愿服务有关的工作。
+					</view>
+					<view class="xq">
+						工会、共产主义青年团、妇女联合会等有关人民团体和群众团体应当在各自的工作范围内做好相应的志愿服务工作。
+					</view>
+					<view class="tit">
+						第二章 志愿者和志愿服务组织
+					</view>
+					<view class="xq">
+						第六条 本条例所称志愿者,是指以自己的时间、知识、技能、体力等从事志愿服务的自然人。
+					</view>
+					<view class="xq">
+						本条例所称志愿服务组织,是指依法成立,以开展志愿服务为宗旨的非营利性组织。
+					</view>
+					<view class="xq">
+						第七条 志愿者可以将其身份信息、服务技能、服务时间、联系方式等个人基本信息,通过国务院民政部门指定的志愿服务信息系统自行注册,也可以通过志愿服务组织进行注册。
+					</view>
+					<view class="xq">
+						志愿者提供的个人基本信息应当真实、准确、完整。
+					</view>
+					<view class="xq">
+						第八条 志愿服务组织可以采取社会团体、社会服务机构、基金会等组织形式。志愿服务组织的登记管理按照有关法律、行政法规的规定执行。
+					</view>
+					<view class="xq">
+						第九条 志愿服务组织可以依法成立行业组织,反映行业诉求,推动行业交流,促进志愿服务事业发展。
+					</view>
+					<view class="xq">
+						第十条 在志愿服务组织中,根据中国共产党章程的规定,设立中国共产党的组织,开展党的活动。志愿服务组织应当为党组织的活动提供必要条件。
+					</view>
+					<view class="tit">
+						第三章 志愿服务活动
+					</view>
+					<view class="">
+						第十一条 志愿者可以参与志愿服务组织开展的志愿服务活动,也可以自行依法开展志愿服务活动。
+					</view>
+					<view class="">
+						第十二条 志愿服务组织可以招募志愿者开展志愿服务活动;招募时,应当说明与志愿服务有关的真实、准确、完整的信息以及在志愿服务过程中可能发生的风险。
+					</view>
+					<view class="">
+						第十三条 需要志愿服务的组织或者个人可以向志愿服务组织提出申请,并提供与志愿服务有关的真实、准确、完整的信息,说明在志愿服务过程中可能发生的风险。志愿服务组织应当对有关信息进行核实,并及时予以答复。
+					</view>
+					<view class="">
+						第十四条 志愿者、志愿服务组织、志愿服务对象可以根据需要签订协议,明确当事人的权利和义务,约定志愿服务的内容、方式、时间、地点、工作条件和安全保障措施等。
+					</view>
+					<view class="">
+						第十五条 志愿服务组织安排志愿者参与志愿服务活动,应当与志愿者的年龄、知识、技能和身体状况相适应,不得要求志愿者提供超出其能力的志愿服务。
+					</view>
+					<view class="">
+						第十六条 志愿服务组织安排志愿者参与的志愿服务活动需要专门知识、技能的,应当对志愿者开展相关培训。
+					</view>
+					<view class="">
+						开展专业志愿服务活动,应当执行国家或者行业组织制定的标准和规程。法律、行政法规对开展志愿服务活动有职业资格要求的,志愿者应当依法取得相应的资格。
+					</view>
+					<view class="">
+						第十七条 志愿服务组织应当为志愿者参与志愿服务活动提供必要条件,解决志愿者在志愿服务过程中遇到的困难,维护志愿者的合法权益。
+					</view>
+					<view class="">
+						志愿服务组织安排志愿者参与可能发生人身危险的志愿服务活动前,应当为志愿者购买相应的人身意外伤害保险。
+					</view>
+					<view class="">
+						第十八条 志愿服务组织开展志愿服务活动,可以使用志愿服务标志。
+					</view>
+					<view class="">
+						第十九条 志愿服务组织安排志愿者参与志愿服务活动,应当如实记录志愿者个人基本信息、志愿服务情况、培训情况、表彰奖励情况、评价情况等信息,按照统一的信息数据标准录入国务院民政部门指定的志愿服务信息系统,实现数据互联互通。
+					</view>
+					<view class="">
+						志愿者需要志愿服务记录证明的,志愿服务组织应当依据志愿服务记录无偿、如实出具。
+					</view>
+					<view class="">
+						记录志愿服务信息和出具志愿服务记录证明的办法,由国务院民政部门会同有关单位制定。
+					</view>
+					<view class="">
+						第二十条 志愿服务组织、志愿服务对象应当尊重志愿者的人格尊严;未经志愿者本人同意,不得公开或者泄露其有关信息。
+					</view>
+					<view class="">
+						第二十一条 志愿服务组织、志愿者应当尊重志愿服务对象人格尊严,不得侵害志愿服务对象个人隐私,不得向志愿服务对象收取或者变相收取报酬。
+					</view>
+					<view class="">
+						第二十二条 志愿者接受志愿服务组织安排参与志愿服务活动的,应当服从管理,接受必要的培训。
+					</view>
+					<view class="">
+						志愿者应当按照约定提供志愿服务。志愿者因故不能按照约定提供志愿服务的,应当及时告知志愿服务组织或者志愿服务对象。
+					</view>
+					<view class="">
+						第二十三条 国家鼓励和支持国家机关、企业事业单位、人民团体、社会组织等成立志愿服务队伍开展专业志愿服务活动,鼓励和支持具备专业知识、技能的志愿者提供专业志愿服务。
+					</view>
+					<view class="">
+						国家鼓励和支持公共服务机构招募志愿者提供志愿服务。
+					</view>
+					<view class="">
+						第二十四条 发生重大自然灾害、事故灾难和公共卫生事件等突发事件,需要迅速开展救助的,有关人民政府应当建立协调机制,提供需求信息,引导志愿服务组织和志愿者及时有序开展志愿服务活动。
+					</view>
+					<view class="">
+						志愿服务组织、志愿者开展应对突发事件的志愿服务活动,应当接受有关人民政府设立的应急指挥机构的统一指挥、协调。
+					</view>
+					<view class="">
+						第二十五条 任何组织和个人不得强行指派志愿者、志愿服务组织提供服务,不得以志愿服务名义进行营利性活动。
+					</view>
+					<view class="">
+						第二十六条 任何组织和个人发现志愿服务组织有违法行为,可以向民政部门、其他有关部门或者志愿服务行业组织投诉、举报。民政部门、其他有关部门或者志愿服务行业组织接到投诉、举报,应当及时调查处理;对无权处理的,应当告知投诉人、举报人向有权处理的部门或者行业组织投诉、举报。
+					</view>
+					<view class="tit">
+						第四章 促进措施
+					</view>
+					<view class="">
+						第二十七条 县级以上人民政府应当根据经济社会发展情况,制定促进志愿服务事业发展的政策和措施。
+					</view>
+					<view class="">
+						县级以上人民政府及其有关部门应当在各自职责范围内,为志愿服务提供指导和帮助。
+					</view>
+					<view class="">
+						第二十八条 国家鼓励企业事业单位、基层群众性自治组织和其他组织为开展志愿服务提供场所和其他便利条件。
+					</view>
+					<view class="">
+						第二十九条 学校、家庭和社会应当培养青少年的志愿服务意识和能力。
+					</view>
+					<view class="">
+						高等学校、中等职业学校可以将学生参与志愿服务活动纳入实践学分管理。
+					</view>
+					<view class="">
+						第三十条 各级人民政府及其有关部门可以依法通过购买服务等方式,支持志愿服务运营管理,并依照国家有关规定向社会公开购买服务的项目目录、服务标准、资金预算等相关情况。
+					</view>
+					<view class="">
+						第三十一条 自然人、法人和其他组织捐赠财产用于志愿服务的,依法享受税收优惠。
+					</view>
+					<view class="">
+						第三十二条 对在志愿服务事业发展中做出突出贡献的志愿者、志愿服务组织,由县级以上人民政府或者有关部门按照法律、法规和国家有关规定予以表彰、奖励。
+					</view>
+					<view class="">
+						国家鼓励企业和其他组织在同等条件下优先招用有良好志愿服务记录的志愿者。公务员考录、事业单位招聘可以将志愿服务情况纳入考察内容。
+					</view>
+					<view class="">
+						第三十三条 县级以上地方人民政府可以根据实际情况采取措施,鼓励公共服务机构等对有良好志愿服务记录的志愿者给予优待。
+					</view>
+					<view class="">
+						第三十四条 县级以上人民政府应当建立健全志愿服务统计和发布制度。
+					</view>
+					<view class="">
+						第三十五条 广播、电视、报刊、网络等媒体应当积极开展志愿服务宣传活动,传播志愿服务文化,弘扬志愿服务精神。
+					</view>
+					<view class="tit">
+						第五章 法律责任
+					</view>
+					<view class="">
+						第三十六条 志愿服务组织泄露志愿者有关信息、侵害志愿服务对象个人隐私的,由民政部门予以警告,责令限期改正;逾期不改正的,责令限期停止活动并进行整改;情节严重的,吊销登记证书并予以公告。
+					</view>
+					<view class="">
+						第三十七条 志愿服务组织、志愿者向志愿服务对象收取或者变相收取报酬的,由民政部门予以警告,责令退还收取的报酬;情节严重的,对有关组织或者个人并处所收取报酬一倍以上五倍以下的罚款。
+					</view>
+					<view class="">
+						第三十八条 志愿服务组织不依法记录志愿服务信息或者出具志愿服务记录证明的,由民政部门予以警告,责令限期改正;逾期不改正的,责令限期停止活动,并可以向社会和有关单位通报。
+					</view>
+					<view class="">
+						第三十九条 对以志愿服务名义进行营利性活动的组织和个人,由民政、工商等部门依法查处。
+					</view>
+					<view class="">
+						第四十条 县级以上人民政府民政部门和其他有关部门及其工作人员有下列情形之一的,由上级机关或者监察机关责令改正;依法应当给予处分的,由任免机关或者监察机关对直接负责的主管人员和其他直接责任人员给予处分:
+					</view>
+					<view class="">
+						(一)强行指派志愿者、志愿服务组织提供服务;
+					</view>
+					<view class="">
+						(二)未依法履行监督管理职责;
+					</view>
+					<view class="">
+						(三)其他滥用职权、玩忽职守、徇私舞弊的行为。
+					</view>
+					<view class="tit">
+						第六章 附  则
+					</view>
+					<view class="">
+						 第四十一条 基层群众性自治组织、公益活动举办单位和公共服务机构开展公益活动,需要志愿者提供志愿服务的,可以与志愿服务组织合作,由志愿服务组织招募志愿者,也可以自行招募志愿者。自行招募志愿者提供志愿服务的,参照本条例关于志愿服务组织开展志愿服务活动的规定执行。
+					</view>
+					<view class="">
+						第四十二条 志愿服务组织以外的其他组织可以开展力所能及的志愿服务活动。
+					</view>
+					<view class="">
+						城乡社区、单位内部经基层群众性自治组织或者本单位同意成立的团体,可以在本社区、本单位内部开展志愿服务活动。
+					</view>
+					<view class="">
+						第四十三条 境外志愿服务组织和志愿者在境内开展志愿服务,应当遵守本条例和中华人民共和国有关法律、行政法规以及国家有关规定。
+					</view>
+					<view class="">
+						 组织境内志愿者到境外开展志愿服务,在境内的有关事宜,适用本条例和中华人民共和国有关法律、行政法规以及国家有关规定;在境外开展志愿服务,应当遵守所在国家或者地区的法律。
+					</view>
+					<view class="">
+						第四十四条 本条例自2017年12月1日起施行。
+					</view>
+				</scroll-view>
+				<view class="ts-btn" @click="agreen()"
+					:style="{'background': isbtm?'#FF4C4C':'#eee','color':isbtm?'#fff':'#999'}">
+					我已阅读并同意
+				</view>
+			</view>
+		</uni-popup>
+		<uni-popup ref="tcqr" type="center">
+			<view class="tc-wrap">
+				<image src="../../static/img/zyztc.png" mode="widthFix" class="tc-img"></image>
+				<view class="qr-wrap">
+					
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+	import {
+		saveUrl,
+		interceptor
+	} from '@/utils/loginUtils.js';
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		add_volunteers
+	} from '@/api/index.js';
+	import {
+		upload
+	} from '@/api/ask.js';
+	export default {
+		data() {
+			const currentDate = this.getDate({
+				format: true
+			});
+			return {
+				height: '',
+				isRead: false, //是否同意
+				isbtm: false, //是否滑动到底部
+				otherjob: '',
+				otherspe: '',
+				loding: false, //是否提交中
+				array: ['男', '女'],
+				chooseEdu: ['小学以下', '小学', '初中', '高中/中专', '大专/高职', '本科', '研究生', '硕士', '博士', '博士后'],
+				chooseVol: ['有', '无'],
+				is_experience: [{
+						id: '1',
+						name: '有'
+					},
+					{
+						id: '2',
+						name: '无'
+					}
+				],
+				// is_experience: '',
+				chooseExp: ['是', '否'],
+				start_hour: '选择开始时间', //开始时间
+				end_hour: '选择结束时间', //
+				quantum: '',
+				//日期
+				items: [{
+						value: '2',
+						name: '星期一'
+					},
+					{
+						value: '3',
+						name: '星期二'
+					},
+					{
+						value: '4',
+						name: '星期三'
+					},
+					{
+						value: '5',
+						name: '星期四'
+					},
+					{
+						value: '6',
+						name: '星期五'
+					},
+					{
+						value: '7',
+						name: '星期六'
+					},
+					{
+						value: '1',
+						name: '星期日'
+					}
+				],
+				dates: '',
+				//有兴趣参与的工作
+				works: [{
+						value: '1',
+						name: '赈灾工作'
+					},
+					{
+						value: '2',
+						name: '救护培训'
+					},
+					{
+						value: '3',
+						name: '护送服务'
+					},
+					{
+						value: '4',
+						name: '编辑及出版'
+					},
+					{
+						value: '5',
+						name: '医疗护理服务'
+					},
+					{
+						value: '6',
+						name: '探访服务'
+					},
+					{
+						value: '7',
+						name: '外语翻译'
+					},
+					{
+						value: '8',
+						name: '调查服务'
+					},
+					{
+						value: '9',
+						name: '联络服务'
+					},
+					{
+						value: '10',
+						name: '宣传及推广'
+					},
+					{
+						value: '11',
+						name: '文书档案工作'
+					},
+					{
+						value: '12',
+						name: '其它(请注明)'
+					}
+				],
+				taste: '',
+				worksText: '', //工作其他
+				//专长
+				expertise: [{
+						value: '1',
+						name: '医疗护理'
+					},
+					{
+						value: '2',
+						name: '紧急救护'
+					},
+					{
+						value: '3',
+						name: '出版/美术设计'
+					},
+					{
+						value: '4',
+						name: '影音制作'
+					},
+					{
+						value: '5',
+						name: '文艺演出'
+					},
+					{
+						value: '6',
+						name: '网络软件'
+					},
+					{
+						value: '7',
+						name: '摄影摄像'
+					},
+					{
+						value: '8',
+						name: '电脑中文打字'
+					},
+					{
+						value: '9',
+						name: '汽车驾驶'
+					},
+					{
+						value: '10',
+						name: '外语翻译'
+					},
+					{
+						value: '11',
+						name: '法律咨询'
+					},
+					{
+						value: '12',
+						name: '文案策划'
+					},
+					{
+						value: '13',
+						name: '其它(请注明)'
+					}
+				],
+				speciali: '',
+				current: '',
+				is_vol: [{
+						id: '1',
+						name: '有'
+					},
+					{
+						id: '0',
+						name: '无'
+					}
+				],
+				index: 0,
+				// mz: '',
+				email: '',
+				cardimg: '', //证件照
+				// card: '',
+				// checklist: [],
+				name: '',
+				sex: '请选择你的性别',
+				birth: '请选择你的生日',
+				fillingDate: '',
+				phone: '',
+				address: '',
+				work: '',
+				specialty: '',
+				education: '请选择教育程度',
+				educationid: '',
+				checked1: '',
+				checked: '',
+				expertiseText: '', //专长其他
+				Getchecked: false //个人声明
+			};
+		},
+		onShow() {
+			if (this.hasLogin) {
+				// this.loadBaseData();
+				// this.$refs.tishi.open()
+			} else {
+				saveUrl();
+				uni.showModal({
+					title: '登录',
+					content: '您未登录,是否马上登陆?',
+					success: e => {
+						if (e.confirm) {
+							interceptor();
+						}
+					},
+					fail: e => {
+						console.log(e);
+					}
+				});
+			}
+		},
+		onReady() {
+			if (this.hasLogin) {
+				this.$refs.tishi.open()
+			} else {
+				// this.$refs.tishi.open()
+			}
+			var obj = this;
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.tcc').boundingClientRect();
+					query.exec(function(res) {
+						obj.height = resu.windowHeight - res[0].top + 'px';
+					});
+				},
+				fail: res => {}
+			});
+			
+		},
+		computed: {
+			...mapState('user', ['userInfo', 'baseURL', 'hasLogin']),
+			startDate() {
+				return this.getDate('start');
+			},
+			endDate() {
+				return this.getDate('end');
+			}
+		},
+		methods: {
+			// 同意提示
+			agreen() {
+				if (this.isbtm) {
+					this.isRead = true
+					this.$refs.tishi.close()
+				}
+			},
+			async join() {
+				let obj = this;
+				if (obj.name == '') {
+					obj.$api.msg('请输入您的姓名');
+					return;
+				}
+				if (obj.sex === '') {
+					obj.$api.msg('请输入您的性别');
+					return;
+				}
+				if (obj.birth == '' || obj.birth == '请选择你的生日') {
+					obj.$api.msg('请填写您的生日');
+					return;
+				}
+				const reg = /^(\+?0?86-?)?1[\d]\d{9}$/;
+				if (obj.phone == '') {
+					obj.$api.msg('请填写您的联系方式');
+					return;
+				}
+				if (!reg.test(obj.phone)) {
+					obj.$api.msg('请填写正确的联系方式');
+					return;
+				}
+				add_volunteers({
+						name: obj.name, //姓名
+						phone: obj.phone, //手机号
+						sex: obj.sex, //性别
+						birth: obj.birth, //生日
+						image: obj.cardimg, //照片
+						email: obj.email, //邮件
+						address: obj.address, //地址
+						work: obj.work, //工作单位
+						specialty: obj.specialty, //职业/职务/专业
+						education: obj.educationid, //教育程度
+						is_vol: obj.checked, //是否受过志愿者服务
+						is_experience: obj.checked1 == 1 ? 0 : 1, //有无工作经验
+						start_hour: obj.start_hour,
+						end_hour: obj.end_hour,
+						work_week: obj.dates, //星期几
+						taste: obj.taste, //有兴趣参与的工作
+						taste_title: obj.worksText, //工作其他
+						speciali: obj.speciali, //专长
+						speciali_title: obj.expertiseText, //其他专长
+					})
+					.then(e => {
+						obj.loding = false;
+						// obj.sex = '请选择你的性别';
+						// obj.education = '请选择教育程度';
+						// obj.birth = '请选择你的生日';
+						this.$refs.tcqr.open()
+						// uni.navigateTo({
+						// 	url: '../joinSuc/joinNow'
+						// });
+					})
+					.catch(function(e) {
+						console.log('出错了');
+						console.log(e);
+						obj.loding = false;
+					});
+			},
+			imgsub() {
+				console.log('imgsub');
+				upload({
+					filename: ''
+				}).then(data => {
+					console.log(data, '2222')
+					this.cardimg = data[0].fullurl;
+				});
+			},
+			// 选择性别
+			bindPickerSex: function(e) {
+				this.sex = e.target.value
+				this.index = e.target.value + 1;
+			},
+			// 选择教育程度
+			bindPickerEdu: function(e) {
+				this.education = this.chooseEdu[e.target.value];
+				this.educationid = e.target.value;
+				console.log(this.educationid)
+			},
+			// 选择日期
+			bindDateChange: function(e) {
+				this.birth = e.target.value;
+			},
+			// 选择开始时间
+			startTimeChange: function(e) {
+				console.log(e, '开始时间')
+				this.start_hour = e.target.value;
+			},
+			// 选择结束时间
+			endTimeChange: function(e) {
+				this.end_hour = e.target.value;
+			},
+			//选择填写日期
+			fillingDateChange: function(e) {
+				this.fillingDate = e.target.value;
+			},
+			// 是否参加志愿活动
+			bindPickerVol: function(e) {
+				this.is_vol = this.chooseVol[e.target.value];
+				this.index = e.target.value + 1;
+			},
+			// 有无服务经验
+			radioChange1(evt) {
+				this.checked1 = evt.detail.value;
+				console.log(this.checked1, '有无服务经验');
+			},
+			//是否受过志愿服务
+			radioChange(evt) {
+				this.checked = evt.detail.value;
+				console.log(this.checked, '是否受过志愿服务');
+			},
+			Getcheckbox() {
+				let obj = this;
+				obj.Getchecked = !obj.Getchecked;
+			},
+			getDate(type) {
+				const date = new Date();
+				let year = date.getFullYear();
+				let month = date.getMonth() + 1;
+				let day = date.getDate();
+
+				if (type === 'start') {
+					year = year - 60;
+				} else if (type === 'end') {
+					year = year + 2;
+				}
+				month = month > 9 ? month : '0' + month;
+				day = day > 9 ? day : '0' + day;
+				return `${year}-${month}-${day}`;
+			},
+			//时间段
+			checkboxChange: function(e) {
+				var items = this.days,
+					values = e.detail.value;
+				for (var i = 0, lenI = items.length; i < lenI; ++i) {
+					const item = items[i];
+					if (values.includes(item.value)) {
+						this.$set(item, 'checked', true);
+					} else {
+						this.$set(item, 'checked', false);
+					}
+				}
+				this.quantum = values.join(',');
+				console.log(this.quantum, '时间段');
+			},
+			//日期
+			checkboxChange1: function(e) {
+				var items = this.items,
+					values = e.detail.value;
+				for (var i = 0, lenI = items.length; i < lenI; ++i) {
+					const item = items[i];
+					if (values.includes(item.value)) {
+						this.$set(item, 'checked', true);
+					} else {
+						this.$set(item, 'checked', false);
+					}
+				}
+				this.dates = values.join(',');
+				console.log(this.dates, '日期');
+			},
+			//有兴趣参与的工作
+			checkboxChange2: function(e) {
+				var items = this.works,
+					values = e.detail.value;
+				for (var i = 0, lenI = items.length; i < lenI; ++i) {
+					const item = items[i];
+					if (values.includes(item.value)) {
+						this.$set(item, 'checked', true);
+					} else {
+						this.$set(item, 'checked', false);
+					}
+				}
+				this.taste = values.join(',');
+				console.log(this.taste, '有兴趣参与的工作');
+			},
+			//专长
+			checkboxChange3: function(e) {
+				var items = this.expertise,
+					values = e.detail.value;
+				for (var i = 0, lenI = items.length; i < lenI; ++i) {
+					const item = items[i];
+					if (values.includes(item.value)) {
+						this.$set(item, 'checked', true);
+					} else {
+						this.$set(item, 'checked', false);
+					}
+				}
+				this.speciali = values.join(',');
+				console.log(this.speciali, '专长');
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #ffffff;
+	}
+
+	.content {
+		// padding-top: 64rpx;
+		// background-color: #f3afad;
+
+		.top {
+			width: 100%;
+			height: 368rpx;
+
+			image {
+				width: 100%;
+				height: 368rpx;
+			}
+		}
+
+		.info-box {
+			text-indent: 64rpx;
+			margin: 12rpx 0 54rpx;
+			padding: 0 32rpx 20rpx;
+			// border: 3rpx solid #009100;
+			width: 100%;
+			display: flex;
+			flex-direction: column;
+			border-radius: 25rpx;
+			color: #e63931;
+		}
+
+		.statement {
+			// margin: 32rpx;
+			background-color: #ffffff;
+			// padding: 32rpx 23rpx;
+			border-radius: 12rpx;
+
+			.title {
+				height: 84rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				font-size: 32rpx;
+				border-bottom: 2rpx dotted #f3f3f3;
+			}
+
+			.main {
+				padding: 24rpx;
+				text-indent: 48rpx;
+				color: #666;
+				font-weight: 400;
+			}
+		}
+
+		.buttom {
+			width: 100%;
+			height: 100rpx;
+			background: #df2412;
+			margin: 50rpx auto 0;
+			font-size: 36rpx;
+			font-weight: 400;
+			color: #ffffff;
+			line-height: 100rpx;
+			text-align: center;
+
+			&.action {
+				background: #999999;
+			}
+			position: absolute;
+			bottom: 0pt;
+		}
+
+		.box {
+			// margin-top: 44rpx;
+			// width: 690rpx;
+			// margin: 32rpx auto 0;
+			background-color: #ffffff;
+			border-radius: 10rpx;
+			// padding: 28rpx 32rpx 84rpx 32rpx;
+			padding: 20rpx;
+			position: relative;
+
+			// .red-box {
+			// 	width: 405rpx;
+			// 	line-height: 66rpx;
+			// 	text-align: center;
+			// 	background: linear-gradient(0deg, #C90F1B, #F14D33);
+			// 	border-radius: 10rpx;
+			// 	font-size: 30rpx;
+			// 	font-weight: 500;
+			// 	color: #FFFFFF;
+			// 	// position: relative;
+			// 	position: absolute;
+			// 	top: -36rpx;
+			// 	left: 50%;
+			// 	transform: translateX(-50%);
+			// 	z-index: 1;
+			// }
+
+			.box-check {
+				font-size: 28rpx;
+				font-weight: 500;
+				color: #666666;
+				line-height: 100rpx;
+			}
+
+			.imp {
+				color: red;
+				margin-left: 5rpx;
+			}
+
+			.check-box {
+				margin: 44rpx 0rpx;
+				padding: 25rpx 25rpx;
+				border: 3rpx solid #e9b2af;
+				width: 100%;
+				display: flex;
+				flex-direction: column;
+				border-radius: 25rpx;
+				color: #e63931;
+
+				.info {
+					margin-bottom: 32rpx;
+					text-align: center;
+				}
+
+				.chooseTim {
+					text-align: center;
+					font-size: 42rpx;
+				}
+
+				.choose-job {
+					color: #666666;
+
+					// height: 45rpx; 爱心捐赠
+					.goods_check {
+						display: flex;
+						flex-direction: column;
+
+						.uni-label-pointer {
+							// width: 50%;
+							// display: flex;
+						}
+					}
+
+					.other {
+						width: 100%;
+						border-bottom: 2rpx solid #f3f3f3;
+					}
+				}
+
+				.box-cent {
+					font-size: 28rpx;
+					font-weight: 500;
+					color: #666666;
+					display: flex;
+
+					.cent-left {
+						margin-right: 28rpx;
+
+						.left-txt {
+							line-height: 100rpx;
+						}
+					}
+
+					.cent-right {
+						flex: 1;
+						display: flex;
+						justify-content: space-around;
+
+						.right-check {
+							line-height: 100rpx;
+						}
+					}
+				}
+			}
+
+			.box-1 {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				width: 100%;
+				margin-top: 42rpx;
+				// height: 133rpx;
+
+				.box-left {
+					padding-left: 2rpx;
+					width: 50%;
+					text-align: left;
+					color: #000000;
+				}
+
+				input {
+					height: 66rpx;
+					line-height: 66rpx;
+					// height: 88rpx;
+				}
+
+				.list-input {
+					padding-left: 24rpx;
+					// margin: 12rpx 0 ;
+					font-size: 28rpx;
+					// line-height: 66rpx;
+					display: flex;
+					align-items: center;
+					width: 50%;
+					flex: 1;
+					color: #000000;
+					text-align: right;
+					padding-right: 24rpx;
+
+					.input-placeholder {
+						height: 70rpx;
+						color: #959595;
+					}
+				}
+
+				.box-right {
+					display: flex;
+					padding-left: 24rpx;
+					height: 66rpx;
+					line-height: 66rpx;
+					border-radius: 22rpx;
+					// margin: 32rpx 36rpx 0 36rpx;
+					width: 100%;
+					padding-right: 24rpx;
+					font-size: 28rpx;
+					color: #959595;
+					text-align: right !important;
+					// line-height: 1;
+				}
+			}
+
+			.upload-box {
+				width: 100%;
+				height: 247rpx;
+				background: #ffffff;
+				// border: 1px solid #E63931;
+				border-radius: 27rpx;
+				display: flex;
+				flex-direction: column;
+				padding: 30rpx 40rpx 30rpx 0;
+				margin: 42rpx auto 30rpx;
+
+				.upload-left {
+					font-weight: 400;
+					color: #000000;
+				}
+
+				.upload-right {
+					flex: 1;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+
+					.upload-img {
+						width: 150rpx;
+						height: 150rpx;
+						margin-top: 24rpx;
+					}
+				}
+			}
+		}
+
+		.flex_item {
+			display: flex;
+			align-items: center;
+		}
+
+		.radio-list {
+			display: flex;
+			flex-wrap: wrap;
+			font-size: 28rpx;
+			padding-top: 30rpx;
+			color: #000000;
+
+			.uni-label-pointer {
+				padding-right: 25rpx;
+				padding-bottom: 30rpx;
+			}
+		}
+
+		.check_box {
+			padding: 25rpx 25rpx;
+			font-size: 28rpx;
+		}
+
+		.list-box {
+			background-color: #ffffff;
+			font-size: 28rpx;
+			width: 100%;
+			height: 100%;
+			border-top: 15rpx solid #f2f2f2;
+			color: #222222;
+
+			.worksInput {
+				margin-bottom: 35rpx;
+				border: 2rpx solid #979797;
+				width: 100%;
+				height: 70rpx;
+				line-height: 70rpx;
+				padding: 0rpx 25rpx;
+				border-radius: 15rpx;
+			}
+
+			.list-title {
+				color: #000000;
+				text-align: center;
+				padding: 30rpx 0rpx;
+				font-size: 34rpx;
+				font-weight: 500;
+				border-bottom: 2rpx dashed #b5b5b5;
+			}
+
+			.tip {
+				color: #000000;
+				padding-top: 25rpx;
+				width: 100%;
+				text-align: center;
+			}
+
+			.icon {
+				color: red;
+				margin-left: 5rpx;
+			}
+		}
+	}
+
+	.ts-wrap {
+		width: 673rpx;
+		height: 1134rpx;
+		background: #FFFFFF;
+		border-radius: 20rpx;
+		position: relative;
+
+		.ts-tit {
+			height: 103rpx;
+			padding-top: 40rpx;
+			text-align: center;
+			font-size: 36rpx;
+			font-weight: bold;
+			color: #000000;
+			width: 588rpx;
+			margin: auto;
+			border-bottom: 1px solid #a1a1a1;
+		}
+
+		.ts-content {
+			height: 882rpx;
+			margin: 30rpx 0;
+			text-align: justify;
+			font-size: 28rpx;
+			font-weight: 500;
+			color: #666666;
+
+			.xq {
+				width: 600rpx;
+				margin: auto;
+				text-indent:2em;
+			}
+			view {
+				width: 600rpx;
+				margin: auto;
+				text-indent:2em;
+			}
+			.tit {
+				font-weight: bold;
+				text-align: center;
+				text-indent:0em;
+				// color: ;
+			}
+		}
+
+		.ts-btn {
+			width: 673rpx;
+			line-height: 90rpx;
+			font-size: 32rpx;
+			font-weight: 500;
+			color: #FFFFFF;
+			text-align: center;
+			background: #FF4C4C;
+			border-radius: 0px 0px 20rpx 20rpx;
+			position: absolute;
+			bottom: 0;
+		}
+	}
+	.tcc {
+		position: relative;
+		background-color: #f8f8f8;
+	}
+	.tc-wrap {
+		width: 500rpx;
+		position: relative;
+		.tc-img {
+			width: 500rpx;
+		}
+		.qr-wrap {
+			width: 254rpx;
+			height: 254rpx;
+			padding: 2rpx;
+			position: absolute;
+			top: 152rpx;
+			// left: 132rpx;
+			left: 0;
+			right: 0;
+			margin: auto;
+			background: #fff;
+			border: 1rpx solid #000;
+			border-radius: 10rpx;
+		}
+	}
 </style>

+ 11 - 7
pages/fu/axjz.vue

@@ -27,14 +27,15 @@
 									<view class="fu-tit">{{ item.title }}</view>
 									<view class="fu-text">{{ item.info }}</view>
 								</view>
-								<view class="fu-bottom" v-if="item.apply_user_id == 0">
-									<view class="fu-shenqing">已有{{ item.apply_sum }}人申请</view>
-									<text class="fu-jifen">+{{ item.integral }}积分</text>
+								<view class="fu-bottom" v-if="item.is_apply">
+									<text class="fu-shenqing">资金:{{ item.amount || '暂无' }}</text>
+									<view class="fu-shenqing">帮扶人:{{ item.is_apply.full_name }}</view>
 								</view>
 								<view class="fu-bottom" v-else>
-									<text class="fu-shenqing">资金:{{ item.amount || '暂无' }}</text>
-									<view class="fu-shenqing">帮扶人:{{ item.apply_user.full_name }}</view>
+									<view class="fu-shenqing">已有{{ item.apply_sum }}人申请</view>
+									<!-- <text class="fu-jifen">+{{ item.integral }}积分</text> -->
 								</view>
+								
 							</view>
 						</view>
 					</view>
@@ -116,7 +117,7 @@
 				category_id: 0,
 				tabCurrentIndex:0,
 				page: 1, //当前页数
-				limit: 10,//每次信息条数
+				limit: 100,//每次信息条数
 				loadingType: 'more',
 				list: [],
 				userInfo:'',
@@ -194,7 +195,10 @@
 				})
 					.then(data => {
 						console.log(data.data)
-						obj.list = obj.list.concat(data.data);
+						let arr = data.data.filter((e)=> {
+							return e.cid == 11
+						})
+						obj.list = obj.list.concat(arr);
 						obj.page++;
 						if (obj.limit == data.data.length) {
 							//判断是否还有数据, 有改为 more, 没有改为noMore

+ 159 - 23
pages/index/index.vue

@@ -1,13 +1,55 @@
 <template>
 	<view class="content">
+		<!-- 首页展示图 -->
+		<image src="../../static/img/top-bg.png" mode="widthFix" style="width: 750rpx;"></image>
 		<!-- 轮播 -->
 		<view class="carousel-section">
-			<swiper class="carousel" :autoplay="true" :interval="3000" :duration="1000">
-				<swiper-item v-for="item in carouselList" :key="item.id">
-					<image :src="baseURL + item.image"></image>
+			<swiper class="carousel" :autoplay="true" :interval="3000" :duration="1000" indicator-dots indicator-color="rgba(255,255,255,0.5)" indicator-active-color="#fff">
+				<swiper-item v-for="item in carouselList" :key="item.id" >
+					<image :src="baseURL + item.image" @click="navTo(item.h5_url)"></image>
 				</swiper-item>
 			</swiper>
 		</view>
+		<!-- 间隔 -->
+		<view class="" style="height: 55rpx;background-color: #fff;"></view>
+		<!-- 爱心榜 -->
+		<view class="love">
+			<view class="love-wrap">
+				<view class="" style="height: 46rpx;"></view>
+				<view class="love-top">
+					爱心榜
+				</view>
+				<view class="tab-tit flex">
+					<view class="tit">
+						捐赠时间
+					</view>
+					<view class="tit" style="width: 30%;">
+						捐赠者
+					</view>
+					<view class="tit" style="width: 20%;">
+						捐赠金额
+					</view>
+					<view class="tit">
+						捐赠意向
+					</view>
+				</view>
+				<view class="tab-tit flex tab-val" v-for="item in showLove">
+					<view class="tit clamp">
+						{{item.paytime | getTime}}
+					</view>
+					<view class="tit clamp" style="width: 30%;">
+						{{item.name}}
+					</view>
+					<view class="tit clamp" style="width: 20%;">
+						{{item.amount*1}}
+					</view>
+					<view class="tit clamp">
+						{{item.order_name}}
+					</view>
+				</view>
+			</view>
+		</view>
+		
 		<!-- 分类 -->
 		<view class="cate-section flex">
 			<view class="cate-item flex" @click="navTo('/pages/applic/love')">
@@ -16,13 +58,13 @@
 				</view>
 				<view class="item-title">爱心捐款</view>
 			</view>
-			<view class="cate-item flex" @click="tocontribution">
+			<view class="cate-item flex" @click="navTo('/pages/form/applicationForm')">
 				<view class="img-wrapper flex">
 					<image src="../../static/icon/icon2.png" mode="" class="img1"></image>
 				</view>
 				<view class="item-title">遗体器官捐献</view>
 			</view>
-			<view class="cate-item flex" @click="toapplic">
+			<view class="cate-item flex" @click="navTo('/pages/applic/appliSystem')">
 				<view class="img-wrapper flex">
 					<image src="../../static/icon/icon3.png" mode="" class="img1"></image>
 				</view>
@@ -34,21 +76,27 @@
 				</view>
 				<view class="item-title">爱心帮扶</view>
 			</view>
+			<view class="cate-item flex" @click="navTo('/pages/train/index')">
+				<view class="img-wrapper flex">
+					<image src="../../static/icon/icon5.png" mode="" class="img1"></image>
+				</view>
+				<view class="item-title">救护培训</view>
+			</view>
 		</view>
 		<!-- 加入红十字 -->
 		<view class="join-red">
-			<image src="../../static/img/join-banner.png" mode="" @click="navTo('/pages/cart/cart')"></image>
+			<image src="../../static/img/join-banner.png" mode="" @click="navTo('/pages/index/joinus')"></image>
 		</view>
 		<!-- 就在身边 -->
 		<view class="jzsb-wrap">
 			<!-- 附近救护员 -->
 			<view class="wrap-tit">
-				在身边
+				在身边
 				<view class="tit-bg"></view>
 			</view>
-			<view class="fjjhy-wrap" @click="navTo('/pages/applic/location')">
+			<!-- <view class="fjjhy-wrap" @click="navTo('/pages/applic/location')">
 				<image src="../../static/img/jzsb-bg.png" mode=""></image>
-			</view>
+			</view> -->
 			<!-- 救护站 and Aed -->
 			<view class="jhz-aed-wrap flex">
 				<!-- 救护站 -->
@@ -62,7 +110,7 @@
 			</view>
 		</view>
 		<!-- 红会科普 -->
-		<view class="kp-wrap" v-if="(science.length != 0) && loaded">
+		<!-- <view class="kp-wrap" v-if="(science.length != 0) && loaded">
 			<view class="wrap-tit">
 				红会科普
 				<view class="tit-bg"></view>
@@ -80,13 +128,14 @@
 					</view>
 				</view>
 			</scroll-view>
-		</view>
+		</view> -->
 	</view>
 </template>
 
 <script>
 	import {
 		loadIndexs,
+		loveList
 	} from '@/api/index.js';
 	import { getArticList} from '@/api/index.js';
 	import {
@@ -112,10 +161,22 @@
 				carouselList: [], //轮播
 				science: [], //文章列表
 				page: 1,
-				limit: 10,
-				loaded: false
+				limit: 3,
+				loaded: false,
+				loveList: [],
+				loadingType: 'more',
+				timer: ''
 			};
 		},
+		filters: {
+			getTime(val) {
+				let date = new Date(val * 1000);
+				let Y = date.getFullYear();
+				let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
+				let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
+				return Y + '/' + M + '/' + D;
+			},
+		},
 		onShow() {
 			saveUrl();
 			if (!this.hasLogin) {
@@ -135,9 +196,13 @@
 				});
 			} else {
 			}
+			if(this.timer) {
+				clearTimeout(this.timer)
+			}
+			this.getLoveList()
 		},
 		onLoad() {
-			this.getPkList()
+			// this.getPkList()
 			this.loadIndex()
 			saveUrl();
 		},
@@ -145,9 +210,34 @@
 			...mapState('user', ['userInfo', 'hasLogin']),
 			...mapState('info',['kpCid']),
 			...mapState(['baseURL']),
+			showLove() {
+				return this.loveList.slice(0, 3);
+			}
 		},
 		methods: {
 			...mapMutations('user', ['setUserInfo']),
+			gundong() {
+				let obj = this;
+				obj.timer = setTimeout(() => {
+					obj.loveList.push(obj.loveList.shift());
+					// console.log(obj.moreJxList)
+					obj.gundong();
+				}, 2000);
+			},
+			//获取红会爱心榜 
+			getLoveList() {
+				let obj = this
+				loveList({
+					page:obj.page,
+					limit: obj.limit
+				}).then(res => {
+					obj.loveList = res.data.data
+					if(obj.loveList.length > 3) {
+						obj.gundong();
+					}
+					
+				})
+			},
 			loadIndex() {
 				let obj = this;
 				loadIndexs({}).then(({
@@ -156,6 +246,7 @@
 					console.log(data, 'index')
 					//轮播图
 					this.carouselList = data.banner
+					console.log(this.carouselList,'this.carouselList++++++++')
 				});
 			},
 			loadData() {
@@ -214,10 +305,10 @@
 			// padding-top: 10px;
 			overflow: hidden;
 			background-color: #fff;
-
+			padding-top: 30rpx;
 			.carousel {
-				width: 750rpx;
-				height: 547rpx;
+				width: 694rpx;
+				height: 466rpx;
 				margin: 0 auto;
 				overflow: hidden;
 				.carousel-item {
@@ -229,7 +320,8 @@
 				}
 				image {
 					width: 100%;
-					height: 547rpx;
+					height: 466rpx;
+					border-radius: 20rpx;
 				}
 			}
 		}
@@ -241,7 +333,8 @@
 			padding: 46rpx 0 30rpx;
 
 			.cate-item {
-				width: 25%;
+				width:20%;
+				flex-shrink: 0;
 				flex-direction: column;
 				text-align: center;
 				align-items: center;
@@ -265,8 +358,7 @@
 				}
 				.item-title {
 					margin-top: 15rpx;
-					font-size: 24rpx;
-					font-family: PingFang SC;
+					font-size: 20rpx;
 					font-weight: 500;
 					color: #333333;
 				}
@@ -290,9 +382,10 @@
 	}
 	.jzsb-wrap {
 		width: 750rpx;
-		height: 812rpx;
+		// height: 812rpx;
 		background-color: #fff;
-		margin: 20rpx 0;
+		margin: 20rpx 0 0;
+		padding-bottom: 30rpx;
 		image {
 			width: 100%;
 			height: 100%;
@@ -416,4 +509,47 @@
 			vertical-align: text-bottom;
 		}
 	}
+	.love {
+		background: #FFFFFF;
+	}
+	.love-wrap {
+		margin: auto;
+		width: 694rpx;
+		// height: 309px;
+		
+		box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.1000);
+		border-radius: 30rpx;
+		position: relative;
+		text-align: center;
+		.love-top {
+			width: 185rpx;
+			line-height: 55rpx;
+			background: #FF4C4C;
+			border-radius: 28rpx;
+			font-size: 30rpx;
+			font-weight: bold;
+			color: #FFFFFF;
+			text-align: center;
+			position: absolute;
+			top: -25rpx;
+			left: 0;
+			right: 0;
+			margin: auto;
+		}
+		.tab-tit {
+			line-height: 65rpx;
+			border-bottom: 1px solid #F2F2F2;
+			.tit {
+				width: 25%;
+				font-size: 20rpx;
+				font-weight: bold;
+				color: #FF4C4C;
+			}
+		}
+		.tab-val {
+			.tit {
+				color: #101010;
+			}
+		}
+	}
 </style>

+ 109 - 0
pages/index/joinus.vue

@@ -0,0 +1,109 @@
+<template>
+	<view class="">
+		<view class="" style="height: 10rpx;">
+			
+		</view>
+		<view class="list-item flex" v-for="(item,index) in navList" :key="index">
+			<view class="item-left">
+				<image :src="'../../static/icon/bm0' + item.id + '.png'" mode=""></image>
+			</view>
+			<view class="item-center">
+				<view class="center-name">{{item.name}}</view>
+				<view class="center-val">{{item.val}}</view>
+			</view>
+			<view class="item-right" @click="navTo(item.path)">
+				{{item.btn}}
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navList: [
+					{
+						id: 1,
+						name: '志愿者报名',
+						val: '志愿服务你我他',
+						path: '/pages/form/tovolApply',
+						btn: '去报名'
+					},
+					// {
+					// 	id: 2,
+					// 	name: '普及培训报名',
+					// 	val: '扶危济困爱心无限',
+					// 	path: '/pages/train/index'
+					// },
+					{
+						id: 3,
+						name: '红十字会员登记',
+						val: '做慈善事业的行动者',
+						path: '/pages/cart/cart',
+						btn: '去登记'
+					}
+				]
+			}
+		},
+		methods: {
+			navTo(url) {
+				uni.navigateTo({
+					url: url,
+					fail() {
+						uni.switchTab({
+							url: url
+						})
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.list-item {
+		width: 702rpx;
+		height: 180rpx;
+		background: #FFFFFF;
+		box-shadow: 0px 2rpx 46rpx 0px rgba(196, 196, 196, 0.16);
+		border-radius: 20rpx;
+		margin: 20rpx auto;
+		align-items: center;
+		padding: 0 30rpx 0 20rpx;
+		.item-left {
+			width: 156rpx;
+			height: 157rpx;
+			image {
+				width: 100%;
+				height: 100%;
+			}
+		}
+		.item-center {
+			flex-grow: 1;
+			.center-name {
+				font-size: 36rpx;
+				font-weight: 700;
+				color: #000000;
+			}
+			.center-val {
+				font-size: 28rpx;
+				font-weight: 400;
+				color: #B7B7BA;
+				margin-top: 15rpx;
+			}
+		}
+		.item-right {
+			width: 154rpx;
+			height: 57rpx;
+			background: linear-gradient(-90deg, #FF8E8E, #F3392C);
+			box-shadow: 0px 4rpx 16rpx 0px rgba(255, 0, 0, 0.39);
+			border-radius: 29rpx;
+			font-size: 28rpx;
+			font-weight: 400;
+			color: #FFFFFF;
+			text-align: center;
+			line-height: 57rpx;
+		}
+	}
+</style>

+ 283 - 272
pages/login/login.vue

@@ -1,273 +1,284 @@
-<template>
-	<view class="container">
-		<view class="top">
-			<view class="login">登录</view>
-		</view>
-		<view class="center">
-			<view class="login_input">
-				<image class="img" src="https://zhxc2030.com/img/img08.png"></image>
-				<input class="input"  v-model="username" focus placeholder="请输入手机号" />
-			</view>
-			<view class="login_input">
-				<image class="img" src="https://zhxc2030.com/img/img67.png"></image>
-				<input class="input"   type="password" v-model="passward" placeholder="请输入密码"  />
-			</view>
-
-			<!-- 登录按钮 -->
-			<view class="login_buttom" @click="toLogin">
-				登录
-			</view>
-			<!-- 注册按钮 -->
-			<view class="register_buttom" @click="register">
-				注册账号
-			</view>
-
-			<view class="login_else">
-				<view class="login_else_border">
-
-				</view>
-				其他方式登录
-				<view class="login_else_border">
-
-				</view>
-			</view>
-
-           <!-- 微信登录 -->
-		   <view class="login_wx" @click="appLogin">
-		   	<image src="https://zhxc2030.com/img/wxlogin.png"></image>
-			
-		   </view>
-		   <view class="login_wx_text" >
-		   	微信登录
-		   </view>
-		</view>
-	</view>
-</template>
-
-<script>
-import { mapMutations } from 'vuex';
-import { login,getUserInfo } from '@/api/login.js';
-export default {
-	data() {
-		return {
-			username: '',
-			passward: '',
-			// #ifdef APP-PLUS
-			// 保存当前是否为微信浏览器
-			weixinB:false,
-			// #endif
-		};
-	},
-	onLoad() {
-		this.weixinB=uni.getStorageSync('weichatBrowser')
-	},
-	methods: {
-		//微信登录
-		appLogin: function() {
-		    uni.getProvider({
-		        service: 'oauth',
-		        success: function(res) {
-		            console.log(res.provider);
-		            //支持微信、qq和微博等
-		            if (~res.provider.indexOf('weixin')) {
-		                uni.login({
-		                    provider: 'weixin',
-		                    success: function(loginRes) {
-		                        console.log('-------获取openid(unionid)-----');
-		                        console.log(JSON.stringify(loginRes));
-		                        // 获取用户信息
-		                        uni.getUserInfo({
-		                            provider: 'weixin',
-		                            success: function(infoRes) {
-		                                console.log('-------获取微信用户所有-----');
-		                                console.log(JSON.stringify(infoRes.userInfo));
-		                            }
-		                        });
-		                    }
-		                });
-		            }
-		        }
-		    });
-		},
-		...mapMutations('user',['setUserInfo','login']),
-		//登录
-		async toLogin() {
-			let obj = this;
-			obj.logining = true;
-			let reg = /^1[3456789]\d{9}$/;
-			if (obj.username == '') {
-				obj.$api.msg('请输入手机号');
-				return;
-			}
-			if (!reg.test(obj.username)) {
-				obj.$api.msg('请输入正确的手机号');
-				return;
-			}
-			if (obj.passward == '') {
-				obj.$api.msg('请输入密码');
-				return;
-			}
-			login({
-				account:obj.username,
-				password:obj.passward
-			})
-				.then(function(e) {
-					uni.setStorageSync('token',e.data.userinfo.token);
-					console.log(e.data.userinfo.token,'u++++++++++++++++++++')
-					//调用注册接口,成功跳转首页
-					getUserInfo({}).then((e)=> {
-						console.log(e,'userInfo000000000000000000000')
-						obj.login();
-						// 保存返回用户数据
-						obj.setUserInfo(e.data);
-						uni.switchTab({
-							url: '/pages/index/index'
-						})
-					})
-				})
-				.catch(function(e) {
-					console.log(e);
-				});
-		},
-		//跳转注册页
-		register() {
-			uni.navigateTo({
-				url: `/pages/login/register`
-			});
-		},
-		//跳转忘记密码
-		// forget() {
-		// 	uni.navigateTo({
-		// 		url: `/pages/public/forget`
-		// 	});
-		// },
-		// 后退
-		navBack() {
-			uni.navigateBack();
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-	.container {
-		line-height: 1;
-
-		.top {
-			width: 750rpx;
-			height: 500rpx;
-			position: relative;
-      background-color: $base-color;
-			image {
-				width: 750rpx;
-				height: 500rpx;
-			}
-
-			.login {
-
-				font-size: 36rpx;
-				font-weight: bold;
-				position: absolute;
-				top: 270rpx;
-				left: 340rpx;
-				color:  #FFFFFF;
-			}
-		}
-
-		.center {
-			z-index: 9;
-			width: 700rpx;
-			height: 840rpx;
-			background-color: #FFFFFF;
-			border-radius: 20rpx;
-			margin-top: -150rpx;
-			margin-left: 24rpx;
-			position: absolute;
-
-			.login_input {
-				width: 560rpx;
-				display: flex;
-				justify-content: center;
-				
-				margin: 70rpx auto;
-				border-bottom: 2rpx solid #F0F0F0;
-				padding-bottom: 9rpx;
-				color: #999999;
-
-				.img {
-					width: 30rpx;
-					height: auto;
-					margin-right: 18rpx;
-				}
-
-				.input {
-					width: 470rpx;
-					font-size: $font-base;
-					letter-spacing: 3rpx;
-				}
-			}
-
-			.login_buttom {
-				width: 560rpx;
-                background: linear-gradient(0deg, #C9101B, #F24D33);
-				border-radius: 40rpx;
-				margin: 0 auto;
-				margin-bottom: 20rpx;
-				text-align: center;
-				line-height: 80rpx;
-				color: #FFFFFF;
-				font-size: 30rpx;
-			}
-
-			.register_buttom {
-				width: 560rpx;
-				line-height: 80rpx;
-				border: 1rpx solid $base-color;
-				border-radius: 40rpx;
-				text-align: center;
-				margin: 0 auto;
-				font-size: 30rpx;
-				font-weight: 500;
-				color: $base-color;
-			}
-		
-		     .login_else{
-				 width: 560rpx;
-				 margin: 0 auto;
-				 margin-top: 100rpx;
-				 margin-bottom: 45rpx;
-				 font-size: 24rpx;
-				 font-weight:500;
-				 color:rgba(153,153,153,1);
-				 display: flex;
-				 justify-content: center;
-				 align-items: center;
-				 .login_else_border{
-					 flex: 1;
-					 height:1rpx;
-					 background:rgba(238,238,238,1);
-				 }
-			 }
-		     
-			 .login_wx{
-				 width: 63rpx;
-				 height: 63rpx;
-				 margin: 0 auto;
-				 border: none;
-				 position: static;
-				 padding: 0;
-				 image{
-					 width: 63rpx;
-					 height: 63rpx;
-				 }
-			 }
-			 .login_wx_text{
-				 text-align: center;
-				 font-size:24rpx;
-				 font-weight:400;
-				 color:rgba(153,153,153,1);
-				 margin-top: 15rpx;
-			 }
-		}
-	}
+<template>
+	<view class="container">
+		<view class="top">
+			<view class="login">登录</view>
+		</view>
+		<view class="center">
+			<view class="login_input">
+				<image class="img" src="../../static/icon/img03.png"></image>
+				<input class="input" v-model="username" focus placeholder="请输入手机号" />
+			</view>
+			<view class="login_input">
+				<image class="img" src="../../static/icon/img04.png"></image>
+				<input class="input" type="password" v-model="passward" placeholder="请输入密码" />
+			</view>
+
+			<!-- 登录按钮 -->
+			<view class="login_buttom" @click="toLogin">
+				登录
+			</view>
+			<!-- 注册按钮 -->
+			<view class="register_buttom" @click="register">
+				注册账号
+			</view>
+<!-- 
+			<view class="login_else">
+				<view class="login_else_border">
+
+				</view>
+				其他方式登录
+				<view class="login_else_border">
+
+				</view>
+			</view> -->
+
+			<!-- 微信登录 -->
+			<!-- <view class="login_wx" @click="appLogin">
+				<image src="https://zhxc2030.com/img/wxlogin.png"></image>
+
+			</view>
+			<view class="login_wx_text">
+				微信登录
+			</view> -->
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		mapMutations
+	} from 'vuex';
+	import {
+		login,
+		getUserInfo
+	} from '@/api/login.js';
+	export default {
+		data() {
+			return {
+				username: '',
+				passward: '',
+				// #ifdef APP-PLUS
+				// 保存当前是否为微信浏览器
+				weixinB: false,
+				// #endif
+			};
+		},
+		onLoad() {
+			this.weixinB = uni.getStorageSync('weichatBrowser')
+		},
+		methods: {
+			//微信登录
+			appLogin: function() {
+				uni.getProvider({
+					service: 'oauth',
+					success: function(res) {
+						console.log(res.provider);
+						//支持微信、qq和微博等
+						if (~res.provider.indexOf('weixin')) {
+							uni.login({
+								provider: 'weixin',
+								success: function(loginRes) {
+									console.log('-------获取openid(unionid)-----');
+									console.log(JSON.stringify(loginRes));
+									// 获取用户信息
+									uni.getUserInfo({
+										provider: 'weixin',
+										success: function(infoRes) {
+											console.log('-------获取微信用户所有-----');
+											console.log(JSON.stringify(infoRes
+												.userInfo));
+										}
+									});
+								}
+							});
+						}
+					}
+				});
+			},
+			...mapMutations('user', ['setUserInfo', 'login']),
+			//登录
+			async toLogin() {
+				let obj = this;
+				obj.logining = true;
+				let reg = /^1[3456789]\d{9}$/;
+				if (obj.username == '') {
+					obj.$api.msg('请输入手机号');
+					return;
+				}
+				if (!reg.test(obj.username)) {
+					obj.$api.msg('请输入正确的手机号');
+					return;
+				}
+				if (obj.passward == '') {
+					obj.$api.msg('请输入密码');
+					return;
+				}
+				login({
+						account: obj.username,
+						password: obj.passward
+					})
+					.then(function(e) {
+						uni.setStorageSync('token', e.data.userinfo.token);
+						console.log(e.data.userinfo.token, 'u++++++++++++++++++++')
+						//调用注册接口,成功跳转首页
+						getUserInfo({}).then((e) => {
+							console.log(e, 'userInfo000000000000000000000')
+							obj.login();
+							// 保存返回用户数据
+							obj.setUserInfo(e.data);
+							uni.switchTab({
+								url: '/pages/index/index'
+							})
+						})
+					})
+					.catch(function(e) {
+						console.log(e);
+					});
+			},
+			//跳转注册页
+			register() {
+				uni.navigateTo({
+					url: `/pages/login/register`
+				});
+			},
+			//跳转忘记密码
+			// forget() {
+			// 	uni.navigateTo({
+			// 		url: `/pages/public/forget`
+			// 	});
+			// },
+			// 后退
+			navBack() {
+				uni.navigateBack();
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	.container {
+		line-height: 1;
+
+		.top {
+			width: 750rpx;
+			height: 500rpx;
+			position: relative;
+			background-color: #fa7e67;
+
+			image {
+				width: 750rpx;
+				height: 500rpx;
+			}
+
+			.login {
+
+				font-size: 36rpx;
+				font-weight: bold;
+				position: absolute;
+				top: 270rpx;
+				left: 340rpx;
+				color: #FFFFFF;
+			}
+		}
+
+		.center {
+			z-index: 9;
+			width: 700rpx;
+			// height: 840rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+			margin-top: -150rpx;
+			margin-left: 24rpx;
+			padding-bottom: 60rpx;
+			position: absolute;
+
+			.login_input {
+				width: 560rpx;
+				display: flex;
+				justify-content: center;
+
+				margin: 70rpx auto;
+				border-bottom: 2rpx solid #F0F0F0;
+				padding-bottom: 9rpx;
+				color: #999999;
+
+				.img {
+					width: 30rpx;
+					height: auto;
+					margin-right: 18rpx;
+				}
+
+				.input {
+					width: 470rpx;
+					font-size: $font-base;
+					letter-spacing: 3rpx;
+				}
+			}
+
+			.login_buttom {
+				width: 560rpx;
+				background: linear-gradient(0deg, #fa7e67, #F24D33);
+				border-radius: 40rpx;
+				margin: 0 auto;
+				margin-bottom: 20rpx;
+				text-align: center;
+				line-height: 80rpx;
+				color: #FFFFFF;
+				font-size: 30rpx;
+			}
+
+			.register_buttom {
+				width: 560rpx;
+				line-height: 80rpx;
+				border: 1rpx solid #fa7e67;
+				border-radius: 40rpx;
+				text-align: center;
+				margin: 0 auto;
+				font-size: 30rpx;
+				font-weight: 500;
+				color: #fa7e67;
+			}
+
+			.login_else {
+				width: 560rpx;
+				margin: 0 auto;
+				margin-top: 100rpx;
+				margin-bottom: 45rpx;
+				font-size: 24rpx;
+				font-weight: 500;
+				color: rgba(153, 153, 153, 1);
+				display: flex;
+				justify-content: center;
+				align-items: center;
+
+				.login_else_border {
+					flex: 1;
+					height: 1rpx;
+					background: rgba(238, 238, 238, 1);
+				}
+			}
+
+			.login_wx {
+				width: 63rpx;
+				height: 63rpx;
+				margin: 0 auto;
+				border: none;
+				position: static;
+				padding: 0;
+
+				image {
+					width: 63rpx;
+					height: 63rpx;
+				}
+			}
+
+			.login_wx_text {
+				text-align: center;
+				font-size: 24rpx;
+				font-weight: 400;
+				color: rgba(153, 153, 153, 1);
+				margin-top: 15rpx;
+			}
+		}
+	}
 </style>

+ 11 - 11
pages/share/card.vue

@@ -3,34 +3,34 @@
 		<view class="bg"><image class="imgBox" src="../../static/img/test_bg.png" mode="scaleToFill"></image></view>
 		<view class="top flex">
 			<image src="../../static/img/top_bg.png" mode="aspectFill"></image>
-			<view class="china-font">洪湖市红十字会</view>
-			<view class="english-font">Red Cross Society of China Honghu Branch</view>
+			<view class="china-font">长宁区红十字会</view>
+			<view class="english-font">Red Cross Society of Changning District Branch</view>
 			<view class="fgx"></view>
 		</view>
 		<view class="buttom flex">
 			<view class="item flex">
 				<image class="home_img" src="../../static/img/test_home.png" mode="aspectFill"></image>
-				<view class="text"><text>洪湖市新堤街道<br />宏伟南路38号</text></view>
+				<view class="text"><text>长宁路895号1-2楼</text></view>
 			</view>
 			<view class="item flex">
 				<image class="home_img" src="../../static/img/test_phone.png" mode="aspectFill"></image>
 				<!-- #ifdef H5 -->
-				<view class="text"><text class="text1">0716-2203655</text></view>
+				<view class="text"><text class="text1">52064615</text></view>
 				<!-- #endif -->
 				<!-- #ifndef H5 -->
-				<view class="text" @click="uni.makePhoneCall({phoneNumber: '0716-2203655'})"><text>0716-2203655</text></view>
+				<view class="text" @click="uni.makePhoneCall({phoneNumber: '52064615'})"><text>****</text></view>
 				<!-- #endif -->
 			</view>
 			<view class="item flex">
 				<image class="home_img" src="../../static/img/test_mail.png" mode="aspectFill"></image>
-				<view class="text"><text>hhshszh20210909@126.com</text></view>
+				<view class="text"><text>cnjuanzeng2020@163.com</text></view>
 			</view>
 			<view class="map">
 				<!-- <image class="map-box" src="../../static/icon/erweima.jpg"></image> -->
 				<map class="map-box" id="map" :markers="markers" :scale="scale" :latitude="latitude"
 					:longitude="longitude" ref="map" :show-location="false"></map>
 				<view class="map-font flex">
-					<view class="font-left">洪湖市红十字会</view>
+					<view class="font-left">长宁区红十字会</view>
 					<view @click="navigation()" class="font-right"><image src="../../static/img/btn.png" mode="aspectFill"></image></view>
 				</view>
 			</view>
@@ -67,10 +67,10 @@ export default {
 			latitude: '29.811251', //洪湖市纬度
 			longitudeNew: '', //当前经度
 			latitudeNew: '', //当前纬度
-			addr: '洪湖市红十字会',
+			addr: '长宁区红十字会',
 			markers: [{
 				id: '226',
-				title: '洪湖市红十字会',
+				title: '长宁区红十字会',
 				iconPath: '/static/img/img10.png',
 				width: '28',
 				height: '28',
@@ -124,7 +124,7 @@ export default {
 		toBaiduMap() {
 			
 			window.location.href=
-			`http://api.map.baidu.com/marker?location=30.357764,112.218665&title=洪湖市红十字会&content=洪湖市红十字会&output=html&src=webapp.baidu.openAPIdemo `
+			`http://api.map.baidu.com/marker?location=30.357764,112.218665&title=长宁区红十字会&content=长宁区红十字会&output=html&src=webapp.baidu.openAPIdemo `
 		},
 		//分享
 		IndexShare() {
@@ -133,7 +133,7 @@ export default {
 				link:  obj.$store.state.baseURL + '/index/#/pages/share/card',// 分享链接
 				imgUrl: obj.$store.state.baseURL + '/index/static/img/002.png',
 				desc: '电子名片分享',
-				title: '洪湖市红十字会',
+				title: '长宁区红十字会',
 			};
 			console.log('分享加',item)
 			weixindata(item);

+ 144 - 81
pages/user/user.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="content">
-		<view class="top">
+		<view class="top" style="position: relative;">
 			<view class="avater">
 				<image :src="userInfo.avatar" class="avater-img" mode="" v-if="userInfo.avatar"></image>
 				<image src="../../static/img/002.png" mode="" v-else class="avater-img"></image>
@@ -11,88 +11,80 @@
 				</view>
 				<view class="" v-if="userInfo && userInfo.level_name && userInfo.level > 1" style="color: #fff;font-size: 32rpx;">
 					<text v-if="vip_endtime < newTime">已到期,立即续费</text><text>{{userInfo.vip_endtime | time}} 到期<text @click="xuFei()">(续费)</text></text>
-				</view>
-			</view>
-		</view>
-		<view class="nav-wrapper">
-			<view class="nav-item flex" @click="tohelp">
-				<view class="item-left flex">
-					<image src="../../static/icon/i6.png" mode="" class="img1"></image>
-					<view class="title">求救记录</view>
-				</view>
-				<view class="item-right">
-					>
-				</view>
-			</view>
-			<view class="nav-item flex" @click="torreco">
-				<view class="item-left flex">
-					<image src="../../static/icon/u-help.png" mode="" class="img2"></image>
-					<view class="title">救援记录</view>
-				</view>
-				<view class="item-right">
-					>
-				</view>
-			</view>
-			<!-- <view class="nav-item flex" @click="navTo('/pages/form/myDonate')">
-				<view class="item-left flex">
-					<image src="../../static/icon/u-jz.png" mode="" class="img1"></image>
-					<view class="title">捐赠记录</view>
-				</view>
-				<view class="item-right">
-					>
-				</view>
-			</view> -->
-			<view class="nav-item flex" @click="navTo('/pages/form/myDonate')">
-				<view class="item-left flex">
-					<image src="../../static/icon/u-jk.png" mode="" class="img1"></image>
-					<view class="title">捐款记录</view>
-				</view>
-				<view class="item-right">
-					>
-				</view>
-			</view>
-			<view class="nav-item flex" @click="tocertificates" >
-				<view class="item-left flex">
-					<image src="../../static/icon/i9.png" mode="" class="img4"></image>
-					<view class="title">我的证书</view>
-				</view>
-				<view class="item-right">
-					>
-				</view>
-			</view>
-			<!-- <view class="nav-item flex" @click="navTo('/pages/applyHelp/cation')" >
-				<view class="item-left flex">
-					<image src="../../static/icon/i7.png" mode="" class="img4"></image>
-					<view class="title">申请帮扶</view>
-				</view>
-				<view class="item-right">
-					>
 				</view>
+				
 			</view>
-			<view class="nav-item flex" @click="navTo('/pages/user/myFu')" >
-				<view class="item-left flex">
-					<image src="../../static/icon/u-m-f.png" mode="" class="img4"></image>
-					<view class="title">我的帮扶</view>
-				</view>
-				<view class="item-right">
-					>
-				</view>
-			</view> -->
-			<!-- @click="loginout"  -->
-			<!-- <view class="nav-item flex" @click="navTo('/pages/user/userSet')" >
-				<view class="item-left flex">
-					<image src="../../static/icon/u-set.png" mode="" class="img4"></image>
-					<view class="title">设置</view>
+			<!-- <view class="sy-box flex">
+				<view class="sy-item">
+					<view class="sy-item-name">
+						我的积分
+					</view>
+					<view class="sy-item-val">
+						{{userInfo.score || '0'}}
+					</view>
 				</view>
-				<view class="item-right">
-					>
+				<view class="sy-item">
+					<view class="sy-item-name">
+						帮助项目
+					</view>
+					<view class="sy-item-val">
+						{{helpCount}}
+					</view>
 				</view>
 			</view> -->
-		</view>
+		</view>
+		<view class="btm-box flex" @click="navTo('/pages/user/myFu')" style="">
+			<image src="../../static/icon/u-1.png" mode="widthFix" class="left-img"></image>
+			<view class="">我的帮扶</view>
+			<image src="../../static/icon/goto.png" mode="widthFix" class="right-img"></image>
+		</view>
+		<!-- <view class="nav-item flex" @click="navTo('/pages/form/myDonate')">
+			<view class="item-left flex">
+				<image src="../../static/icon/u-jk.png" mode="" class="img1"></image>
+				<view class="title">捐款记录</view>
+			</view>
+			<view class="item-right">
+				>
+			</view>
+		</view> -->
+		<view class="btm-box flex" @click="navTo('/pages/form/myDonate')">
+			<image src="../../static/icon/u-2.png" mode="widthFix" class="left-img"></image>
+			<view class="">捐款记录</view>
+			<image src="../../static/icon/goto.png" mode="widthFix" class="right-img"></image>
+		</view>
+		<!-- <view class="btm-box flex"  @click="tohelp" >
+			<image src="../../static/icon/u-3.png" mode="widthFix" class="left-img"></image>
+			<view class="">求援记录</view>
+			<image src="../../static/icon/goto.png" mode="widthFix" class="right-img"></image>
+		</view> -->
+		<!-- <view class="btm-box flex"@click="torreco">
+			<image src="../../static/icon/u-2.png" mode="widthFix" class="left-img"></image>
+			<view class="">救援记录</view>
+			<image src="../../static/icon/goto.png" mode="widthFix" class="right-img"></image>
+		</view>
+		<view class="btm-box flex"  @click="tohelp" >
+			<image src="../../static/icon/u-3.png" mode="widthFix" class="left-img"></image>
+			<view class="">求援记录</view>
+			<image src="../../static/icon/goto.png" mode="widthFix" class="right-img"></image>
+		</view> -->
+<!-- 		<view class="btm-box flex" @click="commonaddress">
+			<image src="../../static/icon/u-4.png" mode="widthFix" class="left-img"></image>
+			<view class="">常用地址</view>
+			<image src="../../static/icon/goto.png" mode="widthFix" class="right-img"></image>
+		</view> -->
+		<view class="btm-box flex" @click="tocertificates">
+			<image src="../../static/icon/u-5.png" mode="widthFix" class="left-img"></image>
+			<view class="">我的证书</view>
+			<image src="../../static/icon/goto.png" mode="widthFix" class="right-img"></image>
+		</view>
+		<!-- <view class="loginout" @click="loginout()">
+			退出
+		</view> -->
 	</view>
 </template>
 
-<script>
+<script>
+	import { userapplylst } from '@/api/help.js'
 	import {
 		mapState,
 		mapMutations
@@ -114,7 +106,8 @@
 	import { getVipmoney, createOrder } from '@/api/index.js'
 	export default {
 		data() {
-			return {
+			return {
+				helpCount: 0,//帮助数量
 				common_address:'',
 				name:'',
 				signDate:'',
@@ -177,7 +170,8 @@
 			let str = new Date()
 			this.newTime = str.getTime()
 			console.log('点前保存的地址',this.common_address)
-			// 保存当前页面
+			// 保存当前页面
+			this.userapplylst()
 		},
 		onReady() {
 			console.log(99999)
@@ -317,6 +311,17 @@
 				uni.navigateTo({
 					url: url
 				})
+			},
+			userapplylst() {
+				let obj = this
+				userapplylst({
+					page:1,
+					limit:1000,
+					status:1
+				}).then(res => {
+					console.log(res)
+					obj.helpCount = res.data.data.length
+				})
 			}
 		}
 	}
@@ -326,15 +331,15 @@
 	page {
 		min-height: 100%;
 		height: auto;
-		background: #fff;
+		background: #f8f8f8;
 	}
 	.content {
 		line-height: 1.5;
-		background-color: #fff;
+		background-color:#f8f8f8;
 		height: 100%;
 		.top {
 			width: 750rpx;
-			height: 312rpx;
+			height: 601rpx;
 			// background-color: #fa7e67;
 			display: flex;
 			flex-direction: column;
@@ -342,7 +347,7 @@
 			// padding-left: 55rpx;
 			align-items: center;
 			justify-content: center;
-			background-image: url(../../static/img/userbg.png);
+			background-image: url(../../static/img/user-bg.png);
 			background-size: 100% 100%;
 			.avater {
 				width: 150rpx;
@@ -544,5 +549,63 @@
 				line-height: 115rpx;
 			}
 		}
+	}
+	.sy-box {
+		position: absolute;
+		bottom: 80rpx;
+		// bottom: 105rpx;
+		// height: 148rpx;
+		width: 750rpx;
+	
+		// background-color: #bfa;
+		.sy-item {
+			flex-grow: 1;
+			text-align: center;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #FFFFFF;
+	
+			.sy-item-val {
+				font-size: 50rpx;
+				font-weight: bold;
+			}
+		}
+	}
+	.btm-box {
+		align-items: center;
+		width: 706rpx;
+		height: 104rpx;
+		background: #ffffff;
+		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+		border-radius: 28rpx;
+		margin: 20rpx auto;
+		position: relative;
+		padding: 0 33rpx 0 24rpx;
+		font-size: 29rpx;
+		font-weight: bold;
+		color: #5d5d5d;
+		.left-img {
+			width: 40rpx;
+		}
+		.right-img {
+			width: 14rpx;
+		}
+		view {
+			flex-grow: 1;
+			padding-left: 12rpx;
+		}
+	}
+	.loginout {
+		width: 560rpx;
+		line-height: 80rpx;
+		border: 1rpx solid #fa7e67;
+		border-radius: 40rpx;
+		text-align: center;
+		margin: 60rpx auto 0;
+		font-size: 30rpx;
+		font-weight: 500;
+		color: #fa7e67;
+		background-color: #fff;
 	}
 </style>

BIN
static/icon/bm01.png


BIN
static/icon/bm02.png


BIN
static/icon/bm03.png


BIN
static/icon/dingwei.png


BIN
static/icon/erweima.jpg


BIN
static/icon/goto.png


BIN
static/icon/icon1.png


BIN
static/icon/icon2.png


BIN
static/icon/icon3.png


BIN
static/icon/icon4.png


BIN
static/icon/icon5.png


BIN
static/icon/img03.png


BIN
static/icon/img04.png


BIN
static/icon/u-1.png


BIN
static/icon/u-2.png


BIN
static/icon/u-3.png


BIN
static/icon/u-4.png


BIN
static/icon/u-5.png


BIN
static/img/erweima.jpg


BIN
static/img/graduation.png


BIN
static/img/group.png


BIN
static/img/jhz-bg.png


BIN
static/img/jiuzai.png


BIN
static/img/jkzs.jpg


BIN
static/img/join-banner.png


BIN
static/img/personal.png


BIN
static/img/top-bg.png


BIN
static/img/user-bg.png


BIN
static/img/zs.png


BIN
static/img/zs1.png


BIN
static/img/zyztc.png


BIN
static/tabBar/redkp-action.png


BIN
static/tabBar/redpk.png


+ 4 - 4
store/index.js

@@ -6,10 +6,10 @@ Vue.use(Vuex)
 const store = new Vuex.Store({
 	state: {
 		// #ifdef MP
-		baseURL: 'http://hhswx.jzrc.org.cn', //请求地址配置
+		baseURL: 'http://cnq.igxys.com', //请求地址配置
 		// #endif
 		// #ifndef MP
-		baseURL: 'http://hhswx.jzrc.org.cn', //请求地址配置
+		baseURL: 'http://cnq.igxys.com', //请求地址配置
 		// #endif
 		// baseURL: 'http://yrh.liuniu946.com', //请求地址配置
 		urlFile: '/index', //项目部署所在文件夹
@@ -24,8 +24,8 @@ const store = new Vuex.Store({
 		// #endif
 		// shareData:'',//分享信息
 		project_area: 0,
-		sys_appid: 'hhs2022224',//系统AppID
-		sys_appsecret: '2022224hhs',//系统AppSecret
+		sys_appid: 'shscnq318',//系统AppID
+		sys_appsecret: '318shscnq',//系统AppSecret
 		baseName: '长宁区红十字会',
 		shareDesc: '弘扬红十字精神,传播红十字观念,宣传红十字工作,这是一个汇聚爱心、救助之家力量的平台!'
 	},

+ 4 - 4
store/model/info.js

@@ -1,7 +1,7 @@
 let state = {
 	redName: '长宁区红十字会',//红会名称
 	redEn: 'Red Cross Society of Changning District Branch',//红会英文名称
-	HSCTel: '造血干细胞捐赠咨询电话',//造血干细胞捐赠咨询电话
+	HSCTel: '52064116',//造血干细胞捐赠咨询电话
 	bankList: [{
 		id: 1,
 		bank: '开户行',//开户行
@@ -9,9 +9,9 @@ let state = {
 		bankAccount: '银行账户'//银行账户
 	}],
 	donationsInfo: {
-		name: '捐物负责人',//捐物负责人
-		phone: '捐物联系电话',//捐物联系电话
-		address: '捐物地址'//捐物地址
+		name: '许飚',//捐物负责人
+		phone: '52064116',//捐物联系电话
+		address: '长宁路895号2楼210室'//捐物地址
 	},
 	kpCid: 57,//科普文章分类id
 }