鍍金池/ 問(wèn)答/HTML/ vue computed使用問(wèn)題

vue computed使用問(wèn)題

vue點(diǎn)擊切換支付方式的時(shí)候下面的footer里文字和顏色發(fā)生相應(yīng)的變化
效果已經(jīng)實(shí)現(xiàn),使用的是computed實(shí)現(xiàn),分別計(jì)算顏色和文字屬性,想請(qǐng)教大家有沒(méi)有什么更好的方法,
第一次使用vue開發(fā),想學(xué)一下大家的思路,謝謝

clipboard.png

<template lang="html">
  <div class="pay">
    <mt-header fixed title="訂單支付">
      <div slot="left">
        <mt-button icon="back" @click="$router.go(-1)"></mt-button>
      </div>
    </mt-header>
    <div class="pay-order">
      <ul>
        <li>
          <div>共1筆訂單</div>
          <div>訂單總金額<span class="amount">¥ 622.00</span> </div>
        </li>
        <li v-if="payDetail">
          <div style="height:200px"></div>
        </li>
        <li>
          <div>發(fā)貨倉(cāng)1 運(yùn)費(fèi)總計(jì):5.00</div>
        </li>
      </ul>
      <div class="show-more"><span @click="showPayDetail">顯示訂單明細(xì)<i class="iconfont" v-bind:class="{ 'icon-caret-down' : classFlag, 'icon-caret-up': !classFlag}"></i></span></div>
    </div>
    <div class="pay-way">
      <div class="pay-way-item">
        <div class="title">余額支付</div>
        <div class="content">
          <div class="cell">
            <div class="flex">
              <div class="pay-to"><img src="https://dummyimage.com/25x25/ff6600/wechat.png" alt=""> <span>激想云商余額支付</span></div>
              <div>
                <span class="mint-checkbox">
                   <input type="radio"  v-model="payWayIndex" class="mint-checkbox-input" id="wallet" value="0"> 
                     <label for="wallet" class="mint-checkbox-core"></label>
                </span>
              </div>
            </div>
            <div class="wallet">
              余額:<span class="amount">¥0.00</span> <span class="empty">余額不足?</span>
            </div>
          </div>
        </div>
      </div>
      <div class="pay-way-item">
        <div class="title">更多快捷支付方式</div>
        <div class="content">
          <div class="cell">
            <div class="flex">
              <div class="pay-to"><img src="https://dummyimage.com/150x30/00B700/wechat.png" alt=""></div>
              <span class="mint-checkbox">
                   <input type="radio" v-model="payWayIndex"  class="mint-checkbox-input" id="wechat" value="1"> 
                   <label for="wechat" class="mint-checkbox-core"></label>
                </span>
            </div>
          </div>
        </div>
      </div>
    </div>
    <footer class="footer">
      <div class="footer-result" :class="payclass">
        <p>{{paytext}}:<span></span>元</p>
      </div>
    </footer>
  </div>
</template>

<script>
  export default {
    components: {

    },
    data() {
      return {
        payDetail: false,
        classFlag: true,
        payWayIndex: 1,
        payWay: [{
          paytext: '余額支付',
          payclass: "wallet",
          value: 1,
        }, {
          paytext: '微信支付',
          payclass: "wechat",
          value: 2
        }]
      }
    },
    computed: {
      paytext() {
        let index = this.payWayIndex;
        return this.payWay[index].paytext
      },
      payclass() {
        let index = this.payWayIndex;
        return this.payWay[index].payclass
      }
    },
    methods: {
      showPayDetail() {
        //顯示隱藏支付訂單詳情
        this.payDetail = !this.payDetail;
        //顯示隱藏icon 樣式
        this.classFlag = !this.classFlag;
      }

    }


  }

</script>
回答
編輯回答
尐懶貓

點(diǎn)顏色和背景成組放進(jìn)一個(gè)數(shù)組里面,點(diǎn)擊第一項(xiàng)就用第一個(gè)的顏色和背景來(lái)改變按鈕,點(diǎn)擊第二個(gè)就用第二個(gè);這樣的話,還可以擴(kuò)展更多,只要改變數(shù)組就好了

2018年5月19日 19:51
編輯回答
初心

還可以使用watch監(jiān)聽,也可以直接在你的html那里寫js語(yǔ)句

<div class="footer-result" :class="payWay[payWayIndex].payclass">
    <p>{{payWay[payWayIndex].paytext}}:<span></span>元</p>
</div>
2018年3月20日 05:33