springboot?vue測(cè)試前端項(xiàng)目管理列表分頁(yè)功能實(shí)現(xiàn)
基于 springboot+vue 的測(cè)試平臺(tái)開發(fā)
繼續(xù)更新
今天來(lái)完成項(xiàng)目列表的前端部分。
一、前后端調(diào)通
開發(fā)前端頁(yè)面,框架里有 2 個(gè)地方需要改動(dòng):
- src/views: 這里是開發(fā)頁(yè)面的地方,也就是 vue 文件,可以按功能模塊新建子目錄來(lái)進(jìn)行分類。
- src/api: vue 頁(yè)面里請(qǐng)求的后端接口的js文件統(tǒng)一都寫在這里。
接下來(lái),針對(duì)項(xiàng)目列表接口localhost:8080/bloomtest/project/list/1/5,來(lái)改動(dòng)這兩處的代碼。
1. 請(qǐng)求后端接口
在src/api下,我新增一個(gè)js文件projectManagement.js,存放項(xiàng)目管理頁(yè)面中需要交互的后端請(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)來(lái)標(biāo)記 url,然后在其中使用${}`引用變量。
- 接收請(qǐng)求body:直接使用 data 來(lái)接收即可。
2. 項(xiàng)目列表頁(yè)面
在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)目列表頁(yè)看下前后端是否調(diào)通。

前后已通。
3. 調(diào)整接口返回的時(shí)間格式問(wèn)題
我在請(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ù)
原有的頁(yè)面代碼不能滿足我的項(xiàng)目列表需求,所以要換掉這里的代碼。
打開element UI組件庫(kù),在table下尋找要用的組件。

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

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

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

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

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

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

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

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

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

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

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

3. 關(guān)于 .sync 修飾符
上面提到的.sync修飾符,簡(jiǎn)單來(lái)說(shuō)是實(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頁(yè)(值改變)的時(shí)候還要發(fā)起新的請(qǐng)求/bloomtest/project/list/2/10,所以需要使用.sync 修飾符。
可以在fetchData方法里打印一下current-page綁定的值,輸出到console中,看下兩者的不同:

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

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

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

最終的效果實(shí)現(xiàn)。
以上就是springboot vue測(cè)試前端項(xiàng)目列表分頁(yè)功能實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于springboot vue列表分頁(yè)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java雙向鏈表按照順序添加節(jié)點(diǎn)的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Java雙向鏈表按照順序添加節(jié)點(diǎn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
java操作gaussDB數(shù)據(jù)庫(kù)的實(shí)現(xiàn)示例
本文主要介紹了java操作gaussDB數(shù)據(jù)庫(kù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Mybatis動(dòng)態(tài)SQL的實(shí)現(xiàn)示例
這篇文章主要介紹了Mybatis動(dòng)態(tài)SQL的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
SpringCloud實(shí)現(xiàn)全鏈路灰度發(fā)布的示例詳解
灰度發(fā)布是指在軟件或服務(wù)發(fā)布過(guò)程中,將新版本的功能或服務(wù)以較小的比例引入到生產(chǎn)環(huán)境中,僅向部分用戶或節(jié)點(diǎn)提供新功能的一種發(fā)布策略,下面我們就來(lái)學(xué)習(xí)一下SpringCloud如何實(shí)現(xiàn)全鏈路灰度發(fā)布2023-11-11
java 過(guò)濾器模式(Filter/Criteria Pattern)詳細(xì)介紹
這篇文章主要介紹了java 過(guò)濾器模式(Filter/Criteria Pattern)詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-10-10
基于Lucene的Java搜索服務(wù)器Elasticsearch安裝使用教程
Elasticsearch也是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,能夠做到實(shí)時(shí)搜索,且穩(wěn)定、可靠、快速,安裝使用方便,這里我們就來(lái)看一下基于Lucene的Java搜索服務(wù)器Elasticsearch安裝使用教程:2016-06-06
CompletableFuture創(chuàng)建及功能使用全面詳解
這篇文章主要為大家介紹了CompletableFuture創(chuàng)建及功能使用全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
Jvm調(diào)優(yōu)和SpringBoot項(xiàng)目?jī)?yōu)化的詳細(xì)教程
這篇文章主要介紹了Jvm調(diào)優(yōu)和SpringBoot項(xiàng)目?jī)?yōu)化,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09

