序文バックエンドシステムの開発では、レビューステータス、返品申請ステータスなど、リストに表示されるステータスフィールドがいくつかあることが多く、ステータスフィルタリングのリストクエリ条件が付随していることがよくあります。同時に、ステータス表示はさまざまな色に対応しています。コードを書くとき、多くの人がよくこれを行います: <テンプレート> <el-form :model="クエリ"> <el-form-item label="承認ステータス" prop="ステータス"> <el-select v-model="query.status" クリア可能> <el-オプション v-for="ステータスオプション内の項目" :key="アイテム.値" :label="アイテム.ラベル" :value="アイテムの値" /> </el-select> </el-form-item> <el-form-item> <el-button type="primary">クエリ</el-button> <el-button type="danger">リセット</el-button> </el-form-item> </el-form> <el-table :data="リスト"> <el-table-column label="承認ステータス"> <テンプレート #default="{行}"> <el-tag v-if="row.status === 0" type="primary">審査中</el-tag> <el-tag v-if="row.status === 1" type="success">レビューが完了しました</el-tag> <el-tag v-if="row.status === 2" type="danger">監査に失敗しました</el-tag> </テンプレート> </el-table-column> </el-table> </テンプレート> エクスポートデフォルト{ データ() { 戻る { クエリ: { ステータス: null }, ステータスオプション: [ { ラベル: '審査中'、値: 0 }, { ラベル: 'レビュー成功'、値: 1 }, { ラベル: '監査に失敗しました'、値: 2 } ]、 リスト: [] } } } 上記のコードは要件を満たしていますが、十分にエレガントではなく、コードのメンテナンスコストが高くなります。
最適化上記の問題に対し、弊社では以下の対策を実施し救済を図ってまいります。 変数の抽出statusOptions を格納する定数ファイルを作成し、異なる色を区別して表示するための el-tag コンポーネントの type フィールドを追加して、最後にエクスポートします。 // 定数/index.js // 監査ステータス const statusOptions = [ { ラベル: '審査中'、値: 0、タイプ: 'プライマリ' }, { ラベル: 'レビュー成功'、値: 1、タイプ: '成功' }, { ラベル: '監査に失敗しました'、値: 2、タイプ: '危険' } ] 輸出 { ステータスオプション } 二次包装 el-tag コンポーネント// コンポーネント/統計タグ.vue <テンプレート> <el-tag :type="getValue('type')"> {{ getValue('ラベル') }} </el-tag> </テンプレート> エクスポートデフォルト{ 名前: 'ステータスタグ', 小道具: { オプション: タイプ: 配列、 必須: true、 デフォルト: () => [] }, 状態: { タイプ: [文字列、数値], 必須: true } }, 計算: { getValue({ オプション, ステータス }) { 戻り値 (キー) => { const item = options.find(e => e.value === ステータス) 戻り値 (item && item[key]) || '' } } } } 使用<テンプレート> <el-form :model="クエリ"> <el-form-item label="承認ステータス" prop="ステータス"> <el-select v-model="query.status" クリア可能> <el-オプション v-for="ステータスオプション内の項目" :key="アイテム.値" :label="アイテム.ラベル" :value="アイテムの値" /> </el-select> </el-form-item> <el-form-item> <el-button type="primary">クエリ</el-button> <el-button type="danger">リセット</el-button> </el-form-item> </el-form> <el-table :data="リスト"> <el-table-column label="承認ステータス"> <テンプレート #default="{行}"> <!-- 使用法 --> <ステータスタグ :options="ステータスオプション" :status="行のステータス" /> </テンプレート> </el-table-column> </el-table> </テンプレート> '@/components/status-tag' から StatusTag をインポートします。 // '@/const' から { statusOptions } をインポートします エクスポートデフォルト{ コンポーネント: ステータスタグ }, データ() { 戻る { ステータスオプション } } } 最適化後、変更があった場合は、すべての部分を変更する必要はなく、const/index.js ファイルを変更するだけで済みます。 // 定数/index.js // 監査ステータス const statusOptions = [ { ラベル: '審査中'、値: 0、タイプ: 'プライマリ' }, { ラベル: 'レビュー成功'、値: 1、タイプ: '成功' }, { ラベル: '監査失敗'、値: 2、タイプ: '危険' }, // キャンセルステータスを追加 { ラベル: 'レビューがキャンセルされました'、値: 3、タイプ: '警告' } ] 輸出 { ステータスオプション } 要約するこれで、Vue 背景のエレガントなライティング ステータス ラベルに関するこの記事は終了です。Vue ライティング ステータス ラベルに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 |
<<: Linuxシステムにおけるキー認証に基づくSSHサービスのプロセス
>>: MySQL バージョンは、2 つのタイムスタンプ型の値をサポートしていないバージョンよりも低いです。
<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...
この記事では、アニメーション効果の非表示と表示を実現するためのJQueryの具体的なコードを参考まで...
目次1. 父と息子のコミュニケーション1.1 親コンポーネント --> 子コンポーネント1.2...
この記事では、例を使用して、MySQL で GROUP_CONCAT を使用する方法について説明しま...
トリガーの紹介トリガーは、テーブルに関連付けられた特別なストアド プロシージャであり、テーブル内のデ...
目次1. 最も単純な例2. 音声の速度とピッチをカスタマイズする3. 音量の調整方法4. よく使われ...
目次現状解決さらなる解決策やっと現状WeChat ミニプログラムには、ホームページ、個人ページ、いく...
Macはシェル(ターミナル)SSHを使用してリモートサーバーに接続します前提条件: 接続する必要があ...
1. Concat関数。よく使用される接続文字列: concat 関数。たとえば、SQLクエリ条件...
MySQL は、異なるユーザーに異なる権限を割り当てることができるマルチユーザー管理データベースであ...
要素UIとはelement-ui は、Ele.me のフロントエンド チームが開発者、デザイナー、製...
Mysql マスタースレーブ同期の Last_IO_Errno:1236 エラーの原因は何ですか? ...
今はモバイルインターネットが急速に発展している時代です。スマートフォンやタブレットはますます普及し、...
序文タイトルを見ると、誰もが「Debian 9 に MySQL をインストールするにはどうすればいい...
悲観的ロック悲観的ロックは、データを悲観的であるとみなします。データをクエリするときに、ロックを追加...