@@ -89,7 +89,7 @@ | |||
}, { | |||
"path": "pages/nfc/nfc", | |||
"style": { | |||
"navigationBarTitleText": "NFC链接", | |||
"navigationBarTitleText": "NFC连接", | |||
"enablePullDownRefresh": false | |||
} | |||
}, { | |||
@@ -283,6 +283,13 @@ | |||
"enablePullDownRefresh": false | |||
} | |||
}, | |||
{ | |||
"path": "account-recharge/result", | |||
"style": { | |||
"navigationBarTitleText": "结果", | |||
"enablePullDownRefresh": false | |||
} | |||
}, | |||
{ | |||
"path": "account-recharge/recharge-record", | |||
"style": { | |||
@@ -1472,6 +1479,27 @@ | |||
{ | |||
"root": "subpackage/personal-center", //个人中心 | |||
"pages": [{ | |||
"path": "trapping-and-repairing-account/result", | |||
"style": { | |||
"navigationBarTitleText": "修复成功", | |||
"enablePullDownRefresh": false | |||
} | |||
}, | |||
{ | |||
"path": "trapping-and-repairing-account/recharge-two", | |||
"style": { | |||
"navigationBarTitleText": "圈存", | |||
"enablePullDownRefresh": false | |||
} | |||
}, | |||
{ | |||
"path": "trapping-and-repairing-account/recharge-pay", | |||
"style": { | |||
"navigationBarTitleText": "去修复", | |||
"enablePullDownRefresh": false | |||
} | |||
}, | |||
{ | |||
"path": "trapping-and-repairing/result", | |||
"style": { | |||
"navigationBarTitleText": "修复成功", |
@@ -545,7 +545,7 @@ | |||
}; | |||
function oks() { | |||
//routeType 1.激活(订单来) 2.圈存 (/pages/recharge/recharge来)3.ping码解锁 4.信息读取 5从哪里来回哪里去监听bluetoothLink 7消费明细去圈存 8单位账户圈存 | |||
//routeType 1.激活(订单来) 2.圈存 (/pages/recharge/recharge来)3.ping码解锁 4.信息读取 5从哪里来回哪里去监听bluetoothLink 7消费明细去圈存 8单位账户圈存 9对公账户修复 | |||
if (routeType.value == "1") { | |||
uni.navigateTo({ | |||
url: `/subpackage/after-sale/activation/activate?transfer=${state.transfer}`, | |||
@@ -592,6 +592,10 @@ | |||
uni.navigateTo({ | |||
url: `/subpackage/after-sale/account-recharge/recharge-weixin?accountId=${state.accountId}`, | |||
}); | |||
} else if (routeType.value == "9") { | |||
uni.navigateTo({ | |||
url: `/subpackage/personal-center/trapping-and-repairing-account/recharge-two?rechargeMoney=${state.rechargeMoney}&&orderNum=${state.orderNum}&&payMoney=${state.payMoney}`, | |||
}); | |||
} else { | |||
return; | |||
} |
@@ -63,6 +63,7 @@ | |||
NFCAPI.startScanDevice((res) => { | |||
tools.hideLoadingAlert(); | |||
if (res.code != 0) { | |||
console.log("1111111") | |||
if (res.code == 1203) { | |||
tools.showModalAlert("扫描超时请重新扫描NFC标签", function(res) { | |||
if (res.confirm) { | |||
@@ -74,6 +75,7 @@ | |||
} | |||
return; | |||
} else { | |||
console.log("2222") | |||
NFCAPI.connectDevice(function() { | |||
if (res.code != 0) { | |||
tools.showToastAlert(res.msg); | |||
@@ -84,7 +86,7 @@ | |||
getCardId(items, function() { | |||
if (routeType.value == "2") { | |||
tools.toUrl( | |||
`/pages/recharge/recharge?connectSuccess=1&&cardId=${state.cardId}&&fee=${state.fee}&&transWay=nfc` | |||
`/pages/recharge/recharge-weixin?connectSuccess=1&&cardId=${state.cardId}&&fee=${state.fee}&&transWay=nfc` | |||
); //跳转到圈存界面 | |||
} | |||
}) |
@@ -235,7 +235,7 @@ export function removeObj() { | |||
function initNfcAdapter(callBack) { | |||
// #ifdef MP-ALIPAY | |||
nfcAdapter = my.getNFCAdapter() //获取NFC适配器实例 | |||
// nfcAdapter = my.getNFCAdapter() //获取NFC适配器实例 | |||
// #endif | |||
// #ifdef MP-WEIXIN | |||
nfcAdapter = wx.getNFCAdapter() //获取NFC适配器实例 |
@@ -5,8 +5,12 @@ | |||
@click='search()'>搜索</button> | |||
</view> | |||
<view class='item' v-for="(item,index) in state.newList"> | |||
<view class='time'><text>时间:{{item.tradeConfirmTime}}</text><text>¥{{item.fee/100}}</text></view> | |||
<view>银行卡号:{{item.bankCardId}}</view> | |||
<view class='time'><text>时间:{{item.tradeTime}}</text><text>¥{{item.fee/100}}</text></view> | |||
<view>对公账户:{{item.corporateAccountId}}</view> | |||
<!-- item.status 1 圈存成功 0 半条 --> | |||
<!-- <view class="but-wrap" v-if="item.status ==0"> | |||
<text @click="toTrap(item.fee)">修复</text> | |||
</view> --> | |||
</view> | |||
</view> | |||
</template> | |||
@@ -17,6 +21,7 @@ | |||
import { transactionRecord } from "@/utils/network/api.js"; | |||
import { stringToJson } from "@/utils/network/encryption.js"; | |||
import { onLoad } from "@dcloudio/uni-app"; | |||
import { getCodeName } from "@/datas/queryKey.js"; | |||
const state = reactive({ | |||
list: '', //所有数据 | |||
newList: '', //最终展示的 | |||
@@ -32,7 +37,8 @@ | |||
const options = { | |||
type: 2, | |||
data: { | |||
'accountId': state.name | |||
'accountId': state.name, | |||
'accountTransactionType': 1 | |||
}, | |||
method: "POST", | |||
showLoading: true, | |||
@@ -40,9 +46,6 @@ | |||
request(transactionRecord, options).then((res) => { | |||
const data = stringToJson(res.bizContent); | |||
state.list = data.qtkCorporateAccountDetails; | |||
for (var i = 0; i < state.list.length; i++) { | |||
state.list[i].tradeConfirmTime = state.list[i].tradeConfirmTime.split('T').join(' '); | |||
} | |||
state.newList = state.list; | |||
console.log("交易记录", data) | |||
}) | |||
@@ -58,6 +61,11 @@ | |||
const doSearch = () => { | |||
search(); | |||
} | |||
const toTrap = (rechargeMoney) => { | |||
uni.navigateTo({ | |||
url: `/subpackage/personal-center/trapping-and-repairing-account/recharge-pay?rechargeMoney=${rechargeMoney}&&payMoney=0` | |||
}) | |||
} | |||
</script> | |||
<style scoped> | |||
@@ -98,4 +106,22 @@ | |||
margin-bottom: 16rpx; | |||
justify-content: space-between; | |||
} | |||
.but-wrap { | |||
display: flex; | |||
justify-content: flex-end; | |||
margin-top: 10rpx; | |||
} | |||
.but-wrap>text { | |||
border: 1px solid white; | |||
color: white; | |||
height: 50rpx; | |||
line-height: 50rpx; | |||
border-radius: 30rpx; | |||
padding: 0 24rpx; | |||
font-size: 28rpx; | |||
box-sizing: border-box; | |||
margin-left: 12rpx; | |||
} | |||
</style> |
@@ -2,11 +2,11 @@ | |||
<view class="content"> | |||
<view class="item"> | |||
<text>对公用户:</text> | |||
<input class="uni-input" focus placeholder="请输入用户名" v-model='state.name' /> | |||
<input class="uni-input" placeholder="请输入用户名" v-model='state.name' /> | |||
</view> | |||
<view class="item"> | |||
<text>对公用户密码:</text> | |||
<input style='width:412rpx;' class="uni-input" focus placeholder="请输入对公用户密码" v-model='state.password' | |||
<input style='width:412rpx;' class="uni-input" placeholder="请输入对公用户密码" v-model='state.password' | |||
type='password' /> | |||
</view> | |||
<button @click='login()'>登录</button> |
@@ -32,7 +32,8 @@ | |||
const options = { | |||
type: 2, | |||
data: { | |||
'accountId': state.name | |||
'accountId': state.name, | |||
'accountTransactionType': 0 | |||
}, | |||
method: "POST", | |||
showLoading: true, | |||
@@ -41,7 +42,7 @@ | |||
const data = stringToJson(res.bizContent); | |||
state.list = data.qtkCorporateAccountDetails; | |||
for (var i = 0; i < state.list.length; i++) { | |||
state.list[i].tradeConfirmTime = state.list[i].tradeConfirmTime.split('T').join(' '); | |||
// state.list[i].tradeConfirmTime = state.list[i].tradeConfirmTime.split('T').join(' '); | |||
} | |||
state.newList = state.list; | |||
console.log("交易记录", data) |
@@ -93,35 +93,20 @@ | |||
}], | |||
tableIndex: 0, | |||
openid: "", | |||
connectSuccess: undefined, | |||
fee: 5000, | |||
money: 50, | |||
orderNum: "", | |||
transWayName: "蓝牙", | |||
transWay: "blu", //“blu”为蓝牙充值方式、“nfc”为NFC充值方式 | |||
cardId: "", //卡号 需要传参 | |||
mockpreBalance: 2000, //fix:模拟余额 目前没有检测状态接口,第一次会模拟圈存检测来检测状态 | |||
show: false, | |||
items: [{ | |||
value: '0', | |||
name: '微信', | |||
checked: 'true' | |||
}, | |||
{ | |||
value: '1', | |||
name: '对公账户' | |||
} | |||
], | |||
current: 0, | |||
tradeType: 14, | |||
accountId: "",//对公账户id | |||
accountMoney: 0 //对公账户余额 | |||
accountMoney: 0, //对公账户余额 | |||
consumeId: "",//消费订单编号 | |||
}); | |||
const selectConfirm = (item : any) => { | |||
state.transWayName = item[0].label | |||
state.transWay = item[0].value | |||
}; | |||
//读卡信息 | |||
const card : any = reactive({ | |||
cardId: "", | |||
@@ -233,6 +218,7 @@ | |||
quanApplyAction(dic).then((value : any) => { | |||
console.log("圈存申请完后的结果"); | |||
console.log(value.commandType, value); | |||
state.consumeId = value.consumeId | |||
//圈存初始化验证通过 , 进行圈存 | |||
if (value.commandType === 2) { | |||
uanConfirmAction(value); | |||
@@ -250,6 +236,7 @@ | |||
}; | |||
uni.hideLoading(); | |||
quanApplyAction(dic).then((values) => { | |||
state.consumeId = values.consumeId | |||
console.log("圈存申请完后的结果"); | |||
uanConfirmAction(values); | |||
}); | |||
@@ -302,6 +289,7 @@ | |||
}; | |||
console.log("消费成功"); | |||
quanApplyAction(applyDic).then((applyValue) => { | |||
state.consumeId = applyValue.consumeId | |||
uanConfirmAction(applyValue); | |||
}); | |||
} | |||
@@ -309,10 +297,9 @@ | |||
} else if (fixStatus === 2) { | |||
uanConfirmSucessAction(value).then((confirmResult) => { | |||
console.log("充值成功") | |||
getCardId(1) | |||
setTimeout(() => { | |||
msg("充值成功"); | |||
navTo(`./result?cardId=${card.cardId}`) | |||
navTo(`/subpackage/after-sale/account-recharge/result?cardId=${card.cardId}`) | |||
}, 2000) | |||
}); | |||
} else if (fixStatus === 1) { | |||
@@ -419,12 +406,13 @@ | |||
cardId: card.cardId, | |||
fee: state.fee, | |||
preBalance: card.money, | |||
tradeType: state.tradeType, | |||
tradeType: 12, | |||
command: data.command, | |||
cosResponse: data.cosResponse, | |||
orderId: state.orderNum, | |||
rechargeId: data.rechargeId, | |||
openId: getItem(StorageKeys.OpenId) | |||
openId: getItem(StorageKeys.OpenId), | |||
accountId: state.accountId | |||
}; | |||
const options = { | |||
type: 2, | |||
@@ -462,6 +450,7 @@ | |||
rechargeId: data.rechargeId, | |||
paidAmount: state.fee, | |||
giftAmount: 0, | |||
consumeId: state.consumeId | |||
}; | |||
const options = { | |||
type: 2, | |||
@@ -473,10 +462,10 @@ | |||
const res = await request(quanConfirm, options); | |||
const data = stringToJson(res.bizContent); | |||
console.log("data充值成功", data); | |||
getCardId(1) | |||
// getCardId() | |||
setTimeout(() => { | |||
msg("充值成功"); | |||
navTo(`./result?cardId=${card.cardId}`) | |||
navTo(`/subpackage/after-sale/account-recharge/result?cardId=${card.cardId}`) | |||
}, 2000) | |||
}).catch((error) => { | |||
console.log('输出内容', error) |
@@ -21,7 +21,7 @@ | |||
</view> | |||
<view class="hint"> | |||
<image :src="`${$imgUrl}common/icon-hint.png`" class="icon"></image> | |||
<view>激活时,需要录入您的车牌号和手机号,并确保OBU蓝牙和手机蓝牙处于打开状态。</view> | |||
<view>激活时,确保OBU蓝牙和手机蓝牙处于打开状态。</view> | |||
</view> | |||
<view class="btn"> | |||
<submit-button @submit="gotoNextStep" title="已知悉,下一步"></submit-button> |
@@ -62,7 +62,7 @@ | |||
<view class="info-card"> | |||
<view class="title">OBU信息</view> | |||
<view class="cell"> | |||
<view class="cell-left">序列号</view> | |||
<view class="cell-left">obu号</view> | |||
<view class="cell-right">{{ obu.num }}</view> | |||
</view> | |||
<view class="cell"> |
@@ -5,8 +5,8 @@ | |||
<u-input placeholder="名字" :customStyle="btnGetCode" v-model="state.formData.consignee" /> | |||
</u-form-item> | |||
<u-form-item label="手机号"> | |||
<u-input placeholder="手机号" :customStyle="btnGetCode" type="number" | |||
v-model="state.formData.consigneeTel" /> | |||
<u-input placeholder="手机号" :customStyle="btnGetCode" type="number" v-model="state.formData.consigneeTel" | |||
maxlength="11" /> | |||
</u-form-item> | |||
<u-form-item label="所在地区"> | |||
<u-input :customStyle="btnGetCode" type="select" :select-open="state.show" | |||
@@ -14,7 +14,8 @@ | |||
</u-form-item> | |||
<u-form-item label="详细地址"> | |||
<u-input placeholder="小区楼栋/乡村名称" :customStyle="textareaStyle" v-model="state.formData.address" /> | |||
<u-input placeholder="小区楼栋/乡村名称" :customStyle="textareaStyle" v-model="state.formData.address" | |||
maxlength="100" /> | |||
</u-form-item> | |||
<u-form-item label="邮政编码"> | |||
<u-input placeholder="邮政编码" :customStyle="btnGetCode" v-model="state.formData.postalCode" /> |
@@ -51,11 +51,6 @@ | |||
<u-input v-model="state.form.userName" placeholder='请输入姓名' :disabled="state.isEnableOCRData" | |||
maxlength="20" @input="replaceInput" /> | |||
</u-form-item> | |||
<!-- <u-form-item label="性别"> | |||
<u-input placeholder='请选择性别' v-model="state.form.gender" @click="userGenderAction()" | |||
type="select" /> | |||
</u-form-item> --> | |||
<u-form-item label="身份证号"> | |||
<u-input placeholder='请输入身份证' type="idcard" v-model="state.form.userIdNum" | |||
:disabled="state.isEnableOCRData" maxlength="18" /> | |||
@@ -64,9 +59,6 @@ | |||
<u-input placeholder='请输入地址' :autoHeight='true' v-model="state.form.address" | |||
:disabled="state.isEnableOCRData" maxlength="100" /> | |||
</u-form-item> | |||
<!-- <u-form-item label="证件有效期"> | |||
<u-input v-model="state.form.begindate" type="select" /> | |||
</u-form-item> --> | |||
<u-form-item label="联系方式"> | |||
<u-input placeholder='请输入联系方式' type="number" v-model="state.form.tel" maxlength="11" /> | |||
</u-form-item> | |||
@@ -126,19 +118,10 @@ | |||
<u-input inputAlign="right" placeholder='请输入姓名' v-model="state.form.userName" | |||
:disabled="state.isEnableOCRData" maxlength="20" /> | |||
</u-form-item> | |||
<!-- <u-form-item label="性别"> | |||
<u-input inputAlign="right" placeholder='请选择性别' v-model="state.form.gender" type="select" /> | |||
</u-form-item> --> | |||
<u-form-item label="身份证号"> | |||
<u-input inputAlign="right" placeholder='请输入身份证号' v-model="state.form.userIdNum" | |||
:disabled="state.isEnableOCRData" type="idcard" /> | |||
</u-form-item> | |||
<!-- <u-form-item label=""> | |||
<u-input v-model="state.form.userIdNum" /> | |||
</u-form-item> --> | |||
<!-- <u-form-item label="证件有效期"> | |||
<u-input v-model="state.form.begindate" type="select" /> | |||
</u-form-item> --> | |||
<u-form-item label="联系方式"> | |||
<u-input inputAlign="right" placeholder='请输入联系方式' v-model="state.form.tel" maxlength="11" /> | |||
</u-form-item> | |||
@@ -198,16 +181,10 @@ | |||
<u-input inputAlign="right" placeholder='请输入经办人姓名' v-model="state.form.agentName" | |||
:disabled="state.isEnableOCRData" maxlength="20" /> | |||
</u-form-item> | |||
<!-- <u-form-item label="性别"> | |||
<u-input v-model="state.form.agentGender" type="select" /> | |||
</u-form-item> --> | |||
<u-form-item label="身份证号"> | |||
<u-input inputAlign="right" placeholder='请输入身份证号' v-model="state.form.agentIdNum" | |||
:disabled="state.isEnableOCRData" maxlength="18" type="idcard" /> | |||
</u-form-item> | |||
<!-- <u-form-item label="证件有效期"> | |||
<u-input v-model="state.form.begindate" type="select" /> | |||
</u-form-item> --> | |||
<u-form-item label="联系方式"> | |||
<u-input inputAlign="right" placeholder='请输入联系方式' v-model="state.form.agentTel" type="number" | |||
maxlength="11" /> | |||
@@ -433,7 +410,6 @@ | |||
showLoading: true, | |||
}; | |||
request(etcUserCardInfoSubmit, options).then((res) => { | |||
// let result = stringToJson(res.bizContent); | |||
console.log(res); | |||
uni.redirectTo({ | |||
url: `/subpackage/orders/car-release?orderId=${state.orderId}&vehiclePlateColor=${state.vehiclePlateColor}&type=${state.type}&isSign=${state.isSign}`, |
@@ -227,6 +227,14 @@ | |||
state.dataArray[i].payName = '预存金' | |||
} else if (state.dataArray[i].payType === 'EQUITY') { | |||
state.dataArray[i].payName = '权益费' | |||
} else if (state.dataArray[i].payType === 'REPAIROBU') { | |||
state.dataArray[i].payName = '增补obu' | |||
} else if (state.dataArray[i].payType === 'CHANGECARD') { | |||
state.dataArray[i].payName = '更换卡' | |||
} else if (state.dataArray[i].payType === 'CHANGEOBU') { | |||
state.dataArray[i].payName = '更换签' | |||
} else if (state.dataArray[i].payType === 'CHANGEALL') { | |||
state.dataArray[i].payName = '更换卡签' | |||
} else { | |||
state.dataArray[i].payName = '未知费' | |||
} |
@@ -24,7 +24,7 @@ | |||
<view>ETC卡号:{{item.cardId}}<text class="payStatus">{{item.payStatusC}}</text></view> | |||
<view>充值金额:¥{{item.rechargeMoney/100}}</view> | |||
<view>车牌号:{{item.vehiclePlate}}</view> | |||
<view>申请时间:{{item.insertTime}}</view> | |||
<view>创建时间:{{item.insertTime}}</view> | |||
<view>圈存状态:{{item.statusC}}</view> | |||
<!-- 支付成功和未圈存 --> | |||
<view class="but-wrap" v-if="item.statusC =='待支付'"> |
@@ -18,7 +18,7 @@ | |||
<u-icon name="calendar" :custom-style="{color:'#999999', size: '28rpx'}"></u-icon> | |||
</view> | |||
</view> | |||
<view class="time-btn" @click="search">查询</view> | |||
<view class="time-btn" @click="search(1)">查询</view> | |||
</view> | |||
<view class="total-num" v-if="state.list.length > 0"> | |||
<text>金额合计:{{state.aggregateAmount/100}}</text> | |||
@@ -78,7 +78,7 @@ | |||
<view class="btn-1 btn" v-if="item.status === 3" @click="toEvaluate(item)">去评价</view> | |||
</view> | |||
</view> | |||
<view class="bottom-line" v-if="state.flags">我是有底线的~~~</view> | |||
</view> | |||
<view class="blank" v-else> | |||
<view class="text-center">暂无数据</view> | |||
@@ -105,9 +105,12 @@ | |||
downloadBills, | |||
} from "@/utils/network/api.js"; | |||
import { | |||
onLoad | |||
onLoad, | |||
onReachBottom | |||
} from '@dcloudio/uni-app' | |||
import {downloadFileURL} from '@/datas/fileURL.js' | |||
import { | |||
downloadFileURL | |||
} from '@/datas/fileURL.js' | |||
const dataTime = reactive({ | |||
startDate: "开始时间", | |||
endDate: "结束时间" | |||
@@ -119,21 +122,36 @@ | |||
passTotal: 0, | |||
parkTotal: 0, | |||
aggregateAmount: 0, | |||
pageSize: 10, //每页数据量 | |||
pageNo: 1, // 当前页 | |||
flags: false, | |||
}) | |||
onLoad((option) => { | |||
state.cardId = option.cardId; | |||
}) | |||
const search = () => { | |||
// 触底加载 | |||
onReachBottom(() => { | |||
if (state.list.length < state.pageNo * 10) return state.flags = true | |||
console.log("触底了") | |||
state.pageNo++ | |||
search(2) | |||
}) | |||
const search = (val) => { | |||
getPpassBillCount() | |||
if (val == 1) { | |||
state.pageNo = 1 | |||
} | |||
if (state.pageNo == 1 && state.list.length > 0) { | |||
state.list = [] | |||
} | |||
const options = { | |||
type: 2, | |||
data: { | |||
cardId: state.cardId, | |||
beforeDate: dataTime.startDate, | |||
afterDate: dataTime.endDate, | |||
pageNo: state.pageNo, | |||
pageSize: state.pageSize, | |||
}, | |||
method: "POST", | |||
showLoading: true, | |||
@@ -142,10 +160,9 @@ | |||
console.log(res); | |||
let result = stringToJson(res.bizContent) | |||
console.log(result); | |||
state.list = result.data ?result.data: [] | |||
state.list = [...state.list, ...stringToJson(res.bizContent).data] | |||
console.log(result.data); | |||
// let orderInfo = JSON.parse(res.bizContent); | |||
}) | |||
} | |||
@@ -162,9 +179,9 @@ | |||
}; | |||
request(passBillCount, options).then((res) => { | |||
let result = stringToJson(res.bizContent) | |||
state.aggregateAmount = result.aggregateAmount ?result.aggregateAmount: 0 | |||
state.passTotal = result.passTotal ? result.passTotal: 0 | |||
state.parkTotal = result.parkTotal ?result.parkTotal: 0 | |||
state.aggregateAmount = result.aggregateAmount ? result.aggregateAmount : 0 | |||
state.passTotal = result.passTotal ? result.passTotal : 0 | |||
state.parkTotal = result.parkTotal ? result.parkTotal : 0 | |||
console.log(result); | |||
}) | |||
} | |||
@@ -209,7 +226,7 @@ | |||
const options = { | |||
type: 2, | |||
data: { | |||
cardId: state.cardId, | |||
cardId: state.cardId, | |||
starDate: dataTime.startDate, | |||
endDate: dataTime.endDate, | |||
}, | |||
@@ -218,8 +235,8 @@ | |||
}; | |||
request(downloadBills, options).then((res) => { | |||
let result = stringToJson(res.bizContent) | |||
console.log("downloadFileURL",downloadFileURL+result.ossFilePath); | |||
download(downloadFileURL+result.ossFilePath) | |||
console.log("downloadFileURL", downloadFileURL + result.ossFilePath); | |||
download(downloadFileURL + result.ossFilePath) | |||
}) | |||
} | |||
@@ -299,9 +316,11 @@ | |||
align-items: center; | |||
box-sizing: border-box; | |||
} | |||
.picker{ | |||
.picker { | |||
flex: 1; | |||
} | |||
.search-time-box { | |||
flex: 1; | |||
} | |||
@@ -392,14 +411,15 @@ | |||
// margin-left: 41rpx; | |||
// } | |||
} | |||
.btn-download{ | |||
padding: 0 20rpx; | |||
border: 1px solid #00B38B; | |||
height: 60rpx; | |||
line-height: 60rpx; | |||
border-radius: 30rpx; | |||
font-size: 28rpx; | |||
color: #00B38B; | |||
.btn-download { | |||
padding: 0 20rpx; | |||
border: 1px solid #00B38B; | |||
height: 60rpx; | |||
line-height: 60rpx; | |||
border-radius: 30rpx; | |||
font-size: 28rpx; | |||
color: #00B38B; | |||
} | |||
.list-wrap { | |||
@@ -563,4 +583,9 @@ | |||
color: #999999; | |||
} | |||
} | |||
.bottom-line { | |||
text-align: center; | |||
margin: 30rpx 0; | |||
} | |||
</style> |
@@ -0,0 +1,239 @@ | |||
<template> | |||
<view class="content"> | |||
<view @click="rechargeAction"> | |||
<view style="display: flex;align-items: center;"> | |||
<image class="photo" :src="fileURL + 'image/index/goRecharge.png'"></image>去修复 | |||
</view> | |||
<image class="photo1" src="../../static/image/icon-back.png" mode="widthFix"></image> | |||
</view> | |||
<view> | |||
<view>选择充值方式:</view> | |||
<view style="width: 67%;display: flex;align-items: center;"> | |||
<radio-group @change="radioChange" style="display: flex;align-items: center;"> | |||
<label style="align-items: center;margin-right: 40rpx;margin-top: 0;" | |||
class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in state.transWayTypeList" | |||
:key="item.value"> | |||
<view> | |||
<radio :value="item.value" :checked="index === state.current" /> | |||
</view> | |||
<view>{{item.name}}</view> | |||
</label> | |||
</radio-group> | |||
</view> | |||
</view> | |||
</view> | |||
<view class="tips" v-if="source=='WECHAT'">温馨提示: <text class="red">NFC修复</text>仅支持在<text | |||
class="red">安卓手机</text>进行ETC储值卡充值!</view> | |||
</template> | |||
<script setup lang="ts"> | |||
import { | |||
stringToJson | |||
} from "@/utils/network/encryption"; | |||
import { | |||
onLoad, | |||
onShow | |||
} from "@dcloudio/uni-app"; | |||
import { | |||
request | |||
} from "@/utils/network/request.js"; | |||
import { | |||
reactive | |||
} from "vue"; | |||
import { | |||
navTo, msg | |||
} from "@/utils/utils"; | |||
import { | |||
fileURL | |||
} from "@/datas/fileURL.js"; | |||
import { source } from "@/utils/network/difference"; | |||
const datas = require("../../../static/etcUtil/datas.js"); | |||
const bluetoothUtil = require("../../../static/etcUtil/index.js"); | |||
const cmd = require("../../../static/etcUtil/cmdConfig.js"); | |||
const tools = require("../../../static/etcUtil/tools.js"); | |||
const NFCAPI = require('../../../static/nfc/NFCAPI.js'); | |||
const state = reactive({ | |||
transWayTypeShow: false, | |||
// #ifdef MP-ALIPAY | |||
transWayTypeList: [{ | |||
name: "蓝牙", | |||
value: "blu", | |||
}], | |||
// #endif | |||
// #ifdef MP-WEIXIN | |||
transWayTypeList: [], | |||
// #endif | |||
tableIndex: 0, | |||
transWayName: "蓝牙", | |||
transWay: "blu", //“blu”为蓝牙充值方式、“nfc”为NFC充值方式 | |||
cardId: "", //卡号 需要传参 | |||
current: 0, | |||
rechargeMoney: "", //圈存金额 | |||
orderNum: "",//消费明细 传orderNum说明去支付 | |||
payMoney: 0, //0 修复 1支付 | |||
}); | |||
const selectConfirm = (item : any) => { | |||
state.transWayName = item[0].label | |||
state.transWay = item[0].value | |||
}; | |||
onLoad((option) => { | |||
// #ifdef MP-WEIXIN | |||
state.rechargeMoney = option.rechargeMoney | |||
state.orderNum = option.orderNum | |||
state.payMoney = option.payMoney | |||
console.log("参数", option) | |||
uni.getSystemInfo({ | |||
success: (res) => { | |||
console.log("res", res['osName']) | |||
// ios | |||
if (res['osName'] == 'ios') { | |||
state.transWayTypeList = [{ | |||
name: "蓝牙", | |||
value: "blu", | |||
}] | |||
} else { | |||
// 安卓 | |||
state.transWayTypeList = [{ | |||
name: "蓝牙", | |||
value: "blu", | |||
}, { | |||
name: "NFC", | |||
value: "nfc", | |||
}] | |||
} | |||
} | |||
}); | |||
// #endif | |||
}); | |||
function radioChange(evt) { | |||
console.log('输出内容', evt) | |||
state.transWay = evt.detail.value; //“blu”为蓝牙充值方式、“nfc”为NFC充值方式 | |||
for (var k = 0; k < state.transWayTypeList.length; k++) { | |||
if (state.transWayTypeList[k]['value'] == evt.detail.value) { | |||
state.transWayName = state.transWayTypeList[k]['name'] | |||
return; | |||
} | |||
} | |||
} | |||
/*点击充值按钮*/ | |||
const rechargeAction = () => { | |||
if (state.transWay == 'blu') { | |||
uni.redirectTo({ | |||
url: `/pages/bluetooth/bluetooth?routeType=9&&rechargeMoney=${state.rechargeMoney}&&orderNum=${state.orderNum}&&payMoney=${state.payMoney}`, | |||
}); | |||
} else { | |||
uni.redirectTo({ | |||
url: `/pages/nfc/nfc?routeType=9&&rechargeMoney=${state.rechargeMoney}&&orderNum=${state.orderNum}&&payMoney=${state.payMoney}`, | |||
}); | |||
} | |||
}; | |||
const goRecord = () => { | |||
uni.navigateTo({ | |||
url: `/subpackage/personal-center/consumption-record?cardId=${state.cardId}` | |||
}) | |||
} | |||
</script> | |||
<style> | |||
.record { | |||
width: 90%; | |||
display: flex; | |||
justify-content: space-between; | |||
margin: 0 auto; | |||
align-items: center; | |||
} | |||
.arrow { | |||
width: 14rpx; | |||
height: 26rpx; | |||
} | |||
.tabs .tab-tit { | |||
font-size: 30rpx; | |||
color: #333; | |||
padding: 45rpx 0 22rpx 30rpx; | |||
} | |||
.tabs .tab { | |||
display: flex; | |||
flex-wrap: wrap; | |||
justify-content: space-evenly; | |||
} | |||
.tabs .tab .item { | |||
width: 210rpx; | |||
height: 100rpx; | |||
background: #f6fff7; | |||
border: 1px solid #dcdde1; | |||
box-sizing: border-box; | |||
line-height: 100rpx; | |||
border-radius: 6rpx; | |||
text-align: center; | |||
margin-bottom: 24rpx; | |||
color: #333333; | |||
font-size: 32rpx; | |||
} | |||
.tabs .tab .item.active { | |||
border: 1px solid #24cc49; | |||
color: #24cc49; | |||
} | |||
.btn-primary { | |||
width: 670rpx; | |||
height: 80rpx; | |||
line-height: 80rpx; | |||
background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%); | |||
border-radius: 40rpx; | |||
font-size: 32rpx; | |||
color: #ffffff; | |||
margin: 200rpx 40rpx 0; | |||
text-align: center; | |||
} | |||
label { | |||
display: flex; | |||
justify-content: space-between; | |||
margin-top: 30rpx; | |||
} | |||
.photo { | |||
width: 40rpx; | |||
height: 40rpx; | |||
margin-right: 40rpx; | |||
} | |||
.photo1 { | |||
width: 40rpx; | |||
transform: rotateY(180deg); | |||
} | |||
.content { | |||
font-size: 32rpx; | |||
} | |||
.content>view { | |||
border-bottom: 1rpx solid #c1c1c1; | |||
display: flex; | |||
padding: 16rpx 20rpx; | |||
align-items: center; | |||
justify-content: space-between; | |||
height: 60rpx; | |||
} | |||
.red { | |||
color: red; | |||
} | |||
.tips { | |||
font-size: 32rpx; | |||
padding: 20rpx; | |||
} | |||
</style> |
@@ -0,0 +1,56 @@ | |||
<template> | |||
<view class="wrapper"> | |||
<image :src="`${$imgUrl}common/reharge-success.png`" class="pic-status" mode="widthFix"></image> | |||
<view class="text-result">修复成功</view> | |||
<view class="sub-text">您办理的账户充值业务已生成订单</view> | |||
<view class="btn btn-primary" @click="view">返回查看</view> | |||
</view> | |||
</template> | |||
<script lang="ts" setup> | |||
const view = () => { | |||
uni.navigateBack({ | |||
delta: 3 | |||
}) | |||
} | |||
</script> | |||
<style> | |||
.wrapper { | |||
display: flex; | |||
flex-direction: column; | |||
justify-content: center; | |||
text-align: center; | |||
} | |||
.text-result { | |||
font-size: 36rpx; | |||
color: #333; | |||
font-weight: 400; | |||
} | |||
.sub-text { | |||
font-size: 26rpx; | |||
font-weight: 400; | |||
color: #999999; | |||
padding-top: 40rpx; | |||
} | |||
.pic-status { | |||
width: 690rpx; | |||
height: 300rpx; | |||
margin: 98rpx 30rpx 25rpx; | |||
} | |||
.btn-primary { | |||
width: 670rpx; | |||
height: 80rpx; | |||
line-height: 80rpx; | |||
background: linear-gradient(-90deg, #43A1E0 0%, #13E7C1 100%); | |||
border-radius: 40rpx; | |||
font-size: 32rpx; | |||
color: #ffffff; | |||
margin: 300rpx 40rpx 0; | |||
text-align: center; | |||
} | |||
</style> |