feat: 增加详情接口
This commit is contained in:
parent
7362cb9d18
commit
fb88961c02
|
@ -60,7 +60,6 @@
|
|||
.goods-info-box > img {
|
||||
width: 0.64rem;
|
||||
height: 0.64rem;
|
||||
outline: 1px solid red;
|
||||
}
|
||||
|
||||
.goods-info-box .name {
|
||||
|
|
99
detail.html
99
detail.html
|
@ -25,26 +25,27 @@
|
|||
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/common/axios.js?v=1367936144999"></script>
|
||||
<script src="./dof-api.js"></script>
|
||||
<script src="https://lsxdemall.oss-cn-beijing.aliyuncs.com/MarketingSystem/libs/vue.global.js"></script>
|
||||
<link rel="stylesheet" href="https://gw.alipayobjects.com/as/g/antui/antui/10.1.10/rem/widget/toast.css">
|
||||
<link rel="stylesheet" href="./detail-style.css">
|
||||
<link rel="stylesheet" href="./style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app">
|
||||
<div class="header">
|
||||
<div class="header" v-if="state.showPage">
|
||||
<img src="https://lsxd-customcard-h5.oss-cn-hangzhou.aliyuncs.com/department-of-finance/img/detail-bg.png"
|
||||
alt="">
|
||||
|
||||
<div class="detail-box">
|
||||
<p class="order-status">充值成功</p>
|
||||
<p class="order-status">{{ orderState(state.order.state) }}</p>
|
||||
<div class="goods-info">
|
||||
<p class="goods-title">商品信息</p>
|
||||
|
||||
<div class="goods-info-box">
|
||||
<img src="" alt="">
|
||||
<img :src="state.product.icon" alt="">
|
||||
<div style="padding-left: 0.09rem;">
|
||||
<p class="name">爱奇艺黄金VIP会员月卡</p>
|
||||
<p class="type">VIP会员 1个月</p>
|
||||
<p class="name">{{ sliceStr(state.order.prize_name)[0] }}</p>
|
||||
<p class="type">{{ sliceStr(state.order.prize_name)[1] }}</p>
|
||||
</div>
|
||||
<p class="num">x1</p>
|
||||
</div>
|
||||
|
@ -56,33 +57,109 @@
|
|||
|
||||
<div class="order-list">
|
||||
<span>订单编号</span>
|
||||
<span>20249990000999909</span>
|
||||
<span>{{ state.order.order_no }}</span>
|
||||
</div>
|
||||
|
||||
<div class="order-list">
|
||||
<span>充值账号</span>
|
||||
<span>13556666999</span>
|
||||
<span>{{ state.order.mobile }}</span>
|
||||
</div>
|
||||
|
||||
<div class="order-list">
|
||||
<span>充值时间</span>
|
||||
<span>2024-05-29 09:37</span>
|
||||
<span>{{ state.order.create_time }}</span>
|
||||
</div>
|
||||
|
||||
<div class="order-list">
|
||||
<span>充值状态</span>
|
||||
<span>充值成功</span>
|
||||
<span>{{ orderState(state.order.state) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="am-toast text" v-show="state.showToast">
|
||||
<div class="am-toast-text">
|
||||
{{ state.toastText }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
const { createApp, ref } = Vue
|
||||
const { createApp, reactive, onMounted } = Vue
|
||||
createApp({
|
||||
setup() { }
|
||||
setup() {
|
||||
|
||||
const state = reactive({
|
||||
showToast: false,
|
||||
toastText: "",
|
||||
product: {},
|
||||
order: {},
|
||||
showPage: false
|
||||
})
|
||||
|
||||
// 状态
|
||||
const orderState = (status) => {
|
||||
switch (status) {
|
||||
case 1:
|
||||
return "兑换中";
|
||||
case 2:
|
||||
return "已兑换"
|
||||
case 3:
|
||||
return "兑换失败"
|
||||
case 4:
|
||||
return "充值异常"
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
const sliceStr = (str) => {
|
||||
if (str) {
|
||||
return str.split("|")
|
||||
}
|
||||
return []
|
||||
}
|
||||
|
||||
// toast
|
||||
const openToast = (msg) => {
|
||||
if (state.showToast) return;
|
||||
state.toastText = msg;
|
||||
state.showToast = true;
|
||||
setTimeout(() => {
|
||||
state.showToast = false;
|
||||
}, 1500);
|
||||
};
|
||||
|
||||
// 获取订单详情
|
||||
const getOrderDetail = () => {
|
||||
try {
|
||||
req.axiosGet("/front/order/list").then(res => {
|
||||
if (res.code === 200) {
|
||||
state.product = res.data.data[0].product;
|
||||
state.order = res.data.data[0];
|
||||
state.showPage = true;
|
||||
} else {
|
||||
openToast(res.message);
|
||||
}
|
||||
})
|
||||
} catch (err) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
|
||||
getOrderDetail();
|
||||
})
|
||||
|
||||
return {
|
||||
orderState,
|
||||
state,
|
||||
sliceStr
|
||||
}
|
||||
}
|
||||
}).mount('#app')
|
||||
</script>
|
||||
|
||||
|
|
|
@ -204,3 +204,7 @@
|
|||
.ok-btn {
|
||||
background: linear-gradient(180deg, #88def0 0%, #69b5d8 100%);
|
||||
}
|
||||
|
||||
.grayscale-image {
|
||||
filter: grayscale(100%);
|
||||
}
|
||||
|
|
55
index.html
55
index.html
|
@ -40,16 +40,17 @@
|
|||
<h2 class="goods-title">兑换商品列表</h2>
|
||||
|
||||
<div class="goods-main">
|
||||
|
||||
<div class="goods-info" v-for="item in state.goodsList" :key="item.id">
|
||||
<img :src="item.icon" alt="">
|
||||
<img :src="item.icon" alt=""
|
||||
:class="state.isExchange !== -1 && state.isExchange !== item.id ? 'grayscale-image' : ''">
|
||||
<div class="goods-info-text">
|
||||
<p class="goods-name">{{ sliceStr(item.name)[0] }}</p>
|
||||
<p class="goods-type">{{ sliceStr(item.name)[1] }}</p>
|
||||
</div>
|
||||
|
||||
<div class="goods-checked" :style="`border-color: ${selectColor(item.name)};`"
|
||||
@click="selectGoods(item.id)">
|
||||
<div class="goods-checked"
|
||||
v-show="state.isExchange !== -1 && state.isExchange !== item.id ? false : true"
|
||||
:style="`border-color: ${selectColor(item.name)};`" @click="selectGoods(item.id)">
|
||||
<svg v-show="state.isChecked === item.id" xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="11"
|
||||
height="8" viewBox="0 0 11 8">
|
||||
|
@ -65,8 +66,8 @@
|
|||
|
||||
</div>
|
||||
|
||||
<div class="goods-btn">
|
||||
立即兑换
|
||||
<div class="goods-btn" @click="exchangeBtn()">
|
||||
{{ state.isExchange === -1 ? '立即兑换' : '查询详情' }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@ -120,7 +121,9 @@
|
|||
showToast: false,
|
||||
toastText: "",
|
||||
goodsList: [],
|
||||
isChecked: -1
|
||||
isChecked: -1,
|
||||
isExchange: -1,
|
||||
userPhone: ""
|
||||
})
|
||||
|
||||
// toast
|
||||
|
@ -143,6 +146,7 @@
|
|||
|
||||
// 选中颜色
|
||||
const selectGoods = (id) => {
|
||||
if (state.isExchange !== -1) return
|
||||
state.isChecked = id;
|
||||
}
|
||||
|
||||
|
@ -196,11 +200,9 @@
|
|||
// 获取用户信息
|
||||
const getUserInfo = () => {
|
||||
try {
|
||||
req.axiosGet("/front/getAccountInfo", {
|
||||
token: state.token
|
||||
}).then(res => {
|
||||
req.axiosGet("/front/getAccountInfo").then(res => {
|
||||
if (res.code === 200) {
|
||||
state.showPage = true;
|
||||
state.userPhone = res.data.phone;
|
||||
} else {
|
||||
openToast(res.message);
|
||||
}
|
||||
|
@ -220,6 +222,7 @@
|
|||
let el = res.data.prizes.find(item => item.is_receive === 1);
|
||||
if (el) {
|
||||
state.isChecked = el.id;
|
||||
state.isExchange = el.id;
|
||||
}
|
||||
} else {
|
||||
openToast(res.message);
|
||||
|
@ -230,6 +233,31 @@
|
|||
}
|
||||
}
|
||||
|
||||
// 兑换
|
||||
const exchangeBtn = () => {
|
||||
// 判断是否被选中
|
||||
if (state.isExchange !== -1) {
|
||||
console.log("去详情")
|
||||
window.location.href = "./detail.html";
|
||||
} else {
|
||||
if (state.isChecked !== -1) {
|
||||
|
||||
state.showPop = true;
|
||||
return
|
||||
|
||||
req.axiosPost("/front/order/create", { prize_id: state.isChecked }).then(res => {
|
||||
if (res.code === 200) {
|
||||
|
||||
} else {
|
||||
openToast(res.message);
|
||||
}
|
||||
})
|
||||
} else {
|
||||
openToast("请选择兑换商品");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
const url = new URL(window.location.href);
|
||||
const searchParams = new URLSearchParams(url.search);
|
||||
|
@ -240,15 +268,16 @@
|
|||
|
||||
state.showPage = true;
|
||||
getGoodsList();
|
||||
return
|
||||
getUserInfo();
|
||||
|
||||
return
|
||||
} else {
|
||||
openToast("未登录");
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
exchangeBtn,
|
||||
selectGoods,
|
||||
selectColor,
|
||||
sliceStr,
|
||||
state
|
||||
|
|
|
@ -4,3 +4,12 @@ https://lsxd-customcard-h5.oss-cn-hangzhou.aliyuncs.com/department-of-finance/im
|
|||
https://lsxd-customcard-h5.oss-cn-hangzhou.aliyuncs.com/department-of-finance/img/ele-box-icon.png 饿了么
|
||||
https://lsxd-customcard-h5.oss-cn-hangzhou.aliyuncs.com/department-of-finance/img/aqy-box-icon.png 爱奇艺
|
||||
https://lsxd-customcard-h5.oss-cn-hangzhou.aliyuncs.com/department-of-finance/img/wyy-box-icon.png 网易云
|
||||
|
||||
|
||||
logo
|
||||
https://lsxd-customcard-h5.oss-cn-hangzhou.aliyuncs.com/department-of-finance/logo/aiqiyi.png 爱奇艺
|
||||
https://lsxd-customcard-h5.oss-cn-hangzhou.aliyuncs.com/department-of-finance/logo/eleme.png 饿了么
|
||||
https://lsxd-customcard-h5.oss-cn-hangzhou.aliyuncs.com/department-of-finance/logo/keep.png keep
|
||||
https://lsxd-customcard-h5.oss-cn-hangzhou.aliyuncs.com/department-of-finance/logo/qju.png 青橘
|
||||
https://lsxd-customcard-h5.oss-cn-hangzhou.aliyuncs.com/department-of-finance/logo/txsp.png 腾讯视频
|
||||
https://lsxd-customcard-h5.oss-cn-hangzhou.aliyuncs.com/department-of-finance/logo/wyy.png 网易云
|
Loading…
Reference in New Issue