springboot?vue測(cè)試前端項(xiàng)目管理列表分頁功能實(shí)現(xiàn)
基于 springboot+vue 的測(cè)試平臺(tái)開發(fā)
繼續(xù)更新
今天來完成項(xiàng)目列表的前端部分。
一、前后端調(diào)通
開發(fā)前端頁面,框架里有 2 個(gè)地方需要改動(dòng):
- src/views: 這里是開發(fā)頁面的地方,也就是 vue 文件,可以按功能模塊新建子目錄來進(jìn)行分類。
- src/api: vue 頁面里請(qǐng)求的后端接口的js文件統(tǒng)一都寫在這里。
接下來,針對(duì)項(xiàng)目列表接口localhost:8080/bloomtest/project/list/1/5,來改動(dòng)這兩處的代碼。
1. 請(qǐng)求后端接口
在src/api下,我新增一個(gè)js文件projectManagement.js,存放項(xiàng)目管理頁面中需要交互的后端請(qǐng)求。
import request from '@/utils/request'
export function getList(current, size, data) {
return request({
url: `/bloomtest/project/list/${current}/${size}`,
method: 'post',
data: data
})
}這里需要注意的是,我這個(gè)接口請(qǐng)求既有路徑上的參數(shù),也有請(qǐng)求body的參數(shù):
- 接收路徑參數(shù):使用****符號(hào)來標(biāo)記 url,然后在其中使用${}`引用變量。
- 接收請(qǐng)求body:直接使用 data 來接收即可。
2. 項(xiàng)目列表頁面
在src/views新建一個(gè)目錄projectManagement,在目錄下直接 copy 框架原有 table 目錄下的index.vue文件,重命名為table.vue。
接著在src/views/projectManagement/table.vue中修改代碼,調(diào)通接口。
這里先修改導(dǎo)入的方法:import { getList } from '@/api/projectManagement'。

然后修改 methods 里的fetchData()方法,導(dǎo)入的 getList 方法就在這里被調(diào)用。

這里又有 2 個(gè)改動(dòng)點(diǎn):
方法傳參。
在上述定義的方法里,需要有 3 個(gè)傳參getList(current, size, data)。這里用到的參數(shù),都定義在return里:

這里都給了默認(rèn)值:projectName 為空,current=1,size=10。
獲取返回結(jié)果里的 list 。
原代碼里response.data.items,這里的items就是mock數(shù)據(jù)返回的 list。而我們實(shí)際接口返回list的字段叫records。

所以最終的代碼改為:
methods: {
fetchData() {
this.listLoading = true;
getList(this.currentPage, this.size, this.projectQuery).then(response => {
this.list = response.data.records;
this.listLoading = false
})
}
}打開 F12 ,刷新項(xiàng)目列表頁看下前后端是否調(diào)通。

前后已通。
3. 調(diào)整接口返回的時(shí)間格式問題
我在請(qǐng)求列表接口后,看到返回的時(shí)間格式不對(duì)勁。

這里需要轉(zhuǎn)化一下格式,在對(duì)應(yīng)的實(shí)體類的時(shí)間字段上添加:
@JsonFormat(timezone = "GMT+8",pattern="yyyy-MM-dd HH:mm:ss")

重新請(qǐng)求下:

格式正常了。
二、實(shí)現(xiàn)列表數(shù)據(jù)顯示
1. 使用element UI組件庫(kù)
原有的頁面代碼不能滿足我的項(xiàng)目列表需求,所以要換掉這里的代碼。
打開element UI組件庫(kù),在table下尋找要用的組件。

點(diǎn)擊下方的【顯示代碼】,復(fù)制標(biāo)簽<template></template>,替換src/views/projectManagement/table.vue中的 template 代碼。

頁面已經(jīng)可以看到新效果了。
2. 修改復(fù)制來的代碼

(1)列表的屬性
首先修改:data="list",這是數(shù)據(jù)綁定,列表里就是要list里的數(shù)據(jù),因?yàn)閺暮蠖私涌诶锬玫降臄?shù)據(jù)存放在了list里。

另外還可以添加一些屬性,比如加載loading效果、當(dāng)前選中行高亮的等等。

這些屬性在對(duì)應(yīng)組件頁面的最下面都可以看到,可以根據(jù)自己的需要,添加對(duì)應(yīng)的屬性。

(2)修改表字段
在<el-table-column>標(biāo)簽里的屬性是作用于列的,比如:

- prop:填寫后端返回字段的名稱
- label:顯示的名字
- width:寬度
- align:居中顯示
這里的屬性就不一一列舉了,搜索就可以查到。
還有這個(gè)表是可以固定列的,直接拷貝的代碼進(jìn)行了列的固定,通過fixed屬性,這里我們不需要使用,先去掉。

按照這個(gè)改完之后,列表的顯示就有了。

三、實(shí)現(xiàn)分頁
1.使用 組件
同樣是去 element UI尋找組件,然后 copy 代碼修改,就使用這個(gè)吧。

把這段拷過來,修改代碼,最終是這樣:
<el-pagination
layout="total, prev, pager, next"
:page-size="size"
:current-page.sync="currentPage"
:total="total"
@current-change="fetchData"
/>介紹下分頁組件:
- layout:表示需要顯示的內(nèi)容,用逗號(hào)分隔,布局元素會(huì)依次顯示。prev 表示上一頁,next 為下一頁,
- pager 表示頁碼列表,除此以外還提供了jumper跳頁和 total 總數(shù)。
- page-size: 每頁顯示條目個(gè)數(shù),支持.sync修飾符。
- current-page: 當(dāng)前頁數(shù),支持.sync修飾符。
- total: 總條目數(shù)。
- current-change: 事件,currentPage改變時(shí)會(huì)觸發(fā)。這里就是點(diǎn)擊當(dāng)前頁的時(shí)候,會(huì)調(diào)用fetchData方法查詢列表。
2. 給分頁相關(guān)字段賦值
組件里使用:綁定到對(duì)應(yīng)的字段上,這些字段需要后端接口返回之后給它們賦值。

因?yàn)榻涌谡?qǐng)求路徑參數(shù)里必須有值,所以寫了2個(gè)默認(rèn)的。
然后修改接口返回的代碼,賦值:

3. 關(guān)于 .sync 修飾符
上面提到的.sync修飾符,簡(jiǎn)單來說是實(shí)現(xiàn)父子組件間值的傳遞。
這里的current-page我在父組件和子組件里都要用到:
子組件:被導(dǎo)入的組件。這里就是import { getList } from '@/api/projectManagement'中的getList。
父組件:就是引入該封裝的組件的文件叫做父組件,也就是這里的src/views/projectManagement/table.vue文件。
在子組件中,當(dāng)接口返回的時(shí)候需要賦值給current-page;而當(dāng)我點(diǎn)擊第2頁(值改變)的時(shí)候還要發(fā)起新的請(qǐng)求/bloomtest/project/list/2/10,所以需要使用.sync 修飾符。
可以在fetchData方法里打印一下current-page綁定的值,輸出到console中,看下兩者的不同:

(1)使用 .sync 修飾符
打開F12,刷新一下列表,再點(diǎn)擊一下分頁的第 2 頁,查看 console:

值改變了。
(2)不使用 .sync 修飾符
打開F12,刷新一下列表,再點(diǎn)擊一下分頁的第 2 頁,查看 console:

父組件、子組件之間的值沒有傳遞回去。

最終的效果實(shí)現(xiàn)。
以上就是springboot vue測(cè)試前端項(xiàng)目列表分頁功能實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于springboot vue列表分頁的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot服務(wù)端數(shù)據(jù)校驗(yàn)過程詳解
這篇文章主要介紹了SpringBoot服務(wù)端數(shù)據(jù)校驗(yàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
SpringBoot中利用MyBatis進(jìn)行數(shù)據(jù)操作的示例
這篇文章主要介紹了SpringBoot中利用MyBatis進(jìn)行數(shù)據(jù)操作,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09
springboot3.x版本集成log4j遇到Logging?system?failed?to?initial
使用Springboot?3.x集成Log4j時(shí)可能會(huì)遇到版本沖突的問題,這通常可以通過檢查Maven依賴樹來識(shí)別,一旦發(fā)現(xiàn)沖突,將Log4j的版本統(tǒng)一更新到最新的兼容版本,例如2.21.1,即可解決問題,此方法有效解決了日志打印錯(cuò)誤,是處理類似問題的一個(gè)實(shí)用參考2024-09-09
SpringBoot3整合 Elasticsearch 8.x 使用Repository構(gòu)
我們構(gòu)建了一個(gè)完整的 Spring Boot 3 和 Elasticsearch 8.x 的增刪改查示例應(yīng)用,使用 Spring Data Elasticsearch Repository,我們能夠快速實(shí)現(xiàn)對(duì) Elasticsearch 的基本 CRUD 操作,簡(jiǎn)化了開發(fā)流程,希望這個(gè)示例能夠幫助你理解如何在項(xiàng)目中有效使用 Elasticsearch!2024-11-11
使用JPA自定義VO類型轉(zhuǎn)換(EntityUtils工具類)
這篇文章主要介紹了使用JPA自定義VO類型轉(zhuǎn)換(EntityUtils工具類),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
關(guān)于mybatis-plus邏輯刪除自動(dòng)填充更新時(shí)間的問題
mybatis-plus是對(duì)mybatis的增強(qiáng),mybatis-plus更像是面向?qū)ο缶幊?,?shù)據(jù)庫(kù)基本CRUD的操作可以不用手動(dòng)編寫SQL語句,大大提高了開發(fā)的效率,這篇文章主要介紹了mybatis-plus邏輯刪除自動(dòng)填充更新時(shí)間問題,需要的朋友可以參考下2022-07-07
Spring整合Kaptcha谷歌驗(yàn)證碼工具的開發(fā)步驟
這篇文章主要介紹了Spring整合Kaptcha谷歌驗(yàn)證碼工具的開發(fā)步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01

