修复支付成功页面的课程不匹配的问题
This commit is contained in:
parent
4cd7abfc9c
commit
b9e009e945
@ -92,4 +92,8 @@ export const xkxkbmInfoApi = async (params: any) => {
|
||||
|
||||
export const xkqddeleteApi = async (params: any) => {
|
||||
return await post("/api/xkqd/delete?ids=" + params.ids);
|
||||
};
|
||||
};
|
||||
|
||||
export const xkkclxFindAllApi = async () => {
|
||||
return await get("/api/xkkclx/findByXkkclx");
|
||||
};
|
||||
|
||||
121
src/pages/base/components/XkPaySuccessXkkc/index.vue
Normal file
121
src/pages/base/components/XkPaySuccessXkkc/index.vue
Normal file
@ -0,0 +1,121 @@
|
||||
<template>
|
||||
<view class="xkqd-list">
|
||||
<!-- 课程信息卡片 -->
|
||||
<view class="info-card" v-for="(xkkc, index) in xkkcList" :key="index">
|
||||
<view class="card-title">课程信息</view>
|
||||
<view class="divider"></view>
|
||||
|
||||
<view class="course-info">
|
||||
<image
|
||||
class="course-image"
|
||||
:src="xkkc.lxtp ? imagUrl(xkkc.lxtp) : '/static/base/home/11222.png'"
|
||||
mode="aspectFill"
|
||||
></image>
|
||||
<view class="course-details">
|
||||
<view class="course-name">{{ xkkc.kcmc }}</view>
|
||||
<view class="course-teacher">开课老师:{{ xkkc.jsName }}</view>
|
||||
<view class="course-location">上课地点:{{ xkkc.kcdd }}</view>
|
||||
<view class="course-price"
|
||||
>金额:<text class="price-value">¥{{ xkkc.kcje }}</text></view
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { imagUrl } from "@/utils";
|
||||
import { useCommonStore } from "@/store/modules/common";
|
||||
const { getAllXkkcLx } = useCommonStore();
|
||||
|
||||
// 接收外部传入属性
|
||||
const props = defineProps<{
|
||||
xk: any
|
||||
}>();
|
||||
|
||||
const xkkcLxList = ref<any>([]);
|
||||
|
||||
// 课程信息
|
||||
const xkkcList = computed(() => {
|
||||
const xk = props.xk || {};
|
||||
const xkkcs = xk.xkkcs || [];
|
||||
return xkkcs.map((xkkc:any) => {
|
||||
const lx = xkkcLxList.value.find((item: any) => item.id === xkkc.lxId) || {};
|
||||
return {
|
||||
...xkkc,
|
||||
lxtp: lx.lxtp || '',
|
||||
lxmc: lx.lxmc || ''
|
||||
};
|
||||
});
|
||||
});
|
||||
|
||||
onMounted(async () => {
|
||||
const res = await getAllXkkcLx();
|
||||
xkkcLxList.value = res.result;
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.info-card {
|
||||
margin: 15px;
|
||||
background-color: #fff;
|
||||
border-radius: 8px;
|
||||
padding: 15px;
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
|
||||
|
||||
.card-title {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.divider {
|
||||
height: 1px;
|
||||
background-color: #eee;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.course-info {
|
||||
display: flex;
|
||||
|
||||
.course-image {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
border-radius: 8px;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.course-details {
|
||||
flex: 1;
|
||||
|
||||
.course-name {
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.course-teacher,
|
||||
.course-location {
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.course-price {
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
|
||||
.price-value {
|
||||
color: #ff6b00;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@ -21,7 +21,7 @@
|
||||
<XkPayXs />
|
||||
|
||||
<!-- 课程信息卡片 -->
|
||||
<XkPayXkqd />
|
||||
<XkPaySuccessXkkc :xk="xk" />
|
||||
|
||||
</view>
|
||||
<template #bottom>
|
||||
@ -40,17 +40,37 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { onLoad } from "@dcloudio/uni-app";
|
||||
import XkPayXs from "@/pages/base/components/XkPayXs/index.vue"
|
||||
import XkPayXkqd from "@/pages/base/components/XkPayXkqd/index.vue"
|
||||
import XkPaySuccessXkkc from "@/pages/base/components/XkPaySuccessXkkc/index.vue"
|
||||
import { xsYxListApi } from "@/api/base/xkApi";
|
||||
import { useUserStore } from "@/store/modules/user";
|
||||
import { useDataStore } from "@/store/modules/data";
|
||||
|
||||
const { getCurXs } = useUserStore();
|
||||
const { setData } = useDataStore();
|
||||
|
||||
const xk = ref<any>({});
|
||||
|
||||
// 返回上一页
|
||||
const goBack = () => {
|
||||
uni.navigateBack();
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
// 实际应用中,应从页面参数或缓存获取课程和学生信息
|
||||
const loadYxXkList = async (xklxId:string) => {
|
||||
const res = await xsYxListApi({
|
||||
xsId: getCurXs.id,
|
||||
njmcId: getCurXs.njmcId,
|
||||
xklxId: xklxId,
|
||||
});
|
||||
const xkList = res.result || [];
|
||||
xk.value = xkList[0] || {};
|
||||
};
|
||||
|
||||
onLoad((options:any) => {
|
||||
loadYxXkList(options.xklxId);
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@ -157,7 +157,7 @@ const submit = async () => {
|
||||
} else {
|
||||
// 不需要支付,直接跳转到支付成功页面
|
||||
uni.navigateTo({
|
||||
url: "/pages/base/xk/pay/success",
|
||||
url: "/pages/base/xk/pay/success?xklxId=816059832",
|
||||
});
|
||||
}
|
||||
} else {
|
||||
|
||||
@ -42,7 +42,7 @@ import { useDataStore } from "@/store/modules/data";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
const { getCurXs, getUser } = useUserStore();
|
||||
const { setData, getData } = useDataStore();
|
||||
const { setData, getData, setParams } = useDataStore();
|
||||
const { sign_file } = getData;
|
||||
|
||||
const curXs = computed(() => getCurXs);
|
||||
@ -157,7 +157,7 @@ const submit = async () => {
|
||||
} else {
|
||||
// 不需要支付,直接跳转到支付成功页面
|
||||
uni.navigateTo({
|
||||
url: "/pages/base/xk/pay/success",
|
||||
url: "/pages/base/xk/pay/success?xklxId=962488654",
|
||||
});
|
||||
}
|
||||
} else {
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { defineStore } from "pinia";
|
||||
import { jsFindByIdApi } from "@/api/base/jsApi";
|
||||
import { xkkclxFindAllApi } from "@/api/base/xkApi";
|
||||
|
||||
interface CommonState {
|
||||
data: any;
|
||||
@ -28,6 +29,12 @@ export const useCommonStore = defineStore({
|
||||
}
|
||||
return Promise.resolve(this.data.js[params.id]);
|
||||
},
|
||||
async getAllXkkcLx() : Promise<any> {
|
||||
if (!this.data.xkkcLx) {
|
||||
this.data.xkkcLx = await xkkclxFindAllApi();
|
||||
}
|
||||
return Promise.resolve(this.data.xkkcLx);
|
||||
},
|
||||
},
|
||||
persist: {
|
||||
enabled: true,
|
||||
|
||||
@ -8,6 +8,7 @@ export const useDataStore = defineStore({
|
||||
jcBzData: {},
|
||||
global: {},
|
||||
file: {},
|
||||
params: {},
|
||||
appCode: "JZ"
|
||||
}),
|
||||
getters: {
|
||||
@ -26,6 +27,9 @@ export const useDataStore = defineStore({
|
||||
getJcBzData(): any {
|
||||
return this.jcBzData;
|
||||
},
|
||||
getParams(): any {
|
||||
return this.params;
|
||||
},
|
||||
getAppCode(): string {
|
||||
return this.appCode;
|
||||
},
|
||||
@ -46,6 +50,9 @@ export const useDataStore = defineStore({
|
||||
setJcBzData(data: any) {
|
||||
this.jcBzData = data;
|
||||
},
|
||||
setParams(data: any) {
|
||||
this.params = data;
|
||||
},
|
||||
},
|
||||
persist: {
|
||||
enabled: true,
|
||||
|
||||
@ -345,7 +345,7 @@ export const useUserStore = defineStore({
|
||||
return;
|
||||
case 3: // 已支付 - 跳转到详情页
|
||||
uni.reLaunch({
|
||||
url: "/pages/base/xk/pay/success",
|
||||
url: "/pages/base/xk/pay/success?xklxId=962488654",
|
||||
});
|
||||
return;
|
||||
default:
|
||||
@ -428,7 +428,7 @@ export const useUserStore = defineStore({
|
||||
return;
|
||||
case 3: // 已支付 - 跳转到详情页
|
||||
uni.reLaunch({
|
||||
url: "/pages/base/xk/pay/success",
|
||||
url: "/pages/base/xk/pay/success?xklxId=816059832",
|
||||
});
|
||||
return;
|
||||
default:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user