You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

289 lines
8.7 KiB

3 weeks ago
3 weeks ago
2 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
  1. <script setup>
  2. // 导航栏在这
  3. import { ref, onMounted, reactive, computed, watch } from 'vue'
  4. import { useRouter } from 'vue-router'
  5. import ElementPlus from 'element-plus'
  6. import { VscGlobe } from 'vue-icons-plus/vsc'
  7. import { ElMessage, ElMessageBox } from 'element-plus'
  8. import axios from 'axios'
  9. import API from '@/util/http'
  10. import dmmn from '../assets/avator.png'
  11. import { useRoute } from 'vue-router'
  12. const router = useRouter()
  13. const imgrule1 = dmmn
  14. const messageVisible = ref(false)
  15. // 这是获取用户信息的接口
  16. const adminData = ref({
  17. name: ''
  18. })
  19. const getAdminData = async function () {
  20. try {
  21. const result = await API({ url: '/admin/userinfo', data: {} })
  22. adminData.value = result
  23. console.log('请求成功', result)
  24. console.log('用户信息', adminData.value)
  25. } catch (error) {
  26. console.log('请求失败', error)
  27. }
  28. }
  29. // 获取地区
  30. const areas = ref([])
  31. const getAreas = async function () {
  32. try {
  33. const result = await API({ url: '/recharge/user/search', data: {} })
  34. areas.value = result.data
  35. console.log('请求成功', result)
  36. } catch (error) {
  37. console.log('请求失败', error)
  38. }
  39. }
  40. // 查看个人信息弹出框
  41. const openMessage = function () {
  42. messageVisible.value = true
  43. }
  44. const closeMessage = function () {
  45. messageVisible.value = false
  46. }
  47. const message = function () {
  48. openMessage()
  49. }
  50. // 获取machineId
  51. function logout() {
  52. const machineId = localStorage.getItem('machineId')
  53. console.log('machineId:', machineId)
  54. localStorage.removeItem('token')
  55. // localStorage.clear();
  56. router.push('/login?machineId=' + machineId)
  57. //添加刷新页面的代码
  58. // window.location.reload();
  59. ElMessage.success('退出成功')
  60. }
  61. // 挂载
  62. onMounted(async function () {
  63. // 获取用户信息
  64. getAdminData()
  65. // 获取地区
  66. getAreas()
  67. })
  68. //官网折叠
  69. const isCollapse = ref(false)
  70. const handleOpen = (key, keyPath) => {
  71. console.log(key, keyPath)
  72. }
  73. const handleClose = (key, keyPath) => {
  74. console.log(key, keyPath)
  75. }
  76. </script>
  77. <template>
  78. <div class="common-layout">
  79. <el-container>
  80. <el-aside style="
  81. width: 15%;
  82. min-width: 180px;
  83. position: fixed; /* 固定位置 */
  84. top: 0;
  85. left: 0;
  86. height: 100vh; /* 高度占满视口 */
  87. z-index: 100; /* 确保侧边栏在其他元素之上 */
  88. ">
  89. <div class="logo">
  90. <img src="../assets/新logo.png" alt="logo" style="width: 80px; height: 80px" />
  91. <!-- <div style="font-size: 16px; font-weight: bold; color: black; text-align: center;" ><h1>海外金币管理系统</h1></div> -->
  92. </div>
  93. <el-card style="min-height: 90%;">
  94. <el-radio-group v-model="isCollapse" style="margin-bottom: 20px">
  95. <el-radio-button :value="false">扩展</el-radio-button>
  96. <el-radio-button :value="true">收缩</el-radio-button>
  97. </el-radio-group>
  98. <el-menu :router="true" class="el-menu-vertical-demo" :collapse="isCollapse" @open="handleOpen" @close="handleClose">
  99. <el-menu-item
  100. index="/workspace"
  101. v-if="
  102. adminData.permission == 1 ||
  103. adminData.permission == 2 ||
  104. adminData.permission == 3 ||
  105. adminData.permission == 5
  106. ">
  107. <el-icon><Folder /></el-icon>
  108. <span>工作台</span>
  109. </el-menu-item>
  110. <el-sub-menu index="2" v-if="
  111. adminData.permission == 1 ||
  112. adminData.permission == 3 ||
  113. adminData.permission == 5
  114. ">
  115. <template #title>
  116. <el-icon><Folder /></el-icon>
  117. <span>财务审核</span>
  118. </template>
  119. <el-menu-item index="/rechargeAudit">充值审核</el-menu-item>
  120. <el-menu-item index="/refundAudit">退款审核</el-menu-item>
  121. </el-sub-menu>
  122. <el-menu-item
  123. index="/rate"
  124. v-if="
  125. adminData.permission == 1 ||
  126. adminData.permission == 2 ||
  127. adminData.permission == 3 ||
  128. adminData.permission == 5
  129. ">
  130. <el-icon><Folder /></el-icon>
  131. <span>汇率管理</span>
  132. </el-menu-item>
  133. <el-sub-menu index="4" v-if="
  134. adminData.permission == 1 ||
  135. adminData.permission == 2 ||
  136. adminData.permission == 5
  137. ">
  138. <template #title>
  139. <el-icon><Folder /></el-icon>
  140. <span>充值管理</span>
  141. </template>
  142. <el-menu-item index="/coinRecharge">金币充值</el-menu-item>
  143. <el-menu-item index="/beanRecharge">金豆充值</el-menu-item>
  144. </el-sub-menu>
  145. <el-sub-menu index="6" v-if="
  146. adminData.permission == 1 ||
  147. adminData.permission == 2 ||
  148. adminData.permission == 5
  149. ">
  150. <template #title>
  151. <el-icon>
  152. <Folder />
  153. </el-icon>
  154. <span>消耗管理</span>
  155. </template>
  156. <el-menu-item index="/coinConsume">金币消耗</el-menu-item>
  157. <el-menu-item index="/beanConsume">金豆消耗</el-menu-item>
  158. </el-sub-menu>
  159. <el-sub-menu index="8" v-if="
  160. adminData.permission == 1 ||
  161. adminData.permission == 2 ||
  162. adminData.permission == 5
  163. ">
  164. <template #title>
  165. <el-icon>
  166. <Folder />
  167. </el-icon>
  168. <span>退款管理</span>
  169. </template>
  170. <el-menu-item index="/coinRefund">金币退款</el-menu-item>
  171. <el-menu-item index="/beanRefund">金豆退款</el-menu-item>
  172. </el-sub-menu>
  173. <el-menu-item index="/usergold" v-if="
  174. adminData.permission == 1 ||
  175. adminData.permission == 2 ||
  176. adminData.permission == 3 ||
  177. adminData.permission == 5
  178. ">
  179. <el-icon><Folder /></el-icon>
  180. <span>客户账户明细</span>
  181. </el-menu-item>
  182. <el-menu-item index="/permissions" v-if="adminData.permission == 1">
  183. <el-icon><Folder /></el-icon>
  184. <span>权限管理</span>
  185. </el-menu-item>
  186. </el-menu>
  187. </el-card>
  188. </el-aside>
  189. <el-container style="margin-left: 15%; min-width: 180px">
  190. <!-- 修改 el-header 样式 -->
  191. <el-header style="
  192. position: fixed;
  193. top: 0;
  194. left: 15%;
  195. right: 0;
  196. z-index: 80;
  197. background: white;
  198. ">
  199. <el-menu class="el-menu-demo" mode="horizontal" :ellipsis="false">
  200. <el-sub-menu index="1" class="admin">
  201. <template #title>
  202. <el-image :src="imgrule1" alt="错误" style="width: 50px; height: 50px" />
  203. <span style="margin-left: 10px">{{ adminData.name }}</span>
  204. </template>
  205. <el-menu-item @click="message()">查看个人信息</el-menu-item>
  206. <el-menu-item index="1-2" @click="logout">退出登录</el-menu-item>
  207. </el-sub-menu>
  208. </el-menu>
  209. </el-header>
  210. <!-- 修改 el-main 样式 -->
  211. <el-main style="margin-top: 60px">
  212. <router-view></router-view>
  213. </el-main>
  214. </el-container>
  215. </el-container>
  216. </div>
  217. <!-- 查看个人信息 -->
  218. <el-dialog v-model="messageVisible" title="查看个人信息" width="500px">
  219. <el-form :model="adminData">
  220. <el-form-item label="用户姓名" label-width="100px" label-position="left">
  221. <span class="message-font">{{ adminData.name }}</span>
  222. </el-form-item>
  223. <el-form-item label="精网号" label-width="100px" label-position="left">
  224. <span class="message-font">{{ adminData.jwcode }}</span>
  225. </el-form-item>
  226. <el-form-item label="地区" label-width="100px" label-position="left">
  227. <span class="message-font">{{ adminData.area }}</span>
  228. </el-form-item>
  229. <el-form-item label="注册时间" label-width="100px" label-position="left">
  230. <span class="message-font">{{ adminData.createTime }}</span>
  231. </el-form-item>
  232. </el-form>
  233. <template #footer>
  234. <div class="dialog-footer">
  235. <el-button text @click="closeMessage()">关闭</el-button>
  236. </div>
  237. </template>
  238. </el-dialog>
  239. </template>
  240. <style scoped>
  241. .message-font {
  242. font-size: 16px;
  243. font-weight: bold;
  244. }
  245. .admin {
  246. margin-left: auto;
  247. }
  248. .el-aside {
  249. min-height: 100vh;
  250. width: 200px;
  251. }
  252. /* background-color: #BFD8D2; */
  253. .logo {
  254. margin: 20px 0px 20px 20px;
  255. display: flex;
  256. }
  257. .el-menu-demo {
  258. border: none; /* 去除边框 */
  259. padding: 0; /* 去除内边距 */
  260. float: right;
  261. /* 将菜单向右浮动 */
  262. }
  263. .el-menu-vertical-demo:not(.el-menu--collapse) {
  264. width: 240px;
  265. min-height: 400px;
  266. border: none; /* 去除边框 */
  267. }
  268. </style>