范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

springboot3。0。4RBAC(3)用户和角色及view3HOOK

  我们对接过了菜单列表,这次来对接用户,和之前一样@RestController @RequestMapping("/sys/user") public class SysUserController {     @Autowired     SysUserService sysUserService;      @GetMapping("page")     public JSObject> page(@ApiIgnore @RequestParam Map params){         PageData page = sysUserService.page(params);          return new JSObject>().ok(page);     }  }
  对应的前端代码    
  我们发现这样写代码,有好多共同点,后端我们已经用了代码生成,可以一键生成,但是前端还要每次都写一次,有些不优雅,所以这边定义了一个hookimport { IObject, IViewHooks, IViewHooksOptions } from "@/../types/interface"; import { http } from "@/utils/http"; import { onMounted } from "vue";  const useView = (props: IViewHooksOptions | IObject): IViewHooks => {    const defaultOptions: IViewHooksOptions = {     createdIsNeed: true,     activatedIsNeed: false,     getDataListURL: "",     getDataListIsPage: false,     deleteURL: "",     deleteIsBatch: false,     deleteIsBatchKey: "id",     exportURL: "",     dataForm: {},     dataList: [],     order: "",     orderField: "",     page: 1,     limit: 10,     total: 0,     dataListLoading: false,     dataListSelections: [],     elTable: {}   };    const mergeDefaultStateToPageState = (     options: IObject,     props: IObject   ): IViewHooksOptions => {     for (const key in options) {       if (!Object.getOwnPropertyDescriptor(props, key)) {         props[key] = options[key];       }     }     return props;   };   const state = mergeDefaultStateToPageState(defaultOptions, props);   onMounted(() => {     if (state.createdIsNeed && !state.activatedIsNeed) {       viewFns.query();     }   });   //   const viewFns = {     // 获取数据列表     query() {       if (!state.getDataListURL) {         return;       }       state.dataListLoading = true;       http         .get(state.getDataListURL, {           order: state.order,           orderField: state.orderField,           page: state.getDataListIsPage ? state.page : null,           limit: state.getDataListIsPage ? state.limit : null,           ...state.dataForm         })         .then((res: any) => {           state.dataListLoading = false;           state.dataList = state.getDataListIsPage ? res.data.list : res.data;           state.total = state.getDataListIsPage ? res.data.total : 0;         })         .catch(() => {           state.dataListLoading = false;         });     },     // 多选     dataListSelectionChangeHandle(val: IObject[]) {       state.dataListSelections = val;     },     // 排序     dataListSortChangeHandle(data: IObject) {       if (!data.order || !data.prop) {         state.order = "";         state.orderField = "";         return false;       }       state.order = data.order.replace(/ending$/, "");       state.orderField = data.prop.replace(/([A-Z])/g, "_$1").toLowerCase();       viewFns.query();     },     // 分页, 每页条数     pageSizeChangeHandle(val: number) {       state.page = 1;       state.limit = val;       viewFns.query();     },     // 分页, 当前页     pageCurrentChangeHandle(val: number) {       state.page = val;       viewFns.query();     },     //搜索     getDataList() {       state.page = 1;       viewFns.query();     },   };   return {     ...viewFns   }; };  export default useView;
  在user上面代码中引入hookimport useView from "@/hooks/useView"; import { reactive, toRefs } from "vue";  defineOptions({   name: "User" });  const view = reactive({   getDataListURL: "/sys/user/page",   getDataListIsPage: true,   deleteURL: "/sys/user",   deleteIsBatch: true,   exportURL: "/sys/user/export",   dataForm: {     username: "",     deptId: "",     postId: "",     gender: ""   } });  const state = reactive({ ...useView(view), ...toRefs(view) });

一个神秘闯入的天体,竟意外揭开了一段遗忘半个世纪的故事2020年9月,科学家发现,一个神秘的不明飞行物正在从宇宙深处,快速的朝地球飞过来。他们有点紧张了,因为这个玩意儿,跟之前观察过的所有东西,都很不一样。第一,它的运行轨道非常诡异。地球曾经消失10亿年?100多年前的谜团,科学家们至今无法解开2021年9月,BBC发表了文章追查地球失踪的十亿年,这篇文章引用了美国地质学教授马沙克的话,他说在世界的任何地方,无论是美国西伯利亚还是欧洲,如果向地层下钻得足够深,就会碰到一种追踪世界上已知最大冰山之一的消亡有一座冰山一出生就开始死亡。海浪削去它的边缘,空气从上面解冻它,而水从下面融化它。科学家们最近记录了世界上最大的知名冰山之一的这种死亡阵痛。2017年7月,A68号冰山从南极半岛东埃及出土外星岩石,或是罕见超新星爆炸遗留在地球的首个证据据最新一期伊卡洛斯杂志刊发的论文,南非约翰内斯堡大学的科学家表示,25年前在埃及发现的一块外星岩石可能是地球上罕见超新星爆炸的第一个证据。来自银河系外的希帕提亚岩石。据报道,研究人飞天梦从这里起步,神舟十四号发射前,潇湘晨报记者探访酒泉2022年,我国载人航天再突破,中国空间站在轨建造任务也有了时间表。6月,神舟十四号载人飞船发射,3名航天员将进入中国空间站组合体,并在轨驻留半年。实际上,在中国载人航天技术发展的目标140W充电功率!USBPD3。1氮化镓充电器值得选吗?从今年开始,你会发现部分游戏本和全能本开始支持使用基于USBTypeC接口的140W氮化镓充电器供电了,突破了长期以来的100W功率限制。没错,这就是USBPD3。1充电协议的妙处vivoS15Pro和vivoS15e怎么选?看完这篇再决定入手vivoS15系列已经全线开售了,从4月份的vivoS15e到现在vivoS15和vivoS15Pro,想必大家特别关心,到底是vivoS15e更值得购买,还是vivoS15或者v地球德比,阿根廷对阵意大利,梅西能否再夺国家队冠军地球德比,阿根廷对阵意大利,梅西能否再夺国家队冠军6月2日凌晨,阿根廷跟意大利将在温布利大球场对阵,决出第一届欧美杯冠军。去年是南美欧洲大赛年,美洲杯和欧洲杯同期举行,在阿根廷夺得刚刚,A股三个信号落地,明日大盘将迎来6月开门红?股市回归活跃状态,开始摆脱各种束缚。最近,反弹幅度增大,市场打破震仓,类似主力还在吸筹。又要开始比拼耐力,空多不会轻易服输。对于A股后市,脚跟还要能站稳来,从而为6月打好基础。诚然地球将于2022年5月31日下午3点左右澳东部时间穿过SW3的轨道本周末,一场壮观的流星雨可能会袭击我们。这是值得期待的当地球绕太阳公转时,它会穿过彗星和小行星留下的尘埃和碎片。这些碎片会催生流星雨发生这可能是自然界最令人惊叹的奇观之一。大多数流地球每天消耗的石油相当于一条河流,那么地球会不会越来越轻呢?人类社会自从诞生之后起,就无时无刻不在消耗着巨量的燃料。而进入工业社会以来,人类主要的燃料非石油莫属。据报道称,人类每天消耗的石油相当于一条大河。于是,我们不禁疑问,照这样的速度消
当年风靡全球的植物大战僵尸,是如何爆火然后凉凉的?文艾渴echo如今提起塔防游戏,我想大多数玩家的脑海里都会浮现出一段熟悉而又魔性的音乐,以及一些稀奇古怪的植物与僵尸的形象。这款名为植物大战僵尸的游戏诞生于2009年5月5日,那个因爱生恨!解析雷阿伦当年为何宁愿降薪加盟死敌热火也不愿意续约雷阿伦,人称君子剑!历史上三分第一的射手,在NBA出现三分以后成为了举足轻重的人物。雷阿伦的职业生涯基本上可以说是毫无黑点,打球干净,风格飘逸,让NBA的粉丝们不得不喜欢他,即使不东北人在乒坛有多豪横?当年一张世界名画就是最佳佐证本届美国休斯敦世乒赛已经进入了最后的收尾阶段,在最先登场的冠军争夺战中,王楚钦与孙颖莎不负众望拿下赫杜塞克杯。被球迷们戏称为莎头组合的2人凭借绝对实力登顶,打得对手几无还手之力。加真相大白!武僧一龙道出实情当年比赛差点被打残,感谢武林风12月3日,中国搏击传奇巨星武僧一龙通过朋友圈发文回顾了自己在擂台征战的时光,由于武林风是他比赛最多的赛事,所以他对这块故土有着很深的情节。每当回想起来都有说不完的话,让人感慨万千关于范志毅您可能不知道的十件轶事以球员时代取得的成就而论,范志毅可以在国足球员序列里排名相当靠前,保底前三问题不大,无论是国内赛场留洋之旅FIFA赛场,范志毅都取得了很不错的成绩和荣誉,可以说有一个的足球生涯。纵薪资上亿的TT给分手费太抠,当年257万年薪的乔治为何敢给100万?NBA又出大瓜了,国王球星TT汤普森最近喜添一子,不过他却怎么也高兴不起来,原因是孩子的母亲不是TT汤普森的正牌女友,而是斗地主的牌友,在怀孕期间,TT汤普森曾阻止过对方将孩子生下清风澈的画太美了,图一碧瑶和图二鬼厉意境不错,可以做情侣头像诛仙手游碧瑶,三生七世,不忘凡因。天朝妖怪图鉴的雨师妾。现在的我,和以前相比,是不是也面目全非了呢肖战魏无羡师姐江厌离阿羡,我要成亲啦。意难平率土之滨吕姬,战之凤仪。365个御守楚字节跳动独立游戏发行品牌旗下的游戏在GooglePlay获奖了在12月份揭晓的GooglePlayBestof2021年度奖项中,拿下最佳创新游戏奖的有一款国产游戏Inked(洇客),很多人不知道该游戏由Pixmain发行。Pixmain字节激战280级之后应该开始做的事作者NGA杨是之本人也是萌新,认真玩了三个月慢慢开始知道每天上线应该做些什么事,如果你和我一样,在满级之后面对茫茫多的玩法不知所措不知从哪开始时,不妨看看我当时是如何做的,本篇会从鬼灭之刃火神血风手游职业选择利用魇梦限制对手操作手游巴士(www。shouyoubus。com)2021年12月17日讯鬼灭之刃火神血风手游职业选择利用魇梦限制对手操作,在鬼灭之刃火神血风这样的一款动作游戏中体验的精彩都是极为丰华为Mate50系列强悍来袭,功能强大让人期待华为在市场定位的时候,就设计了高中低档,三个价格定位的手机,针对不同人群,和不用的需求,有着很好的分类能力,比如它的高端系列,华为P系列和Mate系列近几年都有相当不错的销量,虽然