url: "/pages/order/order" | url: "/pages/order/order" | ||||
}) | }) | ||||
} | } | ||||
// else if (item.orderStep == 2 || item.orderStep == 1 || item.orderStep == 4 || item.orderStep == 27) { | |||||
// // 完成个人/单位信息上传 完成填写基本信息 完成车辆信息上传 待支付3 | |||||
// gotoEditUserOrUnitInfo(item) | |||||
// } | |||||
}) | }) | ||||
} | } | ||||
return { | return { |
//根据订单类型 跳转到不同的订单详情页面 | //根据订单类型 跳转到不同的订单详情页面 | ||||
const gotoOrderDetails = (orderInfo, isWeiXin) => { | const gotoOrderDetails = (orderInfo, isWeiXin) => { | ||||
console.log('输出内容=====', orderInfo) | console.log('输出内容=====', orderInfo) | ||||
// if (orderInfo.orderType === 'ISSUE') { | |||||
navTo(`/subpackage/orders/order-details-new?id=${orderInfo.id}&appraise=${orderInfo.appraise}&isWeiXin=${isWeiXin}`); | navTo(`/subpackage/orders/order-details-new?id=${orderInfo.id}&appraise=${orderInfo.appraise}&isWeiXin=${isWeiXin}`); | ||||
// } else if (orderInfo.orderType == OrderTypes.同时换卡换签 || | |||||
// orderInfo.orderType == 'REPLACEMENT_CARD' || orderInfo.orderType == 'REPLACEMENT_SIGNATURE') { | |||||
// navTo(`/subpackage/orders/order-details-card-sign?id=${orderInfo.id}&orType=${orderInfo.orderType}`); | |||||
// } else if (orderInfo.orderType === 'SUPPLEMENT_OBU') { | |||||
// navTo(`/subpackage/orders/order-details-obu?id=${orderInfo.id}`); | |||||
// } else if (orderInfo.orderType === 'OFFICAL_SUPPLEMENT_OBU') { | |||||
// navTo(`/subpackage/orders/order-details-obu?id=${orderInfo.id}`); | |||||
// } | |||||
// else if (orderInfo.orderType === OrderTypes.ETC注销) { | |||||
// navTo(`/subpackage/orders/order-details-logoff-etc?id=${orderInfo.id}`); | |||||
// } else if (orderInfo.orderType === OrderTypes.车辆信息变更) { | |||||
// navTo(`/subpackage/orders/order-details-edit-car?id=${orderInfo.id}`); | |||||
// } else if (orderInfo.orderType === OrderTypes.解除车牌占用) { | |||||
// navTo(`/subpackage/orders/order-details-cancel-numberplate?id=${orderInfo.id}`); | |||||
// } else if (orderInfo.orderType === 'EXCHANGE_CARD_TYPE') { | |||||
// navTo(`/subpackage/orders/order-details-recharge?id=${orderInfo.id}`); | |||||
// } | |||||
} | } | ||||
//跳转到修改地址页面 | //跳转到修改地址页面 | ||||
url = `/subpackage/orders/release-products`; | url = `/subpackage/orders/release-products`; | ||||
} else if (orderInfo.orderStep === OrderStatus.待加购权益) { | } else if (orderInfo.orderStep === OrderStatus.待加购权益) { | ||||
navTo(`/subpackage/orders/interestsList?orderId=${orderInfo.orderId}&&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}`); | navTo(`/subpackage/orders/interestsList?orderId=${orderInfo.orderId}&&clientFee=${getItem("clientFee")}&&id=${getItem("productId")}`); | ||||
return | |||||
// uni.redirectTo({ | |||||
// url: `/subpackage/orders/choice-product?orderId=${val.orderId}`, | |||||
// }); | |||||
} else if (orderInfo.orderStep === OrderStatus["完成车辆信息上传/待支付"]) { | } else if (orderInfo.orderStep === OrderStatus["完成车辆信息上传/待支付"]) { | ||||
url = '/subpackage/orders/order-payment'; | url = '/subpackage/orders/order-payment'; | ||||
} else if (orderInfo.orderStep === OrderStatus["审核不通过"]) { //修改资料 | } else if (orderInfo.orderStep === OrderStatus["审核不通过"]) { //修改资料 | ||||
productId: orderInfo.productId, | productId: orderInfo.productId, | ||||
} | } | ||||
navTo(`/subpackage/orders/payment?data=${JSON.stringify(data)}`); | navTo(`/subpackage/orders/payment?data=${JSON.stringify(data)}`); | ||||
//navTo(`/orders/product-detail?orderId=${state.orderId}&&clientFee=${val.clientFee}&&id=${val.id}`) | |||||
// navTo(`/orders/choice-product?orderId=${orderInfo.orderId}`); | |||||
} | } | ||||
//申请退货 | //申请退货 |
"navigationBarTitleText": "选择蓝牙设备" | "navigationBarTitleText": "选择蓝牙设备" | ||||
} | } | ||||
}, | }, | ||||
{ | |||||
"path": "pages/recharge/recharge", | |||||
"style": { | |||||
"navigationBarTitleText": "用户账户充值", | |||||
"enablePullDownRefresh": false | |||||
} | |||||
}, | |||||
{ | { | ||||
"path": "pages/recharge/recharge-weixin", | "path": "pages/recharge/recharge-weixin", | ||||
"style": { | "style": { | ||||
"enablePullDownRefresh": false | "enablePullDownRefresh": false | ||||
} | } | ||||
}, | }, | ||||
{ | |||||
"path": "add-equity/add-equity-details", | |||||
"style": { | |||||
"navigationBarTitleText": "权益详情", | |||||
"enablePullDownRefresh": false | |||||
} | |||||
}, | |||||
{ | { | ||||
"path": "add-equity/equity-product-evaluation", | "path": "add-equity/equity-product-evaluation", | ||||
"style": { | "style": { |
url.value = 'https://qtzl.etcjz.cn/wxOrder/' | url.value = 'https://qtzl.etcjz.cn/wxOrder/' | ||||
// #endif | // #endif | ||||
// #ifdef MP-ALIPAY | // #ifdef MP-ALIPAY | ||||
// url.value = 'https://qtzl.etcjz.cn/wxOrder/#/pages/backPage/backPage?type=3' | |||||
url.value = 'https://qtzl.etcjz.cn/aliOrder/' | url.value = 'https://qtzl.etcjz.cn/aliOrder/' | ||||
// url.value = 'https://qtzl.etcjz.cn/h5/#/pages/productSelection/productSelection?qdOrderNo=20231129210008520101000026149316' | |||||
// #endif | // #endif | ||||
</script> | </script> | ||||
<style lang='scss' scoped> | <style lang='scss' scoped> |
<template> | |||||
<view class="allContent"> | |||||
<view class="list-item"> | |||||
<view><text>权益名称:</text><text>{{state.params['equityName']}}</text></view> | |||||
<view><text>权益金额:</text><text>¥{{state.params['discountPrice']* 0.01}}</text></view> | |||||
<!-- <view><text>权益介绍:</text><text>{{state.params['productIntro']}}</text></view> --> | |||||
<view><text>权益介绍:</text><rich-text :nodes="state.params['productIntro']" class="last" /></view> | |||||
<view><text>卖点:</text><text>{{state.params['sellingPoint']}}</text></view> | |||||
<view><text>开始时间:</text><text>{{state.params['startDate']}}</text></view> | |||||
<view><text>结束时间:</text><text>{{state.params['endDate']}}</text></view> | |||||
</view> | |||||
<view style="margin-top: 30rpx" class="action"> | |||||
<button type="default" class="button" @click="buy()"> | |||||
购买 | |||||
</button> | |||||
</view> | |||||
</view> | |||||
</template> | |||||
<script setup lang="ts"> | |||||
import { reactive } from "vue"; | |||||
import { onLoad } from "@dcloudio/uni-app"; | |||||
import { addEquityListApi, getOpenidApi, PAYMENTORDERAPPLY, equityPaymentOrderApi, equityPaymentTestApi } from "@/utils/network/api.js"; | |||||
import { | |||||
request | |||||
} from "@/utils/network/request.js"; | |||||
import { | |||||
getItem, | |||||
StorageKeys, | |||||
} from "@/utils/storage"; | |||||
import { | |||||
stringToJson | |||||
} from "@/utils/network/encryption"; | |||||
import { msg } from "@/utils/utils"; | |||||
const state = reactive({ | |||||
id: "", //支付id | |||||
params: {}, //上一个页面传递过来的参数 | |||||
}); | |||||
onLoad((options) => { | |||||
state.params = JSON.parse(decodeURIComponent(options.params)) | |||||
state.params['startDate'] = state.params['startDate'].replace("T", ' ') | |||||
state.params['endDate'] = state.params['endDate'].replace("T", ' ') | |||||
console.log("options", state.params) | |||||
}) | |||||
const buy = () => { | |||||
const options = { | |||||
type: 2, | |||||
data: { | |||||
"type": 1, | |||||
"openId": getItem(StorageKeys.OpenId), | |||||
"equityId": state.params['equtyId'] | |||||
}, | |||||
method: 'POST', | |||||
showLoading: true, | |||||
} | |||||
// 权益购买入参有个属性是type:1,代表查询是否已经买过了权益,返回的数据中hasData:true表示买过了,如果hasData:false表示没买过。type:2,表示购买 | |||||
request(addEquityListApi, options).then((res) => { | |||||
const data = stringToJson(res.bizContent); | |||||
console.log("加购", data.hasData) | |||||
if (data.hasData) { | |||||
uni.showModal({ | |||||
title: '提示', | |||||
content: '重复购买此产品', | |||||
success: function (res) { | |||||
if (res.confirm) { | |||||
console.log('用户点击确定'); | |||||
chooseBuy() | |||||
} else if (res.cancel) { | |||||
console.log('用户点击取消'); | |||||
} | |||||
} | |||||
}); | |||||
} else { | |||||
chooseBuy() | |||||
} | |||||
}) | |||||
} | |||||
const chooseBuy = () => { | |||||
const options = { | |||||
type: 2, | |||||
data: { | |||||
"type": 2, | |||||
"openId": getItem(StorageKeys.OpenId), | |||||
"equityId": state.params['equtyId'] | |||||
}, | |||||
method: 'POST', | |||||
showLoading: true, | |||||
} | |||||
// 权益购买入参有个属性是type:1,代表查询是否已经买过了权益,返回的数据中hasData:true表示买过了,如果hasData:false表示没买过。type:2,表示购买 | |||||
request(addEquityListApi, options).then((res) => { | |||||
const data = stringToJson(res.bizContent); | |||||
console.log("购买2", data) | |||||
state.id = data.info | |||||
// 权益支付下单 | |||||
equityPaymentOrderRequest() | |||||
}) | |||||
} | |||||
// 权益支付检测 | |||||
const equityPaymentTestRequest = () => { | |||||
const options = { | |||||
type: 2, | |||||
data: { | |||||
id: state.id, | |||||
}, | |||||
method: 'POST', | |||||
showLoading: true, | |||||
} | |||||
return new Promise(async (resolve, reject) => { | |||||
const res = await request(equityPaymentTestApi, options); | |||||
const data = stringToJson(res.bizContent); | |||||
resolve(data); | |||||
}).catch((error) => { | |||||
reject(error); | |||||
}); | |||||
} | |||||
// 权益支付下单 | |||||
const equityPaymentOrderRequest = () => { | |||||
uni.login({ | |||||
provider: "weixin", | |||||
success: function (e) { | |||||
const options1 = { | |||||
type: 2, | |||||
data: { | |||||
"jsCode": e.code | |||||
}, | |||||
method: "POST", | |||||
showLoading: true, | |||||
}; | |||||
request(getOpenidApi, options1).then((res) => { | |||||
const result = stringToJson(res.bizContent); | |||||
const openidData = stringToJson(result.data); | |||||
const options = { | |||||
type: 2, | |||||
data: { | |||||
id: state.id, | |||||
payType: "EQUITY", | |||||
wxOpenid: openidData.openid, | |||||
}, | |||||
method: 'POST', | |||||
showLoading: true, | |||||
} | |||||
request(equityPaymentOrderApi, options).then((res) => { | |||||
const data = stringToJson(res.bizContent); | |||||
console.log("权益支付下单", data) | |||||
if (data.info == "购买权益记录已支付") { | |||||
uni.showModal({ | |||||
title: '提示', | |||||
content: data.info, | |||||
showCancel: false, | |||||
success: function (res) { | |||||
if (res.confirm) { | |||||
uni.navigateBack({ | |||||
delta: 2 | |||||
}) | |||||
} | |||||
} | |||||
}); | |||||
} else { | |||||
uni.requestPayment({ | |||||
provider: "wxpay", | |||||
orderInfo: "", | |||||
timeStamp: data.timestamp, | |||||
nonceStr: data.noncestr, | |||||
package: data.wxPackage ? data.wxPackage : "", | |||||
signType: data.signType, | |||||
paySign: data.sign, | |||||
success: function (e) { | |||||
console.log("支付成功", res); | |||||
// 权益支付检测 | |||||
equityPaymentTestRequest().then((item : any) => { | |||||
console.log("权益支付检测", data) | |||||
msg("权益产品购买成功,到【我的】权益查看") | |||||
setTimeout(() => { | |||||
uni.navigateBack({ | |||||
delta: 2 | |||||
}) | |||||
}, 2000) | |||||
}) | |||||
}, | |||||
fail: function (err) { | |||||
confirm(err, () => { }, "支付失败", false); | |||||
}, | |||||
}) | |||||
} | |||||
}) | |||||
}) | |||||
}, | |||||
}) | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.allContent { | |||||
background-color: #EEF7F7; | |||||
height: 100vh; | |||||
padding: 30rpx 0; | |||||
width: 100%; | |||||
overflow-x: auto; | |||||
} | |||||
.list-item { | |||||
width: 95%; | |||||
border-radius: 10rpx; | |||||
margin: 0rpx auto; | |||||
font-size: 28rpx; | |||||
border: 1rpx solid #ccc; | |||||
padding: 12rpx; | |||||
box-sizing: border-box; | |||||
background-color: white; | |||||
} | |||||
.list-item>view { | |||||
margin-bottom: 20rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
} | |||||
.list-item>view>text:first-child { | |||||
width: 26%; | |||||
display: inline-block; | |||||
} | |||||
.list-item>view>text:last-child { | |||||
width: 74%; | |||||
display: inline-block; | |||||
word-break: break-all; | |||||
} | |||||
.last { | |||||
width: 74%; | |||||
display: inline-block; | |||||
word-break: break-all; | |||||
} | |||||
.action { | |||||
padding-bottom: 100rpx; | |||||
width: 90%; | |||||
margin: 0 auto; | |||||
.button { | |||||
height: 80rpx; | |||||
background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%); | |||||
border-radius: 40rpx; | |||||
font-size: 32rpx; | |||||
font-weight: 400; | |||||
color: #ffffff; | |||||
line-height: 80rpx; | |||||
} | |||||
} | |||||
</style> |
<template> | <template> | ||||
<view class="content" v-if="state.list"> | <view class="content" v-if="state.list"> | ||||
<view class="item" v-for="(item,index) in state.list" :key='index'> | |||||
<!-- <view class="item" v-for="(item,index) in state.list" :key='index'> | |||||
<view class="title"> | <view class="title"> | ||||
<view> | <view> | ||||
<text><text>{{item.productName}}</text> <text>¥{{item.discountPrice * 0.01}}</text></text> | <text><text>{{item.productName}}</text> <text>¥{{item.discountPrice * 0.01}}</text></text> | ||||
</view> | </view> | ||||
<text class="add" @click="add(item.equtyId)">加购</text> | <text class="add" @click="add(item.equtyId)">加购</text> | ||||
</view> | </view> | ||||
</view> --> | |||||
<view v-for="(item, index) in state.list" :key="index" @click="onClick(item)" :data-code="item" class="item" | |||||
style="justify-content: flex-start; display: flex; font-size: 28rpx; min-height: 20px; background-color: #22dbc8; color: white; border-radius: 20rpx; padding: 20px; margin: 20px;"> | |||||
<view style="display: flex; flex-direction: column; flex: 1;"> | |||||
<text>{{ item.productName }}</text> | |||||
</view> | |||||
<view>></view> | |||||
</view> | </view> | ||||
<view class="bottom-line" v-if="state.flags">我是有底线的~~~</view> | <view class="bottom-line" v-if="state.flags">我是有底线的~~~</view> | ||||
</view> | </view> | ||||
const add = (equtyId) => { | const add = (equtyId) => { | ||||
navTo(`/subpackage/after-sale/add-equity/choice-order?equtyId=${equtyId}`, true) | navTo(`/subpackage/after-sale/add-equity/choice-order?equtyId=${equtyId}`, true) | ||||
} | } | ||||
const onClick = (item) => { | |||||
const params = encodeURIComponent(JSON.stringify(item)) | |||||
navTo(`/subpackage/after-sale/add-equity/add-equity-details?params=${params}`, true) | |||||
} | |||||
// 触底加载 | // 触底加载 | ||||
onReachBottom(() => { | onReachBottom(() => { | ||||
if (state.list.length < state.pageNo * 15) return state.flags = true | if (state.list.length < state.pageNo * 15) return state.flags = true | ||||
.bottom-line { | .bottom-line { | ||||
text-align: center; | text-align: center; | ||||
margin: 30rpx 0 50rpx 0; | margin: 30rpx 0 50rpx 0; | ||||
font-size: 32rpx; | |||||
padding-bottom: 10rpx; | |||||
} | } | ||||
</style> | </style> |
<template> | <template> | ||||
<view class="selectCar-box"> | <view class="selectCar-box"> | ||||
<view v-if="state.list" class="item" v-for="(item,i) in state.list" :key="i"> | <view v-if="state.list" class="item" v-for="(item,i) in state.list" :key="i"> | ||||
<view class="iten-left"> | |||||
<view>权益名称:{{item.name}}</view> | |||||
<view>权益金额:¥{{item.fee * 0.01}}元</view> | |||||
<view>权益名称:{{item.name}}</view> | |||||
<view>权益金额:¥{{item.fee * 0.01}}元</view> | |||||
<view v-if="item.insertTime">购买时间:{{item.insertTime}}</view> | |||||
<view v-if="item.payTime">支付时间:{{item.payTime}}</view> | |||||
<view style="display: flex;justify-content: flex-end;"> | |||||
<text class="btn btn-primary" v-if="item.evaluate==1">已评价</text> | |||||
<text class="btn btn-primary" v-else @click="goQuanyi(item)">去评价</text> | |||||
<!-- 是否支付 1-已支付,2-未支付支付,3-已取消,4-已下单,未支付 --> | |||||
<text class="btn btn-primary" v-if="item.isPay==2" | |||||
@click="equityPaymentOrderRequest(item.id)">去支付</text> | |||||
</view> | </view> | ||||
<view class="btn btn-primary" v-if="item.evaluate==1">已评价</view> | |||||
<view class="btn btn-primary" v-else @click="goQuanyi(item)">去评价</view> | |||||
</view> | </view> | ||||
<view v-else> | <view v-else> | ||||
onLoad, onReachBottom, onShow | onLoad, onReachBottom, onShow | ||||
} from "@dcloudio/uni-app"; | } from "@dcloudio/uni-app"; | ||||
import { | import { | ||||
showEquityListApi | |||||
showEquityListApi, getOpenidApi, equityPaymentOrderApi, equityPaymentTestApi | |||||
} from "@/utils/network/api.js"; | } from "@/utils/network/api.js"; | ||||
import { | import { | ||||
request | request | ||||
equtyId: "",//权益id | equtyId: "",//权益id | ||||
flags: false, | flags: false, | ||||
pageSize: 10, | pageSize: 10, | ||||
pageNo: 1 | |||||
pageNo: 1, | |||||
id: "" | |||||
}); | }); | ||||
const flag = ref('0') //默认选择0 | const flag = ref('0') //默认选择0 | ||||
onLoad((option) => { | |||||
// showEquityListRequest() | |||||
}); | |||||
onShow(() => { | onShow(() => { | ||||
state.pageNo = 1 | |||||
state.list = [] | state.list = [] | ||||
showEquityListRequest() | showEquityListRequest() | ||||
}) | }) | ||||
}) | }) | ||||
} | } | ||||
onReachBottom(() => { | onReachBottom(() => { | ||||
console.log("触底了", state.list.length, state.pageNo * 10) | |||||
if (state.list.length < state.pageNo * 10) return state.flags = true | if (state.list.length < state.pageNo * 10) return state.flags = true | ||||
console.log("触底了") | console.log("触底了") | ||||
state.pageNo++ | state.pageNo++ | ||||
const goQuanyi = (item) => { | const goQuanyi = (item) => { | ||||
navTo(`/subpackage/after-sale/add-equity/equity-product-evaluation?equityId=${item.equityId}&id=${item.id}&orderId=${item.orderId}`) | navTo(`/subpackage/after-sale/add-equity/equity-product-evaluation?equityId=${item.equityId}&id=${item.id}&orderId=${item.orderId}`) | ||||
} | } | ||||
// 权益支付下单 | |||||
const equityPaymentOrderRequest = (id) => { | |||||
state.id = id | |||||
uni.login({ | |||||
provider: "weixin", | |||||
success: function (e) { | |||||
const options1 = { | |||||
type: 2, | |||||
data: { | |||||
"jsCode": e.code | |||||
}, | |||||
method: "POST", | |||||
showLoading: true, | |||||
}; | |||||
request(getOpenidApi, options1).then((res) => { | |||||
const result = stringToJson(res.bizContent); | |||||
const openidData = stringToJson(result.data); | |||||
const options = { | |||||
type: 2, | |||||
data: { | |||||
id: state.id, | |||||
payType: "EQUITY", | |||||
wxOpenid: openidData.openid, | |||||
}, | |||||
method: 'POST', | |||||
showLoading: true, | |||||
} | |||||
request(equityPaymentOrderApi, options).then((res) => { | |||||
const data = stringToJson(res.bizContent); | |||||
console.log("权益支付下单", data) | |||||
uni.requestPayment({ | |||||
provider: "wxpay", | |||||
orderInfo: "", | |||||
timeStamp: data.timestamp, | |||||
nonceStr: data.noncestr, | |||||
package: data.wxPackage ? data.wxPackage : "", | |||||
signType: data.signType, | |||||
paySign: data.sign, | |||||
success: function (e) { | |||||
console.log("支付成功", res); | |||||
equityPaymentTestRequest().then((item : any) => { | |||||
msg("权益产品购买成功") | |||||
state.pageNo = 1 | |||||
state.list = [] | |||||
showEquityListRequest() | |||||
}) | |||||
}, | |||||
fail: function (err) { | |||||
confirm(err, () => { }, "支付失败", false); | |||||
}, | |||||
}) | |||||
}) | |||||
}) | |||||
}, | |||||
}) | |||||
} | |||||
// 权益支付检测 | |||||
const equityPaymentTestRequest = () => { | |||||
const options = { | |||||
type: 2, | |||||
data: { | |||||
id: state.id, | |||||
}, | |||||
method: 'POST', | |||||
showLoading: true, | |||||
} | |||||
return new Promise(async (resolve, reject) => { | |||||
const res = await request(equityPaymentTestApi, options); | |||||
const data = stringToJson(res.bizContent); | |||||
resolve(data); | |||||
}).catch((error) => { | |||||
reject(error); | |||||
}); | |||||
} | |||||
</script> | </script> | ||||
<style> | <style> | ||||
padding: 30rpx; | padding: 30rpx; | ||||
.item { | .item { | ||||
padding: 0 20rpx; | |||||
display: flex; | |||||
justify-content: space-between; | |||||
padding: 20rpx; | |||||
align-items: center; | align-items: center; | ||||
height: 130rpx; | |||||
font-size: 30rpx; | |||||
background: #FFFFFF; | background: #FFFFFF; | ||||
box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223, 223, 223, 0.8); | box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223, 223, 223, 0.8); | ||||
border-radius: 20rpx; | border-radius: 20rpx; | ||||
} | } | ||||
.btn { | .btn { | ||||
height: 60rpx; | |||||
line-height: 58rpx; | |||||
height: 50rpx; | |||||
line-height: 50rpx; | |||||
border-radius: 30rpx; | border-radius: 30rpx; | ||||
padding: 0 24rpx; | padding: 0 24rpx; | ||||
font-size: 23rpx; | font-size: 23rpx; |
</template> | </template> | ||||
<script setup lang="ts"> | <script setup lang="ts"> | ||||
// import navBar from "./components/nav-bar.vue" | |||||
import { | import { | ||||
ref | ref | ||||
} from "vue"; | } from "vue"; | ||||
padding: 30rpx; | padding: 30rpx; | ||||
.card_item { | .card_item { | ||||
margin-bottom: 30rpx ; | |||||
margin-bottom: 30rpx; | |||||
background-color: #fff; | background-color: #fff; | ||||
height: 150rpx; | height: 150rpx; | ||||
border-radius: 20rpx; | border-radius: 20rpx; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
</style> | |||||
</style> |
</u-radio> | </u-radio> | ||||
</u-radio-group> | </u-radio-group> | ||||
</view> | </view> | ||||
<view class="from_item"> | <view class="from_item"> | ||||
<text><text style="color: red;">*</text>自提:</text> | <text><text style="color: red;">*</text>自提:</text> | ||||
<view class="from_item1"> | <view class="from_item1"> | ||||
<text><text style="color: red;">*</text>补卡原因:</text> | <text><text style="color: red;">*</text>补卡原因:</text> | ||||
<textarea name="" id="" placeholder="请输入补卡原因,限制50字以内。"></textarea > | |||||
<textarea name="" id="" placeholder="请输入补卡原因,限制50字以内。"></textarea> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<button class="submit">下一步</button> | <button class="submit">下一步</button> | ||||
<!-- 地区弹窗 --> | |||||
<!-- <view> | |||||
<u-picker :show="show" ref="uPicker" :columns="columns" @cancel="cancel" @confirm="confirm" | |||||
@change="changeHandler"> | |||||
</u-picker> | |||||
</view> --> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
// 单选数据列表 | // 单选数据列表 | ||||
const radiolist1 = reactive([{ | const radiolist1 = reactive([{ | ||||
name: '营业点自提', | |||||
disabled: false | |||||
}, | |||||
{ | |||||
name: '邮寄', | |||||
disabled: false | |||||
}, | |||||
], ) | |||||
name: '营业点自提', | |||||
disabled: false | |||||
}, | |||||
{ | |||||
name: '邮寄', | |||||
disabled: false | |||||
}, | |||||
]) | |||||
let show = ref(false) | let show = ref(false) | ||||
} | } | ||||
.submit { | .submit { | ||||
background: linear-gradient(to left, #43A1E0 0%, #13E7C1 100%); | |||||
width: 670rpx; | |||||
height: 80rpx; | |||||
line-height: 80rpx; | |||||
font-size: 32rpx; | |||||
color: #fff; | |||||
border-radius: 100rpx; | |||||
position: fixed; | |||||
bottom: 10%; | |||||
left:50%; | |||||
transform: translate(-50%); | |||||
background: linear-gradient(to left, #43A1E0 0%, #13E7C1 100%); | |||||
width: 670rpx; | |||||
height: 80rpx; | |||||
line-height: 80rpx; | |||||
font-size: 32rpx; | |||||
color: #fff; | |||||
border-radius: 100rpx; | |||||
position: fixed; | |||||
bottom: 10%; | |||||
left: 50%; | |||||
transform: translate(-50%); | |||||
} | } | ||||
</style> | |||||
</style> |
</u-form-item> | </u-form-item> | ||||
<u-form-item label="车辆类型"> | <u-form-item label="车辆类型"> | ||||
<u-input inputAlign="right" placeholder="请输入车辆类型" v-model="state.form.vehicleType" | <u-input inputAlign="right" placeholder="请输入车辆类型" v-model="state.form.vehicleType" | ||||
:disabled="state.isEnableChangeOCRCarInfo" /> | |||||
:disabled="state.isEnableChangeOCRCarInfo" maxlength="20" /> | |||||
</u-form-item> | </u-form-item> | ||||
<u-form-item label="使用性质"> | <u-form-item label="使用性质"> | ||||
<u-input inputAlign="right" placeholder="请输入使用性质" v-model="state.form.character" | <u-input inputAlign="right" placeholder="请输入使用性质" v-model="state.form.character" |
<template> | <template> | ||||
<div> | |||||
<view> | |||||
<view v-for="(item, index) in listData" :key="index" @click="onClick(item)" :data-code="item" class="item" | <view v-for="(item, index) in listData" :key="index" @click="onClick(item)" :data-code="item" class="item" | ||||
style="justify-content: flex-start; display: flex; font-size: 28rpx; min-height: 20px; background-color: #22dbc8; color: white; border-radius: 20rpx; padding: 20px; margin: 20px;"> | style="justify-content: flex-start; display: flex; font-size: 28rpx; min-height: 20px; background-color: #22dbc8; color: white; border-radius: 20rpx; padding: 20px; margin: 20px;"> | ||||
<view style="display: flex; flex-direction: column; flex: 1;"> | <view style="display: flex; flex-direction: column; flex: 1;"> | ||||
</view> | </view> | ||||
<view>></view> | <view>></view> | ||||
</view> | </view> | ||||
</div> | |||||
</view> | |||||
</template> | </template> | ||||
<script setup lang='ts'> | <script setup lang='ts'> | ||||
import { | import { |
// export const URL = "192.168.100.63"; | // export const URL = "192.168.100.63"; | ||||
// export const URL = "trial.etcjz.cn"; | // export const URL = "trial.etcjz.cn"; | ||||
export const URL = "qtzl.etcjz.cn"; | export const URL = "qtzl.etcjz.cn"; | ||||
// export const URL = "qtzl.etcjz.cn/test"; | |||||
/** | /** | ||||
* 配置信息,针对不同的平台进行配置 | * 配置信息,针对不同的平台进行配置 | ||||
*/ | */ | ||||
// baseUrl: "https://trial.etcjz.cn", | // baseUrl: "https://trial.etcjz.cn", | ||||
baseUrl: "https://qtzl.etcjz.cn", | baseUrl: "https://qtzl.etcjz.cn", | ||||
// baseUrl: "https://qtzl.etcjz.cn/test", | // baseUrl: "https://qtzl.etcjz.cn/test", | ||||
// baseUrl: "http://192.168.100.158:8085", | |||||
// baseUrl: "http://192.168.100.63:50001", | |||||
}, | }, | ||||
//生产环境配置 | //生产环境配置 | ||||
production: { | production: { | ||||
baseUrl: "https://qtzl.etcjz.cn", | baseUrl: "https://qtzl.etcjz.cn", | ||||
// baseUrl: "https://trial.etcjz.cn", | // baseUrl: "https://trial.etcjz.cn", | ||||
// baseUrl: "https://qtzl.etcjz.cn/test", | // baseUrl: "https://qtzl.etcjz.cn/test", | ||||
// baseUrl: "http://192.168.100.158:8085", | |||||
// baseUrl: "http://192.168.100.63:50001", | |||||
}, | }, | ||||
} | } | ||||
//支付宝配置相关 | //支付宝配置相关 | ||||
export const aliPayConfigId1 = '202403BB9b6946b9b6704cd39f8d51138871fX92'; //qiantongka10@163.com(设备费) | export const aliPayConfigId1 = '202403BB9b6946b9b6704cd39f8d51138871fX92'; //qiantongka10@163.com(设备费) | ||||
export const aliPayConfigId2 = '202403BBa542c91b0ea94373bde1c59d10945X18'; //qiantongka13@163.com(储值卡圈存) | export const aliPayConfigId2 = '202403BBa542c91b0ea94373bde1c59d10945X18'; //qiantongka13@163.com(储值卡圈存) | ||||
export const aliPayConfigId3 = '202403BB51f16564ec9c46d7afdd5024d1c86A24'; //qiantongka14@163.com(ETC通行费) qiantongka5@163.com(支付服务费(支付宝)账户) | |||||
export const aliPayConfigId3 = | |||||
'202403BB51f16564ec9c46d7afdd5024d1c86A24'; //qiantongka14@163.com(ETC通行费) qiantongka5@163.com(支付服务费(支付宝)账户) | |||||
export const wechatAppID = "wx8fba957179c1329a"; //九州小程序APPid:wx008c60533388527a | export const wechatAppID = "wx8fba957179c1329a"; //九州小程序APPid:wx008c60533388527a | ||||
export const wechatSecret = "699c10826113ddb350fbe58a96e2b015"; //九州小程序AppSecret:95197718b43b497f02732bd9f8011080 | export const wechatSecret = "699c10826113ddb350fbe58a96e2b015"; //九州小程序AppSecret:95197718b43b497f02732bd9f8011080 | ||||
export const sm4Key = | export const sm4Key = | ||||
"5dc11f854ceca1473e1a5075ed16eb226b4543a9a05fe50f7fba40f898099ce34abba69a07a20509f315f94d808a4d0e988935588858f65a"; | "5dc11f854ceca1473e1a5075ed16eb226b4543a9a05fe50f7fba40f898099ce34abba69a07a20509f315f94d808a4d0e988935588858f65a"; | ||||
// export const sm4Key = "5dc11f854ceca147"; | |||||
//字典 | //字典 | ||||
export const blackApi = "3aeafb995cb84112be87b8edcc303a8f" //黑名单查询 | export const blackApi = "3aeafb995cb84112be87b8edcc303a8f" //黑名单查询 | ||||
export const rechargeApi = "c62caa7ea6a249c3a2c3f5d3c6354a37" //单位账户充值 | export const rechargeApi = "c62caa7ea6a249c3a2c3f5d3c6354a37" //单位账户充值 | ||||
export const cancelOrderApi = "43d72061a84e4310abe631725e42c594" // 更换设备 去注销前订单的 卡签 | export const cancelOrderApi = "43d72061a84e4310abe631725e42c594" // 更换设备 去注销前订单的 卡签 | ||||
export const renewalTimeApi = "bdf2d521cba340deb6629f3b192db92a" // 更换卡签续期时间 | |||||
export const renewalTimeApi = "bdf2d521cba340deb6629f3b192db92a" // 更换卡签续期时间 | |||||
export const equityPaymentOrderApi = "86934115be154af8ab783c38b2814799" // 权益支付下单 | |||||
export const equityPaymentTestApi = "d68089567c1a4ca0bcd97b0b348038a2" // 权益支付检测 |
//参数返回 | //参数返回 | ||||
return new Promise((resolve, reject) => { | return new Promise((resolve, reject) => { | ||||
options.success = (res) => { | options.success = (res) => { | ||||
console.log('请求成功返回参数:', code, res) | |||||
// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading) | // 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading) | ||||
if (options.showLoading) { | if (options.showLoading) { | ||||
uni.hideLoading() | uni.hideLoading() | ||||
} else { | } else { | ||||
let content = s4.decryptData_CBC(res, sm4Key) | let content = s4.decryptData_CBC(res, sm4Key) | ||||
console.log('请求成功返回参数:', code, content) | |||||
console.log('请求成功返回参数:', code, content.data) | |||||
resolve(content.data) | resolve(content.data) | ||||
} | } | ||||
} | } |