his項(xiàng)目
his項(xiàng)目第一天
后端
用mybatis逆向工程,自動(dòng)生成實(shí)體類,mapper文件
http://www.itdecent.cn/p/c89a888a53e3 這是網(wǎng)址,有詳細(xì)配置
配置了security
security小總結(jié)
算上user表一共5張表就可以解決權(quán)限問題,user_role規(guī)定了一個(gè)用戶有哪些角色,menu_role規(guī)定了這個(gè)訪問路徑哪些角色可以訪問
user和menu都要加一個(gè)private List<Role> roles;泛型為角色的集合。user實(shí)現(xiàn)UserDetails,重寫5個(gè)方法,其中一個(gè)返回集合的方法是用戶的角色。userservice實(shí)現(xiàn)UserDetailsService,里面有查找用戶和通過用戶id查找這個(gè)人角色的方法
兩個(gè)配置類,一個(gè)查找所有路徑和角色的關(guān)系,里面通過比較當(dāng)前訪問路徑,獲得訪問這個(gè)路徑需要的角色,另一個(gè)用當(dāng)前登錄的角色和需要的角色做對比。
前端
安裝elementui npm i element-ui -S ,在main.js入口文件中引入
<pre class="md-fences md-end-block" lang="" contenteditable="false" cid="n28" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9rem; white-space: pre; line-height: 1.71429em; text-align: left; break-inside: avoid; display: block; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(218, 218, 218); position: relative !important; margin-bottom: 3em; padding-left: 1ch; padding-right: 1ch; margin-left: 2em; width: inherit;">import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);</pre>制作了登錄頁面
npm i axios 在api里import axios from 'axios';import {Message} from "element-ui";
然后f封裝api,有響應(yīng)攔截器和五種請求,在main.js導(dǎo)入,并且注冊成插件
在項(xiàng)目下建一個(gè)node.config.js 處理假跨域
制作路由,用作遍歷側(cè)邊欄,普通路由加上hidden:true,讓他遍歷時(shí)不遍歷,其它設(shè)成home的子路由,
his項(xiàng)目第三天
制作了前端home頁的卡片項(xiàng)
制作了前端的ConstantManage組件
后端寫了接口,運(yùn)用了分頁
先引依賴,
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version></dependency>
然后就可以用了,多加一個(gè)pageSize,和一個(gè)pageNum參數(shù)
排班管理
表
rule排班規(guī)則表 有外鍵userid和deptid,還有一個(gè)字段week,存一個(gè)14位的非1即0的字符串,分別對應(yīng)一個(gè)禮拜的上下午,1代表可以排班,0代表不能排班
scheduling 排班表,有外鍵userid和deptid和ruleid,有一個(gè)字段noon不是上午就是下午,date字段是日期
新增排班規(guī)則做的是先查詢user表,在后端返回集合的泛型的實(shí)體類中,加入14個(gè)boolean值,對應(yīng) 14個(gè)上午下午,然后給前端數(shù)據(jù)后,把這些boolean值分別跟前端的14個(gè)checkbox進(jìn)行綁定,選中就是true,不選中就是false,做保存規(guī)則的時(shí)候,用number判斷,遍歷把boolean值分別變成0,或1,拼接成一個(gè)字符串。
生成排班計(jì)劃,利用指定的規(guī)則,選中哪個(gè)就對哪個(gè)進(jìn)行排版,主要的地方是在后端處理,前端定義成一個(gè)對象,然后除了開始和結(jié)束時(shí)間定義成字符串,其它都是數(shù)組,因?yàn)榭梢远噙x排班規(guī)則進(jìn)行排班,傳到后端,后端寫一個(gè)實(shí)體類接收數(shù)據(jù),在service處理,先取到這個(gè)對象里的所有值,先將時(shí)間字符串轉(zhuǎn)成Calendar類型對象,判如如果開始時(shí)間比結(jié)束時(shí)間晚,返回一個(gè)錯(cuò)誤,當(dāng)開始時(shí)間和結(jié)束時(shí)間正常的時(shí)候,進(jìn)行循環(huán),循環(huán)是每次循環(huán)添加規(guī)則里面所有人一天的排班計(jì)劃,里面需要判斷當(dāng)前日期是星期幾,寫一個(gè)方法,參數(shù)是Calendar類型,用他的get
Calendar.Day-of -week方法,如果是1,返回7,因?yàn)樾瞧谌帐堑谝惶欤?/p>
其他是-1,判斷之前0,1d的字符串,用charat方法,參數(shù)放處理過的當(dāng)前是星期幾的參數(shù)*2-2,如果等于1,表里的上下午字段就填上午,然后判斷下午也有類似的方法,里層循環(huán)之后就把一天選中的規(guī)則排班都拍完了,然后外層繼續(xù)循環(huán)下一天,別忘了外層結(jié)束天數(shù)加一,要不少一輪,循環(huán)完事,添加成功