PC端Element-UI使用指南

本文目錄:

  • 1.使用方法
  • 2.全局引用
  • 3.按需引入
  • 4.element批量刪除功能實(shí)現(xiàn)
  • 5.element提供的上傳組件解決無(wú)權(quán)限的問題
  • 6.圖片上傳驗(yàn)證
  • 7.同一頁(yè)面存在多個(gè)表格
  • 8.動(dòng)態(tài)改變校驗(yàn)規(guī)則
  • 9.手動(dòng)控制校驗(yàn)狀態(tài)
  • 10.表單的使用
  • 11.表格中獲取所在行的數(shù)據(jù)

Element-UI:一套為開發(fā)者、設(shè)計(jì)師层扶、產(chǎn)品經(jīng)理準(zhǔn)備的桌面端組件庫(kù)琳袄。官方文檔地址:https://element.eleme.cn/#/zh-CN/component/installation

1.使用方法

1.CDN的方式

<!-- 引入樣式 -->
<link rel="stylesheet" >
<!-- 引入組件庫(kù) -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>

引用之后直接就可以在頁(yè)面中使用標(biāo)簽了劳跃。
2.基于命令行方式手動(dòng)安裝
①安裝依賴包 npm install element-ui --save
②導(dǎo)入element-ui相關(guān)資源
3.基于圖形化界面自動(dòng)安裝
①運(yùn)行vue ui 命令包蓝,打開圖形化界面
②通過Vue項(xiàng)目管理器,進(jìn)入具體的項(xiàng)目配置面板
③點(diǎn)擊 插件=>添加插件 搁拙, 進(jìn)入插件查詢面板
④搜索vue-cli-plugin-element 并安裝
⑤配置插件云挟,實(shí)現(xiàn)按需導(dǎo)入,從而減少打包后的項(xiàng)目的體積

2.全局引用

如果項(xiàng)目的UI都是用的element哺哼,可以直接將element進(jìn)行全局引用:

import Vue from 'vue';
//導(dǎo)入組件庫(kù)
import ElementUI from 'element-ui';
//導(dǎo)入組件相關(guān)樣式
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue';
//配置vue插件
Vue.use(ElementUI);

new Vue({
  el: '#app',
  render: h => h(App)
});

然后根據(jù)官方文檔上的說明佩抹,直接在把相應(yīng)組件的代碼拷貝進(jìn)頁(yè)面中就可以了。

3.按需引入

借助 babel-plugin-component取董,我們可以只引入需要的組件棍苹,以達(dá)到減小項(xiàng)目體積的目的。
首先甲葬,安裝 babel-plugin-component:
npm install babel-plugin-component -D
然后廊勃,將 .babelrc 修改為:

{
  "presets": [["es2015", { "modules": false }]],
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}

接下來,如果你只希望引入部分組件经窖,比如 Button 和 Select坡垫,那么需要在 main.js 中寫入以下內(nèi)容:

import Vue from 'vue';
import { Button, Select } from 'element-ui';
import App from './App.vue';

Vue.component(Button.name, Button);
Vue.component(Select.name, Select);
/* 或?qū)憺? * Vue.use(Button)
 * Vue.use(Select)
 */

new Vue({
  el: '#app',
  render: h => h(App)
});

這個(gè)時(shí)候,style 引用可以去掉画侣。

4.element批量刪除功能實(shí)現(xiàn)

在el-table標(biāo)簽中綁定事件 @selection-change="batchRemove"
batchRemove(val){
console.log(val)
},
打印出來的是選中的列的數(shù)組集合

5.element提供的上傳組件解決無(wú)權(quán)限的問題

解決思路:手動(dòng)設(shè)置請(qǐng)求頭
1.定義變量冰悠,獲取token
const token = localStorage.getItem("access-token");
2.在data中設(shè)置要改變的請(qǐng)求頭的信息MyHeader
MyHeader: { Authorization: token }
3.組件中動(dòng)態(tài)傳入headers,即可解決401問題配乱。

<el-upload class="upload-area" action="http://192.168.0.88:18002/api-operate/clouddocms/files/upload" :headers="MyHeader">
  <el-button icon="el-icon-upload" size="primary" type="primary">點(diǎn)擊上傳
  </el-button>
</el-upload>

6.圖片上傳驗(yàn)證

有時(shí)候會(huì)需要在表單里上傳圖片,但是圖片上傳是一個(gè)異步過程,屬性值改變后不會(huì)去觸發(fā)驗(yàn)證規(guī)則溉卓,這時(shí)候需要手動(dòng)觸發(fā)部分驗(yàn)證方法皮迟。

<el-form-item label="活動(dòng)圖片" prop="fileUrl">
    <el-upload
      :action="action"
      :on-success="handleSuccess"
      :data="uploadData"
      :limit="20"
      list-type="picture-card"
      :on-preview="handlePreview"
      :on-remove="handleRemove">
      <i class="el-icon-plus"></i>
    </el-upload>
  </el-form-item>

  fileUrl: [
    { required: true, message: '請(qǐng)上傳圖片', trigger: 'change' }
  ],

  // 刪除圖片
  handleRemove (file, fileList) {
    this.registData.fileUrl = ''
    // 文件刪除后也要觸發(fā)驗(yàn)證,validateField是觸發(fā)部分驗(yàn)證的方法,參數(shù)是prop設(shè)置的值
    this.$refs.registerRef.validateField('fileUrl')
  },

  // 圖片上傳
  handleSuccess (res, file, fileList) {
    // 這里可以寫文件上傳成功后的處理,但是一定要記得給fileUrl賦值
    this.registData.fileUrl = 'fileUrl'
    // 文件上傳后不會(huì)觸發(fā)form表單的驗(yàn)證,要手動(dòng)添加驗(yàn)證
    this.$refs.registerRef.validateField('fileUrl')
  },

7.同一頁(yè)面存在多個(gè)表格

element-ui在同一個(gè)頁(yè)面放置多個(gè)table表格可能會(huì)出現(xiàn)一個(gè)莫名其妙的BUG,比如說表格布局亂了桑寨,不同表格內(nèi)容相互覆蓋伏尼,可以給el-table標(biāo)簽綁定 :key="Math.random()"解決問題。
<el-table :key="Math.random()"></el-table>
key 的特殊屬性主要用在 Vue 的虛擬 DOM 算法尉尾,在新舊 nodes 對(duì)比時(shí)辨識(shí) VNodes爆阶。如果不使用 key,Vue 會(huì)使用一種最大限度減少動(dòng)態(tài)元素并且盡可能的嘗試修復(fù)/再利用相同類型元素的算法沙咏。
另外使用了圖片懶加載的時(shí)候辨图,假如列表發(fā)生變化而圖片沒刷新的話,也可以嘗試動(dòng)態(tài)綁定key值肢藐。
在el-table表格中故河,如果需要獲取到當(dāng)前行的所有數(shù)據(jù),需要在<template slot-scope="scope"></template>內(nèi)通過scope.row獲取吆豹。

8.動(dòng)態(tài)改變校驗(yàn)規(guī)則

表單校驗(yàn)如通過指定el-form-item 的 prop 屬性<el-form-item label="審批人" prop="user">鱼的,接下來在rules中定義user規(guī)則

{
  rules: {
      user: [
        { required: true, trigger: 'change', message: '用戶名必須錄入' },
      ]
  }
}

上面的rules 只包含一個(gè)校驗(yàn)規(guī)則,接下來我們可以通過Object.assign給rules動(dòng)態(tài)添加規(guī)則

addRule() {
    const userValidator = (rule, value, callback) => {
      if (value.length > 3) {
        this.inputError = ''
        this.inputValidateStatus = ''
        callback()
      } else {
        callback(new Error('用戶名長(zhǎng)度必須大于3'))
      }
    }
    const newRule = [
      ...this.rules.user,
      { validator: userValidator, trigger: 'change' }
    ]
    this.rules = Object.assign({}, this.rules, { user: newRule })
}

9.手動(dòng)控制校驗(yàn)狀態(tài)

el-form-item有一個(gè)validate-statu屬性瞻讽,并且有以下可選值:
success:驗(yàn)證成功
error:驗(yàn)證失敗
validating:驗(yàn)證中
(空):未驗(yàn)證
el-form-item還有個(gè)error屬性鸳吸,可以自定義錯(cuò)誤提示
我們可以通過在data中自定義demotips和demostatu來手動(dòng)控制校驗(yàn)狀態(tài)。
首先設(shè)置好el-form-item屬性

<el-form-item
  label="用戶名"
  prop="user"
  :error="demotips"
  :validate-status="demostatus"
......
</el-form-item>

自定義改變demotips和demostatus的方法

showError() {
  this.demostatus = 'error'
  this.demotips= '用戶名輸入有誤'
},
showSuccess() {
  this.demostatus = 'success'
  this.demotips= ''
},
showValidating() {
  this.demostatus= 'validating'
  this.demotips= ''
}

10.表單的使用

el-form通過:model綁定數(shù)據(jù)速勇,同時(shí)el-form需要添加ref屬性晌砾,相當(dāng)于給表單起了個(gè)專屬的名字,這個(gè)名字很重要烦磁,如 ref="addForm"
操作表單

this.$refs.addForm.validate(valid => {
  if (valid) {
    //some operate code
  }
});

11.表格中獲取所在行的數(shù)據(jù)

<el-table-column
  fixed="right"
  label="操作"
  width="100">
  <template slot-scope="scope">
    <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
    <el-button type="text" size="small">編輯</el-button>
  </template>
</el-table-column>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末养匈,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子都伪,更是在濱河造成了極大的恐慌呕乎,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陨晶,死亡現(xiàn)場(chǎng)離奇詭異措左,居然都是意外死亡糖儡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來毫胜,“玉大人涕侈,你說我怎么就攤上這事胁孙∨憔校” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵铃芦,是天一觀的道長(zhǎng)雅镊。 經(jīng)常有香客問我襟雷,道長(zhǎng),這世上最難降的妖魔是什么仁烹? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任耸弄,我火速辦了婚禮,結(jié)果婚禮上晃危,老公的妹妹穿的比我還像新娘叙赚。我一直安慰自己,他們只是感情好僚饭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著胧砰,像睡著了一般鳍鸵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尉间,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天偿乖,我揣著相機(jī)與錄音,去河邊找鬼哲嘲。 笑死贪薪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的眠副。 我是一名探鬼主播画切,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼囱怕!你這毒婦竟也來了霍弹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤娃弓,失蹤者是張志新(化名)和其女友劉穎典格,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體台丛,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡耍缴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挽霉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片防嗡。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖炼吴,靈堂內(nèi)的尸體忽然破棺而出本鸣,到底是詐尸還是另有隱情,我是刑警寧澤硅蹦,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布荣德,位于F島的核電站闷煤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏涮瞻。R本人自食惡果不足惜鲤拿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望署咽。 院中可真熱鬧近顷,春花似錦、人聲如沸宁否。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)慕匠。三九已至饱须,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間台谊,已是汗流浹背蓉媳。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锅铅,地道東北人酪呻。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像盐须,于是被迫代替她去往敵國(guó)和親玩荠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355