JeecgBoot代碼生成器自定義請求接口實(shí)例
按鈕效果圖展示
想要實(shí)現(xiàn)一個(gè)在使用代碼生成器生成的頁面,在Table表格實(shí)現(xiàn)啟用/停用來回切換

代碼生成器的原生表單
JeecgBoot這款框架對新手十分不友好 想看代碼得一個(gè)一個(gè)去細(xì)找。(學(xué)藝不精)
這是我經(jīng)過許久研究出來的我的按鈕寫在了使用代碼生成器生成出來的頁面進(jìn)行添加的。
?請使用原生表單,至少這個(gè)看起來,不是那么復(fù)雜。

請求缺少的東西
正常寫請求可以請求到,但是后臺會(huì)返回給你身份認(rèn)證失敗,在F12仔細(xì)觀察后會(huì)發(fā)現(xiàn)你自己寫的少了一個(gè)請求標(biāo)頭的token他是關(guān)鍵。
這是一個(gè)點(diǎn)擊啟用、停用的操作欄link按鈕就跟定時(shí)任務(wù)的頁面啟用停用一樣,只是找不到相應(yīng)的代碼沒法復(fù)制就研究了一個(gè)。
缺少X-Access-Token自己寫的接口并沒有token。導(dǎo)致前端顯示401后端顯示身份認(rèn)證失敗。

代碼部分(關(guān)鍵的來啦)
代碼生成器頁面的List.vue的頁面
const API_ENDPOINT = '/jeecgboot/regulatory_conditions/supervision/edit' //請求編輯的修改狀態(tài)開關(guān)接口
async function updateRecordStatus(recordId: number, warningStatus: string): Promise<void> {
const token = getToken(); //獲取自身token,可以打印測試一下。
const data = {id: recordId, warningStatus: warningStatus};
const config = { headers: { 'X-Access-Token': `${token}`}};
let str = JSON.stringify(data)
console.log("asd:> " + str) //此處是來回檢查寫的 可以不寫
try {
await axios.post(API_ENDPOINT,data,config);
} catch (error) {
console.error('錯(cuò)誤信息: ', error);
}
}
async function toggleStatus(record: {id: number, warningStatus: string}, isEnabled: boolean): Promise<void> {
const newStatus = isEnabled ? 'Y' : 'N';
if (record.warningStatus !== newStatus){
try {
await updateRecordStatus(record.id, newStatus);
record.warningStatus = newStatus;
} catch (error) {
console.log('失敗記錄: ',error);
}
}
}
function getTableAction(record: {id: number, warningStatus: string}) {
const isDisabled = record.warningStatus === 'Y';
return [
{
label: isDisabled ? '停用' : '啟用',
onClick: ()=> toggleStatus(record, !isDisabled).catch(error => console.error('錯(cuò)誤: ', error)),
auth: 'regulatory_conditions:supervision:editEnable' //權(quán)限
}
];
}
當(dāng)然有前端代碼就有后端代碼必須全乎
//其實(shí)就是正常寫接口對應(yīng)上就行
@RequiresPermissions("regulatory_conditions:supervision:editEnable") //權(quán)限
@RequestMapping(value = "/editEnable", method = {RequestMethod.PUT,RequestMethod.POST})
@ApiOperation(value = "啟動(dòng)定時(shí)任務(wù)")
public Result<Object> startJob(@RequestBody Supervision supervision) throws SchedulerException {
// System.out.println("測試>>>>>>>>>>>>>>>>>>>>---------------------");
jobService.EnableTask(supervision);
return Result.ok("啟動(dòng)定時(shí)任務(wù)成功");
}
JeecgBoot其他配置
這些配置完后,只是可以請求了,還有還有一些其他的潛在危險(xiǎn)。
找到菜單管理,以及你的按鈕頁面添加下級。

按鈕/權(quán)限就是名稱隨便填。

這個(gè)添加完后在找到角色管理給你的用戶進(jìn)行授權(quán)
然后就去查看你的按鈕是否生效,按鈕不出現(xiàn)退出系統(tǒng)重新登錄,記得授權(quán)按鈕關(guān)掉看是否顯示如果不顯示就證明生效了。
數(shù)據(jù)字典也是非常有用的東西可以多多查看
至此所有東西就完成了。

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中的相除(/)和取余(%)的實(shí)現(xiàn)方法
這篇文章主要介紹了Java中的相除(/)和取余(%)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
使用dubbo+zookeeper+spring boot構(gòu)建服務(wù)的方法詳解
這篇文章主要給大家介紹了關(guān)于如何使用dubbo+zookeeper+spring boot構(gòu)建服務(wù)的相關(guān)資料,文中通過示例代碼及圖片介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05
Java特性?Lambda?表達(dá)式和函數(shù)式接口
這篇文章主要介紹了Java特性?Lambda?表達(dá)式和函數(shù)式接口,Lambda表達(dá)式基于函數(shù)式編程思想,也可以稱為閉包,是Java?8引入的重要新特性,?Lambda允許把函數(shù)作為一個(gè)方法的參數(shù)2022-06-06
IDEA生成servlet程序的實(shí)現(xiàn)步驟
這篇文章主要介紹了IDEA生成servlet程序的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
關(guān)于feign接口動(dòng)態(tài)代理源碼解析
這篇文章主要介紹了關(guān)于feign接口動(dòng)態(tài)代理源碼解析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
java ThreadPool線程池的使用,線程池工具類用法說明
這篇文章主要介紹了java ThreadPool線程池的使用,線程池工具類用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
SpringBoot整合Elasticsearch?8.x的實(shí)戰(zhàn)總結(jié)(附完整示例)
Elasticsearch(簡稱 ES)是當(dāng)前最流行的分布式搜索引擎,具備強(qiáng)大的全文檢索與數(shù)據(jù)分析能力,本文基于官方文檔與實(shí)戰(zhàn)經(jīng)驗(yàn),系統(tǒng)總結(jié) ?Spring Boot 整合 Elasticsearch 8.x 的核心要點(diǎn)、版本選型和三種主流實(shí)現(xiàn)方式,感興趣的小伙伴可以了解下2026-03-03

