日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

《若依ruoyi》第十四章:Ruoyi 代碼生成(低代碼)vue邏輯詳解三(若依vue教程)

繼續(xù)上一章節(jié)進(jìn)行講解

1、vue table的分頁模式

分頁界面實(shí)現(xiàn)效果圖如下

《若依ruoyi》第十四章:Ruoyi 代碼生成(低代碼)vue邏輯詳解三(若依vue教程)

對應(yīng)代碼片段并針對代碼進(jìn)行說明

<Pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>

v-show="total>0" //當(dāng)total大于0,組件才顯示

:total="total" //綁定變量,總記錄數(shù)

:page.sync="queryParams.pageNum" //顯示的第幾頁

:limit.sync="queryParams.pageSize" //每頁顯示的數(shù)量

@pagination="getList" //綁定的函數(shù),點(diǎn)擊分頁后觸發(fā)的函數(shù)

2、若依分頁組件封裝

若依對分頁做成一個(gè)封裝組件,所以頁面直接引入就可以。在我們研讀代碼中,并沒有直接 import分頁組件的代碼,下面是原因。

作者在mian.js 通過下面兩行代碼直接引入作為全局組件,所以在局部的也沒就不需要重復(fù)

import

// 分頁組件import Pagination from "@/components/Pagination";Vue.component('Pagination', Pagination)

分頁組件代碼路徑/src/components/Pagination

props: { total: { required: true, type: Number }, page: { type: Number, default: 1 }, limit: { type: Number, default: 20 }, pageSizes: { type: Array, default() { return [10, 20, 30, 50] } }, // 移動(dòng)端頁碼按鈕的數(shù)量端默認(rèn)值5 pagerCount: { type: Number, default: document.body.clientWidth < 992 ? 5 : 7 }, layout: { type: String, default: 'total, sizes, prev, pager, next, jumper' }, background: { type: Boolean, default: true }, autoScroll: { type: Boolean, default: true }, hidden: { type: Boolean, default: false }},

分頁作為組件,需要外部傳入?yún)?shù),其中組件里面props就是定義外部入?yún)ⅲ?total參數(shù)中的required是true,表示total是必傳,type是Number,表示total的數(shù)據(jù)類型是數(shù)字,如果傳入中文等會(huì)出現(xiàn)異常

封裝的分頁組件最終使用element ui 的分頁組件,具體組件連接參考https://element.eleme.cn/#/zh-CN/component/pagination#dai-you-bei-jing-se-de-fen-ye

<el-pagination :background="background" :current-page.sync="currentPage" :page-size.sync="pageSize" :layout="layout" :page-sizes="pageSizes" :pager-count="pagerCount" :total="total" v-bind="$attrs" @size-change="handleSizeChange" @current-change="handleCurrentChange"/>

@size-change="handleSizeChange" 當(dāng)選擇的頁數(shù)改變,分頁組件會(huì)調(diào)用handleSizeChange函數(shù),handleSizeChange函數(shù)具體實(shí)現(xiàn)如下

handleSizeChange(val) { if (this.currentPage * val > this.total) { this.currentPage = 1 } this.$emit('pagination', { page: this.currentPage, limit: val }) if (this.autoScroll) { scrollTo(0, 800) }},

其中this.$emit('pagination', { page: this.currentPage, limit: val })是回調(diào)父組件的pagination函數(shù)

<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>

從index的分頁代碼可以看出分頁組件handleSizeChange會(huì)調(diào)用@pagination函數(shù),index的pagination函數(shù)賦值是getList函數(shù),所以最終執(zhí)行函數(shù)是getList

3、預(yù)覽界面

界面效果圖如下,彈出窗口,窗口包含幾個(gè)tab,實(shí)現(xiàn)的功能是可以進(jìn)行生成代碼結(jié)果進(jìn)行預(yù)覽

《若依ruoyi》第十四章:Ruoyi 代碼生成(低代碼)vue邏輯詳解三(若依vue教程)

代碼實(shí)現(xiàn)如下

<!-- 預(yù)覽界面 --><el-dialog :title="preview.title" :visible.sync="preview.open" width="80%" top="5vh" append-to-body class="scrollbar"> <el-tabs v-model="preview.activeName"> <el-tab-pane v-for="(value, key) in preview.data" :label="key.substring(key.lastIndexOf('/') 1,key.indexOf('.vm'))" :name="key.substring(key.lastIndexOf('/') 1,key.indexOf('.vm'))" :key="key" > <el-link :underline="false" icon="el-icon-document-copy" v-clipboard:copy="value" v-clipboard:success="clipboardSuccess" style="float:right">復(fù)制</el-link> <pre><code class="hljs" v-html="highlightedCode(value, key)"></code></pre> </el-tab-pane> </el-tabs></el-dialog>

下面對el-dialog和el-tabs標(biāo)簽進(jìn)行解說

適用場景

新增和編輯操作想要以彈框的方式顯示,使用到el-dialog

知識點(diǎn)

el-dialog的title屬性設(shè)置標(biāo)題

el-dialog的visible.sync屬性控制彈框的顯示

el-dialog的append-to-body屬性支持彈框中繼續(xù)打開彈框

el-dialog的before-close屬性關(guān)閉按鈕的鉤子

span的slot='footer'屬性彈框底部設(shè)置

el-dialog的center屬性標(biāo)題和底部居中顯示

官網(wǎng)地址:https://element.eleme.cn/#/zh-CN/component/dialog

適用場景

與導(dǎo)航欄相似,項(xiàng)目中常見的是點(diǎn)擊某個(gè)導(dǎo)航欄,主頁面(el-main)模塊的最上方會(huì)顯示我們的標(biāo)簽欄集合,點(diǎn)擊不同的導(dǎo)航欄,標(biāo)簽欄會(huì)在不斷追加,若點(diǎn)擊到標(biāo)簽集合中已存在,就進(jìn)入選中指定的標(biāo)簽欄,顯示頁面

知識點(diǎn)

el-tabs嵌套el-tab-pane使用

el-tabs的v-model對應(yīng)el-tab-pane的name

el-tabs的type可以指定為card,border-card

el-tab-pane的label為顯示的標(biāo)簽內(nèi)容,標(biāo)簽的內(nèi)容在首尾標(biāo)簽內(nèi)部

el-tabs可以設(shè)置closable,editable,addable,分別設(shè)置tab-remove,edit,tab-add動(dòng)態(tài)修改標(biāo)簽集合

還有tab-click鉤子

el-tabs中設(shè)置tab-position,修改標(biāo)簽位置,可以為top,bottom,left,right

官網(wǎng)地址:https://element.eleme.cn/#/zh-CN/component/tabs

4、未來計(jì)劃

1、ruoyi非分離版本拆解

2、ruoyi-vue-pro:講解工作流

3、ruoyi-vue-pro:支付模塊,電商模塊

4、基于ruoyi-vue-pro項(xiàng)目開發(fā)

5、JEECG低代碼開發(fā)平臺

請關(guān)注我,本星球會(huì)持續(xù)推出更多的開源項(xiàng)目代碼解析,如有更好的意見請留言回復(fù)或者私信

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部
奈曼旗| 宿州市| 开封县| 梅州市| 靖西县| 巴彦县| 溆浦县| 弥勒县| 蓝山县| 宁河县| 灵山县| 措美县| 平阴县| 洛宁县| 鸡泽县| 福安市| 屯昌县| 阿拉善盟| 重庆市| 内江市| 石柱| 衡东县| 克什克腾旗| 栖霞市| 丹棱县| 江安县| 公安县| 郑州市| 长兴县| 平遥县| 巴林左旗| 武乡县| 香港 | 河间市| 兖州市| 桦甸市| 金坛市| 武邑县| 满洲里市| 正安县| 渭源县|