From 732c30b33f782c2d2ebb62eacda2fb7a453a7ecd Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Sat, 31 Jan 2026 11:01:45 +0800
Subject: [PATCH] 1

---
 src/page/user/recharge.vue |  271 ++++++++++++++++++++++++-----------------------------
 1 files changed, 122 insertions(+), 149 deletions(-)

diff --git a/src/page/user/recharge.vue b/src/page/user/recharge.vue
index 24a0ad6..c958f4c 100644
--- a/src/page/user/recharge.vue
+++ b/src/page/user/recharge.vue
@@ -3,62 +3,35 @@
     <van-nav-bar
       :placeholder="true"
       :safe-area-inset-top="true"
-      title="充值中心"
+      :title="$t('充值中心')"
       left-arrow
       @click-left="onClickLeft"
-    />
+    >
+      <template #right>
+        <van-icon
+          @click="$router.push('/rechargelist')"
+          name="orders-o"
+          size="20"
+        />
+      </template>
+    </van-nav-bar>
     <main>
       <div>
-        <div class="main-title">{{ $t("支持得支付渠道") }}</div>
-        <van-cell
-          is-link
-          :title="paymentSelectData.channelAccount || $t('請選擇')"
-          @click="paymentShow = true"
-        />
-        <!-- paymentSelectData.channelMinLimit -->
-        <van-action-sheet
-          v-model="paymentShow"
-          :actions="paymentActions"
-          :cancel-text="$t('qx')"
-          close-on-click-action
-          @select="paymentSelect"
-        />
-
-        <template v-if="paymentSelectData.channelAccount !== undefined">
-          <div class="main-title">{{ $t("收款卡號") }}</div>
-          <div class="white-input">
-            <span>{{ paymentSelectData.channelAccount }}</span>
-            <i
-              class="iconfont icon-fuzhi fuzhi"
-              @click="(e) => copyText(e, channelAccount)"
-            ></i>
-          </div>
-          <div class="main-title">{{ $t("收款銀行") }}</div>
-          <div class="white-input">
-            <span>{{ paymentSelectData.channelDesc }}</span>
-            <i
-              class="iconfont icon-fuzhi fuzhi"
-              @click="(e) => copyText(e, paymentSelectData.channelDesc)"
-            ></i>
-          </div>
-          <div class="main-title">{{ $t("收款人名字") }}</div>
-          <div class="white-input">
-            <span>{{ paymentSelectData.channelImg }}</span>
-            <i
-              class="iconfont icon-fuzhi fuzhi"
-              @click="(e) => copyText(e, channelImg)"
-            ></i>
-          </div>
-          <div class="main-title">{{ $t("請選擇充值賬戶") }}</div>
-          <van-cell is-link :title="rechargeAccountData.name || $t('請選擇')" />
-          <!-- @click="rechargeAccountShow = true" -->
+        <template>
+          <!-- <div class="main-title">{{ $t("请选择充值账户") }}</div>
+          <van-cell
+            is-link
+            :title="rechargeAccountData.name || $t('請選擇')"
+            @click="rechargeAccountShow = true"
+          />
           <van-action-sheet
             v-model="rechargeAccountShow"
             :actions="rechargeAccountActions"
-            :cancel-text="$t('qx')"
-          />
-          <!-- close-on-click-action -->
-          <!-- @select="rechargeAccountSelect" -->
+            :cancel-text="$t('hj106')"
+            close-on-click-action
+            @select="rechargeAccountSelect"
+          /> -->
+
           <div class="main-title">{{ $t("請選擇充值金額") }}</div>
           <div class="white-input">
             <input type="number" :value="value" @input="inputValue" />
@@ -66,49 +39,46 @@
           </div>
 
           <div class="bottom-text">
-            <!---->
-            <!-- <div class="balance">
-              <div>需要支付</div>
-              <div class="balance-text" style="margin-bottom: 0px">
-                0.0000 {{ rechargeAccountData.symbolCode }}
-              </div>
-            </div> -->
             <div class="balance" style="margin-top: 10px">
               <div>{{ $t("最小充值金額") }}</div>
               <div class="balance-text" style="margin-bottom: 0px">
-                {{ paymentSelectData.channelMinLimit }}
-                {{ rechargeAccountData.symbolCode }}
+                1000
               </div>
             </div>
             <div class="division"></div>
-            <div class="upload-text">
-              <div style="margin-bottom: 0.37333rem">
-                {{ $t("上傳憑證:") }}
-              </div>
-              <el-upload
-                :with-credentials="true"
-                class="avatar-uploader"
-                :action="admin + '/user/upload.do'"
-                list-type="picture-card"
-                name="upload_file"
-                :show-file-list="false"
-                :on-success="handleAvatarSuccess"
-                :on-error="handleError"
-                :before-upload="beforeAvatarUpload"
-                :disabled="!showBtn"
-                :limit="1"
-              >
-                <img
-                  v-if="form.img1key"
-                  :src="form.img1key"
-                  class="id-img avatar"
-                  style="width: 100%; height: 100%"
-                />
-              </el-upload>
+          </div>
+          <!--  :disabled="butFlg" -->
+          <div style="font-size: 12px;">
+            If you encounter any deposit problems, please contact online
+            customer service
+          </div>
+          <div
+            style="display: flex;justify-content: space-between;align-items: center;margin-top: 20px;"
+          >
+            <div
+              class="payclass"
+              @click="paytype = 1"
+              :style="
+                paytype == 1
+                  ? 'border: 1px solid #c4d600;'
+                  : 'border: 1px solid  #e5e8ed;'
+              "
+            >
+              Pay 1
+            </div>
+            <div
+              class="payclass"
+              @click="paytype = 2"
+              :style="
+                paytype == 2
+                  ? 'border: 1px solid #c4d600;'
+                  : 'border: 1px solid  #e5e8ed;'
+              "
+            >
+              Pay 2
             </div>
           </div>
           <van-button
-            :disabled="butFlg"
             class="but"
             type="primary"
             style="margin-top: 1.04rem; margin-bottom: 1.04rem"
@@ -125,17 +95,22 @@
 import { ActionSheet } from "vant";
 import ClipboardJS from "clipboard";
 import apiUrl from "@/axios/api.url.js";
-import { siteGetPayInfo, selCzFn } from "../../axios/api";
+import { siteGetPayInfo, selCzFn, thirdPartyRecharge } from "../../axios/api";
 import { Notify } from "vant";
+import { rechargeAccountActions } from "@/utils/rechargeActions";
 // baseURL
 export default {
-  components: { ActionSheet, [Notify.Component.name]: Notify.Component },
+  components: {
+    ActionSheet,
+    [Notify.Component.name]: Notify.Component
+  },
   mounted() {
     this.getPayInfos();
   },
   // getPayInfo
   data() {
     return {
+      loading: false,
       butFlg: true,
       admin: apiUrl.baseURL,
       value: 0,
@@ -143,43 +118,22 @@
       paymentSelectData: {},
       rechargeAccountData: {},
       show: false,
-      actions: [{ name: "銀行卡充值", key: "YHK" }],
+      actions: [
+        {
+          name: this.$t("銀行卡充值"),
+          key: "YHK"
+        }
+      ],
       paymentShow: false,
       paymentActions: [],
       rechargeAccountShow: false,
-      rechargeAccountActions: [
-        {
-          title: this.$t("美股資產"),
-          title1: this.$t("美股可用"),
-          title2: this.$t("美股冻结"),
-          name: this.$t("US"),
-          key: "US",
-          symbol: "$",
-          symbolCode: "USD",
-        },
-        // {
-        //   title: this.$t("印股資產"),
-        //   title1: this.$t("印股可用"),
-        //   title2: this.$t("印股冻结"),
-        //   key: "IN",
-        //   symbol: "RM",
-        //   symbolCode: "MYR",
-        // },
-        {
-          name: this.$t("MAS"),
-          title: this.$t("馬股資產"),
-          title1: this.$t("馬股可用"),
-          title2: this.$t("馬股冻结"),
-          key: "MAS",
-          symbol: "RM",
-          symbolCode: "MYR",
-        },
-      ],
+      rechargeAccountActions: rechargeAccountActions,
       showBtn: true,
       imgStatus: false,
+      paytype: 1,
       form: {
-        img1key: "",
-      },
+        img1key: ""
+      }
     };
   },
   methods: {
@@ -196,30 +150,21 @@
       this.judgeValue();
     },
     async selCzFns() {
-      // payTypeId    payAmt  img
-      if (!this.value) {
-        return Notify(this.$t("hj171"));
-      }
-      if (!this.form.img1key) {
-        return Notify(this.$t("请上传文件"));
-      }
-      const res = await selCzFn({
-        payTypeId: this.paymentSelectData.id,
-        payAmt: this.value,
-        img: this.form.img1key,
+      const res = await thirdPartyRecharge({
+        tradeAmoun: this.value,
+        type: this.paytype
       });
-      if (res.status === 0) {
-        Notify({ type: "success", message: "充值成功" });
-        setTimeout(() => {
-          this.onClickLeft();
-        }, 500);
+      console.log(res);
+      if (res.status == 0) {
+        window.open(res.data);
+      } else {
+        Notify(res.msg);
       }
-      //  Notify("请上传文件");
     },
     async getPayInfos() {
       const res = await siteGetPayInfo();
       if (res.status === 0) {
-        res.data.map((item) => {
+        res.data.map(item => {
           item.name = item.channelAccount;
         });
         this.paymentActions = res.data;
@@ -229,38 +174,41 @@
     handleAvatarSuccess(res, file) {
       this.imgStatus = false;
       this.form.img1key = res.data.url;
+      this.loading = false;
       this.judgeValue();
     },
     beforeAvatarUpload(file) {
+      this.loading = true;
       this.judgeValue();
       this.imgStatus = true;
     },
     handleError() {
+      this.loading = false;
       this.imgStatus = false;
     },
     // upload
     async afterRead(file) {
-      console.log(file);
       let formData = new FormData();
       formData.append("file", file.file || file.raw);
-      console.log(formData);
-      const res = await upload({ file: formData });
-      console.log(res);
+      // console.log(formData);
+      const res = await upload({
+        file: formData
+      });
+      // console.log(res);
     },
     copyText(e, data) {
       var clipboard = new ClipboardJS(".copy-button", {
-        text: () => data,
+        text: () => data
       });
 
       clipboard.on("success", () => {
-        // alert("已复制到剪贴板");
         clipboard.destroy();
       });
 
       clipboard.onClick(e);
     },
     onClickLeft() {
-      this.$router.push("/user");
+      this.$router.push("/account");
     },
     select(e) {
       this.rechargeSelect = e;
@@ -270,34 +218,43 @@
     },
     paymentSelect(e) {
       this.paymentSelectData = e;
-      console.log(e);
-      this.rechargeAccountActions.map((item) => {
-        console.log(item, e);
+      this.rechargeAccountActions.map(item => {
         if (item.key === e.assetsType) {
           this.rechargeAccountData = item;
         }
       });
-      console.log(this.rechargeAccountData, " this.rechargeAccountData");
-    },
-  },
+    }
+  }
 };
 </script>
 
 <style lang="less" scoped>
+.payclass {
+  width: 150px;
+  height: 40px;
+  border-radius: 5px;
+  border: 1px solid #e5e8ed;
+  text-align: center;
+  line-height: 40px;
+}
+
 .but {
   width: 100%;
   color: #ffffff;
-  background-color: #1989fa;
+  background-color: #c4d600;
+  border: none;
   border-radius: 8px;
   height: 66px;
   font-size: 22px;
 }
+
 .bottom-text {
   width: 100%;
   background-color: #fff;
   padding: 0.26667rem 0.37333rem;
   box-sizing: border-box;
   margin-top: 0.26667rem;
+
   // margin-bottom: 80px;
   .balance {
     display: flex;
@@ -308,6 +265,7 @@
     font-style: normal;
     font-weight: 500;
     box-sizing: border-box;
+
     .balance-text {
       color: #181818;
       font-family: PingFang SC;
@@ -318,6 +276,7 @@
       margin-bottom: 0.37333rem;
     }
   }
+
   .division {
     width: 100%;
     height: 0.02667rem;
@@ -325,6 +284,7 @@
     background-color: #e5e8ed;
     margin: 0.37333rem 0;
   }
+
   .upload-text {
     color: #181818;
     font-family: PingFang SC;
@@ -333,9 +293,11 @@
     font-weight: 500;
   }
 }
+
 /deep/ .van-nav-bar__content {
   height: 65px;
 }
+
 /deep/ .van-nav-bar__title {
   font-family: "DINPro";
   width: 100%;
@@ -348,6 +310,7 @@
   font-size: 0.48rem;
   color: #14181f;
 }
+
 /deep/ .van-cell {
   list-style: none;
   width: 100%;
@@ -366,10 +329,12 @@
   margin-top: 0.26667rem;
   box-shadow: 0 0.16rem 0.32rem #eaeaea99;
 }
+
 main {
   padding: 0 0.4rem 0.53333rem;
   box-sizing: border-box;
 }
+
 .main-title {
   font-style: normal;
   font-weight: 400;
@@ -398,14 +363,22 @@
   display: flex;
   justify-content: space-between;
 }
+
 .fuzhi {
   font-size: 28px;
   cursor: pointer;
 }
+
 .myr {
   color: rgb(150, 151, 153);
 }
+
 /deep/ .el-upload__input {
   display: none !important;
 }
-</style>
\ No newline at end of file
+
+/deep/ .avatar-uploader {
+  width: 2.740741rem;
+  height: 2.740741rem;
+}
+</style>

--
Gitblit v1.9.3