Browse Source

bug 修改和新功能补充

test
zhaoln 1 month ago
parent
commit
71a7a115a6
  1. 7
      gold-system/package-lock.json
  2. 1
      gold-system/package.json
  3. 1
      gold-system/src/views/audit/rechargeAudit.vue
  4. 98
      gold-system/src/views/goldBeen/goldenBeenConsum.vue
  5. 188
      gold-system/src/views/goldBeen/goldenBeenDetail.vue
  6. 2
      gold-system/stats.html

7
gold-system/package-lock.json

@ -29,6 +29,7 @@
"@types/vue": "^2.0.0",
"@vitejs/plugin-legacy": "^6.0.2",
"@vitejs/plugin-vue": "^5.1.4",
"file-saver": "^2.0.5",
"rollup-plugin-visualizer": "^5.14.0",
"sass": "^1.86.3",
"terser": "^5.38.1",
@ -3642,6 +3643,12 @@
"node": ">=0.10.0"
}
},
"node_modules/file-saver": {
"version": "2.0.5",
"resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz",
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==",
"dev": true
},
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",

1
gold-system/package.json

@ -33,6 +33,7 @@
"@types/vue": "^2.0.0",
"@vitejs/plugin-legacy": "^6.0.2",
"@vitejs/plugin-vue": "^5.1.4",
"file-saver": "^2.0.5",
"rollup-plugin-visualizer": "^5.14.0",
"sass": "^1.86.3",
"terser": "^5.38.1",

1
gold-system/src/views/audit/rechargeAudit.vue

@ -515,6 +515,7 @@ onMounted(async function () {
await getAdminData()
await getActivity()
await get()
await getArea()
})
//
const sortField = ref('')

98
gold-system/src/views/goldBeen/goldenBeenConsum.vue

@ -85,7 +85,7 @@
</el-form>
</div>
<div class="table-box">
<p>金豆总数充值金豆总数合计新币数</p>
<p>合计数:实际用户金豆数:</p>
<el-table
:data="tableData"
style="width: 100%"
@ -101,47 +101,19 @@
</el-table-column>
<el-table-column fixed="left" prop="username" label="姓名" width="150" />
<el-table-column fixed="left" prop="jwcode" label="精网号" width="120" />
<el-table-column prop="area" label="所属地区" width="120" />
<el-table-column prop="type" label="类型" width="110">
<!-- 模板内容 -->
<template #default="scope">
<span v-if="scope.row.updateType == 1">
<span>消费</span>
</span>
<span v-if="scope.row.updateType == 0">
<span>充值</span>
</span>
<span v-if="scope.row.updateType == 2">
<span>退款</span>
</span>
<span v-if="scope.row.updateType == 3">
<span>其他</span>
</span>
</template>
</el-table-column>
<el-table-column prop="order" label="订单号" width="120" />
<el-table-column prop="been" label="金豆数量" width="120">
<el-table-column prop="area" label="地区" width="120" />
<el-table-column prop="good" label="商品名称" width="120">
</el-table-column>
<el-table-column prop="paybeen" label="付费金豆" width="120">
<el-table-column prop="been" label="金豆价格" width="120">
</el-table-column>
<el-table-column prop="freebeen" label="免费金豆" width="120">
<el-table-column prop="chanel" label="频道" width="120">
</el-table-column>
<el-table-column prop="count" label="金额"></el-table-column>
<el-table-column prop="consumePlatform" label="充值平台" width="140">
<template #default="scope">
<!-- 使用非严格相等比较 -->
<span v-if="scope.row.consumePlatform == 0">初始化金币</span>
<span v-if="scope.row.consumePlatform == 1">ERP系统</span>
<span v-if="scope.row.consumePlatform == 3">Homily Link</span>
<span v-if="scope.row.consumePlatform == 2">Homily Chart</span>
<span v-if="scope.row.consumePlatform == 4">金币系统</span>
</template>
<el-table-column prop="room" label="直播间" width="120">
</el-table-column>
<el-table-column prop="notes" label="备注" width="210"></el-table-column>
<el-table-column
prop="createTime"
sortable="“custom”"
label="充值时间"
label="消费时间"
width="210"
show-overflow-tooltip
>
@ -151,42 +123,32 @@
}}</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" min-width="120">
<template #default>
<el-tooltip class="box-item" effect="light" placement="top-start">
<template #default>
<el-button link type="primary" size="small"> 返还金豆 </el-button>
</template>
<template #content>
<div>是否申请返还该条消费</div>
<el-button size="small">确定 </el-button>
<el-button size="small">取消 </el-button>
</template>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<div class="pagination">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handlePageSizeChange"
@current-change="handleCurrentChange"
>
<div>{{ total }},每页</div>
<el-select
v-model="getObj.pageSize"
class="page-size"
@change="getInit({})"
style="width: 80px"
>
<el-option
v-for="item in [5, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select>
<div></div>
</el-pagination>
<el-pagination
background
layout="prev, pager, next,slot"
:page-size="getObj.pageSize"
:total="total"
:current-page="getObj.pageNum"
@current-change="getInit({})"
>
<div>跳至</div>
<el-input v-model="getObj.pageNum" style="width: 40px" />
<div></div>
</el-pagination>
</div>
</div>
@ -256,7 +218,15 @@ const search = function () {}
const reset = function (formEl) {
formEl.resetFields()
}
const handlePageSizeChange = (val) => {
getObj.value.pageSize = val
getObj.value.pageNum = 1
getInit({})
}
const handleCurrentChange = function (val) {
getObj.value.pageNum = val
getInit({})
}
//
getInit({})
</script>

188
gold-system/src/views/goldBeen/goldenBeenDetail.vue

@ -66,24 +66,27 @@
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 240px"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
:unlinkPanels="true"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="search">查询</el-button>
<el-button type="success" @click="reset(ruleFormRef)">重置</el-button>
<el-button type="primary">导出excel</el-button>
<el-button type="primary" @click="exportExcel">导出excel</el-button>
</el-form-item>
</el-form>
</div>
<div class="table-box">
<p>金豆总数充值金豆总数合计新币</p>
<p>金豆总数充值金豆总数合计金额</p>
<el-table
:data="tableData"
style="width: 100%"
:default-sort="{ prop: 'createTime', order: 'descending' }"
height="584px"
@sort-change="handleSortChange"
>
<el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope">
@ -94,24 +97,7 @@
</el-table-column>
<el-table-column fixed="left" prop="username" label="姓名" width="150" />
<el-table-column fixed="left" prop="jwcode" label="精网号" width="120" />
<el-table-column prop="area" label="所属地区" width="120" />
<el-table-column prop="type" label="类型" width="110">
<!-- 模板内容 -->
<template #default="scope">
<span v-if="scope.row.updateType == 1">
<span>消费</span>
</span>
<span v-if="scope.row.updateType == 0">
<span>充值</span>
</span>
<span v-if="scope.row.updateType == 2">
<span>退款</span>
</span>
<span v-if="scope.row.updateType == 3">
<span>其他</span>
</span>
</template>
</el-table-column>
<el-table-column prop="area" label="地区" width="120" />
<el-table-column prop="order" label="订单号" width="120" />
<el-table-column prop="been" label="金豆数量" width="120">
</el-table-column>
@ -150,52 +136,106 @@
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handlePageSizeChange"
@current-change="handleCurrentChange"
>
<div>{{ total }},每页</div>
<el-select
v-model="getObj.pageSize"
class="page-size"
@change="getInit({})"
style="width: 80px"
>
<el-option
v-for="item in [5, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select>
<div></div>
</el-pagination>
<el-pagination
background
layout="prev, pager, next,slot"
:page-size="getObj.pageSize"
:total="total"
:current-page="getObj.pageNum"
@current-change="getInit({})"
>
<div>跳至</div>
<el-input v-model="getObj.pageNum" style="width: 40px" />
<div></div>
</el-pagination>
</div>
</div>
<!-- 这是导出excel的弹窗 -->
<el-dialog
v-model="dialogVisible"
title="请选择导出条件"
width="500"
:close-on-click-modal="false"
>
<template #footer>
<el-form
ref="ruleFormRef"
style="max-width: 600px"
:model="excelData"
:rules="rules"
label-width="auto"
class="demo-ruleForm"
status-icon
>
<el-form-item prop="activityName" label="精网号:">
<el-input
v-model="excelData.jwcode"
placeholder="请输入精网号"
style="width: 220px"
/>
</el-form-item>
<el-form-item label="所属地区:"
><el-select
v-model="excelData.area"
placeholder="请选择所属地区"
style="width: 240px"
clearable
>
<el-option
v-for="item in areaList"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item label="更新时间:">
<el-radio-group v-model="excelData.timegap">
<el-radio value="1">今天</el-radio>
<el-radio value="3">近三天</el-radio>
<el-radio value="7">近一周</el-radio>
<el-radio value="30">近一个月</el-radio>
</el-radio-group>
</el-form-item>
<el-button
type="primary"
size="small"
style="margin-left: 10px"
@click="exportConfirm()"
>确定</el-button
>
</el-form>
</template>
</el-dialog>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { reactive, ref } from 'vue'
import { FormInstance } from 'element-plus'
import { ElMessage } from 'element-plus'
import moment from 'moment'
import API from '@/util/http'
import { utils, write } from 'xlsx'
import { saveAs } from 'file-saver'
//
const tableData = ref([])
//
const total = ref(100)
const dialogVisible = ref(false)
const excelData = reactive({
jwcode: '',
area: '',
timegap: ''
})
const areaList = ref<string[]>([])
const rules = ref({
jwcode: [{ required: true, message: '请输入精网号', trigger: 'blur' }],
area: [{ required: true, message: '请选择所属地区', trigger: 'change' }]
})
const handlePageSizeChange = (val) => {
getObj.value.pageSize = val
getObj.value.pageNum = 1
getInit({})
}
const handleCurrentChange = function (val) {
getObj.value.pageNum = val
getInit({})
}
const platformList = ref<string[]>([
'stripe',
'ios',
@ -224,6 +264,35 @@ const getObj = ref({
pageNum: 1,
pageSize: 50
})
const exportExcel = function () {
dialogVisible.value = true
// console.log('excel', excelData)
// API({
// url: '/dou/getYve',
// method: 'post',
// data: {
// ...excelData
// }
// })
// ElMessage.success('')
}
const exportConfirm = function () {
const data = [
{ 姓名: '张三', 年龄: 28, 城市: '北京' },
{ 姓名: '李四', 年龄: 32, 城市: '上海' },
{ 姓名: '王五', 年龄: 25, 城市: '广州' }
]
const worksheet = utils.json_to_sheet(data)
const workbook = utils.book_new()
utils.book_append_sheet(workbook, worksheet, 'Sheet1')
const wbout = write(workbook, { bookType: 'xlsx', type: 'array' })
saveAs(
new Blob([wbout], { type: 'application/octet-stream' }),
'数据导出.xlsx'
)
}
const ruleFormRef = ref<FormInstance>()
//
const getInit = async function ({
@ -247,16 +316,27 @@ const getInit = async function ({
}
})
tableData.value = result.data.list
console.log('tableData', tableData.value)
total.value = result.data.total
console.log('total', total.value)
} catch (error) {
console.log('请求失败', error)
//
}
}
const handleSortChange = (column) => {
const { prop, order } = column
if (order === 'ascending') {
getInit({ sortField: prop, sortOrder: 'ASC' })
} else if (order === 'descending') {
getInit({ sortField: prop, sortOrder: 'DESC' })
}
}
//
const search = function () {}
const search = function () {
const [startTime, endTime] = detailY.value.createTime
console.log(startTime, endTime)
getObj.value.pageNum = 1
getInit({})
}
//
const reset = function (formEl) {
formEl.resetFields()

2
gold-system/stats.html
File diff suppressed because it is too large
View File

Loading…
Cancel
Save