Blame view

apps/pages/single/coupon/components/exchange-box/exchage-box.vue 1.31 KB
1 2
<template>
  <div class="exchange-box">
htoooth authored
3 4 5
    <div class="input-wrapper">
      <input type="text" name="couponCodeInput" placeholder="请输入优惠券码" v-model="code">
    </div>
htoooth authored
6
    <button :class="btnCls" @click="onClick">兑换</button>
7 8 9
  </div>
</template>
htoooth authored
10
<script>
11
export default {
htoooth authored
12 13 14
  name: 'ExchangeBox',
  data() {
    return {
htoooth authored
15
      code: ''
htoooth authored
16 17 18 19
    };
  },
  methods: {
    onClick() {
htoooth authored
20 21 22
      if (this.code) {
        this.$emit('click');
      }
htoooth authored
23
    }
htoooth authored
24 25 26 27 28 29 30
  },
  computed: {
    btnCls() {
      return ['exchange-coupon-btn', {
        active: this.code !== ''
      }];
    }
htoooth authored
31
  },
htoooth authored
32 33 34
  watch: {
    code() {
      this.$emit('input', this.code);
htoooth authored
35 36 37
    },
    value(val) {
      this.code = val;
htoooth authored
38
    }
htoooth authored
39
  }
40 41 42 43 44 45 46 47
};
</script>

<style lang="scss" scoped>
.exchange-box {
  height: 90px;
  padding: 16px 20px;
  background-color: #fff;
htoooth authored
48
  top: 0;
49 50 51
  left: 0;
  z-index: 2;
htoooth authored
52 53 54 55 56
  .input-wrapper {
    display: inline-block;
    position: relative;
  }
htoooth authored
57
  input {
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
    width: 570px;
    height: 60px;
    margin-right: 12px;
    padding: 0 20px;
    background-color: #f0f0f0;
    border-radius: 4px;
    border: none;
  }

  .exchange-coupon-btn {
    width: 120px;
    height: 60px;
    border-radius: 4px;
    font-size: 28px;
    color: #fff;
    background-color: #b0b0b0;
    border: none;
  }

  .active {
    background-color: #444;
  }
}

</style>