bank.vue 3.54 KB
Newer Older
1 2 3
<template>
  <div class="bank">
    <van-cell-group>
leiqingsong's avatar
leiqingsong committed
4 5 6 7
      <van-cell
        is-link
        :value="form.bankName"
        title="所属银行"
8 9
        placeholder="请选择"
        size="large"
leiqingsong's avatar
leiqingsong committed
10
        @click="sheetShow = true"
11 12
      />
      <van-field
leiqingsong's avatar
leiqingsong committed
13
        v-model="form.cardNumber"
14
        type="number"
leiqingsong's avatar
leiqingsong committed
15
        maxlength="19"
16 17 18 19 20 21 22 23 24 25 26
        label="银行卡卡号"
        placeholder="请输入"
        size="large"
      />
      <van-field
        v-model="form.name"
        label="姓名"
        placeholder="请输入"
        size="large"
      />
    </van-cell-group>
leiqingsong's avatar
leiqingsong committed
27 28 29 30 31 32 33 34
    <van-button
      type="primary"
      block
      class="btn"
      size="large"
      @click="addAndEditBankInfo"
      >编辑</van-button
    >
leiqingsong's avatar
leiqingsong committed
35 36 37 38 39
    <van-popup v-model="sheetShow" round position="bottom">
      <van-picker
        show-toolbar
        title="请选择银行"
        :columns="actions"
leiqingsong's avatar
leiqingsong committed
40
        :default-index="2"
leiqingsong's avatar
leiqingsong committed
41 42 43 44 45
        @cancel="sheetShow = false"
        @confirm="onSelect"
      />
    </van-popup>
    <!-- <van-action-sheet v-model="sheetShow" :actions="actions" @select="onSelect" /> -->
46 47 48 49
  </div>
</template>

<script>
leiqingsong's avatar
leiqingsong committed
50 51 52 53 54 55
import {
  getUserBankInfo,
  addUserBankInfo,
  editUserBankInfo,
  getBankList
} from "@/api/bank";
56 57 58 59
export default {
  name: "Bank",
  data() {
    return {
leiqingsong's avatar
leiqingsong committed
60
      sheetShow: false,
leiqingsong's avatar
leiqingsong committed
61
      actions: [],
62
      form: {
leiqingsong's avatar
leiqingsong committed
63 64 65 66
        bankName: "",
        cardNumber: "",
        name: "",
        id: ""
67 68
      }
    };
leiqingsong's avatar
leiqingsong committed
69 70
  },
  mounted() {
leiqingsong's avatar
leiqingsong committed
71
    this.getBank();
leiqingsong's avatar
leiqingsong committed
72 73 74
    this.getBankInfo();
  },
  methods: {
leiqingsong's avatar
leiqingsong committed
75 76 77 78 79 80 81 82 83
    onSelect(item) {
      this.form.bankName = item;
      this.sheetShow = false;
    },
    getBank() {
      getBankList().then(res => {
        if (res.code === 0) {
          this.actions = res.data;
        }
leiqingsong's avatar
leiqingsong committed
84
      });
leiqingsong's avatar
leiqingsong committed
85
    },
leiqingsong's avatar
leiqingsong committed
86
    addAndEditBankInfo() {
leiqingsong's avatar
leiqingsong committed
87 88 89 90 91 92 93
      if (!this.form.bankName) {
        this.$toast.fail("请填写所属银行");
        return;
      } else if (!this.form.cardNumber) {
        this.$toast.fail("请填写银行卡号");
        return;
      } else if (!this.form.name) {
leiqingsong's avatar
leiqingsong committed
94
        this.$toast.fail("请填写姓名");
leiqingsong's avatar
leiqingsong committed
95 96
        return;
      }
leiqingsong's avatar
leiqingsong committed
97 98 99 100 101 102
      const params = this.form;
      if (this.form.id) {
        editUserBankInfo(params)
          .then(res => {
            if (res.code === 0) {
              this.$toast.success("编辑成功");
leiqingsong's avatar
leiqingsong committed
103
              this.$router.go(-1);
leiqingsong's avatar
leiqingsong committed
104 105 106 107 108 109 110 111 112 113
            } else {
              this.$toast.fail("编辑失败");
            }
          })
          .catch(error => {
            this.$toast.fail(
              error.response.data.error + error.response.data.message
            );
          });
      } else {
leiqingsong's avatar
leiqingsong committed
114
        const addParams = params;
leiqingsong's avatar
leiqingsong committed
115
        addParams.userId = JSON.parse(localStorage.getItem("user")).userId;
leiqingsong's avatar
leiqingsong committed
116
        addUserBankInfo(params)
leiqingsong's avatar
leiqingsong committed
117 118 119
          .then(res => {
            if (res.code === 0) {
              this.$toast.success("添加成功");
leiqingsong's avatar
leiqingsong committed
120
              this.$router.go(-1);
leiqingsong's avatar
leiqingsong committed
121 122 123 124 125 126 127 128 129 130 131 132 133
            } else {
              this.$toast.fail("添加失败");
            }
          })
          .catch(error => {
            this.$toast.fail(
              error.response.data.error + error.response.data.message
            );
          });
      }
    },
    getBankInfo() {
      const params = {
leiqingsong's avatar
leiqingsong committed
134
        userId: JSON.parse(localStorage.getItem("user")).userId
leiqingsong's avatar
leiqingsong committed
135 136
      };
      getUserBankInfo(params).then(res => {
leiqingsong's avatar
leiqingsong committed
137
        if (res.code === 0 && res.data) {
leiqingsong's avatar
leiqingsong committed
138 139 140 141
          this.form = res.data;
        }
      });
    }
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
  }
};
</script>

<style lang="scss" scoped>
.bank {
  padding: 10px 16px;
}
.van-cell-group {
  border-radius: 4px;
}
.btn {
  margin-top: 20px;
}
::v-deep .van-field__control {
  text-align: right;
}
</style>