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

386 lines
11 KiB

2 months ago
2 months ago
  1. <script setup>
  2. import { ref, onMounted, reactive, computed, watch } 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 '@/util/http'
  10. import dmmn from '../assets/动漫美女.png'
  11. import { useRoute } from 'vue-router'
  12. import { storeToRefs } from 'pinia'
  13. import { useAreaStore } from '@/store/area'
  14. const router = useRouter()
  15. const imgrule1 = dmmn
  16. const messageVisible = ref(false)
  17. const areaStore = useAreaStore()
  18. const { currentArea, updateArea } = storeToRefs(areaStore)
  19. //这是获取用户信息的接口
  20. const adminData = ref({
  21. name: ''
  22. })
  23. const getAdminData = async function () {
  24. try {
  25. const result = await API({ url: '/admin/userinfo', data: {} })
  26. adminData.value = result
  27. console.log('请求成功', result)
  28. console.log('用户信息', adminData.value)
  29. } catch (error) {
  30. console.log('请求失败', error)
  31. }
  32. }
  33. // 获取地区
  34. const areas = ref([])
  35. const getAreas = async function () {
  36. try {
  37. const result = await API({ url: '/recharge/user/search', data: {} })
  38. areas.value = result.data
  39. console.log('请求成功', result)
  40. } catch (error) {
  41. console.log('请求失败', error)
  42. }
  43. }
  44. // 查看个人信息弹出框
  45. const openMessage = function () {
  46. messageVisible.value = true
  47. }
  48. const closeMessage = function () {
  49. messageVisible.value = false
  50. }
  51. const message = function () {
  52. openMessage()
  53. }
  54. // 获取machineId
  55. function logout() {
  56. const machineId = localStorage.getItem('machineId')
  57. console.log('machineId:', machineId)
  58. localStorage.removeItem('token')
  59. // localStorage.clear();
  60. router.push('/login?machineId=' + machineId)
  61. //添加刷新页面的代码
  62. // window.location.reload();
  63. ElMessage.success('退出成功')
  64. }
  65. // 挂载
  66. onMounted(async function () {
  67. // 获取用户信息
  68. getAdminData()
  69. // 获取地区
  70. getAreas()
  71. })
  72. // 处理地区点击事件
  73. const changeDataByArea = (item) => {
  74. areaStore.updateArea(item)
  75. }
  76. </script>
  77. <template>
  78. <div class="common-layout">
  79. <el-container>
  80. <el-aside
  81. style="
  82. width: 15%;
  83. min-width: 180px;
  84. position: fixed; /* 固定位置 */
  85. top: 0;
  86. left: 0;
  87. height: 100vh; /* 高度占满视口 */
  88. z-index: 100; /* 确保侧边栏在其他元素之上 */
  89. "
  90. >
  91. <div class="logo">
  92. <img
  93. src="../assets/金币管理系统logo.png"
  94. alt="logo"
  95. style="width: 30px; height: 30px"
  96. />
  97. <div style="font-size: 16px; font-weight: bold">海外金币管理系统</div>
  98. </div>
  99. <el-menu
  100. router="true"
  101. background-color="#08193d"
  102. active-text-color="#ffd04b"
  103. text-color="white"
  104. class="el-menu-vertical-demo"
  105. @open="handleOpen"
  106. @close="handleClose"
  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>
  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="5"
  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>
  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="6"
  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>
  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="7">
  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>金豆消费明细</el-menu-item>
  224. <el-menu-item>客户金豆余额</el-menu-item> -->
  225. </el-sub-menu>
  226. <el-menu-item
  227. index="/usergold"
  228. v-if="
  229. adminData.permission == 1 ||
  230. adminData.permission == 2 ||
  231. adminData.permission == 3 ||
  232. adminData.permission == 5
  233. "
  234. >
  235. <el-icon>
  236. <Folder />
  237. </el-icon>
  238. 客户金币明细
  239. </el-menu-item>
  240. <el-menu-item
  241. index="/usergoldInfo"
  242. v-if="
  243. adminData.permission == 1 ||
  244. adminData.permission == 2 ||
  245. adminData.permission == 3 ||
  246. adminData.permission == 5
  247. "
  248. >
  249. <el-icon>
  250. <Folder />
  251. </el-icon>
  252. 客户金币余额
  253. </el-menu-item>
  254. <el-menu-item index="/permissions" v-if="adminData.permission == 1">
  255. <el-icon>
  256. <Folder />
  257. </el-icon>
  258. 权限管理
  259. </el-menu-item>
  260. </el-menu>
  261. </el-aside>
  262. <el-container style="margin-left: 15%; min-width: 180px">
  263. <!-- 修改 el-header 样式 -->
  264. <el-header
  265. style="
  266. position: fixed;
  267. top: 0;
  268. left: 15%;
  269. right: 0;
  270. z-index: 101;
  271. background: white;
  272. "
  273. >
  274. <el-menu
  275. :default-active="activeIndex"
  276. class="el-menu-demo"
  277. mode="horizontal"
  278. :ellipsis="false"
  279. >
  280. <el-sub-menu index="1" class="area" :disabled="isWorkspace">
  281. <template #title>
  282. <VscGlobe />
  283. <!-- {{ currentArea }} -->
  284. </template>
  285. <!-- <el-menu-item
  286. v-for="(item, index) in areas"
  287. :key="index"
  288. @click="changeDataByArea(item)"
  289. >
  290. {{ item }}
  291. </el-menu-item> -->
  292. </el-sub-menu>
  293. </el-menu>
  294. <el-menu
  295. :default-active="activeIndex"
  296. class="el-menu-demo"
  297. mode="horizontal"
  298. :ellipsis="false"
  299. >
  300. <el-sub-menu index="1" class="admin">
  301. <template #title>
  302. <el-image
  303. :src="imgrule1"
  304. alt="错误"
  305. style="width: 50px; height: 50px"
  306. />
  307. <span style="margin-left: 10px">{{ adminData.name }}</span>
  308. </template>
  309. <el-menu-item @click="message()">查看个人信息</el-menu-item>
  310. <el-menu-item index="1-2" @click="logout">退出登录</el-menu-item>
  311. </el-sub-menu>
  312. </el-menu>
  313. </el-header>
  314. <!-- 修改 el-main 样式 -->
  315. <el-main style="margin-top: 60px">
  316. <!-- 60px el-header 的大致高度可根据实际情况调整 -->
  317. <router-view></router-view>
  318. </el-main>
  319. </el-container>
  320. </el-container>
  321. </div>
  322. <!-- 查看个人信息 -->
  323. <el-dialog v-model="messageVisible" title="查看个人信息" width="500px">
  324. <el-form :model="adminData">
  325. <el-form-item label="用户姓名" label-width="100px" label-position="left">
  326. <span class="message-font">{{ adminData.name }}</span>
  327. </el-form-item>
  328. <el-form-item label="精网号" label-width="100px" label-position="left">
  329. <span class="message-font">{{ adminData.jwcode }}</span>
  330. </el-form-item>
  331. <el-form-item label="地区" label-width="100px" label-position="left">
  332. <span class="message-font">{{ adminData.area }}</span>
  333. </el-form-item>
  334. <el-form-item label="注册时间" label-width="100px" label-position="left">
  335. <span class="message-font">{{ adminData.createTime }}</span>
  336. </el-form-item>
  337. </el-form>
  338. <template #footer>
  339. <div class="dialog-footer">
  340. <el-button text @click="closeMessage()">关闭</el-button>
  341. </div>
  342. </template>
  343. </el-dialog>
  344. </template>
  345. <style scoped>
  346. .message-font {
  347. font-size: 16px;
  348. font-weight: bold;
  349. }
  350. .admin {
  351. margin-left: auto;
  352. }
  353. .el-aside {
  354. background-color: #08193d;
  355. min-height: 100vh;
  356. width: 200px;
  357. }
  358. .logo {
  359. color: white;
  360. margin: 20px 0px 20px 20px;
  361. display: flex;
  362. }
  363. .el-menu {
  364. border: none; /* 去除边框 */
  365. padding: 0; /* 去除内边距 */
  366. }
  367. .el-menu-demo {
  368. float: right; /* 将菜单向右浮动 */
  369. }
  370. </style>