diff --git a/package.json b/package.json index 7dd4b9a..631871f 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "lint": "eslint . --fix" }, "dependencies": { + "airwallex-payment-elements": "^1.131.0", "vue": "^3.5.18", "vue-router": "^4.5.1" }, diff --git a/src/api/itemDistribution.js b/src/api/itemDistribution.js new file mode 100644 index 0000000..40d06e9 --- /dev/null +++ b/src/api/itemDistribution.js @@ -0,0 +1,25 @@ +import { get, post } from "../utils/http.js"; + +export const getAdminCenterList = async (params) => { + try { + const response = await get( + `/sys/manager/props?propsType=${params.propsType}¤cyType=${params.currencyType}` + ); + return response; + } catch (error) { + console.error("Failed to fetch admin center list:", error); + console.error("error:" + error.response.errorMsg); + throw error; + } +}; + +export const giveProps = async (data) => { + try { + const response = await post("/sys/manager/send", data); + return response; + } catch (error) { + console.error("Failed to fetch give props:", error); + onsole.error("error:" + error.response.errorMsg); + throw error; + } +}; diff --git a/src/api/userInfo.js b/src/api/userInfo.js new file mode 100644 index 0000000..e1138ac --- /dev/null +++ b/src/api/userInfo.js @@ -0,0 +1,26 @@ +import { get, post } from "../utils/http.js"; + +export const searchUser = async (userId) => { + try { + const response = await get(`/user/user-profile/search?account=${userId}`); + return response; + } catch (error) { + console.error("Failed to fetch search user:", error); + console.error("error:" + error.response.errorMsg); + throw error; + } +}; + +// 用户支付充值用户搜索 +export const searchPayRechargeUser = async (params) => { + try { + const response = await get( + `/order/web/pay/user-profile?sysOrigin=${params.sysOrigin}&account=${params.account}&type=GOLD` + ); + return response; + } catch (error) { + console.error("Failed to fetch search pay recharge user:", error); + console.error("error:" + error.response.errorMsg); + throw error; + } +}; diff --git a/src/assets/icon/coin.png b/src/assets/icon/coin.png new file mode 100644 index 0000000..ea8481e Binary files /dev/null and b/src/assets/icon/coin.png differ diff --git a/src/assets/icon/coinMore.png b/src/assets/icon/coinMore.png new file mode 100644 index 0000000..86afa13 Binary files /dev/null and b/src/assets/icon/coinMore.png differ diff --git a/src/assets/icon/listBt.png b/src/assets/icon/listBt.png new file mode 100644 index 0000000..638cfe6 Binary files /dev/null and b/src/assets/icon/listBt.png differ diff --git a/src/assets/images/rechargeBg.png b/src/assets/images/rechargeBg.png new file mode 100644 index 0000000..2e4da56 Binary files /dev/null and b/src/assets/images/rechargeBg.png differ diff --git a/src/assets/images/secondBg.png b/src/assets/images/secondBg.png new file mode 100644 index 0000000..276728c Binary files /dev/null and b/src/assets/images/secondBg.png differ diff --git a/src/router/index.js b/src/router/index.js index 059d3d6..86adb46 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,162 +1,192 @@ -import { createRouter, createWebHistory } from 'vue-router' -import { installRouteGuard } from '../utils/routeGuard.js' +import { createRouter, createWebHistory } from "vue-router"; +import { installRouteGuard } from "../utils/routeGuard.js"; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { - path: '/', - redirect: '/loading' // 默认跳转到加载页面 + path: "/", + redirect: "/loading", // 默认跳转到加载页面 }, { - path: '/loading', - name: 'loading', - component: () => import('../views/LoadingView.vue'), - meta: { requiresAuth: false, isPublic: true } + path: "/loading", + name: "loading", + component: () => import("../views/LoadingView.vue"), + meta: { requiresAuth: false, isPublic: true }, }, { - path: '/host-center', - name: 'host-center', - component: () => import('../views/HostCenterView.vue'), - meta: { requiresAuth: true } + path: "/host-center", + name: "host-center", + component: () => import("../views/HostCenterView.vue"), + meta: { requiresAuth: true }, }, { - path: '/agency-center', - name: 'agency-center', - component: () => import('../views/AgencyCenterView.vue'), - meta: { requiresAuth: true } + path: "/agency-center", + name: "agency-center", + component: () => import("../views/AgencyCenterView.vue"), + meta: { requiresAuth: true }, }, { - path: '/bd-center', - name: 'bd-center', - component: () => import('../views/BDCenterView.vue'), - meta: { requiresAuth: true } + path: "/bd-center", + name: "bd-center", + component: () => import("../views/BDCenterView.vue"), + meta: { requiresAuth: true }, }, { - path: '/coin-seller', - name: 'coin-seller', - component: () => import('../views/CoinSellerView.vue'), - meta: { requiresAuth: true } + path: "/coin-seller", + name: "coin-seller", + component: () => import("../views/CoinSellerView.vue"), + meta: { requiresAuth: true }, }, { - path: '/apply', - name: 'apply', - component: () => import('../views/ApplyView.vue'), - meta: { requiresAuth: false } + path: "/apply", + name: "apply", + component: () => import("../views/ApplyView.vue"), + meta: { requiresAuth: false }, }, { - path: '/message', - name: 'message', - component: () => import('../views/MessageView.vue'), - meta: { requiresAuth: true } + path: "/message", + name: "message", + component: () => import("../views/MessageView.vue"), + meta: { requiresAuth: true }, }, { - path: '/transfer', - name: 'transfer', - component: () => import('../views/TransferView.vue'), - meta: { requiresAuth: true } + path: "/transfer", + name: "transfer", + component: () => import("../views/TransferView.vue"), + meta: { requiresAuth: true }, }, { - path: '/exchange-gold-coins', - name: 'exchange-gold-coins', - component: () => import('../views/ExchangeGoldCoinsView.vue'), - meta: { requiresAuth: true } + path: "/exchange-gold-coins", + name: "exchange-gold-coins", + component: () => import("../views/ExchangeGoldCoinsView.vue"), + meta: { requiresAuth: true }, }, // 辅助页面 { - path: '/about', - name: 'about', - component: () => import('../views/AboutView.vue'), + path: "/about", + name: "about", + component: () => import("../views/AboutView.vue"), }, { - path: '/host-setting', - name: 'host-setting', - component: () => import('../views/HostSettingView.vue'), - meta: { requiresAuth: true } + path: "/host-setting", + name: "host-setting", + component: () => import("../views/HostSettingView.vue"), + meta: { requiresAuth: true }, }, { - path: '/search-payee', - name: 'search-payee', - component: () => import('../views/SearchPayeeView.vue'), - meta: { requiresAuth: true } + path: "/search-payee", + name: "search-payee", + component: () => import("../views/SearchPayeeView.vue"), + meta: { requiresAuth: true }, }, { - path: '/information-details', - name: 'information-details', - component: () => import('../views/InformationDetailsView.vue'), - meta: { requiresAuth: true } + path: "/information-details", + name: "information-details", + component: () => import("../views/InformationDetailsView.vue"), + meta: { requiresAuth: true }, }, { - path: '/invite-members', - name: 'invite-members', - component: () => import('../views/InviteMembersView.vue'), - meta: { requiresAuth: true } + path: "/invite-members", + name: "invite-members", + component: () => import("../views/InviteMembersView.vue"), + meta: { requiresAuth: true }, }, { - path: '/team-bill', - name: 'team-bill', - component: () => import('../views/TeamBillView.vue'), - meta: { requiresAuth: true } + path: "/team-bill", + name: "team-bill", + component: () => import("../views/TeamBillView.vue"), + meta: { requiresAuth: true }, }, { - path: '/team-member', - name: 'team-member', - component: () => import('../views/TeamMemberView.vue'), - meta: { requiresAuth: true } + path: "/team-member", + name: "team-member", + component: () => import("../views/TeamMemberView.vue"), + meta: { requiresAuth: true }, }, { - path: '/platform-policy', - name: 'platform-policy', - component: () => import('../views/PlatformPolicyView.vue'), - meta: { requiresAuth: true } + path: "/platform-policy", + name: "platform-policy", + component: () => import("../views/PlatformPolicyView.vue"), + meta: { requiresAuth: true }, }, { - path: '/coin-seller-search', - name: 'coin-seller-search', - component: () => import('../views/CoinSellerSearchView.vue'), - meta: { requiresAuth: true } + path: "/coin-seller-search", + name: "coin-seller-search", + component: () => import("../views/CoinSellerSearchView.vue"), + meta: { requiresAuth: true }, }, { - path: '/seller-records', - name: 'seller-records', - component: () => import('../views/SellerRecordsView.vue'), - meta: { requiresAuth: true } + path: "/seller-records", + name: "seller-records", + component: () => import("../views/SellerRecordsView.vue"), + meta: { requiresAuth: true }, }, { - path: '/bd-setting', - name: 'bd-setting', - component: () => import('../views/BDSettingView.vue'), - meta: { requiresAuth: true } + path: "/bd-setting", + name: "bd-setting", + component: () => import("../views/BDSettingView.vue"), + meta: { requiresAuth: true }, }, // 公共页面 { - path: '/not_app', - name: 'not-app', - component: () => import('../views/NotAppView.vue'), - meta: { requiresAuth: false } + path: "/not_app", + name: "not-app", + component: () => import("../views/NotAppView.vue"), + meta: { requiresAuth: false }, }, // 404 页面 { - path: '/:pathMatch(.*)*', - name: 'not-found', - redirect: '/apply' + path: "/:pathMatch(.*)*", + name: "not-found", + redirect: "/apply", }, { - path: '/history-salary', - name: 'history-salary', - component: () => import('../views/HistorySalaryView.vue'), - meta: { requiresAuth: true } + path: "/history-salary", + name: "history-salary", + component: () => import("../views/HistorySalaryView.vue"), + meta: { requiresAuth: true }, }, { - path: '/platform-salary', - name: 'platform-salary', - component: () => import('../views/PlatformPolicyView.vue'), - meta: { requiresAuth: true } - } + path: "/platform-salary", + name: "platform-salary", + component: () => import("../views/PlatformPolicyView.vue"), + meta: { requiresAuth: true }, + }, + { + path: "/admin-center", + name: "admin-center", + component: () => import("../views/AdminCenter.vue"), + meta: { requiresAuth: true }, + }, + { + path: "/item-distribution", + name: "item-distribution", + component: () => import("../views/ItemDistribution.vue"), + meta: { requiresAuth: true }, + }, + { + path: "/recharge", + name: "recharge", + component: () => import("../views/Recharge.vue"), + meta: { requiresAuth: true }, + }, + { + path: "/recharge-standard", + name: "recharge-standard", + component: () => import("../views/RechargeStandard.vue"), + meta: { requiresAuth: true }, + }, + { + path: "/recharge-freight-agent", + name: "recharge-freight-agent", + component: () => import("../views/RechargeFreightAgent.vue"), + meta: { requiresAuth: true }, + }, ], -}) +}); // 安装路由守卫 -installRouteGuard(router) +installRouteGuard(router); -export default router +export default router; diff --git a/src/views/AdminCenter.vue b/src/views/AdminCenter.vue new file mode 100644 index 0000000..3c7ad95 --- /dev/null +++ b/src/views/AdminCenter.vue @@ -0,0 +1,310 @@ + + + + + diff --git a/src/views/ItemDistribution.vue b/src/views/ItemDistribution.vue new file mode 100644 index 0000000..3c7ad95 --- /dev/null +++ b/src/views/ItemDistribution.vue @@ -0,0 +1,310 @@ + + + + +