最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2022年11月18日 10:11:46   作者:MINO吖  
el-dialog組件提供了fullscreen功能,但是無法滿足業(yè)務(wù)需求。系統(tǒng)使用了許多dialog,不方便重新封裝dialog組件,故直接對源碼進(jìn)行修改,這篇文章主要介紹了修改element-ui源碼給el-dialog添加全屏功能,需要的朋友可以參考下

背景:

el-dialog組件提供了fullscreen功能,但是無法滿足業(yè)務(wù)需求。系統(tǒng)使用了許多dialog,不方便重新封裝dialog組件,故直接對源碼進(jìn)行修改。

1.克隆element官方的倉庫到本地

git clone https://github.com/ElemeFE/element

2.下載到本地之后進(jìn)入項目,安裝依賴包

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屬性,默認(rèn)為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 補(bǔ)丁文件

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 重新安裝依賴 重啟項目

參考

相關(guān)文章

  • Javascript 解疑

    Javascript 解疑

    Javascript 解疑,需要的朋友可以參考下。
    2009-11-11
  • Javascript使用post方法提交數(shù)據(jù)實例

    Javascript使用post方法提交數(shù)據(jù)實例

    這篇文章主要介紹了Javascript使用post方法提交數(shù)據(jù),實例分析了javascript實現(xiàn)post提交數(shù)據(jù)的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • 詳談ES6中的迭代器(Iterator)和生成器(Generator)

    詳談ES6中的迭代器(Iterator)和生成器(Generator)

    下面小編就為大家?guī)硪黄斦凟S6中的迭代器(Iterator)和生成器(Generator)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • JavaScript獲取頁面上被選中文字的方法技巧

    JavaScript獲取頁面上被選中文字的方法技巧

    這篇文章主要介紹了JavaScript獲取頁面上被選中文字的方法技巧,本文直接給出實現(xiàn)代碼和運(yùn)行效果,需要的朋友可以參考下
    2015-03-03
  • JS中取二維數(shù)組中最大值的方法匯總

    JS中取二維數(shù)組中最大值的方法匯總

    本文通過三種解決方案給大家介紹js中取二維數(shù)組中最大值的方法。介紹的非常詳細(xì),具有參考價值
    2016-04-04
  • three.js創(chuàng)造時空裂縫特效實現(xiàn)示例

    three.js創(chuàng)造時空裂縫特效實現(xiàn)示例

    這篇文章主要為大家介紹了three.js創(chuàng)造時空裂縫特效實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • js url傳值中文亂碼之解決之道

    js url傳值中文亂碼之解決之道

    因為js url在傳值的過程中使用的是js自己默認(rèn)的字符集編碼規(guī)則,我們必須把它轉(zhuǎn)成屬于我們自己的編碼規(guī)格
    2009-11-11
  • js阻止默認(rèn)右鍵的下拉菜單方法

    js阻止默認(rèn)右鍵的下拉菜單方法

    下面小編就為大家分享一篇js阻止默認(rèn)右鍵的下拉菜單方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • js對象的復(fù)制繼承實例

    js對象的復(fù)制繼承實例

    這篇文章主要介紹了js對象的復(fù)制繼承用法,以一個較為簡單的實例分析了js對象復(fù)制繼承的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • JS逆向之?webpack?打包站點實戰(zhàn)原理分享

    JS逆向之?webpack?打包站點實戰(zhàn)原理分享

    本文主要介紹了JS逆向之webpack打包站點實戰(zhàn)原理分享,webpack是前端程序員用來進(jìn)行打包JS的技術(shù),打包之后的代碼特征非常明顯,更多相關(guān)知識需要的小伙伴可以參考下面文章詳細(xì)內(nèi)容
    2022-06-06

最新評論

北安市| 宁远县| 宁化县| 平顶山市| 宁安市| 大冶市| 西宁市| 措美县| 石河子市| 汉阴县| 高雄市| 武汉市| 拜城县| 河间市| 图木舒克市| 军事| 洛川县| 荆州市| 墨玉县| 阿拉善右旗| 沁源县| 祁阳县| 巩留县| 墨玉县| 铜川市| 汉川市| 历史| 赤峰市| 清徐县| 临清市| 三江| 绥滨县| 岳池县| 石渠县| 金阳县| 荔浦县| 松阳县| 大安市| 临泉县| 依安县| 治多县|