<template> <view class="content bg-gray position-re"> <!-- <cu-custom class="bg-main-oil" isBack bgColor="bg-main-oil"> <block slot="content">中石化紫云路</block> <block slot="backText">返回</block> </cu-custom> --> <view class="bg-img flex align-end margin-bottom-lg " :style="'background-image: url('+imgURL+'site-bg.png '+');width: 750upx;height: 326rpx;background-size:cover'"> <image @tap="goBack" :src="imgURL+'site-back.png'" width="20upx" mode="widthFix" class="position-ab site-back"> </image> <view class="flex-sub"> <view class="cu-list menu margin padding-sm radius my-shadow bg-white yu-card-xuan"> <view class="cu-item no-border"> <view class="content"> <view class="strong padding-bottom-xs"> {{siteInfo.siteName}} </view> <view class="font-12 color-999 site-label text-cut"> {{siteInfo.address}} </view> </view> <view class="action " @tap="openMap"> <view class="oil-main-color"> <my-icon iconName="sy-der-icon.png" class="padding-right-xs text-sm"></my-icon> {{siteInfo.juli|distanceFilter}} </view> </view> </view> <view class="flex text-center padding-top-sm"> <view class="flex-sub"> <view class="" @tap="showThreeSites=true"> <view class="self-icon margin-right-xs"> <image :src="imgURL+'qr-exchange.png'" mode="widthFix"></image> </view> 变更油站 </view> </view> <view class="flex-sub"> <view class="" @tap="toSiteDetail(siteId)"> <view class="self-icon margin-right-xs"> <image :src="imgURL+'qr-xq.png'" mode="widthFix"></image> </view> 油站详情 </view> </view> </view> </view> </view> </view> <view class="placeholder margin-bottom-lg"> </view> <view class="margin margin-top-lg radius bg-white"> <view class="padding text-center"> <text class="text-black"> 请提醒加油员使用 <text class="text-red"> “ {{showtitles}} ” </text> 进行订单核销 </text> </view> <view class="qr-container margin padding-bottom-xs text-center"> <view class="qr-container text-center "> <view class="qrimg"> <view class="qrimg" @tap="newQrString"> <tki-qrcode ref="qrcode" cid="2" loadMake :val="val" :size="400" unit="upx" background="#fff" foreground="#000" pdground="#000" :icon="iconUrl" iconSize="40" onval :usingComponents="usingComponents" showLoading @result="qrR" /> </view> </view> </view> <view class="text-center padding-top text-sm margin-bottom"> 提示:该二维码每隔3分钟自动刷新一次 </view> </view> <view class="padding font-12 solid-top"> <view class="flex padding-bottom-sm padding-left padding-right"> <view class="flex-sub"> <text class="cuIcon-card text-olive font-16 padding-right-xs"> </text> <text> 油卡卡号 </text> </view> <view class="text-right flex-sub "> <picker @change="pickCard" :disabled="!isCompany" :value="activeCardIndex" mode="selector" :range="cards" range-key="companyName"> <view class="picker"> {{cards[activeCardIndex]?activeCard.accountCardCode :'选择油卡'}} </view> </picker> </view> <text class="cuIcon-right"></text> </view> <view class="flex padding-bottom-sm padding-left padding-right"> <view class="flex-sub"> <text class="cuIcon-selectionfill text-green font-16 padding-right-xs"> </text> <text> 油卡所属 </text> </view> <view class="text-right flex-sub text-green"> {{(cardList[activeCardIndex]?activeCard.companyName:'未选择油卡') |cardForamt}} </view> </view> <view class="flex padding-bottom-sm padding-left padding-right"> <view class="flex-sub"> <text class="cuIcon-moneybagfill oil-main-color font-16 padding-right-xs"> </text> <text> 油卡余额 </text> </view> <view class="text-right flex-sub oil-main-color"> <text> ¥{{(cardList[activeCardIndex]?activeCard.balance:'')|moneyFormat}} </text> </view> </view> <view class="flex padding-left padding-right"> <view class="flex-sub"> <text class="cuIcon-infofill color-wjy font-16 padding-right-xs"> </text> <text> 支持油站 </text> </view> <text class="text-right flex-sub"> 星油/老吕油站 </text> </view> </view> </view> <!-- <view class="bg-gray padding-top-sm "> <view class="btn"> <view class="flex padding flex-direction"> <button class="cu-btn block bg-main-oil lg"> <image class="site-icon margin-right-sm" :src="imgURL+'site-yz.png'" mode="widthFix"></image> 一键支付 </button> </view> </view> </view> --> <!-- showThreeSites --> <three-sites @hideOneModal="showThreeSites=false" :showThreeSites="showThreeSites"></three-sites> </view> </template> <script> import oilSiteApi from '@/api/oil-site.js' import qrApi from '@/api/qr.js' import accountApi from '@/api/account.js' import priceTab from '../components/price-tab.vue' import threeSites from '@/components/three-sites.vue' import tkiQrcode from "../components/tki-qrcode/tki-qrcode.vue" //二维码生成器 export default { components: { priceTab, threeSites, tkiQrcode }, data() { return { showtitles:"", isCompany: uni.getStorageSync('accountStatus'), activeCardIndex: 0, showThreeSites: false, radio: 'B', qrImg: "https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1102530589,2787379918&fm=11&gp=0.jpg", val: '', // iconUrl: '../../../static/img/qr-icon.png', mainURL: this.global.mainURL, imgURL: this.global.imgURL, active: 0, ColorList: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], siteId: '', activeChannelCode: '', siteInfo: {}, cardList: [], posName: '', secondChannelCode: '', timeinterval: '', customerId: uni.getStorageSync('user').userCode } }, computed: { iconUrl() { if (this.activeChannelCode) { if (this.secondChannelCode) { this.posName = '壳牌' return `../../../static/img/YDJY.png` } else { this.posName = '星油云站' return `../../../static/img/${this.activeChannelCode}.png` } } }, accountCardCode() { if (this.activeCard) { this.getQrString(this.activeCard) return this.activeCard.accountCardCode } }, activeCard() { if (this.cardList.length) { return this.cardList[this.activeCardIndex] } }, cards() { if (this.cardList.length) { let cards = [] console.log(this.cardList) // this.cardList.forEach((e) => { // cards.push(e.accountCardCode) // }) return this.cardList } }, }, onUnload() { this.timeinterval = '' }, onLoad(option) { let oilItem = uni.getStorageSync('oilItem') this.showtitles = oilItem.listTag this.siteId = option.siteId this.activeChannelCode = option.activeChannelCode this.secondChannelCode = option.secondChannelCode this.timeinterval = setInterval(() => { this.newQrString() }, 1000 * 60 * 3); this.getUserCard() this.getSiteInfo(option.siteId) }, methods: { qrR() { }, newQrString() { this.getQrString(this.activeCard) }, getQrString(activeCard) { let data2 = { companyId: this.activeCard.companyId, secondChannelCode: this.secondChannelCode, customerId: this.customerId, orderSource: "WECHAT_MINIAPPS", //类型:String 必有字段 备注:订单来源(WECHAT_MINIAPPS) oilsStationId: this.siteId, //类型:String 必有字段 备注:油站ID channelCode: this.activeChannelCode, //类型:String 必有字段 备注:渠道编码 oilCardNature: activeCard.oilCardType, //类型:String 必有字段 备注:油卡性质 accountCardCode: activeCard.accountCardCode //类型:String 必有字段 备注:油卡卡号 } qrApi.getOilQrCode(data2).then(res => { if (res.code === 20000) { this.val = res.data.codeStr } }) }, pickCard(e) { this.activeCardIndex = e.detail.value }, getSiteInfo() { let data2 = { ...uni.getStorageSync('location'), siteId: this.siteId } oilSiteApi.getSiteDetails(data2).then(res => { if (res.code == 20000) { this.siteInfo = res.data } }) }, getUserCard() { accountApi.getUserAccount().then(res => { if (res.code == 20000) { this.cardList = res.data if (this.cardList.length > 0) { // this.getMoneyDetail(this.cardList[0]) } } }) }, toSiteDetail(id) { uni.redirectTo({ url: `/BagStation/pages/stationDetail/stationDetail?siteId=${id}`, fail: (err) => { // console.log(err) }, success: () => { // console.log('err') } }) }, openPlugin() { const key = this.qqKey; //使用在腾讯位置服务申请的key const referer = '星油云'; //调用插件的app的名称 const endPoint = JSON.stringify({ name: '油站', latitude: 39.89631551, longitude: 116.323459711 }); wx.navigateTo({ url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint }) }, goBack() { uni.navigateBack({ }) }, selectRadio() { this.radio === 'A' ? this.radio = '' : this.radio = 'A' }, openMap() { let that = this uni.openLocation({ latitude: 117, longitude: 21, name: '江西景德镇', address: '九龙路1188号', scale: 12, success: function() { // console.log('success') }, fail: (error) => { // console.log('error') // console.log(error) }, complete: () => { // console.log('made') }, }) var map = uni.createMapContext('map') map.moveToLocation() } }, filters: { distanceFilter(value) { if (value) { return value > 1000 ? ((value / 1000).toFixed(2) + 'km') : (value + 'm') } }, moneyFormat(value) { if (value) { return (parseInt(value * 100) / 100).toFixed(2) } else { return '0.00' } }, cardForamt(val) { if (uni.getStorageSync('accountStatus') == true) { // 企业卡 return val == null ? '未选择油卡' : val } else { // 个人卡 return val == null ? '星油豆' : '星油豆' } } } } </script> <style scoped> .content { min-height: 100%; position: relative; } .navigation { position: absolute; right: 16px; top: 10px; } .icon-self { width: 1rem; height: 1rem; } .oil-price { position: relative; } .oil-price radio { position: absolute; left: 0rem; top: 10px; } .qr-icon { font-size: 2rem; } .pay-desc { line-height: 2rem; } .bottom-pay { min-height: 100rpx; width: 750upx; } .pay-bar { width: 750upx; position: absolute; bottom: 0; } .my-cell {} .placeholder { min-height: 20upx; } .yu-card-xuan { position: relative; top: 110rpx } .site-label { max-width: 500upx; } .cu-btn.sm { width: 80%; } .site-back { width: 2rem; top: 2.8rem; left: 1rem; } .site-icon { width: 1.5rem; vertical-align: middle; } .my-tag { padding: 0 12rpx; } .self-icon { width: 1rem; display: inline-block; vertical-align: middle; } </style>