充值时间:
+ end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange"
+ :default-time="defaultTime"
+ />
今
@@ -204,6 +206,12 @@ const trimJwCode = () => {
}
const formatTime = (val) => val ? moment(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),
+]
+
// 这是获取用户信息的接口
const adminData = ref({})
// 充值明细表格
diff --git a/src/views/audit/gold/refundAudit.vue b/src/views/audit/gold/refundAudit.vue
index a6a180f..b27e092 100644
--- a/src/views/audit/gold/refundAudit.vue
+++ b/src/views/audit/gold/refundAudit.vue
@@ -43,7 +43,7 @@
提交时间:
+ end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange" :default-time="defaultTime"/>
今
@@ -176,7 +176,10 @@ import {ElMessage} from 'element-plus'
import API from '@/util/http.js'
import moment from 'moment'
import {marketMapping, reverseMarketMapping} from "@/utils/marketMap.js";
-
+const defaultTime = [
+ new Date(2000, 1, 1, 0, 0, 0),
+ new Date(2000, 2, 1,23 , 59, 59),
+]
// 标记当前激活的时间范围按钮
const activeTimeRange = ref('')
// 日期选择器变化时清除按钮激活状态
diff --git a/src/views/consume/gold/coinConsumeDetail.vue b/src/views/consume/gold/coinConsumeDetail.vue
index e8a486b..82206d1 100644
--- a/src/views/consume/gold/coinConsumeDetail.vue
+++ b/src/views/consume/gold/coinConsumeDetail.vue
@@ -13,7 +13,10 @@ import {marketMapping, reverseMarketMapping} from "@/utils/marketMap.js";
// 时间格式化
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),
+]
/*
====================数据=================================
*/
@@ -626,7 +629,7 @@ const getMarket = async function () {
消耗时间:
+ end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange" :default-time="defaultTime"/>
今
diff --git a/src/views/recharge/gold/coinRechargeDetail.vue b/src/views/recharge/gold/coinRechargeDetail.vue
index 6383792..336248d 100644
--- a/src/views/recharge/gold/coinRechargeDetail.vue
+++ b/src/views/recharge/gold/coinRechargeDetail.vue
@@ -21,6 +21,10 @@ const getAdminData = async function () {
console.log('请求失败', error)
}
}
+const defaultTime = [
+ new Date(2000, 1, 1, 0, 0, 0),
+ new Date(2000, 2, 1,23 , 59, 59),
+]
// 变量
// 充值明细表格
const tableData = ref([])
@@ -580,7 +584,7 @@ const props = {multiple: true}
充值时间:
+ end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange" :default-time="defaultTime"/>
今
diff --git a/src/views/refund/gold/coinRefundDetail.vue b/src/views/refund/gold/coinRefundDetail.vue
index 23d78fc..98dc287 100644
--- a/src/views/refund/gold/coinRefundDetail.vue
+++ b/src/views/refund/gold/coinRefundDetail.vue
@@ -6,7 +6,10 @@ import moment from 'moment'
import API from '@/util/http.js'
import request from '@/util/http.js'
import {marketMapping, reverseMarketMapping} from "@/utils/marketMap.js";
-
+const defaultTime = [
+ new Date(2000, 1, 1, 0, 0, 0),
+ new Date(2000, 2, 1,23 , 59, 59),
+]
// 精网号去空格
const trimJwCode = () => {
if (refundUser.value.jwcode) {
@@ -631,7 +634,7 @@ const getMarket = async function () {
退款时间:
+ end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange" :default-time="defaultTime"/>
今
diff --git a/src/views/usergold/gold/clientCountDetail.vue b/src/views/usergold/gold/clientCountDetail.vue
index 84273cd..033b915 100644
--- a/src/views/usergold/gold/clientCountDetail.vue
+++ b/src/views/usergold/gold/clientCountDetail.vue
@@ -12,6 +12,10 @@ import dayjs from "dayjs";
// 标记当前激活的时间范围按钮
const activeTimeRange = ref('')
+const defaultTime = [
+ new Date(2000, 1, 1, 0, 0, 0),
+ new Date(2000, 2, 1,23 , 59, 59),
+]
// 日期选择器变化时清除按钮激活状态
const handleDatePickerChange = () => {
activeTimeRange.value = ''
@@ -560,7 +564,7 @@ const getMarket = async function () {
更新时间:
+ end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange" :default-time="defaultTime"/>
今
From 9ea40369e064876d84cecd5dc5be654b2bb16811 Mon Sep 17 00:00:00 2001
From: lihuilin
Date: Sat, 2 Aug 2025 13:27:27 +0800
Subject: [PATCH 8/9] =?UTF-8?q?=E5=90=88=E8=AE=A1=E6=95=B0ok?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.env.development | 3 +-
src/router/index.js | 14 +-
src/utils/menuTreePermission.js | 5 +
src/views/audit/beanAudit.vue | 403 +++++++++++++++++++++++++++++++++++++++-
src/views/usergold/userbean.vue | 173 ++++++++++++++++-
5 files changed, 587 insertions(+), 11 deletions(-)
diff --git a/.env.development b/.env.development
index b6264c1..3a7a354 100644
--- a/.env.development
+++ b/.env.development
@@ -3,10 +3,11 @@
# VITE_API_BASE='http://18.143.76.3:10704/'
# VITE_API_BASE='http://192.168.9.52:10705/'
VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload
- VITE_API_BASE='http://192.168.9.28:8081/'
# VITE_API_BASE='http://192.168.9.28:8081/'
# sunjiabei
# VITE_API_BASE='http://192.168.9.28:8081/'
# VITE_API_BASE='http://192.168.5.92:8081/'
# zhangyong
# VITE_API_BASE='http://192.168.3.83:8081/'
+# 李慧琳
+VITE_API_BASE='http://localhost:8081/'
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index 6a32f14..3a20703 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -52,6 +52,11 @@ const routes = [
meta: {permissionId: [13, 14]} // 对应"查看退款审核"id=13、"退款审批"id=14
},
]
+ },{
+ path: 'beanAudit',
+ name: "beanAudit",
+ component: () => import("../views/audit/beanAudit.vue"),
+ meta: {permissionId: [54,55]}
},
@@ -229,6 +234,13 @@ const routes = [
},
]
},
+ {
+ path: 'userbean',
+ name: "userbean",
+ component: () => import("../views/usergold/userbean.vue"),
+ meta:{ permissionId: 45 }
+ },
+
// 权限管理
{
path: '/permissions',
@@ -313,7 +325,7 @@ router.beforeEach(async (to, from, next) => {
// 获取管理员信息
let roleId = null;
- console.log('adminData:', adminData)
+ console.log('路由的adminData:', adminData.value)
try {
roleId = adminData.value.roleId;
if (!roleId) {
diff --git a/src/utils/menuTreePermission.js b/src/utils/menuTreePermission.js
index f1a8a01..7aa00e8 100644
--- a/src/utils/menuTreePermission.js
+++ b/src/utils/menuTreePermission.js
@@ -51,6 +51,11 @@ export const permissionMapping = {
Recharge_Audit: 31, // 充值审核
Refund_Audit: 32, // 退款审核
+
+ Bean_Audit_Select: 54, // 查看金豆审核
+ Bean_Audit_Approval: 55, // 金豆审核
+
+ View_Bean_Details: 56, // 查看金豆明细
};
// 递归查找菜单中是否存在目标id
diff --git a/src/views/audit/beanAudit.vue b/src/views/audit/beanAudit.vue
index 96c0baf..d7a3028 100644
--- a/src/views/audit/beanAudit.vue
+++ b/src/views/audit/beanAudit.vue
@@ -1,11 +1,404 @@
-
+
+
+
+
+
+
-
+
+ 总条数:{{ stats.num }}条
+ 总金豆数:{{ stats.beanNum}}金豆
+ 永久金豆:{{ stats.permanentBean }}金豆
+ 免费金豆:{{ stats.freeBean }}金豆
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ moment(row.createTime).format('YYYY-MM-DD HH:mm:ss') }}
+
+
+
+
+ {{ row.auditTime ? moment(row.auditTime).format('YYYY-MM-DD HH:mm:ss') : '--' }}
+
+
+
+
+
+
+
+
+ 通过
+
+
+
+
+ 驳回
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/views/usergold/userbean.vue b/src/views/usergold/userbean.vue
index 96c0baf..9cc11ed 100644
--- a/src/views/usergold/userbean.vue
+++ b/src/views/usergold/userbean.vue
@@ -1,11 +1,176 @@
-
+
+ 重置
+ 查询
+
+
-
+
+
+ 现有金豆数:{{ stats.sumBean }}金豆
+ 付费金豆数:{{ stats.permanentBean }}金豆
+ 免费金豆数:{{ stats.freeBean }}金豆
+ 消费金豆总数:{{ stats.consumeSum }}金豆
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From b00cf54a89940d7afe4d489b57e9fc15e647fcff Mon Sep 17 00:00:00 2001
From: zhangrenyuan <18990852002@163.com>
Date: Sat, 2 Aug 2025 15:51:56 +0800
Subject: [PATCH 9/9] completed liveStream dieHardFan and articleVidel's page
---
.env.development | 4 ++--
src/views/consume/bean/articleVideo.vue | 33 ++++++++++++++++++++-------------
src/views/consume/bean/beanConsume.vue | 4 ++++
src/views/consume/bean/dieHardFan.vue | 12 ++++++------
src/views/consume/bean/liveStream.vue | 22 ++++++++++++----------
5 files changed, 44 insertions(+), 31 deletions(-)
diff --git a/.env.development b/.env.development
index 315e256..d3bf591 100644
--- a/.env.development
+++ b/.env.development
@@ -1,10 +1,10 @@
-VITE_API_BASE='https://hwjb.homilychart.com/dev/admin'
+# VITE_API_BASE='https://hwjb.homilychart.com/dev/admin'
# 测试环境
# VITE_API_BASE='http://18.143.76.3:10704/'
# VITE_API_BASE='http://192.168.9.52:10705/'
VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload
# VITE_API_BASE='http://192.168.9.28:8081/'
-# VITE_API_BASE='http://192.168.9.28:8081/'
+ VITE_API_BASE='http://localhost:8081/'
# sunjiabei
# VITE_API_BASE='http://192.168.9.28:8081/'
# VITE_API_BASE='http://192.168.5.92:8081/'
diff --git a/src/views/consume/bean/articleVideo.vue b/src/views/consume/bean/articleVideo.vue
index 4fc3888..389d933 100644
--- a/src/views/consume/bean/articleVideo.vue
+++ b/src/views/consume/bean/articleVideo.vue
@@ -310,7 +310,11 @@ const handleSortChange = (column) => {
sortField.value = 'beanNum'
} else if (column.prop === 'consumeTime') {
sortField.value = 'consumeTime'
- }
+ } else if (column.prop === 'buyBean') {
+ sortField.value = 'buyBean'
+ } else if (column.prop === 'freeBean') {
+ sortField.value = 'freeBean'
+ }
sortOrder.value = column.order === 'ascending' ? 'DESC' : 'ASC'
ConsumeSelectBy()
}
@@ -360,6 +364,8 @@ const exportExcel = async function () {
articleName: beanConsumeArticle.value.articleName || '',
author: beanConsumeArticle.value.author || '',
beanNum: beanConsumeArticle.value.beanNum || '',
+ buyBean: beanConsumeArticle.value.buyBean || '',
+ freeBean: beanConsumeArticle.value.freeBean || '',
consumeTime: beanConsumeArticle.value.consumeTime || '',
sortField: sortField.value || 'consumeTime',
sortOrder: sortOrder.value || 'desc'
@@ -453,7 +459,7 @@ const getTagText = (state) => {
精网号:
-
+
@@ -480,21 +486,22 @@ const getTagText = (state) => {
-
+
文章/视频标题:
-
+
+
+
+
- 作者:
-
+ 作者:
+
-
-
-
+
付费时间:
{
}}
-
+
-
+
-
+
-
+
{{ formatTime(scope.row.consumeTime) }}
diff --git a/src/views/consume/bean/beanConsume.vue b/src/views/consume/bean/beanConsume.vue
index dbdb993..6844048 100644
--- a/src/views/consume/bean/beanConsume.vue
+++ b/src/views/consume/bean/beanConsume.vue
@@ -5,6 +5,7 @@
:type="activeTab === 'addBeanConsume' ? 'primary' : 'default'"
@click="navigateTo('addBeanConsume')"
:disabled="!hasAdd"
+ style="width: 120px;"
>
新增消耗
@@ -12,6 +13,7 @@
:type="activeTab === 'liveStream' ? 'primary' : 'default'"
@click="navigateTo('liveStream')"
:disabled="!hasLive"
+ style="width: 120px;"
>
直播
@@ -19,6 +21,7 @@
:type="activeTab === 'dieHardFan' ? 'primary' : 'default'"
@click="navigateTo('dieHardFan')"
:disabled="!hasFan"
+ style="width: 120px;"
>
铁粉
@@ -26,6 +29,7 @@
:type="activeTab === 'articleVideo' ? 'primary' : 'default'"
@click="navigateTo('articleVideo')"
:disabled="!hasArticleVideo"
+ style="width: 120px;"
>
文章/视频
diff --git a/src/views/consume/bean/dieHardFan.vue b/src/views/consume/bean/dieHardFan.vue
index 36a9f88..a5415b0 100644
--- a/src/views/consume/bean/dieHardFan.vue
+++ b/src/views/consume/bean/dieHardFan.vue
@@ -324,17 +324,17 @@ const handleSortChange = (column) => {
sortField.value = 'consumeTime'
}
sortOrder.value = column.order === 'ascending' ? 'DESC' : 'ASC'
- selectLiveBy()
+ ConsumeSelectBy()
}
const handlePageSizeChange = function (val) {
getObj.value.pageSize = val
- selectLiveBy()
+ ConsumeSelectBy()
}
const handleCurrentChange = function (val) {
getObj.value.pageNum = val
- selectLiveBy()
+ ConsumeSelectBy()
}
/*
====================计算属性=================================
@@ -541,15 +541,15 @@ const getTagText = (state) => {
-
-
+
+
{{ consumeTypes.find(item => item.value === Number(scope.row.type))?.label || '未知类型' }}
-
+
diff --git a/src/views/consume/bean/liveStream.vue b/src/views/consume/bean/liveStream.vue
index 5a03d8b..5b55882 100644
--- a/src/views/consume/bean/liveStream.vue
+++ b/src/views/consume/bean/liveStream.vue
@@ -487,18 +487,22 @@ const getTagText = (state) => {
-
+
+
礼物名称:
-
+
@@ -572,14 +576,12 @@ const getTagText = (state) => {
-
-
- {{ consumeTypes.find(item => item.value === Number(scope.row.type))?.label || '未知类型' }}
-
+
+
-
+
-
+