From 0c50318988b313a6e7f5a949a83687bb2ffab9f4 Mon Sep 17 00:00:00 2001 From: liaoxinyu Date: Wed, 29 Oct 2025 16:38:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=82=80=E8=AF=B7=E5=A5=BD?= =?UTF-8?q?=E5=8F=8B=E9=A1=B5=E9=9D=A2=E3=80=81=E4=B8=AA=E4=BA=BA=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E8=B7=B3=E8=BD=AC=E9=97=AE=E9=A2=98=E3=80=81=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E7=90=86=E8=B4=A2=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/wallet.js | 12 + assets/img/hint.png | Bin 0 -> 385 bytes assets/img/home/user.png | Bin 0 -> 1941 bytes assets/img/rise.png | Bin 0 -> 611 bytes element/index.js | 8 +- i18n/lang/en.json | 48 ++- i18n/lang/zh-TW.json | 48 ++- main.js | 6 +- pages.json | 19 + pages/base/home.vue | 33 +- pages/base/index.vue | 17 +- pages/base/mine.vue | 79 +++- .../financialManagement/finances-history.vue | 194 +++++++++ pages/financialManagement/finances-hold.vue | 334 ++++++++++++++++ .../financialManagement/finances-product.vue | 369 ++++++++++++++++++ pages/financialManagement/index.vue | 124 ++++++ pages/invite/index.vue | 94 +++-- pages/invite/web-view.vue | 22 ++ pages/purchase/index.vue | 61 +-- static/img/light/Page12.png | Bin 0 -> 1682 bytes static/js/jquery3_5_1.min.js | 2 + static/js/pako1_0_9.min.js | 1 + static/js/qs6_9_4.min.js | 1 + static/tradingview.html | 7 +- 24 files changed, 1381 insertions(+), 98 deletions(-) create mode 100644 assets/img/hint.png create mode 100644 assets/img/home/user.png create mode 100644 assets/img/rise.png create mode 100644 pages/financialManagement/finances-history.vue create mode 100644 pages/financialManagement/finances-hold.vue create mode 100644 pages/financialManagement/finances-product.vue create mode 100644 pages/financialManagement/index.vue create mode 100644 pages/invite/web-view.vue create mode 100644 static/img/light/Page12.png create mode 100644 static/js/jquery3_5_1.min.js create mode 100644 static/js/pako1_0_9.min.js create mode 100644 static/js/qs6_9_4.min.js diff --git a/api/wallet.js b/api/wallet.js index b128ba9..f980836 100644 --- a/api/wallet.js +++ b/api/wallet.js @@ -179,6 +179,18 @@ class Wallet { static addAdvice(data){ return Serve.post('/user/addAdvice',data,{loading:true}) } + static activity(data){ + return Serve.get('/financial/activity',data) + } + static financialNow(data){ + return Serve.post('/financial/financialNow',data,{loading:true}) + } + static financial_records(data){ + return Serve.get('/financial/financial_records',data) + } + static financial_redemption(data){ + return Serve.get('/financial/financial_redemption',data) + } } export default Wallet; \ No newline at end of file diff --git a/assets/img/hint.png b/assets/img/hint.png new file mode 100644 index 0000000000000000000000000000000000000000..74bd0654b4dfed87c1f1c18034b56b6fc75a54b3 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k3?#4J%UA`ZyaRkfT>r0P1Tz1xX8gYzOs--C ziog)V|5ZQ)9@n1 zs-;)YT-Sa^pUFg+4hy zHkQi2Vk_P7uK9{R^Mmg%0(X5Ef26G$!Z?xN@QFR^jwu(KE=*7@cycnv&3K1V(Sp++ z&6>*0+j`dUbk@0xuUp?e^@d=|qZ^57Mw_!OuYXlp+7|nvv0{m6{lP7vWk+n+wuCM8 z-JUyh+2pP3UnriKH|0&?sd+nd5>B}F=XA8%^d2^!agw$5jn;uzKz}iKy85}Sb4q9e E05$Zl*8l(j literal 0 HcmV?d00001 diff --git a/assets/img/home/user.png b/assets/img/home/user.png new file mode 100644 index 0000000000000000000000000000000000000000..8081c5f3ca956866f0f12b797b080eb10958b3a4 GIT binary patch literal 1941 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 bK~w_(P;^LmNa>hE00000NkvXXu0mjft$?XH literal 0 HcmV?d00001 diff --git a/assets/img/rise.png b/assets/img/rise.png new file mode 100644 index 0000000000000000000000000000000000000000..49ab124d0c90ed0d85e8a742e9a4e4a7ee43bb5e GIT binary patch literal 611 zcmeAS@N?(olHy`uVBq!ia0vp^79h;Q3?%1AoYnzS>jHd2Tvx4HHFM_788c?go;@4L z0D@VwWmU4g)0CufMC+3NyzGfA`mly47dqE!+};zpFSO=Vb-jvQ>QLjvINKg z3PQL*W9Q7712+f407?PHA%@JGHxJ0TSk+ewbh%YYkY6zK|8OVPPmRC+_U)gt_M5>q z-u$;~!d%$XmYfQh#If1_W$*{DAf2|SJbb3kyCiIcR11q&szUf_oF<6l-H@6jW^hK-(vjo>~+oV zhsOWe`d_6lHd?#%ZrG1&$FkCsO { + Vue.use(component) + }) } } export default element \ No newline at end of file diff --git a/i18n/lang/en.json b/i18n/lang/en.json index 75d9269..98a9d80 100644 --- a/i18n/lang/en.json +++ b/i18n/lang/en.json @@ -77,7 +77,53 @@ "c15": "Reset withdrawal password", "rejection":"Reason for rejection", "c35": "Contact Us", - "c36": "send" + "c36": "send", + "d1": "manage finances", + "d2": "Financial Account", + "d3": "Easy to Earn Coins: Efficient, Time-Saving, and Effortless", + "d4": "High-Security Trading Platform, Keep Your Digital Assets Secure and Earn More", + "d5": "Product", + "d6": "Holding", + "d7": "History", + "d8": "Currency", + "d9": "Market Daily", + "d10": "Term", + "d11": "Operation", + "d12": "Subscription", + "d13": "Holding Period", + "d14": "Redemption", + "d15": "Redemption Time", + "d16": "Current/Fixed Deposit", + "d17": "Current Deposit", + "d18": "Financial Subscription", + "d19": "Financial Redemption", + "d20": "Redemption is not supported within the fixed term", + "d21": "Current Profit", + "d22": "Available Balance", + "d23": "Wealth Management Assets", + "d24": "Yesterday's Income", + "d25": "Business Income", + "d26": "Cumulative Income", + "d27": "By quantity", + "d28": "By product", + "d29": "Subscription Quantity", + "d30": "Minimum 100.00", + "d31": "Deposit", + "d32": "What You Can Earn", + "d33": "Rewards", + "d34": "BXPE Reward Rules", + "d35": "For every 100 USDT invested, you will receive 20 BXPE rewards.", + "d36": "Calculation formula: Total invested funds - Redemption funds = Calculation amount (calculated per 100 USDT)", + "d37": "Overview", + "d38": "Product Rules", + "d39": "Estimated Daily Return", + "d40": "The annualized rate does not represent actual or expected returns calculated in fiat currency. Please refer to the product rules for the relevant return mechanism.", + "d41": "Returns", + "d42": "Returns will be calculated starting from the day after subscription, and interest income will be distributed daily.", + "d43": "After a successful redemption application, the current assets will be immediately returned to your wealth management wallet.", + "d44": "Accumulated interest", + "d45": "Regular", + "d46": "The selected assets will be redeemed immediately and in full to your financial account." }, "base": { "a0": "Title", diff --git a/i18n/lang/zh-TW.json b/i18n/lang/zh-TW.json index 2623c89..2bf6a6e 100644 --- a/i18n/lang/zh-TW.json +++ b/i18n/lang/zh-TW.json @@ -76,7 +76,53 @@ "c15": "重置提款密碼", "rejection":"拒絕理由", "c35": "聯繫我們", - "c36": "發送" + "c36": "發送", + "d1": "理財", + "d2": "理財帳戶", + "d3": "簡單賺幣:高效、省時、省力", + "d4": "高安全性交易平台,讓您的數位資產安全無憂,收益更加可觀", + "d5": "產品", + "d6": "持有", + "d7": "歷史", + "d8": "幣種", + "d9": "市場日化", + "d10": "期限", + "d11": "操作", + "d12": "申購", + "d13": "持有時間", + "d14": "贖回", + "d15": "贖回時間", + "d16": "活期/定期", + "d17": "活期", + "d18": "理財申購", + "d19": "理財贖回", + "d20": "固定期限內不支援贖回", + "d21": "当前盈利", + "d22": "可用餘額", + "d23": "理財資產", + "d24": "昨日收益", + "d25": "業務收益", + "d26": "累計收益", + "d27": "按數量", + "d28": "按產品", + "d29": "申購數量", + "d30": "最少100.00", + "d31": "充值", + "d32": "你可獲得", + "d33": "獎勵", + "d34": "BXPE獎勵規則", + "d35": "投入的淨資金每100USDT可獲得20枚BXPE獎動。", + "d36": "計算公式:投入總資金-贖回資金=計算金額(技每100usdt計算)", + "d37": "概覽", + "d38": "產品規則", + "d39": "預計每日收益", + "d40": "年化率井不代表以法幣計算的實際或預期收益,相關收益機制請參考產品規則。", + "d41": "收益", + "d42": "申購後第二天開始計算收益,每天分配一次利息收益。", + "d43": "赎回申请成功后,活期的资产立即退回你的理财钱包。", + "d44": "累計利息", + "d45": "定期", + "d46": "所選的資產立即全額贖回至您的理財帳戶。" }, "base": { "a0": "標題", diff --git a/main.js b/main.js index a2c6788..55810f9 100644 --- a/main.js +++ b/main.js @@ -3,9 +3,9 @@ import App from './App.vue' import '@/plugins' import i18n from "./i18n"; import store from './store' -// import 'element-ui/lib/theme-chalk/index.css' -// import element from './element/index' -// Vue.use(element) +import 'element-ui/lib/theme-chalk/index.css' +import element from './element/index' +Vue.use(element) //把vuex定义成全局组件 Vue.prototype.$store = store Vue.prototype._i18n = i18n; diff --git a/pages.json b/pages.json index 7de6c0c..4b3c739 100644 --- a/pages.json +++ b/pages.json @@ -182,6 +182,18 @@ { "path" : "pages/assets/userfeedback" }, + { + "path" : "pages/financialManagement/finances-history" + }, + { + "path" : "pages/financialManagement/finances-hold" + }, + { + "path" : "pages/financialManagement/finances-product" + }, + { + "path" : "pages/financialManagement/index" + }, { "path": "pages/service/index", "style": { @@ -224,6 +236,13 @@ "enablePullDownRefresh": false } + }, + { + "path" : "pages/invite/web-view", + "style" : + { + "navigationBarTitleText" : "" + } } ], "globalStyle": { diff --git a/pages/base/home.vue b/pages/base/home.vue index 5e145d9..f4485ce 100644 --- a/pages/base/home.vue +++ b/pages/base/home.vue @@ -194,8 +194,8 @@ + v-for="(item,index) in sortedMarketListHe" :key="index" + v-if="item.symbol=='BXPE'||item.symbol=='BTC'||item.symbol=='ETH'||item.symbol=='BNB'||item.symbol=='SOL'||item.symbol=='DOGE'"> @@ -766,10 +766,10 @@ - {{ $t("base.e6") }} - + --> --> - + {{ $t("base.c1") }} @@ -897,6 +897,16 @@ + + + + + {{ $t("invite.a0") }} + + + + @@ -926,7 +936,7 @@ --> - + {{ $t("accountSettings.a9") }} @@ -1062,6 +1072,13 @@ const is_agency = agency.data.user.is_agency return is_agency } + }, + sortedMarketListHe() { + return [...this.marketListHe].sort((a, b) => { + if (a.symbol === 'BXPE') return -1; // BXPE 排在最前 + if (b.symbol === 'BXPE') return 1; + return 0; // 其他保持原顺序 + }); } }, watch: { @@ -1104,6 +1121,10 @@ this.show = false; this.tabChange('exchange-operation') }, + contract() { + this.show = false; + this.tabChange('contract') + }, goReg() { uni.navigateTo({ url: '/pages/reg/index' diff --git a/pages/base/index.vue b/pages/base/index.vue index e4e7ee9..b5e33c0 100644 --- a/pages/base/index.vue +++ b/pages/base/index.vue @@ -31,6 +31,7 @@ import Help from "@/pages/help/index.vue" import Mine from "./mine"; import OptionList from "./option-list"; + import financialManagement from "../financialManagement/index"; // import List from "./list"; import Contract from "./contract"; export default { @@ -42,7 +43,8 @@ Mine, Contract, Purchase, - Help + Help, + financialManagement }, computed: { navList() { @@ -72,7 +74,18 @@ // icon: "static/img/base_qukuai_0.png", // activeIcon: "static/img/base_qukuai_1.png", // }, - + // { + // label: this.$t("purchase.a5"), + // tel: "purchase", + // icon: "static/img/base_qukuai_0.png", + // activeIcon: "static/img/base_qukuai_1.png", + // }, + { + label: this.$t("common.d1"), + tel: "financialManagement", + icon: "static/img/base_qukuai_0.png", + activeIcon: "static/img/base_qukuai_1.png", + }, { label: this.$t("base.d2"), tel: "mine", diff --git a/pages/base/mine.vue b/pages/base/mine.vue index d6c83e8..af873d2 100644 --- a/pages/base/mine.vue +++ b/pages/base/mine.vue @@ -53,9 +53,7 @@ - {{ - $t("base.b5") - }} + {{$t("base.b5")}} - {{ - $t("base.b6") - }} + {{$t("base.b6")}} - {{ - $t("base.d8") - }} + {{$t("base.d8")}} @@ -112,6 +106,14 @@ @click="tabActive=1"> {{$t('base.e4')}} + + @@ -288,6 +290,38 @@ + + + + + {{$t("common.d2")}} + + + {{ activeCoin.usable_balance }} + USDT + + + + + + + {{$t("contract.f0")}} + + + + + + @@ -304,8 +338,16 @@ import math from "@/utils/class/math.js"; import Profile from "@/api/profile"; import Contract from "@/api/contract.js"; + import financesProduct from "../financialManagement/finances-product"; + import financesHold from "../financialManagement/finances-hold"; + import financesHistory from "../financialManagement/finances-history"; export default { name: "mine", + components: { + financesProduct, + financesHold, + financesHistory + }, data() { return { account: {}, @@ -319,7 +361,10 @@ refreshing: false, otc: {}, ProfileDetail: {}, - user_auth_level: 0 + user_auth_level: 0, + coin_name1:"USDT", + activeCoin:{}, + ontourl:1 }; }, computed: { @@ -362,6 +407,19 @@ } }, methods: { + managefinancestab(val){ + this.ontourl = val + }, + getBalance(){ + let data = { + account: 4, + coin_name: this.coin_name1 + }; + Wallet.getBalance(data).then(res => { + this.activeCoin = res.data; + // console.log(res); + }); + }, onRefresh() { if (this.refreshing) return; this.refreshing = true; @@ -452,6 +510,7 @@ }, created() { this.upDateData(); + this.getBalance(); }, }; diff --git a/pages/financialManagement/finances-history.vue b/pages/financialManagement/finances-history.vue new file mode 100644 index 0000000..cbd3847 --- /dev/null +++ b/pages/financialManagement/finances-history.vue @@ -0,0 +1,194 @@ + + + + + \ No newline at end of file diff --git a/pages/financialManagement/finances-hold.vue b/pages/financialManagement/finances-hold.vue new file mode 100644 index 0000000..86f9c22 --- /dev/null +++ b/pages/financialManagement/finances-hold.vue @@ -0,0 +1,334 @@ + + + + + \ No newline at end of file diff --git a/pages/financialManagement/finances-product.vue b/pages/financialManagement/finances-product.vue new file mode 100644 index 0000000..994dd41 --- /dev/null +++ b/pages/financialManagement/finances-product.vue @@ -0,0 +1,369 @@ + + + + + \ No newline at end of file diff --git a/pages/financialManagement/index.vue b/pages/financialManagement/index.vue new file mode 100644 index 0000000..95d94cf --- /dev/null +++ b/pages/financialManagement/index.vue @@ -0,0 +1,124 @@ + + + + + \ No newline at end of file diff --git a/pages/invite/index.vue b/pages/invite/index.vue index f3442b1..4ab25df 100644 --- a/pages/invite/index.vue +++ b/pages/invite/index.vue @@ -2,7 +2,7 @@ - + @@ -29,7 +29,8 @@ - + + {{$t('invite.a6')}} @@ -43,26 +44,16 @@ - - + - + - + @@ -251,29 +242,50 @@ export default { }, saves(){ var that=this - uni.downloadFile({//下载 - url: this.imgs, //图片下载地址 - success: res => { - if (res.statusCode === 200) { - uni.hideLoading() - uni.saveImageToPhotosAlbum({//保存图片到系统相册。 - filePath: res.tempFilePath,//图片文件路径 - success: function() { - that.$toast(that.$t('common.b3')) - }, - fail: function(e) { - that.$toast(that.$t('common.b4')) - } - }); - } - }, - fail:res => { - uni.showToast({ - title: this.$t('common.b4'), - icon: 'none', - }); - } - }); + const link = document.createElement('a'); + link.href = this.imgs; + link.download = 'image' + '.jpg'; // 设置下载文件名 + link.target = '_blank'; // 在新窗口打开,避免页面跳转 + // 对于跨域图片,需要先转换为blob + fetch(this.imgs).then(response => response.blob()).then(blob => { + const url = window.URL.createObjectURL(blob); + link.href = url; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + window.URL.revokeObjectURL(url); + uni.hideLoading(); + that.$toast(that.$t('common.b3')) + }).catch(error => { + // 如果fetch失败,尝试直接下载 + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + that.$toast(that.$t('common.b4')) + }); + // uni.downloadFile({//下载 + // url: this.imgs, //图片下载地址 + // success: res => { + // if (res.statusCode === 200) { + // uni.hideLoading() + // uni.saveImageToPhotosAlbum({//保存图片到系统相册。 + // filePath: res.tempFilePath,//图片文件路径 + // success: function() { + // that.$toast(that.$t('common.b3')) + // }, + // fail: function(e) { + // that.$toast(that.$t('common.b4')) + // } + // }); + // } + // }, + // fail:res => { + // uni.showToast({ + // title: this.$t('common.b4'), + // icon: 'none', + // }); + // } + // }); }, callback($ev) { this.imgBase64 = $ev; diff --git a/pages/invite/web-view.vue b/pages/invite/web-view.vue new file mode 100644 index 0000000..94fbc70 --- /dev/null +++ b/pages/invite/web-view.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/pages/purchase/index.vue b/pages/purchase/index.vue index 3701a3e..6f4143f 100644 --- a/pages/purchase/index.vue +++ b/pages/purchase/index.vue @@ -2,7 +2,8 @@ - + +