lhl 2 år sedan
förälder
incheckning
64c1634274

+ 36 - 0
api/mourn.js

@@ -0,0 +1,36 @@
+import request from '@/utils/request'
+// 获取器官捐献哀悼列表
+export function getMournList(data) {
+	return request({
+		url: '/api/mourn/page',
+		method: 'get',
+		data
+	});
+}
+
+// 获取个人悼念详情
+export function getMournDetail(data) {
+	return request({
+		url: '/api/mourn/lst',
+		method: 'get',
+		data
+	})
+}
+
+// 个人祭拜
+export function mournGive(data) {
+	return request({
+		url: '/api/mourn/give',
+		method: 'get',
+		data
+	})
+}
+
+// 获取zong哀数
+export function getMournNum(data) {
+	return request({
+		url: '/api/mourn/gets',
+		method: 'get',
+		params: data
+	})
+}

+ 22 - 3
main.js

@@ -34,12 +34,31 @@ const prePage = ()=>{
 	// #endif
 	return prePage.$vm;
 }
-
+var musict = null
+musict = uni.createInnerAudioContext();
+musict.autoplay = false;
+musict.loop = true;
+musict.src= "./static/audio/bg-music.mp3"; //选择播放的音频
+function playMusic(e){
+	let player = e;
+		if (player == true ) {
+			musict.play(); //执行播放
+			console.log('执行播放1', player)
+		} else {
+			musict.pause(); //暂停播放
+			console.log('暂停播放')
+		}
+}
+musict.onPlay(() => {
+  console.log('开始播放');
+  store.state.isPlay = true
+});
 var music = null;
 music = uni.createInnerAudioContext(); //创建播放器对象
 music.autoplay = false;
 music.loop = true;
-music.src= "./static/audio/xx.mp3"; //选择播放的音频
+music.src= "./static/audio/xx.mp3"; //选择播放的音频
+Vue.prototype.$api = {msg, prePage,playMusic};
 
 Vue.prototype.ScanAudio = function(e){
 	let player = e;
@@ -60,7 +79,7 @@ Vue.use(uView);
 Vue.config.productionTip = false
 Vue.prototype.$fire = new Vue();
 Vue.prototype.$store = store;
-Vue.prototype.$api = {msg, prePage};
+Vue.prototype.$api = {msg, prePage,playMusic};
 
 App.mpType = 'app'
 

+ 1 - 1
manifest.json

@@ -80,7 +80,7 @@
     },
     "h5" : {
         "title" : "长宁区红十字会",
-        "domain" : "admin.jzrc.org.cn",
+        "domain" : "cnqadmin.igxys.com",
         "router" : {
             "mode" : "hash",
             "base" : "/index/"

+ 38 - 1
pages.json

@@ -28,6 +28,19 @@
 				// "navigationBarBackgroundColor": "#FF727E",
 				// "navigationBarTextStyle":"white"
 			}
+		},
+		{
+			"path": "pages/index/aixin",
+			"style": {
+				"navigationBarTitleText": "爱心捐款",
+				// #ifndef MP
+				"app-plus": {
+					"titleNView": false
+				}
+				// #endif
+				// "navigationBarBackgroundColor": "#FF727E",
+				// "navigationBarTextStyle":"white"
+			}
 		},
 		{
 			"path": "pages/applic/know",
@@ -925,11 +938,35 @@
 				"navigationBarBackgroundColor": "#FF727E",
 				"navigationBarTextStyle":"white"
 			}
+		},
+		{
+			"path": "pages/mourn/index",
+			"style": {
+				// #ifndef MP
+				"app-plus": {
+					"titleNView": false
+				},
+				// #endif
+				"navigationBarTitleText": "网上缅怀"
+			
+			}
+		},
+		{
+			"path": "pages/mourn/detail",
+			"style": {
+				// #ifndef MP
+				"app-plus": {
+					"titleNView": false
+				},
+				// #endif
+				"navigationBarTitleText": "网上缅怀"
+			
+			}
 		}
 	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
-		"navigationBarTitleText": "长宁区红十字会",
+		"navigationBarTitleText": "上海市长宁区红十字会",
 		"navigationBarBackgroundColor": "#FFFFFF",
 		"backgroundColor": "#F8F8F8"
 	},

+ 3 - 3
pages/applic/aid.vue

@@ -271,7 +271,7 @@
 					let arr = data.map(item => ({
 						latitude: item.latitude,
 						longitude: item.longitude,
-						iconPath: '/static/img/img014.png',
+						iconPath: '/static/icon/aid.png',
 						width: '35',
 						height: '35',
 						id: item.id,
@@ -334,7 +334,7 @@
 			listlookmore(e,index) {
 				let obj = this
 				if(obj.befoId != 0) {
-				obj.marker[obj.befoId].iconPath = '/static/img/img014.png'	
+				obj.marker[obj.befoId].iconPath = '/static/icon/aid.png'	
 				}
 				
 				obj.befoId = index*1 +1
@@ -352,7 +352,7 @@
 				}
 				obj.baseLat = aedobj.latitude
 				obj.baseLng = aedobj.longitude
-				obj.marker[index*1 + 1].iconPath = '/static/img/img014.png'
+				obj.marker[index*1 + 1].iconPath = '/static/icon/aid.png'
 				console.log(obj.showAed.name,'obj.showAed')
 				// obj.isShow = true
 				obj.$refs.aedxq.open()

+ 2 - 2
pages/applic/perSign.vue

@@ -4,7 +4,7 @@
 			<image src="../../static/img/activity.png" mode=""></image>
 		</view>
 		<view class="freeSign">
-			免费报名
+			培训报名
 		</view>
 		<view class="signInfo">
 			完成信息填写,即可参加红十字会救护员培训
@@ -37,7 +37,7 @@
 		</view>
 		<view class="statement">
 			<view class="title">
-				免费报名
+				培训报名
 			</view>
 			<view class="main">
 				<view>

+ 1 - 1
pages/applic/science.vue

@@ -22,7 +22,7 @@
 					{{item.synopsis}}
 				</view>
 				<view class="right-foot">
-					{{item.releasetime.split(' ')[0]}}
+					阅读量:{{item.visit}}
 				</view>
 			</view>
 		</view>

+ 2 - 2
pages/applic/teamSign.vue

@@ -4,7 +4,7 @@
 			<image src="../../static/img/activity.png" mode=""></image>
 		</view>
 		<view class="freeSign">
-			免费报名
+			培训报名
 		</view>
 		<view class="signInfo">
 			完成信息填写,即可参加红十字会救护员培训
@@ -52,7 +52,7 @@
 		</view>
 		<view class="statement">
 			<view class="title">
-				免费报名
+				培训报名
 			</view>
 			<view class="main">
 				<view>

+ 11 - 24
pages/applic/toknowledge.vue

@@ -1,7 +1,10 @@
 <template>
-	<view class="content">
-		<image class="top-image" src="../../static/img/ack.png"></image>
-		<view class="list-box">
+	<view class="content">
+		<image src="../../static/images/zxjz1.png" mode="widthFix" style="width: 750rpx;"></image>
+		<image src="../../static/images/zxjz2.png" mode="widthFix" style="width: 750rpx;"></image>
+		<image src="../../static/images/zxjz3.png" mode="widthFix" style="width: 750rpx;"></image>
+		<!-- <image class="top-image" src="../../static/img/ack.png"></image> -->
+	<!-- 	<view class="list-box">
 			<view class="list-item">
 				<view class="list-title flex_item">
 					<image src="../../static/icon/icon2.png"></image>
@@ -95,32 +98,13 @@
 			<view class="list-tips">
 				<text style="color: #C53335;">温馨提示</text>:每个志愿者抽取一次血样即可,您的资料将储存在中国造血干细胞捐献者资料库中。
 			</view>
-			<!-- <view class="list-tips">
-				<text style="color: #C53335; text-align: center;" >江夏区造血干细胞捐献咨询电话:</text>
-			</view> -->
 			<view class="list-tips" style="color: #C53335;text-align: center;">
 				{{$store.state.baseName}}造血干细胞捐献咨询电话:
 			</view>
 			<view class="list-tips" style="text-align: center;">
 				{{HSCTel}}
 			</view>
-			<!-- <view class="list01">
-				具体入库办法:
-			</view> -->
-		<!-- 	<view class="list-info">
-				一、直接到余姚市红十字会(余姚市兰江街道新西门路219-1号)报名登记、抽取血样,每个工作日均可(8:30-16:00);
-			</view>
-			<view class="list-info">
-				二、到余姚市桐江桥献血屋或者献血车上参加无偿献血,一并参加报名登记、留取血样;
-			</view>
-			<view class="list-info">
-				三、每年“五·八”世界红十字日前后,市红十字会会在市中心开展包括造血干细胞捐献在内的系列活动,届时可前往报名抽样。请留意新闻媒体的报道。
-			</view>
-			<view class="phone">
-				余姚市红十字会报名咨询电话:62619095
-			</view> -->
-				<!-- <jyf-parser :html="description" ref="article"></jyf-parser> -->
-		</view>
+		</view> -->
 	</view>
 </template>
 <script>
@@ -168,7 +152,10 @@ page {
 	width: 100%;
 	height: 100%;
 	.content {
-		height: 100%;
+		height: 100%;
+		image {
+			vertical-align: bottom;
+		}
 	}
 }
 .top-image{

+ 4 - 4
pages/cart/group.vue

@@ -10,15 +10,15 @@
 		<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 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">52064615</text></view>
+				<view class="text"><text class="text1">021-52064615</text></view>
 				<!-- #endif -->
 				<!-- #ifndef H5 -->
-				<view class="text" @click="uni.makePhoneCall({phoneNumber: '52064615'})"><text>****</text></view>
+				<view class="text" @click="uni.makePhoneCall({phoneNumber: '021-52064615'})"><text>****</text></view>
 				<!-- #endif -->
 			</view>
 			<view class="item flex">
@@ -197,7 +197,7 @@ export default {
 		.english-font {
 			margin-top: 14rpx;
 			z-index: 0;
-			letter-spacing: -1.9rpx;
+			letter-spacing: 1rpx;
 			width: 100%;
 			font-size: 18rpx;
 			font-weight: bold;

+ 102 - 66
pages/cart/personal.vue

@@ -1,6 +1,9 @@
 <template>
 	<view class="content">
-		<view class="top-box">个人报名</view>
+		<view class="top-box">报名参与</view>
+		<view class="b">
+			
+		</view>
 		<view class="box">
 			<view class="box-1">
 				<view class="box-left">
@@ -105,7 +108,7 @@ export default {
 		return {
 			loding: false, //是否提交中
 			array: ['男', '女'],
-			chooseEdu: ['小学以下', '小学', '初中', '高中/中专', '大专/高职','本科','研究生', '硕士', '博士', '博士后'],
+			chooseEdu: ['小学以下', '小学', '初中', '高中/中专', '大专/本科', '硕士', '博士', '博士后'],
 			chooseVol: ['是', '否'],
 			chooseExp: ['是', '否'],
 			index: 0,
@@ -142,7 +145,7 @@ export default {
 		getVipmoney().then(({ data }) => {
 			console.log(data);
 			data.forEach(e => {
-				if (e.user_type == 1) {
+				if (e.name == '个人会员') {
 					obj.money = e.pay_price;
 					obj.id = e.id;
 				}
@@ -197,10 +200,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('请填写您的职位');
@@ -221,9 +224,9 @@ export default {
 			// obj.loding = true;
 			vip({
 				full_name: obj.name, //姓名
-				gender: obj.sex, //性别
+				sex: obj.sex, //性别
 				education: obj.educationid, //学历
-				birthday: obj.birth, //生日
+				birth: obj.birth, //生日
 				nation: obj.mz, //民族
 				mobile: obj.phone,
 				address: obj.address, //居住地址
@@ -236,55 +239,79 @@ export default {
 				.then(e => {
 					// uni.navigateTo({
 					// 	url: '../joinSuc/joinNow'
-					// });
-					uni.showModal({
-						title: '提示',
-						content: '成为个人会员需要缴纳' + obj.money + '元年费,是否前往提交',
-						success: function(res) {
-							if (res.confirm) {
-								console.log('用户点击确定');
-								createOrder({
-									level_id: obj.id,
-									body: '个人红会年费',
-									pay_type: 0,
-									// name: obj.name,
-									pay_price: obj.money,
-									from: 'weixin'
-								}).then(({data}) =>{
-									obj.name = '';
-									obj.sex = '';
-									obj.educationid = '';
-									obj.birth = '';
-									(obj.mz = ''), (obj.phone = '');
-									obj.address = '';
-									obj.work = '';
-									obj.specialty = '';
-									(obj.cardimg = ''), (obj.card = '');
-									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) {
-											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('用户点击取消');
-							}
-						}
-					});
+					// });
+					if(obj.money) {
+						uni.showModal({
+							title: '提示',
+							content: '成为个人会员需要缴纳' + obj.money + '员年费,是否前往提交',
+							success: function(res) {
+								if (res.confirm) {
+									console.log('用户点击确定');
+									createOrder({
+										level_id: obj.id,
+										body: '个人红会年费',
+										pay_type: 0,
+										// name: obj.name,
+										pay_price: obj.money,
+										from: 'weixin'
+									}).then(({data}) =>{
+										obj.name = '';
+										obj.sex = '';
+										obj.educationid = '';
+										obj.birth = '';
+										(obj.mz = ''), (obj.phone = '');
+										obj.address = '';
+										obj.work = '';
+										obj.specialty = '';
+										(obj.cardimg = ''), (obj.card = '');
+										let res = data.jsConfig;
+										obj.weichatObj.chooseWXPay({
+											timestamp: res.timestamp,
+											nonceStr: res.nonceStr,
+											package: res.package,
+											signType: res.signType,
+											paySign: res.paySign,
+											success: function(res) {
+												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('用户点击取消');
+								}
+							}
+						});
+					}else {
+						uni.navigateTo({
+							url: '../joinSuc/joinNow'
+						});
+						// createOrder({
+						// 	level_id: obj.id,
+						// 	body: '个人红会年费',
+						// 	pay_type: 0,
+						// 	pay_price: obj.money,
+						// 	from: 'weixin'
+						// }).then(({data}) =>{
+						// 	obj.name = '';
+						// 	obj.sex = '';
+						// 	obj.educationid = '';
+						// 	obj.birth = '';
+						// 	(obj.mz = ''), (obj.phone = '');
+						// 	obj.address = '';
+						// 	obj.work = '';
+						// 	obj.specialty = '';
+						// 	(obj.cardimg = ''), (obj.card = '');
+							
+						// })
+					}
+					
 				})
 				.catch(function(e) {
 					console.log('出错了');
@@ -386,18 +413,18 @@ export default {
 
 <style lang="scss">
 page {
-	background-color: #fdcbc2;
+	
 }
 
 .content {
 	padding-top: 44rpx;
-	background-color: #fff;
+	// background-color: #fdcbc2;
 
 	.buttom {
 		margin: 60rpx auto 0;
 		width: 750rpx;
 		height: 100rpx;
-		background: #F3392C;
+		background: #FF4C4C;
 		font-size: 34rpx;
 		font-family: PingFang SC;
 		font-weight: 500;
@@ -415,8 +442,7 @@ page {
 		margin: 20rpx auto 0;
 		background-color: #ffffff;
 		border-radius: 20rpx;
-		// padding: 28rpx 20rpx 32rpx 20rpx;
-		box-shadow: 0px 2px 24px 0px rgba(0,0,0,0.0600);
+		// padding: 28rpx 20rpx 32rpx 20rpx;
 		position: relative;
 
 		.red-box {
@@ -518,18 +544,19 @@ page {
 }
 .top-box {
 	height: 58rpx;
-	font-size: 38rpx;
 	line-height: 58rpx;
+	
+	font-size: 38rpx;
 	font-family: PingFang SC;
 	font-weight: bold;
-	color: #fa7e67;
+	color: #FF4C4C;
 	text-align: center;
 	position: relative;
 	&::before {
 		content: '';
 		width: 215rpx;
 		height: 17rpx;
-		background: #FF4C4C;
+		background: #fff;
 		opacity: 0.26;
 		position: absolute;
 		left: 0;
@@ -538,4 +565,13 @@ page {
 		margin: 0 auto;
 	}
 }
+.b{
+position: relative;
+	margin: 0 auto;
+	margin-top: -20rpx;
+	width: 215rpx;
+	height: 17rpx;
+	background: #FF4C4C;
+	opacity: 0.26;
+}
 </style>

+ 1 - 1
pages/form/applicationForm.vue

@@ -710,7 +710,7 @@
 				font-family: PingFang SC;
 				font-weight: 500;
 				color: #666666;
-				text-indent: 1em;
+				text-indent: 2em;
 				padding: 37rpx 60rpx 0rpx 36rpx;
 
 				text {

+ 2 - 2
pages/form/certificates.vue

@@ -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('您已完成上海市长宁区红十字会普', 170 * 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)

+ 5 - 1
pages/form/tovolApply.vue

@@ -291,7 +291,7 @@
 			<view class="tc-wrap">
 				<image src="../../static/img/zyztc.png" mode="widthFix" class="tc-img"></image>
 				<view class="qr-wrap">
-					
+					<image src="../../static/img/cnzyewm.png" mode=""></image>
 				</view>
 			</view>
 		</uni-popup>
@@ -1172,6 +1172,10 @@
 			background: #fff;
 			border: 1rpx solid #000;
 			border-radius: 10rpx;
+			image {
+				width: 254rpx;
+				height: 254rpx;
+			}
 		}
 	}
 </style>

+ 12 - 1
pages/fu/fuInfo.vue

@@ -59,7 +59,8 @@
 				<view class="submit yijieshu" v-if="starting == false"><text class="">已结束</text></view>
 			</view>
 			<view class="btn-right" :class="{'yijieshu': starting == false}">
-				<view class="" @click="starting?loveDona(): ''">
+				<!-- <view class="" @click="starting?loveDona(): ''"> -->
+				<view class="" @click="navto('/pages/index/aixin')">
 					爱心捐款
 				</view>
 			</view>
@@ -258,6 +259,16 @@
 				});
 				// pages/applic/loveDonate
 			},
+			navto(url) {
+				uni.navigateTo({
+					url,
+					fail() {
+						uni.switchTab({
+							url
+						})
+					}
+				})
+			},
 			// 关闭弹窗
 			close() {
 				this.$refs.popup.close()

+ 382 - 0
pages/index/aixin.vue

@@ -0,0 +1,382 @@
+<template>
+	<view class="content">
+		<view class="box">
+			
+			<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/jk.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(24 * obj.ratio);
+				context.setFillStyle('#000');
+				// context.fillText('感谢信', ((750 - obj.size) * obj.ratio) / 2, 260 * obj.ratio)
+				// context.setFontSize(30 * obj.ratio);
+				// context.fillText('开户名:', 250 * obj.ratio, 500* obj.ratio);
+				// context.fillText('上海市长宁区红十字会人道救助基金专户', 250 * obj.ratio, 500* obj.ratio);
+				
+				// context.fillText('0215014400000562', 250 * obj.ratio, 538* obj.ratio);
+				// context.fillText('民生银行长宁支行', 250 * obj.ratio, 576* obj.ratio);
+				// context.fillText('许 飚', 250 * obj.ratio, 768* obj.ratio);
+				
+				// context.fillText('021-52064116', 250 * obj.ratio, 806* obj.ratio);
+				
+				// context.fillText('上海市长宁路895号2楼210室', 250 * obj.ratio, 844* 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;
+						}
+					});
+				});
+
+
+
+		},
+		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: 1784rpx;
+			width: 750rpx;
+		}
+	}
+
+	.image {
+		width: 100%;
+		height: 100%;
+	}
+</style>

+ 16 - 11
pages/index/index.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="content">
 		<!-- 首页展示图 -->
-		<image src="../../static/img/top-bg.png" mode="widthFix" style="width: 750rpx;"></image>
+		<image src="../../static/img/top-bg.jpg" mode="widthFix" style="width: 750rpx;"></image>
 		<!-- 轮播 -->
 		<view class="carousel-section">
 			<swiper class="carousel" :autoplay="true" :interval="3000" :duration="1000" indicator-dots indicator-color="rgba(255,255,255,0.5)" indicator-active-color="#fff">
@@ -52,7 +52,7 @@
 		
 		<!-- 分类 -->
 		<view class="cate-section flex">
-			<view class="cate-item flex" @click="navTo('/pages/applic/love')">
+			<view class="cate-item flex" @click="navTo('/pages/index/aixin')">
 				<view class="img-wrapper flex">
 					<image src="../../static/icon/icon1.png" mode="" class="img1"></image>
 				</view>
@@ -161,7 +161,7 @@
 				carouselList: [], //轮播
 				science: [], //文章列表
 				page: 1,
-				limit: 3,
+				limit: 20,
 				loaded: false,
 				loveList: [],
 				loadingType: 'more',
@@ -260,14 +260,19 @@
 			},
 			// 处理跳转
 			navTo(url) {
-				uni.navigateTo({
-					url:url,
-					fail() {
-						uni.switchTab({
-							url:url
-						})
-					}
-				});
+				if(url.indexOf('http') != -1) {
+					window.location.href = url
+				}else {
+					uni.navigateTo({
+						url:url,
+						fail() {
+							uni.switchTab({
+								url:url
+							})
+						}
+					});
+				}
+				
 			},
 			// 获取科普文章列表
 			getPkList() {

+ 463 - 0
pages/mourn/detail.vue

@@ -0,0 +1,463 @@
+<template>
+	<view class="content">
+		<view class="top-bg">
+			<image src="../../static/img/mourn-bg.png" mode="widthFix"></image>
+		</view>
+		<view class="list-wrap">
+			<view class="list flex">
+				<view class="list-tit">
+					{{peo.name}}简介
+				</view>
+				<!-- 				<view class="search-wrap">
+					<input type="text" value="" placeholder="请输入捐赠者" placeholder-class="search-placeholder" />
+					<image src="../../static/icon/search.png" mode=""></image>
+				</view> -->
+				<view class="mourn-mun">
+					<image src="../../static/icon/blackf.png" mode="widthFix"></image>
+					悼念总数:{{mournNum}}
+				</view>
+				<!-- 捐赠人信息 start -->
+				<view class="user-info">
+					<view class="user-img">
+						<image :src="'https://cnqadmin.igxys.com' + peo.image" mode=""></image>
+						<image src="../../static/img/huak.png" alt="" />
+					</view>
+					<view class="user-base">
+						<view class="base-item">
+							<view class="base-item-name">姓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;名</view>
+							<view class="base-val">&nbsp;&nbsp;{{peo.name || ''}}</view>
+						</view>
+						<view class="base-item">
+							<view class="base-item-name">性&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;别</view>
+							<view class="base-val">&nbsp;&nbsp;{{peo.gender_text}}</view>
+						</view>
+						<view class="base-item">
+							<view class="base-item-name">享&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;年</view>
+							<view class="base-val">&nbsp;&nbsp;{{peo.age == 0 ? '暂无': peo.age}}</view>
+						</view>
+						<view class="base-item">
+							<view class="base-item-name">籍&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;贯</view>
+							<view class="base-val">&nbsp;&nbsp;{{peo.book}}</view>
+						</view>
+						<view class="base-item">
+							<view class="base-item-name">捐献项目</view>
+							<view class="base-val">&nbsp;&nbsp;{{peo.project}}</view>
+						</view>
+						<view class="base-item">
+							<view class="base-item-name">捐献日期</view>
+							<view class="base-val">&nbsp;&nbsp;{{peo.time_text.split(' ')[0] }}</view>
+						</view>
+					</view>
+				</view>
+				<!-- 捐赠人信息 end -->
+				<!-- 悼念行为 start -->
+				<view class="online">
+					<view class="" style="height: 50rpx;">
+
+					</view>
+					<view class="online-tit">
+						<image src="../../static/img/online-tit.png" alt="" />
+						<view class="tit-tit">在线悼念</view>
+					</view>
+					<view class="online-tb">
+						<view class="tb-item">
+							<image src="../../static/img/online00.png" alt="" class="tb-item-logo"  @click="mournGive(1)"/>
+							<view class="tb-item-tit hand" @click="mournGive(1)">献花:{{ peo.flower }}</view>
+						</view>
+						<view class="tb-item">
+							<image src="../../static/img/online01.png" alt="" class="tb-item-logo" @click="mournGive(2)"/>
+							<view class="tb-item-tit hand" @click="mournGive(2)">点烛:{{ peo.candle }}</view>
+						</view>
+						<view class="tb-item">
+							<image src="../../static/img/online02.png" alt="" class="tb-item-logo" @click="mournGive(3)"/>
+							<view class="tb-item-tit hand" @click="mournGive(3)">上香:{{ peo.scented }}</view>
+						</view>
+						<view class="tb-item">
+							<image src="../../static/img/online03.png" alt="" class="tb-item-logo"  @click="mournGive(4)"/>
+							<view class="tb-item-tit hand" @click="mournGive(4)">祈祷:{{ peo.pray }}</view>
+						</view>
+					</view>
+					<view class="btm-img">
+						<image src="../../static/img/mourn-btm.png" mode=""></image>
+					</view>
+				</view>
+				<!-- 悼念行为 end -->
+			</view>
+
+		</view>
+	</view>
+</template>
+
+<script>
+	import { weixindata } from '@/utils/wxAuthorized.js';
+	import {
+		getMournDetail,
+		mournGive
+	} from '@/api/mourn.js'
+	export default {
+		data() {
+			return {
+				mournNum: 0,
+				peo: {},
+				id: 0,
+				loaded: false
+			}
+		},
+		filters: {
+			showTime(val) {
+				let str = ''
+				if (val) {
+					str = val.split(' ')[0]
+				}
+				return str
+			}
+		},
+		onShow() {
+			this.getMournDetail()
+		},
+		onLoad(opt) {
+			let obj = this
+			obj.id = opt.id
+			if (this.$store.state.isPlay) {} else {
+				if (this.$store.state.isAllow) {
+					uni.showModal({
+						title: '温馨提醒',
+						cancelText: '否',
+						confirmText: '是',
+						content: '是否播放背景音乐?',
+						success: function(res) {
+							if (res.confirm) {
+								obj.$api.playMusic(true)
+							} else if (res.cancel) {
+								obj.$store.state.isAllow = false
+							}
+						}
+					})
+				}
+			}
+			this.IndexShare()
+		},
+		methods: {
+			navto(url) {
+				//判断是否播放音乐
+				// 
+				uni.navigateTo({
+					url: url
+				})
+			},
+			//个人祭拜
+			mournGive(id) {
+				let obj = this
+				if (obj.loaded) {
+					obj.$api.msg('请勿频繁操作')
+				}
+				obj.loaded = true
+				mournGive({
+					id: obj.id,
+					type: id
+				}).then(res => {
+					if (id == 1) {
+						obj.peo.flower++
+					} else if (id == 2) {
+						obj.peo.candle++
+					} else if (id == 3) {
+						obj.peo.scented++
+					} else if (id == 4) {
+						obj.peo.pray++
+					}
+					obj.mournNum++
+					obj.loaded = false
+				})
+			},
+			// 获取个人悼念情况
+			getMournDetail() {
+				let obj = this
+				getMournDetail({
+					id: obj.id,
+				}).then((res) => {
+					obj.peo = res.data.data
+					obj.mournNum = res.data.count
+				});
+			},
+			IndexShare() {
+				let obj = this;
+				let item = {
+					link: obj.$store.state.baseURL + '/index/#/pages/mourn/detail?id=' + obj.id, // 分享链接
+					imgUrl: obj.$store.state.baseURL +'/index/static/img/002.png',
+					desc: '生命有限/大爱无限/器官(遗体、组织)捐献/让生命在爱中传递......',
+					title: '在线悼念捐献者',
+					success: console.log('分享加载成功')
+				};
+				console.log('分享加', item);
+				weixindata(item);
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+		min-height: 100%;
+		background-color: #e0e3ea;
+	}
+
+	.top-bg {
+		width: 750rpx;
+
+		image {
+			width: 750rpx;
+		}
+	}
+
+	.list-wrap {
+		position: relative;
+		width: 710rpx;
+		margin: auto;
+		margin-top: -300rpx;
+		padding: 5rpx;
+		background-color: #fff;
+
+		.list {
+			width: 100%;
+			height: 752rpx;
+			border: 5rpx solid #006061;
+			position: relative;
+			padding-top: 124rpx;
+			flex-wrap: wrap;
+			// align-items: flex-start;
+			align-content: flex-start;
+
+			.list-tit {
+				// width: 314rpx;
+				position: absolute;
+				top: 0;
+				display: inline-block;
+				padding: 0 15rpx;
+				height: 54rpx;
+				line-height: 54rpx;
+				font-size: 20rpx;
+				background-color: #006061;
+				color: #fff;
+			}
+
+			.search-wrap {
+				width: 200rpx;
+				height: 32rpx;
+				// background-color: red;
+				position: absolute;
+				right: 10rpx;
+				top: 16rpx;
+				font-size: 20rpx;
+
+				.search-placeholder {
+					font-size: 20rpx;
+				}
+
+				input {
+					display: inline-block;
+					border-radius: 10rpx;
+					width: 200rpx;
+					height: 32rpx;
+					border: 1rpx solid #999;
+					padding: 0 10rpx;
+				}
+
+				image {
+					display: block;
+					position: absolute;
+					width: 25rpx;
+					height: 25rpx;
+					right: 10rpx;
+					top: 10rpx;
+				}
+			}
+
+			.mourn-mun {
+				position: absolute;
+				top: 10rpx;
+				text-align: right;
+				display: inline-block;
+				flex-wrap: nowrap;
+				align-items: center;
+				right: 10rpx;
+				font-weight: bold;
+
+				image {
+					width: 26rpx;
+					margin-right: 10rpx;
+				}
+			}
+
+			.list-item {
+				height: 245rpx;
+				width: 25%;
+
+				// text-align: center;
+				.item-img {
+					width: 121rpx;
+					height: 145rpx;
+					margin: auto;
+					position: relative;
+
+					image {
+						width: 100%;
+						height: 100%;
+						position: absolute;
+					}
+				}
+
+				.item-name {
+					text-align: center;
+					color: #000;
+					font-size: 22rpx;
+					font-weight: bold;
+					padding-top: 20rpx;
+					padding-bottom: 10rpx;
+				}
+
+				.item-btn {
+					width: 92rpx;
+					height: 30rpx;
+					background-color: #006061;
+					margin: auto;
+					text-align: center;
+					color: #fff;
+					border-radius: 10rpx;
+					font-size: 17rpx;
+					line-height: 30rpx;
+				}
+			}
+		}
+
+	}
+
+	.user-info {
+		// padding: 101rpx 0 96rpx 205rpx;
+		padding: 0 22rpx 0 25rpx;
+		width: 100%;
+		display: flex;
+
+		.user-img {
+			width: 121rpx;
+			height: 145rpx;
+			position: relative;
+
+			image {
+				width: 121rpx;
+				height: 145rpx;
+				position: absolute;
+			}
+
+			// position;
+		}
+
+		.user-base {
+			margin-left: 40rpx;
+			width: 546rpx;
+			display: flex;
+			//   flex-direction: ;
+			flex-wrap: wrap;
+			align-content: center;
+
+			.base-item {
+				width: 50%;
+				flex-shrink: 0;
+				// flex-grow: 0;
+				border-bottom: 1px dashed rgba(23, 18, 21, 0.21);
+				display: flex;
+				line-height: 50rpx;
+				height: 50rpx;
+				font-size: 19rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #0b1c29;
+
+				// line-height: 31rpx;
+				.base-item-name {
+					&::after {
+						content: ":";
+					}
+				}
+				.base-val {
+					padding-left: 10rpx;
+				}
+			}
+		}
+	}
+
+	.online {
+		width: 100%;
+
+		.online-tit {
+			position: relative;
+			width: 640rpx;
+			height: 70rpx;
+			margin: auto;
+
+			image {
+				width: 640rpx;
+				height: 70rpx;
+			}
+
+			.tit-tit {
+				width: 640rpx;
+				height: 70rpx;
+				line-height: 65rpx;
+				position: absolute;
+				top: 0;
+				left: 0;
+				right: 0;
+				bottom: 0;
+				margin: auto;
+				text-align: center;
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #ffffff;
+			}
+		}
+
+		.online-tb {
+			width: 645rpx;
+			height: 180rpx;
+			// margin: auto;
+			margin: 47rpx auto 0;
+			display: flex;
+			justify-content: space-between;
+
+			.tb-item {
+				width: 132rpx;
+				height: 180rpx;
+				position: relative;
+
+				.tb-item-logo {
+					width: 132rpx;
+					height: 180rpx;
+				}
+
+				.tb-item-tit {
+					font-size: 16rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #ffffff;
+					line-height: 27rpx;
+					line-height: 40rpx;
+					position: absolute;
+					bottom: 0;
+					text-align: center;
+					width: 132rpx;
+				}
+			}
+		}
+	}
+	.btm-img {
+		width: 589rpx;
+		height: 30rpx;
+		margin: auto;
+		margin-top: 45rpx;
+		image {
+			width: 589rpx;
+			height: 30rpx;
+		}
+	}
+</style>

+ 302 - 0
pages/mourn/index.vue

@@ -0,0 +1,302 @@
+<template>
+	<view class="content">
+		<view class="top-bg">
+			<image src="../../static/img/mourn-bg.png" mode="widthFix"></image>
+		</view>
+		<view class="list-wrap">
+			<view class="list flex">
+				<view class="list-tit">
+					器官(遗体、器官)捐献网上缅怀
+				</view>
+				<view class="search-wrap">
+					<input type="text" v-model="keyword" placeholder="请输入捐赠者" placeholder-class="search-placeholder" />
+					<image src="../../static/icon/search.png" mode="" @click="search()"></image>
+					<!-- <image src="../../static/icon/blackf.png" mode=""></image> -->
+				</view>
+				<view class="mourn-mun">
+					<image src="../../static/icon/blackf.png" mode="widthFix"></image>
+					悼念总数:{{mournAll}}
+				</view>
+				<scroll-view scroll-y="true" class="scroll-wrap flex" :style="{'height': height}" @scrolltolower="getMournList">
+					<view class="list-item" v-for="item in list">
+						<view class="item-img">
+							<image :src="'https://cnqadmin.igxys.com' + item.image" mode=""></image>
+							<image src="../../static/img/huak.png" mode=""></image>
+						</view>
+						<view class="item-name clamp">
+							{{item.name}}
+						</view>
+						<view class="item-btn" @click="navto('/pages/mourn/detail?id=' + item.id)">
+							在线悼念
+						</view>
+					</view>
+					<uni-load-more :status="loadingType"></uni-load-more>
+				</scroll-view>
+
+			</view>
+
+		</view>
+	</view>
+</template>
+
+<script>
+	import { weixindata } from '@/utils/wxAuthorized.js';
+	import {
+		getMournList,
+		getMournNum
+	} from '@/api/mourn.js'
+	export default {
+		data() {
+			return {
+				height: '',
+				mournAll: 0,
+				list: [],
+				keyword: '',
+				page: 1,
+				limit: 20,
+				loadingType: 'more'
+			}
+		},
+		onShow() {
+			// this.playMusic()
+			this.getMournList()
+			this.getAllNum()
+		},
+		onLoad() {
+			let obj = this
+			if (this.$store.state.isPlay) {} else {
+				if (this.$store.state.isAllow) {
+					uni.showModal({
+						title: '温馨提醒',
+						content:'是否播放背景音乐?',
+						cancelText:'否',
+						confirmText:'是',
+						success: function(res) {
+							if (res.confirm) {
+								obj.$api.playMusic(true)
+							} else if (res.cancel) {
+								obj.$store.state.isAllow = false
+							}
+						}
+					})
+				}
+			}
+			this.IndexShare()
+		},
+		onReady(res) {
+			var obj = this;
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.scroll-wrap').boundingClientRect();
+					query.exec(function(res) {
+						obj.height = resu.windowHeight - res[0].top - 210 + 'px';
+					});
+				},
+				fail: res => {}
+			});
+		},
+		methods: {
+			// 页面跳转
+			navto(url) {
+				console.log(this.$store.state.isPlay,'this.$store.state.isPlay')
+				if(!this.$store.state.isPlay) {
+					console.log('ddd')
+					this.$api.playMusic(true)
+				}
+				uni.navigateTo({
+					url: url
+				})
+			},
+			// 关键字查询
+			search() {
+				let obj = this
+				obj.list = []
+				obj.page = 1
+				obj.loadingType = 'more'
+				console.log(obj.keyword)
+				obj.getMournList()
+			},
+			// 获取捐赠人列表
+			getMournList() {
+				let obj = this
+				if(obj.loadingType == 'loading' || obj.loadingType == 'noMore') {
+					return
+				}
+				obj.loadingType = 'loading'
+				getMournList({
+					page: obj.page,
+					search: obj.keyword,
+					rows: obj.limit
+				}).then(res => {
+					console.log(res)
+					obj.list = obj.list.concat(res.data.data)
+					// obj.total = res.data.total
+					obj.page++
+					if(res.data.data.length == obj.limit) {
+						obj.loadingType = 'more'
+					}else {
+						obj.loadingType = 'noMore'
+					}
+				})
+			},
+			// 获取全部数据
+			getAllNum() {
+				getMournNum().then(res => {
+					console.log(res)
+					this.mournAll = res.data
+				})
+			},
+			IndexShare() {
+				let obj = this;
+				let item = {
+					link: obj.$store.state.baseURL + '/index/#/pages/mourn/index', // 分享链接
+					imgUrl: obj.$store.state.baseURL +'/index/static/img/002.png',
+					desc: '生命有限/大爱无限/器官(遗体、组织)捐献/让生命在爱中传递......',
+					title: '在线悼念捐献者',
+					success: console.log('分享加载成功')
+				};
+				console.log('分享加', item);
+				weixindata(item);
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+		min-height: 100%;
+		background-color:#d4e2f4;
+	}
+
+	.top-bg {
+		width: 750rpx;
+
+		image {
+			width: 750rpx;
+		}
+	}
+
+	.list-wrap {
+		position: relative;
+		width: 710rpx;
+		margin: auto;
+		margin-top: -300rpx;
+		padding: 5rpx;
+		background-color: #fff;
+
+		.list {
+			width: 100%;
+			// min-height: 850rpx;
+			border: 5rpx solid #006061;
+			position: relative;
+			padding-top: 124rpx;
+			
+			.scroll-wrap {
+				flex-wrap: wrap;
+				// align-items: flex-start;
+				align-content: flex-start;
+			}
+			.list-tit {
+				// width: 314rpx;
+				position: absolute;
+				top: 0;
+				display: inline-block;
+				padding: 0 15rpx;
+				height: 54rpx;
+				line-height: 54rpx;
+				font-size: 20rpx;
+				background-color: #006061;
+				color: #fff;
+			}
+
+			.search-wrap {
+				width: 200rpx;
+				height: 32rpx;
+				// background-color: red;
+				position: absolute;
+				right: 10rpx;
+				top: 16rpx;
+				font-size: 20rpx;
+
+				.search-placeholder {
+					font-size: 20rpx;
+				}
+
+				input {
+					display: inline-block;
+					border-radius: 10rpx;
+					width: 200rpx;
+					height: 32rpx;
+					border: 1rpx solid #999;
+					padding: 0 10rpx;
+				}
+
+				image {
+					display: block;
+					position: absolute;
+					width: 25rpx;
+					height: 25rpx;
+					right: 10rpx;
+					top: 10rpx;
+				}
+			}
+
+			.mourn-mun {
+				position: absolute;
+				top: 70rpx;
+				text-align: right;
+				display: inline-block;
+				flex-wrap: nowrap;
+				align-items: center;
+				right: 10rpx;
+
+				image {
+					width: 26rpx;
+					margin-right: 5rpx;
+				}
+			}
+
+			.list-item {
+				height: 245rpx;
+				width: 25%;
+				display: inline-block;
+				// text-align: center;
+				.item-img {
+					width: 121rpx;
+					height: 145rpx;
+					margin: auto;
+					position: relative;
+
+					image {
+						width: 100%;
+						height: 100%;
+						position: absolute;
+					}
+				}
+
+				.item-name {
+					text-align: center;
+					color: #000;
+					font-size: 22rpx;
+					font-weight: bold;
+					padding-top: 20rpx;
+					padding-bottom: 10rpx;
+				}
+
+				.item-btn {
+					width: 92rpx;
+					height: 30rpx;
+					background-color: #006061;
+					margin: auto;
+					text-align: center;
+					color: #fff;
+					border-radius: 10rpx;
+					font-size: 17rpx;
+					line-height: 30rpx;
+				}
+			}
+		}
+
+	}
+</style>

+ 5 - 5
pages/share/card.vue

@@ -3,22 +3,22 @@
 		<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="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>长宁路895号1-2楼</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">52064615</text></view>
+				<view class="text"><text class="text1">021-52064615</text></view>
 				<!-- #endif -->
 				<!-- #ifndef H5 -->
-				<view class="text" @click="uni.makePhoneCall({phoneNumber: '52064615'})"><text>****</text></view>
+				<view class="text" @click="uni.makePhoneCall({phoneNumber: '021-52064615'})"><text>****</text></view>
 				<!-- #endif -->
 			</view>
 			<view class="item flex">
@@ -197,7 +197,7 @@ export default {
 		.english-font {
 			margin-top: 14rpx;
 			z-index: 0;
-			letter-spacing: -1.9rpx;
+			letter-spacing: 1rpx;
 			width: 100%;
 			font-size: 20rpx;
 			font-weight: bold;

+ 2 - 2
pages/train/sign.vue

@@ -5,7 +5,7 @@
 			<!-- <view class="box">
 				<jyf-parser :html="description" ref="article"></jyf-parser>
 			</view> -->
-			<view class="top-title canten">免费报名</view>
+			<view class="top-title canten">培训报名</view>
 			<view class="sign-tip">完成信息填写,即可参加红十字会救护员培训</view>
 			<view class="form-box">
 				<view class="label">
@@ -24,7 +24,7 @@
 				</view>
 				<input type="number" v-model="num" placeholder="请输入参加培训人数" />
 			</view>
-			<view class="top-title">免费报名</view>
+			<view class="top-title">培训报名</view>
 			<view class="text-box" v-html="description">
 				<view class="text">请参训学员在培训当天携带身份证复印件1张,一寸证件照2张。</view>
 				<view class="text">报名咨询电话:0716-4163849</view>

+ 8 - 7
pages/user/myFu.vue

@@ -18,17 +18,17 @@
 								<view class="fu-text">{{ item.info.info }}</view>
 							</view>
 							<view class="fu-bottom" v-if="tabCurrentIndex == 2 && item.info && item.info.title">
-								<text class="fu-jifen">+{{ item.info.integral }}积分</text>
-								<view class="fu-sczl" v-if="!item.remark" @click.stop="upInfo(item.hid)">上传资料</view>
+								<!-- <text class="fu-jifen">+{{ item.info.integral }}积分</text> -->
+								<!-- <view class="fu-sczl" v-if="!item.remark" @click.stop="upInfo(item.hid)">上传资料</view> -->
 								<view class="fu-shenqing" v-if="item.status == 3">公示中</view>
 							</view>
 							<view class="fu-bottom" v-if="tabCurrentIndex == 3 && item.info && item.info.title">
-								<text class="fu-jifen">+{{ item.info.integral }}积分</text>
-								<view class="fu-sczl" @click.stop="upInfo(item.hid, 1)">修改资料</view>
+								<!-- <text class="fu-jifen">+{{ item.info.integral }}积分</text> -->
+								<!-- <view class="fu-sczl" @click.stop="upInfo(item.hid, 1)">修改资料</view> -->
 							</view>
 							<view class="fu-bottom" v-if="tabCurrentIndex !== 2 && tabCurrentIndex !== 3 && tabCurrentIndex !== 4 && item.info && item.info.title ">
 								<view class="fu-shenqing">已有{{ item.info.apply_sum }}人申请</view>
-								<text class="fu-jifen">+{{ item.info.integral }}积分</text>
+								<!-- <text class="fu-jifen">+{{ item.info.integral }}积分</text> -->
 							</view>
 							<view class="fu-bottom" v-if="tabCurrentIndex == 4 && item.info && item.info.title ">
 								<view class="fu-shenqing"></view>
@@ -153,7 +153,8 @@ export default {
 				limit:navItem.limit,
 				status: state,
 			}).then(res => {
-				navItem.orderList = navItem.orderList.concat(res.data.filter(word => !!word.info.title));
+				// navItem.orderList = navItem.orderList.concat(res.data.filter(word => !!word.info.title));
+				navItem.orderList = navItem.orderList.concat(res.data);
 				navItem.page++;
 				if (navItem.limit == res.data.length) {
 					//判断是否还有数据, 有改为 more, 没有改为noMore
@@ -181,7 +182,7 @@ export default {
 		// 跳转详情
 		toDetail(item) {
 			uni.navigateTo({
-				url: '/pages/fu/fuInfo?id=' + item.id
+				url: '/pages/fu/fuInfo?id=' + item.help_id
 			})
 			// if (item.remark) {
 			// 	uni.navigateTo({

+ 2 - 2
pages/user/user.vue

@@ -47,11 +47,11 @@
 				>
 			</view>
 		</view> -->
-		<view class="btm-box flex" @click="navTo('/pages/form/myDonate')">
+		<!-- <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> -->
 		<!-- <view class="btm-box flex"  @click="tohelp" >
 			<image src="../../static/icon/u-3.png" mode="widthFix" class="left-img"></image>
 			<view class="">求援记录</view>

BIN
static/audio/bg-music.mp3


BIN
static/icon/aid.png


BIN
static/icon/blackf.png


BIN
static/icon/search.png


BIN
static/images/zxjz1.png


BIN
static/images/zxjz2.png


BIN
static/images/zxjz3.png


BIN
static/img/cnzyewm.png


BIN
static/img/huak.png


BIN
static/img/jk.png


BIN
static/img/mourn-bg.png


BIN
static/img/mourn-btm.png


BIN
static/img/online-tit.png


BIN
static/img/online00.png


BIN
static/img/online01.png


BIN
static/img/online02.png


BIN
static/img/online03.png


BIN
static/img/top-bg.jpg


+ 3 - 1
store/index.js

@@ -27,7 +27,9 @@ const store = new Vuex.Store({
 		sys_appid: 'shscnq318',//系统AppID
 		sys_appsecret: '318shscnq',//系统AppSecret
 		baseName: '长宁区红十字会',
-		shareDesc: '弘扬红十字精神,传播红十字观念,宣传红十字工作,这是一个汇聚爱心、救助之家力量的平台!'
+		shareDesc: '弘扬红十字精神,传播红十字观念,宣传红十字工作,这是一个汇聚爱心、救助之家力量的平台!',
+		isPlay: false,//音乐是否在播放
+		isAllow: true,//是否允许播放
 	},
 	mutations: {
 	

+ 6 - 6
store/model/info.js

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