改めて・・・ | python3Xのブログ

python3Xのブログ

ここでは40代、50代の方が日々の生活で役に立つ情報や私の趣味であるプログラム、Excelや科学に関する内容で投稿する予定です。

スマホケースのネット販売に向けて

(但し、スマホケース画像はExcelで作りました

 適当な画像が艇に入らなかったので)

 

JavaScript

// 数値を通貨書式  『#,###,###』  に変換するフィルター
Vue.filter('number_format', function(val) {
  return val.toLocaleString();
});
// 『コンポーネント』:商品一覧
var app = new Vue({
  el: '#app',
  data: {
    //「セール対象」のチェック状態(true:チェック有り、false:チェック無し)
    showSaleItem: false,
   
    //「送料無料」のチェック状態(true:チェック有り、false:チェック無し)
    showDelvFree: false,
   
    //「並び替え」の選択値(1:標準、2:価格が安い順)
    sortOrder: 1,
   
    // 商品リスト(辞書の書き方)
    products: [
      { id: 1, name: 'Michael<br>スマホケース', price: 1580, image: 'images/01.jpg', delv: 0, isSale: true },
      { id: 2, name: 'Raphael<br>スマホケース', price: 1580, image: 'images/02.jpg', delv: 0, isSale: true },
      { id: 3, name: 'Gabriel<br>スマホケース', price: 1580, image: 'images/03.jpg', delv: 240, isSale: true },
      { id: 4, name: 'Uriel<br>スマホケース', price: 980, image: 'images/04.jpg', delv: 0, isSale: true },
      { id: 5, name: 'Ariel<br>スマホケース', price: 980, image: 'images/05.jpg', delv: 0, isSale: false },
      { id: 6, name: 'Azrael<br>スマホケース', price: 1580, image: 'images/06.jpg', delv: 0, isSale: false }
    ]
  },
  computed: {
    // 『算出プロパティ』:絞り込み後の商品リストを返す
    filteredList: function() {
   
      // 『新しい配列』:絞り込み後の商品リストを格納する
      var newList = [];
      for (var i=0; i<this.products.length; i++) {
     
        // 『フラグ』:表示対象かどうかを判定する
        var isShow = true;
       
        // i番目の商品が表示対象かどうかを判定する
        if (this.showSaleItem && !this.products[i].isSale) {
          //「セール対象」チェック有りで、セール対象商品ではない場合 『!』は否定
         
          isShow = false;  // この商品は表示しない
        }
        if (this.showDelvFree && this.products[i].delv > 0) {
          //「送料無料」チェック有りで、送料有りの商品の場合
         
          isShow = false;  // この商品は表示しない
        }
       
        // 表示対象の商品だけを新しい配列に追加する
        if (isShow) {
          newList.push(this.products[i]);
        }
      }
     
      // 新しい配列を並び替える
      if (this.sortOrder == 1) {
        // 元の順番にpushしているので並び替え済み
      }
     
      else if (this.sortOrder == 2) {
        // 価格が安い順に並び替える(シンプルな比較演算子)
        newList.sort(function(a,b) {
          return a.price - b.price;
        });
      }
     
      // 絞り込み後の商品リストを返す
      return newList;
    }
  }
});