欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

教你修改element-ui源碼給el-dialog添加全屏功能

 更新時間:2022年11月18日 10:11:46   作者:MINO吖  
el-dialog組件提供了fullscreen功能,但是無法滿足業(yè)務需求。系統(tǒng)使用了許多dialog,不方便重新封裝dialog組件,故直接對源碼進行修改,這篇文章主要介紹了修改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 重新安裝依賴 重啟項目

參考

相關文章

最新評論