1
zzzz
2024-04-07 74bcf0374dad94d352b68f10e2e3d6e0ebc2c9dc
src/page/user/recharge.vue
@@ -3,42 +3,37 @@
    <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 class="main-title">請選擇充值方式</div>
      <van-cell
        is-link
        :title="rechargeSelect.name || '請選擇'"
        @click="show = true"
      />
      <van-action-sheet
        v-model="show"
        :actions="actions"
        cancel-text="取消"
        close-on-click-action
        @select="select"
      /> -->
      <div>
        <div class="main-title">支持得支付渠道</div>
        <div class="main-title">{{ $t("支持得支付渠道") }}</div>
        <van-cell
          is-link
          :title="paymentSelectData.channelAccount || '請選擇'"
          :title="paymentSelectData.channelAccount || $t('請選擇')"
          @click="paymentShow = true"
        />
        <!-- paymentSelectData.channelMinLimit -->
        <van-action-sheet
          v-model="paymentShow"
          :actions="paymentActions"
          cancel-text="取消"
          :cancel-text="$t('qx')"
          close-on-click-action
          @select="paymentSelect"
        />
        <template v-if="paymentSelectData.channelAccount !== undefined">
          <div class="main-title">收款卡號</div>
          <div class="main-title">{{ $t("收款卡號") }}</div>
          <div class="white-input">
            <span>{{ paymentSelectData.channelAccount }}</span>
            <i
@@ -46,7 +41,7 @@
              @click="(e) => copyText(e, channelAccount)"
            ></i>
          </div>
          <div class="main-title">收款銀行</div>
          <div class="main-title">{{ $t("收款銀行") }}</div>
          <div class="white-input">
            <span>{{ paymentSelectData.channelDesc }}</span>
            <i
@@ -54,28 +49,25 @@
              @click="(e) => copyText(e, paymentSelectData.channelDesc)"
            ></i>
          </div>
          <div class="main-title">收款人名字</div>
          <div class="main-title">{{ $t("收款人名字") }}</div>
          <div class="white-input">
            <span>{{ paymentSelectData.channelImg }}</span>
            <span>{{ paymentSelectData.channelName }}</span>
            <i
              class="iconfont icon-fuzhi fuzhi"
              @click="(e) => copyText(e, channelImg)"
              @click="(e) => copyText(e, paymentSelectData.channelName)"
            ></i>
          </div>
          <div class="main-title">請選擇充值賬戶</div>
          <van-cell
            is-link
            :title="rechargeAccountData.name || '請選擇'"
            @click="rechargeAccountShow = true"
          />
          <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="取消"
            :cancel-text="$t('qx')"
          />
          <!-- close-on-click-action -->
          <!-- @select="rechargeAccountSelect" -->
          <div class="main-title">請選擇充值金額</div>
          <div class="main-title">{{ $t("請選擇充值金額") }}</div>
          <div class="white-input">
            <input type="number" :value="value" @input="inputValue" />
            <span class="myr"> {{ rechargeAccountData.symbolCode }}</span>
@@ -90,7 +82,7 @@
              </div>
            </div> -->
            <div class="balance" style="margin-top: 10px">
              <div>最小充值金額</div>
              <div>{{ $t("最小充值金額") }}</div>
              <div class="balance-text" style="margin-bottom: 0px">
                {{ paymentSelectData.channelMinLimit }}
                {{ rechargeAccountData.symbolCode }}
@@ -98,8 +90,11 @@
            </div>
            <div class="division"></div>
            <div class="upload-text">
              <div style="margin-bottom: 0.37333rem">上傳憑證:</div>
              <div style="margin-bottom: 0.37333rem">
                {{ $t("上傳憑證:") }}
              </div>
              <el-upload
                v-loading="loading"
                :with-credentials="true"
                class="avatar-uploader"
                :action="admin + '/user/upload.do'"
@@ -110,6 +105,7 @@
                :on-error="handleError"
                :before-upload="beforeAvatarUpload"
                :disabled="!showBtn"
                :limit="1"
              >
                <img
                  v-if="form.img1key"
@@ -120,12 +116,13 @@
              </el-upload>
            </div>
          </div>
          <!--  :disabled="butFlg" -->
          <van-button
            class="but"
            type="primary"
            style="margin-top: 1.04rem; margin-bottom: 1.04rem"
            @click="selCzFns"
            >充值</van-button
            >{{ $t("hj172") }}</van-button
          >
        </template>
      </div>
@@ -148,37 +145,41 @@
  // getPayInfo
  data() {
    return {
      loading: false,
      butFlg: true,
      admin: apiUrl.baseURL,
      value: 0,
      rechargeSelect: {},
      paymentSelectData: {},
      rechargeAccountData: {},
      show: false,
      actions: [{ name: "銀行卡充值", key: "YHK" }],
      actions: [{ name: this.$t("銀行卡充值"), key: "YHK" }],
      paymentShow: false,
      paymentActions: [],
      rechargeAccountShow: false,
      rechargeAccountActions: [
        {
          name: "美股資產",
          title1: "美股可用",
          title2: "美股冻结",
          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: "印股資產",
          title1: "印股可用",
          title2: "印股冻结",
          key: "IN",
          symbol: "RM",
          symbolCode: "MYR",
        },
        {
          name: "馬股資產",
          title1: "馬股可用",
          title2: "馬股冻结",
          name: this.$t("MAS"),
          title: this.$t("馬股資產"),
          title1: this.$t("馬股可用"),
          title2: this.$t("馬股冻结"),
          key: "MAS",
          symbol: "RM",
          symbolCode: "MYR",
@@ -192,17 +193,25 @@
    };
  },
  methods: {
    judgeValue() {
      console.log(this.form.img1key, this.value);
      if (this.form.img1key && this.value) {
        this.butFlg = false;
      } else {
        this.butFlg = true;
      }
    },
    inputValue(e) {
      this.value = e.target.value;
      console.log(e.target.value);
      this.judgeValue();
    },
    async selCzFns() {
      // payTypeId    payAmt  img
      if (!this.value) {
        return Notify("请输入充值金额");
        return Notify(this.$t("hj171"));
      }
      if (!this.form.img1key) {
        return Notify("请上传文件");
        return Notify(this.$t("请上传文件"));
      }
      const res = await selCzFn({
        payTypeId: this.paymentSelectData.id,
@@ -210,9 +219,9 @@
        img: this.form.img1key,
      });
      if (res.status === 0) {
        Notify({ type: "success", message: "充值成功" });
        Notify({ type: "success", message: this.$t("hj182") });
        setTimeout(() => {
          this.onClickLeft();
          this.$router.push("/rechargelist");
        }, 500);
      }
      //  Notify("请上传文件");
@@ -230,11 +239,16 @@
    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
@@ -242,9 +256,9 @@
      console.log(file);
      let formData = new FormData();
      formData.append("file", file.file || file.raw);
      console.log(formData);
      // console.log(formData);
      const res = await upload({ file: formData });
      console.log(res);
      // console.log(res);
    },
    copyText(e, data) {
      var clipboard = new ClipboardJS(".copy-button", {
@@ -407,4 +421,8 @@
/deep/ .el-upload__input {
  display: none !important;
}
/deep/ .avatar-uploader {
  width: 2.740741rem;
  height: 2.740741rem;
}
</style>