From 1757b94fe2d8f6f6f279902038f7fa051a7d2ce4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E5=8D=BF=E5=8D=8E?= <wuqinghua@hotmail.com> Date: Thu, 22 Dec 2022 15:35:51 +0800 Subject: [PATCH] =?UTF-8?q?Merge=20branch=20'master'=20of=20D:\=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE\=E6=AD=A3=E5=85=83=E5=AE=89=E5=85=A8=E7=94=9F?= =?UTF-8?q?=E4=BA=A7\zhengyuan-danger-chemistry-manage=20with=20conflicts.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/TEmergencyDrillController.java | 16 +- .../safetyManagement/TStaffController.java | 12 + .../system/TBankSubjectController.java | 103 ++++++ .../system/TTrainCourseBankController.java | 5 +- .../src/main/resources/application-dev.yml | 16 +- .../src/main/resources/application-prd.yml | 20 +- .../src/main/resources/application-test.yml | 16 +- .../zehong/system/domain/DrillStatistics.java | 56 ++++ .../zehong/system/domain/TBankSubject.java | 110 +++++++ .../system/mapper/TBankSubjectMapper.java | 61 ++++ .../system/mapper/TEmergencyDrillMapper.java | 25 +- .../system/service/ITBankSubjectService.java | 61 ++++ .../service/ITEmergencyDrillService.java | 25 +- .../service/impl/TBankSubjectServiceImpl.java | 93 ++++++ .../impl/TEmergencyDrillServiceImpl.java | 27 +- .../mapper/system/TBankSubjectMapper.xml | 76 +++++ .../mapper/system/TEmergencyDrillMapper.xml | 11 + .../mapper/system/TTrainCourseBankMapper.xml | 13 +- danger-manage-web/package.json | 2 +- .../src/api/safetyManagement/staff.js | 9 + .../src/api/system/emergencyDrill.js | 54 ++++ .../src/views/system/bank/index.vue | 297 +++++++++++++++++ .../src/views/system/drill/index.vue | 76 ++++- .../src/views/system/emergencyDrill/index.vue | 303 ++++++++++++++++++ danger-manage-web/vue.config.js | 4 +- 25 files changed, 1417 insertions(+), 74 deletions(-) create mode 100644 danger-manage-admin/src/main/java/com/zehong/web/controller/system/TBankSubjectController.java create mode 100644 danger-manage-system/src/main/java/com/zehong/system/domain/DrillStatistics.java create mode 100644 danger-manage-system/src/main/java/com/zehong/system/domain/TBankSubject.java create mode 100644 danger-manage-system/src/main/java/com/zehong/system/mapper/TBankSubjectMapper.java create mode 100644 danger-manage-system/src/main/java/com/zehong/system/service/ITBankSubjectService.java create mode 100644 danger-manage-system/src/main/java/com/zehong/system/service/impl/TBankSubjectServiceImpl.java create mode 100644 danger-manage-system/src/main/resources/mapper/system/TBankSubjectMapper.xml create mode 100644 danger-manage-web/src/api/system/emergencyDrill.js create mode 100644 danger-manage-web/src/views/system/bank/index.vue create mode 100644 danger-manage-web/src/views/system/emergencyDrill/index.vue diff --git a/danger-manage-admin/src/main/java/com/zehong/web/controller/resources/TEmergencyDrillController.java b/danger-manage-admin/src/main/java/com/zehong/web/controller/resources/TEmergencyDrillController.java index e50da42..e250bae 100644 --- a/danger-manage-admin/src/main/java/com/zehong/web/controller/resources/TEmergencyDrillController.java +++ b/danger-manage-admin/src/main/java/com/zehong/web/controller/resources/TEmergencyDrillController.java @@ -1,6 +1,8 @@ package com.zehong.web.controller.resources; import java.util.List; + +import com.zehong.system.domain.DrillStatistics; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -22,7 +24,7 @@ import com.zehong.common.core.page.TableDataInfo; /** * 应急演练Controller - * + * * @author zehong * @date 2022-06-29 */ @@ -100,4 +102,16 @@ public class TEmergencyDrillController extends BaseController { return toAjax(tEmergencyDrillService.deleteTEmergencyDrillByIds(drillIds)); } + + + /** + * 应急演练统计查询 + * */ + @GetMapping("/countList") + public TableDataInfo countList(DrillStatistics drillStatistics) + { + startPage(); + List<DrillStatistics> list = tEmergencyDrillService.countList(drillStatistics); + return getDataTable(list); + } } diff --git a/danger-manage-admin/src/main/java/com/zehong/web/controller/safetyManagement/TStaffController.java b/danger-manage-admin/src/main/java/com/zehong/web/controller/safetyManagement/TStaffController.java index 4716713..cf26322 100644 --- a/danger-manage-admin/src/main/java/com/zehong/web/controller/safetyManagement/TStaffController.java +++ b/danger-manage-admin/src/main/java/com/zehong/web/controller/safetyManagement/TStaffController.java @@ -66,6 +66,18 @@ public class TStaffController extends BaseController return getDataTable(list); } + /** + * æ— åˆ†é¡µæŸ¥è¯¢ + * @param tStaff + * @return + */ + @GetMapping("/TStaffList") + public TableDataInfo TStaffList(TStaffForm tStaff) + { + List<TStaffVo> list = tStaffService.selectTStaffList(tStaff); + return getDataTable(list); + } + /** * 导出员工信æ¯ç®¡ç†åˆ—表 */ diff --git a/danger-manage-admin/src/main/java/com/zehong/web/controller/system/TBankSubjectController.java b/danger-manage-admin/src/main/java/com/zehong/web/controller/system/TBankSubjectController.java new file mode 100644 index 0000000..fefde45 --- /dev/null +++ b/danger-manage-admin/src/main/java/com/zehong/web/controller/system/TBankSubjectController.java @@ -0,0 +1,103 @@ +package com.zehong.web.controller.system; + +import java.util.List; + +import com.zehong.system.domain.TBankSubject; +import com.zehong.system.service.ITBankSubjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zehong.common.annotation.Log; +import com.zehong.common.core.controller.BaseController; +import com.zehong.common.core.domain.AjaxResult; +import com.zehong.common.enums.BusinessType; +import com.zehong.common.utils.poi.ExcelUtil; +import com.zehong.common.core.page.TableDataInfo; + +/** + * 题库题目Controller + * + * @author zehong + * @date 2022-12-15 + */ +@RestController +@RequestMapping("/system/subject") +public class TBankSubjectController extends BaseController +{ + @Autowired + private ITBankSubjectService tBankSubjectService; + + /** + * 查询题库题目列表 + */ + //@PreAuthorize("@ss.hasPermi('system:subject:list')") + @GetMapping("/list") + public TableDataInfo list(TBankSubject tBankSubject) + { + startPage(); + List<TBankSubject> list = tBankSubjectService.selectTBankSubjectList(tBankSubject); + return getDataTable(list); + } + + /** + * 导出题库题目列表 + */ + //@PreAuthorize("@ss.hasPermi('system:subject:export')") + @Log(title = "题库题目", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(TBankSubject tBankSubject) + { + List<TBankSubject> list = tBankSubjectService.selectTBankSubjectList(tBankSubject); + ExcelUtil<TBankSubject> util = new ExcelUtil<TBankSubject>(TBankSubject.class); + return util.exportExcel(list, "题库题目数æ®"); + } + + /** + * 获å–é¢˜åº“é¢˜ç›®è¯¦ç»†ä¿¡æ¯ + */ + //@PreAuthorize("@ss.hasPermi('system:subject:query')") + @GetMapping(value = "/{subjectId}") + public AjaxResult getInfo(@PathVariable("subjectId") Long subjectId) + { + return AjaxResult.success(tBankSubjectService.selectTBankSubjectById(subjectId)); + } + + /** + * 新增题库题目 + */ + //@PreAuthorize("@ss.hasPermi('system:subject:add')") + @Log(title = "题库题目", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TBankSubject tBankSubject) + { + return toAjax(tBankSubjectService.insertTBankSubject(tBankSubject)); + } + + /** + * 修改题库题目 + */ + //@PreAuthorize("@ss.hasPermi('system:subject:edit')") + @Log(title = "题库题目", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TBankSubject tBankSubject) + { + return toAjax(tBankSubjectService.updateTBankSubject(tBankSubject)); + } + + /** + * åˆ é™¤é¢˜åº“é¢˜ç›® + */ + //@PreAuthorize("@ss.hasPermi('system:subject:remove')") + @Log(title = "题库题目", businessType = BusinessType.DELETE) + @DeleteMapping("/{subjectIds}") + public AjaxResult remove(@PathVariable Long[] subjectIds) + { + return toAjax(tBankSubjectService.deleteTBankSubjectByIds(subjectIds)); + } +} diff --git a/danger-manage-admin/src/main/java/com/zehong/web/controller/system/TTrainCourseBankController.java b/danger-manage-admin/src/main/java/com/zehong/web/controller/system/TTrainCourseBankController.java index 7210237..063c504 100644 --- a/danger-manage-admin/src/main/java/com/zehong/web/controller/system/TTrainCourseBankController.java +++ b/danger-manage-admin/src/main/java/com/zehong/web/controller/system/TTrainCourseBankController.java @@ -74,9 +74,10 @@ public class TTrainCourseBankController extends BaseController //@PreAuthorize("@ss.hasPermi('system:bank:add')") @Log(title = "bank", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody TTrainCourseBank tTrainCourseBank) + public int add(@RequestBody TTrainCourseBank tTrainCourseBank) { - return toAjax(tTrainCourseBankService.insertTTrainCourseBank(tTrainCourseBank)); + tTrainCourseBankService.insertTTrainCourseBank(tTrainCourseBank); + return Math.toIntExact(tTrainCourseBank.getBankId()); } /** diff --git a/danger-manage-admin/src/main/resources/application-dev.yml b/danger-manage-admin/src/main/resources/application-dev.yml index e897149..53b3618 100644 --- a/danger-manage-admin/src/main/resources/application-dev.yml +++ b/danger-manage-admin/src/main/resources/application-dev.yml @@ -28,9 +28,9 @@ spring: slave: # 从数æ®æºå¼€å…³/é»˜è®¤å…³é— enabled: false - url: - username: - password: + url: + username: + password: # åˆå§‹è¿žæŽ¥æ•° initialSize: 5 # 最å°è¿žæŽ¥æ± æ•°é‡ @@ -50,7 +50,7 @@ spring: testWhileIdle: true testOnBorrow: false testOnReturn: false - webStatFilter: + webStatFilter: enabled: true statViewServlet: enabled: true @@ -73,13 +73,13 @@ spring: # redis é…ç½® redis: # åœ°å€ - host: 127.0.0.1 + host: 36.138.181.113 # 端å£ï¼Œé»˜è®¤ä¸º6379 - port: 6378 + port: 6379 # æ•°æ®åº“索引 database: 1 # 密ç - password: Redis@2021 + password: 1qaz2wsx3edc # 连接超时时间 timeout: 10s lettuce: @@ -120,4 +120,4 @@ config: sdk-key: C8MFKCRxMAsBSDG5W5cL1x1YirGREoojZvFtBzKv3bAP detect-face-max-num: 10 detect-face-scale-val: 32 - thread-pool-size: 5 \ No newline at end of file + thread-pool-size: 5 diff --git a/danger-manage-admin/src/main/resources/application-prd.yml b/danger-manage-admin/src/main/resources/application-prd.yml index 9b1bbbc..94348f6 100644 --- a/danger-manage-admin/src/main/resources/application-prd.yml +++ b/danger-manage-admin/src/main/resources/application-prd.yml @@ -21,16 +21,16 @@ spring: druid: # 主库数æ®æº master: - url: jdbc:mysql://localhost:33060/danger_manage_area_a?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: zehong_/sjz!D + password: root # 从库数æ®æº slave: # 从数æ®æºå¼€å…³/é»˜è®¤å…³é— enabled: false - url: - username: - password: + url: + username: + password: # åˆå§‹è¿žæŽ¥æ•° initialSize: 5 # 最å°è¿žæŽ¥æ± æ•°é‡ @@ -50,7 +50,7 @@ spring: testWhileIdle: true testOnBorrow: false testOnReturn: false - webStatFilter: + webStatFilter: enabled: true statViewServlet: enabled: true @@ -73,13 +73,13 @@ spring: # redis é…ç½® redis: # åœ°å€ - host: 127.0.0.1 + host: localhost # 端å£ï¼Œé»˜è®¤ä¸º6379 - port: 6378 + port: 6379 # æ•°æ®åº“索引 database: 0 # 密ç - password: Redis@2021 + password: # 连接超时时间 timeout: 10s lettuce: @@ -121,4 +121,4 @@ config: sdk-key: J1wqG4VVGJYLe5YYT2hQN3xHSqLEwrZJBBRQmuEXkZqc detect-face-max-num: 10 detect-face-scale-val: 32 - thread-pool-size: 5 \ No newline at end of file + thread-pool-size: 5 diff --git a/danger-manage-admin/src/main/resources/application-test.yml b/danger-manage-admin/src/main/resources/application-test.yml index ccd4281..5a78178 100644 --- a/danger-manage-admin/src/main/resources/application-test.yml +++ b/danger-manage-admin/src/main/resources/application-test.yml @@ -28,9 +28,9 @@ spring: slave: # 从数æ®æºå¼€å…³/é»˜è®¤å…³é— enabled: false - url: - username: - password: + url: + username: + password: # åˆå§‹è¿žæŽ¥æ•° initialSize: 5 # 最å°è¿žæŽ¥æ± æ•°é‡ @@ -50,7 +50,7 @@ spring: testWhileIdle: true testOnBorrow: false testOnReturn: false - webStatFilter: + webStatFilter: enabled: true statViewServlet: enabled: true @@ -73,13 +73,13 @@ spring: # redis é…ç½® redis: # åœ°å€ - host: 127.0.0.1 + host: 36.138.181.113 # 端å£ï¼Œé»˜è®¤ä¸º6379 - port: 6378 + port: 6379 # æ•°æ®åº“索引 database: 0 # 密ç - password: Redis@2021 + password: 1qaz2wsx3edc # 连接超时时间 timeout: 10s lettuce: @@ -109,4 +109,4 @@ zehong: # 获å–ip地å€å¼€å…³ addressEnabled: false # 验è¯ç 类型 math 数组计算 char å—ç¬¦éªŒè¯ - captchaType: math \ No newline at end of file + captchaType: math diff --git a/danger-manage-system/src/main/java/com/zehong/system/domain/DrillStatistics.java b/danger-manage-system/src/main/java/com/zehong/system/domain/DrillStatistics.java new file mode 100644 index 0000000..57cb076 --- /dev/null +++ b/danger-manage-system/src/main/java/com/zehong/system/domain/DrillStatistics.java @@ -0,0 +1,56 @@ +package com.zehong.system.domain; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.zehong.common.annotation.Excel; +import java.util.Date; + +/** + * 演练统计 + */ +public class DrillStatistics { + + /** 演练时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "演练时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date drillTime; + + /**演练总次数*/ + private int totalNumberDrills; + + /**å‚演人数*/ + private int numberParticipants; + + /**月份*/ + private String mont; + + public String getMont() { + return mont; + } + + public void setMont(String mont) { + this.mont = mont; + } + + public Date getDrillTime() { + return drillTime; + } + + public void setDrillTime(Date drillTime) { + this.drillTime = drillTime; + } + + public int getTotalNumberDrills() { + return totalNumberDrills; + } + + public void setTotalNumberDrills(int totalNumberDrills) { + this.totalNumberDrills = totalNumberDrills; + } + + public int getNumberParticipants() { + return numberParticipants; + } + + public void setNumberParticipants(int numberParticipants) { + this.numberParticipants = numberParticipants; + } +} diff --git a/danger-manage-system/src/main/java/com/zehong/system/domain/TBankSubject.java b/danger-manage-system/src/main/java/com/zehong/system/domain/TBankSubject.java new file mode 100644 index 0000000..5ecc753 --- /dev/null +++ b/danger-manage-system/src/main/java/com/zehong/system/domain/TBankSubject.java @@ -0,0 +1,110 @@ +package com.zehong.system.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zehong.common.annotation.Excel; +import com.zehong.common.core.domain.BaseEntity; + +/** + * 题库题目对象 t_bank_subject + * + * @author zehong + * @date 2022-12-15 + */ +public class TBankSubject extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 题目id */ + private Long subjectId; + + /** 所属题库id */ + @Excel(name = "所属题库id") + private Long bankId; + + /** 题目内容 */ + @Excel(name = "题目内容") + private String topicTitle; + + /** 题目选项(json) */ + @Excel(name = "题目选项", readConverterExp = "j=son") + private String topicOption; + + /** ç”案 */ + @Excel(name = "ç”案") + private Integer answer; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date datetime; + + public void setSubjectId(Long subjectId) + { + this.subjectId = subjectId; + } + + public Long getSubjectId() + { + return subjectId; + } + public void setBankId(Long bankId) + { + this.bankId = bankId; + } + + public Long getBankId() + { + return bankId; + } + public void setTopicTitle(String topicTitle) + { + this.topicTitle = topicTitle; + } + + public String getTopicTitle() + { + return topicTitle; + } + public void setTopicOption(String topicOption) + { + this.topicOption = topicOption; + } + + public String getTopicOption() + { + return topicOption; + } + public void setAnswer(Integer answer) + { + this.answer = answer; + } + + public Integer getAnswer() + { + return answer; + } + public void setDatetime(Date datetime) + { + this.datetime = datetime; + } + + public Date getDatetime() + { + return datetime; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("subjectId", getSubjectId()) + .append("bankId", getBankId()) + .append("topicTitle", getTopicTitle()) + .append("topicOption", getTopicOption()) + .append("answer", getAnswer()) + .append("datetime", getDatetime()) + .toString(); + } +} diff --git a/danger-manage-system/src/main/java/com/zehong/system/mapper/TBankSubjectMapper.java b/danger-manage-system/src/main/java/com/zehong/system/mapper/TBankSubjectMapper.java new file mode 100644 index 0000000..3be8c6e --- /dev/null +++ b/danger-manage-system/src/main/java/com/zehong/system/mapper/TBankSubjectMapper.java @@ -0,0 +1,61 @@ +package com.zehong.system.mapper; + +import java.util.List; +import com.zehong.system.domain.TBankSubject; + +/** + * 题库题目MapperæŽ¥å£ + * + * @author zehong + * @date 2022-12-15 + */ +public interface TBankSubjectMapper +{ + /** + * 查询题库题目 + * + * @param subjectId 题库题目ID + * @return 题库题目 + */ + public TBankSubject selectTBankSubjectById(Long subjectId); + + /** + * 查询题库题目列表 + * + * @param tBankSubject 题库题目 + * @return é¢˜åº“é¢˜ç›®é›†åˆ + */ + public List<TBankSubject> selectTBankSubjectList(TBankSubject tBankSubject); + + /** + * 新增题库题目 + * + * @param tBankSubject 题库题目 + * @return 结果 + */ + public int insertTBankSubject(TBankSubject tBankSubject); + + /** + * 修改题库题目 + * + * @param tBankSubject 题库题目 + * @return 结果 + */ + public int updateTBankSubject(TBankSubject tBankSubject); + + /** + * åˆ é™¤é¢˜åº“é¢˜ç›® + * + * @param subjectId 题库题目ID + * @return 结果 + */ + public int deleteTBankSubjectById(Long subjectId); + + /** + * 批é‡åˆ 除题库题目 + * + * @param subjectIds 需è¦åˆ 除的数æ®ID + * @return 结果 + */ + public int deleteTBankSubjectByIds(Long[] subjectIds); +} diff --git a/danger-manage-system/src/main/java/com/zehong/system/mapper/TEmergencyDrillMapper.java b/danger-manage-system/src/main/java/com/zehong/system/mapper/TEmergencyDrillMapper.java index 2598281..0d1c17f 100644 --- a/danger-manage-system/src/main/java/com/zehong/system/mapper/TEmergencyDrillMapper.java +++ b/danger-manage-system/src/main/java/com/zehong/system/mapper/TEmergencyDrillMapper.java @@ -1,19 +1,21 @@ package com.zehong.system.mapper; import java.util.List; + +import com.zehong.system.domain.DrillStatistics; import com.zehong.system.domain.TEmergencyDrill; /** * 应急演练MapperæŽ¥å£ - * + * * @author zehong * @date 2022-06-29 */ -public interface TEmergencyDrillMapper +public interface TEmergencyDrillMapper { /** * 查询应急演练 - * + * * @param drillId 应急演练ID * @return 应急演练 */ @@ -21,7 +23,7 @@ public interface TEmergencyDrillMapper /** * 查询应急演练列表 - * + * * @param tEmergencyDrill 应急演练 * @return åº”æ€¥æ¼”ç»ƒé›†åˆ */ @@ -29,7 +31,7 @@ public interface TEmergencyDrillMapper /** * 新增应急演练 - * + * * @param tEmergencyDrill 应急演练 * @return 结果 */ @@ -37,7 +39,7 @@ public interface TEmergencyDrillMapper /** * 修改应急演练 - * + * * @param tEmergencyDrill 应急演练 * @return 结果 */ @@ -45,7 +47,7 @@ public interface TEmergencyDrillMapper /** * åˆ é™¤åº”æ€¥æ¼”ç»ƒ - * + * * @param drillId 应急演练ID * @return 结果 */ @@ -53,9 +55,16 @@ public interface TEmergencyDrillMapper /** * 批é‡åˆ 除应急演练 - * + * * @param drillIds 需è¦åˆ 除的数æ®ID * @return 结果 */ public int deleteTEmergencyDrillByIds(Long[] drillIds); + + /** + * 应急演练统计查询 + * @param drillStatistics + * @return + */ + List<DrillStatistics> countList(DrillStatistics drillStatistics); } diff --git a/danger-manage-system/src/main/java/com/zehong/system/service/ITBankSubjectService.java b/danger-manage-system/src/main/java/com/zehong/system/service/ITBankSubjectService.java new file mode 100644 index 0000000..432dc4b --- /dev/null +++ b/danger-manage-system/src/main/java/com/zehong/system/service/ITBankSubjectService.java @@ -0,0 +1,61 @@ +package com.zehong.system.service; + +import java.util.List; +import com.zehong.system.domain.TBankSubject; + +/** + * 题库题目ServiceæŽ¥å£ + * + * @author zehong + * @date 2022-12-15 + */ +public interface ITBankSubjectService +{ + /** + * 查询题库题目 + * + * @param subjectId 题库题目ID + * @return 题库题目 + */ + public TBankSubject selectTBankSubjectById(Long subjectId); + + /** + * 查询题库题目列表 + * + * @param tBankSubject 题库题目 + * @return é¢˜åº“é¢˜ç›®é›†åˆ + */ + public List<TBankSubject> selectTBankSubjectList(TBankSubject tBankSubject); + + /** + * 新增题库题目 + * + * @param tBankSubject 题库题目 + * @return 结果 + */ + public int insertTBankSubject(TBankSubject tBankSubject); + + /** + * 修改题库题目 + * + * @param tBankSubject 题库题目 + * @return 结果 + */ + public int updateTBankSubject(TBankSubject tBankSubject); + + /** + * 批é‡åˆ 除题库题目 + * + * @param subjectIds 需è¦åˆ 除的题库题目ID + * @return 结果 + */ + public int deleteTBankSubjectByIds(Long[] subjectIds); + + /** + * åˆ é™¤é¢˜åº“é¢˜ç›®ä¿¡æ¯ + * + * @param subjectId 题库题目ID + * @return 结果 + */ + public int deleteTBankSubjectById(Long subjectId); +} diff --git a/danger-manage-system/src/main/java/com/zehong/system/service/ITEmergencyDrillService.java b/danger-manage-system/src/main/java/com/zehong/system/service/ITEmergencyDrillService.java index b7c695d..e6a55fc 100644 --- a/danger-manage-system/src/main/java/com/zehong/system/service/ITEmergencyDrillService.java +++ b/danger-manage-system/src/main/java/com/zehong/system/service/ITEmergencyDrillService.java @@ -1,19 +1,21 @@ package com.zehong.system.service; import java.util.List; + +import com.zehong.system.domain.DrillStatistics; import com.zehong.system.domain.TEmergencyDrill; /** * 应急演练ServiceæŽ¥å£ - * + * * @author zehong * @date 2022-06-29 */ -public interface ITEmergencyDrillService +public interface ITEmergencyDrillService { /** * 查询应急演练 - * + * * @param drillId 应急演练ID * @return 应急演练 */ @@ -21,7 +23,7 @@ public interface ITEmergencyDrillService /** * 查询应急演练列表 - * + * * @param tEmergencyDrill 应急演练 * @return åº”æ€¥æ¼”ç»ƒé›†åˆ */ @@ -29,7 +31,7 @@ public interface ITEmergencyDrillService /** * 新增应急演练 - * + * * @param tEmergencyDrill 应急演练 * @return 结果 */ @@ -37,7 +39,7 @@ public interface ITEmergencyDrillService /** * 修改应急演练 - * + * * @param tEmergencyDrill 应急演练 * @return 结果 */ @@ -45,7 +47,7 @@ public interface ITEmergencyDrillService /** * 批é‡åˆ 除应急演练 - * + * * @param drillIds 需è¦åˆ 除的应急演练ID * @return 结果 */ @@ -53,9 +55,16 @@ public interface ITEmergencyDrillService /** * åˆ é™¤åº”æ€¥æ¼”ç»ƒä¿¡æ¯ - * + * * @param drillId 应急演练ID * @return 结果 */ public int deleteTEmergencyDrillById(Long drillId); + + /** + * 应急演练统计查询 + * @param drillStatistics + * @return + */ + List<DrillStatistics> countList(DrillStatistics drillStatistics); } diff --git a/danger-manage-system/src/main/java/com/zehong/system/service/impl/TBankSubjectServiceImpl.java b/danger-manage-system/src/main/java/com/zehong/system/service/impl/TBankSubjectServiceImpl.java new file mode 100644 index 0000000..48710bf --- /dev/null +++ b/danger-manage-system/src/main/java/com/zehong/system/service/impl/TBankSubjectServiceImpl.java @@ -0,0 +1,93 @@ +package com.zehong.system.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.zehong.system.mapper.TBankSubjectMapper; +import com.zehong.system.domain.TBankSubject; +import com.zehong.system.service.ITBankSubjectService; + +/** + * 题库题目Serviceä¸šåŠ¡å±‚å¤„ç† + * + * @author zehong + * @date 2022-12-15 + */ +@Service +public class TBankSubjectServiceImpl implements ITBankSubjectService +{ + @Autowired + private TBankSubjectMapper tBankSubjectMapper; + + /** + * 查询题库题目 + * + * @param subjectId 题库题目ID + * @return 题库题目 + */ + @Override + public TBankSubject selectTBankSubjectById(Long subjectId) + { + return tBankSubjectMapper.selectTBankSubjectById(subjectId); + } + + /** + * 查询题库题目列表 + * + * @param tBankSubject 题库题目 + * @return 题库题目 + */ + @Override + public List<TBankSubject> selectTBankSubjectList(TBankSubject tBankSubject) + { + return tBankSubjectMapper.selectTBankSubjectList(tBankSubject); + } + + /** + * 新增题库题目 + * + * @param tBankSubject 题库题目 + * @return 结果 + */ + @Override + public int insertTBankSubject(TBankSubject tBankSubject) + { + return tBankSubjectMapper.insertTBankSubject(tBankSubject); + } + + /** + * 修改题库题目 + * + * @param tBankSubject 题库题目 + * @return 结果 + */ + @Override + public int updateTBankSubject(TBankSubject tBankSubject) + { + return tBankSubjectMapper.updateTBankSubject(tBankSubject); + } + + /** + * 批é‡åˆ 除题库题目 + * + * @param subjectIds 需è¦åˆ 除的题库题目ID + * @return 结果 + */ + @Override + public int deleteTBankSubjectByIds(Long[] subjectIds) + { + return tBankSubjectMapper.deleteTBankSubjectByIds(subjectIds); + } + + /** + * åˆ é™¤é¢˜åº“é¢˜ç›®ä¿¡æ¯ + * + * @param subjectId 题库题目ID + * @return 结果 + */ + @Override + public int deleteTBankSubjectById(Long subjectId) + { + return tBankSubjectMapper.deleteTBankSubjectById(subjectId); + } +} diff --git a/danger-manage-system/src/main/java/com/zehong/system/service/impl/TEmergencyDrillServiceImpl.java b/danger-manage-system/src/main/java/com/zehong/system/service/impl/TEmergencyDrillServiceImpl.java index c30829d..a2855e9 100644 --- a/danger-manage-system/src/main/java/com/zehong/system/service/impl/TEmergencyDrillServiceImpl.java +++ b/danger-manage-system/src/main/java/com/zehong/system/service/impl/TEmergencyDrillServiceImpl.java @@ -2,6 +2,7 @@ package com.zehong.system.service.impl; import java.util.List; import com.zehong.common.utils.DateUtils; +import com.zehong.system.domain.DrillStatistics; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.zehong.system.mapper.TEmergencyDrillMapper; @@ -10,19 +11,19 @@ import com.zehong.system.service.ITEmergencyDrillService; /** * 应急演练Serviceä¸šåŠ¡å±‚å¤„ç† - * + * * @author zehong * @date 2022-06-29 */ @Service -public class TEmergencyDrillServiceImpl implements ITEmergencyDrillService +public class TEmergencyDrillServiceImpl implements ITEmergencyDrillService { @Autowired private TEmergencyDrillMapper tEmergencyDrillMapper; /** * 查询应急演练 - * + * * @param drillId 应急演练ID * @return 应急演练 */ @@ -34,7 +35,7 @@ public class TEmergencyDrillServiceImpl implements ITEmergencyDrillService /** * 查询应急演练列表 - * + * * @param tEmergencyDrill 应急演练 * @return 应急演练 */ @@ -46,7 +47,7 @@ public class TEmergencyDrillServiceImpl implements ITEmergencyDrillService /** * 新增应急演练 - * + * * @param tEmergencyDrill 应急演练 * @return 结果 */ @@ -59,7 +60,7 @@ public class TEmergencyDrillServiceImpl implements ITEmergencyDrillService /** * 修改应急演练 - * + * * @param tEmergencyDrill 应急演练 * @return 结果 */ @@ -71,7 +72,7 @@ public class TEmergencyDrillServiceImpl implements ITEmergencyDrillService /** * 批é‡åˆ 除应急演练 - * + * * @param drillIds 需è¦åˆ 除的应急演练ID * @return 结果 */ @@ -83,7 +84,7 @@ public class TEmergencyDrillServiceImpl implements ITEmergencyDrillService /** * åˆ é™¤åº”æ€¥æ¼”ç»ƒä¿¡æ¯ - * + * * @param drillId 应急演练ID * @return 结果 */ @@ -92,4 +93,14 @@ public class TEmergencyDrillServiceImpl implements ITEmergencyDrillService { return tEmergencyDrillMapper.deleteTEmergencyDrillById(drillId); } + + /** + * 应急演练统计查询 + * @param drillStatistics + * @return + */ + @Override + public List<DrillStatistics> countList(DrillStatistics drillStatistics) { + return tEmergencyDrillMapper.countList(drillStatistics); + } } diff --git a/danger-manage-system/src/main/resources/mapper/system/TBankSubjectMapper.xml b/danger-manage-system/src/main/resources/mapper/system/TBankSubjectMapper.xml new file mode 100644 index 0000000..29588a0 --- /dev/null +++ b/danger-manage-system/src/main/resources/mapper/system/TBankSubjectMapper.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.zehong.system.mapper.TBankSubjectMapper"> + + <resultMap type="TBankSubject" id="TBankSubjectResult"> + <result property="subjectId" column="subject_id" /> + <result property="bankId" column="bank_id" /> + <result property="topicTitle" column="topic_title" /> + <result property="topicOption" column="topic_option" /> + <result property="answer" column="answer" /> + <result property="datetime" column="datetime" /> + </resultMap> + + <sql id="selectTBankSubjectVo"> + select subject_id, bank_id, topic_title, topic_option, answer, datetime from t_bank_subject + </sql> + + <select id="selectTBankSubjectList" parameterType="TBankSubject" resultMap="TBankSubjectResult"> + <include refid="selectTBankSubjectVo"/> + <where> + <if test="bankId != null "> and bank_id = #{bankId}</if> + <if test="topicTitle != null and topicTitle != ''"> and topic_title = #{topicTitle}</if> + <if test="topicOption != null and topicOption != ''"> and topic_option = #{topicOption}</if> + <if test="answer != null "> and answer = #{answer}</if> + <if test="datetime != null "> and datetime = #{datetime}</if> + </where> + </select> + + <select id="selectTBankSubjectById" parameterType="Long" resultMap="TBankSubjectResult"> + <include refid="selectTBankSubjectVo"/> + where subject_id = #{subjectId} + </select> + + <insert id="insertTBankSubject" parameterType="TBankSubject" useGeneratedKeys="true" keyProperty="subjectId"> + insert into t_bank_subject + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="bankId != null">bank_id,</if> + <if test="topicTitle != null">topic_title,</if> + <if test="topicOption != null">topic_option,</if> + <if test="answer != null">answer,</if> + <if test="datetime != null">datetime,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="bankId != null">#{bankId},</if> + <if test="topicTitle != null">#{topicTitle},</if> + <if test="topicOption != null">#{topicOption},</if> + <if test="answer != null">#{answer},</if> + <if test="datetime != null">#{datetime},</if> + </trim> + </insert> + + <update id="updateTBankSubject" parameterType="TBankSubject"> + update t_bank_subject + <trim prefix="SET" suffixOverrides=","> + <if test="bankId != null">bank_id = #{bankId},</if> + <if test="topicTitle != null">topic_title = #{topicTitle},</if> + <if test="topicOption != null">topic_option = #{topicOption},</if> + <if test="answer != null">answer = #{answer},</if> + <if test="datetime != null">datetime = #{datetime},</if> + </trim> + where subject_id = #{subjectId} + </update> + + <delete id="deleteTBankSubjectById" parameterType="Long"> + delete from t_bank_subject where subject_id = #{subjectId} + </delete> + + <delete id="deleteTBankSubjectByIds" parameterType="String"> + delete from t_bank_subject where subject_id in + <foreach item="subjectId" collection="array" open="(" separator="," close=")"> + #{subjectId} + </foreach> + </delete> +</mapper> \ No newline at end of file diff --git a/danger-manage-system/src/main/resources/mapper/system/TEmergencyDrillMapper.xml b/danger-manage-system/src/main/resources/mapper/system/TEmergencyDrillMapper.xml index 33521a7..77667cc 100644 --- a/danger-manage-system/src/main/resources/mapper/system/TEmergencyDrillMapper.xml +++ b/danger-manage-system/src/main/resources/mapper/system/TEmergencyDrillMapper.xml @@ -106,4 +106,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{drillId} </foreach> </delete> + + <!--应急演练统计查询--> + <select id="countList" resultType="com.zehong.system.domain.DrillStatistics"> + select * from ( + select date_format(create_time, '%Y-%m') mont , count(*)as totalNumberDrills + from t_emergency_drill + group by date_format(create_time, '%Y-%m') ) t + <if test="mont != null and mont != ''"> + where mont =#{mont} + </if> + </select> </mapper> diff --git a/danger-manage-system/src/main/resources/mapper/system/TTrainCourseBankMapper.xml b/danger-manage-system/src/main/resources/mapper/system/TTrainCourseBankMapper.xml index 2980e6c..bf62239 100644 --- a/danger-manage-system/src/main/resources/mapper/system/TTrainCourseBankMapper.xml +++ b/danger-manage-system/src/main/resources/mapper/system/TTrainCourseBankMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zehong.system.mapper.TTrainCourseBankMapper"> - + <resultMap type="TTrainCourseBank" id="TTrainCourseBankResult"> <result property="bankId" column="bank_id" /> <result property="deptId" column="dept_id" /> @@ -21,16 +21,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <select id="selectTTrainCourseBankList" parameterType="TTrainCourseBank" resultMap="TTrainCourseBankResult"> <include refid="selectTTrainCourseBankVo"/> - <where> + <where> <if test="bankName != null and bankName != ''"> and bank_name like concat('%', #{bankName}, '%')</if> </where> + group by bank_id desc </select> - + <select id="selectTTrainCourseBankById" parameterType="Long" resultMap="TTrainCourseBankResult"> <include refid="selectTTrainCourseBankVo"/> where bank_id = #{bankId} </select> - + <insert id="insertTTrainCourseBank" parameterType="TTrainCourseBank" useGeneratedKeys="true" keyProperty="bankId"> insert into t_train_course_bank <trim prefix="(" suffix=")" suffixOverrides=","> @@ -72,9 +73,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" </delete> <delete id="deleteTTrainCourseBankByIds" parameterType="String"> - delete from t_train_course_bank where bank_id in + delete from t_train_course_bank where bank_id in <foreach item="bankId" collection="array" open="(" separator="," close=")"> #{bankId} </foreach> </delete> -</mapper> \ No newline at end of file +</mapper> diff --git a/danger-manage-web/package.json b/danger-manage-web/package.json index a139d7a..6287610 100644 --- a/danger-manage-web/package.json +++ b/danger-manage-web/package.json @@ -33,7 +33,7 @@ ], "repository": {}, "dependencies": { - "@riophae/vue-treeselect": "0.4.0", + "@riophae/vue-treeselect": "^0.4.0", "axios": "0.21.0", "clipboard": "2.0.6", "core-js": "^3.19.1", diff --git a/danger-manage-web/src/api/safetyManagement/staff.js b/danger-manage-web/src/api/safetyManagement/staff.js index 1cf99f5..d0dcd75 100644 --- a/danger-manage-web/src/api/safetyManagement/staff.js +++ b/danger-manage-web/src/api/safetyManagement/staff.js @@ -10,6 +10,15 @@ export function listStaff(query) { }) } +// 查询员工信æ¯ç®¡ç†åˆ—表 æ— åˆ†é¡µ +export function TStaffList(query) { + return request({ + url: '/safetyManagement/staff/TStaffList', + method: 'get', + params: query + }) +} + // 查询员工信æ¯ç®¡ç†è¯¦ç»† export function getStaff(staffId) { return request({ diff --git a/danger-manage-web/src/api/system/emergencyDrill.js b/danger-manage-web/src/api/system/emergencyDrill.js new file mode 100644 index 0000000..0a96692 --- /dev/null +++ b/danger-manage-web/src/api/system/emergencyDrill.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询应急演练统计列表 +export function listDrill(query) { + return request({ + url: '/system/drill/countList', + method: 'get', + params: query + }) +} + + +// 查询应急演练详细 +export function getDrill(drillId) { + return request({ + url: '/system/drill/' + drillId, + method: 'get' + }) +} + +// 新增应急演练 +export function addDrill(data) { + return request({ + url: '/system/drill', + method: 'post', + data: data + }) +} + +// 修改应急演练 +export function updateDrill(data) { + return request({ + url: '/system/drill', + method: 'put', + data: data + }) +} + +// åˆ é™¤åº”æ€¥æ¼”ç»ƒ +export function delDrill(drillId) { + return request({ + url: '/system/drill/' + drillId, + method: 'delete' + }) +} + +// 导出应急演练 +export function exportDrill(query) { + return request({ + url: '/system/drill/export', + method: 'get', + params: query + }) +} diff --git a/danger-manage-web/src/views/system/bank/index.vue b/danger-manage-web/src/views/system/bank/index.vue new file mode 100644 index 0000000..f3639fb --- /dev/null +++ b/danger-manage-web/src/views/system/bank/index.vue @@ -0,0 +1,297 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="题库å称" prop="bankName"> + <el-input + v-model="queryParams.bankName" + placeholder="请输入题库å称" + clearable + size="small" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">æœç´¢</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">é‡ç½®</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + >新增</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + >修改</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + >åˆ é™¤</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + :loading="exportLoading" + @click="handleExport" + >导出</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="bankList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="题库å称" align="center" prop="bankName" /> + <el-table-column label="æ“作" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + >修改</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + >åˆ é™¤</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- æ·»åŠ æˆ–ä¿®æ”¹bank对è¯æ¡† --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + + <el-form-item label="题库å称" prop="bankName"> + <el-input v-model="form.bankName" placeholder="请输入题库å称" /> + </el-form-item> + + <el-form-item label="归属部门" prop="deptId"> + <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" /> + </el-form-item> + </el-form> + + + + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">ç¡® 定</el-button> + <el-button @click="cancel">å– æ¶ˆ</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listBank, getBank, delBank, addBank, updateBank, exportBank } from "@/api/system/bank"; +import { treeselect } from "@/api/system/dept"; +import Treeselect from "@riophae/vue-treeselect"; +import "@riophae/vue-treeselect/dist/vue-treeselect.css"; +export default { + name: "Bank", + components: { + components: { Treeselect }, + }, + data() { + return { + // é®ç½©å±‚ + loading: true, + // 导出é®ç½©å±‚ + exportLoading: false, + // 选ä¸æ•°ç»„ + ids: [], + // éžå•ä¸ªç¦ç”¨ + single: true, + // éžå¤šä¸ªç¦ç”¨ + multiple: true, + // 显示æœç´¢æ¡ä»¶ + showSearch: true, + // 总æ¡æ•° + total: 0, + // bankè¡¨æ ¼æ•°æ® + bankList: [], + // å¼¹å‡ºå±‚æ ‡é¢˜ + title: "", + // 是å¦æ˜¾ç¤ºå¼¹å‡ºå±‚ + open: false, + // éƒ¨é—¨æ ‘é€‰é¡¹ + deptOptions: undefined, + // 查询å‚æ•° + queryParams: { + pageNum: 1, + pageSize: 10, + bankName: null, + }, + // 表å•å‚æ•° + form: { + }, + // 表å•æ ¡éªŒ + rules: { + bankName: [ + { required: true, message: "题库å称ä¸èƒ½ä¸ºç©º", trigger: "blur" } + ], + } + }; + }, + created() { + this.getList(); + this.getTreeselect(); + }, + methods: { + // 节点å•å‡»äº‹ä»¶ + handleNodeClick(data) { + this.queryParams.deptId = data.id; + this.getList(); + }, + /** 查询bank列表 */ + getList() { + this.loading = true; + listBank(this.queryParams).then(response => { + this.bankList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // å–消按钮 + cancel() { + this.open = false; + this.reset(); + }, + // 表å•é‡ç½® + reset() { + this.form = { + bankId: null, + deptId: undefined, + bankName: null, + isDel: null, + createBy: null, + createTime: null, + updateBy: null, + updateTime: null, + }; + this.resetForm("form"); + }, + /** æœç´¢æŒ‰é’®æ“作 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** é‡ç½®æŒ‰é’®æ“作 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 多选框选ä¸æ•°æ® + handleSelectionChange(selection) { + this.ids = selection.map(item => item.bankId) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 新增按钮æ“作 */ + handleAdd() { + this.getTreeselect(); + this.reset(); + this.open = true; + this.title = "æ·»åŠ é¢˜åº“"; + }, + /** 修改按钮æ“作 */ + handleUpdate(row) { + this.getTreeselect(); + this.reset(); + const bankId = row.bankId || this.ids + getBank(bankId).then(response => { + this.form = response.data; + this.open = true; + this.title = "修改题库"; + }); + }, + /** æ交按钮 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.bankId != null) { + updateBank(this.form).then(response => { + this.msgSuccess("修改æˆåŠŸ"); + this.open = false; + this.getList(); + }); + } else { + addBank(this.form).then(response => { + console.log(response) + this.msgSuccess("新增æˆåŠŸ"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** åˆ é™¤æŒ‰é’®æ“作 */ + handleDelete(row) { + const bankIds = row.bankId || this.ids; + this.$confirm('是å¦ç¡®è®¤åˆ 除bankç¼–å·ä¸º"' + bankIds + '"çš„æ•°æ®é¡¹?', "è¦å‘Š", { + confirmButtonText: "确定", + cancelButtonText: "å–消", + type: "warning" + }).then(function() { + return delBank(bankIds); + }).then(() => { + this.getList(); + this.msgSuccess("åˆ é™¤æˆåŠŸ"); + }).catch(() => {}); + }, + /** 导出按钮æ“作 */ + handleExport() { + const queryParams = this.queryParams; + this.$confirm('是å¦ç¡®è®¤å¯¼å‡ºæ‰€æœ‰bankæ•°æ®é¡¹?', "è¦å‘Š", { + confirmButtonText: "确定", + cancelButtonText: "å–消", + type: "warning" + }).then(() => { + this.exportLoading = true; + return exportBank(queryParams); + }).then(response => { + this.download(response.msg); + this.exportLoading = false; + }).catch(() => {}); + }, + /** æŸ¥è¯¢éƒ¨é—¨ä¸‹æ‹‰æ ‘ç»“æž„ */ + getTreeselect() { + treeselect().then(response => { + console.log('返回值') + console.log(response.data) + this.deptOptions = response.data; + }); + }, + } +}; +</script> diff --git a/danger-manage-web/src/views/system/drill/index.vue b/danger-manage-web/src/views/system/drill/index.vue index fbd4fbf..50acc30 100644 --- a/danger-manage-web/src/views/system/drill/index.vue +++ b/danger-manage-web/src/views/system/drill/index.vue @@ -142,7 +142,7 @@ /> <!-- æ·»åŠ æˆ–ä¿®æ”¹åº”æ€¥æ¼”ç»ƒå¯¹è¯æ¡† --> - <el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body> + <el-dialog :title="title" :visible.sync="open" width="1600px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="90px"> <div class="division"> <div class="div-kuang" style="width: 40%;"> @@ -188,14 +188,29 @@ <el-input type="textarea" v-model="form.drillObjective" placeholder="请输入演练目的" /> </el-form-item> </div> - <div class="div-kuang" style="width: 58%;margin-left: 2%"> - <el-form-item label="å‚演人员" prop="drillPeople"> - <el-input v-model="form.drillPeople" type="textarea" placeholder="请输入内容" /> - </el-form-item> + <div class="div-kuang" style="width: 68%;margin-left: 2%"> +<!-- <el-form-item label="å‚演人员" prop="drillPeople">--> +<!-- <el-input v-model="form.drillPeople" type="textarea" placeholder="请输入内容" />--> +<!-- </el-form-item>--> <el-form-item label="演练内容"> <editor v-model="form.drillContent" :min-height="240"/> </el-form-item> </div> + <div class="div-kuang" style="width: 95%;margin-left: 2%"> + <el-form-item label="å‚演人员" prop="drillPeople"> + <el-transfer + filterable + :filter-method="filterMethod" + filter-placeholder="请输入å‚演人员姓å" + v-model="value" + :titles="['员工信æ¯', 'å‚演人员']" + :data="data" + @change="handleChange"> + </el-transfer> + </el-form-item> + </div> + + </div> @@ -259,7 +274,6 @@ <!--</el-form-item>--> </el-form> </el-dialog> - <!--评估--> <el-dialog title="评估" :visible.sync="dialogFormVisible"> <el-form ref="form" :model="form"> @@ -280,8 +294,8 @@ <script> import { listDrill, getDrill, delDrill, addDrill, updateDrill, exportDrill } from "@/api/system/drill"; +import { TStaffList } from "@/api/safetyManagement/staff"; import Editor from '@/components/Editor'; - export default { name: "Drill", components: { @@ -289,6 +303,14 @@ export default { }, data() { return { + data: [], + value: [], + //选ä¸ä¸‹æ ‡ + check:[], + filterMethod(query, item) { + return item.pinyin.indexOf(query) > -1; + }, + test:null, // é®ç½©å±‚ loading: true, readOnly:true, @@ -357,6 +379,25 @@ export default { }); }, methods: { + /**ç©¿æ¢æ¡†æ•°æ®æŸ¥è¯¢*/ + generateData(){ + const data = []; + TStaffList(this.addDateRange(this.queryParams, this.dateRange)).then(response => { + response.rows.forEach((city, index) => { + data.push({ + label: city.staffName, + key: index, + pinyin: city.staffName + }); + }) + }); + this.value=['å™å“亚'] + this.data=data; + }, + /**å‚演人员选ä¸ä¿¡æ¯æ–¹æ³• 获å–æ•°ç»„ä¸‹æ ‡*/ + handleChange(value, direction, movedKeys) { + this.check=value; + }, /** 查询应急演练列表 */ getList() { this.loading = true; @@ -419,6 +460,12 @@ export default { }, /** 新增按钮æ“作 */ handleAdd() { + // listStaff(this.addDateRange(this.queryParams, this.dateRange)).then(response => { + // console.log(response.rows) + // this.cities = response.rows.staffName; + // generateData.cities=['shanghai', 'beijing', 'guangzhou', 'shenzhen', 'nanjing', 'xian', 'chengdu'] + // }); + this.generateData(); this.reset(); this.open = true; this.title = "æ·»åŠ åº”æ€¥æ¼”ç»ƒ"; @@ -459,11 +506,16 @@ export default { this.getList(); }); } else { - addDrill(this.form).then(response => { - this.msgSuccess("新增æˆåŠŸ"); - this.open = false; - this.getList(); - }); + this.check.forEach((city, index) => { + this.test=this.data[index] + console.log(this.test.label) + }) + + // addDrill(this.form).then(response => { + // this.msgSuccess("新增æˆåŠŸ"); + // this.open = false; + // this.getList(); + // }); } } }); diff --git a/danger-manage-web/src/views/system/emergencyDrill/index.vue b/danger-manage-web/src/views/system/emergencyDrill/index.vue new file mode 100644 index 0000000..213435f --- /dev/null +++ b/danger-manage-web/src/views/system/emergencyDrill/index.vue @@ -0,0 +1,303 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> + + + <el-form-item label="演练月份" prop="releaseTime"> + <el-date-picker + v-model="queryParams.mont" + value-format="yyyy-MM" + type="month" + placeholder="选择日期" + > + </el-date-picker> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">æœç´¢</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">é‡ç½®</el-button> + </el-form-item> + </el-form> + + + <el-table v-loading="loading" :data="drillList" @selection-change="handleSelectionChange"> + <!--<el-table-column type="selection" width="55" align="center" />--> + <el-table-column label="月份" align="center" prop="mont" /> + <el-table-column label="演练总次数" align="center" prop="totalNumberDrills" /> + <el-table-column label="å‚演人数" align="center" prop="numberParticipants" /> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + + </div> +</template> + +<script> +import { listDrill, getDrill, delDrill, addDrill, updateDrill, exportDrill } from "@/api/system/emergencyDrill"; +import { listStaff } from "@/api/safetyManagement/staff"; +import Editor from '@/components/Editor'; +export default { + name: "Drill", + components: { + Editor, + }, + data() { + const generateData = _ => { + + const data = []; + const cities = ['shanghai', 'beijing', 'guangzhou', 'shenzhen', 'nanjing', 'xian', 'chengdu']; + const pinyin = ['shanghai', 'beijing', 'guangzhou', 'shenzhen', 'nanjing', 'xian', 'chengdu']; + cities.forEach((city, index) => { + data.push({ + label: city, + key: index, + pinyin: pinyin[index] + }); + }); + return data; + }; + return { + data: generateData(), + value: [], + filterMethod(query, item) { + return item.pinyin.indexOf(query) > -1; + }, + // é®ç½©å±‚ + loading: true, + readOnly:true, + // 导出é®ç½©å±‚ + exportLoading: false, + // 选ä¸æ•°ç»„ + ids: [], + // éžå•ä¸ªç¦ç”¨ + single: true, + // éžå¤šä¸ªç¦ç”¨ + multiple: true, + // 显示æœç´¢æ¡ä»¶ + showSearch: true, + // 总æ¡æ•° + total: 0, + // åº”æ€¥æ¼”ç»ƒè¡¨æ ¼æ•°æ® + drillList: [], + // å¼¹å‡ºå±‚æ ‡é¢˜ + title: "", + // 是å¦æ˜¾ç¤ºå¼¹å‡ºå±‚ + open: false, + open2:false, + //评估 + dialogFormVisible:false, + // 演练类型å—å…¸ + drillTypeOptions: [], + // 演练形å¼å—å…¸ + drillFormOptions: [], + // 查询å‚æ•° + queryParams: { + pageNum: 1, + pageSize: 10, + mont:null, + }, + // 表å•å‚æ•° + form: {}, + // 表å•æ ¡éªŒ + rules: { + + } + }; + }, + created() { + this.getList(); + this.getDicts("t_drill_type").then(response => { + this.drillTypeOptions = response.data; + }); + this.getDicts("t_drill_form").then(response => { + this.drillFormOptions = response.data; + }); + }, + methods: { + /** 查询应急演练列表 */ + getList() { + this.loading = true; + listDrill(this.queryParams).then(response => { + this.drillList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 演练类型å—典翻译 + drillTypeFormat(row, column) { + return this.selectDictLabel(this.drillTypeOptions, row.drillType); + }, + // 演练形å¼å—典翻译 + drillFormFormat(row, column) { + return this.selectDictLabel(this.drillFormOptions, row.drillForm); + }, + // å–消按钮 + cancel() { + this.open = false; + this.reset(); + }, + // 表å•é‡ç½® + reset() { + this.form = { + drillId: null, + drillName: null, + drillAddress: null, + drillUnit: null, + drillTime: null, + drillType: null, + drillForm: null, + drillObjective: null, + drillPeople: null, + drillContent: null, + assessment: null, + createTime: null, + createBy: null, + isDel: null, + evaluate:null, + measures:null, + }; + this.resetForm("form"); + }, + /** æœç´¢æŒ‰é’®æ“作 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** é‡ç½®æŒ‰é’®æ“作 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 多选框选ä¸æ•°æ® + handleSelectionChange(selection) { + this.ids = selection.map(item => item.drillId) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 新增按钮æ“作 */ + handleAdd() { + listStaff(this.addDateRange(this.queryParams, this.dateRange)).then(response => { + console.log(response.rows) + this.cities = response.rows.staffName; + generateData.cities=['shanghai', 'beijing', 'guangzhou', 'shenzhen', 'nanjing', 'xian', 'chengdu'] + }); + this.reset(); + this.open = true; + this.title = "æ·»åŠ åº”æ€¥æ¼”ç»ƒ"; + }, + /** 修改按钮æ“作 */ + handleUpdate(row) { + this.reset(); + const drillId = row.drillId || this.ids + getDrill(drillId).then(response => { + this.form = response.data; + this.open = true; + this.title = "修改应急演练"; + }); + }, + /** 评估按钮æ“作 */ + assessment(row) { + this.reset(); + const drillId = row.drillId || this.ids + getDrill(drillId).then(response => { + this.form = response.data; + this.dialogFormVisible = true; + }); + }, + /*评估æ交*/ + submitAssessment(){ + + }, + /** æ交按钮 */ + submitForm() { + this.$refs["form"].validate(valid => { + console.log(this.form.drillId) + if (valid) { + if (this.form.drillId != null) { + updateDrill(this.form).then(response => { + this.msgSuccess("修改æˆåŠŸ"); + this.open = false; + this.dialogFormVisible=false; + this.getList(); + }); + } else { + addDrill(this.form).then(response => { + this.msgSuccess("新增æˆåŠŸ"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 详情按钮æ“作 */ + handleDetail(row) { + getDrill(row.drillId).then(response => { + this.form = response.data; + this.form.drillType = this.selectDictLabel(this.drillTypeOptions, row.drillType); + this.form.drillForm = this.selectDictLabel(this.drillFormOptions, row.drillForm); + this.open2 = true; + }); + }, + /** åˆ é™¤æŒ‰é’®æ“作 */ + handleDelete(row) { + //const drillIds = row.drillId || this.ids; + this.$confirm('是å¦ç¡®è®¤åˆ 除数æ®é¡¹?', "è¦å‘Š", { + confirmButtonText: "确定", + cancelButtonText: "å–消", + type: "warning" + }).then(function() { + return updateDrill({drillId:row.drillId,isDel:1}); + }).then(() => { + this.getList(); + this.msgSuccess("åˆ é™¤æˆåŠŸ"); + }).catch(() => {}); + }, + /** 导出按钮æ“作 */ + handleExport() { + const queryParams = this.queryParams; + this.$confirm('是å¦ç¡®è®¤å¯¼å‡ºæ‰€æœ‰åº”急演练数æ®é¡¹?', "è¦å‘Š", { + confirmButtonText: "确定", + cancelButtonText: "å–消", + type: "warning" + }).then(() => { + this.exportLoading = true; + return exportDrill(queryParams); + }).then(response => { + this.download(response.msg); + this.exportLoading = false; + }).catch(() => {}); + } + } +}; +</script> +<style> + .div-kuang{ + background: white; + padding-top:20px ; + padding-right: 20px; + border-radius: 10px; + } + .division{ + display:flex; + flex-direction:row; + justify-content:flex-start; + } +</style> +<style lang="scss" scoped> + ::v-deep .el-select{ + width: 100%; + } + ::v-deep .el-dialog__header{ + border-bottom: 1px solid #ccc; + } + ::v-deep .el-dialog{ + background: #f7f7f7; + } +</style> diff --git a/danger-manage-web/vue.config.js b/danger-manage-web/vue.config.js index 4f87d91..a50b531 100644 --- a/danger-manage-web/vue.config.js +++ b/danger-manage-web/vue.config.js @@ -34,8 +34,8 @@ module.exports = { proxy: { // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VUE_APP_BASE_API]: { - target: process.env.VUE_APP_TARGET, - //target: `http://192.168.31.87:8908/dangerManage`, + //target: process.env.VUE_APP_TARGET, + target: `http://192.168.2.2:8908/dangerManage`, changeOrigin: true, pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' -- 2.18.1