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

234 lines
6.7 KiB

4 months ago
  1. <script setup>
  2. import { ref, onMounted, reactive, computed } from "vue";
  3. import { useRouter } from "vue-router";
  4. import ElementPlus from "element-plus";
  5. import { VscGlobe } from "vue-icons-plus/vsc";
  6. import { ElMessage } from "element-plus";
  7. import axios from "axios";
  8. import { ElMessageBox } from "element-plus";
  9. import API from "../api/index.js";
  10. const router = useRouter();
  11. const imgrule1 = "../src/assets/动漫美女.png";
  12. const messageVisible = ref(false);
  13. //这是获取用户信息的接口
  14. const adminData = ref({
  15. name: "",
  16. });
  17. const getAdminData = async function () {
  18. try {
  19. const result = await API.post(
  20. "/hwjb/admin/userinfo",
  21. {}
  22. );
  23. adminData.value = result;
  24. console.log("请求成功", result);
  25. console.log("用户信息", adminData.value);
  26. } catch (error) {
  27. console.log("请求失败", error);
  28. }
  29. };
  30. // 查看个人信息弹出框
  31. const openMessage = function () {
  32. messageVisible.value = true;
  33. };
  34. const closeMessage = function () {
  35. messageVisible.value = false;
  36. };
  37. const message = function () {
  38. openMessage();
  39. };
  40. function logout() {
  41. localStorage.removeItem("token");
  42. router.push("/login");
  43. ElMessage.success("退出成功");
  44. }
  45. // 挂载
  46. onMounted(async function () {
  47. // 获取用户信息
  48. getAdminData();
  49. });
  50. </script>
  51. <template>
  52. <div class="common-layout">
  53. <el-container>
  54. <el-aside style="width: 250px">
  55. <div class="logo">
  56. <img
  57. src="../assets/金币管理系统logo.png"
  58. alt="logo"
  59. style="width: 30px; height: 30px"
  60. />
  61. <div style="font-size: 16px; font-weight: bold">海外金币管理系统</div>
  62. </div>
  63. <el-menu
  64. router="true"
  65. background-color="#08193d"
  66. active-text-color="#ffd04b"
  67. text-color="white"
  68. class="el-menu-vertical-demo"
  69. default-active="2"
  70. @open="handleOpen"
  71. @close="handleClose"
  72. >
  73. <el-menu-item index="/workspace">
  74. <el-icon>
  75. <Folder />
  76. </el-icon>
  77. 工作台
  78. </el-menu-item>
  79. <el-sub-menu index="2">
  80. <template #title>
  81. <el-icon>
  82. <Folder />
  83. </el-icon>
  84. <span>财务审核</span>
  85. </template>
  86. <el-menu-item index="/rechargeAudit">充值审核</el-menu-item>
  87. <el-menu-item index="/refundAudit">退款审核</el-menu-item>
  88. </el-sub-menu>
  89. <el-sub-menu index="3">
  90. <template #title>
  91. <el-icon>
  92. <Folder />
  93. </el-icon>
  94. <span>充值管理</span>
  95. </template>
  96. <el-menu-item index="/activity">活动管理</el-menu-item>
  97. <el-menu-item index="/rate">汇率管理</el-menu-item>
  98. </el-sub-menu>
  99. <el-sub-menu index="4">
  100. <template #title>
  101. <el-icon>
  102. <Folder />
  103. </el-icon>
  104. <span>金币充值</span>
  105. </template>
  106. <el-menu-item index="/addRecharge">新增充值</el-menu-item>
  107. <el-menu-item index="/adminRecharge">客服充值明细</el-menu-item>
  108. <el-menu-item index="/allRecharge">所有充值明细</el-menu-item>
  109. </el-sub-menu>
  110. <el-sub-menu index="5">
  111. <template #title>
  112. <el-icon>
  113. <Folder />
  114. </el-icon>
  115. <span>金币消费</span>
  116. </template>
  117. <el-menu-item index="/addConsume">新增消费</el-menu-item>
  118. <el-menu-item index="/allConsume">所有消费明细</el-menu-item>
  119. </el-sub-menu>
  120. <el-sub-menu index="6">
  121. <template #title>
  122. <el-icon>
  123. <Folder />
  124. </el-icon>
  125. <span>金币退款</span>
  126. </template>
  127. <el-menu-item index="/addRefund">新增退款</el-menu-item>
  128. <el-menu-item index="/allRefund">退款明细</el-menu-item>
  129. </el-sub-menu>
  130. <el-menu-item index="/usergold">
  131. <el-icon>
  132. <Folder />
  133. </el-icon>
  134. 客户金币明细
  135. </el-menu-item>
  136. <el-menu-item index="/usergoldInfo">
  137. <el-icon>
  138. <Folder />
  139. </el-icon>
  140. 客户金币余额
  141. </el-menu-item>
  142. </el-menu>
  143. </el-aside>
  144. <el-container>
  145. <el-header>
  146. <el-menu
  147. :default-active="activeIndex"
  148. class="el-menu-demo"
  149. mode="horizontal"
  150. :ellipsis="false"
  151. @select="handleSelect"
  152. >
  153. <el-sub-menu index="1" class="admin">
  154. <template #title>
  155. <el-image
  156. :src="imgrule1"
  157. alt="错误"
  158. style="width: 50px; height: 50px"
  159. />
  160. <span style="margin-left: 10px">{{ adminData.name }}</span>
  161. </template>
  162. <el-menu-item @click="message()">查看个人信息</el-menu-item>
  163. <el-menu-item index="1-2" @click="logout">退出登录</el-menu-item>
  164. </el-sub-menu>
  165. <el-menu-item index="2">
  166. <VscGlobe />
  167. </el-menu-item>
  168. </el-menu>
  169. </el-header>
  170. <el-main>
  171. <router-view></router-view>
  172. </el-main>
  173. </el-container>
  174. </el-container>
  175. </div>
  176. <!-- 查看个人信息 -->
  177. <el-dialog v-model="messageVisible" title="查看个人信息" width="500px">
  178. <el-form :model="adminData">
  179. <el-form-item label="用户姓名" label-width="100px" label-position="left">
  180. <span class="message-font">{{ adminData.name }}</span>
  181. </el-form-item>
  182. <el-form-item label="精网号" label-width="100px" label-position="left">
  183. <span class="message-font">{{ adminData.jwcode }}</span>
  184. </el-form-item>
  185. <el-form-item label="地区" label-width="100px" label-position="left">
  186. <span class="message-font">{{ adminData.area }}</span>
  187. </el-form-item>
  188. <el-form-item label="注册时间" label-width="100px" label-position="left">
  189. <span class="message-font">{{ adminData.createTime }}</span>
  190. </el-form-item>
  191. </el-form>
  192. <template #footer>
  193. <div class="dialog-footer">
  194. <el-button text @click="closeMessage()">关闭</el-button>
  195. </div>
  196. </template>
  197. </el-dialog>
  198. </template>
  199. <style scoped>
  200. .message-font {
  201. font-size: 16px;
  202. font-weight: bold;
  203. }
  204. .admin {
  205. margin-left: auto;
  206. }
  207. .el-aside {
  208. background-color: #08193d;
  209. min-height: 100vh;
  210. width: 200px;
  211. }
  212. .logo {
  213. color: white;
  214. margin: 20px 0px 20px 20px;
  215. display: flex;
  216. }
  217. </style>