lxf
2025-06-06 892831f8f14ea057e93ea575ea4398d1f1abe6e8
修改,删除银行卡
14 files modified
349 ■■■■ changed files
src/axios/api.js 8 ●●●●● patch | view | raw | blame | history
src/locales/cht.json 3 ●●●● patch | view | raw | blame | history
src/locales/de.json 3 ●●●● patch | view | raw | blame | history
src/locales/en.json 3 ●●●● patch | view | raw | blame | history
src/locales/ens.json 3 ●●●● patch | view | raw | blame | history
src/locales/fra.json 3 ●●●● patch | view | raw | blame | history
src/locales/hi.json 3 ●●●● patch | view | raw | blame | history
src/locales/jp.json 3 ●●●● patch | view | raw | blame | history
src/locales/kor.json 3 ●●●● patch | view | raw | blame | history
src/locales/th.json 3 ●●●● patch | view | raw | blame | history
src/locales/zh.json 3 ●●●● patch | view | raw | blame | history
src/page/bankCard/banklist.vue 117 ●●●● patch | view | raw | blame | history
src/page/bankCard/index.vue 161 ●●●●● patch | view | raw | blame | history
yarn.lock 33 ●●●●● patch | view | raw | blame | history
src/axios/api.js
@@ -585,3 +585,11 @@
export function getMoenyLog(options) {
  return post("/user/getMoenyLog.do", options);
}
// 修改银行卡
export function getUpdate(options) {
  return post("/user/bank/update.do", options);
}
// 删除银行卡
export function deleteBankCard(options) {
  return post("/user/bank/delete.do", options);
}
src/locales/cht.json
@@ -576,5 +576,6 @@
  "天": "天",
  "市场": "市場",
  "请选择提现金额": "請選擇提現金額",
  "hj100": "交易數量(股)"
  "hj100": "交易數量(股)",
  "删除": "刪除"
}
src/locales/de.json
@@ -571,5 +571,6 @@
  "天": "Tag",
  "市场": "Markt",
  "请选择提现金额": "Bitte wählen Sie den Auszahlungsbetrag aus",
  "hj100": "Handelsmenge (Aktien)"
  "hj100": "Handelsmenge (Aktien)",
  "删除": "Löschen"
}
src/locales/en.json
@@ -591,5 +591,6 @@
  "关于我们": "About Us",
  "贷款": "loan",
  "电话号码": "telephone number",
  "当前充值渠道已关闭请选择在线客服进行充值。": "The current recharge channel has been closed Please choose online customer service to recharge."
  "当前充值渠道已关闭请选择在线客服进行充值。": "The current recharge channel has been closed Please choose online customer service to recharge.",
  "删除": "Delete"
}
src/locales/ens.json
@@ -585,5 +585,6 @@
    "天": "Day",
    "市场": "Market",
    "请选择提现金额": "Please select the Withdraw amount",
    "hj100": "Trading quantity (shares)"
  "hj100": "Trading quantity (shares)",
  "删除": "Delete"
}
src/locales/fra.json
@@ -571,5 +571,6 @@
  "天": "Jours",
  "市场": "Le marché",
  "请选择提现金额": "Veuillez sélectionner un montant de retrait",
  "hj100": "Nombre de transactions (actions)"
  "hj100": "Nombre de transactions (actions)",
  "删除": "Supprimer"
}
src/locales/hi.json
@@ -590,5 +590,6 @@
  "关于我们": "हमारे बारे में",
  "贷款": "ऋृण",
  "电话号码": "टेलीफोन नंबर",
  "当前充值渠道已关闭请选择在线客服进行充值。": "वर्तमान रिचार्ज चैनल बंद कर दिया गया है कृपया रिचार्ज करने के लिए ऑनलाइन ग्राहक सेवा चुनें।"
  "当前充值渠道已关闭请选择在线客服进行充值。": "वर्तमान रिचार्ज चैनल बंद कर दिया गया है कृपया रिचार्ज करने के लिए ऑनलाइन ग्राहक सेवा चुनें।",
  "删除": "हटाएं"
}
src/locales/jp.json
@@ -572,5 +572,6 @@
  "天": "日",
  "市场": "市場",
  "请选择提现金额": "現金引き出し金額を選択してください",
  "hj100": "取引数量(株)"
  "hj100": "取引数量(株)",
  "删除": "削除"
}
src/locales/kor.json
@@ -572,5 +572,6 @@
  "天": "일",
  "市场": "시장",
  "请选择提现金额": "현금 인출 금액을 선택하십시오.",
  "hj100": "거래 수량(주)"
  "hj100": "거래 수량(주)",
  "删除": "삭제"
}
src/locales/th.json
@@ -572,5 +572,6 @@
  "天": "วัน",
  "市场": "ตลาด",
  "请选择提现金额": "กรุณาเลือกจำนวนเงินที่ถอน",
  "hj100": "ปริมาณซื้อขาย (หุ้น)"
  "hj100": "ปริมาณซื้อขาย (หุ้น)",
  "删除": "ลบ"
}
src/locales/zh.json
@@ -576,5 +576,6 @@
  "贷款": "贷款",
  "hj621": "大宗交易",
  "电话号码": "电话号码",
  "当前充值渠道已关闭请选择在线客服进行充值。": "当前充值渠道已关闭请选择在线客服进行充值。"
  "当前充值渠道已关闭请选择在线客服进行充值。": "当前充值渠道已关闭请选择在线客服进行充值。",
  "删除": "删除"
}
src/page/bankCard/banklist.vue
@@ -10,16 +10,31 @@
    </van-nav-bar>
    <div class="content">
      <div class="bank">
        <!-- <div class="bank_list" v-for="(item,index) in banklist" :key="index" @click="$router.push('/updatabank')"> -->
        <div class="bank_list" v-for="(item,index) in banklist" :key="index">
          <div class="bank_name" >
        <van-swipe-cell
          v-for="(item, index) in banklist"
          :key="index"
          :right-width="65"
          @close="onClose"
        >
          <div class="bank_name" @click="goBankcard(item)">
            <div class="lefts" >{{item.bankName}}</div>
            <div class="rights">{{item.bankNo}}</div>
          </div>
        </div>
          <template #right>
            <van-button
              square
              class="delete-btn"
              type="danger"
              :text="$t('删除')"
              @click="deleteBank(item, index)"
            />
          </template>
        </van-swipe-cell>
      </div>
      <div class="bank_name">
        <div class="bank_box" @click="$router.push('/bankcard')">{{$t('hj220').substring(0,2)}}{{$t('hj247')}}</div>
        <div class="bank_box" @click="$router.push('/bankcard')">
          {{ $t("hj220").substring(0, 2) }}{{ $t("hj247") }}
        </div>
      </div>
    </div>
  </div>
@@ -27,14 +42,8 @@
<script>
  import * as api from "@/axios/api";
  import {
    Toast
  } from "mint-ui";
  import {
    isNull,
    bankNoReg,
    isName
  } from '@/utils/utils'
import { Toast } from "mint-ui";
import { isNull, bankNoReg, isName } from "@/utils/utils";
  export default {
    name: "bankCard",
@@ -50,38 +59,65 @@
        array: [],
        index: 0,
        addBank: false,
        id: '',
        code: '',
        name: '',
      id: "",
      code: "",
      name: ""
      };
    },
    created() {
      this.getCardDetail();
      this.getbanklist()
    this.getbanklist();
    },
    methods: {
    async deleteBank(item, index) {
      // this.$dialog
      //   ? await this.$dialog.confirm({ message: "确定删除该银行卡吗?" })
      //   : null;
      // 调用删除接口
      let res = await api.deleteBankCard({ id: item.id });
      if (res.status === 0) {
        this.banklist.splice(index, 1);
        Toast(res.msg);
      } else {
        Toast(res.msg);
      }
    },
    goBankcard(item) {
      // 跳转修改银行卡
      this.$router.push({
        path: "/bankcard",
        query: {
          bankName: item.bankName,
          bankNo: item.bankNo,
          bankAddress: item.bankAddress,
          bankImg: item.bankImg,
          id: item.id
        }
      });
    },
      quxiao() {
        this.showPicker = false
      this.showPicker = false;
      },
      gotodaka() {
        this.showPicker = true
      this.showPicker = true;
      },
      onConfirm(item) {
        console.log(item)
        this.id = item.id
        this.code = item.code
        this.name = item.name
        this.showPicker = !this.showPicker
      console.log(item);
      this.id = item.id;
      this.code = item.code;
      this.name = item.name;
      this.showPicker = !this.showPicker;
        // this.lever = item.value
      },
      async getbanklist() {
        // 获取银行名称
        let data = await api.getbank()
      let data = await api.getbank();
        if (data.status === 0) {
          console.log(data);
          this.array = data.data
        this.array = data.data;
          console.log(this.array);
        } else {}
      } else {
      }
      },
      async toSure() {
        // 添加银行卡
@@ -100,8 +136,7 @@
            bankName: this.name,
            bankNo: this.bankNo,
            bankAddress: this.banif,
            bankImg: this.code,
          bankImg: this.code
          };
          let data = await api.addBankCard(opts);
          if (data.status === 0) {
@@ -114,7 +149,7 @@
      },
      async getCardDetail() {
        // 获取银行卡信息
        let data = await api.getBankCard()
      let data = await api.getBankCard();
        if (data.status === 0) {
          // const {
          //   bankAddress,
@@ -122,11 +157,11 @@
          //   bankNo,
          //   bankImg
          // } = data.data;
          this.banklist = data.data
        this.banklist = data.data;
        } else {
          this.addBank = true;
        }
      },
    }
    }
  };
</script>
@@ -218,7 +253,7 @@
    display: flex;
    align-items: center;
    justify-content: center;
    background: #1B79F5;
  background: #1b79f5;
    font-size: 0.4103rem;
    color: #fff;
@@ -241,4 +276,20 @@
    font-size: 0.48rem;
    color: #14181f;
  }
.delete-btn {
  height: 100%;
  min-width: 65px;
  background: linear-gradient(90deg, #ff4d4f 0%, #ff7875 100%);
  border: none;
  border-radius: 0 8px 8px 0;
  color: #fff;
  font-weight: bold;
  font-size: 16px;
  letter-spacing: 2px;
  transition: background 0.2s;
  &:active {
    background: #d9363e;
  }
}
</style>
src/page/bankCard/index.vue
@@ -19,26 +19,41 @@
            </div> -->
            <div class="bank_name" v-if="addBank==false&&bankName">
                <div class="lefts">
                    <span>{{ $t('hj213') }}</span>
          <span>{{ $t("hj213") }}</span>
                </div>
                <div class="rights">
                    <input type="text" :placeholder="$t('hj306')" v-model="bankName" :disabled="!addBank" />
          <input
            type="text"
            :placeholder="$t('hj306')"
            v-model="bankName"
            :disabled="!addBank"
          />
                </div>
            </div>
            <div class="bank_name" v-if="addBank==false&&bankNo">
                <div class="lefts">
                    <span>{{ $t('hj215') }}</span>
          <span>{{ $t("hj215") }}</span>
                </div>
                <div class="rights">
                    <input type="text" :placeholder="$t('hj307')" v-model="bankNo" :disabled="!addBank" />
          <input
            type="text"
            :placeholder="$t('hj307')"
            v-model="bankNo"
            :disabled="!addBank"
          />
                </div>
            </div>
            <div class="bank_name" v-if="addBank==false&&banif">
                <div class="lefts">
                    <span>{{ $t('hj303') }}</span>
          <span>{{ $t("hj303") }}</span>
                </div>
                <div class="rights">
                    <input type="text" :placeholder="$t('hj308')" v-model="banif" :disabled="!addBank" />
          <input
            type="text"
            :placeholder="$t('hj308')"
            v-model="banif"
            :disabled="!addBank"
          />
                </div>
            </div>
        <!--     <div class="bank_name" v-if="addBank==false&&bankun">
@@ -52,49 +67,69 @@
            <div class="bank_name" @click.stop="gotodaka" v-if="addBank==true">
                <div class="lefts">
                    <span>{{ $t('hj213') }}</span>
          <span>{{ $t("hj213") }}</span>
                </div>
                <div class="rights" style="justify-content: none;">{{name}}
        <div class="rights" style="justify-content: none;">
          {{ name }}
          <!-- <input type="text" :placeholder="$t('hj306')" v-model="bankName" :disabled="!addBank" /> -->
         <!-- <picker @change="bindPickerChange" :value="index" :range="array">
              <view >{{array[index].name}}</view>
          </picker> -->
        </div>
            </div>
            <div class="bank_name" v-if="addBank==true">
                <div class="lefts">
                    <span>{{ $t('hj215') }}</span>
          <span>{{ $t("hj215") }}</span>
                </div>
                <div class="rights">
                    <input type="text" :placeholder="$t('hj307')" v-model="bankNo" :disabled="!addBank" />
          <input
            type="text"
            :placeholder="$t('hj307')"
            v-model="bankNo"
            :disabled="!addBank"
          />
                </div>
            </div>
            <div class="bank_name" v-if="addBank==true">
                <div class="lefts">
                    <span>{{ $t('hj303') }}</span>
          <span>{{ $t("hj303") }}</span>
                </div>
                <div class="rights">
                    <input type="text" :placeholder="$t('hj308')" v-model="banif" :disabled="!addBank" />
          <input
            type="text"
            :placeholder="$t('hj308')"
            v-model="banif"
            :disabled="!addBank"
          />
                </div>
            </div>
      <div class="bank_name" v-if="addBank==true">
          <div class="lefts">
              <span>{{$t('银行卡户主名称')}}</span>
          <span>{{ $t("银行卡户主名称") }}</span>
          </div>
          <div class="rights">
              <input type="text" :placeholder="$t('请输入银行卡户主名称')" v-model="bankCardholderName" :disabled="!addBank" />
          <input
            type="text"
            :placeholder="$t('请输入银行卡户主名称')"
            v-model="bankCardholderName"
            :disabled="!addBank"
          />
          </div>
      </div>
      <div class="bank_name" v-if="addBank==true">
          <div class="lefts">
              <span>{{$t('hj16')}}</span>
          <span>{{ $t("hj16") }}</span>
          </div>
          <div class="rights">
              <input type="text" :placeholder="$t('请输入电子邮箱')" v-model="bankEmail" :disabled="!addBank" />
          <input
            type="text"
            :placeholder="$t('请输入电子邮箱')"
            v-model="bankEmail"
            :disabled="!addBank"
          />
          </div>
      </div>
            <!-- <div class="bank_name" v-if="addBank==false">
@@ -106,12 +141,20 @@
                </div>
            </div> -->
            <div class="bank_name bind" @click="toSure" v-if="addBank">
                <span>{{ $t('hj216') }}</span>
        <span>{{ $t("hj216") }}</span>
            </div>
            <div class="bank_hck"></div>
            <div class="bank_code"></div>
            <van-popup v-model="showPicker" round position="bottom">
                <van-picker :confirm-button-text="$t('hj161')" :cancel-button-text="$t('hj106')" value-key="name" :columns="array" @cancel="quxiao" @confirm="onConfirm" show-toolbar />
        <van-picker
          :confirm-button-text="$t('hj161')"
          :cancel-button-text="$t('hj106')"
          value-key="name"
          :columns="array"
          @cancel="quxiao"
          @confirm="onConfirm"
          show-toolbar
        />
            </van-popup>
        </div>
    </div>
@@ -119,14 +162,8 @@
<script>
    import * as api from "@/axios/api";
    import {
        Toast
    } from "mint-ui";
    import {
        isNull,
        bankNoReg,
        isName
    } from '@/utils/utils'
import { Toast } from "mint-ui";
import { isNull, bankNoReg, isName } from "@/utils/utils";
    export default {
        name: "bankCard",
@@ -143,38 +180,54 @@
                array: [],
                index:0,
                addBank: false,
                id:'',
                code:'',
                name:'',
      id: "",
      code: "",
      name: ""
            };
        },
        created() {
    // 判断是否有路由参数(如id),有则为编辑
    const params = this.$route.query;
    if (params && params.id) {
      // 编辑模式
      this.addBank = true;
      this.id = params.id;
      this.bankNo = params.bankNo || "";
      this.banif = params.bankAddress || "";
      this.name = params.bankName || "";
      this.code = params.bankImg || "";
      this.bankEmail = params.bankEmail || "";
      this.bankCardholderName = params.bankCardholderName || "";
    } else {
      // 新增模式
            this.getCardDetail();
            this.getbanklist()
    }
    this.getbanklist();
        },
        methods: {
            quxiao(){
                this.showPicker = false
      this.showPicker = false;
            },
            gotodaka(){
                this.showPicker = true
      this.showPicker = true;
            },
            onConfirm(item) {
                console.log(item)
                this.id =  item.id
                this.code =  item.code
                this.name =  item.name
                this.showPicker = !this.showPicker
      console.log(item);
      this.id = item.id;
      this.code = item.code;
      this.name = item.name;
      this.showPicker = !this.showPicker;
                // this.lever = item.value
            },
            async getbanklist() {
                // 获取银行名称
                let data = await api.getbank()
      let data = await api.getbank();
                if (data.status === 0) {
                    console.log(data);
                    this.array = data.data
        this.array = data.data;
                    console.log(this.array);
                } else {}
      } else {
      }
            },
            async toSure() {
                // 添加银行卡
@@ -197,10 +250,19 @@
            bankEmail:this.bankEmail,
            bankCardholderName:this.bankCardholderName
                    };
                    let data = await api.addBankCard(opts);
        let data;
        if (this.id) {
          // 编辑
          opts.id = this.id;
          data = await api.getUpdate(opts);
        } else {
          // 新增
          data = await api.addBankCard(opts);
        }
                    if (data.status === 0) {
                        Toast(this.$t("hj220"));
                        this.$router.push("/newUser");
          this.$router.push("/banklist");
                    } else {
                        Toast(data.msg);
                    }
@@ -208,14 +270,9 @@
            },
            async getCardDetail() {
                // 获取银行卡信息
                let data = await api.getBankCard()
      let data = await api.getBankCard();
                if (data.status == 0) {
                    const {
                        bankAddress,
                        bankName,
                        bankNo,
                        bankImg
                    } = data.data;
        const { bankAddress, bankName, bankNo, bankImg } = data.data;
                    this.banif = bankAddress;
                    this.bankName = bankName;
                    this.bankun = bankImg;
@@ -225,7 +282,7 @@
                } else {
                    this.addBank = true;
                }
            },
    }
        }
    };
</script>
@@ -310,7 +367,7 @@
        display: flex;
        align-items: center;
        justify-content: center;
        background: #1B79F5;
  background: #1b79f5;
        font-size: 0.4103rem;
        color: #fff;
yarn.lock
@@ -1312,6 +1312,13 @@
  "resolved" "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz"
  "version" "2.2.0"
"bindings@^1.5.0":
  "integrity" "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="
  "resolved" "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz"
  "version" "1.5.0"
  dependencies:
    "file-uri-to-path" "1.0.0"
"bluebird@^3.1.1", "bluebird@^3.4.7", "bluebird@^3.5.1":
  "integrity" "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
  "resolved" "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz"
@@ -3867,6 +3874,27 @@
  "resolved" "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz"
  "version" "1.0.0"
"fsevents@^1.0.0":
  "integrity" "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw=="
  "resolved" "https://registry.npmmirror.com/fsevents/-/fsevents-1.2.13.tgz"
  "version" "1.2.13"
  dependencies:
    "bindings" "^1.5.0"
    "nan" "^2.12.1"
"fsevents@^1.2.7":
  "integrity" "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw=="
  "resolved" "https://registry.npmmirror.com/fsevents/-/fsevents-1.2.13.tgz"
  "version" "1.2.13"
  dependencies:
    "bindings" "^1.5.0"
    "nan" "^2.12.1"
"fsevents@~2.3.2":
  "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="
  "resolved" "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz"
  "version" "2.3.2"
"function-bind@^1.1.1":
  "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
  "resolved" "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz"
@@ -5696,6 +5724,11 @@
  "resolved" "https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.7.tgz"
  "version" "0.0.7"
"nan@^2.12.1":
  "integrity" "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ=="
  "resolved" "https://registry.npmmirror.com/nan/-/nan-2.17.0.tgz"
  "version" "2.17.0"
"nanoid@^3.3.4":
  "integrity" "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
  "resolved" "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz"