android添加银行插件
diff --git a/pages/sub_index/offlineHelp.nvue b/pages/sub_index/offlineHelp.nvue
new file mode 100644
index 0000000..315f56e
--- /dev/null
+++ b/pages/sub_index/offlineHelp.nvue
@@ -0,0 +1,428 @@
+<template>
+ <div class="offlineHelp">
+ <map id="map" class="myMap" :longitude="longitude" :latitude="latitude" :markers="markList" :circles="circles"
+ @markertap="markertap" @labeltap="labeltap" :style="{width:windowWidth +'px',height:windowHeight+'px'}"
+ @tap="clickMap"
+ v-if="showMap"></map>
+ <div :class="className" ref="stations">
+ <div class="stations-title"><text class="stations-title-text">附件网点</text></div>
+ <scroll-view scroll-y="true" class="srcollView">
+ <div class="stations-items" v-for="(v,i) in stationList" :key="i" v-if="stationList.length != 0">
+ <div class="stations-items-left">
+ <text class="stations-items-left-title">{{v.name}}</text>
+ <text class="stations-items-left-desc">距离我{{v.distance}}m</text>
+ </div>
+ <div class="stations-items-btn">
+ <text class="stations-items-btn-text" @click="toDetails(i+1)">查看详情</text>
+ </div>
+ </div>
+ <div class="stations-noitems" v-if="stationList.length == 0">
+ <text class="stations-noitems-text">附近暂无网点</text>
+ </div>
+ </scroll-view>
+ </div>
+ <div class="detail" ref="details" v-if="stationList.length != 0">
+ <div class="detail-title">
+ <text class="detail-title-text">{{stationList[id].name}}</text>
+ <uni-rate :readonly="true" :value="value" size="18" activeColor="#30A8E1" margin="5" />
+ <text class="detail-title-rate">{{value}}.0分</text>
+ </div>
+ <div class="detail-subtitle">
+ <text class="detail-subtitle-text">地址:{{stationList[id].address}}</text>
+ </div>
+ <div class="detail-list">
+ <text class="detail-list-text">营业时间:{{stationList[id].starttime|changeVal}}-{{stationList[id].endtime|changeVal}}</text>
+ <text class="detail-list-text">服务范围:{{stationList[id].businescope}}等</text>
+ <text class="detail-list-text">服务热线:{{stationList[id].tel}}</text>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+ export default {
+ data() {
+ return {
+ longitude: 121.5383637152778,
+ latitude: 31.27619086371528,
+ value: 5,
+ circles: [{
+ longitude: 0,
+ latitude: 0,
+ fillColor: '#DBF4FF99',
+ radius: 1500,
+ color: '#DBF4FF99'
+ }],
+ markList: [{
+ id: 0,
+ longitude: 0,
+ latitude: 0,
+ title: '我所在位置',
+ iconPath: './images/map/my.png',
+ width: 20,
+ height: 20,
+ index: 0
+ }],
+ windowWidth: "",
+ windowHeight: "",
+ stationList: [],
+ // polyline: [{
+ // points: [{
+ // latitude: 31.27619086371528,
+ // longitude: 121.5383637152778
+ // }],
+ // color: "#30A8E1",
+ // }],
+ className: 'stations',
+ showMap: true,
+ id: 0
+ }
+ },
+ methods: {
+ getPhoneMsg() {
+ let that = this
+ uni.getSystemInfo({
+ success: function(res) {
+ that.windowHeight = res.windowHeight
+ that.windowWidth = res.windowWidth
+ }
+ });
+ },
+ getLocation() {
+ let that = this
+ uni.getLocation({
+ type: "gcj02",
+ success(res) {
+ console.log(res)
+ that.longitude = res.longitude
+ that.latitude = res.latitude
+ that.circles[0].longitude = res.longitude
+ that.circles[0].latitude = res.latitude
+ that.markList[0].longitude = res.longitude
+ that.markList[0].latitude = res.latitude
+ that.getNearbyStations(res.longitude, res.latitude)
+ },
+ fail(res) {
+ uni.showToast({
+ icon: "none",
+ title: "获取位置信息失败",
+ duration: 1500
+ })
+ }
+ })
+ },
+ markertap(e) {
+ let that = this
+ if (e.detail.markerId != 0) {
+ that.id = e.detail.markerId - 1
+ that.nearbyAnimateOut()
+ that.detailAnimateIn()
+ } else {
+ that.nearbyAnimateIn()
+ that.detailAnimateOut()
+ }
+ },
+ toDetails(e) {
+ let that = this
+ that.id = e - 1
+ that.nearbyAnimateOut()
+ that.detailAnimateIn()
+ },
+ onregionchange(e) {
+ console.log(e)
+ },
+ getNearbyStations(longitude, latitude) {
+ let that = this
+ that.showMap = false
+ let params = {
+ location: longitude + ',' + latitude,
+ distance: 3000
+ }
+ uni.request({
+ url: "https://yy.dlsmk.cn/portal/mobileapi/i/outlets/nearby",
+ data: params,
+ method: "GET",
+ success(res) {
+ console.log(res)
+ let list = res.data.data
+ console.log(list.length)
+ if (list.length != 0) {
+ that.stationList = list
+ list.map((value, index, arr) => {
+ that.markList.push({
+ longitude: value.location.substr(0, value.location.indexOf(",")),
+ latitude: value.location.substr(value.location.indexOf(",") + 1),
+ iconPath: './images/map/mark.png',
+ width: 20,
+ height: 35,
+ title: value.name,
+ id: index + 1,
+ })
+ })
+ }
+ that.showMap = true
+ that.nearbyAnimateIn()
+ },
+ fail(rej) {
+ that.showMap = true
+ uni.showModal({
+ title: "错误",
+ content: rej.code + ":" + rej.message,
+ showCancel: false,
+ })
+ }
+ })
+ },
+ //点击地图更换位置
+ clickMap(e) {
+ let that = this
+ that.nearbyAnimateIn()
+ that.detailAnimateOut()
+ //console.log(e.detail)
+ },
+
+ //动画效果
+ nearbyAnimateIn() {
+ // #ifdef APP-NVUE
+ const animation = weex.requireModule('animation')
+ animation.transition(this.$refs['stations'], {
+ styles: {
+ transform: 'translateY(-700px)',
+ transformOrigin: 'center center',
+ opacity: 1,
+ backgroundColor: "#ffffff"
+ },
+ duration: 500, //ms
+ needLayout: true, //ms
+ timingFunction: 'linear',
+ delay: 0 //ms
+ }, () => {})
+ // #endif
+
+ // #ifdef MP-WEIXIN
+ this.$scope.animate('.stations', [{
+ translateY: '-700px',
+ opacity: 1,
+ backgroundColor: "#ffffff",
+ transformOrigin: 'center center'
+ }], 500, function() {})
+ // #endif
+ },
+ nearbyAnimateOut() {
+ // #ifdef APP-NVUE
+ const animation = weex.requireModule('animation')
+ animation.transition(this.$refs['stations'], {
+ styles: {
+ transform: 'translateY(700px)',
+ transformOrigin: 'center center',
+ opacity: 0,
+ },
+ duration: 500, //ms
+ needLayout: true, //ms
+ timingFunction: 'linear',
+ delay: 0 //ms
+ }, () => {})
+ // #endif
+
+ // #ifdef MP-WEIXIN
+ this.$scope.animate('.stations', [{
+ translateY: '700px',
+ opacity: 0,
+ transformOrigin: 'center center'
+ }], 500, function() {})
+ // #endif
+
+ },
+ detailAnimateIn() {
+ // #ifdef APP-NVUE
+ const animation = weex.requireModule('animation')
+ animation.transition(this.$refs['details'], {
+ styles: {
+ transform: 'translateY(-850px)',
+ transformOrigin: 'center center',
+ backgroundColor: "#ffffff",
+ opacity: 1
+ },
+ duration: 500, //ms
+ needLayout: true, //ms
+ timingFunction: 'linear',
+ delay: 0 //ms
+ }, () => {})
+ // #endif
+
+ // #ifdef MP-WEIXIN
+ this.$scope.animate('.detail', [{
+ translateY: '-850px',
+ opacity: 1,
+ backgroundColor: "#ffffff",
+ transformOrigin: 'center center'
+ }], 500, function() {})
+ // #endif
+
+ },
+ detailAnimateOut() {
+ // #ifdef APP-NVUE
+ const animation = weex.requireModule('animation')
+ animation.transition(this.$refs['details'], {
+ styles: {
+ transform: 'translateY(850px)',
+ transformOrigin: 'center center',
+ opacity: 0
+ },
+ duration: 500, //ms
+ needLayout: true, //ms
+ timingFunction: 'linear',
+ delay: 0 //ms
+ }, () => {})
+ // #endif
+
+ // #ifdef MP-WEIXIN
+ this.$scope.animate('.detail', [{
+ translateY: '850px',
+ opacity: 0,
+ transformOrigin: 'center center'
+ }], 500, function() {})
+ // #endif
+
+ },
+
+ },
+ created() {
+ this.getLocation()
+ this.getPhoneMsg()
+ },
+ filters: {
+ changeVal(data) {
+ data = data.substr(0, 2) + ":" + data.substr(2, 2)
+ return data
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .offlineHelp {
+ position: relative;
+ justify-content: center;
+ }
+
+ .srcollView {
+ height: 450rpx;
+ }
+
+ .detail {
+ position: absolute;
+ bottom: -800px;
+ left: 50rpx;
+ background-color: #FFFFFF;
+ width: 650rpx;
+ padding: 30rpx;
+ border-radius: 10rpx;
+ overflow: hidden;
+ font-family: "PingFang-SC-Medium";
+ opacity: 0;
+
+ &-title {
+ flex-direction: row;
+ align-items: center;
+
+ &-text {
+ color: #333333;
+ font-size: 32rpx;
+ margin-right: 10rpx;
+ }
+
+ &-rate {
+ color: #30A8E1;
+ font-size: 28rpx;
+ font-family: "PingFang-SC-Medium";
+ margin-left: 10rpx;
+ }
+ }
+
+ &-subtitle {
+ margin: 13rpx 0;
+
+ &-text {
+ color: #9A9A9A;
+ font-size: 25rpx;
+ }
+ }
+
+ &-list {
+ &-text {
+ color: #666666;
+ font-size: 28rpx;
+ line-height: 50rpx;
+ }
+ }
+ }
+
+ .stations {
+ position: absolute;
+ bottom: -700px;
+ left: 50rpx;
+ width: 650rpx;
+ padding: 30rpx;
+ border-top-left-radius: 20rpx;
+ border-top-right-radius: 20rpx;
+ overflow: hidden;
+ font-family: "PingFang-SC-Medium";
+ opacity: 0;
+
+ &-title {
+ &-text {
+ color: #333333;
+ font-size: 32rpx;
+ }
+ }
+
+ &-noitems {
+ justify-content: center;
+ align-items: center;
+ margin-top: 30rpx;
+
+ &-text {
+ color: #333333;
+ font-size: 30rpx;
+ }
+ }
+
+ &-items {
+ // display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ padding: 20rpx 0;
+ align-items: center;
+ border-bottom-color: #CCCCCC;
+ border-bottom-width: 1px;
+
+ &-left {
+ // display: flex;
+ flex-direction: column;
+
+ &-title {
+ color: #666666;
+ font-size: 28rpx;
+ }
+
+ &-desc {
+ color: #999999;
+ font-size: 25rpx;
+ margin-top: 10rpx;
+ }
+ }
+
+ &-btn {
+ padding: 15rpx 30rpx;
+ background-color: #2FA8E1;
+ border-radius: 50rpx;
+
+ &-text {
+ color: #FFFFFF;
+ font-size: 25rpx;
+ }
+ }
+ }
+ }
+</style>