Browse Source

金豆消耗文章

zhangyong/feature-20250815160302-金币优化
ZhangYong 2 months ago
parent
commit
f82d1358e5
  1. 168
      src/views/consume/bean/articleVideo.vue

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

@ -463,99 +463,105 @@ const getTagText = (state) => {
</script> </script>
<template> <template>
<el-card style="margin-bottom: 10px;margin-top:10px">
<el-col style="margin-bottom: 10px">
<el-card style="margin-bottom: 10px;margin-top:10px">
<el-col style="margin-bottom: 10px; ">
<div style="display:flex">
<div style="width: 15vw; display:flex; align-items:center">
<el-text>精网号</el-text> <el-text>精网号</el-text>
<el-input v-model="beanConsumeArticle.jwcode" placeholder="请输入精网号" style="width: 200px;margin-right: 20px" clearable />
<el-input v-model="beanConsumeArticle.jwcode" style="width:10vw;" placeholder="请输入精网号" clearable />
</div>
<div style="width: 15vw; display:flex; align-items:center">
<el-text>地区</el-text> <el-text>地区</el-text>
<el-select v-model="beanConsumeArticle.dept" placeholder="请选择地区" style="width: 200px;margin-right: 20px" clearable>
<el-select v-model="beanConsumeArticle.dept" style="width:10vw;" placeholder="请选择地区" clearable>
<el-option v-for="(item, index) in dept" :key="index" :label="item" :value="item" /> <el-option v-for="(item, index) in dept" :key="index" :label="item" :value="item" />
</el-select> </el-select>
</div>
<div style="width: 15vw; display:flex; align-items:center">
<el-text>类型</el-text> <el-text>类型</el-text>
<el-select v-model="beanConsumeArticle.payMode" placeholder="请选择类型" style="width: 200px;margin-right: 20px" clearable
@change="handlePayModeChange">
<el-select v-model="beanConsumeArticle.payMode" style="width:10vw;" placeholder="请选择类型" clearable @change="handlePayModeChange">
<el-option label="打赏" value="0" /> <el-option label="打赏" value="0" />
<el-option label="付费购买" value="1" /> <el-option label="付费购买" value="1" />
<el-option label="其他" value="2" /> <el-option label="其他" value="2" />
</el-select> </el-select>
<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>
<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>
</el-col>
</el-card>
<el-card>
<div>
金豆总数{{ format3(Math.abs(permanentBean + freeBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
付费金豆数{{ format3(Math.abs(permanentBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
免费金豆数{{ format3(Math.abs(freeBean)) }}
</div> </div>
<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>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
</template>
</el-table-column>
<!-- 固定姓名列 -->
<el-table-column prop="name" label="姓名" width="150px" fixed="left" show-overflow-tooltip />
<!-- 固定精网号列 -->
<el-table-column prop="jwcode" label="精网号" width="110px" fixed="left" />
<el-table-column prop="dept" label="地区" width="110px" />
<el-table-column prop="type" label="类型" width="120px">
<template #default="scope">
{{
Array.isArray(consumeTypes)
? consumeTypes.find(item => item.value === Number(scope.row.type))?.label || '未知类型'
: '未知类型'
}}
</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="articleId" label="文章/视频ID" width="150px" />
<el-table-column prop="articleName" label="文章/视频标题" width="150px" show-overflow-tooltip />
<el-table-column prop="author" label="作者" width="120px" show-overflow-tooltip />
<el-table-column prop="consumeTime" label="付费时间" sortable="custom" width="180px">
<template #default="scope">
{{ formatTime(scope.row.consumeTime) }}
</template>
</el-table-column>
</el-table>
<div style="width: 15vw; display:flex; align-items:center">
<el-text>文章/视频ID</el-text>
<el-input v-model="beanConsumeArticle.articleId" style="width:10vw;" placeholder="请输入文章/视频ID" clearable />
</div> </div>
<!-- 分页 -->
<div class="pagination">
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
<div style="width: 15vw; display:flex; align-items:center; margin-left:1vw">
<el-text>作者</el-text>
<el-input v-model="beanConsumeArticle.author"style="width:10vw;" placeholder="请输入作者" clearable />
</div> </div>
</el-card>
</div>
</el-col>
<el-col>
<div>
<el-text>付费时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" style="width: 20vw;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-card>
<el-card>
<div>
金豆总数{{ format3(Math.abs(permanentBean + freeBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
付费金豆数{{ format3(Math.abs(permanentBean)) }}&nbsp;&nbsp;&nbsp;&nbsp;
免费金豆数{{ format3(Math.abs(freeBean)) }}
</div>
<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>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
</template>
</el-table-column>
<!-- 固定姓名列 -->
<el-table-column prop="name" label="姓名" width="150px" fixed="left" show-overflow-tooltip />
<!-- 固定精网号列 -->
<el-table-column prop="jwcode" label="精网号" width="110px" fixed="left" />
<el-table-column prop="dept" label="地区" width="110px" />
<el-table-column prop="type" label="类型" width="120px">
<template #default="scope">
{{
Array.isArray(consumeTypes)
? consumeTypes.find(item => item.value === Number(scope.row.type))?.label || '未知类型'
: '未知类型'
}}
</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="articleId" label="文章/视频ID" width="150px" />
<el-table-column prop="articleName" label="文章/视频标题" width="150px" show-overflow-tooltip />
<el-table-column prop="author" label="作者" width="120px" show-overflow-tooltip />
<el-table-column prop="consumeTime" label="付费时间" sortable="custom" width="180px">
<template #default="scope">
{{ formatTime(scope.row.consumeTime) }}
</template>
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<div class="pagination">
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
</div>
</el-card>
<!-- 导出弹窗 --> <!-- 导出弹窗 -->
<el-dialog v-model="exportListVisible" title="导出列表" width="80%"> <el-dialog v-model="exportListVisible" title="导出列表" width="80%">

Loading…
Cancel
Save