@@ -68,3 +68,16 @@ export function videoListApi(pageNum, pageSize) { | |||||
}) | }) | ||||
} | } | ||||
/** | |||||
* @description: 已消耗总时长 | |||||
* @param | |||||
* @return: | |||||
*/ | |||||
export function currentVideoToalApi(pageNum) { | |||||
let api = localStorage.getItem("isAdmin") === '0' ? '/serviceInfo/currentVideoToal' : '/serviceInfo/privateDeployAdminCurrentVideoTotal' | |||||
return request({ | |||||
url: `${api}`, | |||||
method: 'get', | |||||
}) | |||||
} | |||||
@@ -0,0 +1,147 @@ | |||||
import request from "@/utils/request.js"; | |||||
/** | |||||
* @description 用户列表 | |||||
* @param {*} (pageNum,pageSize) | |||||
* @returns data | |||||
*/ | |||||
export function userListApi(params) { | |||||
return request({ | |||||
url: `/wxCUserBasicInfo/list`, | |||||
method: 'get', | |||||
params | |||||
}) | |||||
} | |||||
// 绑定定制模板 | |||||
export function personMouldListApi(pageNum, pageSize) { | |||||
return request({ | |||||
url: `/personMould/alList?onlyCustomizedQuery=1&pageNum=${pageNum}&pageSize=${pageSize}`, | |||||
method: 'get' | |||||
}) | |||||
} | |||||
// 绑定定制模板-已关联模版 | |||||
export function userPersonMouldIdListApi(cUserId) { | |||||
return request({ | |||||
url: `/personMould/userPersonMouldIdList?cUserId=${cUserId}`, | |||||
method: 'get' | |||||
}) | |||||
} | |||||
// 绑定定制模板-关联模版 | |||||
export function associatedUserMouldsApi(data) { | |||||
return request({ | |||||
url: `/personMould/associatedUserMoulds`, | |||||
method: 'post', | |||||
data | |||||
}) | |||||
} | |||||
// 绑定定制声纹 | |||||
export function voiceMouldListApi(pageNum, pageSize) { | |||||
return request({ | |||||
url: `/voiceMould/alList?onlyCustomizedQuery=1&pageNum=${pageNum}&pageSize=${pageSize}`, | |||||
method: 'get' | |||||
}) | |||||
} | |||||
// 绑定定制声纹-已关联模版 | |||||
export function userVoiceIdListApi(cUserId) { | |||||
return request({ | |||||
url: `/voiceMould/userVoiceIdList?cUserId=${cUserId}`, | |||||
method: 'get' | |||||
}) | |||||
} | |||||
// 绑定定制声纹-关联模版 | |||||
export function associatedUserVoicesApi(data) { | |||||
return request({ | |||||
url: `/voiceMould/associatedUserVoices`, | |||||
method: 'post', | |||||
data | |||||
}) | |||||
} | |||||
/** | |||||
* @description 用户列表查看 | |||||
* @param {*} | |||||
* @returns | |||||
*/ | |||||
export function userListFindByIdApi() { | |||||
return request({ | |||||
url: ` /wxCUserBasicInfo/findById?id=${id}`, | |||||
method: 'get' | |||||
}) | |||||
} | |||||
/** | |||||
* @description 私人定制模板列表 | |||||
* @param {*} (pageNum,pageSize) | |||||
* @returns data | |||||
*/ | |||||
export function userMouldListApi(params) { | |||||
return request({ | |||||
url: `/personMould/userMouldList`, | |||||
method: 'get', | |||||
params | |||||
}) | |||||
} | |||||
/** | |||||
* @description 私人定制声纹列表 | |||||
* @param {*} (pageNum,pageSize) | |||||
* @returns data | |||||
*/ | |||||
export function userVoiceListAPi(params) { | |||||
return request({ | |||||
url: `/voiceMould/userVoiceList`, | |||||
method: 'get', | |||||
params | |||||
}) | |||||
} | |||||
/** | |||||
* @description 充值列表 | |||||
* @param {*} (pageNum,pageSize) | |||||
* @returns data | |||||
*/ | |||||
export function rechargeListApi(params) { | |||||
return request({ | |||||
url: `/productOrder/paiedOrders`, | |||||
method: 'get', | |||||
params | |||||
}) | |||||
} | |||||
/** | |||||
* @description 充值列表 | |||||
* @param {*} (pageNum,pageSize) | |||||
* @returns data | |||||
*/ | |||||
export function videoListApi(params) { | |||||
return request({ | |||||
url: `/userVideo/list`, | |||||
method: 'get', | |||||
params | |||||
}) | |||||
} | |||||
/** | |||||
* @description 充值列表-查看 | |||||
* @param {*} | |||||
* @returns | |||||
*/ | |||||
export function videoListFindByIdApi(id) { | |||||
return request({ | |||||
url: `/userVideo/findById?id=${id}`, | |||||
method: 'get' | |||||
}) | |||||
} | |||||
/** | |||||
* @description 充值列表-删除 | |||||
* @param {*} | |||||
* @returns | |||||
*/ | |||||
export function videoListDelApi(id) { | |||||
return request({ | |||||
url: `/userVideo/del?id=${id}`, | |||||
method: 'get' | |||||
}) | |||||
} |
@@ -45,6 +45,20 @@ | |||||
<span>视频制作统计</span> | <span>视频制作统计</span> | ||||
</el-menu-item> | </el-menu-item> | ||||
</template> | </template> | ||||
<!-- v-if="isAdmin === '1'" --> | |||||
<el-sub-menu index="7" v-if="isAdmin == '1'" > | |||||
<template #title> | |||||
<el-icon><i-ep-edit /></el-icon> | |||||
<span>用户管理</span> | |||||
</template> | |||||
<el-menu-item-group> | |||||
<el-menu-item index="7-1" @click="router.push('/userManage')">用户列表</el-menu-item> | |||||
<el-menu-item index="7-2" @click="router.push('/userMouldList')">私人定制模板列表</el-menu-item> | |||||
<el-menu-item index="7-3" @click="router.push('/userVoiceList')">私人定制声纹列表</el-menu-item> | |||||
<el-menu-item index="7-4" @click="router.push('/rechargeList')">充值列表</el-menu-item> | |||||
<el-menu-item index="7-5" @click="router.push('/videoList')">视频列表</el-menu-item> | |||||
</el-menu-item-group> | |||||
</el-sub-menu> | |||||
</el-menu> | </el-menu> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -227,7 +241,7 @@ const showChildrenRouter = ref(""); | |||||
.myRouter { | .myRouter { | ||||
position: relative; | position: relative; | ||||
height: calc(100% - 80px); | height: calc(100% - 80px); | ||||
padding: 130px 20px 0; | |||||
padding: 50px 20px 0; | |||||
color: #fff; | color: #fff; | ||||
width: 230px; | width: 230px; | ||||
// color: #868593; | // color: #868593; | ||||
@@ -222,6 +222,62 @@ export const constantRoutes: RouteRecordRaw[] = [ | |||||
name: "ruleListMangage.title", | name: "ruleListMangage.title", | ||||
}, | }, | ||||
}, | }, | ||||
{ | |||||
path: "/userManage", | |||||
component: () => import("@/views/userManage/userList.vue"), | |||||
name: "userManage", | |||||
meta: { | |||||
title: "userManage", | |||||
icon: "homepage", | |||||
affix: true, | |||||
name: "ruleListMangage.title", | |||||
}, | |||||
}, | |||||
{ | |||||
path: "/userMouldList", | |||||
component: () => import("@/views/userManage/userMouldList.vue"), | |||||
name: "userMouldList", | |||||
meta: { | |||||
title: "userMouldList", | |||||
icon: "homepage", | |||||
affix: true, | |||||
name: "ruleListMangage.title", | |||||
}, | |||||
}, | |||||
{ | |||||
path: "/userVoiceList", | |||||
component: () => import("@/views/userManage/userVoiceList.vue"), | |||||
name: "userVoiceList", | |||||
meta: { | |||||
title: "userVoiceList", | |||||
icon: "homepage", | |||||
affix: true, | |||||
name: "ruleListMangage.title", | |||||
}, | |||||
}, | |||||
{ | |||||
path: "/rechargeList", | |||||
component: () => import("@/views/userManage/rechargeList.vue"), | |||||
name: "rechargeList", | |||||
meta: { | |||||
title: "rechargeList", | |||||
icon: "homepage", | |||||
affix: true, | |||||
name: "ruleListMangage.title", | |||||
}, | |||||
}, | |||||
{ | |||||
path: "/videoList", | |||||
component: () => import("@/views/userManage/videoList.vue"), | |||||
name: "videoList", | |||||
meta: { | |||||
title: "videoList", | |||||
icon: "homepage", | |||||
affix: true, | |||||
name: "ruleListMangage.title", | |||||
}, | |||||
}, | |||||
], | ], | ||||
} | } | ||||
]; | ]; | ||||
@@ -8,15 +8,16 @@ export {} | |||||
declare module '@vue/runtime-core' { | declare module '@vue/runtime-core' { | ||||
export interface GlobalComponents { | export interface GlobalComponents { | ||||
Breadcrumb: typeof import('./../components/Breadcrumb/index.vue')['default'] | Breadcrumb: typeof import('./../components/Breadcrumb/index.vue')['default'] | ||||
copy: typeof import('./../components/EditPosition copy.vue')['default'] | |||||
CutImg: typeof import('./../components/cutImg.vue')['default'] | CutImg: typeof import('./../components/cutImg.vue')['default'] | ||||
CutImg1: typeof import('./../components/cutImg1.vue')['default'] | CutImg1: typeof import('./../components/cutImg1.vue')['default'] | ||||
EditPosition: typeof import('./../components/EditPosition.vue')['default'] | EditPosition: typeof import('./../components/EditPosition.vue')['default'] | ||||
'EditPosition copy': typeof import('./../components/EditPosition copy.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'] | ElButton: typeof import('element-plus/es')['ElButton'] | ||||
ElCard: typeof import('element-plus/es')['ElCard'] | ElCard: typeof import('element-plus/es')['ElCard'] | ||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] | ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] | ||||
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] | ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] | ||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] | |||||
ElDialog: typeof import('element-plus/es')['ElDialog'] | ElDialog: typeof import('element-plus/es')['ElDialog'] | ||||
ElDropdown: typeof import('element-plus/es')['ElDropdown'] | ElDropdown: typeof import('element-plus/es')['ElDropdown'] | ||||
ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] | ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] | ||||
@@ -28,11 +29,13 @@ declare module '@vue/runtime-core' { | |||||
ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] | ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] | ||||
ElMenu: typeof import('element-plus/es')['ElMenu'] | ElMenu: typeof import('element-plus/es')['ElMenu'] | ||||
ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] | ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] | ||||
ElMenuItemGroup: typeof import('element-plus/es')['ElMenuItemGroup'] | |||||
ElOption: typeof import('element-plus/es')['ElOption'] | ElOption: typeof import('element-plus/es')['ElOption'] | ||||
ElPagination: typeof import('element-plus/es')['ElPagination'] | ElPagination: typeof import('element-plus/es')['ElPagination'] | ||||
ElRadio: typeof import('element-plus/es')['ElRadio'] | ElRadio: typeof import('element-plus/es')['ElRadio'] | ||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] | ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] | ||||
ElSelect: typeof import('element-plus/es')['ElSelect'] | ElSelect: typeof import('element-plus/es')['ElSelect'] | ||||
ElSubMenu: typeof import('element-plus/es')['ElSubMenu'] | |||||
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'] | ||||
@@ -0,0 +1,87 @@ | |||||
<template> | |||||
<div> | |||||
<el-checkbox-group v-model="checkboxGroup" size="small" class="checkbox"> | |||||
<el-checkbox v-for="(item, index) in tableData" :key="index" :label="item.id" border> | |||||
<img :src="item.coverImg" width="50" /> | |||||
<p>{{ item.title }}</p> | |||||
</el-checkbox> | |||||
</el-checkbox-group> | |||||
<div style="margin-top: 20px"> | |||||
<el-button @click="handleClose" | |||||
>取消</el-button | |||||
> | |||||
<el-button type="primary" @click="addModel()">确认关联</el-button> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script setup> | |||||
import { ref } from 'vue' | |||||
import { personMouldListApi, userPersonMouldIdListApi, associatedUserMouldsApi } from '@/apis/userManage.js' | |||||
import dayjs from "dayjs"; | |||||
const emit = defineEmits(["close"]); | |||||
const props = defineProps({ | |||||
serviceId: { | |||||
required: true, | |||||
} | |||||
}); | |||||
const getDate = (val) => { | |||||
return dayjs(val).format("YYYY-MM-DD"); | |||||
}; | |||||
const checkboxGroup = ref([]) | |||||
const total = ref(0); | |||||
const tableData = ref([]); | |||||
const modelAllListFunc = async () => { | |||||
try { | |||||
const res = await personMouldListApi(1, 10000); | |||||
const modelIds = await userPersonMouldIdListApi(props.serviceId); | |||||
tableData.value = res.data.list; | |||||
total.value = res.data.total * 1; | |||||
setTimeout(()=> { | |||||
if(modelIds.data && modelIds.data.length > 0) { | |||||
modelIds.data.forEach((item) => { | |||||
checkboxGroup.value.push(item) | |||||
}) | |||||
} | |||||
}, 500) | |||||
} catch (error) { | |||||
console.log(error, "err"); | |||||
} | |||||
}; | |||||
const addModel = async () => { | |||||
const data = { | |||||
mouldIds: checkboxGroup.value, | |||||
cUserId: props.serviceId | |||||
} | |||||
const res = await associatedUserMouldsApi(data); | |||||
if(res.code === 200) { | |||||
ElMessage.success("关联成功!"); | |||||
handleClose() | |||||
} | |||||
}; | |||||
function handleClose() { | |||||
emit("close"); | |||||
} | |||||
onMounted(() => { | |||||
modelAllListFunc(1, 10); | |||||
}); | |||||
</script> | |||||
<style lang="scss" scoped> | |||||
.checkbox { | |||||
max-height: 500px; | |||||
overflow: auto; | |||||
:deep .el-checkbox.el-checkbox--small { | |||||
width: 110px; | |||||
height:110px; | |||||
margin-bottom: 10px; | |||||
} | |||||
} | |||||
</style> |
@@ -0,0 +1,189 @@ | |||||
<template> | |||||
<div class="page justify-around"> | |||||
<div class="addbtn"> | |||||
<el-form :inline="true" :model="formInline" class="demo-form-inline"> | |||||
<el-form-item label="手机号"> | |||||
<el-input v-model="formInline.phone" placeholder="请输入手机号" clearable /> | |||||
</el-form-item> | |||||
<el-form-item label="商品名"> | |||||
<el-input v-model="formInline.mouldSmIdLike" placeholder="请输入模版号" clearable /> | |||||
</el-form-item> | |||||
<el-form-item label="充值时间段"> | |||||
<el-date-picker | |||||
v-model="formInline.time" | |||||
type="daterange" | |||||
range-separator="To" | |||||
start-placeholder="Start date" | |||||
end-placeholder="End date" | |||||
/> | |||||
</el-form-item> | |||||
<el-form-item> | |||||
<el-button type="primary" @click="getListData"><el-icon><i-ep-plus /></el-icon> 查询</el-button> | |||||
</el-form-item> | |||||
</el-form> | |||||
</div> | |||||
<el-table | |||||
:data="tableData" | |||||
style="width: 100%; height: 90%" | |||||
size="large" | |||||
align="center" | |||||
border | |||||
> | |||||
<el-table-column | |||||
prop="name" | |||||
label="订单号" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="address" | |||||
label="商品名称" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="address" | |||||
label="支付方式" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="address" | |||||
label="支付金额" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="address" | |||||
label="手机号" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="createDate" | |||||
label="创建时间" | |||||
align="center" | |||||
> | |||||
<template #default="scope"> | |||||
{{ getDate(scope.row.createDate) }} | |||||
</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> | |||||
</div> | |||||
</template> | |||||
<!-- videoType==1为竖,==2为横 --> | |||||
<script setup> | |||||
//#region 导入 | |||||
import { rechargeListApi } from '@/apis/userManage.js' | |||||
import { useI18n } from "vue-i18n"; | |||||
import dayjs from "dayjs"; | |||||
import { useRoute, useRouter } from "vue-router"; | |||||
const route = useRoute(); | |||||
const router = useRouter(); | |||||
const { locale } = useI18n(); | |||||
const lanChange = ref(locale); | |||||
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 formInline = ref({ | |||||
phone: '', | |||||
productTitle: '', | |||||
time: '' | |||||
}) | |||||
const getListData = async (PageNum, PageSize) => { | |||||
try { | |||||
let data = { | |||||
PageNum: PageNum || 1, | |||||
PageSize: PageSize || 10, | |||||
phone: formInline.phone, | |||||
projectType: 2, | |||||
productTitle: formInline.productTitle, | |||||
startDate: formInline.time ? formInline.time[0] : '', | |||||
endDate: formInline.time ? formInline.time[1] : '', | |||||
} | |||||
const res = await rechargeListApi(data); | |||||
tableData.value = res.data.list; | |||||
total.value = res.data.total * 1; | |||||
} catch (error) { | |||||
console.log(error, "err"); | |||||
} | |||||
}; | |||||
onMounted(() => { | |||||
getListData(1, 10); | |||||
}); | |||||
</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,222 @@ | |||||
<template> | |||||
<div class="page justify-around"> | |||||
<div class="addbtn"> | |||||
<el-form :inline="true" :model="formInline" class="demo-form-inline"> | |||||
<el-form-item label="手机号"> | |||||
<el-input v-model="formInline.phone" placeholder="请输入手机号" clearable /> | |||||
</el-form-item> | |||||
<el-form-item> | |||||
<el-button type="primary" @click="dialogVisible = true"><el-icon><i-ep-plus /></el-icon> 新增</el-button> | |||||
</el-form-item> | |||||
</el-form> | |||||
</div> | |||||
<el-table | |||||
:data="tableData" | |||||
style="width: 100%; height: 90%" | |||||
size="large" | |||||
align="center" | |||||
border | |||||
> | |||||
<el-table-column | |||||
prop="name" | |||||
label="用户ID" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="address" | |||||
label="手机号" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="createDate" | |||||
label="注册时间" | |||||
align="center" | |||||
> | |||||
<template #default="scope"> | |||||
{{ getDate(scope.row.createDate) }} | |||||
</template> | |||||
</el-table-column> | |||||
<el-table-column | |||||
prop="poins" | |||||
label="当前币值" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
fixed="right" | |||||
:label="$t('keyMangage.operations')" | |||||
width="400" | |||||
align="center" | |||||
> | |||||
<template #default="scope"> | |||||
<el-button link type="primary" size="small" @click="showDetail(scope.row.id)">查看</el-button> | |||||
<el-button link type="primary" size="small" @click="rechargeDetail(scope.row)">查看充值记录</el-button> | |||||
<el-button link type="primary" size="small" @click="videoDetail(scope.row)"> 查看视频列表</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="detailDialogVisible" v-if="detailDialogVisible" title="查看详情" width="60%" :before-close="handleClose" > | |||||
<el-form :model="form" label-width="120px"> | |||||
<el-form-item label="用户ID"> | |||||
<el-input v-model="form.name" /> | |||||
</el-form-item> | |||||
<el-form-item label="手机号"> | |||||
<el-input v-model="form.phone" /> | |||||
</el-form-item> | |||||
<el-form-item> | |||||
<el-button type="primary" @click="onSubmit">Create</el-button> | |||||
<el-button>Cancel</el-button> | |||||
</el-form-item> | |||||
</el-form> | |||||
</el-dialog> | |||||
</div> | |||||
</template> | |||||
<!-- videoType==1为竖,==2为横 --> | |||||
<script setup> | |||||
//#region 导入 | |||||
import { userListApi, userListFindByIdApi } from '@/apis/userManage.js' | |||||
import { useI18n } from "vue-i18n"; | |||||
import dayjs from "dayjs"; | |||||
import { useRoute, useRouter } from "vue-router"; | |||||
const route = useRoute(); | |||||
const router = useRouter(); | |||||
const { locale } = useI18n(); | |||||
const lanChange = ref(locale); | |||||
const tableData = ref([]); | |||||
const dialogVisible = ref(false); | |||||
const rechargeDetail = (item) => { | |||||
router.push({ | |||||
path: "/rechargeList", | |||||
query: { | |||||
phone: item.phone | |||||
}, | |||||
}); | |||||
}; | |||||
const videoDetail = (item) => { | |||||
router.push({ | |||||
path: "/videoList", | |||||
query: { | |||||
phone: item.phone | |||||
}, | |||||
}); | |||||
}; | |||||
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 formInline = ref({ | |||||
phone: '' | |||||
}) | |||||
const getListData = async (PageNum, PageSize) => { | |||||
try { | |||||
let data = { | |||||
PageNum: PageNum, | |||||
PageSize: PageSize, | |||||
phone: formInline.phone | |||||
} | |||||
const res = await userListApi(data); | |||||
console.log(res, "res"); | |||||
tableData.value = res.data.list; | |||||
total.value = res.data.total * 1; | |||||
} catch (error) { | |||||
console.log(error, "err"); | |||||
} | |||||
}; | |||||
const form = ref({ | |||||
name: '', | |||||
phone: '' | |||||
}) | |||||
const detailDialogVisible = ref(false) | |||||
function showDetail(id) { | |||||
userListFindByIdApi(id).then(res => { | |||||
detailDialogVisible.value = true | |||||
form.value = res.data | |||||
}) | |||||
} | |||||
function handleClose() { | |||||
detailDialogVisible.value = false | |||||
} | |||||
onMounted(() => { | |||||
getListData(1, 10); | |||||
}); | |||||
</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,161 @@ | |||||
<template> | |||||
<div class="page justify-around"> | |||||
<div class="addbtn"> | |||||
<el-form :inline="true" :model="formInline" class="demo-form-inline"> | |||||
<el-form-item label="手机号"> | |||||
<el-input v-model="formInline.phone" placeholder="请输入手机号" clearable /> | |||||
</el-form-item> | |||||
<el-form-item label="模版号"> | |||||
<el-input v-model="formInline.mouldSmIdLike" placeholder="请输入模版号" clearable /> | |||||
</el-form-item> | |||||
<el-form-item> | |||||
<el-button type="primary" @click="getListData"><el-icon><i-ep-plus /></el-icon> 查询</el-button> | |||||
</el-form-item> | |||||
</el-form> | |||||
</div> | |||||
<el-table | |||||
:data="tableData" | |||||
style="width: 100%; height: 90%" | |||||
size="large" | |||||
align="center" | |||||
border | |||||
> | |||||
<el-table-column | |||||
prop="name" | |||||
label="模板信息" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="address" | |||||
label="手机号" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="createDate" | |||||
label="注册时间" | |||||
align="center" | |||||
> | |||||
<template #default="scope"> | |||||
{{ getDate(scope.row.createDate) }} | |||||
</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> | |||||
</div> | |||||
</template> | |||||
<!-- videoType==1为竖,==2为横 --> | |||||
<script setup> | |||||
//#region 导入 | |||||
import { userMouldListApi } from '@/apis/userManage.js' | |||||
import { useI18n } from "vue-i18n"; | |||||
import dayjs from "dayjs"; | |||||
import { useRoute, useRouter } from "vue-router"; | |||||
const route = useRoute(); | |||||
const router = useRouter(); | |||||
const { locale } = useI18n(); | |||||
const lanChange = ref(locale); | |||||
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 formInline = ref({ | |||||
phone: '', | |||||
mouldSmIdLike: '' | |||||
}) | |||||
const getListData = async (PageNum, PageSize) => { | |||||
try { | |||||
let data = { | |||||
PageNum: PageNum || 1, | |||||
PageSize: PageSize || 10, | |||||
phone: formInline.phone, | |||||
mouldSmIdLike: formInline.mouldSmIdLike | |||||
} | |||||
const res = await userMouldListApi(data); | |||||
console.log(res, "res"); | |||||
tableData.value = res.data.list; | |||||
total.value = res.data.total * 1; | |||||
} catch (error) { | |||||
console.log(error, "err"); | |||||
} | |||||
}; | |||||
onMounted(() => { | |||||
getListData(1, 10); | |||||
}); | |||||
</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,160 @@ | |||||
<template> | |||||
<div class="page justify-around"> | |||||
<div class="addbtn"> | |||||
<el-form :inline="true" :model="formInline" class="demo-form-inline"> | |||||
<el-form-item label="手机号"> | |||||
<el-input v-model="formInline.phone" placeholder="请输入手机号" clearable /> | |||||
</el-form-item> | |||||
<el-form-item label="模版号"> | |||||
<el-input v-model="formInline.mouldSmIdLike" placeholder="请输入模版号" clearable /> | |||||
</el-form-item> | |||||
<el-form-item> | |||||
<el-button type="primary" @click="getListData"><el-icon><i-ep-plus /></el-icon> 查询</el-button> | |||||
</el-form-item> | |||||
</el-form> | |||||
</div> | |||||
<el-table | |||||
:data="tableData" | |||||
style="width: 100%; height: 90%" | |||||
size="large" | |||||
align="center" | |||||
border | |||||
> | |||||
<el-table-column | |||||
prop="name" | |||||
label="声纹信息" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="address" | |||||
label="手机号" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="createDate" | |||||
label="注册时间" | |||||
align="center" | |||||
> | |||||
<template #default="scope"> | |||||
{{ getDate(scope.row.createDate) }} | |||||
</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> | |||||
</div> | |||||
</template> | |||||
<!-- videoType==1为竖,==2为横 --> | |||||
<script setup> | |||||
//#region 导入 | |||||
import { userVoiceListAPi } from '@/apis/userManage.js' | |||||
import { useI18n } from "vue-i18n"; | |||||
import dayjs from "dayjs"; | |||||
import { useRoute, useRouter } from "vue-router"; | |||||
const route = useRoute(); | |||||
const router = useRouter(); | |||||
const { locale } = useI18n(); | |||||
const lanChange = ref(locale); | |||||
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 formInline = ref({ | |||||
phone: '', | |||||
mouldSmIdLike: '' | |||||
}) | |||||
const getListData = async (PageNum, PageSize) => { | |||||
try { | |||||
let data = { | |||||
PageNum: PageNum || 1, | |||||
PageSize: PageSize || 10, | |||||
phone: formInline.phone, | |||||
mouldSmIdLike: formInline.mouldSmIdLike | |||||
} | |||||
const res = await userVoiceListAPi(data); | |||||
console.log(res, "res"); | |||||
tableData.value = res.data.list; | |||||
total.value = res.data.total * 1; | |||||
} catch (error) { | |||||
console.log(error, "err"); | |||||
} | |||||
}; | |||||
onMounted(() => { | |||||
getListData(1, 10); | |||||
}); | |||||
</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,262 @@ | |||||
<template> | |||||
<div class="page justify-around"> | |||||
<div class="addbtn"> | |||||
<el-form :inline="true" :model="formInline" class="demo-form-inline"> | |||||
<el-form-item label="手机号"> | |||||
<el-input v-model="formInline.phone" placeholder="请输入手机号" clearable /> | |||||
</el-form-item> | |||||
<el-form-item label="文本"> | |||||
<el-input v-model="formInline.paperwork" placeholder="请输入模版号" clearable /> | |||||
</el-form-item> | |||||
<el-form-item label="类型"> | |||||
<el-select | |||||
v-model="formInline.videoType" | |||||
placeholder="请选择类型" | |||||
clearable | |||||
> | |||||
<el-option label="竖版" value="1" /> | |||||
<el-option label="横板" value="2" /> | |||||
</el-select> | |||||
</el-form-item> | |||||
<el-form-item label="状态"> | |||||
<el-select | |||||
v-model="formInline.isDel" | |||||
placeholder="请选择状态" | |||||
clearable | |||||
> | |||||
<el-option label="未删除" value="0" /> | |||||
<el-option label="已删除" value="1" /> | |||||
</el-select> | |||||
</el-form-item> | |||||
<el-form-item label="创建时间段"> | |||||
<el-date-picker | |||||
v-model="formInline.time" | |||||
type="daterange" | |||||
range-separator="To" | |||||
start-placeholder="Start date" | |||||
end-placeholder="End date" | |||||
/> | |||||
</el-form-item> | |||||
<el-form-item> | |||||
<el-button type="primary" @click="getListData"><el-icon><i-ep-plus /></el-icon> 查询</el-button> | |||||
</el-form-item> | |||||
</el-form> | |||||
</div> | |||||
<el-table | |||||
:data="tableData" | |||||
style="width: 100%; height: 90%" | |||||
size="large" | |||||
align="center" | |||||
border | |||||
> | |||||
<el-table-column | |||||
prop="name" | |||||
label="类型" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="paperwork" | |||||
label="文本内容" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="address" | |||||
label="状态" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="title" | |||||
label="视频标题" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="coverImg" | |||||
label="封面图" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="videoPlayUrl" | |||||
label="视频地址" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="videoTime" | |||||
label="视频时长" | |||||
align="center" | |||||
> | |||||
<template #default="scope"> | |||||
{{ getDate(scope.row.videoTime) }} | |||||
</template> | |||||
</el-table-column> | |||||
<el-table-column | |||||
prop="videoSize" | |||||
label="视频大小" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="videoMsg" | |||||
label="视频生成信息" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="costPoints" | |||||
label="消耗金币" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="costPointsDetail" | |||||
label="消耗金币明细" | |||||
align="center" | |||||
/> | |||||
<el-table-column | |||||
prop="createDate" | |||||
label="创建时间" | |||||
align="center" | |||||
> | |||||
<template #default="scope"> | |||||
{{ getDate(scope.row.createDate) }} | |||||
</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" @click="showDetail(scope.row.id)">查看</el-button> | |||||
<el-button link type="primary" size="small" @click="confirmDel(scope.row.id)">删除</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> | |||||
</div> | |||||
</template> | |||||
<script setup> | |||||
//#region 导入 | |||||
import { videoListApi, videoListFindByIdApi, videoListDelApi } from '@/apis/userManage.js' | |||||
import { useI18n } from "vue-i18n"; | |||||
import dayjs from "dayjs"; | |||||
import { useRoute, useRouter } from "vue-router"; | |||||
const route = useRoute(); | |||||
const router = useRouter(); | |||||
const { locale } = useI18n(); | |||||
const lanChange = ref(locale); | |||||
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 HH:mm:ss"); | |||||
}; | |||||
const handleSizeChange = (val) => { | |||||
pageSize.value = val; | |||||
getListData(pageNum.value, pageSize.value); | |||||
}; | |||||
const handleCurrentChange = (val) => { | |||||
pageNum.value = val; | |||||
getListData(pageNum.value, pageSize.value); | |||||
}; | |||||
const formInline = ref({ | |||||
phone: '', | |||||
productTitle: '', | |||||
time: '' | |||||
}) | |||||
const getListData = async (PageNum, PageSize) => { | |||||
try { | |||||
let data = { | |||||
PageNum: PageNum || 1, | |||||
PageSize: PageSize || 10, | |||||
phone: formInline.phone, | |||||
projectType: 2, | |||||
productTitle: formInline.productTitle, | |||||
startDate: formInline.time ? formInline.time[0] : '', | |||||
endDate: formInline.time ? formInline.time[1] : '', | |||||
id: route.query.id || '' | |||||
} | |||||
const res = await videoListApi(data); | |||||
tableData.value = res.data.list; | |||||
total.value = res.data.total * 1; | |||||
} catch (error) { | |||||
console.log(error, "err"); | |||||
} | |||||
}; | |||||
function confirmDel(id) { | |||||
ElMessageBox.confirm('你确定要删除吗?').then(() => { | |||||
videoListDelApi(id).then(res => { | |||||
debugger | |||||
}) | |||||
done() | |||||
}).catch(() => { | |||||
// catch error | |||||
}) | |||||
} | |||||
onMounted(() => { | |||||
getListData(1, 10); | |||||
}); | |||||
</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,87 @@ | |||||
<template> | |||||
<div> | |||||
<el-checkbox-group v-model="checkboxGroup" size="small" class="checkbox"> | |||||
<el-checkbox v-for="(item, index) in tableData" :key="index" :label="item.id" border> | |||||
<img :src="item.coverImg" width="50" /> | |||||
<p>{{ item.title }}</p> | |||||
</el-checkbox> | |||||
</el-checkbox-group> | |||||
<div style="margin-top: 20px"> | |||||
<el-button @click="handleClose" | |||||
>取消</el-button | |||||
> | |||||
<el-button type="primary" @click="addModel()">确认关联</el-button> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script setup> | |||||
import { ref } from 'vue' | |||||
import { voiceMouldListApi, userVoiceIdListApi, associatedUserVoicesApi } from '@/apis/userManage.js' | |||||
import dayjs from "dayjs"; | |||||
const emit = defineEmits(["close"]); | |||||
const props = defineProps({ | |||||
serviceId: { | |||||
required: true, | |||||
} | |||||
}); | |||||
const getDate = (val) => { | |||||
return dayjs(val).format("YYYY-MM-DD"); | |||||
}; | |||||
const checkboxGroup = ref([]) | |||||
const total = ref(0); | |||||
const tableData = ref([]); | |||||
const modelAllListFunc = async () => { | |||||
try { | |||||
const res = await voiceMouldListApi(1, 10000); | |||||
const modelIds = await userVoiceIdListApi(props.serviceId); | |||||
tableData.value = res.data.list; | |||||
total.value = res.data.total * 1; | |||||
setTimeout(()=> { | |||||
if(modelIds.data && modelIds.data.length > 0) { | |||||
modelIds.data.forEach((item) => { | |||||
checkboxGroup.value.push(item) | |||||
}) | |||||
} | |||||
}, 500) | |||||
} catch (error) { | |||||
console.log(error, "err"); | |||||
} | |||||
}; | |||||
const addModel = async () => { | |||||
const data = { | |||||
mouldIds: checkboxGroup.value, | |||||
cUserId: props.serviceId | |||||
} | |||||
const res = await associatedUserVoicesApi(data); | |||||
if(res.code === 200) { | |||||
ElMessage.success("关联成功!"); | |||||
handleClose() | |||||
} | |||||
}; | |||||
function handleClose() { | |||||
emit("close"); | |||||
} | |||||
onMounted(() => { | |||||
modelAllListFunc(1, 10); | |||||
}); | |||||
</script> | |||||
<style lang="scss" scoped> | |||||
.checkbox { | |||||
max-height: 500px; | |||||
overflow: auto; | |||||
:deep .el-checkbox.el-checkbox--small { | |||||
width: 110px; | |||||
height:110px; | |||||
margin-bottom: 10px; | |||||
} | |||||
} | |||||
</style> |
@@ -1,6 +1,6 @@ | |||||
<template> | <template> | ||||
<div class="page justify-around"> | <div class="page justify-around"> | ||||
<el-alert :title="`已消耗总时长:${crrentVideoToal}`" type="success" :closable="false" /> | |||||
<el-table | <el-table | ||||
:data="tableData" | :data="tableData" | ||||
style="width: 100%; height: 90%" | style="width: 100%; height: 90%" | ||||
@@ -36,6 +36,17 @@ | |||||
{{ getDate(scope.row.createTime) }} | {{ getDate(scope.row.createTime) }} | ||||
</template> | </template> | ||||
</el-table-column> | </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" @click="showDetail(scope.row.id)">查看视频详情</el-button> | |||||
</template> | |||||
</el-table-column> | |||||
</el-table> | </el-table> | ||||
<div class="pagination"> | <div class="pagination"> | ||||
@@ -58,7 +69,7 @@ | |||||
<!-- videoType==1为竖,==2为横 --> | <!-- videoType==1为竖,==2为横 --> | ||||
<script setup> | <script setup> | ||||
//#region 导入 | //#region 导入 | ||||
import { videoListApi } from '@/apis/home.js' | |||||
import { videoListApi,currentVideoToalApi } from '@/apis/home.js' | |||||
import { useI18n } from "vue-i18n"; | import { useI18n } from "vue-i18n"; | ||||
@@ -78,6 +89,16 @@ | |||||
const getDate = (val) => { | const getDate = (val) => { | ||||
return dayjs(Number(val)).format("YYYY-MM-DD HH:mm:ss"); | return dayjs(Number(val)).format("YYYY-MM-DD HH:mm:ss"); | ||||
}; | }; | ||||
// 跳转视频列表 | |||||
const showDetail = (id) => { | |||||
router.push({ | |||||
path: "/videoList", | |||||
query: { | |||||
id, | |||||
}, | |||||
}); | |||||
}; | |||||
const handleSizeChange = (val) => { | const handleSizeChange = (val) => { | ||||
pageSize.value = val; | pageSize.value = val; | ||||
@@ -109,7 +130,14 @@ | |||||
}, | }, | ||||
}); | }); | ||||
} | } | ||||
const crrentVideoToal = ref('') | |||||
function getCrrentVideoToal() { | |||||
currentVideoToalApi().then(res => { | |||||
// TODO | |||||
}) | |||||
} | |||||
onMounted(() => { | onMounted(() => { | ||||
getCrrentVideoToal() | |||||
getBusinessListFunc(1, 10); | getBusinessListFunc(1, 10); | ||||
}); | }); | ||||
</script> | </script> | ||||