lhl преди 3 месеца
родител
ревизия
71c4567284
променени са 100 файла, в които са добавени 1819 реда и са изтрити 443 реда
  1. 19 0
      api/index.js
  2. 93 0
      components/mzsm.vue
  3. 1 1
      manifest.json
  4. 19 1
      pages.json
  5. 853 0
      pages/applic/aed.vue
  6. 28 48
      pages/applic/toknowledge.vue
  7. 195 194
      pages/category/category.vue
  8. 359 199
      pages/index/index.vue
  9. 252 0
      pages/index/loveList.vue
  10. BIN
      static/icon/Rectangle.png
  11. BIN
      static/icon/aed-a.png
  12. BIN
      static/icon/aed-na.png
  13. BIN
      static/icon/dingwei.png
  14. BIN
      static/icon/zxkp1.png
  15. BIN
      unpackage/dist/build/h5/static/img/002.1489a776.png
  16. BIN
      unpackage/dist/build/h5/static/img/HLA.7463ca3a.webp
  17. BIN
      unpackage/dist/build/h5/static/img/ack.fe5c6ec8.png
  18. BIN
      unpackage/dist/build/h5/static/img/activity.5adbaff8.png
  19. BIN
      unpackage/dist/build/h5/static/img/application.db9384b5.png
  20. BIN
      unpackage/dist/build/h5/static/img/bgitop.efff07b0.png
  21. BIN
      unpackage/dist/build/h5/static/img/call.354445ca.png
  22. BIN
      unpackage/dist/build/h5/static/img/danate01.8a7305fc.png
  23. BIN
      unpackage/dist/build/h5/static/img/graduation.0e3ec21e.png
  24. BIN
      unpackage/dist/build/h5/static/img/icon1.f6452a41.png
  25. BIN
      unpackage/dist/build/h5/static/img/icon2.a4b582ff.png
  26. BIN
      unpackage/dist/build/h5/static/img/icon3.eb2240df.png
  27. BIN
      unpackage/dist/build/h5/static/img/icon4.bb596ac4.png
  28. BIN
      unpackage/dist/build/h5/static/img/img001.14df7ff7.jpg
  29. BIN
      unpackage/dist/build/h5/static/img/img001.ba854d8a.jpeg
  30. BIN
      unpackage/dist/build/h5/static/img/img002.5aebb1d7.png
  31. BIN
      unpackage/dist/build/h5/static/img/img03.b0298bca.webp
  32. BIN
      unpackage/dist/build/h5/static/img/img04.f3fc03ee.webp
  33. BIN
      unpackage/dist/build/h5/static/img/img05.e3d7e190.webp
  34. BIN
      unpackage/dist/build/h5/static/img/img06.c1990f93.webp
  35. BIN
      unpackage/dist/build/h5/static/img/img07.f827319d.jpeg
  36. BIN
      unpackage/dist/build/h5/static/img/img08.c36dcd59.jpeg
  37. BIN
      unpackage/dist/build/h5/static/img/img09.b7c1b707.webp
  38. BIN
      unpackage/dist/build/h5/static/img/img10.d56a460e.png
  39. BIN
      unpackage/dist/build/h5/static/img/imgs02.b1a7446a.png
  40. BIN
      unpackage/dist/build/h5/static/img/jiuzai.44122ad3.png
  41. BIN
      unpackage/dist/build/h5/static/img/joinSuc.24514684.png
  42. BIN
      unpackage/dist/build/h5/static/img/lianxi.d07b59e1.webp
  43. BIN
      unpackage/dist/build/h5/static/img/logo.0a898609.png
  44. BIN
      unpackage/dist/build/h5/static/img/map.e306ffeb.jpg
  45. BIN
      unpackage/dist/build/h5/static/img/moreRight.acb81f7f.png
  46. BIN
      unpackage/dist/build/h5/static/img/number-2.b94dd822.png
  47. BIN
      unpackage/dist/build/h5/static/img/number-3.9a872bbb.png
  48. BIN
      unpackage/dist/build/h5/static/img/number-5.da8570e4.png
  49. BIN
      unpackage/dist/build/h5/static/img/number-6.2c61838c.png
  50. BIN
      unpackage/dist/build/h5/static/img/number-8.b75ead0e.png
  51. BIN
      unpackage/dist/build/h5/static/img/rescue.dbc43c90.png
  52. BIN
      unpackage/dist/build/h5/static/img/sctp.6b1b3e37.png
  53. BIN
      unpackage/dist/build/h5/static/img/sqyz.29ae18e8.png
  54. BIN
      unpackage/dist/build/h5/static/img/thanks.9a8e49a5.png
  55. BIN
      unpackage/dist/build/h5/static/img/timg01.f8e2dc95.jpeg
  56. BIN
      unpackage/dist/build/h5/static/img/timg09.e6d46d55.jpeg
  57. BIN
      unpackage/dist/build/h5/static/img/upload.a6458cee.png
  58. BIN
      unpackage/dist/build/h5/static/img/user1.8c236899.png
  59. BIN
      unpackage/dist/build/h5/static/img/user2.4fe8ba28.png
  60. BIN
      unpackage/dist/build/h5/static/img/user3.64a86f7c.png
  61. BIN
      unpackage/dist/build/h5/static/img/user4.bbc59a0f.png
  62. BIN
      unpackage/dist/build/h5/static/img/user5.b386722c.png
  63. BIN
      unpackage/dist/build/h5/static/img/user6.935851d2.png
  64. BIN
      unpackage/dist/build/h5/static/img/user7.ba8494fc.png
  65. BIN
      unpackage/dist/build/h5/static/img/user8.f28cae56.png
  66. BIN
      unpackage/dist/build/h5/static/img/wings-left.90def7be.png
  67. BIN
      unpackage/dist/build/h5/static/img/wings-right.2762e890.png
  68. BIN
      unpackage/dist/build/h5/static/img/zxjz1.c7c3bc05.png
  69. BIN
      unpackage/dist/build/h5/static/img/zxjz2.d9cc02bb.png
  70. BIN
      unpackage/dist/build/h5/static/img/zxjz3.bf33542d.png
  71. 0 0
      unpackage/dist/build/h5/static/index.63b34199.css
  72. 0 0
      unpackage/dist/build/h5/static/js/chunk-vendors.c95a6203.js
  73. 0 0
      unpackage/dist/build/h5/static/js/index.18009878.js
  74. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-aid.482d7752.js
  75. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-aid~pages-applic-contribution1~pages-applic-contribution2~pages-applic-helprecords~page~1b86c60e.e91898fa.js
  76. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-aid~pages-applic-location.8b00a95e.js
  77. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-appliSystem.10b99dca.js
  78. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-appliSystem1.1b97f1d5.js
  79. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-appliSystem2.53171193.js
  80. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-appliSystem3.e471fffd.js
  81. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-applic.a9887b67.js
  82. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-chooseAddress.e45e4793.js
  83. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-commonaddress.a4d0bc3c.js
  84. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-contribution.f03e5d26.js
  85. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-contribution1.71899195.js
  86. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-contribution2.db26bf1c.js
  87. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-donaSuccess.0d32d442.js
  88. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-helprecords.8aa4f856.js
  89. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-helprecords~pages-applic-rescuerecords.4ca9729d.js
  90. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-helprecords~pages-applic-rescuerecords~pages-applyHelp-cation~pages-category-search~pag~c8fb0ddf.2b486d75.js
  91. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-info.9d34e905.js
  92. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-know.eaff7b62.js
  93. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-location.e49e68d0.js
  94. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-loveDonate.4b959999.js
  95. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-organDonation.483e0b7c.js
  96. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-perSign.d7a3bfcc.js
  97. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-register.7e402b30.js
  98. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-rescuerecords.e69cb817.js
  99. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-science.85148407.js
  100. 0 0
      unpackage/dist/build/h5/static/js/pages-applic-teamSign.72da8254.js

+ 19 - 0
api/index.js

@@ -224,3 +224,22 @@ export function deleteList(data) {
   data
  });
 }
+
+//
+export function getStation(data) {
+	return request({
+	 url: '/api/getStation',
+	 method: 'get',
+	 data
+	});
+}
+
+
+//
+export function getLove(data) {
+	return request({
+	 url: '/api/getDonate',
+	 method: 'get',
+	 data
+	});
+}

+ 93 - 0
components/mzsm.vue

@@ -0,0 +1,93 @@
+<template>
+	<view class="">
+		<view class="mzsm" @click.stop="mzss">
+			免责声明
+		</view>
+		<uni-popup ref="popupmz" type="center">
+			<view class="mzsm-wrap">
+				<view class="mzsm-tit">
+					AED导航地图免责声明
+				</view>
+				<view class="mzsm-content">
+					本应用所提供的网点名称、地址信息,仅供查询参考,实际导航结果以用户所选用的第三方地图应用所显示的位置为准,本应用不保证其导航定位准确性。
+				</view>
+				<view class="mzsm-content">
+					在法律允许的范围内,本应用声明,不承担用户或任何人士就使用或未能使用本应用所提供的信息所导致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。
+				</view>
+				<view class="mzsm-close" @click="mzssClose()">
+					确定
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			mzss() {
+				this.$refs.popupmz.open();
+			},
+			mzssClose() {
+				this.$refs.popupmz.close();
+			},
+		}
+	} 
+</script>
+
+<style lang="scss">
+	.mzsm {
+		position: fixed;
+		top: 20rpx;
+		right: 20rpx;
+		width: 150rpx;
+		height: 50rpx;
+		border-radius: 25rpx;
+		background-color: #000000;
+		color: #fff;
+		font-size: 28rpx;
+		// line-height: 50rpx;
+		text-align: center;
+		z-index: 999;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+	.mzsm-wrap {
+		width: 500rpx;
+		background-color: #fff;
+		border-radius: 20rpx;
+		.mzsm-tit {
+			text-align: center;
+			line-height: 150rpx;
+			color: #000;
+			font-size: 36rpx;
+			font-weight: bold;
+		}
+		.mzsm-content {
+			 text-indent: 56rpx;
+			width: 450rpx;
+			margin: auto;
+			text-align: justify;
+			line-height: 100rpx;
+			color: #888;
+			font-size: 28rpx;
+			font-weight: 500;
+			line-height: 1.5;
+		}
+		.mzsm-close {
+			margin-top: 20rpx;
+			border-top: 1px solid #eee;
+			text-align: center;
+			line-height: 100rpx;
+			font-size: 32rpx;
+			font-weight: 500;
+			color: #000;
+		}
+	}
+</style>

+ 1 - 1
manifest.json

@@ -1,6 +1,6 @@
 {
     "name" : "东西湖红十字会",
-    "appid" : "__UNI__B2F3C9B",
+    "appid" : "__UNI__8BC30B1",
     "description" : "",
     "versionName" : "1.0.0",
     "versionCode" : "100",

+ 19 - 1
pages.json

@@ -20,6 +20,12 @@
 				"navigationBarTitleText": "武汉市东西湖区红十字会"
 
 			}
+		},
+		{
+			"path": "pages/index/loveList",
+			"style": {
+				"navigationBarTitleText": "爱心榜"
+			}
 		},
 		{
 			"path": "pages/applic/know",
@@ -46,6 +52,18 @@
 				"navigationBarTextStyle": "white",
 				"navigationBarTitleText": "救护站"
 			}
+		},
+		{
+			"path": "pages/applic/aed",
+			"style": {
+				// #ifndef MP
+				"app-plus": {
+					"titleNView": false
+				},
+				// #endif
+				"navigationBarTextStyle": "white",
+				"navigationBarTitleText": "智能AED"
+			}
 		},
 		{
 			"path": "pages/form/donateLove",
@@ -748,7 +766,7 @@
 			// 	"navigationBarTextStyle":"white"
 			// }
 			"style": {
-				"navigationBarTitleText": "普及培训",
+				"navigationBarTitleText": "培训报名",
 				"app-plus": {
 					"titleNView": {
 						"type": "transparent"

+ 853 - 0
pages/applic/aed.vue

@@ -0,0 +1,853 @@
+<template>
+	<view class="content">
+		<view class="" style="height: 20rpx;"></view>
+		<mzsm></mzsm>
+		<!-- map  -->
+		<view class="map">
+			<map @updated='mapChange' ref='map_1' class="map-map" 
+				:latitude="baseLat" :longitude="baseLng" :markers="marker" @markertap="lookmore" ></map>
+		</view>
+		<view class="" style="height: 20rpx;"></view>
+		<!-- 列表 -->
+		<scroll-view scroll-y="true" :style="{'height':height}" class="aed-list" @scrolltolower="loadData()">
+			<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.detailed_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-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>
+		<!-- aed详情 -->
+		<uni-popup ref="popupinfo" type="bottom" >
+			<view class="aedxq-wrap">
+				<view class="xq-top">
+					<view class="aed-name">
+						{{showAed.name}}
+					</view>
+					<view class="aed-dis">
+						距离:{{showAed.dis}}km
+					</view>
+					<view class="aed-address" style="padding-top: 10rpx;">
+						地址:{{showAed.address}}
+					</view>
+					<view class="aed-address" style="padding-top: 10rpx;">
+						安装位置:{{showAed.addressxq}}
+					</view>
+				</view>
+				<view class="xq-img-wrap" v-if="showAed.imgs">
+					<scroll-view scroll-x="true" class="aed-img-scroll">
+						<view class="" style="display: flex;flex-wrap: nowrap;">
+							<image :src="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> -->
+				</view>
+				<view class="aed-dh" @click="opendh">
+					导航
+				</view>
+			</view>
+		</uni-popup>
+		<!-- 导航选择层 -->
+		<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 mzsm from '@/components/mzsm.vue'
+	import {getStation} from '@/api/index.js'
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import espempty from '@/components/espempty';
+	import uniPopup from '@/components/uni-popup/uni-popup.vue';
+	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+	import {
+		getAed
+	} from '@/api/category.js'
+	export default {
+		components: {
+			uniPopup,
+			espempty,
+			uniLoadMore,
+			mzsm
+		},
+		//相关配置参数
+		data() {
+			return {
+				baseLng: '',//地图中心经度
+				baseLat: '',//地图中心纬度
+				aedmarker: [],
+				loaded: false,
+				loadingType: 'more',
+				page: 1,
+				limit: 100,
+				AEDList: [],
+				height: '',
+				list: [],
+				latitude: '',// 本地坐标
+				longitude: '',// 本地坐标
+				phone: '',
+				marker: [],
+				showAed: {
+					name: '',
+					address: '',
+					addressxq: '',
+					dis: '',
+					lat: '',
+					lon: '',
+					imgs: [],
+					phone: ''
+				},
+				chooseImg: '',
+				mapid: 1,
+				isShow: false,
+				befoId: 0,
+			}
+		},
+		onReady(res) {
+			var _this = this;
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.aed-list').boundingClientRect();
+					query.exec(function(res) {
+						console.log(res, 'ddddddddddddd');
+						_this.height = resu.windowHeight - res[0].top + 'px';
+						console.log('打印页面的剩余高度', _this.height);
+					});
+				},
+				fail: res => {}
+			});
+		},
+		onLoad() {
+			let obj = this;
+			this.getLocal()
+
+		},
+		computed: {
+			...mapState('user', ['hasLogin', 'userInfo']),
+			...mapState(['baseURL'])
+		},
+		methods: {
+			...mapMutations('user', ['setUserInfo']),
+			// 导航
+			opendh() {
+				console.log('导航')
+				this.$refs.popup.open();
+			},
+			// 关闭图片弹窗
+			closePup() {
+				this.$refs.lookimg.close()
+			},
+			// 打开图片弹窗
+			openimg(src,srcList) {
+				let obj = this
+				this.chooseImg = this.baseURL + src
+				
+				console.log('chooseImg', this.chooseImg)
+				// this.$refs.lookimg.open()
+				let arr = obj.showAed.imgs.map(item => {
+					return item
+				})
+				uni.previewImage({
+					current: this.chooseImg,
+					urls: arr
+				})
+			},
+			// 拨打电话
+			makecall(num) {
+				uni.makePhoneCall({
+					phoneNumber: num + ''
+				})
+			},
+			// 关闭aed详情
+			closeAedXq() {
+				this.$refs.aedxq.close()
+			},
+			listlookmore(e,index) {
+				let obj = this
+				obj.marker[obj.befoId].iconPath = '/static/icon/aed-na.png'
+				obj.befoId = index*1 +1
+				let aedobj = e
+				console.log(aedobj,'aedobj++++')
+				obj.showAed = {
+					name: aedobj.name,
+					address: aedobj.detailed_address,
+					addressxq: aedobj.installation_position,
+					dis: aedobj.range,
+					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/icon/aed-a.png'
+				console.log(obj.showAed.name,'obj.showAed')
+				// obj.isShow = true
+				obj.$refs.popupinfo.open()
+			},
+			// 打开aed详情
+			lookmore(e,from) {
+				console.log(e.id,'lookmore++++++++++++')
+				let obj = this
+				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.detailed_address,
+					addressxq: aedobj.installation_position,
+					dis: aedobj.ranges,
+					lat: aedobj.latitude,
+					lon: aedobj.longitude,
+					imgs: [s],
+					phone: aedobj.phone
+				}
+				obj.marker[e.detail.markerId].iconPath = '/static/icon/aed-a.png'
+				// obj.isShow = true
+				obj.$refs.popupinfo.open()
+			},
+			// 获取本地坐标
+			getLocal() {
+				let obj = this;
+				console.log('ddddddddddddddddddddddddd')
+				let weichatBrowser = uni.getStorageSync('weichatBrowser')
+				if(weichatBrowser) {
+					let wxOjb = require('jweixin-module');
+					wxOjb.ready(() => {
+						console.log('加载完毕注册事件');
+						wxOjb.getLocation({
+							type: 'gcj02',
+							success(e) {
+								console.log(e)
+								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,
+									latitude: obj.latitude,
+									longitude: obj.longitude,
+									iconPath: '/static/img/img19.png',
+									width: '35',
+									height: '35',
+								}
+								obj.marker.push(item)
+								obj.loadData()
+							},
+							fail(err) {
+								obj.getLocal()
+							}
+						})
+					})
+				}else {
+					uni.getLocation({
+						type: 'gcj02',
+						success(e) {
+							console.log(e)
+							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,
+								latitude: obj.latitude,
+								longitude: obj.longitude,
+								iconPath: '/static/img/img19.png',
+								width: '35',
+								height: '35',
+							}
+							obj.marker.push(item)
+							obj.loadData()
+						},
+						fail(err) {
+							obj.getLocal()
+						}
+					})
+				}
+				
+				
+			},
+			// 地图渲染完毕事件
+			mapChange(e) {
+				console.log(e);
+			},
+			// 载入数据
+			async loadData() {
+				let obj = this;
+				if (obj.loadingType == 'loading' || obj.loadingType == 'noMore') {
+					return
+				}
+				obj.loadingType = 'loading'
+				getStation({
+					latitude: obj.latitude,
+					longitude: obj.longitude,
+					page: obj.page,
+					limit: obj.limit,
+				}).then(({
+					data
+				}) => {		
+					console.log(data, 'aed++++++++++++++')
+					obj.AEDList = obj.AEDList.concat(data.list);
+					let arr = data.list.map(item => ({
+						latitude: item.latitude,
+						longitude: item.longitude,
+						iconPath: '/static/icon/aed-na.png',
+						width: '35',
+						height: '35',
+						id: obj.mapid++,
+						address: item.installation_position
+					}));
+					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'
+					}
+				})
+			},
+			// 调用高德
+			toGaodeMap() {
+				let latitude = this.showAed.lat;
+				let longitude = this.showAed.lon;
+				let address = this.showAed.name;
+				console.log(address)
+				console.log('选择高德', latitude, longitude, address);
+				window.location.href = `https://uri.amap.com/marker?position=${longitude},${latitude}&name=${address}`;
+			},
+			// 调用腾讯
+			totengxunMap() {
+				let latitude = this.showAed.lat;
+				let longitude = this.showAed.lon;
+				let address = this.showAed.name;
+				console.log('选择腾讯', latitude, longitude);
+				window.location.href =
+					`http://apis.map.qq.com/uri/v1/marker?marker=coord:${latitude},${longitude};addr:${address}`;
+			},
+			// 调用百度
+			tobaiDuMap() {
+				let latlon = this.bd_encrypt(this.showAed.lon,this.showAed.lat)
+				let latlon1 = this.bd_encrypt( this.longitude,this.latitude)
+				let latitude = latlon.bd_lat;
+				let longitude = latlon.bd_lng;
+				let latitude6 = latlon1.bd_lat;
+				let longitude6 = latlon1.bd_lng;
+				let address = this.showAed.name;
+				console.log('选择百度', latitude, longitude);
+				console.log('获取当前经纬度', latitude6, longitude6);
+				window.location.href =
+					`http://api.map.baidu.com/direction?origin=latlng:${latitude6},${longitude6}|name:我的位置&destination=${latitude},${longitude}&mode=driving&region=${address}&output=html&src=webapp.baidu.openAPIdemo`;
+			},
+			// 高德坐标、腾讯坐标转百度坐标
+			bd_encrypt(gg_lng, gg_lat) {
+				var X_PI = Math.PI * 3000.0 / 180.0;
+				var x = gg_lng,
+					y = gg_lat;
+				var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI);
+				var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * X_PI);
+				var bd_lng = z * Math.cos(theta) + 0.0065;
+				var bd_lat = z * Math.sin(theta) + 0.006;
+				return {
+					bd_lat: bd_lat,
+					bd_lng: bd_lng
+				};
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	body,
+	page {
+		height: 100%;
+		width: 100%;
+		background-color: #fff;
+	}
+
+	.content {
+		height: 100%;
+		width: 100%;
+		background-color: #fff;
+	}
+
+	.map {
+		// width: 100%;
+		// height: 100%;
+		height: 780rpx;
+		border-radius: 20rpx;
+		.map-map {
+			width: 689rpx;
+			height: 780rpx;
+			border-radius: 20rpx;
+			margin: auto;
+		}
+	}
+
+	/* #ifdef H5 */
+	.location {
+		overflow-y: scroll; //溢出就滑动起来
+		// z-index: 990;
+		position: fixed;
+		bottom: 0;
+		height: 55%;
+		width: 100%;
+		background-color: #fff;
+		padding: 24rpx;
+
+		//搜索框
+		.Search-box {
+			// z-index: 999;
+			height: 80rpx;
+			// position: fixed;
+			// 		top: 0;
+			// 		left: 0;
+			// 		width: 100%;
+			// background: #FFFFFF;
+			// padding-top: 10rpx;
+			padding-right: 24rpx;
+			padding-left: 24rpx;
+
+			.Search-box-sort {
+				float: left;
+				margin-left: 32rpx;
+				margin-right: 19rpx;
+
+				.sort-text {
+					width: 57rpx;
+					height: 29rpx;
+					font-size: 30rpx;
+					font-weight: 500;
+					color: rgba(51, 51, 51, 1);
+					line-height: 58rpx;
+					margin-right: 19rpx;
+				}
+
+				.sort-img {
+					width: 21rpx;
+					height: 11rpx;
+					margin-bottom: 4rpx;
+				}
+			}
+
+			.Search-box-size {
+				// width:70%;
+				height: 58rpx;
+				border-radius: 32rpx;
+				background-color: #f1f1f1;
+				padding-left: 36rpx;
+				display: flex;
+				align-items: center;
+
+				.box-img {
+					height: 32rpx;
+					width: 32rpx;
+					margin-right: 16rpx;
+				}
+
+				// .box-right{
+				// 	height: 58rpx;
+				// 	// width: 100%;
+				// 	background-color: pink;
+				// }
+
+				.box-word {
+					width: 100%;
+					font-size: 26rpx;
+					font-weight: 500;
+					color: rgba(205, 203, 203, 1);
+					line-height: 55rpx;
+				}
+			}
+		}
+
+		.location-item {
+			z-index: 1000;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			border-bottom: 1rpx solid #E7E8EA;
+			padding: 15rpx 0;
+
+			.box-left {
+				display: flex;
+
+				.img01 {
+					width: 8rpx;
+					height: 28rpx;
+					margin-right: 18rpx;
+
+					image {
+						width: 8rpx;
+						height: 28rpx;
+					}
+				}
+
+				.img02 {
+					width: 117rpx;
+					height: 117rpx;
+					border-radius: 50%;
+
+					image {
+						width: 117rpx;
+						height: 117rpx;
+						border-radius: 50%;
+					}
+				}
+
+				.info {
+					margin-left: 16rpx;
+
+					.info-header {
+						display: flex;
+						align-items: center;
+
+						.name {
+							font-size: 32rpx;
+							color: #333333;
+						}
+
+						.distance {
+							margin-left: 25rpx;
+							font-size: 28rpx;
+							color: #303133;
+						}
+
+						.location-icon {
+							margin-left: 10rpx;
+							width: 20rpx;
+							height: 26rpx;
+
+							image {
+								width: 20rpx;
+								height: 26rpx;
+								display: inline;
+							}
+						}
+					}
+
+					.address {
+						font-size: 26rpx;
+						color: #333333;
+						margin-top: 33rpx;
+					}
+				}
+			}
+
+			.box-right {
+				.img {
+					height: 107rpx;
+
+					image {
+						width: 107rpx;
+						height: 107rpx;
+					}
+				}
+
+				.called {
+					margin-right: 16rpx;
+					height: 107rpx;
+					line-height: 107rpx;
+					font-size: 28rpx;
+					color: #CB131C;
+				}
+			}
+		}
+	}
+
+	/* #endif */
+
+	.list-tpl {
+		background-color: #ffffff;
+		margin-bottom: 25rpx;
+		padding: 25rpx 25rpx;
+		font-size: 28rpx;
+		border-radius: 15rpx;
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		border-bottom: 1px solid #f1f1f1;
+
+		.list-left {
+			display: flex;
+			width: 100%;
+
+			.number {
+				font-size: 32rpx;
+				margin-right: 14rpx;
+			}
+
+			.info {
+				width: 100%;
+
+				.title {
+					font-size: 32rpx;
+					color: #222222;
+					font-weight: 500;
+				}
+
+				.addr {
+					width: 400rpx;
+					margin-top: 20rpx;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #999999;
+				}
+			}
+		}
+
+		.image {
+			width: 20%;
+			text-align: center;
+
+			image {
+				width: 50rpx;
+				height: 50rpx;
+			}
+
+			.tip {
+				color: #7f7f7f;
+				font-size: 21rpx;
+			}
+		}
+	}
+
+	.popup_row {
+		width: 100%;
+		height: 500rpx;
+		background-color: #ffffff;
+		border-radius: 20rpx;
+		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;
+			}
+		}
+	}
+
+	.scroll-wrapper {
+		padding-top: 20rpx;
+	}
+
+	.aedxq-wrap {
+	
+	
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		margin: auto;
+		width: 710rpx;
+		min-height: 400rpx;
+		border-radius: 20rpx;
+		padding: 0 25rpx;
+		background-color: rgba($color: #000000, $alpha: 0.9);
+		color: #fff;
+		// 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: 620rpx;
+				// background-color: #bfa;
+				// display: flex;
+				// // justify-content: ;
+				// // flex-direction: column;
+				// flex-wrap: nowrap;
+	
+				.aed-img {
+					// display: inline-block;
+					height: 107rpx;
+					// width: 107rpx;
+					margin-right: 15rpx;
+					// background-color: red;
+					flex-shrink: 0;
+	
+				}
+			}
+	
+			.aed-phone {
+				width: 112rpx;
+				height: 52rpx;
+				line-height: 52rpx;
+				text-align: center;
+				border: 1px solid #fff;
+				border-radius: 10rpx;
+			}
+	
+			// background-color: red;
+		}
+	
+		.aed-dh {
+			width: 147rpx;
+			line-height: 70rpx;
+			text-align: center;
+			background-color: #4d8bd6;
+			border-radius: 15rpx;
+			position: absolute;
+			right: 25rpx;
+			top: 25rpx;
+		}
+	}
+
+	.pop-wrap {
+		width: 522rpx;
+		height: 800rpx;
+		// background-color: red;
+	}
+
+	.popup-box {
+		width: 522rpx;
+		height: 800rpx;
+		border-radius: 20rpx;
+		position: relative;
+		overflow: hidden;
+		background-color: #fff;
+
+		.popup-item {
+			width: 100%;
+			height: 100%;
+
+
+			image {
+				width: 100%;
+				// height: 100%;
+			}
+		}
+
+	}
+
+	.close {
+		display: block;
+		width: 40rpx;
+		height: 40rpx;
+		border: 50%;
+		position: absolute;
+		// background-color: red;
+		bottom: -100rpx;
+		left: 0;
+		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>

+ 28 - 48
pages/applic/toknowledge.vue

@@ -1,13 +1,10 @@
 <template>
-	<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="content">
+		<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>
+					<image src="../../static/icon/zxkp1.png"></image>
 					<view class="name">捐献造血干细胞的意义</view>
 				</view>
 				<view class="list-tpl">
@@ -16,7 +13,7 @@
 			</view>
 			<view class="list-item">
 				<view class="list-title flex_item">
-					<image src="../../static/icon/icon2.png"></image>
+					<image src="../../static/icon/zxkp1.png"></image>
 					<view class="name">从外周血中采集造血干细胞</view>
 				</view>
 				<view class="list-tpl">
@@ -25,7 +22,7 @@
 			</view>
 			<view class="list-item">
 				<view class="list-title flex_item">
-					<image src="../../static/icon/icon2.png"></image>
+					<image src="../../static/icon/zxkp1.png"></image>
 					<view class="name">采集造血干细胞有没有危险?</view>
 				</view>
 				<view class="list-tpl">
@@ -34,7 +31,7 @@
 			</view>
 			<view class="list-item">
 				<view class="list-title flex_item">
-					<image src="../../static/icon/icon2.png"></image>
+					<image src="../../static/icon/zxkp1.png"></image>
 					<view class="name">捐献造血干细胞影响身体健康吗?</view>
 				</view>
 				<view class="list-tpl">
@@ -43,16 +40,16 @@
 			</view>
 			<view class="list-item">
 				<view class="list-title flex_item">
-					<image src="../../static/icon/icon2.png"></image>
+					<image src="../../static/icon/zxkp1.png"></image>
 					<view class="name">怎样成为造血干细胞志愿捐献者??</view>
 				</view>
 				<view class="list-tpl">
-					您可与长宁区红十字会联系,报名。到指定地点抽取6-8毫升血液,经HLA分型检验,把相关资料录入到中华骨髓库的数据库中,这样您就成为造血干细胞志愿捐献者了。
+					您可与武汉市东西湖区红十字会联系报名。到指定地点抽取6-8毫升血液,经HLA分型检验,把相关资料录入到中华骨髓库的数据库中,这样您就成为造血干细胞志愿捐献者了。
 				</view>
 			</view>
 			<view class="list-item">
 				<view class="list-title flex_item">
-					<image src="../../static/icon/icon2.png"></image>
+					<image src="../../static/icon/zxkp1.png"></image>
 					<view class="name">报名前有哪些特别需要注意的事项? </view>
 				</view>
 				<view class="list-tpl">
@@ -61,7 +58,7 @@
 			</view>
 			<view class="list-item">
 				<view class="list-title flex_item">
-					<image src="../../static/icon/icon2.png"></image>
+					<image src="../../static/icon/zxkp1.png"></image>
 					<view class="name">填写“造血干细胞志愿捐献者同意书”注意什么? </view>
 				</view>
 				<view class="list-tpl">
@@ -70,7 +67,7 @@
 			</view>
 			<view class="list-item">
 				<view class="list-title flex_item">
-					<image src="../../static/icon/icon2.png"></image>
+					<image src="../../static/icon/zxkp1.png"></image>
 					<view class="name">健康者在多大年龄适合捐献造血干细胞? </view>
 				</view>
 				<view class="list-tpl">
@@ -79,7 +76,7 @@
 			</view>
 			<view class="list-item">
 				<view class="list-title flex_item">
-					<image src="../../static/icon/icon2.png"></image>
+					<image src="../../static/icon/zxkp1.png"></image>
 					<view class="name">什么时候能够捐献? </view>
 				</view>
 				<view class="list-tpl">
@@ -88,7 +85,7 @@
 			</view>
 			<view class="list-item">
 				<view class="list-title flex_item">
-					<image src="../../static/icon/icon2.png"></image>
+					<image src="../../static/icon/zxkp1.png"></image>
 					<view class="name">捐献者需要承担费用吗?有报酬吗? </view>
 				</view>
 				<view class="list-tpl">
@@ -98,19 +95,18 @@
 			<view class="list-tips">
 				<text style="color: #C53335;">温馨提示</text>:每个志愿者抽取一次血样即可,您的资料将储存在中国造血干细胞捐献者资料库中。
 			</view>
-			<view class="list-tips" style="color: #C53335;text-align: center;">
+			<!-- <view class="list-tips" style="color: #C53335;text-align: center;text-indent: 0;">
 				{{$store.state.baseName}}造血干细胞捐献咨询电话:
 			</view>
-			<view class="list-tips" style="text-align: center;">
-				{{HSCTel}}
-			</view>
-		</view> -->
+			<view class="list-tips" style="text-align: center;text-indent: 0;">
+				{{$store.state.zxphone}}
+			</view> -->
+		</view>
 	</view>
 </template>
 <script>
 import { get_cell } from '@/api/train.js';
-import jyfParser from "@/components/jyf-parser/jyf-parser";
-import { mapState, mapMutations } from 'vuex';
+import jyfParser from "@/components/jyf-parser/jyf-parser";
 export default {
 	components: {
 	   jyfParser
@@ -123,25 +119,9 @@ export default {
 		};
 	},
 	onLoad(option) {
-		this.id = option.id;
-		this.loadData();
-	},
-	computed: {
-		...mapState('info',['HSCTel'])
 	},
 	onShow() {},
 	methods: {
-		async loadData() {
-			let obj = this;
-			get_cell({
-				id:obj.id
-			}).then((e) => {
-				obj.list = e.data;
-				if(obj.list.content != null){
-					obj.description = obj.list.content.replace(/<img/g,"<img style='max-width:100%;height:auto;'");
-				}//小程序商品详情图超出屏幕问题
-			});
-		}
 	}
 };
 </script>
@@ -152,10 +132,7 @@ page {
 	width: 100%;
 	height: 100%;
 	.content {
-		height: 100%;
-		image {
-			vertical-align: bottom;
-		}
+		height: 100%;
 	}
 }
 .top-image{
@@ -171,9 +148,10 @@ page {
 		font-size: 34rpx;
 		display: flex;
 		image{
-			width: 56rpx;
-			height: 44rpx;
-			margin-right: 15rpx;
+			width: 60rpx;
+			height: 60rpx;
+			margin-right: 15rpx;
+			flex-shrink: 0;
 		}
 	}
 	.list-tpl{
@@ -183,7 +161,9 @@ page {
 		border:4rpx solid #C53335;
 		color: #222222;
 		font-size: 28rpx;
-		border-radius: 25rpx;
+		border-radius: 25rpx;
+		text-align: justify;
+		// text-indent:2em;
 	}
 }
 .list-tips{

+ 195 - 194
pages/category/category.vue

@@ -1,5 +1,5 @@
-<template>
-	
+<template>
+
 	<view class="content">
 		<view class="top">
 			<image src="../../static/img/jiuzai.png" mode="widthFix" class="bgi"></image>
@@ -8,7 +8,7 @@
 			参与人数({{count}}人)
 		</view>
 		<view class="pop-list">
-			<view class="list-box1" v-for="(item,index) in peoplelist" :key='index' v-if="index<20">
+			<view class="list-box1" v-for="(item,index) in peoplelist" :key='item.ids' v-if="index<20">
 				<view class="list-top">
 					<image src="../../static/img/002.png" mode="" class="avatar-img"></image>
 				</view>
@@ -29,28 +29,33 @@
 				<view class="list-left">
 					姓名:
 				</view>
-				<input type="text" v-model="name" class="list-input" placeholder="请输入您的姓名"/>
+				<input type="text" v-model="name" class="list-input" placeholder="请输入您的姓名" />
 			</view>
 			<view class="list">
 				<view class="list-left">
 					手机:
 				</view>
-				<input type="text" v-model="phone" class="list-input" placeholder='请填写您的联系方式'/>
+				<input type="text" v-model="phone" class="list-input" placeholder='请填写您的联系方式' />
 			</view>
 			<view class="list" @click="getLocation">
 				<view class="list-left">
 					地址:
 				</view>
 				<!-- <picker-address class="box-right" @change="onCityClick">{{ address }}</picker-address> -->
-				<input type="text" v-model="showaddress" disabled class="list-input" placeholder='请选择定位地址'/>
-
+				<!-- <input type="text" v-model="showaddress" disabled class="list-input" placeholder='请选择定位地址' /> -->
+				<view class="list-input">
+					{{showaddress || '请选择定位地址'}}
+				</view>
 			</view>
 			<view class="list" @click="Toshow">
 				<view class="list-left">
 					机构:
 				</view>
-				<!-- <input type="text" v-model="mechanism" @click="tosearch" class="list-input" placeholder='请输入机构关键字'/> -->
-				<input type="text" v-model="mechanism" class="list-input" placeholder='请输入机构关键字' disabled/>
+				<!-- <input type="text" v-model="mechanism" @click="tosearch" class="list-input" placeholder='请输入机构关键字'/> -->
+				<!-- <input type="text" v-model="mechanism" class="list-input" placeholder='' disabled/> -->
+				<view class="list-input">
+					{{mechanism || '请输入机构关键字'}}
+				</view>
 			</view>
 
 			<view class="upload-box">
@@ -58,20 +63,14 @@
 					请上传救护员证书或身份证:
 				</view>
 				<view class="upload-right">
-					<image :src="certificates" mode="" class="upload-img" @click.stop="imgsub" v-if="certificates"></image>
-					<image src="../../static/images/upload.png" class="upload-img" mode="" v-if="!certificates" @click.stop="imgsub"></image>
+					<image :src="certificates" mode="" class="upload-img" @click.stop="imgsub" v-if="certificates">
+					</image>
+					<image src="../../static/images/upload.png" class="upload-img" mode="" v-if="!certificates"
+						@click.stop="imgsub"></image>
 				</view>
-			</view>
-			<zhilin-picker
-				v-model="show"
-				:title="title"
-				:data="list"
-				:initSelected="initSelected"
-				:showSearch="true"
-				@change="onChange"
-				@searchInput='onSearchInput'
-				@confirm="onConfirm1"
-			/>
+			</view>
+			<zhilin-picker v-model="show" :title="title" :data="list" :initSelected="initSelected" :showSearch="true"
+				@change="onChange" @searchInput='onSearchInput' @confirm="onConfirm1" />
 		</view>
 		<view class="sub" :class="{ action: loding }" @click="!loding?join():''">
 			马上报名
@@ -79,14 +78,14 @@
 	</view>
 </template>
 
-<script>
-	import {
-		mechanism
+<script>
+	import {
+		mechanism
 	} from '@/api/ask.js'
 	import {
 		getNumber
 	} from '@/api/index.js';
-	import pickerAddress from '@/components/wangding-pickerAddress/wangding-pickerAddress.vue';
+	import pickerAddress from '@/components/wangding-pickerAddress/wangding-pickerAddress.vue';
 	import zhilinPicker from "@/components/zhilin-picker/zhilin-picker.vue"
 	import {
 		upload,
@@ -97,27 +96,27 @@
 			pickerAddress,
 		},
 		computed: {
-	
+
 		},
 		data() {
-		
+
 			return {
 				longitude: '',
 				latitude: '',
 				name: '',
 				phone: '',
-				mechanism: '',
-				title: '选择机构',
-				show: false,
-				list:[],
-				initSelected: [],
-				searchVal:'',
+				mechanism: '',
+				title: '选择机构',
+				show: false,
+				list: [],
+				initSelected: [],
+				searchVal: '',
 				address: '',
 				certificates: '',
 				loding: false, //是否提交中
 				showaddress: '', //显示用的地址
 				count: 0,
-				 peoplelist: [],
+				peoplelist: [],
 				addressData: {
 					name: '',
 					mobile: '',
@@ -133,22 +132,22 @@
 					default: false
 				},
 			}
-		},
-
-		onShow() {
-			this.loadData();
-		},
-		watch:{
-			searchVal(){
-				this.ListDate();
-			},
 		},
-		methods: {
-			tosearch(){
-				console.log(123)
-				uni.navigateTo({
-					url:'/pages/category/search'
-				})
+
+		onShow() {
+			this.loadData();
+		},
+		watch: {
+			searchVal() {
+				this.ListDate();
+			},
+		},
+		methods: {
+			tosearch() {
+				console.log(123)
+				uni.navigateTo({
+					url: '/pages/category/search'
+				})
 			},
 			async loadData() {
 				let obj = this;
@@ -164,116 +163,116 @@
 			// 选择当前位置
 			getLocation() {
 				console.log('选择当前位置');
-				let obj = this;
-				uni.chooseLocation({
-					success: function(res) {
-						obj.addressData.area = res.name;
-						console.log('位置名称:' + res.name);
-						console.log('详细地址:' + res.address);
-						console.log('纬度:' + res.latitude);
-						console.log('经度:' + res.longitude);
-						obj.addressData.latitude = res.latitude;
-						obj.addressData.longitude = res.longitude;
-						// let	dizhi = obj.addressData.latitude + ','+ obj.addressData.longitude;
-						obj.showaddress = res.address;
-					}
-				});
-				// let wxObj = require('jweixin-module')
-				// wxObj.getLocation({
-				//     type: 'gcj02', //返回可以用于uni.openLocation的经纬度
-				//     success: function (res) {
-				// 		const latitude = res.latitude;
-				//         const longitude = res.longitude;
-				// 		console.log('获取当前latitude',latitude)
-				// 		console.log('获取当前longitude',longitude)
-				//        wxObj.openLocation({
-				// 		   latitude,
-				// 		   longitude,
-				//    //     	success: function(res) {
-				// 			// console.log(res)
-				//    //     		obj.addressData.area = res.name;
-				//    //     		console.log('位置名称:' + res.name);
-				//    //     		console.log('详细地址:' + res.address);
-				//    //     		console.log('纬度:' + res.latitude);
-				//    //     		console.log('经度:' + res.longitude);
-				//    //     		obj.addressData.latitude = res.latitude;
-				//    //     		obj.addressData.longitude = res.longitude;
-				//    //     		// let	dizhi = obj.addressData.latitude + ','+ obj.addressData.longitude;
-				//    //     		obj.showaddress = res.address;
-				//    //     	}
-				//        });
-				//     }
-				// });
-			
-			},
-			// 机构
-			Toshow(){
-				console.log('点击选择机构')
-				this.show = true;
-			},
-			onChange(val){
-				let obj = this;
-				console.log(val,'onChange')
-				// let arr = val.split(',');
-				// console.log(999,arr)
-				// obj.hospital = arr[1];
-				// obj.hospital_id = arr[0];
-				// obj.city = arr[2];
-				// obj.city_id = arr[3];
-				// obj.district = arr[4];
-				// obj.district_id = arr[5];
-				// obj.province = arr[6];
-				// obj.province_id = arr[7];
-				// obj.addr = obj.province + obj.city + obj.district;
-				// console.log(obj.hospital,obj.hospital_id)
-				// console.log(obj.city,obj.city_id)
-				// console.log(obj.district,obj.district_id)
-				// console.log(obj.province,obj.province_id)
-			},
-			onSearchInput(val){
-				this.searchVal = val.value;
-			},
-			// 选择机构
-			ListDate() {
-				let obj = this;
-				let data = '';
-				console.log('obj.searchVal',obj.searchVal)
-				if(!obj.searchVal){
-					console.log('!obj.searchVal')
-					data={
-						keyword:'',
-						// sort:'id desc',
-						page:1,
-						limit:1500,
-					}
-				}else{
-					console.log('else')
-					console.log('当前input值',obj.searchVal)
-					data={
-						keyword:obj.searchVal,
-						// sort:'id desc',
-						page:1,
-						limit:1500,
-					}
-				}
-				mechanism(
-					data
-				).then(data => {
-					console.log('请求成功',data)
-					this.list = data.data.map(item => item)
-					// this.show = true
-				})
-				// getHospitalList(data).then(e => {
-				// 	obj.list = e.data.list;
-				// }).catch((e) => {
-				// 	console.log(e)
-				// });
-			},
-			onConfirm1(e) {
-				console.log('点击确认')
-				// let arr = e
-				this.mechanism = e.split(',')[1]
-				this.list = []
+				let obj = this;
+				uni.chooseLocation({
+					success: function(res) {
+						obj.addressData.area = res.name;
+						console.log('位置名称:' + res.name);
+						console.log('详细地址:' + res.address);
+						console.log('纬度:' + res.latitude);
+						console.log('经度:' + res.longitude);
+						obj.addressData.latitude = res.latitude;
+						obj.addressData.longitude = res.longitude;
+						// let	dizhi = obj.addressData.latitude + ','+ obj.addressData.longitude;
+						obj.showaddress = res.address;
+					}
+				});
+				// let wxObj = require('jweixin-module')
+				// wxObj.getLocation({
+				//     type: 'gcj02', //返回可以用于uni.openLocation的经纬度
+				//     success: function (res) {
+				// 		const latitude = res.latitude;
+				//         const longitude = res.longitude;
+				// 		console.log('获取当前latitude',latitude)
+				// 		console.log('获取当前longitude',longitude)
+				//        wxObj.openLocation({
+				// 		   latitude,
+				// 		   longitude,
+				//    //     	success: function(res) {
+				// 			// console.log(res)
+				//    //     		obj.addressData.area = res.name;
+				//    //     		console.log('位置名称:' + res.name);
+				//    //     		console.log('详细地址:' + res.address);
+				//    //     		console.log('纬度:' + res.latitude);
+				//    //     		console.log('经度:' + res.longitude);
+				//    //     		obj.addressData.latitude = res.latitude;
+				//    //     		obj.addressData.longitude = res.longitude;
+				//    //     		// let	dizhi = obj.addressData.latitude + ','+ obj.addressData.longitude;
+				//    //     		obj.showaddress = res.address;
+				//    //     	}
+				//        });
+				//     }
+				// });
+
+			},
+			// 机构
+			Toshow() {
+				console.log('点击选择机构')
+				this.show = true;
+			},
+			onChange(val) {
+				let obj = this;
+				console.log(val, 'onChange')
+				// let arr = val.split(',');
+				// console.log(999,arr)
+				// obj.hospital = arr[1];
+				// obj.hospital_id = arr[0];
+				// obj.city = arr[2];
+				// obj.city_id = arr[3];
+				// obj.district = arr[4];
+				// obj.district_id = arr[5];
+				// obj.province = arr[6];
+				// obj.province_id = arr[7];
+				// obj.addr = obj.province + obj.city + obj.district;
+				// console.log(obj.hospital,obj.hospital_id)
+				// console.log(obj.city,obj.city_id)
+				// console.log(obj.district,obj.district_id)
+				// console.log(obj.province,obj.province_id)
+			},
+			onSearchInput(val) {
+				this.searchVal = val.value;
+			},
+			// 选择机构
+			ListDate() {
+				let obj = this;
+				let data = '';
+				console.log('obj.searchVal', obj.searchVal)
+				if (!obj.searchVal) {
+					console.log('!obj.searchVal')
+					data = {
+						keyword: '',
+						// sort:'id desc',
+						page: 1,
+						limit: 1500,
+					}
+				} else {
+					console.log('else')
+					console.log('当前input值', obj.searchVal)
+					data = {
+						keyword: obj.searchVal,
+						// sort:'id desc',
+						page: 1,
+						limit: 1500,
+					}
+				}
+				mechanism(
+					data
+				).then(data => {
+					console.log('请求成功', data)
+					this.list = data.data.map(item => item)
+					// this.show = true
+				})
+				// getHospitalList(data).then(e => {
+				// 	obj.list = e.data.list;
+				// }).catch((e) => {
+				// 	console.log(e)
+				// });
+			},
+			onConfirm1(e) {
+				console.log('点击确认')
+				// let arr = e
+				this.mechanism = e.split(',')[1]
+				this.list = []
 			},
 			imgsub() {
 				console.log('imgsub')
@@ -288,8 +287,8 @@
 				if (obj.name == '') {
 					obj.$api.msg('请输入您的姓名');
 					return
-				}
-			
+				}
+
 				const reg = /^(\+?0?86-?)?1[\d]\d{9}$/;
 				if (!reg.test(obj.phone)) {
 					obj.$api.msg('请填写正确的手机号码');
@@ -311,12 +310,12 @@
 				}
 				obj.loding = true;
 				addrescuer({
-					name: obj.name,
-					phone: obj.phone,
-					address: obj.showaddress,
-					latitude:obj.addressData.latitude,
-					longitude:obj.addressData.longitude,
-					mechanism:obj.mechanism,
+					name: obj.name,
+					phone: obj.phone,
+					address: obj.showaddress,
+					latitude: obj.addressData.latitude,
+					longitude: obj.addressData.longitude,
+					mechanism: obj.mechanism,
 					certificates: obj.certificates
 				}).then(data => {
 					obj.loding = false;
@@ -325,19 +324,19 @@
 						obj.name = '',
 							obj.phone = '',
 							obj.showaddress = '',
-							obj.certificates = '',
-							obj.mechanism = '',
-							obj.addressData.latitude = '',
-							obj.addressData.longitude = '',
-							uni.removeStorage({
-							    key: 'institution',
-							    success: function (res) {
-							        console.log('success');
-							    }
-							});
-							uni.navigateTo({
-								url: '../joinSuc/joinNow'
+							obj.certificates = '',
+							obj.mechanism = '',
+							obj.addressData.latitude = '',
+							obj.addressData.longitude = '',
+							uni.removeStorage({
+								key: 'institution',
+								success: function(res) {
+									console.log('success');
+								}
 							});
+						uni.navigateTo({
+							url: '../joinSuc/joinNow'
+						});
 					} else if (data.status == 400) {
 						obj.$api.msg(data.msg);
 					}
@@ -444,6 +443,7 @@
 				flex-direction: column;
 				justify-content: center;
 				align-items: center;
+
 				.list-top {
 					width: 100rpx;
 					height: 100rpx;
@@ -453,10 +453,11 @@
 						height: 100rpx;
 						border-radius: 50%;
 					}
-				}
-				.nickname{
+				}
+
+				.nickname {
 					margin-top: 12rpx;
-					padding-bottom: 10rpx;
+					padding-bottom: 10rpx;
 				}
 			}
 		}
@@ -515,18 +516,15 @@
 					color: #E63931;
 				}
 
-				input {
-					height: 66rpx;
-					line-height: 66rpx;
-					margin-top: 32rpx;
-					// height: 88rpx;
-				}
+				// input {
+				// 	height: 66rpx;
+
+				// 	// height: 88rpx;
+				// }
 
 				.list-input {
+					margin-top: 32rpx;
 					padding-left: 24rpx;
-					// margin: 12rpx 0 ;
-
-					// line-height: 66rpx;
 					display: flex;
 					align-items: center;
 					width: 100%;
@@ -537,10 +535,13 @@
 					border-radius: 22rpx;
 					text-align: left;
 					padding-right: 24rpx;
+					line-height: 70rpx;
 
 					.input-placeholder {
-						height: 70rpx;
+						// height: 70rpx;
+						// line-height: 70rpx;
 						color: #FF9797;
+						// background-color: red;
 					}
 				}
 
@@ -564,4 +565,4 @@
 		}
 
 	}
-</style>
+</style>

+ 359 - 199
pages/index/index.vue

@@ -36,7 +36,7 @@
 				<view class="cate-item" @click="navTo('/pages/train/index')">
 
 					<image src="../../static/icon/icon5.png" style="width: 66rpx;height: 65rpx;"></image>
-					<text>普及培训</text>
+					<text>培训报名</text>
 				</view>
 			</view>
 		</view>
@@ -63,7 +63,56 @@
 				<image src="../../static/icon/moreRight.png" mode=""></image>
 			</navigator>
 		</view>
-
+		
+		<view class="science-section" style="padding-bottom: 20rpx;">
+			<view class="science-title">
+				<image src="../../static/img/wings-left.png" mode=""></image>
+				<view class="title">爱心榜</view>
+				<image src="../../static/img/wings-right.png" mode=""></image>
+			</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.pay_time | getTime}}
+						</view>
+						<view class="tit clamp" style="width: 30%;">
+							{{item.donate_er || '佚名'}}
+						</view>
+						<view class="tit clamp" style="width: 20%;">
+							{{item.money*1}}
+						</view>
+						<view class="tit clamp">
+							{{item.intention || '红十字会人道事...'}}
+						</view>
+					</view>
+					<view class="lookmore" @click="navTo('/pages/index/loveList')">
+						查看更多
+						<!-- <image src="../../static/icon/lm.png" mode="widthFix"></image> -->
+					</view>
+				</view>
+				
+			</view>
+		</view>
+		
 		<!--  sos急救系统 -->
 		<view class="system">
 			<view class="system-title">
@@ -115,6 +164,9 @@
 			<image src="../../static/icon/moreRight.png" mode=""></image>
 			<image src="../../static/icon/moreRight.png" mode=""></image>
 		</navigator>
+		<view class="" style="height: 20rpx;">
+			
+		</view>
 		<view class="list-box">
 			<view class="system-title">
 				<view class="img">
@@ -154,6 +206,50 @@
 			<image src="../../static/icon/moreRight.png" mode=""></image>
 			<image src="../../static/icon/moreRight.png" mode=""></image>
 		</navigator>
+		<view class="" style="height: 20rpx;">
+			
+		</view>
+		<template v-if="AedList.length > 0">
+			<view class="list-box">
+				<view class="system-title">
+					<view class="img">
+						<image src="../../static/img/wings-left.png"></image>
+					</view>
+					<view class="title">AED</view>
+					<view class="img">
+						<image src="../../static/img/wings-right.png"></image>
+					</view>
+				</view>
+				<view id="container">
+					<map class="map-box" id="map" :show-location="false" :markers="markeraed" :scale='scale'
+						:latitude="latitude4" :longitude="longitude4" ref="map" style="height: 450rpx"
+						@markertap='markertap'>
+					</map>
+				</view>
+				<view class="">
+					<view class="list-tpl flex" @click="openAddress(item)" v-for="(item,index) in AedList" :key="item.id">
+						<view class="list-left">
+							<view class="number">{{ index + 1 }}</view>
+							<view class="info">
+								<view class="title">{{ item.name }}</view>
+								<view class="addr">地址:{{ item.detailed_address }}</view>
+							</view>
+						</view>
+			
+						<view class="image">
+							<image src="../../static/img/img10.png"></image>
+							<view class="tip">导航</view>
+						</view>
+					</view>
+					<!-- <uni-load-more :status="loadingType"></uni-load-more> -->
+				</view>
+			</view>
+			<navigator class="science-more" url="/pages/applic/aed">
+				查看更多
+				<image src="../../static/icon/moreRight.png" mode=""></image>
+				<image src="../../static/icon/moreRight.png" mode=""></image>
+			</navigator>
+		</template>
 		<uni-popup ref="popup" type="bottom" @click="close">
 			<view class="popup_row">
 				<view class="rows">
@@ -198,7 +294,10 @@
 		bannerlist,
 		getListAED,
 		getDistance,
-		getdis
+		getdis,
+		getStation,
+		getLove,
+		tocall
 	} from '@/api/index.js';
 	import {
 		saveUrl,
@@ -223,16 +322,18 @@
 		},
 		data() {
 			return {
+				loveList: [],
 				jzsbList: [],
 				carouselList: [], //轮播
 				science: [], //文章列表
 				page: 1,
 				limit: 10,
-				AEDList: [],
+				AEDList: [],//救护站
+				AedList: [],//aed列表
 				latitude2: '',
 				longitude2: '',
-				latitude4: '',
-				longitude4: '',
+				latitude4: '30.647021',
+				longitude4: '114.133656',
 				// longitude4: '121.15829821166992',
 				// latitude4: "30.044394499237708",
 				address: '',
@@ -240,6 +341,7 @@
 				markerList: [],
 				marker: [],
 				markerjzsb: [],
+				markeraed: [],//aed图表
 				marker1: [],
 				longitude: '121.15829821166992',
 				latitude: "30.044394499237708",
@@ -252,138 +354,103 @@
 				to_phone: '',
 			};
 		},
+		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() {
 			// let token = uni.getStorageSync('token');
 			console.log(11, this);
-			if (!this.hasLogin) {
-				// 登录拦截
-				// interceptor();
-				uni.showModal({
-					title: '登录',
-					content: '您未登录,是否马上登陆?',
-					success: e => {
-						if (e.confirm) {
-							saveUrl();
-							interceptor();
-						}
-					},
-					fail: e => {
-						console.log(e);
-					}
-				});
-			} else {
-				this.loadData();
+			// if (!this.hasLogin) {
+			// 	// 登录拦截
+			// 	// interceptor();
+			// 	uni.showModal({
+			// 		title: '登录',
+			// 		content: '您未登录,是否马上登陆?',
+			// 		success: e => {
+			// 			if (e.confirm) {
+			// 				saveUrl();
+			// 				interceptor();
+			// 			}
+			// 		},
+			// 		fail: e => {
+			// 			console.log(e);
+			// 		}
+			// 	});
+			// } else {
+			// 	this.loadData();
+			// }
+			this.loadData()
+			if(this.timer) {
+				clearTimeout(this.timer)
 			}
 		},
 		onLoad() {
 			let obj = this;
-			try {
-				let locationAddress
-				// #ifdef H5
-				let wxOjb = require('jweixin-module');
-				locationAddress = wxOjb.getLocation;
-				// #endif
-				// #ifdef MP
-				locationAddress = uni.getLocation;
-				// #endif
-				// #ifdef H5
-				wxOjb.ready(() => {
-					console.log('加载完毕注册事件');
-					locationAddress({
-						type: 'gcj02',
-						success: function(res) {
-							console.log('获取经纬度', res);
-							obj.longitude4 = res.longitude
-							obj.latitude4 = res.latitude
-							obj.marker = [{
-								longitude: res.longitude,
-								latitude: res.latitude,
-								iconPath: '/static/img/img19.png',
-								width: '45',
-								height: '45',
-							}]
-							obj.marker1 = [{
-								longitude: res.longitude,
-								latitude: res.latitude,
-								iconPath: '/static/img/img19.png',
-								width: '45',
-								height: '45',
-							}]
-							obj.loadData();
-							obj.getJzsb()
-						},
-						fail(e) {
-							console.log('失败', e);
-							window.location.reload();
-						}
-					});
-				})
-				// #endif
-
-				// #ifdef MP
+			let locationAddress
+			let wxOjb = require('jweixin-module');
+			locationAddress = wxOjb.getLocation;
+			wxOjb.ready(() => {
+				console.log('加载完毕注册事件');
 				locationAddress({
 					type: 'gcj02',
 					success: function(res) {
 						console.log('获取经纬度', res);
 						obj.longitude4 = res.longitude
 						obj.latitude4 = res.latitude
+						obj.marker = [{
+							longitude: res.longitude,
+							latitude: res.latitude,
+							iconPath: '/static/img/img19.png',
+							width: '45',
+							height: '45',
+						}]
+						obj.marker1 = [{
+							longitude: res.longitude,
+							latitude: res.latitude,
+							iconPath: '/static/img/img19.png',
+							width: '45',
+							height: '45',
+						}]
 						obj.loadData();
 						obj.getJzsb()
 					},
 					fail(e) {
 						console.log('失败', e);
-						window.location.reload();
-					}
-				});
-				// #endif
-			} catch (e) {
-				let locationAddress
-				// #ifdef H5
-				let wxOjb = require('jweixin-module');
-				locationAddress = wxOjb.getLocation;
-				// #endif
-				// #ifdef MP
-				locationAddress = uni.getLocation;
-				// #endif
-				// #ifdef H5
-				wxOjb.ready(() => {
-					console.log('加载完毕注册事件');
-					locationAddress({
-						type: 'wgs84',
-						success: function(res) {
-							console.log('获取经纬度', res);
-							obj.longitude4 = res.longitude
-							obj.latitude4 = res.latitude
-							obj.loadData();
-							obj.getJzsb()
-						},
-						fail(e) {
-							console.log('失败', e);
-							window.location.reload();
-						}
-					});
-				})
-				// #endif
-				// #ifdef MP
-				locationAddress({
-					type: 'wgs84',
-					success: function(res) {
-						console.log('获取经纬度', res);
-						obj.longitude4 = res.longitude
-						obj.latitude4 = res.latitude
+						// window.location.reload();
+						//30.647021,114.133656
+						obj.longitude4 = '114.133656'
+						obj.latitude4 = '30.647021'
+						obj.marker = [{
+							longitude: res.longitude,
+							latitude: res.latitude,
+							iconPath: '/static/img/img19.png',
+							width: '45',
+							height: '45',
+						}]
+						obj.marker1 = [{
+							longitude: res.longitude,
+							latitude: res.latitude,
+							iconPath: '/static/img/img19.png',
+							width: '45',
+							height: '45',
+						}]
 						obj.loadData();
 						obj.getJzsb()
-					},
-					fail(e) {
-						console.log('失败', e);
-						window.location.reload();
 					}
 				});
-				// #endif
-			}
+			})
 		},
 		computed: {
-			...mapState('user', ['userInfo', 'baseURL', 'hasLogin'])
+			...mapState('user', ['userInfo', 'baseURL', 'hasLogin']),
+			showLove() {
+				return this.loveList.slice(0, 5);
+			}
 		},
 		// 下拉加载
 		onReachBottom() {
@@ -391,53 +458,67 @@
 		},
 		methods: {
 			...mapMutations('user', ['setUserInfo']),
+			gundong() {
+				let obj = this;
+				obj.timer = setTimeout(() => {
+					obj.loveList.push(obj.loveList.shift());
+					// console.log(obj.moreJxList)
+					obj.gundong();
+				}, 2000);
+			},
+			getLove(index_start_time,index_end_time) {
+				let obj = this
+				getLove({
+					page: 1,
+					limit: 100,
+					data:index_start_time+ ' - ' + index_end_time
+				}).then(res => {
+					this.loveList = res.data.data
+					if(obj.loveList.length > 5) {
+						obj.gundong();
+					}
+				})
+			},
 			cancel() {
 				this.$refs.popups.close();
 			},
-			comfirm1: function() {
-						let obj = this;
-						if (obj.to_phone.toString().trim() == '') {
-							// uni.showModal({
-							// 	title:'输入框为空',
-							// 	// content:JSON.stringify(obj)
-							// })
-						} else {
-							console.log('obj.to_phone1111', obj.to_phone);
-							const reg = /^(\+?0?86-?)?1[\d]\d{9}$/;
-							if (!reg.test(obj.to_phone)) {
-								obj.$api.msg('请填写正确的手机号码');
-								return;
+			comfirm1() {
+				let obj = this;
+				if (obj.to_phone.toString().trim() == '') {
+					// uni.showModal({
+					// 	title:'输入框为空',
+					// 	// content:JSON.stringify(obj)
+					// })
+				} else {
+					console.log('obj.to_phone1111', obj.to_phone);
+					const reg = /^(\+?0?86-?)?1[\d]\d{9}$/;
+					if (!reg.test(obj.to_phone)) {
+						obj.$api.msg('请填写正确的手机号码');
+						return;
+					}
+					tocall({
+						name: obj.name,
+						uid: obj.uid,
+						phone: obj.phone,
+						longitude: obj.longitude4,
+						latitude: obj.latitude4,
+						to_phone: obj.to_phone
+					}).then(data => {
+						console.log(99988, data);
+						uni.showModal({
+							title: '请耐心等待救援',
+							success: res => {
+								if (res.confirm) {
+									window.location.reload(); //重新刷新页面
+								}
 							}
-							console.log('name:', obj.name);
-							console.log('uid:', obj.uid);
-							console.log('phone', obj.phone);
-							console.log('to_phone', obj.to_phone);
-							console.log('longitude', obj.longitude);
-							console.log('latitude', obj.latitude);
-							console.log('iscall', obj.iscall);
-							tocall({
-								name: obj.name,
-								uid: obj.uid,
-								phone: obj.phone,
-								longitude: obj.longitude4,
-								latitude: obj.latitude4,
-								to_phone: obj.to_phone
-							}).then(data => {
-								console.log(99988, data);
-								uni.showModal({
-									title: '请耐心等待救援',
-									success: res => {
-										if (res.confirm) {
-											window.location.reload(); //重新刷新页面
-										}
-									}
-								});
-								obj.$refs.popups.close();
-								obj.iscall = false;
-								console.log(123, obj.iscall);
-							});
-						}
-					},
+						});
+						obj.$refs.popups.close();
+						obj.iscall = false;
+						console.log(123, obj.iscall);
+					});
+				}
+			},
 			// 立即救援
 			rescue(item, index) {
 				let obj = this;
@@ -552,22 +633,39 @@
 			loadData() {
 				let obj = this;
 				console.log('打印当前经纬度', obj.longitude4, obj.latitude4)
-				userinfo({}).then(({
+				// userinfo({}).then(({
+				// 	data
+				// }) => {
+				// 	obj.setUserInfo(data);
+				// 	loadIndexs({}).then(({
+				// 		data
+				// 	}) => {
+				// 		obj.carouselList = data.banner; //轮播图
+				// 		bannerlist().then(({
+				// 			data
+				// 		}) => {
+				// 			console.log(data);
+				// 			obj.science = data;
+				// 		});
+				// 	});
+
+				// });
+				loadIndexs({}).then(({
 					data
 				}) => {
-					obj.setUserInfo(data);
-					loadIndexs({}).then(({
+					obj.carouselList = data.banner; //轮播图
+					console.log(data.index_end_time,)
+					if(data.index_end_time && data.index_statr_time) {
+						console.log('zz')
+						this.getLove(data.index_statr_time,data.index_end_time)
+					}else {
+						this.getLove()
+					}
+					bannerlist().then(({
 						data
 					}) => {
-						obj.carouselList = data.banner; //轮播图
-						bannerlist().then(({
-							data
-						}) => {
-							console.log(data);
-							obj.science = data;
-						});
+						obj.science = data;
 					});
-
 				});
 				if (obj.loadingType === 'noMore') {
 					//防止重复加载
@@ -575,23 +673,7 @@
 				}
 				// 修改当前对象状态为加载中
 				obj.loadingType = 'loading';
-				// getListAED({
-				// 	page: obj.page,
-				// 	limit: obj.limit
-				// }).then(({
-				// 	data
-				// }) => {
-				// 	console.log(data, 999)
-				// 	// obj.AEDList = data
-				// 	obj.AEDList = obj.AEDList.concat(data);
-				// 	obj.markerList = data
-				// 	obj.page++;
-				// 	if (obj.limit == data.length) {
-				// 		obj.loadingType = 'more';
-				// 	} else {
-				// 		obj.loadingType = 'noMore';
-				// 	}
-				// })
+				obj.getStation()
 				getDistance({
 					lng1: obj.longitude4,
 					lat1: obj.latitude4
@@ -613,10 +695,6 @@
 					obj.marker = obj.marker.concat(arr)
 					obj.marker = obj.marker.slice(0, 6)
 					console.log('obj.marker', obj.marker)
-					// uni.showModal({
-					// 	title: '提示',
-					// 	content: JSON.stringify(obj.marker)
-					// })
 				})
 				obj.getJzsb()
 			},
@@ -671,11 +749,28 @@
 				}).catch(err => {
 					console.log(err);
 					uni.hideLoading();
-					// uni.showModal({
-					// 	title: '失败',
-					// 	content: JSON.stringify(err)
-					// });
 				});
+			},
+			getStation() {
+				getStation({
+					longitude: this.longitude4,
+					latitude: this.latitude4,
+					page: 1,
+					limit: 3
+				}).then(res => {
+					this.AedList = res.data.list.slice(0, 3)
+					let arr =this.AedList.map(item => ({
+						latitude: item.latitude,
+						longitude: item.longitude,
+						iconPath: '/static/icon/aed-na.png',
+						width: '35',
+						height: '35',
+						id: item.id,
+						address: item.detailed_address
+					}))
+					this.markeraed = this.marker1.concat(arr)
+					
+				})
 			}
 		}
 	};
@@ -1000,15 +1095,13 @@
 
 		.list-tpl {
 			background-color: #FFFFFF;
-			margin: 25rpx 0rpx;
+			margin: 25rpx 0rpx 0;
 			padding: 25rpx 25rpx;
 			font-size: 28rpx;
 			border-radius: 15rpx;
 			display: flex;
 			justify-content: space-between;
-			// &:last-of-type {
-			// 	margin-bottom: 0;
-			// }
+
 			.list-left {
 				display: flex;
 				width: 100%;
@@ -1059,6 +1152,7 @@
 		align-items: center;
 		border-bottom: 1rpx solid #e7e8ea;
 		padding: 15rpx 30rpx;
+
 		// margin: auto;
 		.box-left {
 			display: flex;
@@ -1144,6 +1238,7 @@
 			}
 		}
 	}
+
 	.popup_rows {
 		// margin-top: 108rpx;
 		height: 440rpx;
@@ -1152,6 +1247,7 @@
 		padding: 24rpx;
 		background-color: #f8f8f8;
 		z-index: 999;
+
 		.title {
 			border-bottom: 2rpx solid #f2f2f2;
 			color: #e63931;
@@ -1160,39 +1256,46 @@
 			padding-bottom: 16rpx;
 			display: flex;
 			justify-content: space-between;
+
 			// align-items: center;
 			.cancel {
 				margin-left: 52rpx;
 				width: 36rpx;
 				height: 36rpx;
+
 				image {
 					width: 36rpx;
 					height: 36rpx;
 				}
 			}
 		}
+
 		.inpBox {
 			margin-top: 52rpx;
 			border: 2px solid #f2f2f2;
 			padding: 12rpx 24rpx;
 			color: #ff9797;
 			border-radius: 8rpx;
+
 			.input-placeholder {
 				// height: 70rpx;
 				font-size: 32rpx;
 				color: #ff9797;
 			}
 		}
+
 		.inpedit {
 			margin-top: 24rpx;
 			margin-left: 14rpx;
 			font-size: 28rpx;
 			color: #ff9797;
 		}
+
 		.comfirm {
 			display: flex;
 			justify-content: flex-end;
 			margin-top: 54rpx;
+
 			.comfirm1 {
 				padding: 12rpx 24rpx;
 				border-radius: 12rpx;
@@ -1201,6 +1304,7 @@
 			}
 		}
 	}
+
 	.science-more {
 		background-color: #fff;
 		display: flex;
@@ -1210,10 +1314,66 @@
 		font-size: 30rpx;
 		padding-top: 18rpx;
 		padding-bottom: 18rpx;
-	
+
 		image {
 			width: 20rpx;
 			height: 27rpx;
 		}
 	}
-</style>
+	.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;
+			}
+		}
+	}
+	
+	.lookmore {
+		padding: 10rpx 0;
+		font-size: 24rpx;
+		font-weight: 500;
+		color: #090909;
+		image {
+			display: inline-block;
+			margin-left: 10rpx;
+			width: 18rpx;
+			
+		}
+	}
+</style>

+ 252 - 0
pages/index/loveList.vue

@@ -0,0 +1,252 @@
+<template>
+	<view class="content">
+		<view class="ss-wrap flex" v-if="!showss" @click="showss = true">
+			<image src="../../static/icon/Rectangle.png" mode=""></image>输入(捐赠者或捐赠单位)名称搜索
+		</view>
+		<input type="text" placeholder="输入(捐赠者或捐赠单位)名称搜索" v-model="keyword" class="ss" v-if="showss" :focus="showss" confirm-type="search" @confirm="getLoveList('reload')">
+		<view class="love-list-wrap">
+			<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>
+			<scroll-view scroll-y="true" :style="{'height': height}" class="love-list" @scrolltolower="getLoveList()">
+				<espempty v-if="loaded && loveList.length == 0"></espempty>
+				<view class="tab-tit flex tab-val" v-for="item in loveList" @click="showP(item)">
+					<view class="tit clamp">
+						{{item.pay_time | getTime}}
+					</view>
+					<view class="tit clamp" style="width: 30%;">
+						{{item.donate_er || '佚名'}}
+					</view>
+					<view class="tit clamp" style="width: 20%;">
+						{{item.money*1}}
+					</view>
+					<view class="tit clamp">
+						{{item.intention || '红十字会人道事...'}}
+					</view>
+				</view>
+				<uni-load-more :status="loadingType"></uni-load-more>
+			</scroll-view>
+		</view>
+		<uni-popup ref="popup" type="center">
+			<view class="zz-wrap">
+				<view class="top">
+					捐赠详情
+				</view>
+				<view class="tit">
+					捐赠时间:
+				</view>
+				<view class="con">
+					{{showPD.pay_time | getTime}}
+				</view>
+				<view class="tit">
+					捐献者/单位:
+				</view>
+				<view class="con">
+					{{showPD.donate_er || '佚名'}}
+				</view>
+				<view class="tit">
+					捐赠金额:
+				</view>
+				<view class="con">
+					{{showPD.money*1}}
+				</view>
+				<view class="tit">
+					捐赠意向:
+				</view>
+				<view class="con">
+					{{showPD.intention || '红十字会人道事业'}}
+				</view>
+
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+	import espempty from '@/components/espempty';
+	import {
+		getLove
+	} from '@/api/index.js';
+	export default {
+		components: {
+			espempty
+		},
+		data() {
+			return {
+				height: '',
+				loveList: [],
+				page: 1,
+				limit: 50,
+				keyword: '',
+				showss: false,
+				loadingType: 'more',
+				loaded: false,
+				showPD:{}
+			}
+		},
+		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;
+			},
+		},
+		onLoad() {
+			this.getLoveList()
+		},
+		onShow() {
+
+		},
+		onReachBottom() {
+
+		},
+		onReady(res) {
+			var obj = this;
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.love-list').boundingClientRect();
+					query.exec(function(res) {
+						obj.height = (resu.windowHeight - res[0].top - 10) + 'px';
+						console.log(obj.height)
+					});
+				},
+				fail: res => {}
+			});
+		},
+		methods: {
+			showP(item) {
+				this.showPD = item
+				this.$refs.popup.open()
+			},
+			//获取红会爱心榜 
+			getLoveList(type) {
+				let obj = this
+				if(type == 'reload') {
+					obj.page = 1
+					obj.loveList = []
+					obj.loadingType = 'more'
+					obj.loaded = false
+				}
+				if(obj.loadingType == 'noMore' || obj.loadingType == 'loading') {
+					return
+				}
+				obj.loadingType = 'loading'
+				getLove({
+					page: obj.page,
+					limit: obj.limit,
+					name: obj.keyword
+				}).then(res => {
+					obj.loveList = obj.loveList.concat(res.data.data)
+					obj.page++
+					if(obj.limit == res.data.data.length) {
+						obj.loadingType = 'more'
+					}else {
+						obj.loadingType = 'noMore'
+					}
+					obj.loaded = true
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		padding-top: 20rpx;
+		height: auto;
+		min-height: 100%;
+		background-color: #fff;
+	}
+
+	.ss-wrap {
+		width: 695rpx;
+		height: 62rpx;
+		background: #f5f5f5;
+		border-radius: 31rpx;
+		margin: auto;
+		justify-content: center;
+		align-items: center;
+		font-size: 26rpx;
+		font-weight: 500;
+		color: #99999F;
+
+		image {
+			width: 28rpx;
+			height: 28rpx;
+			margin-right: 15rpx;
+		}
+	}
+
+	.ss {
+		width: 695rpx;
+		height: 62rpx;
+		background: #f5f5f5;
+		border-radius: 31rpx;
+		margin: auto;
+		padding-left: 30rpx;
+	}
+
+	.love-list-wrap {
+		width: 694rpx;
+		// height: 873rpx;
+		background: #FFFFFF;
+		box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 0, 0, 0.1);
+		border-radius: 30rpx;
+		margin: 30rpx auto;
+		overflow: hidden;
+		.tab-tit {
+			line-height: 65rpx;
+			border-bottom: 1px solid #F2F2F2;
+
+			.tit {
+				width: 25%;
+				text-align: center;
+				font-size: 24rpx;
+				font-weight: bold;
+				color: #FF4C4C;
+			}
+		}
+
+		.tab-val {
+			.tit {
+				color: #101010;
+			}
+		}
+	}
+	.zz-wrap {
+		background-color: #fff;
+		width: 600rpx;
+		border-radius: 20rpx;
+		padding: 20rpx 30rpx;
+		.top {
+			text-align: center;
+			padding: 20rpx;
+			font-size: 32rpx;
+			font-weight: bold;
+		}
+		.tit {
+			font-size: 28rpx;
+			font-weight: bold;
+			padding-bottom: 10rpx;
+		}
+		.con {
+			font-size: 28rpx;
+			padding-bottom: 20rpx;
+			text-indent: 2em;
+		}
+	}
+</style>

BIN
static/icon/Rectangle.png


BIN
static/icon/aed-a.png


BIN
static/icon/aed-na.png


BIN
static/icon/dingwei.png


BIN
static/icon/zxkp1.png


BIN
unpackage/dist/build/h5/static/img/002.1489a776.png


BIN
unpackage/dist/build/h5/static/img/HLA.7463ca3a.webp


BIN
unpackage/dist/build/h5/static/img/ack.fe5c6ec8.png


BIN
unpackage/dist/build/h5/static/img/activity.5adbaff8.png


BIN
unpackage/dist/build/h5/static/img/application.db9384b5.png


BIN
unpackage/dist/build/h5/static/img/bgitop.efff07b0.png


BIN
unpackage/dist/build/h5/static/img/call.354445ca.png


BIN
unpackage/dist/build/h5/static/img/danate01.8a7305fc.png


BIN
unpackage/dist/build/h5/static/img/graduation.0e3ec21e.png


BIN
unpackage/dist/build/h5/static/img/icon1.f6452a41.png


BIN
unpackage/dist/build/h5/static/img/icon2.a4b582ff.png


BIN
unpackage/dist/build/h5/static/img/icon3.eb2240df.png


BIN
unpackage/dist/build/h5/static/img/icon4.bb596ac4.png


BIN
unpackage/dist/build/h5/static/img/img001.14df7ff7.jpg


BIN
unpackage/dist/build/h5/static/img/img001.ba854d8a.jpeg


BIN
unpackage/dist/build/h5/static/img/img002.5aebb1d7.png


BIN
unpackage/dist/build/h5/static/img/img03.b0298bca.webp


BIN
unpackage/dist/build/h5/static/img/img04.f3fc03ee.webp


BIN
unpackage/dist/build/h5/static/img/img05.e3d7e190.webp


BIN
unpackage/dist/build/h5/static/img/img06.c1990f93.webp


BIN
unpackage/dist/build/h5/static/img/img07.f827319d.jpeg


BIN
unpackage/dist/build/h5/static/img/img08.c36dcd59.jpeg


BIN
unpackage/dist/build/h5/static/img/img09.b7c1b707.webp


BIN
unpackage/dist/build/h5/static/img/img10.d56a460e.png


BIN
unpackage/dist/build/h5/static/img/imgs02.b1a7446a.png


BIN
unpackage/dist/build/h5/static/img/jiuzai.44122ad3.png


BIN
unpackage/dist/build/h5/static/img/joinSuc.24514684.png


BIN
unpackage/dist/build/h5/static/img/lianxi.d07b59e1.webp


BIN
unpackage/dist/build/h5/static/img/logo.0a898609.png


BIN
unpackage/dist/build/h5/static/img/map.e306ffeb.jpg


BIN
unpackage/dist/build/h5/static/img/moreRight.acb81f7f.png


BIN
unpackage/dist/build/h5/static/img/number-2.b94dd822.png


BIN
unpackage/dist/build/h5/static/img/number-3.9a872bbb.png


BIN
unpackage/dist/build/h5/static/img/number-5.da8570e4.png


BIN
unpackage/dist/build/h5/static/img/number-6.2c61838c.png


BIN
unpackage/dist/build/h5/static/img/number-8.b75ead0e.png


BIN
unpackage/dist/build/h5/static/img/rescue.dbc43c90.png


BIN
unpackage/dist/build/h5/static/img/sctp.6b1b3e37.png


BIN
unpackage/dist/build/h5/static/img/sqyz.29ae18e8.png


BIN
unpackage/dist/build/h5/static/img/thanks.9a8e49a5.png


BIN
unpackage/dist/build/h5/static/img/timg01.f8e2dc95.jpeg


BIN
unpackage/dist/build/h5/static/img/timg09.e6d46d55.jpeg


BIN
unpackage/dist/build/h5/static/img/upload.a6458cee.png


BIN
unpackage/dist/build/h5/static/img/user1.8c236899.png


BIN
unpackage/dist/build/h5/static/img/user2.4fe8ba28.png


BIN
unpackage/dist/build/h5/static/img/user3.64a86f7c.png


BIN
unpackage/dist/build/h5/static/img/user4.bbc59a0f.png


BIN
unpackage/dist/build/h5/static/img/user5.b386722c.png


BIN
unpackage/dist/build/h5/static/img/user6.935851d2.png


BIN
unpackage/dist/build/h5/static/img/user7.ba8494fc.png


BIN
unpackage/dist/build/h5/static/img/user8.f28cae56.png


BIN
unpackage/dist/build/h5/static/img/wings-left.90def7be.png


BIN
unpackage/dist/build/h5/static/img/wings-right.2762e890.png


BIN
unpackage/dist/build/h5/static/img/zxjz1.c7c3bc05.png


BIN
unpackage/dist/build/h5/static/img/zxjz2.d9cc02bb.png


BIN
unpackage/dist/build/h5/static/img/zxjz3.bf33542d.png


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/index.63b34199.css


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/chunk-vendors.c95a6203.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/index.18009878.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-aid.482d7752.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-aid~pages-applic-contribution1~pages-applic-contribution2~pages-applic-helprecords~page~1b86c60e.e91898fa.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-aid~pages-applic-location.8b00a95e.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-appliSystem.10b99dca.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-appliSystem1.1b97f1d5.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-appliSystem2.53171193.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-appliSystem3.e471fffd.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-applic.a9887b67.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-chooseAddress.e45e4793.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-commonaddress.a4d0bc3c.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-contribution.f03e5d26.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-contribution1.71899195.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-contribution2.db26bf1c.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-donaSuccess.0d32d442.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-helprecords.8aa4f856.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-helprecords~pages-applic-rescuerecords.4ca9729d.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-helprecords~pages-applic-rescuerecords~pages-applyHelp-cation~pages-category-search~pag~c8fb0ddf.2b486d75.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-info.9d34e905.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-know.eaff7b62.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-location.e49e68d0.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-loveDonate.4b959999.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-organDonation.483e0b7c.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-perSign.d7a3bfcc.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-register.7e402b30.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-rescuerecords.e69cb817.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-science.85148407.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-applic-teamSign.72da8254.js


Някои файлове не бяха показани, защото твърде много файлове са промени