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

拿來就用vue-gird-layout組件封裝示例

 更新時(shí)間:2023年08月01日 11:31:58   作者:Xbbing  
這篇文章主要介紹了vue-gird-layout組件封裝示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

先來效果圖展示

展示

拖拽尺寸

拖拽后

移動(dòng)

組件封裝

大家這塊直接復(fù)制使用就OK

<template>
    <grid-layout
            :layout="layout"
            :col-num="colNum"
            :row-height="rowHeight"
            :is-mirrored="isMirrored"
            :vertical-compact="verticalCompact"
            :margin="margin"
            :use-css-transforms="useCssTransforms"
            :useStyleCursor="useStyleCursor"
            :is-draggable="isDraggable"
            :is-resizable="isResizable"
            @layout-updated="layoutUpdatedEvent"
    >
        <grid-item v-for="(item, index) in layout"
            :x="item.x"
            :y="item.y"
            :w="item.w"
            :h="item.h"
            :i="item.i"
            :minW="minW"
            :minH="minH"
            :key="index"
            @resized="resize(item.i)">
            <slot name="chart" :item="item" :index="index"></slot>
        </grid-item>
    </grid-layout>
</template>
<script>
import VueGridLayout from 'vue-grid-layout';
// import Chart from "@/components/chart/index.vue";
export default {
    components: {
        GridLayout: VueGridLayout.GridLayout,
        GridItem: VueGridLayout.GridItem,
        // Chart
    },
    props: {
        // 布局?jǐn)?shù)據(jù)
        layout: {
            type: Array,
            default: () => []
        },
        // 是否可拖拽
        isDraggable: {
            type: Boolean,
            default: true
        },
        // 是否可改變大小
        isResizable: {
            type: Boolean,
            default: true
        },
        // 多少列
        colNum: {
            type: Number,
            default: 12
        },
        // 每行得高度
        rowHeight: {
            type: Number,
            default: 30
        },
        // 是否可鏡像反轉(zhuǎn)
        isMirrored: {
            type: Boolean,
            default: false
        },
        // 標(biāo)識布局是否垂直壓縮
        verticalCompact: {
            type: Boolean,
            default: true
        },
        // 定義柵格中的元素邊距
        margin: {
            type: Array,
            default: () => [10,10]
        },
        // 標(biāo)識是否使用CSS屬性 transition-property: transform;
        useCssTransforms: {
            type: Boolean,
            default: true
        },
        // 是否使用動(dòng)態(tài)鼠標(biāo)指針樣式
        useStyleCursor: {
            type: Boolean,
            default: true
        },
        // 元素最小寬
        minW: {
            type: Number,
            default: 1
        },
        // 最小高
        minH: {
            type: Number,
            default: 1
        },
        show: {
            type: Boolean,
            default: false
        }
    },
    data() {
        return {
            height: '',
            option: {},
            gridShow: false
        }
    },
    methods: {
        layoutUpdatedEvent(newLayout) {
            this.$emit('layoutUpdatedEvent',newLayout)
        },
        // 更新resize
        resize(i) {
            this.$emit('resize',i)
        }
    }
}
</script>
<style lang="scss" scoped>
:deep(.el-card__body) {
    height: 100%;
}
</style>

組件的調(diào)用

(主要是使用這塊 上面的直接復(fù)制即可)

<template>
    <div>
        <gridCanvas :layout="layout" @layoutUpdatedEvent="layoutUpdatedEvent" @resize="resize">
            <template #chart="{item,index}">
                <el-card v-if="show" ref="elCard" style="height: 100%" :key="item.i">
                    <Chart :ref="'echarts'+item.i" :chartsData="item.data" :radioShow="false" :height="'100%'" :id="index"></Chart>
                </el-card>
            </template>
        </gridCanvas>
    </div>
</template>
<script>
import gridCanvas from "@/components/gridCanvas/index.vue";
import Chart from "@/components/chart/index.vue";
export default {
    components: {
        gridCanvas,
        Chart
    },
    data() {
        return {
            show: false,
            layout: [
                {"x":0,"y":0,"w":6,"h":10,"i":"0",
                    data: {
                        descData: ["廣東省", "江蘇省", "北京市", "浙江省", "山東省", "四川省", "河南省", "上海市12345", "河北省", "其他", "福建省", "安徽省", "湖北省", "遼寧省"],
                        dis_type: "barh",
                        label_desc: "最近一次測試",
                        label_id: 5,
                        subtext: "99.99%",
                        text: "圖標(biāo)1",
                        xData: [2211, 333, 372, 226, 248, 218, 103, 199, 174, 177, 146, 148, 171, 162],
                        yData: ["廣東省", "江蘇省", "北京市", "浙江省", "山東省", "四川省", "河南省", "上海市", "河北省", "其他", "福建省", "安徽省", "湖北省", "遼寧省"],
                    }
                },
                {"x":4,"y":0,"w":4,"h":8,"i":"1",
                    data: {
                        descData: ["廣東省", "江蘇省", "北京市", "浙江省", "山東省", "四川省", "河南省", "上海市12345", "河北省", "其他", "福建省", "安徽省", "湖北省", "遼寧省"],
                        dis_type: "pie",
                        label_desc: "最近二次測試",
                        label_id: 5,
                        subtext: "99.99%",
                        text: "圖標(biāo)2",
                        xData: [810, 357, 372, 226, 248, 218, 193, 189, 174, 477, 146, 148, 131, 162],
                        yData: ["廣東省", "江蘇省", "北京市", "浙江省", "山東省", "四川省", "河南省", "上海市", "河北省", "其他", "福建省", "安徽省", "湖北省", "遼寧省"],
                    }
                },
                {"x":0,"y":5,"w":4,"h":8,"i":"6",
                    data: {
                        descData: ["廣東省", "江蘇省", "北京市", "浙江省", "山東省", "四川省", "河南省", "上海市12345", "河北省", "其他", "福建省", "安徽省", "湖北省", "遼寧省"],
                        dis_type: "bar",
                        label_desc: "最近三次測試",
                        label_id: 5,
                        subtext: "99.99%",
                        text: "圖標(biāo)3",
                        xData: [810, 377, 342, 286, 274, 219, 190, 199, 174, 147, 146, 438, 171, 162],
                        yData: ["廣東省", "江蘇省", "北京市", "浙江省", "山東省", "四川省", "河南省", "上海市", "河北省", "其他", "福建省", "安徽省", "湖北省", "遼寧省"],
                    }
                },
            ]
        }
    },
    methods: {
        // 拖拽之后觸發(fā)
        layoutUpdatedEvent(newLayout) {
            console.log(newLayout)
        },
        resize(i) {
            this.$nextTick(() => {
                const chart = eval(`this.$refs.echarts${i}`)
                if(chart) {
                    chart.resize()
                }
            })
        }
    },
    mounted() {
        setTimeout(() => {
            this.show = true
        })
    }
}
</script>
<style lang="scss" scoped>
:deep(.el-card__body) {
    height: 100%;
}
</style>

使用講解

直接引用我們自己封裝的組件 代碼中chart組件為我自己封裝的echarts組件,后續(xù)我會更新,你只需講chart組件換為你自己封裝的組件 其中#chart為插槽參數(shù) (其實(shí)就是每塊的數(shù)據(jù))layout變量為grid的核心數(shù)據(jù),分別代表x軸坐標(biāo)y軸坐標(biāo)寬度和高度其中data為你需要渲染的數(shù)據(jù) 還不能使用的

相關(guān)文章

  • vue3使用iframe嵌入ureport2設(shè)計(jì)器,解決預(yù)覽時(shí)NullPointerException異常問題

    vue3使用iframe嵌入ureport2設(shè)計(jì)器,解決預(yù)覽時(shí)NullPointerException異常問題

    這篇文章主要介紹了vue3使用iframe嵌入ureport2設(shè)計(jì)器,解決預(yù)覽時(shí)NullPointerException異常問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 探索Vue如何高效構(gòu)建可復(fù)用組件

    探索Vue如何高效構(gòu)建可復(fù)用組件

    Vue.js作為現(xiàn)代前端開發(fā)中的佼佼者,其組件系統(tǒng)是構(gòu)建高效、靈活和可擴(kuò)展用戶界面的關(guān)鍵,本文帶大家深度探索?Vue.js?組件的核心奧義,感興趣的小伙伴可以了解下
    2024-12-12
  • Element?ui中menu組件(el-menu/el-menu-item/el-submenu/template)層級結(jié)構(gòu)與用法示例

    Element?ui中menu組件(el-menu/el-menu-item/el-submenu/template)

    最近在使用Element開發(fā)時(shí)遇到了不少問題,下面這篇文章主要給大家介紹了關(guān)于Element?ui中menu組件(el-menu/el-menu-item/el-submenu/template)層級結(jié)構(gòu)與用法的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 淺析Vue3中的邏輯復(fù)用

    淺析Vue3中的邏輯復(fù)用

    這篇文章主要為大家詳細(xì)介紹了Vue3中邏輯復(fù)用的相關(guān)知識,文中的示例代碼簡潔易懂,對我們深入了解Vue3有一定的幫助,需要的小伙伴可以參考下
    2023-12-12
  • Vue+Openlayer使用modify修改要素的完整代碼

    Vue+Openlayer使用modify修改要素的完整代碼

    這篇文章主要介紹了Vue+Openlayer使用modify修改要素的完整代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • vuex5中的Pinia插件機(jī)制

    vuex5中的Pinia插件機(jī)制

    這篇文章主要介紹了vuex5中的Pinia插件機(jī)制,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue2、Vue3中的$scopedSlots和$slots區(qū)別小結(jié)

    Vue2、Vue3中的$scopedSlots和$slots區(qū)別小結(jié)

    本文主要介紹了Vue2、Vue3中的$scopedSlots和$slots區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-03-03
  • 基于vue編寫一個(gè)月餅連連看游戲

    基于vue編寫一個(gè)月餅連連看游戲

    中秋節(jié)快要到啦,我們一起用Vue創(chuàng)建一個(gè)簡單的連連看游戲,連連看大家一定都玩過吧,通過消除相同的圖案來清理棋盤,小編將一步步引導(dǎo)大家完成整個(gè)游戲的制作過程,讓我們開始吧,一起為中秋節(jié)增添一些互動(dòng)和娛樂
    2023-09-09
  • element el-tooltip動(dòng)態(tài)顯示隱藏(有省略號顯示,沒有省略號不顯示)

    element el-tooltip動(dòng)態(tài)顯示隱藏(有省略號顯示,沒有省略號不顯示)

    本文主要介紹了element el-tooltip動(dòng)態(tài)顯示隱藏,主要實(shí)現(xiàn)有省略號顯示,沒有省略號不顯示,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Vue element商品列表的增刪改功能實(shí)現(xiàn)

    Vue element商品列表的增刪改功能實(shí)現(xiàn)

    這篇文章主要介紹了Vue+element 商品列表、新增、編輯、刪除業(yè)務(wù)實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評論

白山市| 益阳市| 武威市| 广灵县| 兴城市| 连云港市| 大英县| 纳雍县| 新乐市| 清原| 太原市| 左云县| 鄂温| 寿阳县| 盐池县| 苗栗市| 神池县| 瓮安县| 永德县| 韩城市| 太和县| 莎车县| 察雅县| 江达县| 鄱阳县| 左云县| 乳山市| 金寨县| 乐平市| 临夏县| 尼玛县| 营口市| 宾阳县| 枞阳县| 浦县| 信丰县| 新兴县| 云安县| 武川县| 含山县| 株洲县|