金币系统前端
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.

377 lines
11 KiB

3 weeks ago
2 months ago
2 months ago
  1. <script setup>
  2. // 导航栏在这
  3. // 这也是登录后的index
  4. import { ref, onMounted, reactive, computed, watch } from 'vue'
  5. import { useRouter } from 'vue-router'
  6. import ElementPlus from 'element-plus'
  7. import { VscGlobe } from 'vue-icons-plus/vsc'
  8. import { ElMessage } from 'element-plus'
  9. import axios from 'axios'
  10. import { ElMessageBox } from 'element-plus'
  11. import API from '@/util/http'
  12. import dmmn from '../assets/动漫美女.png'
  13. import { useRoute } from 'vue-router'
  14. import { storeToRefs } from 'pinia'
  15. import { useAreaStore } from '@/store/area'
  16. const router = useRouter()
  17. const imgrule1 = dmmn
  18. const messageVisible = ref(false)
  19. const areaStore = useAreaStore()
  20. const { currentArea, updateArea } = storeToRefs(areaStore)
  21. //这是获取用户信息的接口
  22. const adminData = ref({
  23. name: ''
  24. })
  25. const getAdminData = async function () {
  26. try {
  27. const result = await API({ url: '/admin/userinfo', data: {} })
  28. adminData.value = result
  29. console.log('请求成功', result)
  30. console.log('用户信息', adminData.value)
  31. } catch (error) {
  32. console.log('请求失败', error)
  33. }
  34. }
  35. // 获取地区
  36. const areas = ref([])
  37. const getAreas = async function () {
  38. try {
  39. const result = await API({ url: '/recharge/user/search', data: {} })
  40. areas.value = result.data
  41. console.log('请求成功', result)
  42. } catch (error) {
  43. console.log('请求失败', error)
  44. }
  45. }
  46. // 查看个人信息弹出框
  47. const openMessage = function () {
  48. messageVisible.value = true
  49. }
  50. const closeMessage = function () {
  51. messageVisible.value = false
  52. }
  53. const message = function () {
  54. openMessage()
  55. }
  56. // 获取machineId
  57. function logout() {
  58. const machineId = localStorage.getItem('machineId')
  59. console.log('machineId:', machineId)
  60. localStorage.removeItem('token')
  61. // localStorage.clear();
  62. router.push('/login?machineId=' + machineId)
  63. //添加刷新页面的代码
  64. // window.location.reload();
  65. ElMessage.success('退出成功')
  66. }
  67. // 挂载
  68. onMounted(async function () {
  69. // 获取用户信息
  70. getAdminData()
  71. // 获取地区
  72. getAreas()
  73. })
  74. // 处理地区点击事件
  75. const changeDataByArea = (item) => {
  76. areaStore.updateArea(item)
  77. }
  78. </script>
  79. <template>
  80. <div class="common-layout">
  81. <el-container>
  82. <el-aside
  83. style="
  84. width: 15%;
  85. min-width: 180px;
  86. position: fixed; /* 固定位置 */
  87. top: 0;
  88. left: 0;
  89. height: 100vh; /* 高度占满视口 */
  90. z-index: 100; /* 确保侧边栏在其他元素之上 */
  91. "
  92. >
  93. <div class="logo">
  94. <img
  95. src="../assets/金币管理系统logo.png"
  96. alt="logo"
  97. style="width: 30px; height: 30px"
  98. />
  99. <div style="font-size: 16px; font-weight: bold">海外金币管理系统</div>
  100. </div>
  101. <el-menu
  102. :router="true"
  103. background-color="#08193d"
  104. active-text-color="#ffd04b"
  105. text-color="white"
  106. class="el-menu-vertical-demo"
  107. >
  108. <el-menu-item
  109. index="/workspace"
  110. v-if="
  111. adminData.permission == 1 ||
  112. adminData.permission == 2 ||
  113. adminData.permission == 3 ||
  114. adminData.permission == 5
  115. "
  116. >
  117. <el-icon>
  118. <Folder />
  119. </el-icon>
  120. 工作台
  121. </el-menu-item>
  122. <el-sub-menu
  123. index="2"
  124. v-if="
  125. adminData.permission == 1 ||
  126. adminData.permission == 3 ||
  127. adminData.permission == 5
  128. "
  129. >
  130. <template #title>
  131. <el-icon>
  132. <Folder />
  133. </el-icon>
  134. <span>财务审核</span>
  135. </template>
  136. <el-menu-item index="/rechargeAudit">充值审核</el-menu-item>
  137. <el-menu-item index="/refundAudit">退款审核</el-menu-item>
  138. </el-sub-menu>
  139. <el-sub-menu
  140. index="3"
  141. v-if="
  142. adminData.permission == 1 ||
  143. adminData.permission == 3 ||
  144. adminData.permission == 5
  145. "
  146. >
  147. <template #title>
  148. <el-icon>
  149. <Folder />
  150. </el-icon>
  151. <span>充值管理</span>
  152. </template>
  153. <el-menu-item index="/activity">活动管理</el-menu-item>
  154. <el-menu-item index="/rate">汇率管理</el-menu-item>
  155. </el-sub-menu>
  156. <el-sub-menu
  157. index="4"
  158. v-if="
  159. adminData.permission == 1 ||
  160. adminData.permission == 2 ||
  161. adminData.permission == 5
  162. "
  163. >
  164. <template #title>
  165. <el-icon>
  166. <Folder />
  167. </el-icon>
  168. <span>充值</span>
  169. </template>
  170. <el-sub-menu index="5">
  171. <template #title>金币充值</template>
  172. <el-menu-item index="/addRecharge">新增充值</el-menu-item>
  173. <el-menu-item index="/adminRecharge">客服充值明细</el-menu-item>
  174. <el-menu-item index="/allRecharge">所有充值明细</el-menu-item>
  175. </el-sub-menu>
  176. </el-sub-menu>
  177. <el-sub-menu
  178. index="6"
  179. v-if="
  180. adminData.permission == 1 ||
  181. adminData.permission == 2 ||
  182. adminData.permission == 5
  183. "
  184. >
  185. <template #title>
  186. <el-icon>
  187. <Folder />
  188. </el-icon>
  189. <span>消费</span>
  190. </template>
  191. <el-sub-menu index="7">
  192. <template #title>金币消费</template>
  193. <el-menu-item index="/addConsume">新增消费</el-menu-item>
  194. <el-menu-item index="/allConsume">所有消费明细</el-menu-item>
  195. </el-sub-menu>
  196. </el-sub-menu>
  197. <el-sub-menu
  198. index="8"
  199. v-if="
  200. adminData.permission == 1 ||
  201. adminData.permission == 2 ||
  202. adminData.permission == 5
  203. "
  204. >
  205. <template #title>
  206. <el-icon>
  207. <Folder />
  208. </el-icon>
  209. <span>退款</span>
  210. </template>
  211. <el-sub-menu index="9">
  212. <template #title>金币退款</template>
  213. <el-menu-item index="/addRefund">新增退款</el-menu-item>
  214. <el-menu-item index="/allRefund">退款明细</el-menu-item>
  215. </el-sub-menu>
  216. </el-sub-menu>
  217. <el-sub-menu index="10">
  218. <template #title
  219. ><el-icon> <Folder /> </el-icon></template
  220. >
  221. <el-menu-item index="/addGoldenBeen">金豆充值</el-menu-item>
  222. <el-menu-item index="/goldenBeenDetail">金豆充值明细</el-menu-item>
  223. <el-menu-item index="/onLineDetail">线上充值明细</el-menu-item>
  224. <el-menu-item index="/goldenBeenConsum">金豆消费明细</el-menu-item>
  225. <el-menu-item index="/goldenBeenBalance">客户金豆余额</el-menu-item>
  226. </el-sub-menu>
  227. <el-menu-item
  228. index="/usergold"
  229. v-if="
  230. adminData.permission == 1 ||
  231. adminData.permission == 2 ||
  232. adminData.permission == 3 ||
  233. adminData.permission == 5
  234. "
  235. >
  236. <el-icon>
  237. <Folder />
  238. </el-icon>
  239. 客户金币明细
  240. </el-menu-item>
  241. <el-menu-item
  242. index="/usergoldInfo"
  243. v-if="
  244. adminData.permission == 1 ||
  245. adminData.permission == 2 ||
  246. adminData.permission == 3 ||
  247. adminData.permission == 5
  248. "
  249. >
  250. <el-icon>
  251. <Folder />
  252. </el-icon>
  253. 客户金币余额
  254. </el-menu-item>
  255. <el-menu-item index="/permissions" v-if="adminData.permission == 1">
  256. <el-icon>
  257. <Folder />
  258. </el-icon>
  259. 权限管理
  260. </el-menu-item>
  261. </el-menu>
  262. </el-aside>
  263. <el-container style="margin-left: 15%; min-width: 180px">
  264. <!-- 修改 el-header 样式 -->
  265. <el-header
  266. style="
  267. position: fixed;
  268. top: 0;
  269. left: 15%;
  270. right: 0;
  271. z-index: 101;
  272. background: white;
  273. "
  274. >
  275. <el-menu class="el-menu-demo" mode="horizontal" :ellipsis="false">
  276. <el-sub-menu index="1" class="area">
  277. <template #title>
  278. <VscGlobe />
  279. <!-- {{ currentArea }} -->
  280. </template>
  281. <!-- <el-menu-item
  282. v-for="(item, index) in areas"
  283. :key="index"
  284. @click="changeDataByArea(item)"
  285. >
  286. {{ item }}
  287. </el-menu-item> -->
  288. </el-sub-menu>
  289. </el-menu>
  290. <el-menu class="el-menu-demo" mode="horizontal" :ellipsis="false">
  291. <el-sub-menu index="1" class="admin">
  292. <template #title>
  293. <el-image
  294. :src="imgrule1"
  295. alt="错误"
  296. style="width: 50px; height: 50px"
  297. />
  298. <span style="margin-left: 10px">{{ adminData.name }}</span>
  299. </template>
  300. <el-menu-item @click="message()">查看个人信息</el-menu-item>
  301. <el-menu-item index="1-2" @click="logout">退出登录</el-menu-item>
  302. </el-sub-menu>
  303. </el-menu>
  304. </el-header>
  305. <!-- 修改 el-main 样式 -->
  306. <el-main style="margin-top: 60px">
  307. <!-- 60px el-header 的大致高度可根据实际情况调整 -->
  308. <router-view></router-view>
  309. </el-main>
  310. </el-container>
  311. </el-container>
  312. </div>
  313. <!-- 查看个人信息 -->
  314. <el-dialog v-model="messageVisible" title="查看个人信息" width="500px">
  315. <el-form :model="adminData">
  316. <el-form-item label="用户姓名" label-width="100px" label-position="left">
  317. <span class="message-font">{{ adminData.name }}</span>
  318. </el-form-item>
  319. <el-form-item label="精网号" label-width="100px" label-position="left">
  320. <span class="message-font">{{ adminData.jwcode }}</span>
  321. </el-form-item>
  322. <el-form-item label="地区" label-width="100px" label-position="left">
  323. <span class="message-font">{{ adminData.area }}</span>
  324. </el-form-item>
  325. <el-form-item label="注册时间" label-width="100px" label-position="left">
  326. <span class="message-font">{{ adminData.createTime }}</span>
  327. </el-form-item>
  328. </el-form>
  329. <template #footer>
  330. <div class="dialog-footer">
  331. <el-button text @click="closeMessage()">关闭</el-button>
  332. </div>
  333. </template>
  334. </el-dialog>
  335. </template>
  336. <style scoped>
  337. .message-font {
  338. font-size: 16px;
  339. font-weight: bold;
  340. }
  341. .admin {
  342. margin-left: auto;
  343. }
  344. .el-aside {
  345. background-color: #08193d;
  346. min-height: 100vh;
  347. width: 200px;
  348. }
  349. .logo {
  350. color: white;
  351. margin: 20px 0px 20px 20px;
  352. display: flex;
  353. }
  354. .el-menu {
  355. border: none; /* 去除边框 */
  356. padding: 0; /* 去除内边距 */
  357. }
  358. .el-menu-demo {
  359. float: right; /* 将菜单向右浮动 */
  360. }
  361. </style>