vue+elementuiは、共有箇条書きボックスの追加と変更の完全なコードを実装します。

vue+elementuiは、共有箇条書きボックスの追加と変更の完全なコードを実装します。

element-ui は、Ele.me のフロントエンド チームが開発者、デザイナー、製品マネージャー向けにリリースした Vue.js 2.0 ベースのデスクトップ コンポーネント ライブラリです。一方、モバイル フォン向けの対応するフレームワークは Mint UI です。 UI スタイル全体がシンプルで実用的であり、開発者の効率も大幅に向上します。非常に人気のあるコンポーネント ライブラリです。

1. 新しい

1. ボタンを追加する

2. ポップアップ ウィンドウを開くためのメソッドに新しいイベントを追加します。
dialogVisibleはデータで定義され、ポップアップボックスの表示を制御するためにtrueまたはfalseで使用されます。

**3. 確認、ポップアップ確認イベントを追加し、追加と変更は同じ確認イベントを共有し、IDを使用して区別します

**3. 新しいイベント

新しく追加されたインターフェースを呼び出して、IDがあるかどうかを確認します。ない場合は、新しく追加されたインターフェースを呼び出します。

II. 変更

2-1. 変更ボタン、テーブル行編集ボタンは、scope.rowを使用して現在の行のデータを取得します。

2-2. イベントを変更し、現在の行データをフォームに割り当てると、現在の行データがエコーアウトされます。

2-3. イベントを変更する

インターフェイスを変更して ID があるかどうかを確認し、ある場合は変更インターフェイスを呼び出します**

以下は直接のコードです

<テンプレート>
  <div>
    <!-- パンくずナビゲーション -->
    <el-breadcrumb セパレータークラス="el-icon-arrow-right">
      <el-breadcrumb-item :to="{ path: '/Welcome' }">ホーム</el-breadcrumb-item>
      <el-breadcrumb-item>権限管理</el-breadcrumb-item>
      <el-breadcrumb-item>ロールのリスト</el-breadcrumb-item>
    </el-breadcrumb>
    <!-- カード -->
    <el-card クラス="ボックスカード">
      <!-- 追加ボタン-->
      <el-row :gutter="20">
        <el-col :span="6">
          <div class="grid-content bg-purple"></div>
          <el-button type="primary" @click="onhandAdd">役割を追加</el-button>
        </el-col>
      </el-row>
      <!-- 表 -->
      <el-table :data="テーブルデータ" border="" style="幅: 100%">
        <el-table-column type="expand">
          <テンプレート スロット スコープ="スコープ">
            <el-row
              :class="['bdbottom',i1 === 0? 'bdtop' : '', 'vcenter'] "
              :ガター="20"
              :span="6"
              v-for="(item_ong,i1) スコープ内の行の子"
              :key="item_ong.id"
            >
              <!-- レベル 1 -->
              <el-col :span="5">
                <el-tag>{{item_ong.authName}}</el-tag>
                <i class="el-icon-caret-right"></i>
              </el-col>
              <!-- 中等教育および高等教育レベル -->
              <el-col :span="19">
                <!-- 第 2 レベルの権限 -->
                <el-row v-for="(item_two,i2) in item_ong.children" :key="i2">
                  <el-col :span="6">
                    <el-tag type="success">{{item_two.authName}}</el-tag>
                    <i class="el-icon-caret-right"></i>
                  </el-col>
                  <el-col :span="18">
                    <elタグ
                      タイプ="警告"
                      v-for="(item_three,i3) in item_two.children"
                      :key="i3"
                    >{{item_three.authName}}</el-tag>
                    <i class="el-icon-caret-right"></i>
                  </el-col>
                </el-row>
              </el-col>
            </el-row>
          </テンプレート>
        </el-table-column>
        <el-table-column ラベル="#" タイプ="インデックス" 幅="80"></el-table-column>
        <el-table-column label="ロール名" prop="roleName"></el-table-column>
        <el-table-column label="役割の説明" prop="roleDesc"></el-table-column>
        <el-table-column label="操作" prop="id">
          <テンプレート スロット スコープ="スコープ">
            <el-ボタン
              タイプ="プライマリ"
              アイコン="el-icon-edit"
              サイズ="小"
              @click="handleEdit(scope.$index, scope.row)"
            >編集</el-button>
            <el-button type="warning" icon="el-icon-delete" size="small">削除</el-button>
            <el-button type="danger" icon="el-icon-edit" size="small">権限</el-button>
          </テンプレート>
        </el-table-column>
      </el-table>
    </el-card>
    <!-- 編集ポップアップ ボックスを追加しました -->
    <el-ダイアログ
      :title="タイトルを追加"
      :visible.sync="ダイアログを表示"
      幅="40%"
      :before-close="ハンドルを閉じる"
    >
      <el-フォーム
        :model="ルールフォーム"
        :rules="ルール"
        ref="refルールフォーム"
        ラベル幅="100px"
        クラス="デモルールフォーム"
      >
        <el-form-item label="ロール名" prop="roleName">
          <el-input v-model="ruleForm.roleName"></el-input>
        </el-form-item>
        <el-form-item label="役割の説明" prop="roleDesc">
          <el-input v-model="ruleForm.roleDesc"></el-input>
        </el-form-item>
      </el-form>
      <span slot="フッター" class="ダイアログフッター">
        <el-button @click="dialogVisible = false">キャンセル</el-button>
        <el-button type="primary" @click="dialogVisibleConfirm">確認</el-button>
      </span>
    </el-ダイアログ>
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  データ() {
    戻る {
      テーブルデータ: [],
      ダイアログ表示: false、
      addtitle: "役割を追加",
      ルールフォーム: {
        ロール名: "",
        役割の説明: ""
      },
      すべて: "",
      // 検証ルール: {
        ロール名: [
          { 必須: true、メッセージ: "キャラクター名を入力してください"、トリガー: "blur" }、
          { 最小: 3、最大: 5、メッセージ: "長さは 3 文字から 5 文字の間です"、トリガー: "ぼかし" }
        ]、
        roleDesc: [{ 必須: true、メッセージ: "ロールの説明"、トリガー: "ぼかし" }]
      }
    };
  },
  作成された() {
    this.tabList();
  },
  メソッド: {
    // テーブルインターフェースリスト tabList() {
      this.$api.jurisdiction.rolelist().then(res => {
        console.log(res.data.data, "]]]]]]]");
        テーブルデータを返します。
      });
    },
    // 追加 onhandAdd() {
      this.dialogVisible = true;
    },
    ハンドルクローズ(完了) {
      this.dialogVisible = false;
    },
    // 編集 handleEdit(index, row) {
      console.log(インデックス、行ID);
      this.dialogVisible = true; //ポップアップボックスを表示します this.ruleForm = row; //現在の行データを行に書き込み、現在の行データをフォームに割り当てます this.allid = row.id; //IDをグローバルに保存します},
    // 確認ダイアログVisibleConfirm() {
      // 新しいインターフェース if (!this.allid) {
        this.$api.jurisdiction.addrole(this.ruleForm)
          .then(res => {
            // コンソール.log(res,"new")
            this.$message.success("正常に追加されました"); // 正常に追加されたことを示すメッセージプロンプト this.$refs.refRuleForm.resetFields(); // テーブルデータをクリア this.dialogVisible = false; // ポップアップボックスを閉じる this.tabList(); // リストを更新する })
          .catch(res => {
            this.$message.error("追加に失敗しました");
          });
      } それ以外 {
        // インターフェースを変更する let id = this.allid
        パラメータ = {
          ロール名:this.ruleForm.roleName、
          ロールの説明:this.ruleForm.roleDesc、
        }
        this.$api.jurisdiction.edtrole(id,params)
          .then(res => {
            console.log(res,"変更")
            this.$message.success("変更に成功しました");
            this.$refs.refRuleForm.resetFields();
            this.dialogVisible = false;
            this.tabList();
          })
          .catch(res => {
            this.$message.error("変更に失敗しました");
          });
      }
    }
  }
};
</スクリプト>

<スタイルスコープ>
.bdtop {
  上境界線: 1px 実線 #eee;
  パディング上部: 10px;
}
.bdボトム{
  下境界線: 1px 実線 #eee;
  パディング下部: 10px;
  パディング上部: 10px;
}
.elタグ{
  マージン: 10px 0px;
}
.vcenter {
  ディスプレイ: フレックス;
  アイテムの位置を中央揃えにします。
}
</スタイル>

上記は、vue+elementui を使用して共有ポップアップ ボックスを追加および変更するための完全なコードの詳細です。vue elementui ポップアップ ボックスの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Vue+elementuiは、テーブル内のセルをクリックしてイベント(箇条書きボックス)をトリガーすることを実現します。
  • vue elementUI が el-select を使用するときに変更イベントがトリガーされる問題を解決する
  • VUE-ElementUIカスタムロードチャート操作
  • vue+elementUI でのテーブルの強調表示またはフォント色の変更操作
  • vue+ElementUIはダイアログボックスを閉じ、検証をクリアし、フォーム操作をクリアします。

<<:  Mysqlデータテーブルでワームレプリケーションを使用する方法

>>:  Centos8 システムの VMware インストール チュートリアル図 (コマンド ライン モード)

推薦する

Linux で MySQL スケジュール タスク バックアップ データを実装する方法

序文バックアップは災害復旧の基礎であり、システム操作エラーやシステム障害によるデータ損失を防ぐために...

Ubuntu システムログで /var/log/messages を設定する方法

1. 問題の説明今日、システム ログ ファイルを確認する必要がありますが、/var/log/mess...

webpackでCSSを分割・圧縮し、リンクでインポートする手順

まずコードファイルの構造を見てみましょう。エントリファイル (index1.js) の内容: ...

JavaScript はパスワードボックスの入力検証を実装します

サーバーの負荷を軽減するために、ユーザーが入力するときにフロントエンドページで簡単な検証を実行する必...

mysql 8.0.12 winx64 のダウンロードとインストールのチュートリアル

MySQL 8.0.12のダウンロードとインストールのチュートリアルは参考までに、具体的な内容は次の...

Nginx 静的ファイル サービスの構成と最適化の詳細な説明

ルートディレクトリとインデックスファイルroot ディレクティブは、ファイルの検索に使用するルート ...

Linux でのマルチスレッドプログラミング例の分析

1 はじめにスレッド技術は 1960 年代にすでに提案されていましたが、マルチスレッドがオペレーティ...

Linux 仮想メモリ設定のチュートリアルと実践

仮想メモリとは何ですか?まずはWikipediaからの紹介文をそのまま引用します。仮想メモリは、コン...

MySQLは現在の日付と時刻を取得する関数の例の詳細な説明

現在の日付 + 時刻 (日付 + 時刻) を取得する関数: now() mysql> now(...

JS 関数のアンチシェイクと関数スロットリングを理解する方法

目次概要1. 関数デバウンス2. 機能スロットリング(スロットル)概要関数アンチシェイクと関数スロッ...

HTML での select optgroup タグの使用の概要

時々、選択した内容をグループ化する必要があります。以前はプログラム制御を使用していました。今日、se...

Linux仮想マシンの静的IPアドレスを構成するための手順を完了します

序文多くの場合、仮想マシンを使用します。たとえば、一部のテストは検出されません。何かを壊すことを心配...

CSS3のボックスサイズプロパティの興味深いボックスモデルについての簡単な説明

誰もがボックス モデルの構成を、内側から外側まで、コンテンツ、パディング、境界線、マージンについて知...

Vue3とVue2の利点のまとめ

目次1. なぜ vue3 が必要なのでしょうか? 2. vue3の利点3. 応答原則の違い4. ライ...

getdata テーブル テーブル データ 結合 mysql メソッド

パブリック関数 json_product_list($where, $order){ グローバル ...