Kaynağa Gözat

增加我的

dev
chutingting 1 yıl önce
ebeveyn
işleme
7357522f0d
10 değiştirilmiş dosya ile 281 ekleme ve 59 silme
  1. +4
    -2
      src/apis/createVideo.js
  2. +37
    -3
      src/apis/my.js
  3. +10
    -4
      src/layout/index.vue
  4. +5
    -5
      src/router/index.ts
  5. +1
    -0
      src/types/components.d.ts
  6. +5
    -1
      src/views/createVideo/index.vue
  7. +0
    -0
      src/views/my/detail.vue
  8. +0
    -43
      src/views/my/index.vue
  9. +147
    -0
      src/views/my/recharge.vue
  10. +72
    -1
      yarn.lock

+ 4
- 2
src/apis/createVideo.js Dosyayı Görüntüle

@@ -7,8 +7,9 @@ import request from "@/utils/request.js";
* @returns data
*/
export function modeListApi(sex, pageNum, pageSize, videoType) {
let api = localStorage.getItem("AccessToken") ? '/api/personPatch/loginList' : '/api/personPatch/list'
return request({
url: `/api/personPatch/list?sex=${sex}&pageNum=${pageNum}&pageSize=${pageSize}&videoType=${videoType}`,
url: `${api}?sex=${sex}&pageNum=${pageNum}&pageSize=${pageSize}&videoType=${videoType}`,
method: 'get'
})
}
@@ -19,8 +20,9 @@ export function modeListApi(sex, pageNum, pageSize, videoType) {
* @returns data
*/
export function voiceTotalApi() {
let api = localStorage.getItem("AccessToken") ? '/api/voiceMould/loginVoiceTotal' : '/api/voiceMould/voiceTotal'
return request({
url: `api/voiceMould/voiceTotal`,
url: api,
method: 'GET',
})
}


+ 37
- 3
src/apis/my.js Dosyayı Görüntüle

@@ -2,15 +2,49 @@ import request from "@/utils/request.js";


/**
* @description 获取我的列表
* @description 充值订单
* @params
* @returns
*/
export function getData() {
export function rechargeListApi(data) {
return request({
url: ``,
url: `/api/productOrder/myPaiedOrders?projectType=${data.projectType}&pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
method: 'get'
})
}

/**
* @description 获取详情
* @params
* @returns
*/
export function getDetailApi(id) {
return request({
url: `/api/userVideo/findById?id=${id}`,
method: 'get'
})
}

/**
* @description 扣币详情
* @params
* @returns
*/
export function coindedApi(data) {
return request({
url: `/api/userVideo/list?videoStatus=2&pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
method: 'get'
})
}

/**
* @description 当前币值
* @params
* @returns
*/
export function getUserPoinsApi() {
return request({
url: `/api/user/getUserPoins`,
method: 'get'
})
}

+ 10
- 4
src/layout/index.vue Dosyayı Görüntüle

@@ -66,10 +66,16 @@
<el-menu-item index="1-2">{{ $t("cooperate.privatization.title") }} </el-menu-item>
</el-menu-item-group>
</el-sub-menu>
<el-menu-item index="2" @click="router.push('/my')">
<el-icon><icon-menu /></el-icon>
<span>我的</span>
</el-menu-item>
<el-sub-menu index="2">
<template #title>
<el-icon><location /></el-icon>
<span>我的</span>
</template>
<el-menu-item-group>
<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-group>
</el-sub-menu>
</el-menu>
</div>
</div>


+ 5
- 5
src/router/index.ts Dosyayı Görüntüle

@@ -128,14 +128,14 @@ export const constantRoutes: RouteRecordRaw[] = [
},{
path: "/",
component: Layout,
redirect: "/my",
redirect: "/myRecharge",
children: [
{
path: "my",
component: () => import("@/views/my/index.vue"),
name: "my",
path: "/myRecharge",
component: () => import("@/views/my/recharge.vue"),
name: "myRecharge",
meta: {
title: "my",
title: "myRecharge",
icon: "homepage",
affix: true,
name: "my.title",


+ 1
- 0
src/types/components.d.ts Dosyayı Görüntüle

@@ -13,6 +13,7 @@ declare module '@vue/runtime-core' {
CutImg1: typeof import('./../components/cutImg1.vue')['default']
EditPosition: typeof import('./../components/EditPosition.vue')['default']
'EditPosition copy': typeof import('./../components/EditPosition copy.vue')['default']
ElAlert: typeof import('element-plus/es')['ElAlert']
ElButton: typeof import('element-plus/es')['ElButton']
ElDialog: typeof import('element-plus/es')['ElDialog']
ElDropdown: typeof import('element-plus/es')['ElDropdown']


+ 5
- 1
src/views/createVideo/index.vue Dosyayı Görüntüle

@@ -294,7 +294,7 @@
@click="clickModelItem(item)"
>
<img class="boxCentreImg" :src="item.coverImg" alt="" />
<div class="subscript">定制分身</div>
<div v-if="item.customized === 1" class="subscript">定制分身</div>
</div>
</div>
</div>
@@ -797,6 +797,10 @@ const modelId = ref(null); // 选中模版的id
async function getModeList(sex, pageNum, pageSize, videoType) {
try {
const res = await modeListApi(sex, pageNum, pageSize, videoType);
// 排序 定制分身在前
res.data.list.sort(function(a, b){
return a.customized > b.customized ? 1 : -1
})
modeList.value = res.data.list;
overLoadModel.value = false;
} catch (error) {


+ 0
- 0
src/views/my/detail.vue Dosyayı Görüntüle


+ 0
- 43
src/views/my/index.vue Dosyayı Görüntüle

@@ -1,43 +0,0 @@
<template>
<el-table :data="tableData" stripe style="width: 100%">
<el-table-column prop="date" label="我的充值订单" width="180" />
<el-table-column prop="name" label="扣币订单" width="180" />
<el-table-column prop="address" label="当前币值" />
</el-table>
</template>
<script lang="ts" setup>
import { getData } from "@/apis/my";
const tableData = [
{
date: '2016-05-03',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles',
},
{
date: '2016-05-02',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles',
},
{
date: '2016-05-04',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles',
},
{
date: '2016-05-01',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles',
},
]
const packageList = ref([]);
async function getPackageList() {
const res = await getData();
packageList.value = res.data;
}
onMounted(async () => {
getPackageList();
// createOrderFunc();
});

</script>

+ 147
- 0
src/views/my/recharge.vue Dosyayı Görüntüle

@@ -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: '',
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>

+ 72
- 1
yarn.lock Dosyayı Görüntüle

@@ -2200,6 +2200,13 @@ decode-uri-component@^0.2.0:
resolved "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz"
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==

decompress-response@^6.0.0:
version "6.0.0"
resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz"
integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
dependencies:
mimic-response "^3.1.0"

dedent@0.7.0:
version "0.7.0"
resolved "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz"
@@ -3131,6 +3138,17 @@ glob@^7.1.3, glob@7.2.3:
once "^1.3.0"
path-is-absolute "^1.0.0"

glob@^8.0.1:
version "8.1.0"
resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz"
integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^5.0.1"
once "^1.3.0"

global-dirs@^0.1.1:
version "0.1.1"
resolved "https://registry.npmmirror.com/global-dirs/-/global-dirs-0.1.1.tgz"
@@ -3727,6 +3745,11 @@ js-base64@^2.1.9:
resolved "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz"
integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==

js-binary-schema-parser@^2.0.2:
version "2.0.3"
resolved "https://registry.npmjs.org/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz"
integrity sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg==

js-sdsl@^4.1.4:
version "4.4.0"
resolved "https://registry.npmmirror.com/js-sdsl/-/js-sdsl-4.4.0.tgz"
@@ -4287,6 +4310,11 @@ mimic-fn@^4.0.0:
resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz"
integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==

mimic-response@^3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz"
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==

min-indent@^1.0.0:
version "1.0.1"
resolved "https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz"
@@ -4299,6 +4327,13 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
dependencies:
brace-expansion "^1.1.7"

minimatch@^5.0.1:
version "5.1.6"
resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz"
integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
dependencies:
brace-expansion "^2.0.1"

minimatch@^6.1.6:
version "6.2.0"
resolved "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz"
@@ -4553,7 +4588,7 @@ ohash@^1.1.1:
resolved "https://registry.npmjs.org/ohash/-/ohash-1.1.2.tgz"
integrity sha512-9CIOSq5945rI045GFtcO3uudyOkYVY1nyfFxVQp+9BRgslr8jPNiSSrsFGg/BNTUFOLqx0P5tng6G32brIPw0w==

once@^1.3.0:
once@^1.3.0, once@^1.3.1:
version "1.4.0"
resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
@@ -4653,6 +4688,11 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"

parenthesis@^3.1.5:
version "3.1.8"
resolved "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz"
integrity sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==

parse-json@^5.0.0:
version "5.2.0"
resolved "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz"
@@ -5259,6 +5299,20 @@ signal-exit@^4.0.1:
resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.0.2.tgz"
integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==

simple-concat@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz"
integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==

simple-get@^4.0.1:
version "4.0.1"
resolved "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz"
integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==
dependencies:
decompress-response "^6.0.0"
once "^1.3.1"
simple-concat "^1.0.0"

sirv@^2.0.2:
version "2.0.3"
resolved "https://registry.npmmirror.com/sirv/-/sirv-2.0.3.tgz"
@@ -5473,6 +5527,13 @@ string-argv@^0.3.1:
resolved "https://registry.npmmirror.com/string-argv/-/string-argv-0.3.2.tgz"
integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==

string-split-by@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz"
integrity sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==
dependencies:
parenthesis "^3.1.5"

string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz"
@@ -6241,6 +6302,16 @@ vue-i18n@9:
"@intlify/vue-devtools" "9.2.2"
"@vue/devtools-api" "^6.2.1"

vue-qr@^4.0.9:
version "4.0.9"
resolved "https://registry.npmjs.org/vue-qr/-/vue-qr-4.0.9.tgz"
integrity sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw==
dependencies:
glob "^8.0.1"
js-binary-schema-parser "^2.0.2"
simple-get "^4.0.1"
string-split-by "^1.0.0"

vue-router@^4.0.13:
version "4.0.13"
resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.0.13.tgz"


Yükleniyor…
İptal
Kaydet