{"version":3,"sources":["utils/enum/index.js","store/slice/auth.js","utils/request.js","views/Client/RealNameForm.js","utils/format.js","views/Client/CardForm.js","views/Client/QRCodeForm.js","views/Client/RedirectSpin.js","views/Client/FormPost.js","views/Client/index.js","ClientApp.js","reportWebVitals.js","index.js"],"names":["CurrencyKeys","RMB","USDT_ERC20","USDT_TRC20","USDT_OMNI","BTC","ETH","TRX","CurrencyFormat","key","unit","rate","tofix","getOpt","a","request","url","method","res","getOptStatus","createAsyncThunk","status","data","slice","createSlice","name","initialState","user","JSON","parse","localStorage","getItem","isOtp","reducers","setUser","state","action","payload","logout","removeItem","extraReducers","fulfilled","actions","config","params","axios","response","console","log","message","RealNameForm","postPayerName","Form","useForm","nameForm","Title","level","className","form","onFinish","Item","label","rules","required","placeholder","type","htmlType","block","style","marginTop","priceFormat","val","currency","showUnit","find","i","tofixVal","toLocaleString","maximumFractionDigits","e","copyText","navigator","clipboard","writeText","success","CardForm","order","useMemo","amount","order_no","expired_at","payer_name","credential","Date","toLocaleDateString","account","open_bank","sub_bank","width","justifyContent","Countdown","value","valueStyle","fontSize","color","Text","strong","description","marginBottom","onClick","QRCodeForm","payType","credentialData","_amountFormat","rmb","price","textAlign","size","paddingLeft","address","RedirectSpin","minHeight","indicator","LoadingOutlined","spin","FormPost","formData","useRef","useEffect","current","submit","ref","id","post_url","Object","keys","map","k","URL","window","location","searchParams","get","fullScreenHandle","href","document","createElement","click","Client","useState","loading","setLoading","showType","setShowType","setOrder","handleSetShowType","tempShowType","credentialType","userAgent","vendor","opera","test","toLowerCase","isMobile","error","fetchOrder","Modal","title","okText","initProcess","spinning","pay_type","interceptors","use","withCredentials","baseURL","process","Promise","reject","App","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.5e2c9579.chunk.js","sourcesContent":["export const errorCodeMessage = {\n 200: \"服务器成功返回请求的数据。\",\n 201: \"新建或修改数据成功。\",\n 202: \"一个请求已经进入后台排队(异步任务)。\",\n 204: \"删除数据成功。\",\n 400: \"发出的请求有误。\", // 发出的请求有错误,服务器没有进行新建或修改数据的操作。\n 401: \"用户没有权限(令牌、用户名、密码错误)。\",\n 403: \"没有权限。\",\n 404: \"找不到对象。\",\n 405: \"方法不允许。\",\n 406: \"请求的格式不可得。\",\n 410: \"请求的资源被永久删除,且不会再得到的。\",\n 422: \"当创建一个对象时,发生一个验证错误。\",\n 429: \"请求太频繁了\",\n 500: \"服务器发生错误\",\n 502: \"网关错误。\",\n 503: \"服务不可用,服务器暂时过载或维护。\",\n 504: \"网关超时。\",\n};\nexport const formLayout = { labelCol: { span: 8 }, wrapperCol: { span: 16 } };\nexport const mode = {\n add: \"添加\",\n edit: \"编辑\",\n approve: \"审核\",\n deny: \"拒绝\",\n batch: \"批次\",\n};\nexport const isActiveLang = val => {\n return val ? \"是\" : \"否\";\n};\nexport const isSuccessLang = val => {\n return val ? \"成功\" : \"失败\";\n};\n\nexport const OrderStatus = {\n 0: \"初始化\",\n 1: \"新订单\",\n 2: \"待处理\",\n 3: \"待付款\",\n 4: \"已支付\",\n 5: \"失败\",\n 6: \"过期\",\n 7: \"取消\",\n 8: \"待审核\",\n 9: \"审核通过\",\n 10: \"审核拒绝\",\n 11: \"待通知\",\n 12: \"通知中\",\n 13: \"通知成功\",\n 14: \"通知失败\",\n 15: \"成功\",\n 16: \"订单支付失败\",\n 17: \"订单检查中\",\n 18: \"代理已付款\",\n};\n\n// export const WXPayType = {\n// 0: \"微信\", // wx_recharge_rate\n// 1: \"支付宝\", // alipay_recharge_rate\n// 2: \"网银转账\", // ebank_recharge_rate\n// 3: \"银行卡转账\", // bank_recharge_rate\n// 4: \"加密货币\", // crypto_recharge_rate\n// 6: \"QQ\", // qq_recharge_rate\n// 7: \"数字人民币\", // ecny_recharge_rate\n// 8: \"云闪付\", // union_recharge_rate\n// 9: \"NoPay\", // nopay_recharge_rate\n// 10: \"银联存款\", // union_pay_recharge_rate\n// 11: \"抖音存款\", // douyin_recharge_rate\n// };\n\nexport const PayMethod = {\n 0: \"redirect 跳转收银台\",\n 1: \"qrcode 二维码\",\n 2: \"转账 \",\n 3: \"表单提交 \",\n};\n\nexport const PayStatus = {\n 3: \"待付款\",\n 4: \"已支付\",\n};\n\nexport const AddrRedirect = {\n 0: \"\",\n 1: \"https://etherscan.io/address\",\n 2: \"https://tronscan.org/#/address\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n};\nexport const TransRedirect = {\n 0: \"\",\n 1: \"https://etherscan.io/tx\",\n 2: \"https://tronscan.org/#/transaction\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n};\n\nexport const Currency = {\n 0: \"RMB\",\n 1: \"USDT_ERC20\",\n 2: \"USDT_TRC20\",\n 3: \"USDT_OMNI\",\n 4: \"BTC\",\n 5: \"ETH\",\n 6: \"TRX\",\n};\n\nexport const CurrencyKeys = {\n RMB: 0,\n USDT_ERC20: 1,\n USDT_TRC20: 2,\n USDT_OMNI: 3,\n BTC: 4,\n ETH: 5,\n TRX: 6,\n};\n\nexport const CurrencyFormat = [\n { key: 0, unit: \"¥\", rate: 100, tofix: 2 },\n { key: 1, unit: \"$\", rate: 1000000, tofix: 6 },\n { key: 2, unit: \"$\", rate: 1000000, tofix: 6 },\n { key: 3, unit: \"$\", rate: 1000000, tofix: 6 },\n { key: 4, unit: \"\", rate: 100000000, tofix: 8 },\n { key: 5, unit: \"\", rate: 1000000000000000000, tofix: 18 },\n { key: 6, unit: \"\", rate: 1, tofix: 0 },\n { key: 7, unit: \"¥\", rate: 1, tofix: 0 },\n];\n\nexport const IsBoolEnum = {\n 1: \"是\",\n 0: \"否\",\n};\n\nexport const ApprovalStatus = {\n 8: \"待审核\",\n 9: \"审核通过\",\n 10: \"审核拒绝\",\n};\nexport const NotifyStatus = {\n 11: \"待通知\",\n 12: \"通知中\",\n 13: \"通知成功\",\n 14: \"通知失败\",\n};\n\nexport const Network = {\n 0: \"TRX 波场\",\n 1: \"ETH 以太坊\",\n 2: \"BTC\",\n};\n\nexport const DeveloperStatus = {\n 0: \"审核中\",\n 1: \"审核通过\",\n 2: \"拒绝\",\n};\n\nexport const AppStatus = {\n 0: \"开发中\",\n 1: \"提审中\",\n 2: \"上线运营\",\n 3: \"停用\",\n};\n\nexport const CryptoAcctLogsType = {\n 0: \"存款\",\n 1: \"提款\",\n 2: \"活动赠送\",\n 3: \"扣罚\",\n 4: \"其它\",\n};\nexport const CryptoAcctLogsStatus = {\n 0: \"交易未确认\",\n 1: \"交易已确认\",\n 2: \"待绑定\",\n 3: \"已绑定订单\",\n};\n\nexport const ContentType = {\n 1: \"存款订单\",\n 2: \"提款订单\",\n 3: \"活动对象\",\n};\n\nexport const DirType = {\n 0: \"转入\",\n 1: \"转出\",\n};\n\nexport const BankPayType = {\n 0: \"入帐\",\n 1: \"出帐\",\n};\n\nexport const AuditType = {\n 0: \"未合帐\",\n 1: \"已核帐\",\n 2: \"核帐失败\",\n};\n\nexport const FeeType = {\n 0: \"固定\",\n 1: \"百分比\",\n 2: \"阶层利率\",\n 3: \"固定+一般利率\",\n 4: \"固定+阶层利率\",\n};\n\nexport const transferStatus = {\n 0: \"初始化代付\",\n 1: \"下单失败\",\n 2: \"待认领\",\n 3: \"已认领待审核\",\n 4: \"代付审核中\",\n 5: \"代付已审核\",\n 6: \"代付审核拒绝\",\n 7: \"已经认领待出款\",\n 8: \"出款中\",\n 9: \"出款成功\",\n 10: \"出款失败\",\n 11: \"出款订单过期\",\n 12: \"出款订单取消\",\n 13: \"出款待回调\",\n 14: \"出款回调中\",\n 15: \"出款回调成功\",\n 16: \"出款回调失败\",\n 17: \"第三方代付失败\",\n 18: \"出款中\",\n 19: \"代理出款中\",\n 20: \"代理撤回\",\n};\n\nexport const CardStatus = {\n 0: \"审核中\",\n 1: \"启用中\",\n 2: \"冻结\",\n 3: \"已达到当日上限制\",\n};\n\nexport const CardDirection = { 0: \"收入\", 1: \"支出\" };\n\nexport const AmountType = {\n 0: \"任意金额\",\n 1: \"固定金额\",\n};\nexport const TransfersCategory = {\n 0: \"用户代付订单\",\n 1: \"商户提款订单\",\n};\n\nexport const AppAcctLogType = {\n 0: \"用户存款\",\n 1: \"申请提款\",\n 2: \"提款成功\",\n 3: \"提款失败\",\n 4: \"代理支付手续费\",\n 5: \"代理支付手续费返还\",\n 6: \"代理代收分润\",\n 7: \"代理代收分润返还\",\n 8: \"分润出帐\",\n 9: \"分润入帐\",\n 10: \"订单回收\",\n 11: \"分润出帐返还\",\n 12: \"分润入帐返还\",\n 13: \"修改圈存金额\",\n 14: \"划转入帐\",\n 15: \"划转出帐\",\n 16: \"其他\",\n 17: \"支付渠道手续费\",\n 18: \"支付渠道手续费返还\",\n};\n\nexport const AgentAcctLogType = {\n 0: \"其他\",\n 1: \"代付出帐\",\n 2: \"代付入帐\",\n 3: \"代付手续费\",\n 4: \"代付退回手续费\",\n 5: \"代收入帐\",\n 6: \"代收出帐\",\n 7: \"代收分润\",\n 8: \"代收分润返还\",\n 9: \"修改圈存金额\",\n 10: \"划转入帐\",\n 11: \"划转出帐\",\n};\n\nexport const AcctSwapType = {\n 0: \"其他\",\n 1: \"划转\",\n 2: \"收回\",\n 3: \"更新余额\",\n};\n\nexport const AcctSwapUserType = {\n 0: \"其他\",\n 1: \"商户\",\n 2: \"代理\",\n};\n\nexport const GatewayAcctLogType = {\n 0: \"其他\",\n 1: \"用户存款\",\n 2: \"用户提款\",\n 3: \"更新余额\",\n};\n\nexport const ProductCategory = {\n 0: \"服装\",\n 1: \"家居服饰\",\n 2: \"数码产品\",\n};\nexport const IsSplitOrderStatus = {\n \"\": \"全部\",\n 1: \"总单\",\n 0: \"子单\",\n};\n\n// 安全提款\nexport const SaveWithdrawalStatus = {\n 安全渠道: \"是\",\n \"\": \"否\",\n};\n","import { createSlice, createAsyncThunk } from \"@reduxjs/toolkit\";\nimport request from \"@/utils/request\";\n\nexport const login = async (data = {}) => {\n return await request({\n url: \"/auth/login\",\n method: \"post\",\n data,\n });\n};\n\nexport const getOpt = async () => {\n const res = await request({\n url: \"/auth/opt\",\n method: \"get\",\n });\n return res;\n};\nexport const verifyOpt = async data => {\n const res = await request({\n url: \"/auth/otp/verify\",\n method: \"post\",\n data,\n });\n return res;\n};\n\nexport const getOptStatus = createAsyncThunk(\"auth/optStatus\", async () => {\n const { status, data } = await getOpt();\n if (status !== 200) return;\n return data;\n});\n\nexport const slice = createSlice({\n name: \"user\",\n initialState: {\n user: JSON.parse(localStorage.getItem(\"user\")) || null,\n isOtp: false,\n },\n reducers: {\n setUser: (state, action) => {\n state.user = action.payload;\n },\n logout: state => {\n state.user = null;\n localStorage.removeItem(\"user\");\n },\n },\n extraReducers: {\n [getOptStatus.fulfilled]: (state, action) => {\n state.isOtp = action.payload;\n },\n },\n});\nexport const { setUser, logout } = slice.actions;\nexport const selectAuth = state => state.auth;\nexport default slice.reducer;\n","import axios from \"axios\";\nimport { errorCodeMessage } from \"@/utils/enum\";\nimport { Modal } from \"antd\";\nimport Notification from \"@/components/factory/NotifFactory\";\nimport { logout } from \"@/store/slice/auth\";\nconst IS_CLIENT = process.env.REACT_APP_NAME === \"CLIENT\";\n\nexport const interceptor = store => {\n axios.interceptors.request.use(\n config => {\n config = {\n ...config,\n withCredentials: true,\n baseURL: process.env.REACT_APP_API_URL,\n };\n return config;\n },\n function (error) {\n return Promise.reject(error);\n },\n );\n\n axios.interceptors.response.use(\n response => {\n response = {\n ...response,\n };\n return response;\n },\n function (error) {\n const status = error.response.status;\n if (IS_CLIENT) {\n Modal.error({\n title: \"抽卡失败,请重新下单或联系客服\",\n okText: \"我知道了\",\n });\n return Promise.reject(error);\n }\n\n if (status === 500) {\n Notification({\n title: errorCodeMessage[status] ?? error.message,\n message:\n error.response?.data?.err ||\n JSON.stringify(error.response?.data || \"\"),\n });\n } else if (status === 403) {\n // store.dispatch(logout());\n Notification({\n title: errorCodeMessage[status] ?? error.message,\n message: error.response?.data?.err,\n });\n } else if (status === 401) {\n store.dispatch(logout());\n Notification({\n title: errorCodeMessage[status] ?? error.message,\n message: error.response?.data?.err,\n });\n } else {\n Notification({\n title:\n error.response.data.message ??\n errorCodeMessage[status] ??\n error.message,\n message:\n error.response?.data?.err ||\n JSON.stringify(error.response?.data || \"\"),\n });\n }\n return Promise.reject(error);\n },\n );\n};\n/**\n *\n * @param {url, method, data, params} config\n * data --> post {}\n */\nconst request = async config => {\n const params = {\n url: config.url,\n method: config.method,\n ...(config.method === \"get\"\n ? { params: config.params }\n : { data: config.data }),\n };\n try {\n const { data, status } = await axios(params);\n return { data, status };\n } catch (error) {\n if (error.response) {\n console.log(\"response\", error.response);\n } else if (error.request) {\n console.log(\"request\", error.request);\n } else {\n console.log(\"Error message\", error.message);\n }\n return { status: error.response.status, data: error.response.data };\n }\n};\n\nexport default request;\n","import React from \"react\";\nimport { Typography, Form, Input, Button } from \"antd\";\nfunction RealNameForm({ postPayerName }) {\n const [nameForm] = Form.useForm();\n\n return (\n <>\n \n 真实姓名补全\n \n\n {/* 注意 */}\n {/* */}\n\n
\n \n \n \n \n \n 提交\n \n \n \n \n );\n}\n\nexport default RealNameForm;\n","import moment from \"moment\";\nimport { message } from \"antd\";\nimport { CurrencyFormat } from \"@/utils/enum\";\nimport Area from \"@/utils/enum/area\";\n\nexport const dateFormat = (date, formatStr = \"YYYY-MM-DD HH:mm:ss\") => {\n return date && moment(date)._isValid && typeof date === \"string\"\n ? moment(date).format(formatStr)\n : \"\";\n};\nexport const priceFormat = ({ val, currency, showUnit = true }) => {\n try {\n const { unit, rate, tofix } = CurrencyFormat.find(i => i.key === currency);\n const tofixVal = (val / rate).toLocaleString(\"en-US\", {\n maximumFractionDigits: tofix,\n });\n return showUnit ? `${unit} ${tofixVal}` : tofixVal;\n } catch (e) {\n return \"\";\n }\n};\n\nexport const cnyPriceFormat = val => {\n if (!val) return \"\";\n const tofixVal = (val / 1000).toLocaleString(\"en-US\", {\n maximumFractionDigits: 4,\n });\n return tofixVal;\n};\n\nexport const rangeDateTimeFormat = (val, showTime = true) => {\n if (!val) return;\n if (showTime) return `${val[0]._d.toISOString()}~${val[1]._d.toISOString()}`;\n return `${moment(val[0]).startOf(\"day\").toISOString()}~${moment(val[1])\n .endOf(\"day\")\n .toISOString()}`;\n};\n\nexport const rangeLimitDays = (limitDays = 0, dateStr = \"\") => {\n const dateArr = dateStr.split(\"~\");\n let dt1 = new Date(dateArr[0]).getTime();\n let dt2 = new Date(dateArr[1]).getTime();\n const days = (dt2 - dt1) / (1000 * 60 * 60 * 24);\n return days <= limitDays;\n};\n\nconst fieldVerifyHasVal = val => val !== undefined && val !== \"\";\n\nexport const objFormateToSearchFields = (obj = {}) => {\n let data = {};\n if (!obj) return data;\n Object.keys(obj).forEach(\n k => (data[k] = { type: \"hidden\", initialValue: obj[k] }),\n );\n return data;\n};\n\n/**\n * filter 所有 fields 的 initialValue\n * @param {*} fields\n * @returns {}\n */\nexport const searchFieldsFilterInitialValues = fields => {\n if (!Object.keys(fields).length) return {};\n let data = {};\n Object.keys(fields).forEach(f => {\n fields[f].initialValue && (data[f] = fields[f].initialValue);\n });\n return data;\n};\n\n/**\n * format 所有 fields for server\n * @param {*} param0\n * @returns {}\n */\nexport const searchFieldsFormat = ({ fields, formModel }) => {\n let params = {};\n Object.keys(fields).forEach(i => {\n const fieldsHandle = () => {\n fieldVerifyHasVal(formModel[i]) && (params[i] = formModel[i]);\n };\n const typeRangeDate = () => {\n if (fieldVerifyHasVal(formModel[i])) {\n params[i] =\n \"showTime\" in fields[i]\n ? rangeDateTimeFormat(formModel[i], fields[i].showTime)\n : rangeDateTimeFormat(formModel[i]);\n }\n };\n const typeDate = () => {\n fieldVerifyHasVal(formModel[i]) &&\n (params[i] = moment(formModel[i]).startOf(\"day\").toISOString());\n };\n const typeSearchSelect = () => {\n formModel[i]?.length && (params[i] = formModel[i].join(\",\"));\n };\n const typeSelect = () => {\n if (i === \"funding_type\") {\n fieldVerifyHasVal(formModel[i]) &&\n (params = { ...params, ...JSON.parse(formModel[i]) });\n } else {\n fieldsHandle();\n }\n };\n const typeObj = {\n rangeDate: typeRangeDate,\n date: typeDate,\n searchSelect: typeSearchSelect,\n select: typeSelect,\n };\n typeObj[fields[i].type] ? typeObj[fields[i].type]() : fieldsHandle();\n });\n return params;\n};\n\n/**\n * 處理 searchFields for server\n * @param {*} 頁面層定義的 searchFields\n * @returns {}\n */\nexport const searchFieldsInitialValuesFormat = (searchFields = {}) => {\n const formModel = searchFieldsFilterInitialValues(searchFields);\n return searchFieldsFormat({ fields: searchFields, formModel });\n};\n\nexport const metaToPagin = meta => {\n return {\n pageSize: meta.per_page,\n current: meta.page,\n total: meta.total,\n pages: meta.pages,\n };\n};\n\nexport const getRouterDisplayName = (path, router = []) =>\n router.find(i => i.path === path)?.displayName ||\n router.find(i => i.name === path.split(\"/\")[1])?.displayName;\n\nexport const getRouter = (path, router = []) =>\n router.find(i => i.path === path) ||\n router.find(i => i.name === path.split(\"/\")[1]);\n\nexport const getRouterParam = path => {\n const pathLength = path.split(\"/\").length;\n return pathLength > 2 ? ` - ${path.split(\"/\")[pathLength - 1]}` : \"\";\n};\n\nexport const getColumns = () => {\n return JSON.parse(localStorage.getItem(\"columns\") || \"{}\")[\n window.location.pathname\n ];\n};\nexport const getCityArr = prov => {\n const cityItem = Object.entries(Area).filter(\n item => item[0].replace(\"省\", \"\") === prov.replace(\"省\", \"\"),\n );\n return prov && cityItem.length > 0 ? Object.keys(cityItem[0][1].items) : [];\n};\n\nexport const copyText = (val = \"\") => {\n if (!val) return;\n navigator.clipboard.writeText(val);\n message.success(\"复制成功\");\n};\n\nexport const mapToValueEnum = (map, { value = \"value\", label = \"label\" }) => {\n return map.reduce((acc, curr) => {\n acc[curr[value]] = curr[label];\n return acc;\n }, {});\n};\n\nexport const numberToChinese = num => {\n const units = [\"\", \"十\", \"百\", \"千\"];\n const chars = [\"零\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\", \"八\", \"九\"];\n\n if (num === 0) return chars[0];\n let str = \"\";\n let digit,\n unitIndex = 0;\n\n while (num > 0) {\n digit = num % 10;\n if (digit === 0) {\n // 若个位数为零且字符串不为空\n if (str && !str.startsWith(chars[0])) str = chars[0] + str;\n } else {\n str = chars[digit] + units[unitIndex] + str;\n }\n num = Math.floor(num / 10);\n unitIndex++;\n }\n\n // 去掉\"一十\"的前导\"一\",如123 => \"一百二十三\"或 10 => \"十\"\n if (str.startsWith(\"一十\")) str = str.slice(1);\n\n return str;\n};\n","import React, { useMemo } from \"react\";\nimport { Typography, Alert, Statistic, Space, message } from \"antd\";\nimport { priceFormat } from \"@/utils/format\";\nimport { CurrencyKeys } from \"@/utils/enum\";\n\nfunction CardForm({ order }) {\n const state = useMemo(() => {\n const { amount, currency, order_no, expired_at, payer_name, credential } =\n order;\n return {\n order_no,\n payer_name,\n amount: priceFormat({ val: amount, currency: CurrencyKeys[currency] }),\n expired_at: expired_at\n ? new Date(expired_at).toLocaleDateString(\"zh-TW\")\n : \"\", // 请求时间\n\n name: credential?.data?.name || \"\",\n account: credential?.data?.account || \"\", // 收款卡號\n open_bank: credential?.data?.open_bank || \"\", // 收款银行\n sub_bank: credential?.data?.sub_bank || \"\", // 银行分行\n };\n }, [order]);\n\n function copyText(val = \"\") {\n if (!val) return;\n navigator.clipboard.writeText(val);\n message.success(\"复制成功\");\n }\n\n return (\n <>\n \n 订单信息\n \n\n \n 订单关闭倒计时:\n \n \n\n {/* 注意 */}\n \n 注意:\n \n }\n description={\n <>\n 请用注册实名\n {state.payer_name ? (\n {state.payer_name}\n ) : (\n \"\"\n )}\n 的银行卡进行支付,非实名银行卡支付不到账,请联系客服原路退回!\n \n }\n type=\"warning\"\n style={{ marginBottom: \"20px\" }}\n />\n\n
\n
\n
金额
\n
{state.amount || 0}
\n copyText(state.amount)}\n >\n 复制\n \n
\n
\n
订单号
\n
{state.order_no || \"\"}
\n
\n
\n
收款姓名
\n
{state.name || \"\"}
\n copyText(state.name)}\n >\n 复制\n \n
\n
\n
收款卡号
\n
{state.account}
\n copyText(state.account)}\n >\n 复制\n \n
\n
\n
收款银行
\n
{state.open_bank}
\n copyText(state.open_bank)}\n >\n 复制\n \n
\n
\n
银行分行
\n
{state.sub_bank}
\n copyText(state.sub_bank)}\n >\n 复制\n \n
\n
\n
请求时间
\n
{state.expired_at}
\n
\n
\n
\n

温馨提示:

\n
    \n
  1. 请按实际订单金额付款,修改金额造成的损失自行承担!
  2. \n
  3. 请勿保存银行卡信息,重复支付导致资金损失自行承担!
  4. \n
  5. 订单超时(20分钟之外)付款导致资金损失自行承担
  6. \n
\n
\n \n );\n}\n\nexport default CardForm;\n","import React from \"react\";\nimport QRCode from \"qrcode-react\";\nimport { Typography, Space, Statistic, Button } from \"antd\";\nimport { priceFormat, copyText } from \"@/utils/format\";\n\nfunction QRCodeForm({\n payType = 0,\n credentialData = {},\n url = \"\",\n expired_at = 0,\n}) {\n const _amountFormat = credentialData\n ? priceFormat({\n val: credentialData?.amount,\n currency: 3,\n showUnit: false,\n })\n : 0;\n\n const rmb = credentialData\n ? (_amountFormat * credentialData.price).toLocaleString(\"en-US\", {\n maximumFractionDigits: 2,\n })\n : 0;\n\n return (\n <>\n \n 扫描二维码付款\n \n\n {payType === 4 && (\n <>\n \n \n 支付数量-不含手续费\n {_amountFormat} USDT\n \n \n \n
\n
\n
参考汇率
\n
\n ¥{credentialData?.price} /USDT\n
\n copyText(credentialData?.price)}\n >\n 复制\n \n
\n
\n
\n 预计到账≈人民币\n
\n
¥{rmb}
\n copyText(_amountFormat)}\n >\n 复制\n \n
\n \n 请按要求转账后两位小数点,否则可能无法确认到账,造成资金损失\n

\n
\n
收款地址
\n
{credentialData?.address}
\n copyText(credentialData?.address)}\n >\n 复制\n \n
\n
\n
收款币种
\n
\n {credentialData?.currency}\n
\n copyText(credentialData?.currency)}\n >\n 复制\n \n
\n
\n\n {/* 参考汇率:¥ <% credential.data.price %> /USDT */}\n {/* 预计到账≈人民币:¥ (format.USDT(<% credential.data.amount %>)*<% credential.data.price %>).Flex(2) */}\n \n )}\n\n \n 订单关闭倒计时:\n \n \n \n \n \n
\n

温馨提示:

\n {payType === 4 && (\n <>\n

\n 请勿向右方二维码支付任何非{\" \"}\n {credentialData?.currency}\n 协议的资产,否则资金无法到账及找回\n

\n

充值前务必确认地址及币种协议信息无误,否则无法到账。

\n \n )}\n

请使用手机原相机扫描二维码支付

\n
\n \n );\n}\n\nexport default QRCodeForm;\n","import React from \"react\";\nimport { Typography, Spin } from \"antd\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\n\nfunction RedirectSpin() {\n return (\n
\n \n 支付跳转中\n \n
\n } />\n
\n
\n );\n}\n\nexport default RedirectSpin;\n","import React, { useEffect, useRef } from \"react\";\nimport RedirectSpin from \"./RedirectSpin\";\n\nfunction FormPost({ formData = {} }) {\n const form = useRef(null);\n useEffect(() => {\n form?.current.submit();\n }, []);\n return (\n <>\n \n {Object.keys(formData).map(k => (\n \n ))}\n \n \n \n );\n}\n\nexport default FormPost;\n","import React, { useEffect, useState } from \"react\";\nimport { Spin, message, Modal } from \"antd\";\nimport request from \"@/utils/request\";\n\nimport RealNameForm from \"./RealNameForm\";\nimport CardForm from \"./CardForm\";\nimport QRCodeForm from \"./QRCodeForm\";\nimport FormPost from \"./FormPost\";\nimport RedirectSpin from \"./RedirectSpin\";\n\nconst order_no = new URL(window.location).searchParams.get(\"order_no\");\n// const order_no = \"OR1728057650652012\";\nfunction isMobile() {\n const userAgent = navigator.userAgent || navigator.vendor || window.opera;\n const mobileRegex =\n /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i;\n return mobileRegex.test(userAgent.toLowerCase());\n}\n\nexport const fullScreenHandle = (href = window.location.href) => {\n let a = document.createElement(\"a\");\n a.href = href;\n a.click();\n};\nfunction Client() {\n const [loading, setLoading] = useState(false);\n const [showType, setShowType] = useState(\"card\"); // card, name, redirect, qrcode, form-post\n const [order, setOrder] = useState({});\n\n const handleSetShowType = data => {\n let tempShowType = showType;\n let credentialType = data?.credential?.type || \"\";\n\n if (!isMobile()) {\n // PC: 全部显示二维码\n tempShowType = \"qrcode\";\n } else {\n // H5: 保持原样逻辑\n if (credentialType === \"redirect\") {\n tempShowType = \"redirect\";\n data.credential?.url\n ? fullScreenHandle(data.credential.url)\n : message.error(\"跳转失败\");\n } else if (credentialType === \"form-post\") {\n tempShowType = \"form-post\";\n } else if (credentialType === \"card\" && !data.payer_name) {\n tempShowType = \"name\";\n } else if (credentialType === \"card\" && data.payer_name) {\n tempShowType = \"card\";\n } else if (credentialType === \"qrcode\") {\n // 将二维码转换成跳转\n tempShowType = \"redirect\";\n data.credential?.url\n ? fullScreenHandle(data.credential.url)\n : message.error(\"跳转失败\");\n } else {\n tempShowType = \"none\"; // 默认处理非 \"redirect\" 的情况\n }\n }\n\n setShowType(tempShowType);\n };\n\n // 取得訂單\n const fetchOrder = async () => {\n setLoading(true);\n const res = await request({\n url: \"/openapi/order/\" + order_no,\n method: \"get\",\n });\n setLoading(false);\n return res;\n };\n\n // 送出\n const postPayerName = async ({ payer_name }) => {\n setLoading(true);\n const { status, data } = await request({\n url: \"/openapi/order/\" + order_no + \"/payer/name\",\n method: \"post\",\n data: { payer_name },\n });\n setLoading(false);\n if (status !== 200) return;\n if (data.status === \"failed\") {\n Modal.error({\n title: \"实名失败,请联系客服\",\n okText: \"我知道了\",\n });\n return;\n }\n setOrder(data);\n handleSetShowType(data);\n };\n\n const initProcess = async () => {\n const { status, data } = await fetchOrder();\n if (status !== 200) return;\n setOrder(data);\n if (data.status === \"failed\") {\n Modal.error({\n title: \"抽卡失败,请重新下单或联系客服\",\n okText: \"我知道了\",\n });\n return;\n }\n handleSetShowType(data);\n };\n\n useEffect(() => {\n order_no && initProcess();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <>\n
\n
\n
\n \n {/* name type */}\n {showType === \"name\" && (\n \n )}\n {/* card type */}\n {showType === \"card\" && }\n {/* form-post type */}\n {showType === \"form-post\" && (\n \n )}\n {/* redirect type */}\n {showType === \"redirect\" && }\n {/* qrcode type*/}\n {showType === \"qrcode\" && (\n \n )}\n \n
\n
\n
\n \n );\n}\n\nexport default Client;\n","import \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\nimport React from \"react\";\nimport \"@/less/clientMain.less\";\nimport Client from \"@/views/Client\";\nimport { interceptor } from \"@/utils/request\";\ninterceptor();\n\nfunction App() {\n return ;\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"@APP_NAME\";\nimport reportWebVitals from \"./reportWebVitals\";\n\nReactDOM.render(, document.getElementById(\"root\"));\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}