Browse Source

Merge branch 'zhangyong/feature-20250716164232-金币前端' into milestone-20250711-金币前端二期

zhangrenyuan/feature-20250714163943-金币前端二期
zhangyongQINGHU 2 weeks ago
parent
commit
f022917453
  1. 186
      src/views/consume/coinConsumeDetail.vue

186
src/views/consume/coinConsumeDetail.vue

@ -1,6 +1,6 @@
<script setup>
import {computed, onMounted, ref} from 'vue'
import {dayjs, ElMessage} from 'element-plus'
import { computed, onMounted, ref } from 'vue'
import { dayjs, ElMessage } from 'element-plus'
import request from '@/util/http'
import API from '@/util/http'
import moment from 'moment'
@ -177,7 +177,7 @@ const ConsumeSelectBy = async function (val) {
//
// detail.value
const detailWithoutSort = {...consumeUser.value}
const detailWithoutSort = { ...consumeUser.value }
delete detailWithoutSort.sortField
delete detailWithoutSort.sortOrder
@ -283,14 +283,14 @@ const reset = function () {
const getToday = function () {
const today = new Date()
const startTime = new Date(
today.getFullYear(),
today.getMonth(),
today.getDate()
today.getFullYear(),
today.getMonth(),
today.getDate()
)
const endTime = new Date(
today.getFullYear(),
today.getMonth(),
today.getDate() + 1
today.getFullYear(),
today.getMonth(),
today.getDate() + 1
)
getTime.value = [startTime, endTime]
console.log('getTime', getTime.value)
@ -303,14 +303,14 @@ const getYesterday = function () {
const yesterday = new Date()
yesterday.setDate(yesterday.getDate() - 1)
const startTime = new Date(
yesterday.getFullYear(),
yesterday.getMonth(),
yesterday.getDate()
yesterday.getFullYear(),
yesterday.getMonth(),
yesterday.getDate()
)
const endTime = new Date(
yesterday.getFullYear(),
yesterday.getMonth(),
yesterday.getDate() + 1
yesterday.getFullYear(),
yesterday.getMonth(),
yesterday.getDate() + 1
)
getTime.value = [startTime, endTime]
console.log('getTime', getTime.value)
@ -322,14 +322,14 @@ const getYesterday = function () {
const get7Days = function () {
const today = new Date()
const startTime = new Date(
today.getFullYear(),
today.getMonth(),
today.getDate() - 6
today.getFullYear(),
today.getMonth(),
today.getDate() - 6
)
const endTime = new Date(
today.getFullYear(),
today.getMonth(),
today.getDate() + 1
today.getFullYear(),
today.getMonth(),
today.getDate() + 1
)
getTime.value = [startTime, endTime]
console.log('getTime', getTime.value)
@ -431,18 +431,18 @@ onMounted(async function () {
const exportExcel = async function () {
const params = {
consumUser: {
consumeUser: {
jwcode: consumeUser.value.jwcode || '',
payPlatform: consumeUser.value.payPlatform || '',
market: consumeUser.value.market || '',
startTime: consumeUser.value.startTime || '',
endTime: consumeUser.value.endTime || '',
goodsName: consumeUser.value.goodsName || ''
},
page: getObj.value.pageNum,
size: total.value
goodsName: consumeUser.value.goodsName || '',
sortField: sortField.value || '',
sortOrder: sortOrder.value || ''
}
}
const res = await API({url: '/export/exportConsume', data: params})
const res = await API({ url: '/export/exportConsume', data: params })
if (res.code === 200) {
ElMessage.success('导出成功')
}
@ -497,8 +497,8 @@ const getTagType = (state) => {
return 'info';
case 1:
return 'primary';
case 2:
return'success';
case 2:
return 'success';
case 3:
return 'danger';
default:
@ -512,8 +512,8 @@ const getTagText = (state) => {
return '待执行';
case 1:
return '执行中';
case 2:
return'执行完成';
case 2:
return '执行完成';
case 3:
return '执行出错';
default:
@ -528,42 +528,35 @@ const getTagText = (state) => {
<el-card style="margin-bottom: 20px;margin-top:10px">
<el-row style="margin-bottom: 10px">
<el-col :span="5">
<div class="head-card-element">
<el-text class="mx-1" >精网号</el-text>
<el-input
v-model="consumeUser.jwcode"
placeholder="请输入精网号"
style="width: 150px"
clearable
/>
<div class="head-card-element">
<el-text class="mx-1">精网号</el-text>
<el-input v-model="consumeUser.jwcode" placeholder="请输入精网号" style="width: 150px" clearable />
</div>
</el-col>
<el-col :span="6">
<div class="head-card-element">
<el-text class="mx-1" size="large">商品名称</el-text>
<el-select v-model="consumeUser.goodsName" placeholder="请选择商品名称" size="large" style="width: 180px"
clearable>
clearable>
<!-- 修改 v-for 绑定逻辑 -->
<el-option v-for="(item, index) in goods" :key="index" :label="item" :value="item"/>
<el-option v-for="(item, index) in goods" :key="index" :label="item" :value="item" />
</el-select>
</div>
</el-col>
<el-col :span="6">
<div class="head-card-element">
<el-text class="mx-1" size="large">所属地区</el-text>
<el-select v-model="consumeUser.market" placeholder="请选择所属地区" size="large" style="width: 180px"
clearable>
<el-option v-for="(item, index) in market" :key="index" :label="item" :value="item"/>
<el-select v-model="consumeUser.market" placeholder="请选择所属地区" size="large" style="width: 180px" clearable>
<el-option v-for="(item, index) in market" :key="index" :label="item" :value="item" />
</el-select>
</div>
</el-col>
<el-col :span="6">
<div class="head-card-element">
<el-text class="mx-1" size="large">消耗平台</el-text>
<el-select v-model="consumeUser.payPlatform" placeholder="请选择消耗平台" size="large"
style="width: 180px"
clearable>
<el-option v-for="item in consumePlatform" :key="item.value" :label="item.label" :value="item.value"/>
<el-select v-model="consumeUser.payPlatform" placeholder="请选择消耗平台" size="large" style="width: 180px"
clearable>
<el-option v-for="item in consumePlatform" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
</el-col>
@ -573,10 +566,13 @@ const getTagText = (state) => {
<div class="head-card-element">
<el-text class="mx-1" size="large">消耗时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange"/>
<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" @change="handleDatePickerChange" />
<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>
<!-- </div>
</el-col>
<el-col :span="3">
@ -605,16 +601,16 @@ const getTagText = (state) => {
<el-table-column type="index" label="序号" width="80px" fixed="left">
<template #default="scope">
<span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
</template>
</el-table-column>
<!-- 固定姓名列 -->
<el-table-column prop="name" label="姓名" width="150px" fixed="left"/>
<el-table-column prop="name" label="姓名" width="150px" fixed="left" />
<!-- 固定精网号列 -->
<el-table-column prop="jwcode" label="精网号" width="110px" fixed="left"/>
<el-table-column prop="market" label="所属地区" width="110px"/>
<el-table-column prop="goodsName" label="商品" width="160px" show-overflow-tooltip/>
<el-table-column prop="jwcode" label="精网号" width="110px" fixed="left" />
<el-table-column prop="market" label="所属地区" width="110px" />
<el-table-column prop="goodsName" label="商品" width="160px" show-overflow-tooltip />
<el-table-column prop="payPlatform" label="消耗平台" width="120px">
<template #default="scope">
<!-- 使用非严格相等比较 -->
@ -632,8 +628,8 @@ const getTagText = (state) => {
<template #default="scope">
{{
(scope.row.taskGold +
scope.row.freeGold +
scope.row.permanentGold) / 100
scope.row.freeGold +
scope.row.permanentGold) / 100
}}
</template>
</el-table-column>
@ -654,18 +650,17 @@ const getTagText = (state) => {
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" width="200px" show-overflow-tooltip/>
<el-table-column prop="adminName" label="提交人" width="110px"/>
<el-table-column prop="createTime" label="消耗时间" sortable="custom" width="180px"/>
<el-table-column prop="remark" label="备注" width="200px" show-overflow-tooltip />
<el-table-column prop="adminName" label="提交人" width="110px" />
<el-table-column prop="createTime" 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]"
layout="total, sizes, prev, pager, next, jumper" :total="total"
@size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
</div>
</el-card>
</el-col>
@ -673,36 +668,35 @@ const getTagText = (state) => {
<!-- 导出弹窗 -->
<el-dialog v-model="exportListVisible" title="导出列表" width="80%">
<el-table :data="exportList" style="width: 100%" :loading="exportListLoading">
<el-table-column prop="fileName" label="文件名" />
<el-table-column prop="state" label="状态">
<template #default="scope">
<el-tag :type="getTagType(scope.row.state)"
:effect="scope.row.state === 3 ? 'light' : 'plain'">
{{ getTagText(scope.row.state) }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间">
<template #default="scope">
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }}
</template>
</el-table-column>
<el-table-column label="操作">
<template #default="scope">
<el-button type="primary" size="small" @click="downloadExportFile(scope.row)"
:disabled="scope.row.state !== 2">
下载
</el-button>
</template>
</el-table-column>
</el-table>
<template #footer>
<div class="dialog-footer">
<el-button text @click="exportListVisible = false">关闭</el-button>
</div>
</template>
</el-dialog>
<el-table :data="exportList" style="width: 100%" :loading="exportListLoading">
<el-table-column prop="fileName" label="文件名" />
<el-table-column prop="state" label="状态">
<template #default="scope">
<el-tag :type="getTagType(scope.row.state)" :effect="scope.row.state === 3 ? 'light' : 'plain'">
{{ getTagText(scope.row.state) }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间">
<template #default="scope">
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }}
</template>
</el-table-column>
<el-table-column label="操作">
<template #default="scope">
<el-button type="primary" size="small" @click="downloadExportFile(scope.row)"
:disabled="scope.row.state !== 2">
下载
</el-button>
</template>
</el-table-column>
</el-table>
<template #footer>
<div class="dialog-footer">
<el-button text @click="exportListVisible = false">关闭</el-button>
</div>
</template>
</el-dialog>
</template>
<style scoped>

Loading…
Cancel
Save