星油积分商城
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

140 lines
3.1 KiB

<template>
<view :style="{paddingTop:`${setingMenuData.top}px`}" class="page_body">
<view class="page_container">
<home ref="home" v-show="tabBarIndex==0"></home>
<charging-station ref='ChargingStation' v-show="tabBarIndex==1"></charging-station>
<order ref="order" v-if="tabBarIndex==3"></order>
<personal @switchTabBar='switchTabBar' v-if="tabBarIndex==4"></personal>
</view>
<tab-bar v-model="tabBarIndex"></tab-bar>
</view>
</template>
<script>
import tool from '../../utils/tool.js'
import tabBar from "@/components/tabBar/tabBar.vue"
import home from "../home/index.vue"
import ChargingStation from "../ChargingStation/index.vue"
import order from "../order/index.vue"
import personal from "../personal/index.vue"
import x from "./index.js"
export default {
components: {
tabBar,
home,
ChargingStation,
order,
personal
},
data() {
return {
user: uni.getStorageSync('user'),
location: null,
setingMenuData: null,
tabBarIndex: 0,
Anticorrosive: null
}
},
watch: {
tabBarIndex(n,o) {
let that = this
if(n==1){
this.$refs.ChargingStation.onshow()
}else if(n==2){
this.readyScanCode({
success(){
that.scanCode();
},
fail(){
if(n!==o) that.tabBarIndex = o;
if(n==o) that.tabBarIndex=0;
}
})
}
}
},
created() {
this.init()
},
onLoad() {
this.onOrderUpdate();
},
onShow() {
this.showInit()
},
methods: {
readyScanCode({success,fail}){
if(!this.user){
uni.showModal({
title: '提示',
content: '登录后才可扫码下单哦',
confirmText:'去登陆',
success: function (res) {
if (res.confirm) {
uni.reLaunch({
url: '/pages/login/index'
})
} else if (res.cancel) {
fail()
}
}
});
return
}
try{
success()
}catch(e){
fail()
}
},
async scanCode() {
let res = await this.tool.scanCode().catch(err=>{
console.log('取消');
this.tabBarIndex = 0
});
if (res?.result) {
let routingParameter = this.tool.routingParameterGeneration({
type:'qrCode',
qrCode:encodeURIComponent(res.result),
pointTo:'activeScanCode'
})
uni.navigateTo({
url: `/ChargingStation/pages/placeOrder/index${routingParameter}`
})
}
},
switchTabBar(e) {
this.tabBarIndex = e
},
onOrderUpdate() {
uni.$on('orderUpdate', () => {
this.$refs.order.seach()
})
},
showInit() {
this.tool.getCards();
if(this.tabBarIndex==2){
this.tabBarIndex = 0
}
},
async getPosition(callback) {
await this.tool.getLocation().then(res => {
this.location = uni.getStorageSync('location')
}).catch(err => {});
},
async init() {
this.Anticorrosive = this.tool.Anticorrosive;
this.getSetingMenu(); //获取胶囊数据
},
getSetingMenu() {
this.setingMenuData = wx.getMenuButtonBoundingClientRect();
}
}
}
</script>
<style lang="scss" scoped>
@import 'index.scss';
</style>