一、案例描述
若依官網(wǎng)文檔地址:http://doc.ruoyi.vip/ruoyi/document/hjbs.html
本教程主要內(nèi)容,自定義數(shù)據(jù)庫表,使用若依開源系統(tǒng)生成代碼并配置權(quán)限。
- 若依環(huán)境配置
- 新建數(shù)據(jù)表t_user,利用若依代碼生成工具生成服務(wù)端及頁面代碼。
- 菜單配置
- 權(quán)限配置
二、若依環(huán)境搭建
選用ry-vue版本,項(xiàng)目地址:https://gitee.com/y_project/RuoYi-Vue.git
-
本地新建數(shù)據(jù)庫ry-vue,使用項(xiàng)目中的ry_20230706.sql和quartz.sql初始化數(shù)據(jù)庫表及數(shù)據(jù)。
-
修改項(xiàng)目中application-druid.yml的數(shù)據(jù)庫連接串。
-
啟動SpringBoot服務(wù)端,管理后臺所在路徑是ruoyi-admin,默認(rèn)端口是8080。

-
啟動前端項(xiàng)目,目錄是ruoyi-ui。命令行是
npm install
npm run dev
二、代碼生成
- 新建表
CREATE TABLE `t_user` (
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`name` varchar(30) NOT NULL DEFAULT '' COMMENT '姓名',
`age` int(11) NULL DEFAULT NULL COMMENT '年齡',
`gender` tinyint(2) NOT NULL DEFAULT 0 COMMENT '性別,0:女 1:男',
PRIMARY KEY (`id`)
) COMMENT = '用戶表';
-
在系統(tǒng)工具->代碼生成頁面,導(dǎo)入表t_user
-
編輯生成工具


-
生成壓縮包,解壓復(fù)制到相應(yīng)的目錄。
三、若依后臺配置菜單
我們新定義兩級菜單“自定義>>外包用戶管理”。這個操作比較簡單,如下圖所示:


要注意的是路由地址和組件路徑,要與項(xiàng)目中的路徑一致。
重啟項(xiàng)目看效果:

四、權(quán)限配置
我們新配置一個賬戶jingyes,專門用于管理外包用戶。
-
先新增角色 外包管理,菜單權(quán)限對應(yīng)我們剛剛新加的菜單。

-
添加用戶,角色設(shè)置為剛剛新增的 外包管理員
注意:用戶名稱是登錄賬號,用戶昵稱是個稱呼,我一開始就搞反了。

-
使用新的用戶賬號登錄,左側(cè)菜單展示正常,但是頁面中沒有操作按鈕。

-
為了正常使用操作按鈕,我們需要為每個操作配置對應(yīng)的權(quán)限菜單。首先看下TUserController中有哪些action需要配置權(quán)限,然后在菜單管理中配置相應(yīng)的按鈕。
@RestController
@RequestMapping("/jingyes/tuser")
public class TUserController extends BaseController
{
@Autowired
private ITUserService tUserService;
/**
* 查詢用戶列表
*/
@PreAuthorize("@ss.hasPermi('jingyes:tuser:list')")
@GetMapping("/list")
public TableDataInfo list(TUser tUser)
{
startPage();
List<TUser> list = tUserService.selectTUserList(tUser);
return getDataTable(list);
}
/**
* 導(dǎo)出用戶列表
*/
@PreAuthorize("@ss.hasPermi('jingyes:tuser:export')")
@Log(title = "用戶", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, TUser tUser)
{
List<TUser> list = tUserService.selectTUserList(tUser);
ExcelUtil<TUser> util = new ExcelUtil<TUser>(TUser.class);
util.exportExcel(response, list, "用戶數(shù)據(jù)");
}
/**
* 獲取用戶詳細(xì)信息
*/
@PreAuthorize("@ss.hasPermi('jingyes:tuser:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(tUserService.selectTUserById(id));
}
/**
* 新增用戶
*/
@PreAuthorize("@ss.hasPermi('jingyes:tuser:add')")
@Log(title = "用戶", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody TUser tUser)
{
return toAjax(tUserService.insertTUser(tUser));
}
/**
* 修改用戶
*/
@PreAuthorize("@ss.hasPermi('jingyes:tuser:edit')")
@Log(title = "用戶", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TUser tUser)
{
return toAjax(tUserService.updateTUser(tUser));
}
/**
* 刪除用戶
*/
@PreAuthorize("@ss.hasPermi('jingyes:tuser:remove')")
@Log(title = "用戶", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(tUserService.deleteTUserByIds(ids));
}
}
例如新增按鈕,權(quán)限配置如下圖所示,權(quán)限字符要和代碼中對應(yīng)。其他都類似

添加完成后的效果如下,總共配置了這些操作按鈕的權(quán)限。

-
最后記得給外包管理員的角色勾選上這些權(quán)限

-
再次切換賬號登錄,頁面功能已經(jīng)ok。

本人公眾號[ 敬YES ]同步更新,歡迎大家關(guān)注~

作者:陳敬(公眾號:敬YES)
出處:http://www.rzrgm.cn/janes/
博客文章僅供交流學(xué)習(xí),請勿用于商業(yè)用途。如需轉(zhuǎn)載,請務(wù)必注明出處。
浙公網(wǎng)安備 33010602011771號