教你修改element-ui源碼給el-dialog添加全屏功能
背景:
el-dialog組件提供了fullscreen功能,但是無法滿足業(yè)務需求。系統(tǒng)使用了許多dialog,不方便重新封裝dialog組件,故直接對源碼進行修改。
1.克隆element官方的倉庫到本地
git clone https://github.com/ElemeFE/element
2.下載到本地之后進入項目,安裝依賴包
cd elementnpm install
3.打開package 文件夾,修改源代碼
打開 package/dialog/src/component.vue
template:
<!-- div role="dialog" 的class修改為:--> :class="['el-dialog', { 'is-fullscreen': isFullscreen, 'el-dialog--center': center }, customClass]" <!-- 在button aria-label="Close"前添加按鈕: --> <button type="button" class="el-dialog__headerbtn" aria-label="Fullscreen" style="right: 46px;" v-if="fullscreen" @click="handleFullscreen"> <i class="el-dialog__close el-icon el-icon-full-screen"></i> </button>
script:
props: { ..., fullscreen: { // 修改fullscreen屬性,默認為true type: Boolean, default: true, }, ... } data() { return { isFullscreen: false, // 新增全屏狀態(tài) ... }; }, computed: { style() { let style = {}; if (!this.isFullscreen) { // 判斷isFullscreen style.marginTop = this.top; if (this.width) { style.width = this.width; } } return style; }, }, methods: { // 新增toggle方法 handleFullscreen() { this.isFullscreen = !this.isFullscreen; }, ... }
4.打包我們修改后的源碼
npm run dist
此時會發(fā)現(xiàn)在根目錄生成了一份 lib 文件夾(后續(xù)會用到)
5.安裝 patch-package
npm i patch-package --save-dev
6.替換項目中的 element-ui
首先我們找到 node_modules/element-ui/ 刪除目錄下的 lib 文件夾
拷貝我們剛才生成的一份 lib 文件夾到 node_modules/element-ui/ 下面
7.生成 patches 補丁文件
npx patch-package package-name
執(zhí)行之后會發(fā)現(xiàn) 在根目錄生成一個 patches/element-ui+2.15.6.patch 的文件
8.新增 postinstall 命令
在 package.json scripts 配置 "postinstall": "patch-package"
9.重新安裝依賴包
刪除你的 node_modules文件夾
npm install
重新安裝依賴 重啟項目
相關文章
javascript中parseInt()函數(shù)的定義和用法分析
這篇文章主要介紹了javascript中parseInt()函數(shù)的定義和用法,較為詳細的分析了parseInt()函數(shù)的定義及具體用法,以及參數(shù)使用時的注意事項,需要的朋友可以參考下2014-12-12webpack開發(fā)環(huán)境和生產(chǎn)環(huán)境的深入理解
這篇文章主要介紹了webpack開發(fā)環(huán)境和生產(chǎn)環(huán)境的深入理解,詳細的介紹了什么是開發(fā)環(huán)境和生產(chǎn)環(huán)境并配置,非常具有實用價值,需要的朋友可以參考下2018-11-11layui問題之自動滾動二級iframe頁面到指定位置的方法
今天小編就為大家分享一篇layui問題之自動滾動二級iframe頁面到指定位置的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09