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

277 lines
7.9 KiB

  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. "http://54.251.137.151:10702/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. localStorage.clear();
  43. router.push("/login");
  44. ElMessage.success("退出成功");
  45. }
  46. // 挂载
  47. onMounted(async function () {
  48. // 获取用户信息
  49. getAdminData();
  50. });
  51. </script>
  52. <template>
  53. <div class="common-layout">
  54. <el-container>
  55. <el-aside style="width: 15%; min-width: 180px">
  56. <div class="logo">
  57. <img
  58. src="../assets/金币管理系统logo.png"
  59. alt="logo"
  60. style="width: 30px; height: 30px"
  61. />
  62. <div style="font-size: 16px; font-weight: bold">海外金币管理系统</div>
  63. </div>
  64. <el-menu
  65. router="true"
  66. background-color="#08193d"
  67. active-text-color="#ffd04b"
  68. text-color="white"
  69. class="el-menu-vertical-demo"
  70. @open="handleOpen"
  71. @close="handleClose"
  72. >
  73. <el-menu-item
  74. index="/workspace"
  75. v-if="
  76. adminData.permission == 1 ||
  77. adminData.permission == 2 ||
  78. adminData.permission == 3
  79. "
  80. >
  81. <el-icon>
  82. <Folder />
  83. </el-icon>
  84. 工作台
  85. </el-menu-item>
  86. <el-sub-menu
  87. index="2"
  88. v-if="adminData.permission == 1 || adminData.permission == 2"
  89. >
  90. <template #title>
  91. <el-icon>
  92. <Folder />
  93. </el-icon>
  94. <span>财务审核</span>
  95. </template>
  96. <el-menu-item index="/rechargeAudit">充值审核</el-menu-item>
  97. <el-menu-item index="/refundAudit">退款审核</el-menu-item>
  98. </el-sub-menu>
  99. <el-sub-menu
  100. index="3"
  101. v-if="adminData.permission == 1 || adminData.permission == 2"
  102. >
  103. <template #title>
  104. <el-icon>
  105. <Folder />
  106. </el-icon>
  107. <span>充值管理</span>
  108. </template>
  109. <el-menu-item index="/activity">活动管理</el-menu-item>
  110. <el-menu-item index="/rate">汇率管理</el-menu-item>
  111. </el-sub-menu>
  112. <el-sub-menu
  113. index="4"
  114. v-if="adminData.permission == 1 || adminData.permission == 3"
  115. >
  116. <template #title>
  117. <el-icon>
  118. <Folder />
  119. </el-icon>
  120. <span>金币充值</span>
  121. </template>
  122. <el-menu-item index="/addRecharge">新增充值</el-menu-item>
  123. <el-menu-item index="/adminRecharge">客服充值明细</el-menu-item>
  124. <el-menu-item index="/allRecharge">所有充值明细</el-menu-item>
  125. </el-sub-menu>
  126. <el-sub-menu
  127. index="5"
  128. v-if="adminData.permission == 1 || adminData.permission == 3"
  129. >
  130. <template #title>
  131. <el-icon>
  132. <Folder />
  133. </el-icon>
  134. <span>金币消费</span>
  135. </template>
  136. <el-menu-item index="/addConsume">新增消费</el-menu-item>
  137. <el-menu-item index="/allConsume">所有消费明细</el-menu-item>
  138. </el-sub-menu>
  139. <el-sub-menu
  140. index="6"
  141. v-if="adminData.permission == 1 || adminData.permission == 3"
  142. >
  143. <template #title>
  144. <el-icon>
  145. <Folder />
  146. </el-icon>
  147. <span>金币退款</span>
  148. </template>
  149. <el-menu-item index="/addRefund">新增退款</el-menu-item>
  150. <el-menu-item index="/allRefund">退款明细</el-menu-item>
  151. </el-sub-menu>
  152. <el-menu-item
  153. index="/usergold"
  154. v-if="
  155. adminData.permission == 1 ||
  156. adminData.permission == 2 ||
  157. adminData.permission == 3
  158. "
  159. >
  160. <el-icon>
  161. <Folder />
  162. </el-icon>
  163. 客户金币明细
  164. </el-menu-item>
  165. <el-menu-item
  166. index="/usergoldInfo"
  167. v-if="
  168. adminData.permission == 1 ||
  169. adminData.permission == 2 ||
  170. adminData.permission == 3
  171. "
  172. >
  173. <el-icon>
  174. <Folder />
  175. </el-icon>
  176. 客户金币余额
  177. </el-menu-item>
  178. <el-menu-item index="/permissions" v-if="adminData.permission == 1">
  179. <el-icon>
  180. <Folder />
  181. </el-icon>
  182. 权限管理
  183. </el-menu-item>
  184. </el-menu>
  185. </el-aside>
  186. <el-container>
  187. <el-header>
  188. <el-menu
  189. :default-active="activeIndex"
  190. class="el-menu-demo"
  191. mode="horizontal"
  192. :ellipsis="false"
  193. @select="handleSelect"
  194. >
  195. <el-sub-menu index="1" class="admin">
  196. <template #title>
  197. <el-image
  198. :src="imgrule1"
  199. alt="错误"
  200. style="width: 50px; height: 50px"
  201. />
  202. <span style="margin-left: 10px">{{ adminData.name }}</span>
  203. </template>
  204. <el-menu-item @click="message()">查看个人信息</el-menu-item>
  205. <el-menu-item index="1-2" @click="logout">退出登录</el-menu-item>
  206. </el-sub-menu>
  207. <el-menu-item index="2">
  208. <VscGlobe />
  209. </el-menu-item>
  210. </el-menu>
  211. </el-header>
  212. <el-main>
  213. <router-view></router-view>
  214. </el-main>
  215. </el-container>
  216. </el-container>
  217. </div>
  218. <!-- 查看个人信息 -->
  219. <el-dialog v-model="messageVisible" title="查看个人信息" width="500px">
  220. <el-form :model="adminData">
  221. <el-form-item label="用户姓名" label-width="100px" label-position="left">
  222. <span class="message-font">{{ adminData.name }}</span>
  223. </el-form-item>
  224. <el-form-item label="精网号" label-width="100px" label-position="left">
  225. <span class="message-font">{{ adminData.jwcode }}</span>
  226. </el-form-item>
  227. <el-form-item label="地区" label-width="100px" label-position="left">
  228. <span class="message-font">{{ adminData.area }}</span>
  229. </el-form-item>
  230. <el-form-item label="注册时间" label-width="100px" label-position="left">
  231. <span class="message-font">{{ adminData.createTime }}</span>
  232. </el-form-item>
  233. </el-form>
  234. <template #footer>
  235. <div class="dialog-footer">
  236. <el-button text @click="closeMessage()">关闭</el-button>
  237. </div>
  238. </template>
  239. </el-dialog>
  240. </template>
  241. <style scoped>
  242. .message-font {
  243. font-size: 16px;
  244. font-weight: bold;
  245. }
  246. .admin {
  247. margin-left: auto;
  248. }
  249. .el-aside {
  250. background-color: #08193d;
  251. min-height: 100vh;
  252. width: 200px;
  253. }
  254. .logo {
  255. color: white;
  256. margin: 20px 0px 20px 20px;
  257. display: flex;
  258. }
  259. </style>