| @@ -175,7 +175,10 @@ export function createVideoApi(id) { | |||||
| return request({ | return request({ | ||||
| url: `/api/userVideo/createVideo`, | url: `/api/userVideo/createVideo`, | ||||
| method: 'post', | method: 'post', | ||||
| data: { id } | |||||
| data: { | |||||
| id, | |||||
| projectType: '2' | |||||
| } | |||||
| }) | }) | ||||
| } | } | ||||
| @@ -8,9 +8,49 @@ import request from "@/utils/request.js"; | |||||
| */ | */ | ||||
| export function packageInfoApi() { | export function packageInfoApi() { | ||||
| return request({ | return request({ | ||||
| url: `/api/user/getPackageInfo`, | |||||
| url: `/api/product/list_v1?type=2&projectType=2`, // /api/user/getPackageInfo | |||||
| method: 'get' | method: 'get' | ||||
| }) | }) | ||||
| } | } | ||||
| /** | |||||
| * @description 订单详情 | |||||
| * @params | |||||
| * @returns | |||||
| */ | |||||
| export function orderDetailApi(id) { | |||||
| return request({ | |||||
| url: `/api/productOrder/findByNumber?id=${id}`, | |||||
| method: 'get' | |||||
| }) | |||||
| } | |||||
| /** | |||||
| * @description 创建支付 | |||||
| * @params | |||||
| * @returns | |||||
| */ | |||||
| export function createPayApi(data) { | |||||
| return request({ | |||||
| url: `/api/productOrder/createPay`, | |||||
| method: 'post', | |||||
| data | |||||
| }) | |||||
| } | |||||
| /** | |||||
| * @description 创建支付 | |||||
| * @params | |||||
| * @returns | |||||
| */ | |||||
| export function findStatusApi(data) { | |||||
| return request({ | |||||
| url: `/api/productOrder/findStatus?orderNumber=${data.orderNumber}&payVendor=${data.payVendor}`, | |||||
| method: 'get' | |||||
| }) | |||||
| } | |||||
| @@ -73,7 +73,7 @@ | |||||
| </template> | </template> | ||||
| <el-menu-item-group> | <el-menu-item-group> | ||||
| <el-menu-item index="2-1" @click="router.push('/myRecharge')">充值订单</el-menu-item> | <el-menu-item index="2-1" @click="router.push('/myRecharge')">充值订单</el-menu-item> | ||||
| <el-menu-item index="2-2">扣币订单</el-menu-item> | |||||
| <el-menu-item index="2-2" @click="router.push('/coindeduc')">扣币订单</el-menu-item> | |||||
| </el-menu-item-group> | </el-menu-item-group> | ||||
| </el-sub-menu> | </el-sub-menu> | ||||
| </el-menu> | </el-menu> | ||||
| @@ -141,6 +141,17 @@ export const constantRoutes: RouteRecordRaw[] = [ | |||||
| name: "my.title", | name: "my.title", | ||||
| }, | }, | ||||
| }, | }, | ||||
| { | |||||
| path: "/coindeduc", | |||||
| component: () => import("@/views/my/coindeduc.vue"), | |||||
| name: "coindeduc", | |||||
| meta: { | |||||
| title: "coindeduc", | |||||
| icon: "homepage", | |||||
| affix: true, | |||||
| name: "my.title", | |||||
| }, | |||||
| }, | |||||
| ], | ], | ||||
| }, | }, | ||||
| { | { | ||||
| @@ -34,6 +34,7 @@ declare module '@vue/runtime-core' { | |||||
| ElSwitch: typeof import('element-plus/es')['ElSwitch'] | ElSwitch: typeof import('element-plus/es')['ElSwitch'] | ||||
| ElTable: typeof import('element-plus/es')['ElTable'] | ElTable: typeof import('element-plus/es')['ElTable'] | ||||
| ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] | ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] | ||||
| ElText: typeof import('element-plus/es')['ElText'] | |||||
| ElTooltip: typeof import('element-plus/es')['ElTooltip'] | ElTooltip: typeof import('element-plus/es')['ElTooltip'] | ||||
| ElUpload: typeof import('element-plus/es')['ElUpload'] | ElUpload: typeof import('element-plus/es')['ElUpload'] | ||||
| GithubCorner: typeof import('./../components/GithubCorner/index.vue')['default'] | GithubCorner: typeof import('./../components/GithubCorner/index.vue')['default'] | ||||
| @@ -1635,6 +1635,11 @@ async function createVideo() { | |||||
| ); | ); | ||||
| await saveOrUpdate("isCreate"); | await saveOrUpdate("isCreate"); | ||||
| const res2 = await createVideoApi(workId.value); | const res2 = await createVideoApi(workId.value); | ||||
| // 去充值 | |||||
| if (res2.code === '64001') { | |||||
| router.push("/myStore"); | |||||
| return | |||||
| } | |||||
| ElMessage.success( | ElMessage.success( | ||||
| lanChange.value == "zh-cn" | lanChange.value == "zh-cn" | ||||
| ? `视频生成中,请稍后!` | ? `视频生成中,请稍后!` | ||||
| @@ -0,0 +1,147 @@ | |||||
| <template> | |||||
| <div class="page justify-around"> | |||||
| <el-alert :title="`当前币值:${currentValue}`" type="success" :closable="false" /> | |||||
| <el-table :data="tableData" style="width: 100%; height: 90%" size="large" align="center" border> | |||||
| <el-table-column | |||||
| prop="title" | |||||
| label="名称" | |||||
| align="center" | |||||
| /> | |||||
| <el-table-column | |||||
| prop="address" | |||||
| label="图片" | |||||
| align="center" | |||||
| /> | |||||
| <el-table-column | |||||
| prop="createTime" | |||||
| label="创建时间" | |||||
| align="center" | |||||
| > | |||||
| <template #default="scope"> | |||||
| {{ getDate(scope.row.createTime) }} | |||||
| </template> | |||||
| </el-table-column> | |||||
| <el-table-column | |||||
| fixed="right" | |||||
| :label="$t('keyMangage.operations')" | |||||
| width="400" | |||||
| align="center" | |||||
| > | |||||
| <template #default="scope"> | |||||
| <el-button link type="primary" size="small">查看</el-button> | |||||
| </template> | |||||
| </el-table-column> | |||||
| </el-table> | |||||
| <div class="pagination"> | |||||
| <el-pagination | |||||
| v-model:current-page="pageNum" | |||||
| v-model:page-size="pageSize" | |||||
| :page-sizes="[10, 50, 100]" | |||||
| :small="false" | |||||
| :disabled="false" | |||||
| :background="true" | |||||
| layout="total, sizes, prev, pager, next, jumper" | |||||
| :total="total" | |||||
| @size-change="handleSizeChange" | |||||
| @current-change="handleCurrentChange" | |||||
| /> | |||||
| </div> | |||||
| <el-dialog v-model="dialogVisible" title="查看详情" width="40%" :before-close="handleClose" > | |||||
| <detail @close="handleClose"></detail> | |||||
| </el-dialog> | |||||
| </div> | |||||
| </template> | |||||
| <!-- videoType==1为竖,==2为横 --> | |||||
| <script setup> | |||||
| //#region 导入 | |||||
| import { rechargeListApi, getDetailApi, getUserPoinsApi, coindedApi } from '@/apis/my.js' | |||||
| import dayjs from "dayjs"; | |||||
| import detail from './detail.vue' | |||||
| const tableData = ref([]); | |||||
| const pageNum = ref(1); | |||||
| const pageSize = ref(10); | |||||
| const total = ref(0); | |||||
| const getDate = (val) => { | |||||
| return dayjs(val).format("YYYY-MM-DD"); | |||||
| }; | |||||
| const handleSizeChange = (val) => { | |||||
| pageSize.value = val; | |||||
| getListData(pageNum.value, pageSize.value); | |||||
| }; | |||||
| const handleCurrentChange = (val) => { | |||||
| pageNum.value = val; | |||||
| getListData(pageNum.value, pageSize.value); | |||||
| }; | |||||
| const getListData = async (PageNum, PageSize) => { | |||||
| try { | |||||
| let data = { | |||||
| projectType: 1, | |||||
| pageNum: 1, | |||||
| pageSize: 10 | |||||
| } | |||||
| const res = await rechargeListApi(data); | |||||
| tableData.value = res.data.list; | |||||
| total.value = res.data.total * 1; | |||||
| } catch (error) { | |||||
| console.log(error, "err"); | |||||
| } | |||||
| }; | |||||
| // 当前币值 | |||||
| const currentValue = ref('') | |||||
| function currentValFn() { | |||||
| getUserPoinsApi().then(res => { | |||||
| currentValue.value = res.data | |||||
| }) | |||||
| } | |||||
| // 查看详情 | |||||
| const dialogVisible = ref(false) | |||||
| onMounted(() => { | |||||
| getListData(1, 10); | |||||
| currentValFn() | |||||
| }); | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .page { | |||||
| height: calc(100vh - 80px); | |||||
| // height: calc(100vh - 80px); | |||||
| background-color: #ffffff; | |||||
| border-radius: 30px 0 0 0; | |||||
| overflow: hidden; | |||||
| padding: 10vh; | |||||
| .addbtn { | |||||
| margin-bottom: 2vh; | |||||
| } | |||||
| .formData { | |||||
| padding: 5vh 3vh; | |||||
| } | |||||
| .pagination { | |||||
| position: fixed; | |||||
| left: 55%; | |||||
| bottom: 8vh; | |||||
| transform: translateX(-50%); | |||||
| border-radius: 5px; | |||||
| padding: 10px 20px; | |||||
| z-index: 99; | |||||
| transition: all 0.3s; | |||||
| cursor: pointer; | |||||
| &:hover { | |||||
| background-color: #b8b8b873; | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,11 @@ | |||||
| <!-- | |||||
| * @Autor: Chutingting | |||||
| * @Date: 2023-11-09 10:24:45 | |||||
| * @LastEditors: Chutingting | |||||
| * @LastEditTime: 2023-11-09 15:13:05 | |||||
| * @Description: | |||||
| --> | |||||
| <template> | |||||
| <div></div> | |||||
| </template> | |||||
| <script setup></script> | |||||
| @@ -85,7 +85,7 @@ const handleCurrentChange = (val) => { | |||||
| const getListData = async (PageNum, PageSize) => { | const getListData = async (PageNum, PageSize) => { | ||||
| try { | try { | ||||
| let data = { | let data = { | ||||
| projectType: '', | |||||
| projectType: 1, | |||||
| pageNum: 1, | pageNum: 1, | ||||
| pageSize: 10 | pageSize: 10 | ||||
| } | } | ||||
| @@ -3,30 +3,34 @@ | |||||
| <div class="commoditylIst" ref="scrollContainerRef" @wheel="handleWheel"> | <div class="commoditylIst" ref="scrollContainerRef" @wheel="handleWheel"> | ||||
| <div class="item" v-for="item in packageList" :key="item.typeDesc"> | <div class="item" v-for="item in packageList" :key="item.typeDesc"> | ||||
| <!-- 遮罩层 --> | <!-- 遮罩层 --> | ||||
| <div class="mask" v-if="item.type != 1"> | |||||
| <!-- <div class="mask" v-if="item.type != 1"> | |||||
| <el-icon><i-ep-Lock /></el-icon> | <el-icon><i-ep-Lock /></el-icon> | ||||
| </div> | |||||
| <div @click="clickPayDialog(item)" v-if="item.typeDesc"> | |||||
| </div> --> | |||||
| <!-- clickPayDialog(item) --> | |||||
| <div @click="getOrderDetail(item)"> | |||||
| <div class="line" :style="`background-color:${item.color} ;`"></div> | <div class="line" :style="`background-color:${item.color} ;`"></div> | ||||
| <div class="info"> | <div class="info"> | ||||
| <!-- 商品信息 --> | <!-- 商品信息 --> | ||||
| <div class="content"> | <div class="content"> | ||||
| <div class="titleBox"> | <div class="titleBox"> | ||||
| <div class="title"> | <div class="title"> | ||||
| {{ lanChange == "zh-cn" ? item.typeDesc : item.englishName }} | |||||
| {{ item.title }} | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="money"> | <div class="money"> | ||||
| <span class="price">{{ | <span class="price">{{ | ||||
| lanChange == "zh-cn" ? item.rmb + "¥" : item.dollar + "$" | |||||
| }}</span | |||||
| >/{{ item.validityDuration }}{{ $t("shop.day") }} | |||||
| item.sellPriceRmb | |||||
| }} ¥</span | |||||
| >/ <span style="text-decoration:line-through;">原价{{ item.priceRmb }}</span> | |||||
| </div> | </div> | ||||
| <div class="time"> | <div class="time"> | ||||
| <span>{{ item.credit }}</span | |||||
| >{{ $t("shop.score") }} | |||||
| 币值<span>{{ item.glod }}</span | |||||
| > | |||||
| </div> | </div> | ||||
| <div | |||||
| <div class="button" :style="`background-color: #f3af00 ;`"> | |||||
| 方案选择 | |||||
| </div> | |||||
| <!-- <div | |||||
| v-if="item.type != 1" | v-if="item.type != 1" | ||||
| class="button" | class="button" | ||||
| :style="`background-color:${item.color} ;`" | :style="`background-color:${item.color} ;`" | ||||
| @@ -39,11 +43,12 @@ | |||||
| :style="`background-color:${item.color} ;`" | :style="`background-color:${item.color} ;`" | ||||
| > | > | ||||
| {{ $t("shop.selectPlan") }} | {{ $t("shop.selectPlan") }} | ||||
| </div> | |||||
| </div> --> | |||||
| </div> | </div> | ||||
| <!-- 商品权益 --> | <!-- 商品权益 --> | ||||
| <div class="authority"> | <div class="authority"> | ||||
| <div class="authority-item"> | |||||
| <div v-html="item.detail"></div> | |||||
| <!-- <div class="authority-item"> | |||||
| {{ $t("shop.InviteGetscore") }}: | {{ $t("shop.InviteGetscore") }}: | ||||
| <span> | <span> | ||||
| @@ -68,9 +73,9 @@ | |||||
| ><i>{{ item.chargeTime }}</i | ><i>{{ item.chargeTime }}</i | ||||
| >{{ $t("shop.second") }}</span | >{{ $t("shop.second") }}</span | ||||
| > | > | ||||
| </div> | |||||
| </div> --> | |||||
| <div class="authority-item"> | |||||
| <!-- <div class="authority-item"> | |||||
| {{ $t("shop.Language") }}:<span | {{ $t("shop.Language") }}:<span | ||||
| ><i>{{ item.userPackageDetails[0].languageDesc }}</i></span | ><i>{{ item.userPackageDetails[0].languageDesc }}</i></span | ||||
| > | > | ||||
| @@ -116,7 +121,7 @@ | |||||
| {{ $t("shop.VideoResolution") }}:<span>{{ | {{ $t("shop.VideoResolution") }}:<span>{{ | ||||
| item.userPackageDetails[0].resolutionRatioDesc | item.userPackageDetails[0].resolutionRatioDesc | ||||
| }}</span> | }}</span> | ||||
| </div> | |||||
| </div> --> | |||||
| <!-- <div class="authority-item"> | <!-- <div class="authority-item"> | ||||
| {{ $t("shop.DigitalPersonTemplate") }}:{{ | {{ $t("shop.DigitalPersonTemplate") }}:{{ | ||||
| item.userPackageDetails[0].humanTemplateDesc | item.userPackageDetails[0].humanTemplateDesc | ||||
| @@ -358,6 +363,7 @@ import { useI18n } from "vue-i18n"; | |||||
| import talkUs from "@/components/talkUs.vue"; | import talkUs from "@/components/talkUs.vue"; | ||||
| import { useRoute, useRouter } from "vue-router"; | import { useRoute, useRouter } from "vue-router"; | ||||
| import { createOrderApi, createPayApi, getOrderStatusApi } from "@/apis/pay"; | import { createOrderApi, createPayApi, getOrderStatusApi } from "@/apis/pay"; | ||||
| import { orderDetailApi } from '@/apis/myStore.js' | |||||
| const route = useRoute(); | const route = useRoute(); | ||||
| const router = useRouter(); | const router = useRouter(); | ||||
| @@ -754,6 +760,13 @@ function RefreshQR() { | |||||
| //#region | //#region | ||||
| //#endregion ------------------------------------ | //#endregion ------------------------------------ | ||||
| // 获取订单详情 | |||||
| function getOrderDetail(item) { | |||||
| orderDetailApi(item.id).then(res => { | |||||
| }) | |||||
| } | |||||
| </script> | </script> | ||||
| <style lang="scss" scoped> | <style lang="scss" scoped> | ||||