From 35842c1048f7039264401e81af64c9b1bfac450b Mon Sep 17 00:00:00 2001 From: hongxilin <17663930442@163.com> Date: Tue, 3 Dec 2024 10:17:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=85=E5=80=BC=E5=AE=A1=E6=A0=B8bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vue/gold-system/src/assets/css/common.css | 23 + vue/gold-system/src/views/audit/rechargeAudit.vue | 4 +- vue/gold-system/src/views/audit/refundAudit.vue | 94 ++- .../src/views/managerecharge/activity.vue | 5 +- .../src/views/recharge/adminRecharge.vue | 8 +- vue/gold-system/src/views/recharge/allRecharge.vue | 4 +- vue/gold-system/src/views/usergold/index.vue | 276 ++++---- vue/gold-system/src/views/workspace/index.vue | 722 +++++++++++++++------ 8 files changed, 724 insertions(+), 412 deletions(-) diff --git a/vue/gold-system/src/assets/css/common.css b/vue/gold-system/src/assets/css/common.css index 0df6ed2..cf4d1c7 100644 --- a/vue/gold-system/src/assets/css/common.css +++ b/vue/gold-system/src/assets/css/common.css @@ -23,4 +23,27 @@ border-radius: 50%; display: block; background-color: grey; +} +.yellow-dot { + margin: 7px 5px 0px 0px; + width: 10px; + height: 10px; + display: block; + background-color: #ffe733; +} + +.light-green-dot { + margin: 7px 5px 0px 0px; + width: 10px; + height: 10px; + display: block; + background-color: #35e383; +} + +.blue-dot { + margin: 7px 5px 0px 0px; + width: 10px; + height: 10px; + display: block; + background-color: #5f8ff5; } \ No newline at end of file diff --git a/vue/gold-system/src/views/audit/rechargeAudit.vue b/vue/gold-system/src/views/audit/rechargeAudit.vue index e62a201..8f63a71 100644 --- a/vue/gold-system/src/views/audit/rechargeAudit.vue +++ b/vue/gold-system/src/views/audit/rechargeAudit.vue @@ -113,7 +113,7 @@ const reset = function () { rechargeVo.value.area = ''; rechargeVo.value.startDate = ''; rechargeVo.value.endDate = ''; - get(); + getTime.value = {}; } // 今天 const getToday = function () { @@ -398,7 +398,7 @@ onMounted(async function () {
- + diff --git a/vue/gold-system/src/views/audit/refundAudit.vue b/vue/gold-system/src/views/audit/refundAudit.vue index 590b2ed..f119210 100644 --- a/vue/gold-system/src/views/audit/refundAudit.vue +++ b/vue/gold-system/src/views/audit/refundAudit.vue @@ -9,8 +9,8 @@ import moment from 'moment'; // 充值明细表格 const tableData = ref([]); // 搜索====================================== -// 搜索rechargeVo -const rechargeVo = ref({}); +// 搜索consumeDetail +const consumeDetail = ref({}); // 搜索对象 const getObj = ref({ pageNum: 1, @@ -38,27 +38,15 @@ const passObj = ref({}); //标签页默认高亮选项 const activeName = ref('all') -// 支付方式选项 -const payWay = [ +// 退款类型选项 +const refundType = [ { - value: '微信', - label: '微信', + value: '退金币', + label: '退金币', }, { - value: '支付宝', - label: '支付宝', - }, - { - value: '银联', - label: '银联', - }, - { - value: '信用卡', - label: '信用卡', - }, - { - value: '借记卡', - label: '借记卡', + value: '退商品', + label: '退商品', }, ] @@ -82,16 +70,16 @@ const get = async function (val) { // 搜索参数时间赋值 if (getTime.value != null) { if (getTime.value.startDate != '' && getTime.value.endDate != '') { - rechargeVo.value.startDate = getTime.value[0]; - rechargeVo.value.endDate = getTime.value[1]; + consumeDetail.value.startDate = getTime.value[0]; + consumeDetail.value.endDate = getTime.value[1]; } } else { - rechargeVo.value.startDate = ''; - rechargeVo.value.endDate = ''; + consumeDetail.value.startDate = ''; + consumeDetail.value.endDate = ''; } console.log('搜索参数', getObj.value); // 发送POST请求 - const result = await axios.post('http://192.168.8.93:10030/audit/audit/refund', { ...getObj.value, rechargeVo: { ...rechargeVo.value } }); + const result = await axios.post('http://192.168.8.93:10030/audit/audit/refund', { ...getObj.value, consumeDetail: { ...consumeDetail.value } }); // 将响应结果存储到响应式数据中 console.log('请求成功', result); @@ -108,12 +96,10 @@ const get = async function (val) { } // 重置 const reset = function () { - rechargeVo.value.activityId = ''; - rechargeVo.value.payWay = ''; - rechargeVo.value.area = ''; - rechargeVo.value.startDate = ''; - rechargeVo.value.endDate = ''; - get(); + consumeDetail.value.area = ''; + consumeDetail.value.startDate = ''; + consumeDetail.value.endDate = ''; + getTime.value = {}; } // 今天 const getToday = function () { @@ -146,18 +132,18 @@ const get7Days = function () { //全部充值明细 const adminAll = function () { console.log('adminAll'); - rechargeVo.value.status = ''; + consumeDetail.value.status = ''; get(); } //待审核充值明细 const adminWait = function () { - rechargeVo.value.status = 0; + consumeDetail.value.status = 0; get(); console.log('adminWait'); } //已通过充值明细 const adminPass = function () { - rechargeVo.value.status = 1; + consumeDetail.value.status = 1; get(); console.log('adminPass'); } @@ -337,18 +323,18 @@ onMounted(async function () {
- 活动名称: - 退款类型: + - +
- 支付方式: - 退款商品: + @@ -359,7 +345,7 @@ onMounted(async function () {
所属地区: - @@ -397,21 +383,21 @@ onMounted(async function () {
- - + + - - + + - + - + + + - \ No newline at end of file diff --git a/vue/gold-system/src/views/workspace/index.vue b/vue/gold-system/src/views/workspace/index.vue index 3e9c175..f2d1f8c 100644 --- a/vue/gold-system/src/views/workspace/index.vue +++ b/vue/gold-system/src/views/workspace/index.vue @@ -3,236 +3,406 @@ import { all } from 'axios'; import * as echarts from 'echarts'; import { ref, onMounted, reactive, computed } from "vue"; import { VscInfo } from 'vue-icons-plus/vsc' +import { Bs1CircleFill, Bs2CircleFill, Bs3CircleFill, Bs4Circle, Bs5Circle, Bs6Circle, Bs7Circle, Bs8Circle } from 'vue-icons-plus/bs' + +// 变量 +// 搜索对象 +const getObj = ref({ + goldType: '', + platform: 'all', +}); //默认高亮标签页 const activeName = ref('recharge') -// 默认高亮单选按钮 -const platform = ref('all') +// 金币分类选项 +const gold = [ + { + value: '', + label: '全部类型', + }, + { + value: 'rechargeGole', + label: '充值金币', + }, + { + value: 'freeGold', + label: '免费金币', + }, + { + value: 'taskGold', + label: '付费金币', + }, +] +// 图表 +// 指定图表的配置项和数据 +const option1 = { + tooltip: { + trigger: 'axis', + axisPointer: { + // Use axis to trigger tooltip + type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow' + } + }, + legend: {}, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true + }, + xAxis: { + type: 'category', + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + }, + yAxis: { + type: 'value' -onMounted(function () { - // 第一个柱状图 基于准备好的dom,初始化echarts实例 - var rechargeBar = echarts.init(document.getElementById('recharge')); - // 指定图表的配置项和数据 - var option = { - title: { - text: 'ECharts 入门示例' + }, + series: [ + { + name: '充值金币', + color: '#35e383', + type: 'bar', + stack: 'total', + label: { + show: true + }, + emphasis: { + focus: 'series' + }, + data: [320, 302, 301, 334, 390, 330, 320] }, - tooltip: {}, - legend: { - data: ['销量'] + { + name: '免费金币', + color: '#5f8ff5', + type: 'bar', + stack: 'total', + label: { + show: true + }, + emphasis: { + focus: 'series' + }, + data: [120, 132, 101, 134, 90, 230, 210] + }, + { + name: '任务金币', + color: '#ffe733', + type: 'bar', + stack: 'total', + label: { + show: true + }, + emphasis: { + focus: 'series' + }, + data: [220, 182, 191, 234, 290, 330, 310] + } + ] +}; + +const option2 = { + tooltip: { + trigger: 'axis', + axisPointer: { + // Use axis to trigger tooltip + type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow' + } + }, + legend: {}, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true + }, + xAxis: { + type: 'category', + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + }, + yAxis: { + type: 'value' + + }, + series: [ + { + name: '充值金币', + color: '#35e383', + type: 'bar', + stack: 'total', + label: { + show: true + }, + emphasis: { + focus: 'series' + }, + data: [320, 302, 301, 334, 390, 330, 320] }, - xAxis: { - data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'] + { + name: '免费金币', + color: '#5f8ff5', + type: 'bar', + stack: 'total', + label: { + show: true + }, + emphasis: { + focus: 'series' + }, + data: [120, 132, 101, 134, 90, 230, 210] }, - yAxis: {}, - series: [ - { - name: '销量', - type: 'bar', - data: [5, 20, 36, 10, 10, 20] - } - ] - }; + { + name: '任务金币', + color: '#ffe733', + type: 'bar', + stack: 'total', + label: { + show: true + }, + emphasis: { + focus: 'series' + }, + data: [220, 182, 191, 234, 290, 330, 310] + } + ] +}; +const option3 = { + tooltip: { + trigger: 'item' + }, + legend: { + top: '5%', + left: 'center' + }, + series: [ + { + name: 'Access From', + type: 'pie', + radius: ['40%', '70%'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center' + }, + emphasis: { + label: { + show: true, + fontSize: 40, + fontWeight: 'bold' + } + }, + labelLine: { + show: false + }, + data: [ + { value: 1048, name: 'Search Engine' }, + { value: 735, name: 'Direct' }, + { value: 580, name: 'Email' }, + { value: 484, name: 'Union Ads' }, + { value: 300, name: 'Video Ads' } + ] + } + ] +}; +const option4 = { + tooltip: { + trigger: 'item' + }, + legend: { + top: '5%', + left: 'center' + }, + series: [ + { + name: 'Access From', + type: 'pie', + radius: ['40%', '70%'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center' + }, + emphasis: { + label: { + show: true, + fontSize: 40, + fontWeight: 'bold' + } + }, + labelLine: { + show: false + }, + data: [ + { value: 1048, name: 'Search Engine' }, + { value: 735, name: 'Direct' }, + { value: 580, name: 'Email' }, + { value: 484, name: 'Union Ads' }, + { value: 300, name: 'Video Ads' } + ] + } + ] +}; +const option5 = { + tooltip: { + trigger: 'item' + }, + legend: { + top: '5%', + left: 'center' + }, + series: [ + { + name: 'Access From', + type: 'pie', + radius: ['40%', '70%'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center' + }, + emphasis: { + label: { + show: true, + fontSize: 40, + fontWeight: 'bold' + } + }, + labelLine: { + show: false + }, + data: [ + { value: 1048, name: 'Search Engine' }, + { value: 735, name: 'Direct' }, + { value: 580, name: 'Email' }, + { value: 484, name: 'Union Ads' }, + { value: 300, name: 'Video Ads' } + ] + } + ] +}; +const option6 = { + tooltip: { + trigger: 'item' + }, + legend: { + top: '5%', + left: 'center' + }, + series: [ + { + name: 'Access From', + type: 'pie', + radius: ['40%', '70%'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center' + }, + emphasis: { + label: { + show: true, + fontSize: 40, + fontWeight: 'bold' + } + }, + labelLine: { + show: false + }, + data: [ + { value: 1048, name: 'Search Engine' }, + { value: 735, name: 'Direct' }, + { value: 580, name: 'Email' }, + { value: 484, name: 'Union Ads' }, + { value: 300, name: 'Video Ads' } + ] + } + ] +}; + +const list = ref([]); + +// 方法 +// 搜索方法 +const get = function () { + console.log(getObj.value); +} +// 全部平台 +const allPlatform = function () { + list.value = [ + { value: 100, name: '项目1' }, + { value: 100, name: '项目2' }, + { value: 100, name: '项目3' }, + { value: 100, name: '项目4' }, + { value: 100, name: '项目5' } + ] + option6.series.data = list.value; + // 第4个饼状图 基于准备好的dom,初始化echarts实例 + var pie = echarts.init(document.getElementById('goldCategory')); // 使用刚指定的配置项和数据显示图表。 - rechargeBar.setOption(option); + pie.setOption(option6); + getObj.value.platform = 'all'; + get(); +} +// HC +const HomilyChart = function () { + list.value = [ + { value: 100, name: '项目1' }, + { value: 200, name: '项目2' }, + { value: 300, name: '项目3' }, + { value: 400, name: '项目4' }, + { value: 500, name: '项目5' } + ] + getObj.value.platform = 'HomilyChart'; + get(); +} +// Link +const HomilyLink = function () { + list.value = [ + { value: 100, name: '项目1' }, + { value: 200, name: '项目2' }, + { value: 100, name: '项目3' }, + { value: 200, name: '项目4' }, + { value: 100, name: '项目5' } + ] + getObj.value.platform = 'HomilyLink'; + get(); +} +onMounted(function () { + get(); + // 第一个柱状图 基于准备好的dom,初始化echarts实例 + var rechargeBar = echarts.init(document.getElementById('recharge')); + // 使用刚指定的配置项和数据显示图表。 + rechargeBar.setOption(option1); //第二个柱状图 基于准备好的dom,初始化echarts实例 var consumeBar = echarts.init(document.getElementById('consume')); - // 指定图表的配置项和数据 - var option = { - title: { - text: 'ECharts 入门示例' - }, - tooltip: {}, - legend: { - data: ['销量'] - }, - xAxis: { - data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'] - }, - yAxis: {}, - series: [ - { - name: '销量', - type: 'bar', - data: [5, 20, 36, 10, 10, 20] - } - ] - }; // 使用刚指定的配置项和数据显示图表。 - consumeBar.setOption(option); + consumeBar.setOption(option2); // 第一个饼状图 基于准备好的dom,初始化echarts实例 var yearRechargePie = echarts.init(document.getElementById('yearRecharge')); - var option = { - tooltip: { - trigger: 'item' - }, - legend: { - top: '5%', - left: 'center' - }, - series: [ - { - name: 'Access From', - type: 'pie', - radius: ['40%', '70%'], - avoidLabelOverlap: false, - label: { - show: false, - position: 'center' - }, - emphasis: { - label: { - show: true, - fontSize: 40, - fontWeight: 'bold' - } - }, - labelLine: { - show: false - }, - data: [ - { value: 1048, name: 'Search Engine' }, - { value: 735, name: 'Direct' }, - { value: 580, name: 'Email' }, - { value: 484, name: 'Union Ads' }, - { value: 300, name: 'Video Ads' } - ] - } - ] - }; + // 使用刚指定的配置项和数据显示图表。 - yearRechargePie.setOption(option); + yearRechargePie.setOption(option3); // 第二个饼状图 基于准备好的dom,初始化echarts实例 var yearConsumePie = echarts.init(document.getElementById('yearConsume')); - var option = { - tooltip: { - trigger: 'item' - }, - legend: { - top: '5%', - left: 'center' - }, - series: [ - { - name: 'Access From', - type: 'pie', - radius: ['40%', '70%'], - avoidLabelOverlap: false, - label: { - show: false, - position: 'center' - }, - emphasis: { - label: { - show: true, - fontSize: 40, - fontWeight: 'bold' - } - }, - labelLine: { - show: false - }, - data: [ - { value: 1048, name: 'Search Engine' }, - { value: 735, name: 'Direct' }, - { value: 580, name: 'Email' }, - { value: 484, name: 'Union Ads' }, - { value: 300, name: 'Video Ads' } - ] - } - ] - }; + // 使用刚指定的配置项和数据显示图表。 - yearConsumePie.setOption(option); + yearConsumePie.setOption(option4); // 第三个饼状图 基于准备好的dom,初始化echarts实例 var nowGoldPie = echarts.init(document.getElementById('nowGold')); - var option = { - tooltip: { - trigger: 'item' - }, - legend: { - top: '5%', - left: 'center' - }, - series: [ - { - name: 'Access From', - type: 'pie', - radius: ['40%', '70%'], - avoidLabelOverlap: false, - label: { - show: false, - position: 'center' - }, - emphasis: { - label: { - show: true, - fontSize: 40, - fontWeight: 'bold' - } - }, - labelLine: { - show: false - }, - data: [ - { value: 1048, name: 'Search Engine' }, - { value: 735, name: 'Direct' }, - { value: 580, name: 'Email' }, - { value: 484, name: 'Union Ads' }, - { value: 300, name: 'Video Ads' } - ] - } - ] - }; + // 使用刚指定的配置项和数据显示图表。 - nowGoldPie.setOption(option); + nowGoldPie.setOption(option5); - // 第四个饼状图 基于准备好的dom,初始化echarts实例 + // 第4个饼状图 基于准备好的dom,初始化echarts实例 var goldCategoryPie = echarts.init(document.getElementById('goldCategory')); - var option = { - tooltip: { - trigger: 'item' - }, - legend: { - top: '5%', - left: 'center' - }, - series: [ - { - name: 'Access From', - type: 'pie', - radius: ['40%', '70%'], - avoidLabelOverlap: false, - label: { - show: false, - position: 'center' - }, - emphasis: { - label: { - show: true, - fontSize: 40, - fontWeight: 'bold' - } - }, - labelLine: { - show: false - }, - data: [ - { value: 1048, name: 'Search Engine' }, - { value: 735, name: 'Direct' }, - { value: 580, name: 'Email' }, - { value: 484, name: 'Union Ads' }, - { value: 300, name: 'Video Ads' } - ] - } - ] - }; + // 使用刚指定的配置项和数据显示图表。 - goldCategoryPie.setOption(option); + goldCategoryPie.setOption(option6); + }) @@ -279,10 +449,124 @@ onMounted(function () { -
+
+
+
+
+ + 充值金币 +
+
+ + 免费金币 +
+
+ + 任务金币 +
+
+
+
+ 门店金币充值排名 + + + +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+ +
+
-
+
+
+
+
+ + 充值金币 +
+
+ + 免费金币 +
+
+ + 任务金币 +
+
+
+
+ 门店金币消费排名 + + + +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+ +
+
@@ -309,11 +593,11 @@ onMounted(function () { @@ -324,7 +608,25 @@ onMounted(function () {