- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > JavaScript >
- ElementUI在實(shí)際項目使用步驟詳解
目標:點(diǎn)擊入職時(shí)間后面的上下箭頭可以實(shí)現當前頁(yè)數據按照入職時(shí)間升序或者降序排列
思路:給el-table-column添加sortable
排序是對取回來(lái)的數據做排序,只在前端。
參考:https://element.eleme.io/#/zh-CN/component/table#pai-xu
代碼實(shí)現(參考):
<!-- 1.定義需要根據字段排序的字段名稱(chēng) --> <el-table :data="list" border :default-sort="{prop: 'workNumber'}"> </el-table> <!-- 2.保證字段列上聲明了prop屬性 和 sortable屬性 --> <el-table-column label="入職時(shí)間" sortable prop="timeOfEntry"> </el-table-column>
目標(效果):實(shí)現分頁(yè)獲取數據邏輯
思路:按分頁(yè)組件的屬性要求進(jìn)行配置即可。
步驟:
步驟1:補充數據項
按el-pagination組件的要求,在頁(yè)面中添加與分頁(yè)相關(guān)的數據項
data() { return { // 省略其他 total: 0, page: 1, // 當前頁(yè)碼 size: 5, // 每頁(yè)幾條 total: 0 // 總共數據條數 } }
步驟2:分頁(yè)結構
<div style="height: 60px; margin-top: 10px"> <!-- 分頁(yè) --> <el-pagination layout="total, sizes,prev, pager, next, jumper" :total="total" :page-size="size" :page-sizes="[2,5,10]" @current-change="hCurrentChange" @size-change="hSizeChange" /> </div>
步驟3:分頁(yè)邏輯實(shí)現
// 會(huì )自動(dòng)接收當前點(diǎn)擊的頁(yè)碼 hCurrentChange(curPage) { // alert(curPage) // 1. 更新頁(yè)碼 this.page = curPage // 2. 重發(fā)請求 this.loadEmployee() }, // 每頁(yè)幾條 hSizeChange(curSize) { // alert(size) // 1. 更新每頁(yè)的條數 this.size = curSize // 2. 重發(fā)請求 this.loadEmployee() },
作用(效果)
使用注意事項:
對于用來(lái)表示多選的el-checkbox-group來(lái)說(shuō):
v-model的值是數組(表示多選)
它的子元素el-checkbox的label屬性決定了選中這一項之后值
模板
<el-checkbox-group v-model="roleIds"> <el-checkbox label="110">管理員</el-checkbox> <el-checkbox label="113">開(kāi)發(fā)者</el-checkbox> <el-checkbox label="115">人事</el-checkbox> </el-checkbox-group>
數據
data () { return { roleIds: [] // 保存當前選中的權限列表 } }
效果:
思路:這個(gè)組件比較大(主頁(yè)中的代碼也比較多了),所以我們會(huì )單獨提出來(lái)成一個(gè)組件
步驟1:封裝一個(gè)組件 (注冊引入使用三部曲)
步驟2:在主頁(yè)中使用日歷組件
<el-card class="box-card"> <div slot="header" class="header"> <span>工作日歷</span> </div> <!-- 放置日歷組件 --> <calender /> </el-card>
步驟3:用插槽自定義日歷內容顯示
<template> <el-calendar v-model="currentDate"> <template slot="dateCell"> <div class="date-content"> <span class="text">01</span> <span class="rest">休</span> </div> </template> </el-calendar> </template> <script> export default { data() { return { curDate: new Date() } } } </script>
效果:
這種圖在echarts中也有,這里我們用螞蟻數據可視化部門(mén)的產(chǎn)品antv-G2
https://antv.vision/zh
https://g2.antv.vision/zh/examples/radar/radar#basic
步驟1:安裝必要依賴(lài)
npm install @antv/data-set @antv/g2
步驟2:創(chuàng )建一個(gè)組件來(lái)實(shí)現雷達圖
下面的代碼在官網(wǎng)中參考過(guò)來(lái)的:https://g2.antv.vision/zh/examples/radar/radar#basic
<template> <div id="container" /> </template> <script> import DataSet from '@antv/data-set' import { Chart } from '@antv/g2' export default { mounted() { const data = [ { item: '工作效率', a: 70, b: 30 }, { item: '考勤', a: 60, b: 70 }, { item: '積極性', a: 50, b: 60 }, { item: '幫助同事', a: 40, b: 50 }, { item: '自主學(xué)習', a: 60, b: 70 }, { item: '正確率', a: 70, b: 50 } ] const { DataView } = DataSet const dv = new DataView().source(data) dv.transform({ type: 'fold', fields: ['a', 'b'], // 展開(kāi)字段集 key: 'user', // key字段 value: 'score' // value字段 }) const chart = new Chart({ container: 'container', autoFit: true, height: 500 }) chart.data(dv.rows) chart.scale('score', { min: 0, max: 80 }) chart.coordinate('polar', { radius: 0.8 }) chart.tooltip({ shared: true, showCrosshairs: true, crosshairs: { line: { style: { lineDash: [4, 4], stroke: '#333' } } } }) chart.axis('item', { line: null, tickLine: null, grid: { line: { style: { lineDash: null } } } }) chart.axis('score', { line: null, tickLine: null, grid: { line: { type: 'line', style: { lineDash: null } } } }) chart .line() .position('item*score') .color('user') .size(2) chart .point() .position('item*score') .color('user') .shape('circle') .size(4) .style({ stroke: '#fff', lineWidth: 1, fillOpacity: 1 }) chart .area() .position('item*score') .color('user') chart.render() } } </script>
效果:vue項目中的多語(yǔ)言支持使用的是vue-i18n
參考: https://kazupon.github.io/vue-i18n/zh/started.html
目標:實(shí)現elementUI中英文切換功能,感受中文切換的效果
步驟1:安裝國際化的包
npm i vue-i18n@8.22.2
步驟2:ElementUI多語(yǔ)言配置
引入element語(yǔ)言包文件src/lang/index.js
// 進(jìn)行多語(yǔ)言支持配置 import Vue from 'vue' // 引入Vue import VueI18n from 'vue-i18n' // 引入國際化的插件包 import locale from 'element-ui/lib/locale' import elementEN from 'element-ui/lib/locale/lang/en' // 引入餓了么的英文包 import elementZH from 'element-ui/lib/locale/lang/zh-CN' // 引入餓了么的中文包 Vue.use(VueI18n) // 全局注冊國際化包 // 創(chuàng )建國際化插件的實(shí)例 const i18n = new VueI18n({ // 指定語(yǔ)言類(lèi)型 zh表示中文 en表示英文 locale: 'zh', // 將elementUI語(yǔ)言包加入到插件語(yǔ)言數據里 messages: { // 英文環(huán)境下的語(yǔ)言數據 en: { ...elementEN }, // 中文環(huán)境下的語(yǔ)言數據 zh: { ...elementZH } } }) // 配置elementUI 語(yǔ)言轉換關(guān)系 locale.i18n((key, value) => i18n.t(key, value)) export default i18n
到此這篇關(guān)于ElementUI在實(shí)際項目使用的功能總結的文章就介紹到這了,更多相關(guān)ElementUI項目使用總結內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站