ホームページ ウェブフロントエンド jsチュートリアル Vueのショッピングカートチェックボックスの全選択・逆選択などの機能の解析例

Vueのショッピングカートチェックボックスの全選択・逆選択などの機能の解析例

Mar 29, 2018 am 10:10 AM

この記事では主に、Vue のショッピング カート チェックボックスの全選択機能と逆選択機能の分析例を紹介します。これは良い参考値であり、皆様のお役に立てれば幸いです。編集者をフォローして見てみましょう。

ロジックは比較的簡単なのでコードを直接貼り付けます!もっと選択できることを願っています~~~~

html コード:

<p class="select-buyer">
    <checklist :options="fullValues"></checklist>
    <span>id: {{selectedData}}</span>
    <p class="weui-cells weui-cells_checkbox">
        <label v-for=&#39;(item, index) in checkboxData&#39; :key="item.id" class="weui-cell weui-check_label">
            <p class="weui-cell__hd">
                <input :value="item.id" v-model="checkBox.items[index]" @click="handleInputChange" type="checkbox" name="vux-checkbox" class="weui-check">
                <i class="weui-icon-checked vux-checklist-icon-checked"></i>
            </p>
            <p class="weui-cell__bd">
                <p>{{item.value}}价格:{{item.price}}</p>
            </p>
        </label>
    </p>
</p>
ログイン後にコピー

.Vue ファイル コード:

<template src="./index.html"></template>
<script>
import { Checklist } from "vux";
export default {
  name: "selectBuyer",
  data() {
    return {
      fullValues: [],
      checkboxData: [
        {
          id: "1",
          value: "苹果4S",
          price: 110
        },
        {
          id: "2",
          value: "苹果5C",
          price: 250
        },
        {
          id: "3",
          value: "苹果6P",
          price: 340
        }
      ],
      selectedData: [],
      totalPrice: 0.00,
      isAllChecked: true,
      checkBox: {
        checked: false,
        items: {}
      }
    };
  },
  mounted() {
    this.checkboxData.forEach((item, index) => {
      this.selectedData.push(item.id);
      this.$set(this.checkBox.items, index, !this.checkBox.checked);
    });
  },
  computed: {
    totalPurchasers() {
      return this.selectedData.length;
    },
    calculatedTotal() {
      this.totalPrice = 0.00;
      this.selectedData.map((item1, index) => {
        let curItem1 = item1;
        this.checkboxData.map((item2, index) => {
          if(this.checkboxData[index].id == curItem1){
            this.totalPrice += this.checkboxData[index].price;
          }
        });
      });
      return this.totalPrice;
    }
  },
  methods: {
    //全选点击事件
    checkedAll() {
      let trueNum = 0;
      let checkBoxNum = 0;
      Object.keys(this.checkBox.items).forEach(key => {
        checkBoxNum++;
        if (this.checkBox.items[key] === true) {
          trueNum++;
        }
      });
      if (trueNum != 0) {
        if (
          trueNum != this.checkboxData.length ||
          checkBoxNum < this.checkboxData.length
        ) {
          this.checkboxDataMap(!this.checkBox.checked);
        } else {
          this.checkboxDataMap(this.checkBox.checked);
        }
      } else {
        this.checkboxDataMap(!this.checkBox.checked);
      }
    },
    //遍历改变checkbox状态
    checkboxDataMap(checked) {
      let checkboxDataId = [];
      this.checkboxData.forEach((item, index) => {
        this.checkBox.items[index] = checked;
        checkboxDataId.push(item.id);
      });
      if (checked == true) {
        this.selectedData = this.arrayMerging(
          this.selectedData,
          checkboxDataId
        );
      } else {
        this.selectedData.splice(0, this.selectedData.length);
      }
    },
    //input输入框change事件
    handleInputChange(e) {
      setTimeout(() => {
        if (this.selectedData.indexOf(e.target.value) > -1) {
          this.remove(this.selectedData, e.target.value);
        } else {
          this.selectedData.push(e.target.value);
        }
        if (this.selectedData.length < this.checkboxData.length) {
          this.isAllChecked = false;
        } else {
          this.isAllChecked = true;
        }
      }, 0);
    },
    //数组删除
    remove(arr, val) {
      var index = arr.indexOf(val);
      if (index > -1) {
        arr.splice(index, 1);
      }
    },
    //数组合并去重
    arrayMerging(arr1, arr2) {
      var arr = arr1.concat();
      for (var i = 0; i < arr2.length; i++) {
        if (arr.indexOf(arr2[i]) === -1) {
          arr.push(arr2[i]);
        }
      }
      return arr;
    }
  },
  components: {
    Checklist
  },
  metaInfo() {
    return {
      title: "选择购卡学生"
    };
  }
};
</script>
<style src="./index.less" lang="less"></style>
ログイン後にコピー

less スタイル ファイル:

@import (reference) "../../style/common.less";
.select-buyer {
    .weui-cells_checkbox {
        margin-top: -25px !important;
        font-size: 28px;
        .weui-cell {
            padding: 40px 30px !important;
            .vux-label-desc {
                font-size: inherit;
            }
        }
        & .weui-icon-checked:before {
            font-size: 48px;
        }
        & .weui-check:checked+.vux-checklist-icon-checked:before {
            color: @g-main-green;
        }
    }
    .footer .weui-cells_checkbox .weui-check:checked+.weui-icon-checked:before {
        content: &#39;\EA01&#39;;
    }
    .footer .weui-cells_checkbox .weui-check:checked+.vux-checklist-icon-checked:before {
        color: #C9C9C9;
    }
}

.pay-area {
    position: fixed;
    height: 94px;
    background-color: @g-white;
    display: flex;
    width: 100%;
    left: 0;
    bottom: 0;
    .pay-btn {
        width: 220px;
        text-align: center;
        font-size: 36px;
        /* px */
        line-height: 94px;
        color: @g-white;
        background-color: @g-main-green;
        .loading-img {
            width: 40px;
            vertical-align: -3px;
            margin: 0 3px;
        }
    }
    .pay-text {
        font-size: 28px;
        color: @g-font-default-color;
        line-height: 54px;
        /* px */
        display: inline-block;
        vertical-align: top;
        margin-right: 10px;
    }
    .pay-money {
        font-size: 48px;
        /* px */
        line-height: 54px;
        /* px */
        color: @g-font-dark-color;
    }
    .price-area {
        flex: 1;
        padding: 20px 30px;
    }
}

.error {
    padding-left: 15px;
    line-height: 28px;
    color: #888;
    font-size: 12px;
}
ログイン後にコピー

関連推奨事項:

Vue.js は完全選択と逆選択を実装しますチェックボックスの全選択と逆選択を実現する3つの方法

チェックボックスの全選択と逆選択の効果はjsで実現します

以上がVueのショッピングカートチェックボックスの全選択・逆選択などの機能の解析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Wordで逆選択を実装する方法 Wordで逆選択を実装する方法 Mar 19, 2024 pm 07:58 PM

多くのグラフィック編集ソフトで選択範囲を反転するという操作をよく聞きますが、Word文書でも選択範囲を反転することはできるのでしょうか?実際、Word オフィス ソフトウェアの機能は比較的強力で、ワンクリックでコンテンツの選択を反転できる直接的な逆選択ツールがない場合でも、別の方法を使用して Word で逆選択を完了することもできます。仕事で Word で選択を反転するという操作要件に遭遇しました。Word で選択を反転する方法を確認するには、すぐにここに来てください。 1. まず、Word 文書を作成して開き、テキスト コンテンツを入力する必要があります。 2. 以下の図に示すように、テキストの一部を選択し、そのフォントの色を赤に設定します。 3. 以下では、ツールバーの [検索] を見つけ、プルダウンして [詳細検索] オプションをクリックし、検索します。そして交換してください

Javaで簡単なショッピングカート機能を実装するにはどうすればよいですか? Javaで簡単なショッピングカート機能を実装するにはどうすればよいですか? Nov 02, 2023 am 11:56 AM

Javaで簡単なショッピングカート機能を実装するにはどうすればよいですか?ショッピング カートはオンライン ストアの重要な機能で、ユーザーが購入したい商品をショッピング カートに追加して商品を管理できるようにします。 Java では、オブジェクト指向のアプローチを使用して、単純なショッピング カート機能を実装できます。まず、製品カテゴリを定義する必要があります。このクラスには、製品名、価格、数量などの属性と、対応する Getter メソッドと Setter メソッドが含まれています。例: publicclassProduct

PHPでショッピングカート機能を実装 PHPでショッピングカート機能を実装 Jun 22, 2023 am 09:00 AM

私たちの日常生活において、オンライン ショッピングは非常に一般的な消費方法となっており、ショッピング カート機能もオンライン ショッピングの重要な要素の 1 つです。そこで今回は、PHP言語を使ってショッピングカート関連の機能を実装する方法を紹介します。 1. 技術的背景 ショッピング カートは、オンライン ショッピング サイトで一般的な機能です。ユーザーが Web サイトで一部の製品を閲覧すると、それらのアイテムを仮想ショッピング カートに追加できるため、その後のチェックアウト プロセスで簡単に選択および管理できます。ショッピング カートには通常、次の基本機能が含まれています。 アイテムの追加:

PHPモール開発スキル:ショッピングカートや注文同期機能の設計 PHPモール開発スキル:ショッピングカートや注文同期機能の設計 Jul 30, 2023 pm 07:22 PM

PHPモール開発スキル:ショッピングカートと注文同期機能の設計 モールWebサイトにおいて、ショッピングカートと注文は欠かせない機能です。ショッピング カートはユーザーが製品を購入し、一時的なショッピング カートに保存するために使用されます。一方、注文はユーザーが製品の購入を確認した後に生成されるレコードです。ユーザーエクスペリエンスを向上させ、エラーを減らすためには、ショッピングカートと注文の同期機能を設計することが非常に重要です。 1. ショッピング カートと注文の概念 ショッピング カートは通常、ユーザーが購入した商品を保管するために使用される一時的なコンテナです。ユーザーはショッピング カートに製品を追加して、簡単に閲覧および管理できます。

RedisとJavaScriptを使ってショッピングカート機能を実装する方法 RedisとJavaScriptを使ってショッピングカート機能を実装する方法 Sep 21, 2023 pm 01:27 PM

Redis と JavaScript を使用してショッピング カート機能を実装する方法. ショッピング カートは、電子商取引 Web サイトで非常に一般的な機能の 1 つです。これにより、ユーザーは興味のある商品をショッピング カートに追加でき、ユーザーは閲覧や閲覧が便利になります。購入したアイテムをいつでも管理できます。この記事では、RedisとJavaScriptを使ってショッピングカート機能を実装する方法と、具体的なコード例を紹介します。 1. 準備 開始する前に、Redis がインストールおよび構成されていることを確認する必要があります。これは公式 Web サイト [https:/] から行うことができます。

実践チュートリアル:PHPとMySQLを使ったショッピングカート機能の詳細解説 実践チュートリアル:PHPとMySQLを使ったショッピングカート機能の詳細解説 Mar 15, 2024 pm 12:27 PM

実践講座:PHPとMySQLを使ったショッピングカート機能の詳細解説 ショッピングカート機能はWebサイト制作においてよく使われる機能の一つで、ユーザーはショッピングカートを通じて、買い​​たい商品を簡単にショッピングカートに追加することができ、その後、決済と支払いに進みます。この記事では、PHP と MySQL を使用して単純なショッピング カート機能を実装する方法を詳しく説明し、具体的なコード例を示します。データベースとデータ テーブルを作成するには、まず製品情報を保存するためのデータ テーブルを MySQL データベースに作成する必要があります。以下は簡単なデータテーブルです。

MySQL でモールのショッピング カート テーブル構造を設計するにはどうすればよいですか? MySQL でモールのショッピング カート テーブル構造を設計するにはどうすればよいですか? Oct 30, 2023 pm 02:12 PM

MySQL でモールのショッピング カート テーブル構造を設計するにはどうすればよいですか?電子商取引の急速な発展に伴い、ショッピング カートはオンライン モールの重要な部分になりました。ショッピング カートは、ユーザーが購入した商品と関連情報を保存するために使用され、ユーザーに便利で迅速なショッピング体験を提供します。 MySQL で合理的なショッピング カート テーブル構造を設計すると、開発者がショッピング カート データを効果的に保存および管理するのに役立ちます。この記事では、MySQL でモールのショッピング カート テーブル構造を設計する方法を紹介し、いくつかの具体的なコード例を示します。まず、ショッピング カート テーブルには以下が含まれている必要があります。

PHPを使用して簡単なショッピングカート機能を実装する方法 PHPを使用して簡単なショッピングカート機能を実装する方法 Sep 24, 2023 am 09:13 AM

PHP を使用して簡単なショッピング カート機能を実装する方法 ショッピング カート機能は、電子商取引 Web サイトの重要な部分です。これにより、ユーザーは興味のある商品をショッピング カートに追加し、チェックアウトに進んだり、閲覧や商品の追加を続行したりできます。 。この記事では、PHP を使用して簡単なショッピング カート機能を実装する方法と具体的なコード例を紹介します。データベースとテーブルの作成 まず、ショッピング カートのデータを保存するデータベースとテーブルを作成する必要があります。 CREATEDATABASEshopping_ca

See all articles