Browse Source

重置调方法+调整布局

zhangrenyuan/feature-20250728113353-金币前端三期
lihuilin 7 days ago
parent
commit
1e28905359
  1. 5
      src/views/audit/beanAudit.vue
  2. 144
      src/views/consume/bean/articleVideo.vue
  3. 133
      src/views/consume/bean/dieHardFan.vue
  4. 158
      src/views/consume/bean/liveStream.vue
  5. 1
      src/views/usergold/userbean.vue

5
src/views/audit/beanAudit.vue

@ -395,7 +395,10 @@ const resetSearch = function () {
}
selectedMarketPath.value = []
dateRange.value = []
activeTimeRange.value = '' //
activeTimeRange.value = '' //
get()
getStats()
}
const handleClick = function (tab) {

144
src/views/consume/bean/articleVideo.vue

@ -8,7 +8,7 @@ import { ar } from 'element-plus/es/locales.mjs'
//
const defaultTime = [
new Date(2000, 1, 1, 0, 0, 0),
new Date(2000, 2, 1,23 , 59, 59),
new Date(2000, 2, 1, 23, 59, 59),
]
/*
====================工具方法==============================
@ -88,7 +88,7 @@ const getDept = async function () {
// url: '/general/dept',
url: '/beanConsume/getDept', // todo
data: {account:adminData.value.account}
data: { account: adminData.value.account }
})
console.log('请求地区列表成功', result)
//
@ -172,7 +172,7 @@ const ConsumeSelectBy = async function (val) {
pageNum: getObj.value.pageNum,
pageSize: getObj.value.pageSize,
beanConsumeArticle: {
... beanConsumeArticle.value,
...beanConsumeArticle.value,
jwcode: beanConsumeArticle.value.jwcode,
dept: beanConsumeArticle.value.dept,
payMode: beanConsumeArticle.value.payMode,
@ -223,7 +223,7 @@ const ConsumeSelectBy = async function (val) {
const data = resultTotalGold.data || resultTotalGold;
console.log('请求成功3', resultTotalGold.data)
console.log('permanentBean3',data.permanentBean)
console.log('permanentBean3', data.permanentBean)
// permanentBeanfreeBeantotalNum
permanentBean.value = Number(data.permanentBean) || 0;
freeBean.value = Number(data.freeBean) || 0;
@ -239,16 +239,16 @@ const ConsumeSelectBy = async function (val) {
//
const search = function () {
getObj.value.pageNum = 1
if(beanConsumeArticle.value.jwcode){
if (beanConsumeArticle.value.jwcode) {
const numRef = /^\d{1,9}$/;
if(!numRef.test(beanConsumeArticle.value.jwcode)){
if (!numRef.test(beanConsumeArticle.value.jwcode)) {
ElMessage.error('请检查精网号格式')
return
}
}
if(beanConsumeArticle.value.articleId){
if (beanConsumeArticle.value.articleId) {
const numRef = /^\d{1,9}$/;
if(!numRef.test(beanConsumeArticle.value.articleId)){
if (!numRef.test(beanConsumeArticle.value.articleId)) {
ElMessage.error('请检查文章ID格式')
return
}
@ -286,7 +286,7 @@ const reset = function () {
const getToday = function () {
const today = dayjs()
const startTime = today.startOf('day').format('YYYY-MM-DD HH:mm:ss')
const endTime =today.endOf('day').format('YYYY-MM-DD HH:mm:ss')
const endTime = today.endOf('day').format('YYYY-MM-DD HH:mm:ss')
getTime.value = [startTime, endTime]
console.log('getTime', getTime.value)
activeTimeRange.value = 'today' //
@ -463,93 +463,57 @@ const getTagText = (state) => {
</script>
<template>
<el-row>
<el-col>
<el-card style="margin-bottom: 20px;margin-top:10px">
<el-row style="margin-bottom: 10px">
<el-col :span="4">
<div class="head-card-element">
<el-text class="mx-1">精网号</el-text>
<el-input v-model="beanConsumeArticle.jwcode" placeholder="请输入精网号" style="width: 140px" clearable />
</div>
</el-col>
<el-col :span="4">
<div class="head-card-element">
<el-text class="mx-1">地区</el-text>
<el-select v-model="beanConsumeArticle.dept" placeholder="请选择地区" style="width: 140px" clearable>
<el-card style="margin-bottom: 10px;margin-top:10px">
<el-col style="margin-bottom: 10px">
<el-text>精网号</el-text>
<el-input v-model="beanConsumeArticle.jwcode" placeholder="请输入精网号" style="width: 200px;margin-right: 20px" clearable />
<el-text>地区</el-text>
<el-select v-model="beanConsumeArticle.dept" placeholder="请选择地区" style="width: 200px;margin-right: 20px" clearable>
<el-option v-for="(item, index) in dept" :key="index" :label="item" :value="item" />
</el-select>
</div>
</el-col>
<el-col :span="4">
<div class="head-card-element">
<el-text class="mx-1">类型</el-text>
<el-select v-model="beanConsumeArticle.payMode" placeholder="请选择类型" style="width: 140px" clearable @change="handlePayModeChange">
<el-text>类型</el-text>
<el-select v-model="beanConsumeArticle.payMode" placeholder="请选择类型" style="width: 200px;margin-right: 20px" clearable
@change="handlePayModeChange">
<el-option label="打赏" value="0" />
<el-option label="付费购买" value="1" />
<el-option label="其他" value="2" />
</el-select>
</div>
</el-col>
<el-col :span="4">
<div class="head-card-element">
<el-text class="mx-1">文章/视频ID</el-text>
<el-input v-model="beanConsumeArticle.articleId" placeholder="请输入文章/视频ID" style="width: 140px" clearable />
</div>
</el-col>
<el-col :span="5">
<div class="head-card-element">
<el-text class="mx-1">文章/视频标题</el-text>
<el-input v-model="beanConsumeArticle.articleName" placeholder="请输入文章/视频标题" style="width: 160px" clearable />
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="4">
<div class="head-card-element">
<el-text class="mx-1" >作者</el-text>
<el-input v-model="beanConsumeArticle.author" placeholder="请输入作者" style="width: 155px" clearable />
</div>
<el-text>文章/视频ID</el-text>
<el-input v-model="beanConsumeArticle.articleId" placeholder="请输入文章/视频ID" style="width: 200px;margin-right: 20px" clearable />
<el-text>文章/视频标题</el-text>
<el-input v-model="beanConsumeArticle.articleName" placeholder="请输入文章/视频标题" style="width: 200px" clearable />
</el-col>
<el-col :span="20">
<div class="head-card-element">
<el-text class="mx-1">付费时间</el-text>
<el-date-picker
v-model="getTime"
type="datetimerange"
range-separator="至"
start-placeholder="起始时间"
end-placeholder="结束时间"
style="width: 400px"
@change="handleDatePickerChange"
value-format="YYYY-MM-DD HH:mm:ss"
:default-time="defaultTime"
/>
<el-button @click="getToday()" style="margin-left: 10px" :type="activeTimeRange === 'today' ? 'primary' : ''"></el-button>
<el-button @click="getYesterday()" style="margin-left: 10px" :type="activeTimeRange === 'yesterday' ? 'primary' : ''"></el-button>
<el-button @click="get7Days()" style="margin-left: 10px" :type="activeTimeRange === '7days' ? 'primary' : ''">近7天</el-button>
<el-col>
<el-text>作者</el-text>
<el-input v-model="beanConsumeArticle.author" placeholder="请输入作者" style="width: 200px;margin-right: 20px" clearable />
<el-text>付费时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" style="width: 400px;margin-right: 10px" @change="handleDatePickerChange"
value-format="YYYY-MM-DD HH:mm:ss" :default-time="defaultTime" />
<el-button @click="getToday()" :type="activeTimeRange === 'today' ? 'primary' : ''"></el-button>
<el-button @click="getYesterday()" :type="activeTimeRange === 'yesterday' ? 'primary' : ''"></el-button>
<el-button @click="get7Days()" :type="activeTimeRange === '7days' ? 'primary' : ''">近7天</el-button>
<el-button type="success" @click="reset()">重置</el-button>
<el-button type="primary" @click="search()">查询</el-button>
<el-button type="primary" @click="exportExcel()">导出Excel</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
</div>
</el-col>
</el-row>
</el-card>
</el-col>
</el-row>
<el-row>
<el-col>
<el-card>
<div>
金豆总数{{ format3(Math.abs(permanentBean+freeBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
金豆总数{{ format3(Math.abs(permanentBean + freeBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
付费金豆数{{ format3(Math.abs(permanentBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
免费金豆数{{ format3(Math.abs(freeBean)) }}
</div>
<!-- 设置表格容器的高度和滚动样式 -->
<div style="height: 576px; overflow-y: auto">
<el-table :data="tableData" style="width: 100%" height="576px" @sort-change="handleSortChange">
<div style="overflow-y: auto">
<el-table :data="tableData" style="width: 100%" height="550px" @sort-change="handleSortChange">
<el-table-column type="index" label="序号" width="80px" fixed="left">
<template #default="scope">
<span>{{
@ -571,11 +535,11 @@ const getTagText = (state) => {
}}
</template>
</el-table-column>
<el-table-column prop="beanNum" label="金豆总数" sortable="custom" width="120px"/>
<el-table-column prop="buyBean" label="付费金豆数" sortable="custom" width="120px"/>
<el-table-column prop="freeBean" label="免费金豆数" sortable="custom" width="120px"/>
<el-table-column prop="beanNum" label="金豆总数" sortable="custom" width="120px" />
<el-table-column prop="buyBean" label="付费金豆数" sortable="custom" width="120px" />
<el-table-column prop="freeBean" label="免费金豆数" sortable="custom" width="120px" />
<el-table-column prop="articleId" label="文章/视频ID" width="150px" />
<el-table-column prop="articleName" label="文章/视频标题" width="200px" show-overflow-tooltip />
<el-table-column prop="articleName" label="文章/视频标题" width="150px" show-overflow-tooltip />
<el-table-column prop="author" label="作者" width="120px" />
<el-table-column prop="consumeTime" label="付费时间" sortable="custom" width="180px">
<template #default="scope">
@ -592,8 +556,6 @@ const getTagText = (state) => {
@current-change="handleCurrentChange"></el-pagination>
</div>
</el-card>
</el-col>
</el-row>
<!-- 导出弹窗 -->
<el-dialog v-model="exportListVisible" title="导出列表" width="80%">
@ -629,22 +591,6 @@ const getTagText = (state) => {
</template>
<style scoped>
.status {
display: flex;
}
.head-card {
display: flex;
}
.head-card-element {
margin-right: 20px;
}
.head-card-btn {
margin-left: auto;
}
.pagination {
display: flex;
margin-top: 20px;

133
src/views/consume/bean/dieHardFan.vue

@ -17,7 +17,7 @@ const format3 = (num) => {
const formatTime = (val) => val ? dayjs(val).format('YYYY-MM-DD HH:mm:ss') : ''
const defaultTime = [
new Date(2000, 1, 1, 0, 0, 0),
new Date(2000, 2, 1,23 , 59, 59),
new Date(2000, 2, 1, 23, 59, 59),
]
/*
====================数据=================================
@ -46,7 +46,7 @@ const getChannel = async function () {
try {
const result = await request({
url: '/beanConsume/getLiveChannel', // todo
data: {account:adminData.value.account}
data: { account: adminData.value.account }
})
console.log('请求频道列表成功', result)
//
@ -177,7 +177,7 @@ const ConsumeSelectBy = async function (val) {
pageNum: getObj.value.pageNum,
pageSize: getObj.value.pageSize,
beanConsumeFan: {
... beanConsumeFan.value,
...beanConsumeFan.value,
jwcode: beanConsumeFan.value.jwcode ? String(beanConsumeFan.value.jwcode) : '',
dept: beanConsumeFan.value.dept || '',
channel: beanConsumeFan.value.channel || '',
@ -190,7 +190,7 @@ const ConsumeSelectBy = async function (val) {
})
console.log('请求成功3', sortField)
console.log('接口响应结果',result);
console.log('接口响应结果', result);
if (result.code === 200 && result.data && result.data.list) {
tableData.value = result.data.list;
total.value = result.data.total;
@ -201,7 +201,7 @@ const ConsumeSelectBy = async function (val) {
const sumConsumeParams = {
payType: 7, // payType 7
beanConsumeFan: {
... beanConsumeFan.value,
...beanConsumeFan.value,
}
};
@ -215,7 +215,7 @@ const ConsumeSelectBy = async function (val) {
const data = resultTotalGold.data || resultTotalGold;
console.log('请求成功2', resultTotalGold.data)
console.log('permanentBean2',data.permanentBean)
console.log('permanentBean2', data.permanentBean)
// permanentBeanfreeBeantotalNum
permanentBean.value = Number(data.permanentBean) || 0;
freeBean.value = Number(data.freeBean) || 0;
@ -231,9 +231,9 @@ const ConsumeSelectBy = async function (val) {
//
const search = function () {
getObj.value.pageNum = 1
if(beanConsumeFan.value.jwcode){
if (beanConsumeFan.value.jwcode) {
const numRef = /^\d{1,9}$/;
if(!numRef.test(beanConsumeFan.value.jwcode)){
if (!numRef.test(beanConsumeFan.value.jwcode)) {
ElMessage.error('请检查精网号格式')
return
}
@ -273,7 +273,7 @@ const reset = function () {
const getToday = function () {
const today = dayjs()
const startTime = today.startOf('day').format('YYYY-MM-DD HH:mm:ss')
const endTime =today.endOf('day').format('YYYY-MM-DD HH:mm:ss')
const endTime = today.endOf('day').format('YYYY-MM-DD HH:mm:ss')
getTime.value = [startTime, endTime]
console.log('getTime', getTime.value)
activeTimeRange.value = 'today' //
@ -312,7 +312,7 @@ const getDept = async function () {
// url: '/general/dept',
url: '/beanConsume/getDept', // todo
data: {account:adminData.value.account}
data: { account: adminData.value.account }
})
console.log('请求地区列表成功', result)
//
@ -335,9 +335,9 @@ const handleSortChange = (column) => {
sortField.value = 'beanNum'
} else if (column.prop === 'consumeTime') {
sortField.value = 'consumeTime'
} else if(column.prop === 'buyBean') {
} else if (column.prop === 'buyBean') {
sortField.value = 'buyBean'
} else if(column.prop === 'freeBean') {
} else if (column.prop === 'freeBean') {
sortField.value = 'freeBean'
}
sortOrder.value = column.order === 'ascending' ? 'DESC' : 'ASC'
@ -468,80 +468,45 @@ const getTagText = (state) => {
</script>
<template>
<el-row>
<el-col>
<el-card style="margin-bottom: 20px;margin-top:10px">
<el-row style="margin-bottom: 10px">
<el-col :span="4">
<div class="head-card-element">
<el-text class="mx-1">精网号</el-text>
<el-input v-model="beanConsumeFan.jwcode" placeholder="请输入精网号" style="width: 150px" clearable />
</div>
</el-col>
<el-col :span="4">
<div class="head-card-element">
<el-text class="mx-1">地区</el-text>
<el-select v-model="beanConsumeFan.dept" placeholder="请选择地区" style="width: 150px" clearable>
<el-col style="margin-bottom: 10px">
<el-text>精网号</el-text>
<el-input v-model="beanConsumeFan.jwcode" placeholder="请输入精网号" style="width: 200px;margin-right: 20px"
clearable />
<el-text>地区</el-text>
<el-select v-model="beanConsumeFan.dept" placeholder="请选择地区" style="width: 200px;margin-right: 20px" clearable>
<el-option v-for="(item, index) in dept" :key="index" :label="item" :value="item" />
</el-select>
</div>
</el-col>
<el-col :span="5">
<div class="head-card-element">
<el-text class="mx-1">频道</el-text>
<el-select
v-model="beanConsumeFan.channel"
placeholder="请选择频道"
style="width: 180px"
clearable
filterable
allow-create
default-first-option
>
<el-text>频道</el-text>
<el-select v-model="beanConsumeFan.channel" placeholder="请选择频道" style="width: 200px" clearable filterable allow-create>
<el-option v-for="(item, index) in channels" :key="index" :label="item" :value="item" />
</el-select>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="head-card-element">
<el-text class="mx-1">消费时间</el-text>
<el-date-picker
v-model="getTime"
type="datetimerange"
range-separator="至"
start-placeholder="起始时间"
end-placeholder="结束时间"
style="width: 400px"
@change="handleDatePickerChange"
value-format="YYYY-MM-DD HH:mm:ss"
:default-time="defaultTime"
/>
<el-button @click="getToday()" style="margin-left: 10px" :type="activeTimeRange === 'today' ? 'primary' : ''"></el-button>
<el-button @click="getYesterday()" style="margin-left: 10px" :type="activeTimeRange === 'yesterday' ? 'primary' : ''"></el-button>
<el-button @click="get7Days()" style="margin-left: 10px" :type="activeTimeRange === '7days' ? 'primary' : ''">近7天</el-button>
<el-col>
<el-text>消费时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" style="width: 400px;margin-right:20px" @change="handleDatePickerChange"
value-format="YYYY-MM-DD HH:mm:ss" :default-time="defaultTime" />
<el-button @click="getToday()" :type="activeTimeRange === 'today' ? 'primary' : ''"></el-button>
<el-button @click="getYesterday()" :type="activeTimeRange === 'yesterday' ? 'primary' : ''"></el-button>
<el-button @click="get7Days()" :type="activeTimeRange === '7days' ? 'primary' : ''">近7天</el-button>
<el-button type="success" @click="reset()">重置</el-button>
<el-button type="primary" @click="search()">查询</el-button>
<el-button type="primary" @click="exportExcel()">导出Excel</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
</div>
</el-col>
</el-row>
</el-card>
</el-col>
</el-row>
<el-row>
<el-col>
<el-card>
<div>
金豆总数{{ format3(Math.abs(permanentBean+freeBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
金豆总数{{ format3(Math.abs(permanentBean + freeBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
付费金豆数{{ format3(Math.abs(permanentBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
免费金豆数{{ format3(Math.abs(freeBean)) }}
</div>
<!-- 设置表格容器的高度和滚动样式 -->
<div style="height: 576px; overflow-y: auto">
<el-table :data="tableData" style="width: 100%" height="576px" @sort-change="handleSortChange">
<div style="overflow-y: auto">
<el-table :data="tableData" style="width: 100%" height="550px" @sort-change="handleSortChange">
<el-table-column type="index" label="序号" width="80px" fixed="left">
<template #default="scope">
<span>{{
@ -554,18 +519,16 @@ const getTagText = (state) => {
<!-- 固定精网号列 -->
<el-table-column prop="jwcode" label="精网号" width="110px" fixed="left" />
<el-table-column prop="dept" label="地区" width="110px" />
<el-table-column prop="beanNum" label="金豆数量" sortable="custom" width="120px"/>
<el-table-column prop="buyBean" label="付费金豆数" sortable="custom" width="120px"/>
<el-table-column prop="freeBean" label="免费金豆数" sortable="custom" width="120px"/>
<el-table-column prop="beanNum" label="金豆数量" sortable="custom" width="120px" />
<el-table-column prop="buyBean" label="付费金豆数" sortable="custom" width="120px" />
<el-table-column prop="freeBean" label="免费金豆数" sortable="custom" width="120px" />
<el-table-column prop="channel" label="频道" width="190px" />
<el-table-column prop="type" label="会员类型" width="120px" >
<el-table-column prop="type" label="会员类型" width="120px">
<template #default="scope">
{{ consumeTypes.find(item => item.value === Number(scope.row.type))?.label || '未知类型' }}
{{consumeTypes.find(item => item.value === Number(scope.row.type))?.label || '未知类型'}}
</template>
</el-table-column>
<!-- <el-table-column prop="joinMethod" label="加入方式" width="120px" /> -->
<el-table-column prop="consumeTime" label="加入时间" sortable="custom" width="180px" />
<!-- <el-table-column prop="consumeTime" label="到期时间" width="180px" /> -->
</el-table>
</div>
@ -576,8 +539,6 @@ const getTagText = (state) => {
@current-change="handleCurrentChange"></el-pagination>
</div>
</el-card>
</el-col>
</el-row>
<!-- 导出弹窗 -->
<el-dialog v-model="exportListVisible" title="导出列表" width="80%">
@ -613,22 +574,6 @@ const getTagText = (state) => {
</template>
<style scoped>
.status {
display: flex;
}
.head-card {
display: flex;
}
.head-card-element {
margin-right: 20px;
}
.head-card-btn {
margin-left: auto;
}
.pagination {
display: flex;
margin-top: 20px;

158
src/views/consume/bean/liveStream.vue

@ -11,7 +11,7 @@ import moment from 'moment'
*/
const defaultTime = [
new Date(2000, 1, 1, 0, 0, 0),
new Date(2000, 2, 1,23 , 59, 59),
new Date(2000, 2, 1, 23, 59, 59),
]
const format3 = (num) => {
//
@ -49,7 +49,7 @@ const getGift = async function () {
try {
const result = await request({
url: '/beanConsume/getLiveGift', // todo
data: {account:adminData.value.account}
data: { account: adminData.value.account }
})
console.log('请求礼物列表成功', result)
//
@ -71,7 +71,7 @@ const getChannel = async function () {
try {
const result = await request({
url: '/beanConsume/getLiveChannel', // todo
data: {account:adminData.value.account}
data: { account: adminData.value.account }
})
console.log('请求频道列表成功', result)
//
@ -136,7 +136,7 @@ const getDept = async function () {
// url: '/general/dept',
url: '/beanConsume/getDept', // todo
data: {account:adminData.value.account}
data: { account: adminData.value.account }
})
console.log('请求地区列表成功', result)
//
@ -253,7 +253,7 @@ const selectLiveBy = async function (val) {
const data = resultTotalGold.data || resultTotalGold;
console.log('请求成功1', resultTotalGold.data) //undifined
console.log('permanentBean1',data.permanentBean)
console.log('permanentBean1', data.permanentBean)
// permanentBeanfreeBeantotalNum
permanentBean.value = Number(data.permanentBean) || 0;
freeBean.value = Number(data.freeBean) || 0;
@ -271,9 +271,9 @@ const selectLiveBy = async function (val) {
//
const search = function () {
getObj.value.pageNum = 1
if(beanConsumeLive.value.jwcode){
if (beanConsumeLive.value.jwcode) {
const numRef = /^\d{1,9}$/;
if(!numRef.test(beanConsumeLive.value.jwcode)){
if (!numRef.test(beanConsumeLive.value.jwcode)) {
ElMessage.error('请检查精网号格式')
return
}
@ -306,7 +306,7 @@ const reset = function () {
const getToday = function () {
const today = dayjs()
const startTime = today.startOf('day').format('YYYY-MM-DD HH:mm:ss')
const endTime =today.endOf('day').format('YYYY-MM-DD HH:mm:ss')
const endTime = today.endOf('day').format('YYYY-MM-DD HH:mm:ss')
getTime.value = [startTime, endTime]
console.log('getTime', getTime.value)
activeTimeRange.value = 'today' //
@ -347,9 +347,9 @@ const handleSortChange = (column) => {
sortField.value = 'beanNum'
} else if (column.prop === 'consumeTime') {
sortField.value = 'consumeTime'
} else if(column.prop === 'buyBean') {
} else if (column.prop === 'buyBean') {
sortField.value = 'buyBean'
} else if(column.prop === 'freeBean') {
} else if (column.prop === 'freeBean') {
sortField.value = 'freeBean'
}
sortOrder.value = column.order === 'ascending' ? 'DESC' : 'ASC'
@ -502,101 +502,58 @@ const getTagText = (state) => {
</script>
<template>
<el-row>
<el-col>
<el-card style="margin-bottom: 20px;margin-top:10px">
<el-row style="margin-bottom: 10px">
<el-col :span="4">
<div class="head-card-element">
<el-text class="mx-1">精网号</el-text>
<el-input v-model="beanConsumeLive.jwcode" placeholder="请输入精网号" style="width: 140px" clearable />
</div>
</el-col>
<el-col :span="4">
<div class="head-card-element">
<el-text class="mx-1">地区</el-text>
<el-select v-model="beanConsumeLive.dept" placeholder="请选择地区" style="width: 140px" clearable>
<el-col style="margin-bottom: 10px">
<el-text>精网号</el-text>
<el-input v-model="beanConsumeLive.jwcode" placeholder="请输入精网号" style="width: 200px;margin-right: 20px"
clearable />
<el-text>地区</el-text>
<el-select v-model="beanConsumeLive.dept" placeholder="请选择地区" style="width: 200px;margin-right: 20px" clearable>
<el-option v-for="(item, index) in dept" :key="index" :label="item" :value="item" />
</el-select>
</div>
</el-col>
<!-- <el-col :span="4">
<div class="head-card-element">
<el-text class="mx-1">类型</el-text>
<el-select v-model="beanConsumeLive.type" placeholder="请选择类型" style="width: 140px" clearable @change="handleTypeChange">
<el-option v-for="(item, index) in consumeTypes" :key="index" :label="item.label" :value="item.value" />
</el-select>
</div>
</el-col> -->
<el-col :span="4" >
<div class="head-card-element">
<el-text class="mx-1">礼物名称</el-text>
<el-select v-model="beanConsumeLive.gift" placeholder="请选择礼物名称" style="width: 140px" clearable
filterable
allow-create
default-first-option
>
<el-text>礼物名称</el-text>
<el-select v-model="beanConsumeLive.gift" placeholder="请选择礼物名称" style="width: 200px;margin-right: 20px" clearable
filterable allow-create default-first-option>
<el-option v-for="(item, index) in gifts" :key="index" :label="item" :value="item" />
</el-select>
</div>
</el-col>
<el-col :span="4">
<div class="head-card-element">
<el-text class="mx-1">频道</el-text>
<el-select
v-model="beanConsumeLive.liveChannel"
placeholder="请选择频道"
style="width: 150px"
clearable
filterable
allow-create
default-first-option
>
<el-text>频道</el-text>
<el-select v-model="beanConsumeLive.liveChannel" placeholder="请选择频道" style="width: 200px;margin-right: 20px"
clearable filterable allow-create default-first-option>
<el-option v-for="(item, index) in channels" :key="index" :label="item" :value="item" />
</el-select>
</div>
</el-col>
<el-col :span="4">
<div class="head-card-element">
<el-text class="mx-1">直播间</el-text>
<el-input v-model="beanConsumeLive.liveName" placeholder="请输入直播间" style="width: 150px" clearable />
</div>
<el-text>直播间</el-text>
<el-input v-model="beanConsumeLive.liveName" placeholder="请输入直播间" style="width: 200px;margin-right: 20px"
clearable />
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="head-card-element">
<el-text class="mx-1" >消费时间</el-text>
<el-col>
<el-text>消费时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange" :default-time="defaultTime"/>
<el-button @click="getToday()" style="margin-left: 10px"
:type="activeTimeRange === 'today' ? 'primary' : ''"> </el-button>
<el-button @click="getYesterday()" style="margin-left: 10px"
:type="activeTimeRange === 'yesterday' ? 'primary' : ''"> </el-button>
<el-button @click="get7Days()" style="margin-left: 10px"
:type="activeTimeRange === '7days' ? 'primary' : ''"> 近7天</el-button>
end-placeholder="结束时间" style="width: 400px;margin-right: 20px;" @change="handleDatePickerChange"
:default-time="defaultTime" />
<el-button @click="getToday()" :type="activeTimeRange === 'today' ? 'primary' : ''"> </el-button>
<el-button @click="getYesterday()" :type="activeTimeRange === 'yesterday' ? 'primary' : ''"> </el-button>
<el-button @click="get7Days()" :type="activeTimeRange === '7days' ? 'primary' : ''"> 近7天</el-button>
<el-button type="success" @click="reset()">重置</el-button>
<el-button type="primary" @click="search()">查询</el-button>
<el-button type="primary" @click="exportExcel()">导出excel</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
</div>
</el-col>
</el-row>
</el-card>
</el-col>
</el-row>
<el-row>
<el-col>
<el-card>
<div>
金豆总数{{ format3(Math.abs(permanentBean+freeBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
金豆总数{{ format3(Math.abs(permanentBean + freeBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
付费金豆数{{ format3(Math.abs(permanentBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
免费金豆数{{ format3(Math.abs(freeBean)) }}
</div>
<!-- 设置表格容器的高度和滚动样式 -->
<div style="height: 576px; overflow-y: auto">
<el-table :data="tableData" style="width: 100%" height="576px" @sort-change="handleSortChange">
<div style="overflow-y: auto">
<el-table :data="tableData" style="width: 100%" height="550px" @sort-change="handleSortChange">
<el-table-column type="index" label="序号" width="80px" fixed="left">
<template #default="scope">
<span>{{
@ -609,32 +566,25 @@ const getTagText = (state) => {
<!-- 固定精网号列 -->
<el-table-column prop="jwcode" label="精网号" width="110px" fixed="left" />
<el-table-column prop="dept" label="地区" width="110px" />
<el-table-column prop="gift" label="礼物" width="140px" >
<el-table-column prop="gift" label="礼物" width="140px">
</el-table-column>
<el-table-column prop="beanNum" label="金豆数量" sortable="custom" width="120px"/>
<el-table-column prop="beanNum" label="金豆数量" sortable="custom" width="120px" />
<el-table-column prop="isBackpack" label="背包礼物" width="120px">
<template #default="scope">
{{ scope.row.isBackpack == 1 ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column prop="buyBean" label="付费金豆数" sortable="custom" width="120px"/>
<el-table-column prop="freeBean" label="免费金豆数" sortable="custom" width="120px"/>
<el-table-column prop="liveChannel" label="频道" width="180px" />
<el-table-column prop="buyBean" label="付费金豆数" sortable="custom" width="120px" />
<el-table-column prop="freeBean" label="免费金豆数" sortable="custom" width="120px" />
<el-table-column prop="liveChannel" label="频道" width="120px" />
<el-table-column prop="liveName" label="直播间名称" width="160px" show-overflow-tooltip />
<el-table-column prop="consumeTime" label="消费时间" sortable="custom" width="180px" />
</el-table>
</div>
<!-- 分页 -->
<div class="pagination">
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]"
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]" style="margin-top: 20px;"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
</div>
</el-card>
</el-col>
</el-row>
<!-- 导出弹窗 -->
<el-dialog v-model="exportListVisible" title="导出列表" width="80%">
@ -670,22 +620,6 @@ const getTagText = (state) => {
</template>
<style scoped>
.status {
display: flex;
}
.head-card {
display: flex;
}
.head-card-element {
margin-right: 20px;
}
.head-card-btn {
margin-left: auto;
}
.pagination {
display: flex;
margin-top: 20px;

1
src/views/usergold/userbean.vue

@ -168,6 +168,7 @@ const trim = () => {
const reset = function () {
searchObj.value.jwcode = ''
searchObj.value.dept = ''
get()
}
const handlePageSizeChange = function (val) {
pagination.value.pageSize = val

Loading…
Cancel
Save