Browse Source

金币系统工作台大致框架

Hongxilin
hongxilin 7 months ago
parent
commit
56f78b5bba
  1. 2
      vue/gold-system/README.md
  2. 7
      vue/gold-system/index.html
  3. 26
      vue/gold-system/package-lock.json
  4. 1
      vue/gold-system/package.json
  5. 2
      vue/gold-system/src/views/index.vue
  6. 12
      vue/gold-system/src/views/managerecharge/activity.vue
  7. 8
      vue/gold-system/src/views/recharge/adminRecharge.vue
  8. 124
      vue/gold-system/src/views/workspace/index.vue

2
vue/gold-system/README.md

@ -17,3 +17,5 @@ npm install element-plus --save 下载element-plus组件
npm install @element-plus/icons-vue 下载element-plus图标库 npm install @element-plus/icons-vue 下载element-plus图标库
npm install vue-icons-plus --save 下载外部图标库 npm install vue-icons-plus --save 下载外部图标库
npm install echarts 安装echarts组件

7
vue/gold-system/index.html

@ -11,3 +11,10 @@
<script type="module" src="/src/main.ts"></script> <script type="module" src="/src/main.ts"></script>
</body> </body>
</html> </html>
<style>
html,body,#app{
height:100%;
margin: 0px;
padding: 0px;
}
</style>

26
vue/gold-system/package-lock.json

@ -10,6 +10,7 @@
"dependencies": { "dependencies": {
"@element-plus/icons-vue": "^2.3.1", "@element-plus/icons-vue": "^2.3.1",
"axios": "^1.7.8", "axios": "^1.7.8",
"echarts": "^5.5.1",
"element-plus": "^2.8.8", "element-plus": "^2.8.8",
"vue": "^3.5.12", "vue": "^3.5.12",
"vue-icons-plus": "^0.1.7", "vue-icons-plus": "^0.1.7",
@ -1159,6 +1160,16 @@
"node": ">=0.4.0" "node": ">=0.4.0"
} }
}, },
"node_modules/echarts": {
"version": "5.5.1",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/echarts/-/echarts-5.5.1.tgz",
"integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "2.3.0",
"zrender": "5.6.0"
}
},
"node_modules/element-plus": { "node_modules/element-plus": {
"version": "2.8.8", "version": "2.8.8",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/element-plus/-/element-plus-2.8.8.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/element-plus/-/element-plus-2.8.8.tgz",
@ -1520,6 +1531,12 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/tslib": {
"version": "2.3.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
"license": "0BSD"
},
"node_modules/typescript": { "node_modules/typescript": {
"version": "5.6.3", "version": "5.6.3",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/typescript/-/typescript-5.6.3.tgz", "resolved": "https://mirrors.huaweicloud.com/repository/npm/typescript/-/typescript-5.6.3.tgz",
@ -1663,6 +1680,15 @@
"peerDependencies": { "peerDependencies": {
"typescript": ">=5.0.0" "typescript": ">=5.0.0"
} }
},
"node_modules/zrender": {
"version": "5.6.0",
"resolved": "https://mirrors.huaweicloud.com/repository/npm/zrender/-/zrender-5.6.0.tgz",
"integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==",
"license": "BSD-3-Clause",
"dependencies": {
"tslib": "2.3.0"
}
} }
} }
} }

1
vue/gold-system/package.json

@ -11,6 +11,7 @@
"dependencies": { "dependencies": {
"@element-plus/icons-vue": "^2.3.1", "@element-plus/icons-vue": "^2.3.1",
"axios": "^1.7.8", "axios": "^1.7.8",
"echarts": "^5.5.1",
"element-plus": "^2.8.8", "element-plus": "^2.8.8",
"vue": "^3.5.12", "vue": "^3.5.12",
"vue-icons-plus": "^0.1.7", "vue-icons-plus": "^0.1.7",

2
vue/gold-system/src/views/index.vue

@ -124,7 +124,7 @@ const router = useRouter();
.el-aside { .el-aside {
background-color: #08193d; background-color: #08193d;
height: 100vh;
min-height: 100vh;
width: 200px; width: 200px;
} }

12
vue/gold-system/src/views/managerecharge/activity.vue

@ -60,14 +60,22 @@ const tableData = [
] ]
//
//
const getObj = ref({ const getObj = ref({
page: 1, page: 1,
size: 10, size: 10,
}) })
// //
const total = ref(100) const total = ref(100)
//
const addObj = ref({
activityName: '',
freeGold: '',
rechargeRatio: '',
startTime: '',
endTime: '',
adminName: '',
})
// //
const addActivityVisible = ref(false) const addActivityVisible = ref(false)

8
vue/gold-system/src/views/recharge/adminRecharge.vue

@ -185,10 +185,10 @@ const handleClick = function (tab, event) {
<el-col> <el-col>
<el-card> <el-card>
<el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="handleClick"> <el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="全部" name="all" @click="adminAll()"></el-tab-pane>
<el-tab-pane label="待审核" name="wait" @click="adminWait()"></el-tab-pane>
<el-tab-pane label="已通过" name="pass" @click="adminPass()"></el-tab-pane>
<el-tab-pane label="已驳回" name="reject" @click="adminReject()"></el-tab-pane>
<el-tab-pane label="全部" name="all" ></el-tab-pane>
<el-tab-pane label="待审核" name="wait" ></el-tab-pane>
<el-tab-pane label="已通过" name="pass" ></el-tab-pane>
<el-tab-pane label="已驳回" name="reject"></el-tab-pane>
</el-tabs> </el-tabs>
<div> <div>
<el-table :data="tableData" style="width: 100%"> <el-table :data="tableData" style="width: 100%">

124
vue/gold-system/src/views/workspace/index.vue

@ -1,13 +1,131 @@
<script setup> <script setup>
import * as echarts from 'echarts';
import { ref, onMounted, reactive, computed } from "vue";
import { VscInfo } from 'vue-icons-plus/vsc'
//
const activeName = ref('recharge')
//
const platform = ref('all')
onMounted(function () {
// domecharts
var myChart = echarts.init(document.getElementById('main'));
//
var option = {
title: {
text: 'ECharts 入门示例'
},
tooltip: {},
legend: {
data: ['销量']
},
xAxis: {
data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
},
yAxis: {},
series: [
{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}
]
};
// 使
myChart.setOption(option);
})
</script> </script>
<template> <template>
<div>
<h1>Workspace</h1>
</div>
<el-row :gutter="20">
<el-col :span="6">
<el-card>
<p>当前金币余量
</p>
<p>数据待填充</p>
<p>较前一天数据待填充</p>
<template #footer>充值 免费 任务</template>
</el-card>
</el-col>
<el-col :span="6">
<el-card>
<p>全年累计金币数</p>
<p>数据待填充</p>
<p>折合新币累计金额数据待填充</p>
<template #footer>昨日新增其中充值</template>
</el-card>
</el-col>
<el-col :span="6">
<el-card>
<p>全年累计消费金币数</p>
<p>数据待填充</p>
<p>消费退款</p>
<template #footer>昨日新增消耗消费退款</template>
</el-card>
</el-col>
<el-col :span="6">
<el-card>
<p>全年累计充值人数</p>
<p>数据待填充</p>
<p>周同比 % 日环比%</p>
<template #footer>昨日充值人数其中首充</template>
</el-card>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col>
<el-card>
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="金币充值" name="recharge">
<div id="main" style="width: 600px;height:400px;"></div>
</el-tab-pane>
<el-tab-pane label="金币消费" name="consume">
<div>金币消费</div>
</el-tab-pane>
</el-tabs>
</el-card>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="16">
<el-card>
<template #header>
<div class="card-header">
<span>金币概览</span>
</div>
</template>
<p v-for="o in 4" :key="o" class="text item">{{ 'List item ' + o }}</p>
</el-card>
</el-col>
<el-col :span="8">
<el-card>
<template #header>
<div class="card-header" style="display: flex;">
<span>金币消耗类别占比</span>
<el-radio-group v-model="platform" fill="#ffffff" text-color="#409eff" size="small" style="margin-left: auto;">
<el-radio-button label="全部平台" value="all" />
<el-radio-button label="HC" value="hc" />
<el-radio-button label="Link" value="link" />
</el-radio-group>
</div>
</template>
<div>表格</div>
</el-card>
</el-col>
</el-row>
</template> </template>
<style scoped> <style scoped>
.el-row{
margin-bottom: 20px;
}
.el-radio-button{
border: 1px solid grey;
}
</style> </style>
Loading…
Cancel
Save