提交修改

This commit is contained in:
cjb 2025-03-29 17:22:49 +08:00
parent c40033ed5c
commit 4e5031eb9d
18 changed files with 453 additions and 68 deletions

View File

@ -50,16 +50,30 @@
</view> </view>
<view v-else-if="nuindex == 2" style="display: flex;justify-content: space-between;align-items: center;padding-top: 12rpx;"> <view v-else-if="nuindex == 2" style="display: flex;justify-content: space-between;align-items: center;padding-top: 12rpx;">
<up-input type="number" maxlength="11" v-model="formdata.phone" border="none" placeholder="请输入手机号" clearable /> <up-input type="number" maxlength="11" v-model="formdata.phone" border="none" placeholder="请输入手机号" clearable />
<view>获取验证码</view> <!-- <view>获取验证码</view> -->
</view> </view>
</up-form-item> </up-form-item>
<up-form-item <template v-if="cpcolumns.length > 0">
label="车牌号" <up-form-item
prop="plateNum" label="车牌号"
borderBottom prop="plateNum"
> borderBottom
<up-input v-model="formdata.plateNum" border="none" readonly placeholder="请选择车牌号" suffixIcon="arrow-down" suffixIconStyle="color: #bababa" @tap="cphand" /> >
</up-form-item> <up-input v-model="formdata.plateNum" border="none" readonly placeholder="请选择车牌号" suffixIcon="arrow-down" suffixIconStyle="color: #bababa" @tap="cphand" />
</up-form-item>
</template>
<template v-else>
<up-form-item
label="车牌号"
borderBottom
>
<view style="display: flex;align-items: center;">
<view>暂未绑定车辆</view>
<view style="padding-left:40rpx;color: #8bc34a;">去绑定</view>
</view>
</up-form-item>
</template>
<up-form-item <up-form-item
label="换电站" label="换电站"
prop="stationName" prop="stationName"
@ -179,10 +193,11 @@
uni.setStorageSync('PhoneNumber', rps.data) uni.setStorageSync('PhoneNumber', rps.data)
}) })
} }
let userInfor = uni.getStorageSync('userInfor')
let formdata = reactive({ let formdata = reactive({
source:'1', //1-2-3- source:'1', //1-2-3-
ucode:uni.getStorageSync('wxuid'), // ucode:uni.getStorageSync('wxuid'), //
uname:'', // uname:userInfor.name?userInfor.name:'', //
phone:'', // phone:'', //
plateNum:'', // plateNum:'', //
stationCode:'', // stationCode:'', //
@ -194,7 +209,7 @@
let hdzcode = ref('') let hdzcode = ref('')
onLoad((opt:any) => { onLoad((opt:any) => {
hdzcode.value = opt.hdzcode hdzcode.value = opt.hdzcode?opt.hdzcode:''
if(opt.phoneNumber){ if(opt.phoneNumber){
formdata.phone = opt.phoneNumber formdata.phone = opt.phoneNumber
nuindex.value = 1 nuindex.value = 1
@ -332,7 +347,10 @@
'11:00 - 12:00', '11:00 - 12:00',
'12:00 - 13:00', '12:00 - 13:00',
'13:00 - 14:00', '13:00 - 14:00',
'14:00 - 15:00' '14:00 - 15:00',
'15:00 - 16:00',
'16:00 - 17:00',
'17:00 - 18:00'
] ]
]) ])
function timeconfirm(v:any) { function timeconfirm(v:any) {

View File

@ -30,10 +30,11 @@
<view v-if="n.tradeType == 1" style="padding-bottom: 8rpx;font-size: 40rpx;color: #00aa00;">+<text>{{n.tradeTotalAmount/100}}</text></view> <view v-if="n.tradeType == 1" style="padding-bottom: 8rpx;font-size: 40rpx;color: #00aa00;">+<text>{{n.tradeTotalAmount/100}}</text></view>
<view v-else-if="n.tradeType == 2" style="padding-bottom: 8rpx;font-size: 40rpx;color: #191919;"><text>{{n.tradeTotalAmount/100}}</text></view> <view v-else-if="n.tradeType == 2" style="padding-bottom: 8rpx;font-size: 40rpx;color: #191919;"><text>{{n.tradeTotalAmount/100}}</text></view>
<view v-else-if="n.tradeType == 9" style="padding-bottom: 8rpx;font-size: 40rpx;color: #c79a11;">-<text>{{n.tradeTotalAmount/100}}</text></view> <view v-else-if="n.tradeType == 9" style="padding-bottom: 8rpx;font-size: 40rpx;color: #c79a11;">-<text>{{n.tradeTotalAmount/100}}</text></view>
<!-- <view style="font-size: 30rpx;color: #ccc;">实际到账金额100</view> -->
</view> </view>
</view> </view>
<up-empty v-if="list.length == 0" mode="list" text="暂无记录" /> <!-- <view style="font-size: 30rpx;color: #ccc;">实际到账金额100</view> -->
<up-empty v-if="isempty" mode="list" text="暂无记录" />
<up-loadmore v-else :status="status" color="#c0c4cc" lineColor="#c0c4cc" /> <up-loadmore v-else :status="status" color="#c0c4cc" lineColor="#c0c4cc" />
<!-- <view class="mxitem"> <!-- <view class="mxitem">
<view> <view>
@ -67,17 +68,20 @@
pageSize:30, pageSize:30,
pageNo:1 pageNo:1
}) })
let isempty = ref(false)
let list = ref<any[]>([]) let list = ref<any[]>([])
function getylist() { function getylist() {
balancedetails(qsobj).then((rps:any) => { balancedetails(qsobj).then((rps:any) => {
if(rps.data.total > 0){ if(rps.data.total > 0){
list.value = [...list.value,...rps.data.records] list.value = [...list.value,...rps.data.records]
if(list.value.length == rps.data.total){ if(list.value.length == rps.data.total){
status.value = 'nomore' status.value = 'nomore'
}else{ }else{
status.value = 'loadmore' status.value = 'loadmore'
qsobj.pageNo++ qsobj.pageNo++
} }
}else{
isempty.value = true
} }
}) })
} }

View File

@ -16,7 +16,7 @@
lineColor="#00aa00" lineColor="#00aa00"
/> />
</view> </view>
<view class="lisct"> <!-- <view class="lisct">
<view v-for="n in list" :key="n.orderNo" class="list"> <view v-for="n in list" :key="n.orderNo" class="list">
<view class="zoddu"> <view class="zoddu">
<view> <view>
@ -37,17 +37,27 @@
</view> </view>
<view> <view>
<view>订单状态</view> <view>订单状态</view>
<view>{{dsta(n.status)}}</view> <view>{{statev[n.status]}}</view>
</view> </view>
<view> <view>
<view style="color: #5f5f5f;">{{n.orderTime}}</view> <view style="color: #5f5f5f;">{{n.orderTime}}</view>
<view style="color: #009688;" @tap="getbz(n.orderNo)">查看换电详情</view> <view style="color: #009688;" @tap="getbz(n.orderNo)">查看换电详情</view>
</view> </view>
<view class="hdbzcont">
<up-steps v-if="show && bzlist.length > 0" :current="bzlist.length" direction="column">
<up-steps-item v-for="n in bzlist" :title="hdbzname(n.step)" :desc="n.stepTime" />
</up-steps>
<up-empty v-else mode="list" text="暂无记录" />
</view>
</view> </view>
<view v-if="n.status == 6" class="qxyy" @tap="topay(`/minePages/payment/index?orderNo=${n.orderNo}&amount=${n.amount}&plateNum=${n.plateNum}&stationName=${n.stationName}`)">去支付</view> <view v-if="n.status == 6" class="qxyy" @tap="topay(`/minePages/payment/index?orderNo=${n.orderNo}&amount=${n.amount}&plateNum=${n.plateNum}&stationName=${n.stationName}`)">去支付</view>
</view> </view>
</view> </view> -->
<up-empty v-if="list.length == 0" mode="list" text="暂无订单" /> <parent :actv="0">
<item v-for="(n,index) in list" :key="n.orderNo" :n="n" :index="index" />
</parent>
<up-empty v-if="isempty" mode="list" text="暂无订单" />
<up-loadmore v-else :status="status" color="#c0c4cc" lineColor="#c0c4cc" /> <up-loadmore v-else :status="status" color="#c0c4cc" lineColor="#c0c4cc" />
</view> </view>
<up-popup <up-popup
@ -57,9 +67,10 @@
@close="bzclose" @close="bzclose"
> >
<view class="hdbzcont"> <view class="hdbzcont">
<up-steps v-if="show" :current="bzlist.length" direction="column"> <up-steps v-if="show && bzlist.length > 0" :current="bzlist.length" direction="column">
<up-steps-item v-for="n in bzlist" :title="hdbzname(n.step)" :desc="n.stepTime" /> <up-steps-item v-for="n in bzlist" :title="hdbzname(n.step)" :desc="n.stepTime" />
</up-steps> </up-steps>
<up-empty v-else mode="list" text="暂无记录" />
</view> </view>
</up-popup> </up-popup>
</template> </template>
@ -69,6 +80,9 @@
import { orderlist,dzbzxq } from '@/utils/service' import { orderlist,dzbzxq } from '@/utils/service'
import { onShow,onReachBottom } from '@dcloudio/uni-app' import { onShow,onReachBottom } from '@dcloudio/uni-app'
import Parent from './parcont.vue'
import Item from './item.vue'
onShow(() => { onShow(() => {
pageNo.value = 1 pageNo.value = 1
list.value.splice(0) list.value.splice(0)
@ -93,10 +107,11 @@
}else if(n == 8){ }else if(n == 8){
return '换电完成' return '换电完成'
} }
return ''
} }
// 1-2-3-4-5-6-7-9- // 1-2-3-4-5-6-7-9-
const statelist = reactive([ const statelist = reactive([
{ name: '全部'}, { name: '全部'},
{ name: '进行中', status:'1,2,3,4,5' }, { name: '进行中', status:'1,2,3,4,5' },
@ -106,14 +121,25 @@
let status = ref('nomore') //loadmore loading let status = ref('nomore') //loadmore loading
// {
// orderNo:'123456789DV2',
// plateNum:'A12345D',
// stationName:'1',
// amount:'2000',
// status:'2'
// }
let list = ref<any[]>([]) let list = ref<any[]>([])
let pageNo = ref(1) let pageNo = ref(1)
let stanum = ref('') let stanum = ref('')
let isempty = ref(false)
//tabs //tabs
function tabshand(n:any){ function tabshand(n:any){
pageNo.value = 1 pageNo.value = 1
list.value.splice(0) list.value.splice(0)
stanum.value = n.status stanum.value = n.status
isempty.value = false
getlist() getlist()
} }
function getlist() { function getlist() {
@ -135,6 +161,8 @@
status.value = 'loadmore' status.value = 'loadmore'
pageNo.value++ pageNo.value++
} }
}else{
isempty.value = true
} }
}) })
} }
@ -143,8 +171,9 @@
let bzlist = ref<any[]>([]) let bzlist = ref<any[]>([])
function getbz(orderNo:any) { function getbz(orderNo:any) {
bzlist.value.splice(0) bzlist.value.splice(0)
show.value = true
dzbzxq(orderNo).then((rps:any) => { dzbzxq(orderNo).then((rps:any) => {
show.value = true
bzlist.value = rps.data bzlist.value = rps.data
}) })
} }
@ -153,18 +182,29 @@
show.value = false show.value = false
} }
function dsta(n:any) { const statev =ref({
if(n == 6){ 1:'已创建',
return '待支付' 2:'换电中',
} 3:'换电完成',
if(n == 7){ 4:'充电中',
return '已完成' 5:'充电完成',
} 6:'待支付',
if(n == 9){ 7:'已完成',
return '已取消' 9:'已取消'
} })
return '进行中'
} // function dsta(n:any) {
// if(n == 6){
// return ''
// }
// if(n == 7){
// return ''
// }
// if(n == 9){
// return ''
// }
// return ''
// }
function topay(url:string) { function topay(url:string) {
uni.navigateTo({ uni.navigateTo({
@ -187,13 +227,14 @@
background: #f4f4f4; background: #f4f4f4;
} }
.content{ .content{
padding-bottom: 30rpx; padding-bottom: 20rpx;
.tabct{ .tabct{
position: fixed; position: fixed;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
padding-bottom: 10rpx; padding-bottom: 10rpx;
background: #fff; background: #fff;
z-index: 99;
} }
.lisct{ .lisct{
padding-top: 130rpx; padding-top: 130rpx;

View File

@ -0,0 +1,224 @@
<template>
<view :key="n.orderNo" class="list">
<view class="zoddu">
<view>
<view>订单号</view>
<view style="font-size: 28rpx;">{{n.orderNo}}</view>
</view>
<view>
<view>车牌号</view>
<view>{{n.plateNum}}</view>
</view>
<view>
<view>换电站</view>
<view>{{n.stationName}}</view>
</view>
<view v-if="n.status == 6 || n.status == 7">
<view>订单金额</view>
<view>{{n.amount/100}}</view>
</view>
<view>
<view>订单状态</view>
<view>{{statev[n.status]}}</view>
</view>
<view>
<view style="color: #5f5f5f;">{{n.orderTime}}</view>
<!-- <view style="color: #009688;" @tap="getbz(n.orderNo)">查看换电详情</view> -->
<view style="display: flex;align-items:center;color: #009688;" @tap="toghand">
<view style="padding-right: 10rpx;">查看换电步骤</view>
<up-icon v-if="isactv" name="arrow-up" color="#009688" size="16" />
<up-icon v-else name="arrow-down" color="#009688" size="16" />
</view>
</view>
<view v-if="isactv" style="display: block;margin-top: 15rpx;padding-top: 30rpx;border-top: 1px dashed #009688;">
<!--v-if="bzlist.length == 2"-->
<!--border: 1px solid #009688;border-radius: 10rpx;-->
<view style="display:flex;margin-bottom:20px;align-items: center;justify-content: space-between;">
<view style="display:flex;align-items: center;color:#009688;">
<view style="padding-right: 5rpx;">车辆已到达指定位置</view>
<up-icon name="checkmark" color="#009688" size="20" />
</view>
<view style="width: 160rpx;height: 70rpx;line-height: 70rpx;border:1px solid #009688;border-radius:10rpx;text-align: center;color:#009688;" @tap="showPop = true">确认换电</view>
</view>
<view>
<up-steps v-if="bzlist.length > 0" :current="bzlist.length" direction="column" activeColor="#009688">
<up-steps-item v-for="n in bzlist" :title="hdbzname(n.step)" :desc="n.stepTime" :key="n.step" />
</up-steps>
</view>
<up-empty v-if="isempty" mode="list" text="暂无换电记录" />
<up-loading-icon v-if="loading" />
</view>
</view>
<view v-if="n.status == 6" class="qxyy" @tap="topay(`/minePages/payment/index?orderNo=${n.orderNo}&amount=${n.amount}&plateNum=${n.plateNum}&stationName=${n.stationName}`)">去支付</view>
<up-popup
:show="showPop"
mode="center"
round="10"
:closeOnClickOverlay="true"
>
<view style="box-sizing: border-box;position: relative;;width: 640rpx;">
<view style="padding: 50rpx 20rpx 150rpx;text-align: center;">
<view style="font-size:38rpx;">确认方向盘是否回正</view>
<view style="padding-top: 10rpx;color: #f00;">方向盘未回正可能会对车辆造成损伤!</view>
</view>
<view style="width: 50%;margin: 0 auto;text-align: center;height: 80rpx;line-height: 80rpx;background: #009688;border-radius:20rpx;color: #fff;" @tap="showsxhand">确认方向盘已回正</view>
</view>
</up-popup>
<up-popup
:show="showsxpop"
mode="center"
round="10"
:closeOnClickOverlay="true"
>
<view style="box-sizing: border-box;position: relative;;width: 640rpx;">
<view style="padding: 50rpx 20rpx 150rpx;text-align: center;">
<view style="font-size:38rpx;">确认手刹是否放开</view>
<view style="padding-top: 10rpx;color: #f00;">手刹未放开可能会对车辆造成损伤!</view>
</view>
<view style="width: 50%;margin: 0 auto;text-align: center;height: 80rpx;line-height: 80rpx;background: #009688;border-radius:20rpx;color: #fff;" @tap="huandhand">确认手刹已放开</view>
</view>
</up-popup>
</view>
</template>
<script lang="ts" setup>
import { ref,inject,computed } from 'vue'
import { dzbzxq } from '@/utils/service'
const props = withDefaults(defineProps<{
n:any
index:string|number
}>(), {
n:{},
index:0
})
const { actv, setActv } = inject<any>('parc')
const isactv = computed(() => actv.value === props.index)
function toghand() {
if(!isactv.value){
getbz(props.n.orderNo)
}
setActv(props.index)
}
//
let bzlist = ref<any[]>([])
let isempty = ref(false)
let loading = ref(true)
function getbz(orderNo:any) {
bzlist.value.splice(0)
isempty.value = false
dzbzxq(orderNo).then((rps:any) => {
loading.value = false
if(rps.data && rps.data.length > 0){
bzlist.value = rps.data
}else{
isempty.value = true
}
}).catch(() => {
loading.value = false
})
}
if(isactv.value){
getbz(props.n.orderNo)
}
function hdbzname(n:string|number) {
if(n == 1){
return '车辆进站'
}else if(n == 2){
return '车辆到达指定位置'
}else if(n == 3){
return '启动对中机构'
}else if(n == 4){
return '取新电池'
}else if(n == 5){
return '拆旧电池'
}else if(n == 6){
return '装新电池'
}else if(n == 7){
return '放旧电池'
}else if(n == 8){
return '换电完成'
}
return ''
}
const statev =ref({
1:'已创建',
2:'换电中',
3:'换电完成',
4:'充电中',
5:'充电完成',
6:'待支付',
7:'已完成',
9:'已取消'
})
function topay(url:string) {
uni.navigateTo({
url
})
}
//
let showPop = ref(false) //
let showsxpop = ref(false) //
function showsxhand(){
showPop.value = false
showsxpop.value = true
}
//
function huandhand() {
showsxpop.value = false
uni.showToast({
title: '操作成功',
duration: 2000
})
}
</script>
<style lang="scss" scoped>
.list{
margin:0 25rpx 40rpx;
//padding: 25rpx;
border-radius: 20rpx;
box-shadow: 0 0 10px 2px rgba(190, 190, 190, 0.5);
background: #fff;
.zoddu{
padding: 25rpx;
//margin-bottom: 30rpx;
//padding-top: 20rpx;
//border-top: 1px dashed #ccc;
>view{
display: flex;
padding-bottom: 20rpx;
justify-content: space-between;
>view:last-child{
color: #7a7a7a;
}
}
>view:last-child{
padding-bottom: 0;
}
}
.qxyy{
height: 80rpx;
line-height: 80rpx;
border-radius: 0 0 20rpx 20rpx;
color: #fff;
text-align: center;
background: #00aa00;
}
}
</style>

View File

@ -0,0 +1,32 @@
<template>
<view class="lisct">
<slot />
</view>
</template>
<script lang="ts" setup>
import { ref, provide } from 'vue'
const props = withDefaults(defineProps<{
actv:any
}>(), {
actv:null
})
let actv = ref(props.actv)
function setActv(id:string|number) {
actv.value = id
}
provide('parc',{
actv,
setActv
})
</script>
<style lang="scss" scoped>
.lisct{
padding-top: 130rpx;
}
</style>

View File

@ -24,8 +24,8 @@
<image src="/src/static/img/yuer.png" style="width: 60rpx;height: 60rpx;" /> <image src="/src/static/img/yuer.png" style="width: 60rpx;height: 60rpx;" />
<view style="padding-left: 10rpx;">余额</view> <view style="padding-left: 10rpx;">余额</view>
<view v-if="iskt" style="flex:1;font-size: 30rpx;;text-align:right;color: #949494;"> <view v-if="iskt" style="flex:1;font-size: 30rpx;;text-align:right;color: #949494;">
<template v-if="iskzf">可用{{totalAmount}}</template> <template v-if="iskzf">可用{{totalAmount/100}}</template>
<template v-else>余额不足剩余{{totalAmount}}</template> <template v-else>余额不足剩余{{totalAmount/100}}</template>
</view> </view>
<view v-else style="flex:1;text-align:right;color: #949494;">暂未开通</view> <view v-else style="flex:1;text-align:right;color: #949494;">暂未开通</view>
</view> </view>

View File

@ -51,14 +51,14 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref,reactive } from 'vue' import { ref,reactive } from 'vue'
import { payment,getip,getInfo,getaccou,openaccou } from '@/utils/service' import { payment,getip,getInfo,getaccou,openaccou,isktbal } from '@/utils/service'
import { onLoad } from '@dcloudio/uni-app' import { onLoad } from '@dcloudio/uni-app'
// onLoad((opt:any) => { // onLoad((opt:any) => {
// payqs.attach.walletCode = opt.walletCode // payqs.attach.walletCode = opt.walletCode
// }) // })
getaccou(uni.getStorageSync('wxuid')).then((rps:any) => { isktbal(uni.getStorageSync('wxuid')).then((rps:any) => {
if(!rps.data.records){ if(!rps.data.records){
// //
openaccou(uni.getStorageSync('wxuid')) openaccou(uni.getStorageSync('wxuid'))

View File

@ -42,9 +42,10 @@
<view v-else class="qxyy">已过期</view> <view v-else class="qxyy">已过期</view>
</view> </view>
</view> </view>
<up-empty v-if="isempty" mode="list" text="暂无预约记录" />
<up-loadmore v-else :status="status" color="#c0c4cc" lineColor="#c0c4cc" />
</view> </view>
<up-empty v-if="list.length == 0" mode="list" text="暂无预约记录" />
<up-loadmore v-else :status="status" color="#c0c4cc" lineColor="#c0c4cc" />
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -72,11 +73,13 @@
let list = ref<any[]>([]) let list = ref<any[]>([])
let pageNo = ref(1) let pageNo = ref(1)
let stanum = ref('') let stanum = ref('')
let isempty = ref(false)
//tabs //tabs
function tabshand(n:any){ function tabshand(n:any){
pageNo.value = 1 pageNo.value = 1
list.value.splice(0) list.value.splice(0)
stanum.value = n.status stanum.value = n.status
isempty.value = false
getlist() getlist()
} }
function getlist() { function getlist() {
@ -98,6 +101,8 @@
status.value = 'loadmore' status.value = 'loadmore'
pageNo.value++ pageNo.value++
} }
}else{
isempty.value = true
} }
}) })
} }

View File

@ -106,6 +106,12 @@
formdata.avatarUrl = rps.data.avatarUrl?rps.data.avatarUrl:'' formdata.avatarUrl = rps.data.avatarUrl?rps.data.avatarUrl:''
formdata.name = rps.data.name?rps.data.name:'' formdata.name = rps.data.name?rps.data.name:''
formdata.gender = rps.data.gender?rps.data.gender:'' formdata.gender = rps.data.gender?rps.data.gender:''
if(rps.data.gender == 1){
genderName.value = '男'
}else if(rps.data.gender == 2){
genderName.value = '女'
}
}) })
const rules = { const rules = {

4
src/mixin.d.ts vendored Normal file
View File

@ -0,0 +1,4 @@
// declare module '/mixin' {
// const mixin: any;
// export default mixin;
// }

17
src/mixin.ts Normal file
View File

@ -0,0 +1,17 @@
// import {onShareAppMessage,onShareTimeline} from "@dcloudio/uni-app"
export default {
onShareAppMessage() {
return {
title: 'EVO换电',
path: '/pages/home/index',
imageUrl: '/static/img/share.png'
}
},
onShareTimeline() {
return {
title: 'EVO换电',
query: 'from=share',
imageUrl: '/static/img/share.png'
}
}
}

View File

@ -61,7 +61,7 @@
<image src="../../static/img/chongz.png" /> <image src="../../static/img/chongz.png" />
<view>充值中心</view> <view>充值中心</view>
</view> </view>
<view @tap="topage('/minePages/reserlist/index')"> <view @tap="wdltip()">
<image src="../../static/img/shiyxy.png" /> <image src="../../static/img/shiyxy.png" />
<view>预约记录</view> <view>预约记录</view>
</view> </view>
@ -120,10 +120,13 @@
> >
<view style="box-sizing: border-box;padding: 20rpx;background: #fff;"> <view style="box-sizing: border-box;padding: 20rpx;background: #fff;">
<view style="margin-bottom: 20rpx;padding-bottom:20rpx;font-size: 40rpx;text-align: center;color: #00aa7f;border-bottom: 1px #00aa7f dashed;">伊特换电使用协议</view> <view style="margin-bottom: 20rpx;padding-bottom:20rpx;font-size: 40rpx;text-align: center;color: #00aa7f;border-bottom: 1px #00aa7f dashed;">伊特换电使用协议</view>
<view style="height: 30vh;overflow-y: scroll;"> <view style="height: 600rpx;overflow-y: auto;">
<view style="padding: 25rpx 25rpx 50rpx;font-size: 26rpx;"> <view style="padding: 25rpx 25rpx 50rpx;font-size: 26rpx;">
<view style="padding-bottom: 30rpx;font-weight: bold;text-align: center;">{{xyobj.title}}</view> <view style="padding-bottom: 30rpx;font-weight: bold;text-align: center;">{{xyobj.title}}</view>
<up-parse :content="decodeURIComponent(xyobj.content)"></up-parse>
<scroll-view scroll-y="true" style="height: 600rpx;">
<up-parse :content="decodeURIComponent(xyobj.content)"></up-parse>
</scroll-view>
</view> </view>
</view> </view>
<!-- <view style="display: flex;align-items: center;;padding-top: 10rpx;"> <!-- <view style="display: flex;align-items: center;;padding-top: 10rpx;">
@ -141,7 +144,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref,reactive,watch,getCurrentInstance } from 'vue' import { ref,reactive,watch,getCurrentInstance } from 'vue'
import { onLoad,onShow } from '@dcloudio/uni-app' import { onLoad,onShow,onTabItemTap } from '@dcloudio/uni-app'
import { import {
login, login,
getUser, getUser,
@ -160,10 +163,10 @@ let covers =ref<any[]>([])
let hdzcode = ref('') let hdzcode = ref('')
let imglist = ref<any[]>([]) let imglist = ref<any[]>([])
// uni.removeStorageSync('wxuid') uni.removeStorageSync('wxuid')
// uni.removeStorageSync('wxToken') uni.removeStorageSync('wxToken')
// uni.removeStorageSync('PhoneNumber') uni.removeStorageSync('PhoneNumber')
uni.removeStorageSync('Init')
let xyobj = ref<any>({}) let xyobj = ref<any>({})
let account = ref<any>({}) let account = ref<any>({})
@ -190,18 +193,21 @@ onShow(() => {
// //
if(uni.getStorageSync('wxuid')){ if(uni.getStorageSync('wxuid')){
islogin.value = true islogin.value = true
if(!isinit){ getinfo() //??
getinfo() // if(!isinit){
}else{ // getinfo()
isinit = false // }else{
} // isinit = false
// }
}else{ }else{
islogin.value = false islogin.value = false
PhoneNumber.value = '' PhoneNumber.value = ''
covers.value = [] covers.value = []
//hdzcode.value = '' //hdzcode.value = ''
imglist.value = [] imglist.value = []
showxy() if(!uni.getStorageSync('Init')){
showxy()
}
} }
const instance = getCurrentInstance() const instance = getCurrentInstance()
const query = uni.createSelectorQuery().in((instance as any).proxy) const query = uni.createSelectorQuery().in((instance as any).proxy)
@ -379,6 +385,10 @@ function btnshan(type:number = 1) {
xyshow.value = false xyshow.value = false
uni.showTabBar() uni.showTabBar()
islogin.value = true islogin.value = true
//使
uni.setStorageSync('Init',true)
getinfo() getinfo()
setTimeout(()=> { setTimeout(()=> {
uni.getLocation({ uni.getLocation({
@ -461,11 +471,13 @@ page{
justify-content: space-between; justify-content: space-between;
padding:20rpx 0 100rpx 0; padding:20rpx 0 100rpx 0;
>view{ >view{
display: flex;
box-sizing: border-box;
width: 300rpx; width: 300rpx;
height: 80rpx; height: 80rpx;
line-height: 80rpx; align-items: center;
justify-content: center;
border-radius: 50rpx; border-radius: 50rpx;
text-align: center;
color: #fff; color: #fff;
background: #00aa00; background: #00aa00;
} }

View File

@ -1,16 +1,19 @@
<template> <template>
<view class="content"> <view class="content">
<image style="width: 200rpx;height: 90rpx;" src="/static/logo.png" /> <image style="width: 200rpx;height: 90rpx;" src="/static/logo.png" />
<view style="padding: 50rpx 50rpx 80rpx;font-size: 50rpx;color: #4CAF50;">伊特换电</view> <view style="padding: 50rpx 50rpx 160rpx;font-size: 50rpx;color: #4CAF50;">伊特换电</view>
<!-- <view @tap="getUser()" style="width: 80%;height: 80rpx;margin-bottom:30rpx;line-height: 80rpx;border-radius:10rpx;color:#fff;text-align:center;background: #4CAF50;">微信授权登录</view> --> <!-- <view @tap="getUser()" style="width: 80%;height: 80rpx;margin-bottom:30rpx;line-height: 80rpx;border-radius:10rpx;color:#fff;text-align:center;background: #4CAF50;">微信授权登录</view> -->
<!-- <button <!-- <button
style="width: 80%;height: 80rpx;line-height: 80rpx;border-radius:10rpx;color:#fff;text-align:center;background: #4CAF50;" style="width: 80%;height: 80rpx;line-height: 80rpx;border-radius:10rpx;color:#fff;text-align:center;background: #4CAF50;"
open-type="getPhoneNumber" open-type="getPhoneNumber"
@getphonenumber="onGetPhoneNumber" @getphonenumber="onGetPhoneNumber"
>手机号快捷登录</button> --> >手机号快捷登录</button> -->
<button style="width: 85%;height: 80rpx;line-height: 80rpx;border-radius:10rpx;color:#fff;text-align:center;background: #4CAF50;" @tap="login"> </button> <button style="width: 90%;height: 80rpx;line-height: 80rpx;border-radius:10rpx;color:#fff;text-align:center;background: #4CAF50;" @tap="login"> </button>
<view style="display: flex;align-items: center;;padding-top: 20rpx;"> <view style="display: flex;align-items: center;;padding-top: 20rpx;">
<label class="radio"><radio value="r1" :checked="checked" @tap="checked = !checked" style="transform:scale(80%);" />已阅读并同意</label> <view class="radio" @tap="checked = !checked">
<radio value="r1" :checked="checked" style="transform:scale(80%);" />
已阅读并同意
</view>
<view @tap="topage('/minePages/agreement/index?type=1')" style="padding: 0 10rpx;color: #ffaa00;">服务条款</view> <view @tap="topage('/minePages/agreement/index?type=1')" style="padding: 0 10rpx;color: #ffaa00;">服务条款</view>
<view @tap="topage('/minePages/agreement/index?type=2')" style="color: #ffaa00;">隐私协议</view> <view @tap="topage('/minePages/agreement/index?type=2')" style="color: #ffaa00;">隐私协议</view>
</view> </view>
@ -34,7 +37,13 @@ import { getphone,getUser } from '@/utils/service'
function login() { function login() {
if(checked.value){ if(checked.value){
getUser().then(() => { getUser().then(() => {
uni.navigateBack() uni.showToast({
title: '登录成功',
duration: 2000
})
setTimeout(() => {
uni.navigateBack()
},2300)
}) })
}else{ }else{
uni.showToast({ uni.showToast({

View File

@ -176,7 +176,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref,reactive } from 'vue' import { ref,reactive } from 'vue'
import { onShow } from '@dcloudio/uni-app' import { onShow } from '@dcloudio/uni-app'
import { getInfo } from '@/utils/service' import { getInfo,getaccou } from '@/utils/service'
let islogin = ref(false) let islogin = ref(false)
let PhoneNumber = ref('') let PhoneNumber = ref('')
@ -205,7 +205,15 @@
userInfo.name = rps.data.name?rps.data.name:'' userInfo.name = rps.data.name?rps.data.name:''
}) })
totalAmount.value = uni.getStorageSync('totalAmount') //
getaccou(uni.getStorageSync('wxuid')).then((rps:any) => {
if(rps.data.records){
totalAmount.value = rps.data.records[0].totalAmount
uni.setStorageSync('totalAmount', rps.data.records[0].totalAmount)
uni.setStorageSync('walletCode', rps.data.records[0].code)
}
})
islogin.value = true islogin.value = true
// let pnum = uni.getStorageSync('PhoneNumber') // let pnum = uni.getStorageSync('PhoneNumber')

View File

@ -25,7 +25,7 @@
code.value = res code.value = res
console.log('条码类型:' + res.scanType); console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result); console.log('条码内容:' + res.result);
uni.navigateTo({ uni.redirectTo({
url:`/homePages/reservation/index?hdzcode=${hdzcode}&phoneNumber=${uni.getStorageSync('userInfor').phoneNumber?uni.getStorageSync('userInfor').phoneNumber:''}` url:`/homePages/reservation/index?hdzcode=${hdzcode}&phoneNumber=${uni.getStorageSync('userInfor').phoneNumber?uni.getStorageSync('userInfor').phoneNumber:''}`
}) })
}, },

BIN
src/static/img/share.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -29,7 +29,7 @@ export function request(method:any,url:string,data?:any,isLoading?:any){
uni.request({ uni.request({
header:headers, header:headers,
//url:'http://192.168.5.200:9100/gateway'+ url,//`${conf.apiBaseUrl}${url}`, //url:'http://192.168.5.200:9100/gateway'+ url,//`${conf.apiBaseUrl}${url}`,
//url:'http://192.168.5.213:9100/gateway'+ url, //url:'http://192.168.5.14:9104'+ url,
url:'https://api.evo-techina.com'+url, url:'https://api.evo-techina.com'+url,
method, method,
data:data, data:data,

View File

@ -60,7 +60,7 @@ export function addrese(parameter:Ydata){
//预约记录 //预约记录
export function getyylist(parameter:any){ export function getyylist(parameter:any){
return request('GET','/wechat/order/swap/pre/list',parameter) return request('GET','/wechat/order/swap/pre/list',parameter,false)
} }
//取消预约 //取消预约
@ -143,12 +143,12 @@ export function getUser() {
} }
export function orderlist(parameter:Oderqs){ export function orderlist(parameter:Oderqs){
return request('GET','/wechat/order/swap/list',parameter) return request('GET','/wechat/order/swap/list',parameter,false)
} }
//查询换电步骤 //查询换电步骤
export function dzbzxq(orderNo:string){ export function dzbzxq(orderNo:string){
return request('GET','/wechat/order/swap/step/list',{orderNo}) return request('GET','/wechat/order/swap/step/list',{orderNo},false)
} }
//协议 //协议
@ -218,7 +218,7 @@ interface Balande{
pageNo:String|Number //页数,示例值(1) pageNo:String|Number //页数,示例值(1)
} }
export function balancedetails(parameter:Balande){ export function balancedetails(parameter:Balande){
return request('post_form','/wechat/wechat/user/wallet/detail/list',parameter) return request('post_form','/wechat/wechat/user/wallet/detail/list',parameter,false)
} }
@ -232,3 +232,8 @@ interface Bapay{
export function balancpay(parameter:Bapay){ export function balancpay(parameter:Bapay){
return request('post_form','/wechat/order/swap/wallet/pay',parameter) return request('post_form','/wechat/order/swap/wallet/pay',parameter)
} }
//查询用户是否开通余额
export function isktbal(wuid:string){
return request('post_form','/wechat/wechat/user/wallet/isOpenAccount',{wuid})
}