From caa048e9f254a702408d9e71229b9a2d9c4604c7 Mon Sep 17 00:00:00 2001 From: Romesum Date: Sun, 24 May 2020 21:59:49 +0800 Subject: [PATCH 01/18] =?UTF-8?q?[fix][V]=EF=BC=9A=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E5=AE=A4=E7=94=B3=E8=AF=B7=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/teacher/weekSelection.vue | 4 +- element-vue/src/pages/teacher/applyLab.vue | 326 +++++++++--------- 2 files changed, 162 insertions(+), 168 deletions(-) diff --git a/element-vue/src/components/teacher/weekSelection.vue b/element-vue/src/components/teacher/weekSelection.vue index 7b382af..5decc7f 100644 --- a/element-vue/src/components/teacher/weekSelection.vue +++ b/element-vue/src/components/teacher/weekSelection.vue @@ -25,6 +25,9 @@ const doubleVal=[2,4,6,8,10,12,14,16,18]; export default { name: "weekSelection", + props:{ + ableList:{default: allVal} + }, data(){ return{ checkedValue:[], @@ -32,7 +35,6 @@ isIndeterminate1:true, isIndeterminate2:true, isIndeterminate3:true, - ableList:[1,2,3,4,5,6], checkOption:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18] } }, diff --git a/element-vue/src/pages/teacher/applyLab.vue b/element-vue/src/pages/teacher/applyLab.vue index 2cc9845..1b23fb5 100644 --- a/element-vue/src/pages/teacher/applyLab.vue +++ b/element-vue/src/pages/teacher/applyLab.vue @@ -2,97 +2,89 @@
- + - + - +
- + + + 我的申请记录
- - - - - - - - - - + + + + + + > + + >
- + - - - + + + - + - - - - + - + - + - + -
填写申请时间段 取消
- - + + - - 取 消 - 确 定 - - - - + + +
-
@@ -103,58 +95,61 @@ import timeSelect from "~/components/timeSelect"; import {get, post, stop} from "~/utils"; import {showDialog, showFail, showSuccess} from "~/utils/dialog"; + export default { name: "applyLab", - components:{ - tb_course, - navBar, - weekSelection, - timeSelect + components: { + tb_course, navBar, weekSelection, timeSelect }, - data(){ - return{ - user:{}, - lab:{}, - - tableAlive:false, //用于重载表格 - tableData:[{}], - checkOption :[], + data() { + return { + user: {}, + lab: {}, + ableList:[], + tableAlive: false, //用于重载表格 + tableData: [{}], + checkOption: [], - formDialog:false, - courseDialog:false, - weekDialog:false, + formDialog: false, + courseDialog: false, + weekDialog: false, - perTargetValue:'', - aWeekValue:[], - allWeeksValue:[], + perTargetValue: '', + aWeekValue: [], + allWeeksValue: [], - form:{ - position:'', - name:'', - date: '', - nickname:'', - tel:'', - course_name:'', - class:'', - population:'', - schedule:'', - remind:'无' - }, - courseOption:[] - } + form: { + position: '', + name: '', + date: '', + nickname: '', + tel: '', + course_name: '', + class: '', + population: '', + schedule: '', + remind: '无' + }, + courseOption: [] + } }, - methods:{ + methods: { //表格中每个格子的风格 - cellStyle:function({row, column, rowIndex, columnIndex}){ - if (column.label!=''){ + cellStyle: function ({row, column, rowIndex, columnIndex}) { + if (column.label != '') { return 'cursor:pointer' } }, //点击格子促发的函数 - cellClick(row, column, cell, event) { - console.log(row.index) - this.aWeekValue.push(row.index,column.index) + async cellClick(row, column, cell, event) { + this.form.day = column.index + this.form.time = row.index + this.form.year = this.$refs.timeSelection.year + this.form.semester = this.$refs.timeSelection.semester + this.ableList = await get("lb/labTime/getWeeksAbleBook",this.form) + + this.aWeekValue.push(row.index, column.index) //(待写)检索该格子的周数申请信息,被申请的周数使其样式变为disable // let position = this.lab.position // let rowIndex = row.index @@ -169,142 +164,141 @@ // console.log(row.index) // console.log(column.index) - if (column.label!='') { - this.weekDialog=true - this.perTargetValue=event.target //用target对表格进行定位并保存致target对象 + if (column.label != '') { + this.weekDialog = true + this.perTargetValue = event.target //用target对表格进行定位并保存致target对象 } }, //点击表格操作栏申请按钮 - clickLabApply(row){ - this.lab=row - this.form={ - position:'', - name:'', - date: '', - nickname:'', - tel:'', - course_name:'', - class:'', - population:'', - schedule:'', - remind:'无' + clickLabApply(row) { + console.log(row) + this.lab = row + this.form = { + labId: row.lab_id, + position: row.position, + name: row.name, + nickname: this.user.nickname, + tel: this.user.tel, + class: '', + population: '', + remind: '无' } - this.formDialog=true - + this.formDialog = true }, //点击查看申请详情 - checkDetail(row){ - this.$router.push('/labApplyDetail/'+row.position) //发送该行的实验室地址作为参数,使得实验室申请详情可以获得此参数后请求并检索数据 + checkDetail(row) { + this.$router.push('/labApplyDetail/' + row.position) //发送该行的实验室地址作为参数,使得实验室申请详情可以获得此参数后请求并检索数据 }, //当选择的课程发生改变触发此函数 - selectChange(){ - console.log('aaaaaa') - var d=new Date() - // this.form.position= this.lab.position //实验室地点 - // this.form.name= this.lab.name //实验室名称 - this.form.date=d.getFullYear()+'/'+(d.getMonth()+1)+'/'+d.getDate() //日期 - // this.form.nickname= this.user.nickname //昵称 - // this.form.tel= this.user.tel //电话 - // this.form.class= this.courseOption.class //班级 - // this.form.population= this.courseOption.population //人数 + async selectChange(uc_id) { + let course = await get("lb/usercourse/findusercourse/" + uc_id) + this.form.class = course.classes + this.form.population = course.population }, //添加已选择的的周数 async addWeek() { - this.weekDialog=false - var targetValue = this.$refs.weekSelection.checkedValue - await showDialog("确认设置此时间段吗?",this) - if(targetValue.length!==0){ - this.perTargetValue.textContent='【'+targetValue+'】周' - this.aWeekValue.push(targetValue) //单个节数时间段添加完成,包括[rowIndex,column,targetValue] - this.allWeeksValue.push(this.aWeekValue) //把单个格子选择的时间段添加到allWeeksValue中 - this.perTargetValue.style.backgroundColor='lightyellow' - for (let i=0;i{ // if (vailid){ // this.courseDialog=true // } // }) - this.formDialog=false + this.formDialog = false }, - cancelAppy:function () { - this.formDialog=false + cancelAppy: function () { + this.formDialog = false }, //跳转到我的申请记录 - toMyRecord(){ - this.$router.push('/teacher/myApplyRecord/'+this.user.u_id) //这里的user.u_id作为是作为路径参数存在 + toMyRecord() { + this.$router.push('/teacher/myApplyRecord/' + this.user.u_id) //这里的user.u_id作为是作为路径参数存在 + }, + async loadCourse() { + this.courseOption = await get("lb/usercourse/findbyyearandsemester/" + this.$refs.timeSelection.year + "/" + this.$refs.timeSelection.semester) } }, //钩子函数,生命周期mouted async mounted() { - this.courseOption = get('',this.u_id) //发送教师id,返回该教师课程管理中所有的课程信息,是一个数组 + // this.courseOption = get('',this.u_id) //发送教师id,返回该教师课程管理中所有的课程信息,是一个数组 //测试数据 - this.courseOption=[{ + this.courseOption = [{ year: '1819', semester: '2', uc_id: '12345677', @@ -315,11 +309,9 @@ isHaveDocuments: '1', remind: '无', }] - // console.log(this.$refs.detailtb) - console.log('this is mouted') - console.log(this.$refs.weekSelection) - var d = new Date() this.tableData = await get('/lb/lab/getLabList') + this.user = await get('lb/user/getUserInfo') + await this.loadCourse() } } From e76bf592632323d67958eff6ff77925a4b4f559c Mon Sep 17 00:00:00 2001 From: Romesum Date: Mon, 25 May 2020 02:02:25 +0800 Subject: [PATCH 02/18] =?UTF-8?q?[feat][V]:=E5=AE=8C=E5=96=84=E5=B9=B6?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=88=91=E7=9A=84=E7=94=B3=E8=AF=B7=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/teacher/myApplyRecord.vue | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/element-vue/src/pages/teacher/myApplyRecord.vue b/element-vue/src/pages/teacher/myApplyRecord.vue index 0996d19..e6a316c 100644 --- a/element-vue/src/pages/teacher/myApplyRecord.vue +++ b/element-vue/src/pages/teacher/myApplyRecord.vue @@ -12,12 +12,27 @@ - - + + - - + + + + + + From 3ab7b73ec9097755f2cc34a4f831ddf19a4a0eb0 Mon Sep 17 00:00:00 2001 From: Romesum Date: Mon, 25 May 2020 02:11:39 +0800 Subject: [PATCH 03/18] =?UTF-8?q?[feat][M]:=20=E5=BC=95=E5=85=A5mybatis?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E5=AE=8C=E6=88=90=E6=88=91=E7=9A=84=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E8=AE=B0=E5=BD=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java/pom.xml | 6 ++- .../controller/LabRecordController.java | 12 +++++ .../hzu/bookingsystem/dto/LabRecordDTO.java | 38 +++++++++++++++ .../repository/LabRecordDTOMapper.java | 46 +++++++++++++++++++ .../service/LabRecordService.java | 6 +++ .../service/impl/LabRecordServiceImpl.java | 25 ++++++++++ java/src/main/resources/application.yml | 4 +- 7 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 java/src/main/java/com/hzu/bookingsystem/dto/LabRecordDTO.java create mode 100644 java/src/main/java/com/hzu/bookingsystem/repository/LabRecordDTOMapper.java diff --git a/java/pom.xml b/java/pom.xml index 364a3d9..4738488 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -68,7 +68,11 @@ easyexcel 1.1.2-beta5 - + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 1.3.1 + org.junit.jupiter junit-jupiter diff --git a/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java b/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java index baac990..405e55b 100644 --- a/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java +++ b/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java @@ -4,6 +4,7 @@ package com.hzu.bookingsystem.controller; import com.hzu.bookingsystem.VO.ResultVO; import com.hzu.bookingsystem.bean.LabRecordBean; import com.hzu.bookingsystem.converter.Map2Object; +import com.hzu.bookingsystem.dto.LabRecordDTO; import com.hzu.bookingsystem.service.LabRecordService; import com.hzu.bookingsystem.utils.ResultVOUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -21,6 +22,8 @@ public class LabRecordController { @Autowired private LabRecordService labrecordService; + @Autowired + private UserController userController; // 根据id查看实验室记录 @GetMapping(value = "/findlabrecord/{lr_id}") public ResultVO> FindLabRecordId(@PathVariable("lr_id") Integer lr_id) { @@ -73,4 +76,13 @@ public class LabRecordController { return ResultVOUtil.success(); } + /** + * author 吴志岳 + * 通过uid查询预约记录 + */ + @GetMapping("/getRecordBySelf") + public ResultVO getRecordBySelf(HttpServletRequest request){ + List labRecordDTOList = labrecordService.findRecordListByUId(userController.getUIdByCookie(request)); + return ResultVOUtil.success(labRecordDTOList); + } } diff --git a/java/src/main/java/com/hzu/bookingsystem/dto/LabRecordDTO.java b/java/src/main/java/com/hzu/bookingsystem/dto/LabRecordDTO.java new file mode 100644 index 0000000..88278cc --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/dto/LabRecordDTO.java @@ -0,0 +1,38 @@ +package com.hzu.bookingsystem.dto; + + +import lombok.Data; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Data +public class LabRecordDTO { + // 学年 + private String year; + + // 学期 + private Integer semester; + + // 几周 + private Integer week; + + // 周几 + private Integer day; + + // 第几节课 + private Integer time; + + private Integer status; + + //UC + private String course_name; + private Integer population; + private String classes; + + //LAB + private String lab_name; + + private String position; + +} diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordDTOMapper.java b/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordDTOMapper.java new file mode 100644 index 0000000..b190b0d --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordDTOMapper.java @@ -0,0 +1,46 @@ +package com.hzu.bookingsystem.repository; + +import com.hzu.bookingsystem.dto.LabRecordDTO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface LabRecordDTOMapper { + @Select("SELECT " + + " tb_lab_time.`year`, " + + " tb_lab_time.semester, " + + "COUNT(tb_lab_time.`week`) AS `week`,"+ + " tb_lab_time.`day`, " + + " tb_lab_time.time, " + + " tb_lab_record.`status`, " + + " tb_user_course.`name` AS course_name, " + + " tb_user_course.population, " + + " tb_user_course.classes, " + + " tb_lab.`name` AS lab_name, " + + " tb_lab.position " + + "FROM " + + " tb_lab_time " + + " INNER JOIN " + + " tb_lab_record " + + " ON " + + " tb_lab_time.lt_id = tb_lab_record.lt_id " + + " INNER JOIN " + + " tb_lab " + + " ON " + + " tb_lab_time.lab_id = tb_lab.lab_id, " + + " tb_user_course " + + "WHERE " + + " tb_lab_time.lt_id = tb_lab_record.lt_id AND " + + " tb_lab_record.uc_id = tb_user_course.uc_id AND " + + " tb_lab_time.lab_id = tb_lab.lab_id AND " + + " tb_user_course.u_id = #{uId} " + + "GROUP BY " + + " tb_lab_time.`year`, " + + " tb_lab_time.semester, " + + " tb_lab_time.`day`, " + + " tb_lab_time.time, " + + " tb_lab_record.`status`") + List getRecordListByUId(Integer uId); +} diff --git a/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java b/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java index 43a11b1..3770553 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java @@ -2,6 +2,7 @@ package com.hzu.bookingsystem.service; import com.hzu.bookingsystem.bean.LabRecordBean; +import com.hzu.bookingsystem.dto.LabRecordDTO; import java.util.List; @@ -65,6 +66,11 @@ public interface LabRecordService { String[][] getcourseByuser(Integer u_id , String year ,Integer semester ) ; + /** + * author 吴志岳 + * 查看自己的审核记录 + */ + public List findRecordListByUId(Integer uId); diff --git a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java index 6ee5a38..3baf3f3 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java @@ -4,15 +4,23 @@ import com.hzu.bookingsystem.bean.LabRecordBean; import com.hzu.bookingsystem.bean.LabTimeBean; import com.hzu.bookingsystem.bean.UserBean; import com.hzu.bookingsystem.bean.UserCourseBean; +import com.hzu.bookingsystem.dto.LabRecordDTO; +import com.hzu.bookingsystem.dto.LabTimeDTO; +import com.hzu.bookingsystem.repository.LabRecordDTOMapper; import com.hzu.bookingsystem.repository.LabRecordRepository; import com.hzu.bookingsystem.service.LabRecordService; import com.hzu.bookingsystem.service.LabTimeService; import com.hzu.bookingsystem.service.UserCourseService; import com.hzu.bookingsystem.service.UserService; +import org.hibernate.SQLQuery; +import org.hibernate.transform.Transformers; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; import javax.transaction.Transactional; import java.util.List; @@ -27,6 +35,11 @@ public class LabRecordServiceImpl implements LabRecordService{ @Resource private UserService userservice ; + @Resource + private LabRecordDTOMapper labRecordDTOMapper; + + @PersistenceContext + private EntityManager entityManager; @Override public LabRecordBean add(LabRecordBean labrcecord) { labrcecord.setLrId(null); @@ -147,4 +160,16 @@ public class LabRecordServiceImpl implements LabRecordService{ } return value_name ; } + + /** + * 通过uid查询审核记录 + * author 吴志岳 + */ + + @Override + public List findRecordListByUId(Integer uId) { + return labRecordDTOMapper.getRecordListByUId(13); + } + + } diff --git a/java/src/main/resources/application.yml b/java/src/main/resources/application.yml index 62da168..99e9ee3 100644 --- a/java/src/main/resources/application.yml +++ b/java/src/main/resources/application.yml @@ -23,4 +23,6 @@ spring: useGlobalDataourceStat: true connectionProperties: druid.stat.mergeSql=true:druid.stat.slowSqlMillis=500 - +mybatis: + # 指定sql映射文件位置 + mapper-locations: classpath:mybatis/mapper/*.xml From b3b5343950df3e8d975744662589c22aa240faf5 Mon Sep 17 00:00:00 2001 From: Romesum Date: Mon, 25 May 2020 02:12:25 +0800 Subject: [PATCH 04/18] =?UTF-8?q?[feat][M]:=20=E6=B7=BB=E5=8A=A0=E6=88=91?= =?UTF-8?q?=E7=9A=84=E9=A2=84=E7=BA=A6=E8=AE=B0=E5=BD=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hzu/bookingsystem/controller/LabRecordController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java b/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java index 405e55b..86c655d 100644 --- a/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java +++ b/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java @@ -85,4 +85,4 @@ public class LabRecordController { List labRecordDTOList = labrecordService.findRecordListByUId(userController.getUIdByCookie(request)); return ResultVOUtil.success(labRecordDTOList); } -} +} \ No newline at end of file From e23bb33b15fe4f660dfb8c176fe9d7f3b97d6b5e Mon Sep 17 00:00:00 2001 From: Romesum Date: Mon, 25 May 2020 15:25:51 +0800 Subject: [PATCH 05/18] =?UTF-8?q?[feat][v]:=E5=AF=B9=E6=8E=A5=E9=80=89?= =?UTF-8?q?=E8=AF=BE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- element-vue/src/pages/teacher/applyLab.vue | 98 +++++++++++----------- 1 file changed, 51 insertions(+), 47 deletions(-) diff --git a/element-vue/src/pages/teacher/applyLab.vue b/element-vue/src/pages/teacher/applyLab.vue index 47cddc1..ce3d107 100644 --- a/element-vue/src/pages/teacher/applyLab.vue +++ b/element-vue/src/pages/teacher/applyLab.vue @@ -42,8 +42,8 @@ - + @@ -171,16 +171,16 @@ resolve('打开了weekDialog') }).then((res) => { // console.log(this.$refs.weekSelection) - var position = this.form.position - var rowIndex = row.index - var columnIndex = column.index - var selectedWeeks = get('', {position, rowIndex, columnIndex}) //发送给实验室的地址,rowIndex,columIndex返回该格子的周数信息:数组 - selectedWeeks = [1, 2, 3] - this.$refs.weekSelection.disableList = selectedWeeks - this.$refs.weekSelection.singleVal = this.$refs.weekSelection.singleVal.filter(x => !selectedWeeks.includes(x)) - this.$refs.weekSelection.doubleVal = this.$refs.weekSelection.doubleVal.filter(x => !selectedWeeks.includes(x)) - this.$refs.weekSelection.allVal = this.$refs.weekSelection.allVal.filter(x => !selectedWeeks.includes(x)) - console.log('aa', this.$refs.weekSelection.singleVal) + // var position = this.form.position + // var rowIndex = row.index + // var columnIndex = column.index + // var selectedWeeks = get('', {position, rowIndex, columnIndex}) //发送给实验室的地址,rowIndex,columIndex返回该格子的周数信息:数组 + // selectedWeeks = [1, 2, 3] + // this.$refs.weekSelection.disableList = selectedWeeks + // this.$refs.weekSelection.singleVal = this.$refs.weekSelection.singleVal.filter(x => !selectedWeeks.includes(x)) + // this.$refs.weekSelection.doubleVal = this.$refs.weekSelection.doubleVal.filter(x => !selectedWeeks.includes(x)) + // this.$refs.weekSelection.allVal = this.$refs.weekSelection.allVal.filter(x => !selectedWeeks.includes(x)) + // console.log('aa', this.$refs.weekSelection.singleVal) }) } }, @@ -209,12 +209,19 @@ let course = await get("lb/usercourse/findusercourse/" + uc_id) this.form.class = course.classes this.form.population = course.population + this.form.uc_id = uc_id }, //添加已选择的的周数 async addWeek() { this.weekDialog = false - var targetValue = this.$refs.weekSelection.checkedValue - await showDialog("确认设置此时间段吗?", this) + const targetValue = this.$refs.weekSelection.checkedValue + this.form.weeks = targetValue + //提交 + await showDialog("确认预约此时间段吗?", this) + await post('lb/labrecord/updateWeeks', this.form) + await showSuccess("预约成功,管理员正在审核",this) + this.form.weeks = [] + if (targetValue.length !== 0) { this.perTargetValue.textContent = '【' + targetValue + '】周' this.aWeekValue.push(targetValue) //单个节数时间段添加完成,包括[rowIndex,column,targetValue] @@ -231,9 +238,6 @@ this.aWeekValue = [] this.$refs.weekSelection.checkedValue = [] //将周数选择器已选择选项置空 // console.log(this.allWeeksValue) - - //提交 - await post('lb/labRecord/updateWeeks', this.form); }, //取消一个格子已选择这些周数 async cancelSelection() { @@ -253,28 +257,28 @@ this.weekDialog = false }, //确定所有已选择的周数 - async setWeeks() { - console.log(this.allWeeksValue) - await post('/lb_teacher_applyLab', { - weeks: this.allWeeksValue, - year: this.$refs.timeSelection.year, - semester: this.$refs.timeSelection.semester, - position: this.form.position, - name: this.form.name, - date: this.form.date, - nickname: this.form.nickname, - tel: this.form.tel, - course_name: this.form.course_name, - class: this.form.class, - population: this.form.population, - remind: this.form.remind - }) - // this.form.schedule=this.allWeeksValue.toString() - this.courseDialog = false - // console.log(this.$refs.times) - this.tableAlive = false - - }, + // async setWeeks() { + // console.log(this.allWeeksValue) + // await post('/lb_teacher_applyLab', { + // weeks: this.allWeeksValue, + // year: this.$refs.timeSelection.year, + // semester: this.$refs.timeSelection.semester, + // position: this.form.position, + // name: this.form.name, + // date: this.form.date, + // nickname: this.form.nickname, + // tel: this.form.tel, + // course_name: this.form.course_name, + // class: this.form.class, + // population: this.form.population, + // remind: this.form.remind + // }) + // // this.form.schedule=this.allWeeksValue.toString() + // this.courseDialog = false + // // console.log(this.$refs.times) + // this.tableAlive = false + // + // }, //取消所有已选择的周数 cancelSetWeeks: function () { this.allWeeksValue = [] @@ -286,14 +290,14 @@ }, setTime: function () { this.tableAlive = true - alert('这里本来要验证的,为了方便查看表格,暂无设置,需要验证请把代码行注释解除掉') - this.courseDialog = true - // this.$refs.courseForm.validate(()=>{ - // if (vailid){ - // this.courseDialog=true - // } - // }) - this.formDialog = false + // alert('这里本来要验证的,为了方便查看表格,暂无设置,需要验证请把代码行注释解除掉') + // this.courseDialog = true + this.$refs.courseForm.validate((valid)=>{ + if (valid){ + this.courseDialog=true + this.formDialog = false + } + }) }, cancelAppy: function () { this.formDialog = false From c6860618310f98d78fcb085dc3fcfabf102b18d1 Mon Sep 17 00:00:00 2001 From: Romesum Date: Mon, 25 May 2020 15:26:41 +0800 Subject: [PATCH 06/18] =?UTF-8?q?[feat][M]:=20=E5=A2=9E=E5=8A=A0=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E9=80=89=E8=AF=BE=E6=97=B6=E9=97=B4=E6=AE=B5=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzu/bookingsystem/bean/LabRecordBean.java | 2 + .../controller/LabRecordController.java | 82 ++++++++++++++++--- .../repository/LabRecordRepository.java | 2 + .../service/LabRecordService.java | 8 +- .../service/impl/LabRecordServiceImpl.java | 6 ++ 5 files changed, 87 insertions(+), 13 deletions(-) diff --git a/java/src/main/java/com/hzu/bookingsystem/bean/LabRecordBean.java b/java/src/main/java/com/hzu/bookingsystem/bean/LabRecordBean.java index 14c054f..6a6c74b 100644 --- a/java/src/main/java/com/hzu/bookingsystem/bean/LabRecordBean.java +++ b/java/src/main/java/com/hzu/bookingsystem/bean/LabRecordBean.java @@ -1,6 +1,7 @@ package com.hzu.bookingsystem.bean; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import javax.persistence.*; @@ -10,6 +11,7 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor @Entity +@Builder @Table(name = "tb_lab_record") public class LabRecordBean { @Id diff --git a/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java b/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java index 86c655d..8d2172b 100644 --- a/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java +++ b/java/src/main/java/com/hzu/bookingsystem/controller/LabRecordController.java @@ -3,14 +3,17 @@ package com.hzu.bookingsystem.controller; import com.hzu.bookingsystem.VO.ResultVO; import com.hzu.bookingsystem.bean.LabRecordBean; +import com.hzu.bookingsystem.bean.LabTimeBean; import com.hzu.bookingsystem.converter.Map2Object; import com.hzu.bookingsystem.dto.LabRecordDTO; import com.hzu.bookingsystem.service.LabRecordService; +import com.hzu.bookingsystem.service.LabTimeService; import com.hzu.bookingsystem.utils.ResultVOUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.List; import java.util.Map; @@ -22,18 +25,22 @@ public class LabRecordController { @Autowired private LabRecordService labrecordService; + @Autowired + private LabTimeService labTimeService; + @Autowired private UserController userController; -// 根据id查看实验室记录 + + // 根据id查看实验室记录 @GetMapping(value = "/findlabrecord/{lr_id}") public ResultVO> FindLabRecordId(@PathVariable("lr_id") Integer lr_id) { - LabRecordBean labrecord = labrecordService.findById( lr_id) ; + LabRecordBean labrecord = labrecordService.findById(lr_id); return ResultVOUtil.success(labrecord); } // 查找所有记录列表 @GetMapping(value = "/getlabrecordlist") - public ResultVO getLabRecordList(){ + public ResultVO getLabRecordList() { List labrecordList = labrecordService.findAll(); return ResultVOUtil.success(labrecordList); @@ -49,27 +56,27 @@ public class LabRecordController { // 增加申请记录 @PostMapping(value = "/addlabrecord", consumes = "application/json") - public ResultVO addLabRecord(@RequestBody Map map) { - LabRecordBean labrecord = (LabRecordBean) Map2Object.map2Object(map,LabRecordBean.class); + public ResultVO addLabRecord(@RequestBody Map map) { + LabRecordBean labrecord = (LabRecordBean) Map2Object.map2Object(map, LabRecordBean.class); labrecordService.add(labrecord); return ResultVOUtil.success(); } //更新记录 @PostMapping(value = "/updatelabrecord", consumes = "application/json") - public ResultVO updateLabRecord(@RequestBody Map map, HttpServletRequest request){ - LabRecordBean labrecord = (LabRecordBean) Map2Object.map2Object(map,LabRecordBean.class); - LabRecordBean labrecordnew = labrecordService.update(labrecord) ; + public ResultVO updateLabRecord(@RequestBody Map map, HttpServletRequest request) { + LabRecordBean labrecord = (LabRecordBean) Map2Object.map2Object(map, LabRecordBean.class); + LabRecordBean labrecordnew = labrecordService.update(labrecord); return ResultVOUtil.success(labrecordnew); } // 通过lr_id删除记录 @PostMapping(value = "/deletelabrecord/{lr_id}", consumes = "application/json") - public ResultVO deleteLabRecord(@PathVariable("lr_id") Integer lr_id){ + public ResultVO deleteLabRecord(@PathVariable("lr_id") Integer lr_id) { // 查找该用户看是否存在 LabRecordBean labrecord = labrecordService.findById(lr_id); - if (labrecord == null){ - return ResultVOUtil.error(-1,"记录不存在"); + if (labrecord == null) { + return ResultVOUtil.error(-1, "记录不存在"); } // 删除记录 labrecordService.deleteById(lr_id); @@ -81,8 +88,59 @@ public class LabRecordController { * 通过uid查询预约记录 */ @GetMapping("/getRecordBySelf") - public ResultVO getRecordBySelf(HttpServletRequest request){ + public ResultVO getRecordBySelf(HttpServletRequest request) { List labRecordDTOList = labrecordService.findRecordListByUId(userController.getUIdByCookie(request)); return ResultVOUtil.success(labRecordDTOList); } + + /** + * 更改选课时间段 + */ + @PostMapping(value = "/updateWeeks", consumes = "application/json") + public ResultVO updateWeeks(@RequestBody Map map, HttpServletRequest request) { + //1. 转换对象 + LabTimeBean labTime = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class); + Integer uc_id = (Integer)map.get("uc_id"); + List weeks = (List)map.get("weeks"); + System.out.println(labTime); + System.out.println(uc_id); + System.out.println(weeks); + //2. 定义对象 + LabRecordBean labRecordBean = new LabRecordBean(); + labRecordBean.setStatus(0); + labRecordBean.setUcId(uc_id); + + //3. DAO + List weekAble = labTimeService.findWeeksAble(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime(),uc_id); + //判断是否选择不可选周数 + for (Integer i :weeks){ + if (!weekAble.contains(i)) + return ResultVOUtil.error(-1,"选择了不可选的周数"); + } + + List labTimeBeanList = labTimeService.findTimes(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime()); + //过滤不可选取 + for (LabTimeBean labTimeBean: labTimeBeanList){ + if (!weekAble.contains(labTimeBean.getWeek())) + labTimeBeanList.remove(labTime); + } + + //4. 删除record + for (LabTimeBean labTimeBean: labTimeBeanList){ + labrecordService.deleteByLtIdAndUcId(labTimeBean.getLtId(),uc_id); + } + + //5. 插入record + for (LabTimeBean labTimeBean: labTimeBeanList){ + if (weeks.contains(labTimeBean.getWeek())){ + LabRecordBean labRecordBean1 = new LabRecordBean().builder() + .ltId(labTimeBean.getLtId()) + .ucId(uc_id) + .status(0) + .build(); + labrecordService.add(labRecordBean1); + } + } + return ResultVOUtil.success(); + } } \ No newline at end of file diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordRepository.java b/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordRepository.java index 1595fbf..b57abf8 100644 --- a/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordRepository.java +++ b/java/src/main/java/com/hzu/bookingsystem/repository/LabRecordRepository.java @@ -26,6 +26,8 @@ public interface LabRecordRepository extends JpaRepository List findByUcIdAndStatus(Integer uc_id , Integer status); + void deleteByLtIdAndUcId(Integer lt_id,Integer uc_id); + } diff --git a/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java b/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java index 3770553..cb6463d 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/LabRecordService.java @@ -70,7 +70,13 @@ public interface LabRecordService { * author 吴志岳 * 查看自己的审核记录 */ - public List findRecordListByUId(Integer uId); + List findRecordListByUId(Integer uId); + + /** + * author 吴志岳 + * 根据LTid与UCid删除LR + */ + void deleteByLtIdAndUcId(Integer LtId,Integer UcId); diff --git a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java index 3baf3f3..f8ba77b 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabRecordServiceImpl.java @@ -171,5 +171,11 @@ public class LabRecordServiceImpl implements LabRecordService{ return labRecordDTOMapper.getRecordListByUId(13); } + @Transactional + @Override + public void deleteByLtIdAndUcId(Integer ltId, Integer ucId) { + labrecordRepository.deleteByLtIdAndUcId(ltId,ucId); + } + } From 42d88524106b0ceca1af2ced690cfc2a8f5c8cd0 Mon Sep 17 00:00:00 2001 From: Romesum Date: Mon, 25 May 2020 15:27:51 +0800 Subject: [PATCH 07/18] =?UTF-8?q?[feat][M]:=20=E6=B7=BB=E5=8A=A0=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E6=8E=A5=E5=8F=A3findWeeksAble=EF=BC=8C=E9=80=9A?= =?UTF-8?q?=E8=BF=87UCID=E6=9F=A5=E6=89=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LabTimeController.java | 33 ++++++++++--------- .../repository/LabTimeRepository.java | 20 +++++++++++ .../bookingsystem/service/LabTimeService.java | 8 +++++ .../service/impl/LabTimeServiceImpl.java | 18 ++++++++++ 4 files changed, 63 insertions(+), 16 deletions(-) diff --git a/java/src/main/java/com/hzu/bookingsystem/controller/LabTimeController.java b/java/src/main/java/com/hzu/bookingsystem/controller/LabTimeController.java index 10ee57b..3120684 100644 --- a/java/src/main/java/com/hzu/bookingsystem/controller/LabTimeController.java +++ b/java/src/main/java/com/hzu/bookingsystem/controller/LabTimeController.java @@ -92,8 +92,9 @@ public class LabTimeController { @RequestParam("year") String year, @RequestParam("semester") Integer semester, @RequestParam("day") Integer day, - @RequestParam("time") Integer time) { - List weeks = labTimeService.findWeeksAble(lab_id, year, semester, day, time); + @RequestParam("time") Integer time, + @RequestParam("uc_id") Integer uc_id) { + List weeks = labTimeService.findWeeksAble(lab_id, year, semester, day, time, uc_id); return ResultVOUtil.success(weeks); } @@ -106,18 +107,18 @@ public class LabTimeController { labTime.setCreateTime(new Date()); labTime.setStatus(0); // 用户发起的修改请求 - List weeks = (List)map.get("weeks"); + List weeks = (List) map.get("weeks"); // 实验室预约时间段 - List weeksAll = labTimeService.findWeeks(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime()); + List weeksAll = labTimeService.findWeeks(labTime.getLabId(), labTime.getYear(), labTime.getSemester(), labTime.getDay(), labTime.getTime()); // 实验室可预约时间段 - List weeksAble = labTimeService.findWeeksAble(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime()); + List weeksAble = labTimeService.findWeeksAble(labTime.getLabId(), labTime.getYear(), labTime.getSemester(), labTime.getDay(), labTime.getTime()); // 实验室不可变换或不可选取的时间段 List weeksDisable = new ArrayList<>(weeksAll); weeksDisable.removeAll(weeksAble); // 如果请求weeks中不包含不可选取的时间段,报错 - if (!weeks.containsAll(weeksDisable)){ - return ResultVOUtil.error(-1,"已被预约的时间段无法去除"); + if (!weeks.containsAll(weeksDisable)) { + return ResultVOUtil.error(-1, "已被预约的时间段无法去除"); } // 2. 数据处理 @@ -126,18 +127,18 @@ public class LabTimeController { weekInsert.removeAll(weeksAll); // 需要delete的weeks - List weekDelete = new ArrayList<>(weeksAll); + List weekDelete = new ArrayList<>(weeksAll); weekDelete.removeAll(weeks); // 3.批量删除 - List labTimeBeans = labTimeService.findTimes(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime()); + List labTimeBeans = labTimeService.findTimes(labTime.getLabId(), labTime.getYear(), labTime.getSemester(), labTime.getDay(), labTime.getTime()); labTimeBeans.removeIf(labTimeBean -> !weekDelete.contains(labTimeBean.getWeek())); - for (LabTimeBean labTimeBean : labTimeBeans){ + for (LabTimeBean labTimeBean : labTimeBeans) { labTimeService.deleteByLtId(labTimeBean.getLtId()); } // 4.批量插入 - for (int i : weekInsert){ + for (int i : weekInsert) { LabTimeBean temp = LabTimeBean.builder().labId(labTime.getLabId()) .year(labTime.getYear()) .semester(labTime.getSemester()) @@ -151,11 +152,11 @@ public class LabTimeController { labTimeService.add(temp); } - System.out.println("用户请求"+weeks); - System.out.println("原来有的"+weeksAll); - System.out.println("要插入的"+weekInsert); - System.out.println("要删除的"+weekDelete); - return ResultVOUtil.success(labTimeService.findWeeks(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime())); + System.out.println("用户请求" + weeks); + System.out.println("原来有的" + weeksAll); + System.out.println("要插入的" + weekInsert); + System.out.println("要删除的" + weekDelete); + return ResultVOUtil.success(labTimeService.findWeeks(labTime.getLabId(), labTime.getYear(), labTime.getSemester(), labTime.getDay(), labTime.getTime())); } } diff --git a/java/src/main/java/com/hzu/bookingsystem/repository/LabTimeRepository.java b/java/src/main/java/com/hzu/bookingsystem/repository/LabTimeRepository.java index 2227902..0fec494 100644 --- a/java/src/main/java/com/hzu/bookingsystem/repository/LabTimeRepository.java +++ b/java/src/main/java/com/hzu/bookingsystem/repository/LabTimeRepository.java @@ -85,4 +85,24 @@ public interface LabTimeRepository extends JpaRepository { " tb_lab_time.lt_id not in (select lt_id from tb_lab_record where status is not null)" , nativeQuery = true) List findWeeksAbleBook(Integer lab_id, String year, Integer semester, Integer day, Integer time) ; + @Query(value = "SELECT " + + " tb_lab_time.* " + + "FROM " + + "tb_lab_time LEFT JOIN tb_lab_record ON tb_lab_time.lt_id=tb_lab_record.lt_id " + + "WHERE " + + " tb_lab_time.lab_id = ?1 AND " + + " tb_lab_time.`year` = ?2 AND " + + " tb_lab_time.semester = ?3 AND " + + " tb_lab_time.`day` = ?4 AND " + + " tb_lab_time.time = ?5 AND " + + " tb_lab_time.lt_id not in (select lt_id from tb_lab_record where status is not null)" + + "OR " + + " tb_lab_time.lab_id = ?1 AND " + + " tb_lab_time.`year` = ?2 AND " + + " tb_lab_time.semester = ?3 AND " + + " tb_lab_time.`day` = ?4 AND " + + " tb_lab_time.time = ?5 AND " + + "tb_lab_record.uc_id = ?6" , nativeQuery = true) + List findWeeksAbleBook(Integer lab_id, String year, Integer semester, Integer day, Integer time,Integer uc_id) ; + } diff --git a/java/src/main/java/com/hzu/bookingsystem/service/LabTimeService.java b/java/src/main/java/com/hzu/bookingsystem/service/LabTimeService.java index f73348e..75c906c 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/LabTimeService.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/LabTimeService.java @@ -83,6 +83,14 @@ public interface LabTimeService { */ List findWeeksAble(Integer lab_id,String year,Integer semester, Integer day,Integer time) ; + /** + * 通过学期、周、星期、上课时间、ucid查找实验室可预约时间段周次 + *author 吴志岳 + * @param lab_id、year、semester + * @return List + */ + List findWeeksAble(Integer lab_id,String year,Integer semester, Integer day,Integer time,Integer uc_id) ; + /** * 通过学年、学期、星期、上课时间查找实验室预约时间段 */ diff --git a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabTimeServiceImpl.java b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabTimeServiceImpl.java index a829d52..f8551c2 100644 --- a/java/src/main/java/com/hzu/bookingsystem/service/impl/LabTimeServiceImpl.java +++ b/java/src/main/java/com/hzu/bookingsystem/service/impl/LabTimeServiceImpl.java @@ -119,6 +119,24 @@ public class LabTimeServiceImpl implements LabTimeService { return weeks; } + /** + * author 吴志岳 + * + * @param lab_id、year、semester + * @param year + * @param semester + * @return + */ + @Override + public List findWeeksAble(Integer lab_id, String year, Integer semester, Integer day, Integer time,Integer uc_id) { + List list = labTimeRepository.findWeeksAbleBook(lab_id, year, semester, day, time, uc_id); + List weeks = new ArrayList<>(); + for (LabTimeBean labtime : list) { + weeks.add(labtime.getWeek()); + } + return weeks; + } + @Override public List findTimes(Integer lab_id, String year, Integer semester, Integer day, Integer time) { return labTimeRepository.findByLabIdAndYearAndSemesterAndDayAndTime(lab_id, year, semester, day, time); From 48ad5eecea76686f2b93e549d403499584235243 Mon Sep 17 00:00:00 2001 From: Romesum Date: Mon, 25 May 2020 15:42:11 +0800 Subject: [PATCH 08/18] =?UTF-8?q?[feat][V]:=E5=AE=8C=E6=88=90=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E4=B8=BB=E9=A1=B5=EF=BC=8C=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=EF=BC=8C=E8=B7=AF=E7=94=B1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- element-vue/src/components/manager/home.vue | 54 +++++++++++++++++ element-vue/src/components/manager/index.vue | 19 ++++++ element-vue/src/components/manager/navBar.vue | 59 +++++++++++++++++++ element-vue/src/pages/manager/index.vue | 14 +---- element-vue/src/router.js | 47 ++++++++++----- 5 files changed, 168 insertions(+), 25 deletions(-) create mode 100644 element-vue/src/components/manager/home.vue create mode 100644 element-vue/src/components/manager/index.vue create mode 100644 element-vue/src/components/manager/navBar.vue diff --git a/element-vue/src/components/manager/home.vue b/element-vue/src/components/manager/home.vue new file mode 100644 index 0000000..5030e98 --- /dev/null +++ b/element-vue/src/components/manager/home.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/element-vue/src/components/manager/index.vue b/element-vue/src/components/manager/index.vue new file mode 100644 index 0000000..54fcbd6 --- /dev/null +++ b/element-vue/src/components/manager/index.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/element-vue/src/components/manager/navBar.vue b/element-vue/src/components/manager/navBar.vue new file mode 100644 index 0000000..40fb753 --- /dev/null +++ b/element-vue/src/components/manager/navBar.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/element-vue/src/pages/manager/index.vue b/element-vue/src/pages/manager/index.vue index 7fd0bf6..62148d9 100644 --- a/element-vue/src/pages/manager/index.vue +++ b/element-vue/src/pages/manager/index.vue @@ -1,21 +1,13 @@ diff --git a/element-vue/src/router.js b/element-vue/src/router.js index 0c33199..2459822 100644 --- a/element-vue/src/router.js +++ b/element-vue/src/router.js @@ -22,7 +22,11 @@ import globalPersonal from "~/components/personal"; import userManage from "~/components/supManager/userManage"; import setLabTime from "~/components/supManager/setLabTime"; import labManager from "~/components/supManager/labManage"; -import check from "~/components/supManager/check"; +import check from "~/components/supManager/check"; + +// manager +import managerHome from "~/components/manager/home" +import managerIndex from "~/components/manager/index"; // 要告诉 vue 使用 vueRouter Vue.use(VueRouter); @@ -57,13 +61,13 @@ const routes = [ component: applyLab }, { - path:'myApplyRecord/:u_id', - component:myApplyRecord, - props:true + path: 'myApplyRecord/:u_id', + component: myApplyRecord, + props: true }, { - path:'courseManagement', - component:courseManagement + path: 'courseManagement', + component: courseManagement }, { path: 'myApplyRecord', @@ -74,7 +78,22 @@ const routes = [ { path: '/manager', component: manager, - children: [] + children: [{ + path: '', + component: managerHome + },{ + path: 'index', + component: managerIndex, + children: [ + { + path: 'personal', + component: globalPersonal + }, { + path: 'labApply', + component: globalPersonal + } + ] + }] }, { path: '/supManager', @@ -91,7 +110,7 @@ const routes = [ { path: 'personal', component: globalPersonal - },{ + }, { path: 'labManage', component: globalPersonal }, @@ -100,12 +119,12 @@ const routes = [ component: userManage }, { - path:'labManager', - component:labManager + path: 'labManager', + component: labManager }, { - path:'check', - component:check + path: 'check', + component: check } ] } @@ -123,10 +142,10 @@ const routes = [ { path: '/labApplyDetail/:id', component: labApplyDetail, - props:true + props: true }, { - path:'/setLabTime', + path: '/setLabTime', component: setLabTime } ] From 197009d33811b74c6b320884448830f3480871cb Mon Sep 17 00:00:00 2001 From: Romesum Date: Mon, 25 May 2020 17:18:32 +0800 Subject: [PATCH 09/18] =?UTF-8?q?[fix][v]:=E5=AE=8C=E5=96=84=E8=B6=85?= =?UTF-8?q?=E7=BA=A7=E7=AE=A1=E7=90=86=E5=91=98=E5=AF=BC=E8=88=AA=E6=A0=8F?= =?UTF-8?q?=E5=92=8C=E9=A6=96=E9=A1=B5=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- element-vue/src/components/supManager/home.vue | 2 +- element-vue/src/components/supManager/navBar.vue | 2 +- element-vue/src/router.js | 8 ++------ 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/element-vue/src/components/supManager/home.vue b/element-vue/src/components/supManager/home.vue index 45850a2..eb0c545 100644 --- a/element-vue/src/components/supManager/home.vue +++ b/element-vue/src/components/supManager/home.vue @@ -24,7 +24,7 @@ homeParams: [ { name: '实验室管理', func: () => { - this.$router.push('/supManager/index/labManage') + this.$router.push('/supManager/index/labManager') } }, { diff --git a/element-vue/src/components/supManager/navBar.vue b/element-vue/src/components/supManager/navBar.vue index 105083f..e9f1ae1 100644 --- a/element-vue/src/components/supManager/navBar.vue +++ b/element-vue/src/components/supManager/navBar.vue @@ -10,7 +10,7 @@ router active-text-color="#ffd04b"> 首页 - 实验室管理 + 实验室管理 用户管理 diff --git a/element-vue/src/router.js b/element-vue/src/router.js index 2459822..c768b42 100644 --- a/element-vue/src/router.js +++ b/element-vue/src/router.js @@ -111,17 +111,13 @@ const routes = [ path: 'personal', component: globalPersonal }, { - path: 'labManage', - component: globalPersonal + path: 'labManager', + component: labManager }, { path: 'userManage', component: userManage }, - { - path: 'labManager', - component: labManager - }, { path: 'check', component: check From 7ae2a9894e438e3ab01b4cacc42942b7596d0f27 Mon Sep 17 00:00:00 2001 From: Romesum Date: Mon, 25 May 2020 19:41:22 +0800 Subject: [PATCH 10/18] =?UTF-8?q?[feat][V]:=E5=AE=8C=E5=96=84=E7=AE=80?= =?UTF-8?q?=E5=8C=96=E5=AE=9E=E9=AA=8C=E5=AE=A4=E7=AE=A1=E7=90=86=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E5=B9=B6=E5=AF=B9=E6=8E=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/supManager/addLab.vue | 191 +++++----- .../src/components/supManager/labManage.vue | 346 +++++++++--------- element-vue/src/utils/index.js | 2 + 3 files changed, 261 insertions(+), 278 deletions(-) diff --git a/element-vue/src/components/supManager/addLab.vue b/element-vue/src/components/supManager/addLab.vue index 41aa9c1..9d95a5a 100644 --- a/element-vue/src/components/supManager/addLab.vue +++ b/element-vue/src/components/supManager/addLab.vue @@ -1,129 +1,102 @@ diff --git a/element-vue/src/components/supManager/labManage.vue b/element-vue/src/components/supManager/labManage.vue index 36c901e..520cc9b 100644 --- a/element-vue/src/components/supManager/labManage.vue +++ b/element-vue/src/components/supManager/labManage.vue @@ -1,143 +1,118 @@ @@ -147,52 +122,84 @@ import {get, post} from "~/utils"; import {showDialog, showFail, showSuccess} from "~/utils/dialog"; + export default { - components:{addLab}, - data(){ - return{ - edit:"", - form:{ - type:'0', - position:'0', - status:'0', - }, - time:{ - year:'0', - week:'0', - day1:"0", - day2:"16", - semester:'0' + components: {addLab}, + data() { + return { + edit: false, + // form: { + // type: '0', + // position: '0', + // status: '0', + // }, + time: { + year: '0', + semester: '0' }, - - search:'', - tableData:[ - { name:"aaaa" , address:"509"} - ], + search: '', + tableData: [], } }, - methods:{ - showAddLab(){ + methods: { + async load() { + this.tableData = await get('/lb/lab/getLabList') + }, + // 编辑 + async editLab(item) { + // 判断是否为编辑模式 + this.edit = !!item + this.$refs.addLab.form = item ? item : { + position: '', + name: '', + capacity: '', + manager_id: '' + } + this.$refs.addLab.addLabDialog = true console.log(this.$refs.addLab) - this.$refs.addLab.addLabDialog=true - this.$router.push('/supManager/index/labManager') - + // 弹出编辑框 + this.dialogFormVisible = true }, - // 编辑用户 - // async editLab(item) { - // // 判断是否为编辑模式 - // this.edit = !!item - // this.userForm = item ? item : { - // nickname: "", - // tel: "", - // email: "", - // username: "", - // office: "", - // position: '' - // } - // // 弹出编辑框 - // this.dialogFormVisible = true + async submit() { + this.$refs.addLab.form.capacity = parseInt(this.$refs.addLab.form.capacity) + this.$refs.addLab.form.managerId = this.$refs.addLab.form.manager_id + if (this.$refs.addLab.form.lab_id) { + // 编辑 + this.$refs.addLab.form.labId = this.$refs.addLab.form.lab_id + await post('lb/lab/updateLab', this.$refs.addLab.form).then(async () => { + await this.load() + showSuccess('编辑成功', this) + }).catch(() => { + showFail('编辑失败', this) + }) + + } else { + // 新增 + await post('lb/lab/addLab', this.$refs.addLab.form).then(async () => { + await this.load() + showSuccess('新增成功', this) + }).catch(() => { + showFail('新增失败', this) + }) + + } + this.$refs.addLab.addLabDialog = false + }, + // async deleteLab(labId) { + // await showDialog("确定要删除吗?", this) + // await post('lb/lab/deleteLab', {labId}).then(async () => { + // await this.load() + // await showSuccess('删除成功', this) + // }).catch(err => { + // showFail('删除失败,实验室含有时间段时无法删除', this) + // }) // }, + async schedulePreview() { + await showFail('尚未开发', this) + }, + async editSchedule() { + + } }, computed: { // tableDataComputed() { @@ -207,7 +214,8 @@ }, - mounted() { + async mounted() { + await this.load() // this.tableData=get('/url') } } diff --git a/element-vue/src/utils/index.js b/element-vue/src/utils/index.js index 95c3843..15df463 100644 --- a/element-vue/src/utils/index.js +++ b/element-vue/src/utils/index.js @@ -38,6 +38,8 @@ async function request(url, method, data, params, header = {}) { } else { reject(res.data) } + }).catch(err=>{ + reject(err) }) }) } From 96ee2f5b57fe8b8970e42738ef1a3cd2fdb312ef Mon Sep 17 00:00:00 2001 From: Romesum Date: Mon, 25 May 2020 23:51:28 +0800 Subject: [PATCH 11/18] =?UTF-8?q?[fix][V]:=E5=AE=8C=E5=96=84=E5=91=A8?= =?UTF-8?q?=E6=AC=A1=E9=80=89=E6=8B=A9=E5=99=A8=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- element-vue/src/components/weekSelection.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/element-vue/src/components/weekSelection.vue b/element-vue/src/components/weekSelection.vue index 070c989..d91e40f 100644 --- a/element-vue/src/components/weekSelection.vue +++ b/element-vue/src/components/weekSelection.vue @@ -23,7 +23,7 @@ export default { name: "weekSelection", props:{ - ableList:{default: this.allVal} + ableList:{default: ()=>[]} }, data(){ return{ From c60fc16cdc40ed8617ae3c65c9c6b8fe2a29bd95 Mon Sep 17 00:00:00 2001 From: Romesum Date: Tue, 26 May 2020 01:25:45 +0800 Subject: [PATCH 12/18] =?UTF-8?q?[feat][V]:=E6=96=B0=E5=A2=9E=E8=AF=A2?= =?UTF-8?q?=E9=97=AE=E6=A1=86=E5=B8=A6reject=E5=B7=A5=E5=85=B7=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- element-vue/src/utils/dialog.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/element-vue/src/utils/dialog.js b/element-vue/src/utils/dialog.js index b8de8ee..a6cecf9 100644 --- a/element-vue/src/utils/dialog.js +++ b/element-vue/src/utils/dialog.js @@ -10,6 +10,19 @@ export async function showDialog(content,that){ }).catch(() => {}); }) } + +//询问框带reject +export async function showDialogWithReject(content,that){ + return new Promise((resolve, reject) => { + that.$confirm(content, '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + resolve() + }).catch(() => {reject()}); + }) +} // 显示操作成功 export function showSuccess(content,that) { that.$message({ From 9670802c4c5f9099e589d07fc69d50a5ad3e7fa2 Mon Sep 17 00:00:00 2001 From: Romesum Date: Tue, 26 May 2020 01:26:58 +0800 Subject: [PATCH 13/18] =?UTF-8?q?[feat][V]:=E5=AE=8C=E5=96=84=E5=AE=9E?= =?UTF-8?q?=E9=AA=8C=E5=AE=A4=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E5=B9=B6?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/supManager/addLab.vue | 4 - .../src/components/supManager/labManage.vue | 73 +++++--- .../src/components/supManager/setLabTime.vue | 169 ++++++++++-------- 3 files changed, 145 insertions(+), 101 deletions(-) diff --git a/element-vue/src/components/supManager/addLab.vue b/element-vue/src/components/supManager/addLab.vue index 9d95a5a..edecffe 100644 --- a/element-vue/src/components/supManager/addLab.vue +++ b/element-vue/src/components/supManager/addLab.vue @@ -55,13 +55,9 @@