springboot?vue測試前端項目管理列表分頁功能實現(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 個改動點:
方法傳參。
在上述定義的方法里,需要有 3 個傳參getList(current, size, data)。這里用到的參數(shù),都定義在return里:
這里都給了默認(rèn)值:projectName 為空,current=1,size=10。
獲取返回結(jié)果里的 list 。
原代碼里response.data.items,這里的items就是mock數(shù)據(jù)返回的 list。而我們實際接口返回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)的實體類的時間字段上添加:
@JsonFormat(timezone = "GMT+8",pattern="yyyy-MM-dd HH:mm:ss")
重新請求下:
格式正常了。
二、實現(xiàn)列表數(shù)據(jù)顯示
1. 使用element UI組件庫
原有的頁面代碼不能滿足我的項目列表需求,所以要換掉這里的代碼。
打開element UI組件庫,在table下尋找要用的組件。
點擊下方的【顯示代碼】,復(fù)制標(biāo)簽<template></template>,替換src/views/projectManagement/table.vue中的 template 代碼。
頁面已經(jīng)可以看到新效果了。
2. 修改復(fù)制來的代碼
(1)列表的屬性
首先修改:data="list",這是數(shù)據(jù)綁定,列表里就是要list里的數(shù)據(jù),因為從后端接口里拿到的數(shù)據(jù)存放在了list里。
另外還可以添加一些屬性,比如加載loading效果、當(dāng)前選中行高亮的等等。
這些屬性在對應(yīng)組件頁面的最下面都可以看到,可以根據(jù)自己的需要,添加對應(yīng)的屬性。
(2)修改表字段
在<el-table-column>標(biāo)簽里的屬性是作用于列的,比如:
- prop:填寫后端返回字段的名稱
- label:顯示的名字
- width:寬度
- align:居中顯示
這里的屬性就不一一列舉了,搜索就可以查到。
還有這個表是可以固定列的,直接拷貝的代碼進(jìn)行了列的固定,通過fixed屬性,這里我們不需要使用,先去掉。
按照這個改完之后,列表的顯示就有了。
三、實現(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ā)。這里就是點擊當(dāng)前頁的時候,會調(diào)用fetchData方法查詢列表。
2. 給分頁相關(guān)字段賦值
組件里使用:綁定到對應(yīng)的字段上,這些字段需要后端接口返回之后給它們賦值。
因為接口請求路徑參數(shù)里必須有值,所以寫了2個默認(rèn)的。
然后修改接口返回的代碼,賦值:
3. 關(guān)于 .sync 修飾符
上面提到的.sync修飾符,簡單來說是實現(xiàn)父子組件間值的傳遞。
這里的current-page我在父組件和子組件里都要用到:
子組件:被導(dǎo)入的組件。這里就是import { getList } from '@/api/projectManagement'中的getList。
父組件:就是引入該封裝的組件的文件叫做父組件,也就是這里的src/views/projectManagement/table.vue文件。
在子組件中,當(dāng)接口返回的時候需要賦值給current-page;而當(dāng)我點擊第2頁(值改變)的時候還要發(fā)起新的請求/bloomtest/project/list/2/10,所以需要使用.sync 修飾符。
可以在fetchData方法里打印一下current-page綁定的值,輸出到console中,看下兩者的不同:
(1)使用 .sync 修飾符
打開F12,刷新一下列表,再點擊一下分頁的第 2 頁,查看 console:
值改變了。
(2)不使用 .sync 修飾符
打開F12,刷新一下列表,再點擊一下分頁的第 2 頁,查看 console:
父組件、子組件之間的值沒有傳遞回去。
最終的效果實現(xiàn)。
以上就是springboot vue測試前端項目列表分頁功能實現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于springboot vue列表分頁的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java操作gaussDB數(shù)據(jù)庫的實現(xiàn)示例
本文主要介紹了java操作gaussDB數(shù)據(jù)庫的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07SpringCloud實現(xiàn)全鏈路灰度發(fā)布的示例詳解
灰度發(fā)布是指在軟件或服務(wù)發(fā)布過程中,將新版本的功能或服務(wù)以較小的比例引入到生產(chǎn)環(huán)境中,僅向部分用戶或節(jié)點提供新功能的一種發(fā)布策略,下面我們就來學(xué)習(xí)一下SpringCloud如何實現(xiàn)全鏈路灰度發(fā)布2023-11-11java 過濾器模式(Filter/Criteria Pattern)詳細(xì)介紹
這篇文章主要介紹了java 過濾器模式(Filter/Criteria Pattern)詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-10-10基于Lucene的Java搜索服務(wù)器Elasticsearch安裝使用教程
Elasticsearch也是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,能夠做到實時搜索,且穩(wěn)定、可靠、快速,安裝使用方便,這里我們就來看一下基于Lucene的Java搜索服務(wù)器Elasticsearch安裝使用教程:2016-06-06CompletableFuture創(chuàng)建及功能使用全面詳解
這篇文章主要為大家介紹了CompletableFuture創(chuàng)建及功能使用全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Jvm調(diào)優(yōu)和SpringBoot項目優(yōu)化的詳細(xì)教程
這篇文章主要介紹了Jvm調(diào)優(yōu)和SpringBoot項目優(yōu)化,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09