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

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

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

重新請求下:

格式正常了。
二、實(shí)現(xiàn)列表數(shù)據(jù)顯示
1. 使用element UI組件庫
原有的頁面代碼不能滿足我的項目列表需求,所以要換掉這里的代碼。
打開element UI組件庫,在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)前選中行高亮的等等。

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

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

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

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

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

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

因?yàn)榻涌谡埱舐窂絽?shù)里必須有值,所以寫了2個默認(rèn)的。
然后修改接口返回的代碼,賦值:

3. 關(guān)于 .sync 修飾符
上面提到的.sync修飾符,簡單來說是實(shí)現(xiàn)父子組件間值的傳遞。
這里的current-page我在父組件和子組件里都要用到:
子組件:被導(dǎo)入的組件。這里就是import { getList } from '@/api/projectManagement'中的getList。
父組件:就是引入該封裝的組件的文件叫做父組件,也就是這里的src/views/projectManagement/table.vue文件。
在子組件中,當(dāng)接口返回的時候需要賦值給current-page;而當(dāng)我點(diǎn)擊第2頁(值改變)的時候還要發(fā)起新的請求/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測試前端項目列表分頁功能實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于springboot vue列表分頁的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot服務(wù)端數(shù)據(jù)校驗(yàn)過程詳解
這篇文章主要介紹了SpringBoot服務(wù)端數(shù)據(jù)校驗(yàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-02-02
SpringBoot中利用MyBatis進(jìn)行數(shù)據(jù)操作的示例
這篇文章主要介紹了SpringBoot中利用MyBatis進(jìn)行數(shù)據(jù)操作,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09
springboot3.x版本集成log4j遇到Logging?system?failed?to?initial
使用Springboot?3.x集成Log4j時可能會遇到版本沖突的問題,這通??梢酝ㄟ^檢查Maven依賴樹來識別,一旦發(fā)現(xiàn)沖突,將Log4j的版本統(tǒng)一更新到最新的兼容版本,例如2.21.1,即可解決問題,此方法有效解決了日志打印錯誤,是處理類似問題的一個實(shí)用參考2024-09-09
SpringBoot3整合 Elasticsearch 8.x 使用Repository構(gòu)
我們構(gòu)建了一個完整的 Spring Boot 3 和 Elasticsearch 8.x 的增刪改查示例應(yīng)用,使用 Spring Data Elasticsearch Repository,我們能夠快速實(shí)現(xiàn)對 Elasticsearch 的基本 CRUD 操作,簡化了開發(fā)流程,希望這個示例能夠幫助你理解如何在項目中有效使用 Elasticsearch!2024-11-11
使用JPA自定義VO類型轉(zhuǎn)換(EntityUtils工具類)
這篇文章主要介紹了使用JPA自定義VO類型轉(zhuǎn)換(EntityUtils工具類),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
關(guān)于mybatis-plus邏輯刪除自動填充更新時間的問題
mybatis-plus是對mybatis的增強(qiáng),mybatis-plus更像是面向?qū)ο缶幊蹋瑪?shù)據(jù)庫基本CRUD的操作可以不用手動編寫SQL語句,大大提高了開發(fā)的效率,這篇文章主要介紹了mybatis-plus邏輯刪除自動填充更新時間問題,需要的朋友可以參考下2022-07-07
Spring整合Kaptcha谷歌驗(yàn)證碼工具的開發(fā)步驟
這篇文章主要介紹了Spring整合Kaptcha谷歌驗(yàn)證碼工具的開發(fā)步驟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01

