elemui開發全景

一、elemui概覽

elemui是餓了么團隊推出的一款基於Vue2.0的桌面端組件庫。elemui提供了豐富的UI組件,包括表單、表格、彈窗、圖表等,支持多種主題色和自定義主題的設置,同時還提供了很好的國際化支持。elemui還支持按需引入,使用簡單方便,成為了眾多開發人員的首選組件庫。

二、elemui特點

1、大量豐富的UI組件:包括表格、分頁、表單、按鈕、彈框、提示、圖表等。

2、響應式設計:完美地適應不同屏幕大小的設備。

3、靈活的主題定製:支持多種主題色和自定義主題的設置。

4、良好的國際化支持:支持多語言切換,可以通過自定義語言包進行擴展。

5、按需引入:支持部分組件打包,可以更高效地實現頁面的加載。

三、表格組件

表格組件是elemui中最為常用和重要的組件之一。elemui的表格組件採用了虛擬滾動技術,大大減少了大數據量下的頁面卡頓和加載時間。

以下是一個簡單的elemui表格的示例代碼:


<template>
  <el-table :data="tableData" style="width: 100%" :height="alldata.length<13?(alldata.length+1)*50+'px':'650px'" :row-class-name="tableRowClassName" :header-cell-style="{background:'#f5f5f5',color:'#666',fontWeight:'bold',padding:'10px',border:'1px solid #ddd'}">
    <el-table-column prop="date" label="日期" width="120" align="center" :header-cell-style="{background:'#f5f5f5',color:'#666',fontWeight:'bold',padding:'10px',borderRight:'1px solid #ddd'}"></el-table-column>
    <el-table-column prop="name" label="姓名" align="center" :header-cell-style="{background:'#f5f5f5',color:'#666',fontWeight:'bold',padding:'10px'}"></el-table-column>
    <el-table-column prop="address" label="地址" width="360" align="center" :header-cell-style="{background:'#f5f5f5',color:'#666',fontWeight:'bold',padding:'10px',borderRight:'1px solid #ddd'}"></el-table-column>
    <el-table-column prop="tags" label="標籤" align="center" :header-cell-style="{background:'#f5f5f5',color:'#666',fontWeight:'bold',padding:'10px'}">
      <template slot-scope="scope">
        <el-tag v-for="(item,index) in scope.row.tags" :key="index" style="margin: 5px" :type="index%2==0?'primary':''">{{ item }}</el-tag>
      </template>
    </el-table-column>
  </el-table>
</template>


  import { getTestData } from "@/api";
  export default {
    name: 'TableDemo',
    data() {
      return {
        tableData: [],
        alldata:[],
      };
    },
    methods: {
      tableRowClassName({row, rowIndex}) {
        if (rowIndex === 0) {
          return 'first-row';
        } else if (rowIndex === this.tableData.length - 1) {
          return 'last-row';
        }
        return '';
      }
    },
    created() {
      getTestData().then(res => {
        this.tableData = res.data.list;
        this.alldata=res.data.list;
      })
    },
  };


四、form表單組件

elemui的表單組件提供了豐富的輸入框、選擇器、日期選擇器等常用表單元素。下面是一個elemui表單的簡單示例。


<template>
  <el-form :model="formData" label-width="80px" ref="form" :rules="rules" >
    <el-form-item label="姓名" prop="name">
      <el-input v-model="formData.name" ></el-input>
    </el-form-item>

    <el-form-item label="性別" prop="gender" >
      <el-radio-group v-model="formData.gender" >
        <el-radio label="男" ></el-radio>
        <el-radio label="女" ></el-radio>
      </el-radio-group>
    </el-form-item>

    <el-form-item label="出生日期" prop="birth" >
      <el-date-picker v-model="formData.birth" type="date" style="width:100%" ></el-date-picker>
    </el-form-item>

    <el-form-item label="出生地點" prop="birthplace" >
      <el-select v-model="formData.birthplace" placeholder="請選擇" >
        <el-option label="北京" value="beijing" ></el-option>
        <el-option label="上海" value="shanghai" ></el-option>
        <el-option label="廣州" value="guangzhou" ></el-option>
        <el-option label="深圳" value="shenzhen" ></el-option>
        <el-option label="杭州" value="hangzhou" ></el-option>
      </el-select>
    </el-form-item>

    <el-form-item label="備註" prop="remark" >
      <el-input v-model="formData.remark" type="textarea" autosize ></el-input>
    </el-form-item>

    <el-form-item>
      <el-button type="primary" @click="submitForm('form')">確認重置


  export default {
    name: 'FormDemo',
    data() {
      return {
        formData: {
          name: '',
          gender: '',
          birth: '',
          birthplace: '',
          remark: '',
        },
        rules: {
          name: [
            { required: true, message: '姓名不能為空', trigger: 'blur' },
            { pattern: /^[\u4E00-\u9FA5]{2,6}$/, message: '姓名必須為2-6個漢字', trigger: 'blur' }
          ],
          gender: [
            { required: true, message: '請選擇性別', trigger: 'change' }
          ],
          birth: [
            { type: 'date', required: true, message: '請選擇出生日期', trigger: 'change' }
          ],
          birthplace: [
            { required: true, message: '請選擇出生地點', trigger: 'change' }
          ],
          remark: [
            { max: 200, message: '備註不能超過200個字符', trigger: 'blur' }
          ]
        }
      };
    },
    methods: {
      resetForm(formName) {
        this.$refs[formName].resetFields();
      },
      submitForm(formName) {
        this.$refs[formName].validate(valid => {
          if (valid) {
            console.log('submit!');
          } else {
            return false;
          }
        });
      }
    },
  };


五、彈框組件

elemui的彈框包括了提示框、確認框、對話框、消息提示框等多種類型,可以根據不同需求快速實現彈框功能。以下是一個elemui對話框的簡單示例代碼。


<template>
  <div>
    <el-button type="primary" @click="visible=true">打開對話框</el-button>
    <el-dialog title="對話框標題" :visible.sync="visible">
      <span>這是一條對話框內容。</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="visible = false">取 消確 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>


  export default {
    name: 'DialogDemo',
    data() {
      return {
        visible: false
      };
    },
  };


六、總結

在開發過程中,藉助elemui可以快速實現一個完整的頁面功能,避免了自己手寫大量代碼,進而提高了開發效率。elemui還在不斷地更新和迭代,擴展了更多功能和組件,為廣大開發者提供更好的使用體驗,可以說是一個非常優秀的桌面端Vue組件庫。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/151746.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-11 13:44
下一篇 2024-11-11 13:44

相關推薦

  • 深入RevitAPI:開發全景

    一、基礎概念 RevitAPI是Autodesk公司為Revit軟件開發者提供的編程接口。通過它,開發者可以訪問和操作Revit軟件中的各種對象和數據,實現更廣泛、更專業化的功能。…

    編程 2025-02-25
  • 全景展示——探究Pannellum

    一、Pannellum簡介 Pannellum是一款基於JavaScript的全景圖像展示器,支持自由漫遊、雙擊縮放、熱點、場景切換等功能。它能夠在網頁中快速構建出高品質的全景展示…

    編程 2025-01-27
  • JRuby編程全景

    一、JRuby概述 JRuby是Ruby語言在Java虛擬機(JVM)上的實現。它將Ruby語言與Java類庫相結合,使得Ruby程序員可以利用Java的強大生態系統,並可以在JV…

    編程 2024-12-31
  • TridentNet:可擴展的全景目標檢測框架

    TridentNet是一種新型的全景目標檢測框架,它與當前流行的檢測器(如SSD,Faster R-CNN和RetinaNet)相比,可以在需要更高精度的應用場景下實現更高的檢測速…

    編程 2024-12-23
  • 400-887-1388:全國客服電話全景解析

    400-887-1388是一條全國客服電話,對於普通用戶來說,通常用於處理各種問題和諮詢,但對於企業來說,它還有更多的用途,比如提高服務效率,降低成本等。在本文中,我們將通過多個角…

    編程 2024-12-13
  • c#svg全景概述

    一、什麼是c#svg c#svg是一種用於描述二維圖形和繪圖程序的XML語言,也是一種用於創建交互式圖像應用程序的開放標準。它的核心便是可縮放矢量圖形(SVG)。 SVG中的「C#…

    編程 2024-12-12
  • Node.js的全景視圖

    Node.js是一種服務器端JavaScript編程語言,由Ryan Dahl在2009年創建。它運行在Chrome V8引擎之上,並被廣泛用於前端和後端應用程序。Node.js通…

    編程 2024-12-12
  • BTR82全景攝像機

    一、BTR82簡介 BTR82是一款全景攝像機,採用了全景360度拍攝技術,能夠無盲區的拍攝到周圍的一切景象。可以根據不同的拍攝需求進行定製,支持智能識別、自動監控等特殊功能。 二…

    編程 2024-12-12
  • 朋友torch的多面向全景闡述

    一、朋友圈文案 朋友torch經常會在朋友圈裡發一些有趣、幽默、風趣的文案,不止是一句話,也有幾句組成的給人以啟示的句子。比如: We are not given a good o…

    編程 2024-12-05
  • 探究全景展示庫Pannellum

    一、Pannellum.js Pannellum.js是一個免費的、開源的全景展示庫,可用於在網站上嵌入全景圖像。該庫支持在桌面端和移動端上的主流瀏覽器。此外,它還允許您在全景圖像…

    編程 2024-11-28

發表回復

登錄後才能評論