no message

This commit is contained in:
2024-01-16 22:53:42 +08:00
commit 40e5198c79
479 changed files with 52166 additions and 0 deletions

View File

@@ -0,0 +1,300 @@
var e = require("../../common/vendor.js"),
u = require("../../hooks/onMounted.js"),
r = require("../../hooks/onShareAppMessage.js"),
n = require("../../hooks/useState.js"),
i = require("../../enums/index.js"),
o = require("../../service/index.js"),
t = require("../../utils/util.js"),
c = require("../../utils/common.js"),
a = require("../../utils/navigate.js");
require("../../config/index.js"),
require("../../constant/index.js"),
require("../../store/app/index.js"),
require("../../data/index.js"),
require("../../utils/request.js"),
Array || e.resolveComponent("uni-countdown")();
Math ||
(
e.unref(p) +
function () {
return "../../uni_modules/uni-countdown/components/uni-countdown/uni-countdown.js";
} +
e.unref(d)
)();
var d = function () {
return "../../components/divider/index.js";
},
p = function () {
return "../../components/vehicle-number/index.js";
},
l = {
__name: "index",
setup: function (d) {
var p = n.useState(),
l = p.insuranceMaintainProduct,
v = p.accidentProduct,
m = p.vehicleFiveProduct,
E = p.saliProduct,
_ = p.saliCheckProduct,
y = p.commercialInsuranceProduct,
f = p.violationProduct,
s = p.vehicleStatusProduct,
N = e.ref(!0),
T = e.ref(null),
A = e.ref(i.QueryTypeEnum.VIN),
P = e.ref("02"),
I = e.ref(""),
C = e.ref(""),
L = e.ref({}),
g = e.ref(null),
S = e.ref([]),
h = e.ref(0),
x = function () {
var e = new Date().getHours();
return e >= 9 && e <= 21;
},
M = function (e) {
h.value = Number(e.detail.value);
},
b = function (e) {
g.value = e.detail.value;
},
V = function () {
var e = S.value[h.value],
u = {
product: null,
money: null,
vin: null,
car_no: null,
type: null,
};
(u.product = e.product_id),
(u.money = Number((100 * Number(e.price)).toFixed(2))),
(u.vin = I.value),
(u.car_no = C.value),
(u.type = P.value),
(u.payMethod = g.value),
A.value === i.QueryTypeEnum.VIN && (u.car_no = null),
A.value === i.QueryTypeEnum.VEHICLE_NO && (u.vin = null),
T.value !== i.ProductTypeEnum.SALI_CHECK && (u.type = null),
e.product_id === i.ProductTypeEnum.OVERALL &&
(u.product = [l.value.product_id, v.value.product_id].join(",")),
t.showLoading("支付中"),
o.createOrder(u).then(function (e) {
c.payForOrder({ payMethod: g.value, data: e })
.then(function (e) {
var u = e.orderNo;
a.redirectTo({
url: "/pages/pay-success/index",
params: { orderNo: u },
});
})
.catch(function (e) {
var u = e.orderNo;
a.redirectTo({
url: "/pages/pay-fail/index",
params: { orderNo: u },
});
});
});
};
return (
u.onMounted(function (u) {
(T.value = u.productType),
(A.value = u.queryType),
(P.value = u.vehicleType),
(I.value = u.vin),
(C.value = u.vehicleNo),
c.isSupportWeChatPay()
? (g.value = i.PayMethodEnum.WECHAT_PAY)
: c.isSupportAliPay()
? (g.value = i.PayMethodEnum.ALI_PAY)
: (g.value = null),
(T.value != i.ProductTypeEnum.OVERALL &&
T.value != i.ProductTypeEnum.INSURANCE_MAINTAIN &&
T.value != i.ProductTypeEnum.ACCIDENT) ||
((S.value = [
{
product_id: i.ProductTypeEnum.OVERALL,
origin_price: (
Number(l.value.origin_price) + Number(v.value.origin_price)
).toFixed(2),
price: (
Number(l.value.price) +
Number(v.value.price) -
10
).toFixed(2),
product_name: "综合车况",
product_desc: "维保、出险一起查,全面还原真实车况",
recommend: !0,
},
l.value,
v.value,
]),
T.value == i.ProductTypeEnum.OVERALL && (h.value = 0),
T.value == i.ProductTypeEnum.INSURANCE_MAINTAIN && (h.value = 1),
T.value == i.ProductTypeEnum.ACCIDENT && (h.value = 2)),
(T.value != i.ProductTypeEnum.SALI &&
T.value != i.ProductTypeEnum.COMMERICAL_INSURANCE) ||
((S.value = [y.value, E.value]),
T.value == i.ProductTypeEnum.COMMERICAL_INSURANCE &&
(h.value = 0),
T.value == i.ProductTypeEnum.SALI && (h.value = 1)),
T.value == i.ProductTypeEnum.SALI_CHECK && (S.value = [_.value]),
T.value == i.ProductTypeEnum.VEHICLE_FIVE && (S.value = [m.value]),
T.value == i.ProductTypeEnum.VIOLATION && (S.value = [f.value]),
T.value == i.ProductTypeEnum.VEHICLE_STATUS &&
(S.value = [s.value]),
Promise.resolve().then(function () {
o.getPriceList({
vin: A.value === i.QueryTypeEnum.VIN ? I.value : "",
}).then(function (u) {
if (u) {
var r = e._.find(u, function (e) {
return (
e.product_id === i.ProductTypeEnum.INSURANCE_MAINTAIN
);
}),
n = e._.find(u, function (e) {
return e.product_id === i.ProductTypeEnum.ACCIDENT;
}),
o = e._.find(u, function (e) {
return e.product_id === i.ProductTypeEnum.VEHICLE_FIVE;
}),
c = e._.find(u, function (e) {
return (
e.product_id === i.ProductTypeEnum.COMMERICAL_INSURANCE
);
}),
a = e._.find(u, function (e) {
return e.product_id === i.ProductTypeEnum.SALI;
}),
d = e._.find(u, function (e) {
return e.product_id === i.ProductTypeEnum.VEHICLE_STATUS;
}),
p = e._.cloneDeep(S.value);
e._.each(p, function (e) {
e.product_id === i.ProductTypeEnum.OVERALL &&
((e.origin_price = (
Number(r.origin_price) + Number(n.origin_price)
).toFixed(2)),
(e.price = (
Number(r.price) +
Number(n.price) -
10
).toFixed(2))),
e.product_id === i.ProductTypeEnum.INSURANCE_MAINTAIN &&
((e.origin_price = Number(r.origin_price).toFixed(2)),
(e.price = Number(r.price).toFixed(2))),
e.product_id === i.ProductTypeEnum.ACCIDENT &&
((e.origin_price = Number(n.origin_price).toFixed(2)),
(e.price = Number(n.price).toFixed(2))),
e.product_id === i.ProductTypeEnum.VEHICLE_FIVE &&
((e.origin_price = Number(o.origin_price).toFixed(2)),
(e.price = Number(o.price).toFixed(2))),
e.product_id === i.ProductTypeEnum.COMMERICAL_INSURANCE &&
((e.origin_price = Number(c.origin_price).toFixed(2)),
(e.price = Number(c.price).toFixed(2))),
e.product_id === i.ProductTypeEnum.SALI &&
((e.origin_price = Number(a.origin_price).toFixed(2)),
(e.price = Number(a.price).toFixed(2))),
e.product_id === i.ProductTypeEnum.VEHICLE_STATUS &&
((e.origin_price = Number(d.origin_price).toFixed(2)),
(e.price = Number(d.price).toFixed(2)));
}),
(S.value = p);
}
(N.value = !1), t.hideLoading();
});
});
}),
r.onShareAppMessage(),
function (u, r) {
return e.e(
{ a: !N.value },
N.value
? {}
: e.e(
{
b: A.value === e.unref(i.QueryTypeEnum).VIN && L.value.name,
},
A.value === e.unref(i.QueryTypeEnum).VIN && L.value.name
? {
c: L.value.logo,
d: e.t(L.value.name),
e: e.t(L.value.vin),
}
: e.e(
{ f: A.value === e.unref(i.QueryTypeEnum).VEHICLE_NO },
A.value === e.unref(i.QueryTypeEnum).VEHICLE_NO
? { g: e.p({ data: C.value, "font-size": "32rpx" }) }
: {},
{ h: A.value === e.unref(i.QueryTypeEnum).VIN },
A.value === e.unref(i.QueryTypeEnum).VIN
? { i: e.t(I.value) }
: {}
),
{
j: e.f(S.value, function (u, r, n) {
return e.e(
{ a: e.t(u.product_name), b: u.recommend },
(u.recommend, {}),
{
c: e.t(u.origin_price),
d: e.t(u.price),
e: e.t(u.product_desc),
f: h.value === r ? 1 : "",
g: r,
h: h.value === r,
i: r,
}
);
}),
k: e.o(M),
l: !x(),
},
(x(), {}),
{
m:
T.value == e.unref(i.ProductTypeEnum).SALI ||
T.value ==
e.unref(i.ProductTypeEnum).COMMERICAL_INSURANCE,
},
(T.value == e.unref(i.ProductTypeEnum).SALI ||
(T.value, e.unref(i.ProductTypeEnum).COMMERICAL_INSURANCE),
{}),
{
n: e.p({
minute: 10,
"font-size": 28,
color: "#ffffff",
"splitor-color": "#FA5E29",
"background-color": "#FA5E29",
}),
o: e.t(
S.value[h.value].origin_price - S.value[h.value].price
),
p: e.unref(c.isSupportWeChatPay)(),
},
e.unref(c.isSupportWeChatPay)()
? {
q: e.unref(i.PayMethodEnum).WECHAT_PAY,
r: g.value === e.unref(i.PayMethodEnum).WECHAT_PAY,
}
: {},
{ s: e.unref(c.isSupportAliPay)() },
e.unref(c.isSupportAliPay)()
? {
t: e.unref(i.PayMethodEnum).ALI_PAY,
v: g.value === e.unref(i.PayMethodEnum).ALI_PAY,
}
: {},
{ w: e.o(b), x: e.t(S.value[h.value].price), y: e.o(V) }
)
);
}
);
},
},
v = e._export_sfc(l, [["__scopeId", "data-v-0986fd70"]]);
(l.__runtimeHooks = 2), wx.createPage(v);

View File

@@ -0,0 +1,8 @@
{
"navigationBarTitleText": "订单确认",
"usingComponents": {
"uni-countdown": "../../uni_modules/uni-countdown/components/uni-countdown/uni-countdown",
"divider": "../../components/divider/index",
"vehicle-number": "../../components/vehicle-number/index"
}
}

View File

@@ -0,0 +1,160 @@
<view class="content data-v-0986fd70" wx:if="{{a}}">
<view class="header data-v-0986fd70">
<view class="header-content data-v-0986fd70">
<view class="vehicle-info data-v-0986fd70" wx:if="{{b}}">
<image class="logo data-v-0986fd70" src="{{c}}"></image>
<view class="right-content data-v-0986fd70">
<view class="desc data-v-0986fd70" style="font-weight: bold"
>车型:{{d}}</view
>
<view class="desc data-v-0986fd70">VIN {{e}}</view>
</view>
</view>
<block wx:else>
<image class="car data-v-0986fd70" src="/static/images/car.jpg"></image>
<view class="desc data-v-0986fd70">
<block wx:if="{{f}}">
<text class="data-v-0986fd70" style="margin-right: 10rpx"
>车牌:
</text>
<vehicle-number
bind:__l="__l"
class="data-v-0986fd70"
uI="0986fd70-0"
uP="{{g}}"
wx:if="{{g}}"
></vehicle-number>
</block>
<block wx:if="{{h}}">
<text class="data-v-0986fd70" style="margin-right: 10rpx"
>VIN:
</text>
<text class="data-v-0986fd70" style="color: #1f68e9">{{i}}</text>
</block>
</view>
</block>
</view>
<view class="tips-info data-v-0986fd70">
<view class="left-content data-v-0986fd70">
<image
class="data-v-0986fd70"
src="/static/svgs/icon_shield.svg"
></image>
<text class="data-v-0986fd70">真实数据</text>
</view>
<view class="right-content data-v-0986fd70">全面还原真实车况</view>
</view>
</view>
<view class="wrap data-v-0986fd70">
<view class="title data-v-0986fd70">请确认您购买的产品</view>
<view class="product-list data-v-0986fd70">
<radio-group bindchange="{{k}}" class="product-group data-v-0986fd70">
<label class="data-v-0986fd70" wx:for="{{j}}" wx:key="i">
<view class="{{['product','data-v-0986fd70',item.f&&'selected']}}">
<view class="top data-v-0986fd70">
<view class="product-name data-v-0986fd70">
<view class="data-v-0986fd70">{{item.a}}</view>
<view class="recommend data-v-0986fd70" wx:if="{{item.b}}"
>推荐</view
>
</view>
<view class="product-price data-v-0986fd70">
<view class="origin data-v-0986fd70">原价:¥{{item.c}}</view>
<view class="data-v-0986fd70">¥{{item.d}}</view>
</view>
</view>
<view class="product-desc data-v-0986fd70">{{item.e}}</view>
</view>
<radio
checked="{{item.h}}"
class="data-v-0986fd70"
color="#FA5E29"
value="{{item.g}}"
></radio>
</label>
</radio-group>
</view>
<view class="notice data-v-0986fd70" wx:if="{{l}}">
报告处理时间为9点-22点22点后次日处理。18点以后部分订单会在第二天早上9点后收到查询结果。
</view>
</view>
<view class="wrap data-v-0986fd70" wx:if="{{m}}">
<view class="title data-v-0986fd70">购买须知</view>
<view class="tips data-v-0986fd70">
通过车架号,查询车辆当前车险信息(不支持往年车险),存在以下两种情况:
<view class="data-v-0986fd70"></view> 1.
如果车辆正常在保:有保险公司名称、起保日期、终保日期等信息。
<view class="data-v-0986fd70"></view> 2.
如果车辆已经脱保:则不会有上述信息。
<view class="data-v-0986fd70"></view>
请购买之前认真阅读,一旦报告结果查出,概不退款。
</view>
</view>
<view class="coupon data-v-0986fd70">
<view class="top data-v-0986fd70">
<image
class="data-v-0986fd70"
src="/static/images/icon_coupon.png"
></image>
<text class="data-v-0986fd70">限时优惠</text>
</view>
<view class="coupon-content data-v-0986fd70">
<view class="count-down data-v-0986fd70">
<uni-countdown
bind:__l="__l"
class="data-v-0986fd70"
uI="0986fd70-1"
uP="{{n}}"
wx:if="{{n}}"
></uni-countdown>
</view>
<view class="price data-v-0986fd70">¥{{o}}</view>
</view>
</view>
<view class="wrap data-v-0986fd70">
<view class="title data-v-0986fd70">支付方式</view>
<radio-group bindchange="{{w}}" class="pay-group data-v-0986fd70">
<label class="data-v-0986fd70" wx:if="{{p}}">
<image
class="data-v-0986fd70"
src="/static/images/logo_wechat.png"
></image>
<text class="pay-name data-v-0986fd70">微信支付</text>
<radio
checked="{{r}}"
class="data-v-0986fd70"
color="#FA5E29"
value="{{q}}"
></radio>
</label>
<label class="data-v-0986fd70" wx:if="{{s}}">
<image
class="data-v-0986fd70"
src="/static/images/logo_alipay.png"
></image>
<text class="pay-name data-v-0986fd70">支付宝支付</text>
<radio
checked="{{v}}"
class="data-v-0986fd70"
color="#FA5E29"
value="{{t}}"
></radio>
</label>
</radio-group>
</view>
<divider bind:__l="__l" class="data-v-0986fd70" uI="0986fd70-2"></divider>
<view class="pay-content data-v-0986fd70">
<view class="price data-v-0986fd70">
<view class="label data-v-0986fd70">实付:</view>
<view class="amount data-v-0986fd70">¥{{x}}</view>
</view>
<view
bindtap="{{y}}"
class="button data-v-0986fd70"
hoverClass="default-hover-class"
hoverStayTime="100"
>
确认购买
</view>
</view>
</view>

View File

@@ -0,0 +1,305 @@
.content.data-v-0986fd70 {
padding: 30rpx 30rpx 180rpx;
}
.content .title.data-v-0986fd70 {
border-bottom: 2rpx solid #f2f2f2;
color: #444;
font-size: 32rpx;
font-weight: 700;
padding-bottom: 30rpx;
}
.content .header.data-v-0986fd70 {
background-color: #fff;
border-radius: 10rpx;
display: -webkit-flex;
display: flex;
flex-direction: column;
padding: 30rpx;
}
.content .header .header-content.data-v-0986fd70 {
align-items: center;
border-bottom: 2rpx solid #f2f2f2;
display: -webkit-flex;
display: flex;
padding-bottom: 30rpx;
}
.content .header .header-content .car.data-v-0986fd70 {
height: 70rpx;
margin-right: 20rpx;
width: 152rpx;
}
.content .header .header-content .vehicle-number.data-v-0986fd70 {
height: 90rpx;
margin-right: 20rpx;
width: 90rpx;
}
.content .header .header-content .desc.data-v-0986fd70 {
align-items: center;
color: #333;
display: -webkit-flex;
display: flex;
font-size: 32rpx;
margin-left: 20rpx;
}
.content .header .header-content .vehicle-info.data-v-0986fd70 {
align-items: center;
display: -webkit-flex;
display: flex;
width: 100%;
}
.content .header .header-content .vehicle-info .logo.data-v-0986fd70 {
flex-shrink: 0;
height: 120rpx;
width: 120rpx;
}
.content .header .header-content .vehicle-info .right-content.data-v-0986fd70 {
margin-left: 30rpx;
}
.content
.header
.header-content
.vehicle-info
.right-content
.desc.data-v-0986fd70 {
font-size: 28rpx;
margin: 12rpx 0;
}
.content .header .tips-info.data-v-0986fd70 {
justify-content: space-between;
margin-top: 30rpx;
}
.content .header .tips-info .left-content.data-v-0986fd70,
.content .header .tips-info.data-v-0986fd70 {
align-items: center;
display: -webkit-flex;
display: flex;
}
.content .header .tips-info .left-content image.data-v-0986fd70 {
height: 40rpx;
width: 40rpx;
}
.content .header .tips-info .left-content text.data-v-0986fd70 {
font-size: 28rpx;
margin-left: 5rpx;
}
.content .header .tips-info .right-content.data-v-0986fd70 {
color: #9a9a9a;
font-size: 28rpx;
}
.content .wrap.data-v-0986fd70 {
background-color: #fff;
border-radius: 10rpx;
margin-top: 30rpx;
padding: 30rpx;
}
.content .wrap radio.data-v-0986fd70 {
flex-shrink: 0;
transform: scale(0.8);
}
.content .wrap .product-group label.data-v-0986fd70 {
align-items: center;
display: -webkit-flex;
display: flex;
justify-content: space-between;
margin: 25rpx 0;
width: 100%;
}
.content .wrap .product-group label .product.data-v-0986fd70 {
border: 1rpx solid #f2f2f2;
border-radius: 10rpx;
flex-grow: 1;
margin-right: 20rpx;
padding: 30rpx;
}
.content .wrap .product-group label .product.selected.data-v-0986fd70 {
background-color: rgba(250, 93, 41, 0.03);
border-color: #fa5e29;
}
.content .wrap .product-group label .product .top.data-v-0986fd70 {
align-items: center;
color: #333;
display: -webkit-flex;
display: flex;
font-size: 30rpx;
font-weight: 700;
justify-content: space-between;
}
.content
.wrap
.product-group
label
.product
.top
.product-name.data-v-0986fd70 {
align-items: center;
display: -webkit-flex;
display: flex;
position: relative;
}
.content
.wrap
.product-group
label
.product
.top
.product-name
.recommend.data-v-0986fd70 {
background-color: #21252c;
border-bottom-right-radius: 10rpx;
border-top-left-radius: 10rpx;
border-top-right-radius: 10rpx;
color: #dadbad;
font-size: 24rpx;
padding: 0 4rpx;
position: absolute;
right: -60rpx;
top: -10rpx;
}
.content
.wrap
.product-group
label
.product
.top
.product-price.data-v-0986fd70 {
align-items: center;
display: -webkit-flex;
display: flex;
}
.content
.wrap
.product-group
label
.product
.top
.product-price
.origin.data-v-0986fd70 {
color: #d71714;
font-size: 24rpx;
text-decoration: line-through;
}
.content .wrap .product-group label .product-desc.data-v-0986fd70 {
color: #5f5f5f;
font-size: 26rpx;
margin: 10rpx 0;
}
.content .wrap .pay-group.data-v-0986fd70 {
align-items: center;
display: -webkit-flex;
display: flex;
flex-direction: column;
font-size: 32rpx;
}
.content .wrap .pay-group label.data-v-0986fd70 {
align-items: center;
border-bottom: 2rpx solid #f2f2f2;
display: -webkit-flex;
display: flex;
justify-content: space-between;
padding: 40rpx 0;
width: 100%;
}
.content .wrap .pay-group label image.data-v-0986fd70 {
flex-shrink: 0;
height: 56rpx;
margin-left: 10rpx;
width: 56rpx;
}
.content .wrap .pay-group label text.data-v-0986fd70 {
flex-grow: 1;
font-size: 30rpx;
margin-left: 30rpx;
}
.content .wrap .notice.data-v-0986fd70 {
background-color: #fff;
border-radius: 10rpx;
color: #ff7b00;
font-size: 26rpx;
}
.content .wrap .tips.data-v-0986fd70 {
font-size: 28rpx;
line-height: 1.5;
padding: 20rpx 0;
}
.content .coupon.data-v-0986fd70 {
background-color: #fff;
border-radius: 10rpx;
height: 220rpx;
margin-top: 30rpx;
padding: 10rpx 30rpx;
}
.content .coupon .top.data-v-0986fd70 {
align-items: center;
display: -webkit-flex;
display: flex;
height: 60rpx;
}
.content .coupon .top image.data-v-0986fd70 {
height: 50rpx;
margin-right: 10rpx;
width: 50rpx;
}
.content .coupon .top text.data-v-0986fd70 {
color: #e83319;
font-size: 30rpx;
font-weight: 700;
}
.content .coupon-content.data-v-0986fd70 {
align-items: center;
background-color: rgba(250, 93, 41, 0.027);
border-radius: 10rpx;
display: -webkit-flex;
display: flex;
height: 110rpx;
justify-content: space-between;
margin-top: 10rpx;
padding: 0 30rpx;
position: relative;
}
.content .coupon-content .price.data-v-0986fd70 {
color: #fa5e29;
font-size: 40rpx;
font-weight: 700;
}
.content .pay-content.data-v-0986fd70 {
align-items: center;
background: #fff;
border-top: 1rpx solid #d2d2d2;
bottom: 0;
display: -webkit-flex;
display: flex;
height: 150rpx;
justify-content: space-between;
left: 0;
padding: 0 50rpx;
position: fixed;
width: 100%;
z-index: 99;
}
.content .pay-content .price.data-v-0986fd70 {
align-items: center;
display: -webkit-flex;
display: flex;
font-weight: 700;
}
.content .pay-content .price .label.data-v-0986fd70 {
font-size: 28rpx;
margin-top: 10rpx;
}
.content .pay-content .price .amount.data-v-0986fd70 {
color: #fa5e29;
font-size: 40rpx;
}
.content .pay-content .button.data-v-0986fd70 {
align-items: center;
background: linear-gradient(90deg, #fc8633, #fa5e29);
border-radius: 100rpx;
color: #fff;
display: -webkit-flex;
display: flex;
font-size: 30rpx;
font-weight: 700;
height: 65rpx;
justify-content: center;
width: 180rpx;
}