فهرست منبع

Merge branch 'refs/heads/master' into sso

bihuisong 10 ماه پیش
والد
کامیت
9d948620e8
66فایلهای تغییر یافته به همراه4088 افزوده شده و 366 حذف شده
  1. 108 0
      zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkEmergencyRescueTeamController.java
  2. 106 0
      zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkEmergencyShelterController.java
  3. 107 0
      zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkRescueSuppliesController.java
  4. 273 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkEmergencyRescueTeam.java
  5. 155 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkEmergencyShelter.java
  6. 152 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkRescueSupplies.java
  7. 66 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkEmergencyRescueTeamMapper.java
  8. 63 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkEmergencyShelterMapper.java
  9. 66 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkRescueSuppliesMapper.java
  10. 66 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkEmergencyRescueTeamService.java
  11. 64 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkEmergencyShelterService.java
  12. 65 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkRescueSuppliesService.java
  13. 104 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkEmergencyRescueTeamServiceImpl.java
  14. 91 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkEmergencyShelterServiceImpl.java
  15. 96 0
      zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkRescueSuppliesServiceImpl.java
  16. 235 0
      zhsq_qk-system/src/main/resources/mapper/system/QkEmergencyRescueTeamMapper.xml
  17. 169 0
      zhsq_qk-system/src/main/resources/mapper/system/QkEmergencyShelterMapper.xml
  18. 162 0
      zhsq_qk-system/src/main/resources/mapper/system/QkRescueSuppliesMapper.xml
  19. 7 0
      zhsq_qk-ui/src/api/components/supermap.js
  20. 40 0
      zhsq_qk-ui/src/api/system/aqyj.js
  21. 44 0
      zhsq_qk-ui/src/api/system/shelter.js
  22. 44 0
      zhsq_qk-ui/src/api/system/supplies.js
  23. 44 0
      zhsq_qk-ui/src/api/system/team.js
  24. 7 7
      zhsq_qk-ui/src/assets/geoJson/seven.json
  25. BIN
      zhsq_qk-ui/src/assets/images/cameraType/fxwz.png
  26. BIN
      zhsq_qk-ui/src/assets/images/cameraType/jyd.png
  27. BIN
      zhsq_qk-ui/src/assets/images/cameraType/yjcs.png
  28. BIN
      zhsq_qk-ui/src/assets/images/home-btn.png
  29. BIN
      zhsq_qk-ui/src/assets/images/nav-background-left-on.png
  30. BIN
      zhsq_qk-ui/src/assets/images/nav-background-left.png
  31. BIN
      zhsq_qk-ui/src/assets/images/nav-background-right-on.png
  32. BIN
      zhsq_qk-ui/src/assets/images/nav-background-right.png
  33. 14 14
      zhsq_qk-ui/src/assets/images/qkq_body.css
  34. BIN
      zhsq_qk-ui/src/assets/images/qkq_btmbg.png
  35. BIN
      zhsq_qk-ui/src/assets/images/qkq_dw.png
  36. BIN
      zhsq_qk-ui/src/assets/images/qkq_icon1.png
  37. BIN
      zhsq_qk-ui/src/assets/images/qkq_icon2.png
  38. BIN
      zhsq_qk-ui/src/assets/images/qkq_icon3.png
  39. BIN
      zhsq_qk-ui/src/assets/images/qkq_icon4.png
  40. BIN
      zhsq_qk-ui/src/assets/images/qkq_icon5.png
  41. BIN
      zhsq_qk-ui/src/assets/images/qkq_icon6.png
  42. BIN
      zhsq_qk-ui/src/assets/images/qkq_icon7.png
  43. BIN
      zhsq_qk-ui/src/assets/images/qkq_icon8.png
  44. BIN
      zhsq_qk-ui/src/assets/images/qkq_iconcon.png
  45. BIN
      zhsq_qk-ui/src/assets/images/qkq_iconcon_on.png
  46. 17 5
      zhsq_qk-ui/src/assets/images/qkq_index.css
  47. BIN
      zhsq_qk-ui/src/assets/images/qkq_leftbg.png
  48. BIN
      zhsq_qk-ui/src/assets/images/qkq_mapcon.png
  49. BIN
      zhsq_qk-ui/src/assets/images/qkq_rightbg.png
  50. 13 6
      zhsq_qk-ui/src/assets/images/qkq_sprh.css
  51. BIN
      zhsq_qk-ui/src/assets/images/qkq_topbg.png
  52. BIN
      zhsq_qk-ui/src/assets/images/sprhbj-bottom.png
  53. 3 3
      zhsq_qk-ui/src/map3d/index.vue
  54. 6 6
      zhsq_qk-ui/src/map3d/mapConfig.js
  55. 223 118
      zhsq_qk-ui/src/views/fusion/aqyj.vue
  56. 1 1
      zhsq_qk-ui/src/views/fusion/bjzshz.vue
  57. 1 1
      zhsq_qk-ui/src/views/fusion/fwyq.vue
  58. 4 1
      zhsq_qk-ui/src/views/fusion/index.vue
  59. 1 1
      zhsq_qk-ui/src/views/fusion/jjyx.vue
  60. 1 1
      zhsq_qk-ui/src/views/fusion/yshj_new.vue
  61. 431 195
      zhsq_qk-ui/src/views/supermap/supermap.vue
  62. 17 4
      zhsq_qk-ui/src/views/system/camera/index.vue
  63. 324 0
      zhsq_qk-ui/src/views/system/shelter/index.vue
  64. 8 3
      zhsq_qk-ui/src/views/system/station/index.vue
  65. 334 0
      zhsq_qk-ui/src/views/system/supplies/index.vue
  66. 356 0
      zhsq_qk-ui/src/views/system/team/index.vue

+ 108 - 0
zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkEmergencyRescueTeamController.java

@@ -0,0 +1,108 @@
+package zhsq_qk.web.controller.system;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import zhsq_qk.common.annotation.Log;
+import zhsq_qk.common.core.controller.BaseController;
+import zhsq_qk.common.core.domain.AjaxResult;
+import zhsq_qk.common.core.page.TableDataInfo;
+import zhsq_qk.common.enums.BusinessType;
+import zhsq_qk.common.utils.poi.ExcelUtil;
+import zhsq_qk.system.domain.QkEmergencyRescueTeam;
+import zhsq_qk.system.service.IQkEmergencyRescueTeamService;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 抢险救援队Controller
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+@RestController
+@RequestMapping("/system/team")
+public class QkEmergencyRescueTeamController extends BaseController {
+    @Autowired
+    private IQkEmergencyRescueTeamService qkEmergencyRescueTeamService;
+
+    /**
+     * 查询抢险救援队列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:team:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(QkEmergencyRescueTeam qkEmergencyRescueTeam) {
+        startPage();
+        List<QkEmergencyRescueTeam> list = qkEmergencyRescueTeamService.selectQkEmergencyRescueTeamList(qkEmergencyRescueTeam);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出抢险救援队列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:team:export')")
+    @Log(title = "抢险救援队", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, QkEmergencyRescueTeam qkEmergencyRescueTeam) {
+        List<QkEmergencyRescueTeam> list = qkEmergencyRescueTeamService.selectQkEmergencyRescueTeamList(qkEmergencyRescueTeam);
+        ExcelUtil<QkEmergencyRescueTeam> util = new ExcelUtil<QkEmergencyRescueTeam>(QkEmergencyRescueTeam.class);
+        util.exportExcel(response, list, "抢险救援队数据");
+    }
+
+    /**
+     * 获取抢险救援队详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:team:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(qkEmergencyRescueTeamService.selectQkEmergencyRescueTeamById(id));
+    }
+
+    /**
+     * 新增抢险救援队
+     */
+    @PreAuthorize("@ss.hasPermi('system:team:add')")
+    @Log(title = "抢险救援队", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody QkEmergencyRescueTeam qkEmergencyRescueTeam) {
+        return toAjax(qkEmergencyRescueTeamService.insertQkEmergencyRescueTeam(qkEmergencyRescueTeam));
+    }
+
+    /**
+     * 修改抢险救援队
+     */
+    @PreAuthorize("@ss.hasPermi('system:team:edit')")
+    @Log(title = "抢险救援队", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody QkEmergencyRescueTeam qkEmergencyRescueTeam) {
+        return toAjax(qkEmergencyRescueTeamService.updateQkEmergencyRescueTeam(qkEmergencyRescueTeam));
+    }
+
+    /**
+     * 删除抢险救援队
+     */
+    @PreAuthorize("@ss.hasPermi('system:team:remove')")
+    @Log(title = "抢险救援队", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(qkEmergencyRescueTeamService.deleteQkEmergencyRescueTeamByIds(ids));
+    }
+
+    /**
+     * 可视化查询抢险救援队列表
+     */
+    @GetMapping("/selectQkEmergencyRescueTeamAllList")
+    public AjaxResult selectQkEmergencyRescueTeamAllList() {
+        return success(qkEmergencyRescueTeamService.selectQkEmergencyRescueTeamAllList());
+    }
+
+    /**
+     * 可视化根据deptId查询抢险救援队列表
+     */
+    @GetMapping(value = "/selectQkEmergencyRescueTeamByDeptId/{id}")
+    public AjaxResult selectQkEmergencyRescueTeamByDeptId(@PathVariable("id") Long id) {
+        return success(qkEmergencyRescueTeamService.selectQkEmergencyRescueTeamByDeptId(id));
+    }
+
+}

+ 106 - 0
zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkEmergencyShelterController.java

@@ -0,0 +1,106 @@
+package zhsq_qk.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.access.prepost.PreAuthorize;
+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 zhsq_qk.common.annotation.Log;
+import zhsq_qk.common.core.controller.BaseController;
+import zhsq_qk.common.core.domain.AjaxResult;
+import zhsq_qk.common.enums.BusinessType;
+import zhsq_qk.system.domain.QkEmergencyShelter;
+import zhsq_qk.system.service.IQkEmergencyShelterService;
+import zhsq_qk.common.utils.poi.ExcelUtil;
+import zhsq_qk.common.core.page.TableDataInfo;
+
+/**
+ * 应急避难所Controller
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+@RestController
+@RequestMapping("/system/shelter")
+public class QkEmergencyShelterController extends BaseController {
+    @Autowired
+    private IQkEmergencyShelterService qkEmergencyShelterService;
+
+    /**
+     * 查询应急避难所列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:shelter:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(QkEmergencyShelter qkEmergencyShelter) {
+        startPage();
+        List<QkEmergencyShelter> list = qkEmergencyShelterService.selectQkEmergencyShelterList(qkEmergencyShelter);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出应急避难所列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:shelter:export')")
+    @Log(title = "应急避难所", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, QkEmergencyShelter qkEmergencyShelter) {
+        List<QkEmergencyShelter> list = qkEmergencyShelterService.selectQkEmergencyShelterList(qkEmergencyShelter);
+        ExcelUtil<QkEmergencyShelter> util = new ExcelUtil<QkEmergencyShelter>(QkEmergencyShelter. class);
+        util.exportExcel(response, list, "应急避难所数据");
+    }
+
+    /**
+     * 获取应急避难所详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:shelter:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(qkEmergencyShelterService.selectQkEmergencyShelterById(id));
+    }
+
+    /**
+     * 新增应急避难所
+     */
+    @PreAuthorize("@ss.hasPermi('system:shelter:add')")
+    @Log(title = "应急避难所", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody QkEmergencyShelter qkEmergencyShelter) {
+        return toAjax(qkEmergencyShelterService.insertQkEmergencyShelter(qkEmergencyShelter));
+    }
+
+    /**
+     * 修改应急避难所
+     */
+    @PreAuthorize("@ss.hasPermi('system:shelter:edit')")
+    @Log(title = "应急避难所", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody QkEmergencyShelter qkEmergencyShelter) {
+        return toAjax(qkEmergencyShelterService.updateQkEmergencyShelter(qkEmergencyShelter));
+    }
+
+    /**
+     * 删除应急避难所
+     */
+    @PreAuthorize("@ss.hasPermi('system:shelter:remove')")
+    @Log(title = "应急避难所", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(qkEmergencyShelterService.deleteQkEmergencyShelterByIds(ids));
+    }
+
+    /**
+     * 可视化查询应急避难所列表
+     */
+    @GetMapping("/selectQkEmergencyShelterAllList")
+    public AjaxResult selectQkEmergencyShelterAllList() {
+        return success(qkEmergencyShelterService.selectQkEmergencyShelterAllList());
+    }
+}

+ 107 - 0
zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkRescueSuppliesController.java

@@ -0,0 +1,107 @@
+package zhsq_qk.web.controller.system;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import zhsq_qk.common.annotation.Log;
+import zhsq_qk.common.core.controller.BaseController;
+import zhsq_qk.common.core.domain.AjaxResult;
+import zhsq_qk.common.core.page.TableDataInfo;
+import zhsq_qk.common.enums.BusinessType;
+import zhsq_qk.common.utils.poi.ExcelUtil;
+import zhsq_qk.system.domain.QkRescueSupplies;
+import zhsq_qk.system.service.IQkRescueSuppliesService;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 防汛抗旱物资储备Controller
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+@RestController
+@RequestMapping("/system/supplies")
+public class QkRescueSuppliesController extends BaseController {
+    @Autowired
+    private IQkRescueSuppliesService qkRescueSuppliesService;
+
+    /**
+     * 查询防汛抗旱物资储备列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:supplies:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(QkRescueSupplies qkRescueSupplies) {
+        startPage();
+        List<QkRescueSupplies> list = qkRescueSuppliesService.selectQkRescueSuppliesList(qkRescueSupplies);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出防汛抗旱物资储备列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:supplies:export')")
+    @Log(title = "防汛抗旱物资储备", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, QkRescueSupplies qkRescueSupplies) {
+        List<QkRescueSupplies> list = qkRescueSuppliesService.selectQkRescueSuppliesList(qkRescueSupplies);
+        ExcelUtil<QkRescueSupplies> util = new ExcelUtil<QkRescueSupplies>(QkRescueSupplies.class);
+        util.exportExcel(response, list, "防汛抗旱物资储备数据");
+    }
+
+    /**
+     * 获取防汛抗旱物资储备详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:supplies:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(qkRescueSuppliesService.selectQkRescueSuppliesById(id));
+    }
+
+    /**
+     * 新增防汛抗旱物资储备
+     */
+    @PreAuthorize("@ss.hasPermi('system:supplies:add')")
+    @Log(title = "防汛抗旱物资储备", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody QkRescueSupplies qkRescueSupplies) {
+        return toAjax(qkRescueSuppliesService.insertQkRescueSupplies(qkRescueSupplies));
+    }
+
+    /**
+     * 修改防汛抗旱物资储备
+     */
+    @PreAuthorize("@ss.hasPermi('system:supplies:edit')")
+    @Log(title = "防汛抗旱物资储备", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody QkRescueSupplies qkRescueSupplies) {
+        return toAjax(qkRescueSuppliesService.updateQkRescueSupplies(qkRescueSupplies));
+    }
+
+    /**
+     * 删除防汛抗旱物资储备
+     */
+    @PreAuthorize("@ss.hasPermi('system:supplies:remove')")
+    @Log(title = "防汛抗旱物资储备", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(qkRescueSuppliesService.deleteQkRescueSuppliesByIds(ids));
+    }
+
+    /**
+     * 可视化查询防汛抗旱物资储备列表
+     */
+    @GetMapping("/selectQkRescueSuppliesAllList")
+    public AjaxResult selectQkRescueSuppliesAllList() {
+        return success(qkRescueSuppliesService.selectQkRescueSuppliesAllList());
+    }
+
+    /**
+     * 可视化根据deptId查询防汛抗旱物资储备列表
+     */
+    @GetMapping("/selectQkRescueSuppliesByDeptId/{id}")
+    public AjaxResult selectQkRescueSuppliesByDeptId(@PathVariable("id") Long id) {
+        return success(qkRescueSuppliesService.selectQkRescueSuppliesByDeptId(id));
+    }
+}

+ 273 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkEmergencyRescueTeam.java

@@ -0,0 +1,273 @@
+package zhsq_qk.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import zhsq_qk.common.annotation.Excel;
+import zhsq_qk.common.core.domain.BaseEntity;
+import zhsq_qk.common.core.domain.entity.SysDept;
+
+/**
+ * 抢险救援队对象 qk_emergency_rescue_team
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+public class QkEmergencyRescueTeam extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @Excel(name = "姓名")
+    private String name;
+
+    /**
+     * 账号
+     */
+    @Excel(name = "账号")
+    private String userName;
+
+    /**
+     * 组织归属
+     */
+    @Excel(name = "组织归属")
+    private String dept;
+
+    /**
+     * 职务
+     */
+    @Excel(name = "职务")
+    private String post;
+
+    /**
+     * 单位
+     */
+    @Excel(name = "单位")
+    private String company;
+
+    /**
+     * 救援队
+     */
+    @Excel(name = "救援队")
+    private String emergencyRescue;
+
+    /**
+     * 市
+     */
+    @Excel(name = "市")
+    private String city;
+
+    /**
+     * 区县
+     */
+    @Excel(name = "区县")
+    private String area;
+
+    /**
+     * 乡镇
+     */
+    @Excel(name = "乡镇")
+    private String township;
+
+    /**
+     * 村
+     */
+    @Excel(name = "村")
+    private String village;
+
+    /**
+     * 手机号
+     */
+    @Excel(name = "手机号")
+    private String phone;
+
+    /**
+     * 防汛抗旱
+     */
+    @Excel(name = "防汛抗旱")
+    private String effect;
+
+    /**
+     * 经度
+     */
+    @Excel(name = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @Excel(name = "纬度")
+    private String latitude;
+
+    /**
+     * 所属部门id
+     */
+    private Long deptId;
+
+
+    private SysDept deptOne;
+
+
+    public SysDept getDeptOne() {
+        return deptOne;
+    }
+
+    public void setDeptOne(SysDept deptOne) {
+        this.deptOne = deptOne;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setDept(String dept) {
+        this.dept = dept;
+    }
+
+    public String getDept() {
+        return dept;
+    }
+
+    public void setPost(String post) {
+        this.post = post;
+    }
+
+    public String getPost() {
+        return post;
+    }
+
+    public void setCompany(String company) {
+        this.company = company;
+    }
+
+    public String getCompany() {
+        return company;
+    }
+
+    public void setEmergencyRescue(String emergencyRescue) {
+        this.emergencyRescue = emergencyRescue;
+    }
+
+    public String getEmergencyRescue() {
+        return emergencyRescue;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setArea(String area) {
+        this.area = area;
+    }
+
+    public String getArea() {
+        return area;
+    }
+
+    public void setTownship(String township) {
+        this.township = township;
+    }
+
+    public String getTownship() {
+        return township;
+    }
+
+    public void setVillage(String village) {
+        this.village = village;
+    }
+
+    public String getVillage() {
+        return village;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setEffect(String effect) {
+        this.effect = effect;
+    }
+
+    public String getEffect() {
+        return effect;
+    }
+
+    public void setLongitude(String longitude) {
+        this.longitude = longitude;
+    }
+
+    public String getLongitude() {
+        return longitude;
+    }
+
+    public void setLatitude(String latitude) {
+        this.latitude = latitude;
+    }
+
+    public String getLatitude() {
+        return latitude;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("name", getName())
+                .append("userName", getUserName())
+                .append("dept", getDept())
+                .append("post", getPost())
+                .append("company", getCompany())
+                .append("emergencyRescue", getEmergencyRescue())
+                .append("city", getCity())
+                .append("area", getArea())
+                .append("township", getTownship())
+                .append("village", getVillage())
+                .append("phone", getPhone())
+                .append("effect", getEffect())
+                .append("longitude", getLongitude())
+                .append("latitude", getLatitude())
+                .append("deptId", getDeptId())
+                .toString();
+    }
+}

+ 155 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkEmergencyShelter.java

@@ -0,0 +1,155 @@
+package zhsq_qk.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import zhsq_qk.common.annotation.Excel;
+import zhsq_qk.common.core.domain.BaseEntity;
+
+/**
+ * 应急避难所对象 qk_emergency_shelter
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+public class QkEmergencyShelter extends BaseEntity
+        {
+private static final long serialVersionUID = 1L;
+
+        /** 主键id */
+        private Long id;
+
+        /** 避难场所名称 */
+                @Excel(name = "避难场所名称")
+        private String name;
+
+        /** 类型 */
+                @Excel(name = "类型")
+        private String type;
+
+        /** 地址 */
+                @Excel(name = "地址")
+        private String address;
+
+        /** 避难场所范围 */
+                @Excel(name = "避难场所范围")
+        private String range;
+
+        /** 避难场所现状描述 */
+                @Excel(name = "避难场所现状描述")
+        private String state;
+
+        /** 占地面积(m²) */
+                @Excel(name = "占地面积", readConverterExp = "m=²")
+        private String area;
+
+        /** 可转移安置人数(万人) */
+                @Excel(name = "可转移安置人数", readConverterExp = "可转移安置人数(万人)")
+        private String transferPerson;
+
+        /** 建设内容 */
+                @Excel(name = "建设内容")
+        private String constructionContent;
+
+        /** 经度 */
+                @Excel(name = "经度")
+        private String longitude;
+
+        /** 纬度 */
+                @Excel(name = "纬度")
+        private String latitude;
+
+        public void setId(Long id) {
+            this.id = id;
+        }
+
+        public Long getId() {
+            return id;
+        }
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public String getName() {
+            return name;
+        }
+        public void setType(String type) {
+            this.type = type;
+        }
+
+        public String getType() {
+            return type;
+        }
+        public void setAddress(String address) {
+            this.address = address;
+        }
+
+        public String getAddress() {
+            return address;
+        }
+        public void setRange(String range) {
+            this.range = range;
+        }
+
+        public String getRange() {
+            return range;
+        }
+        public void setState(String state) {
+            this.state = state;
+        }
+
+        public String getState() {
+            return state;
+        }
+        public void setArea(String area) {
+            this.area = area;
+        }
+
+        public String getArea() {
+            return area;
+        }
+        public void setTransferPerson(String transferPerson) {
+            this.transferPerson = transferPerson;
+        }
+
+        public String getTransferPerson() {
+            return transferPerson;
+        }
+        public void setConstructionContent(String constructionContent) {
+            this.constructionContent = constructionContent;
+        }
+
+        public String getConstructionContent() {
+            return constructionContent;
+        }
+        public void setLongitude(String longitude) {
+            this.longitude = longitude;
+        }
+
+        public String getLongitude() {
+            return longitude;
+        }
+        public void setLatitude(String latitude) {
+            this.latitude = latitude;
+        }
+
+        public String getLatitude() {
+            return latitude;
+        }
+
+@Override
+public String toString() {
+    return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+        .append("id", getId())
+        .append("name", getName())
+        .append("type", getType())
+        .append("address", getAddress())
+        .append("range", getRange())
+        .append("state", getState())
+        .append("area", getArea())
+        .append("transferPerson", getTransferPerson())
+        .append("constructionContent", getConstructionContent())
+        .append("longitude", getLongitude())
+        .append("latitude", getLatitude())
+            .toString();
+}
+}

+ 152 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkRescueSupplies.java

@@ -0,0 +1,152 @@
+package zhsq_qk.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import zhsq_qk.common.annotation.Excel;
+import zhsq_qk.common.core.domain.BaseEntity;
+import zhsq_qk.common.core.domain.entity.SysDept;
+
+/**
+ * 防汛抗旱物资储备对象 qk_rescue_supplies
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+public class QkRescueSupplies extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 品种
+     */
+    @Excel(name = "品种")
+    private String varieties;
+
+    /**
+     * 价值(万元)
+     */
+    @Excel(name = "价值", readConverterExp = "万=元")
+    private String cost;
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    private String remarks;
+
+    /**
+     * 经度
+     */
+    @Excel(name = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @Excel(name = "纬度")
+    private String latitude;
+
+    /**
+     * 所属部门
+     */
+    @Excel(name = "所属部门")
+    private String dept;
+
+    /**
+     * 所属部门id
+     */
+    private Long deptId;
+
+
+
+    private SysDept deptOne;
+
+    public SysDept getDeptOne() {
+        return deptOne;
+    }
+
+    public void setDeptOne(SysDept deptOne) {
+        this.deptOne = deptOne;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setVarieties(String varieties) {
+        this.varieties = varieties;
+    }
+
+    public String getVarieties() {
+        return varieties;
+    }
+
+    public void setCost(String cost) {
+        this.cost = cost;
+    }
+
+    public String getCost() {
+        return cost;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setLongitude(String longitude) {
+        this.longitude = longitude;
+    }
+
+    public String getLongitude() {
+        return longitude;
+    }
+
+    public void setLatitude(String latitude) {
+        this.latitude = latitude;
+    }
+
+    public String getLatitude() {
+        return latitude;
+    }
+
+    public void setDept(String dept) {
+        this.dept = dept;
+    }
+
+    public String getDept() {
+        return dept;
+    }
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("varieties", getVarieties())
+                .append("cost", getCost())
+                .append("remarks", getRemarks())
+                .append("longitude", getLongitude())
+                .append("latitude", getLatitude())
+                .append("dept", getDept())
+                .append("deptId", getDeptId())
+                .toString();
+    }
+}

+ 66 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkEmergencyRescueTeamMapper.java

@@ -0,0 +1,66 @@
+package zhsq_qk.system.mapper;
+
+import java.util.List;
+
+import zhsq_qk.system.domain.QkEmergencyRescueTeam;
+
+/**
+ * 抢险救援队Mapper接口
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+public interface QkEmergencyRescueTeamMapper {
+    /**
+     * 查询抢险救援队
+     *
+     * @param id 抢险救援队主键
+     * @return 抢险救援队
+     */
+    public QkEmergencyRescueTeam selectQkEmergencyRescueTeamById(Long id);
+
+    /**
+     * 查询抢险救援队列表
+     *
+     * @param qkEmergencyRescueTeam 抢险救援队
+     * @return 抢险救援队集合
+     */
+    public List<QkEmergencyRescueTeam> selectQkEmergencyRescueTeamList(QkEmergencyRescueTeam qkEmergencyRescueTeam);
+
+    /**
+     * 新增抢险救援队
+     *
+     * @param qkEmergencyRescueTeam 抢险救援队
+     * @return 结果
+     */
+    public int insertQkEmergencyRescueTeam(QkEmergencyRescueTeam qkEmergencyRescueTeam);
+
+    /**
+     * 修改抢险救援队
+     *
+     * @param qkEmergencyRescueTeam 抢险救援队
+     * @return 结果
+     */
+    public int updateQkEmergencyRescueTeam(QkEmergencyRescueTeam qkEmergencyRescueTeam);
+
+    /**
+     * 删除抢险救援队
+     *
+     * @param id 抢险救援队主键
+     * @return 结果
+     */
+    public int deleteQkEmergencyRescueTeamById(Long id);
+
+    /**
+     * 批量删除抢险救援队
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteQkEmergencyRescueTeamByIds(Long[] ids);
+
+    List<QkEmergencyRescueTeam> selectQkEmergencyRescueTeamAllList();
+
+    List<QkEmergencyRescueTeam> selectQkEmergencyRescueTeamByDeptId(Long id);
+
+}

+ 63 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkEmergencyShelterMapper.java

@@ -0,0 +1,63 @@
+package zhsq_qk.system.mapper;
+
+import java.util.List;
+
+import zhsq_qk.system.domain.QkEmergencyShelter;
+
+/**
+ * 应急避难所Mapper接口
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+public interface QkEmergencyShelterMapper {
+    /**
+     * 查询应急避难所
+     *
+     * @param id 应急避难所主键
+     * @return 应急避难所
+     */
+    public QkEmergencyShelter selectQkEmergencyShelterById(Long id);
+
+    /**
+     * 查询应急避难所列表
+     *
+     * @param qkEmergencyShelter 应急避难所
+     * @return 应急避难所集合
+     */
+    public List<QkEmergencyShelter> selectQkEmergencyShelterList(QkEmergencyShelter qkEmergencyShelter);
+
+    /**
+     * 新增应急避难所
+     *
+     * @param qkEmergencyShelter 应急避难所
+     * @return 结果
+     */
+    public int insertQkEmergencyShelter(QkEmergencyShelter qkEmergencyShelter);
+
+    /**
+     * 修改应急避难所
+     *
+     * @param qkEmergencyShelter 应急避难所
+     * @return 结果
+     */
+    public int updateQkEmergencyShelter(QkEmergencyShelter qkEmergencyShelter);
+
+    /**
+     * 删除应急避难所
+     *
+     * @param id 应急避难所主键
+     * @return 结果
+     */
+    public int deleteQkEmergencyShelterById(Long id);
+
+    /**
+     * 批量删除应急避难所
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteQkEmergencyShelterByIds(Long[] ids);
+
+    List<QkEmergencyShelter> selectQkEmergencyShelterAllList();
+}

+ 66 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkRescueSuppliesMapper.java

@@ -0,0 +1,66 @@
+package zhsq_qk.system.mapper;
+
+import java.util.List;
+
+import zhsq_qk.system.domain.QkRescueSupplies;
+
+/**
+ * 防汛抗旱物资储备Mapper接口
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+public interface QkRescueSuppliesMapper {
+    /**
+     * 查询防汛抗旱物资储备
+     *
+     * @param id 防汛抗旱物资储备主键
+     * @return 防汛抗旱物资储备
+     */
+    public QkRescueSupplies selectQkRescueSuppliesById(Long id);
+
+    /**
+     * 查询防汛抗旱物资储备列表
+     *
+     * @param qkRescueSupplies 防汛抗旱物资储备
+     * @return 防汛抗旱物资储备集合
+     */
+    public List<QkRescueSupplies> selectQkRescueSuppliesList(QkRescueSupplies qkRescueSupplies);
+
+    /**
+     * 新增防汛抗旱物资储备
+     *
+     * @param qkRescueSupplies 防汛抗旱物资储备
+     * @return 结果
+     */
+    public int insertQkRescueSupplies(QkRescueSupplies qkRescueSupplies);
+
+    /**
+     * 修改防汛抗旱物资储备
+     *
+     * @param qkRescueSupplies 防汛抗旱物资储备
+     * @return 结果
+     */
+    public int updateQkRescueSupplies(QkRescueSupplies qkRescueSupplies);
+
+    /**
+     * 删除防汛抗旱物资储备
+     *
+     * @param id 防汛抗旱物资储备主键
+     * @return 结果
+     */
+    public int deleteQkRescueSuppliesById(Long id);
+
+    /**
+     * 批量删除防汛抗旱物资储备
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteQkRescueSuppliesByIds(Long[] ids);
+
+    List<QkRescueSupplies> selectQkRescueSuppliesAllList();
+
+    List<QkRescueSupplies> selectQkRescueSuppliesByDeptId(Long id);
+
+}

+ 66 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkEmergencyRescueTeamService.java

@@ -0,0 +1,66 @@
+package zhsq_qk.system.service;
+
+import java.util.List;
+
+import zhsq_qk.system.domain .QkEmergencyRescueTeam;
+
+/**
+ * 抢险救援队Service接口
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+public interface IQkEmergencyRescueTeamService {
+    /**
+     * 查询抢险救援队
+     *
+     * @param id 抢险救援队主键
+     * @return 抢险救援队
+     */
+    public QkEmergencyRescueTeam selectQkEmergencyRescueTeamById(Long id);
+
+    /**
+     * 查询抢险救援队列表
+     *
+     * @param qkEmergencyRescueTeam 抢险救援队
+     * @return 抢险救援队集合
+     */
+    public List<QkEmergencyRescueTeam> selectQkEmergencyRescueTeamList(QkEmergencyRescueTeam qkEmergencyRescueTeam);
+
+    /**
+     * 新增抢险救援队
+     *
+     * @param qkEmergencyRescueTeam 抢险救援队
+     * @return 结果
+     */
+    public int insertQkEmergencyRescueTeam(QkEmergencyRescueTeam qkEmergencyRescueTeam);
+
+    /**
+     * 修改抢险救援队
+     *
+     * @param qkEmergencyRescueTeam 抢险救援队
+     * @return 结果
+     */
+    public int updateQkEmergencyRescueTeam(QkEmergencyRescueTeam qkEmergencyRescueTeam);
+
+    /**
+     * 批量删除抢险救援队
+     *
+     * @param ids 需要删除的抢险救援队主键集合
+     * @return 结果
+     */
+    public int deleteQkEmergencyRescueTeamByIds(Long[] ids);
+
+    /**
+     * 删除抢险救援队信息
+     *
+     * @param id 抢险救援队主键
+     * @return 结果
+     */
+    public int deleteQkEmergencyRescueTeamById(Long id);
+
+    List<QkEmergencyRescueTeam> selectQkEmergencyRescueTeamAllList();
+
+    List<QkEmergencyRescueTeam> selectQkEmergencyRescueTeamByDeptId(Long id);
+
+}

+ 64 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkEmergencyShelterService.java

@@ -0,0 +1,64 @@
+package zhsq_qk.system.service;
+
+import java.util.List;
+
+import zhsq_qk.system.domain .QkEmergencyShelter;
+
+/**
+ * 应急避难所Service接口
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+public interface IQkEmergencyShelterService {
+    /**
+     * 查询应急避难所
+     *
+     * @param id 应急避难所主键
+     * @return 应急避难所
+     */
+    public QkEmergencyShelter selectQkEmergencyShelterById(Long id);
+
+    /**
+     * 查询应急避难所列表
+     *
+     * @param qkEmergencyShelter 应急避难所
+     * @return 应急避难所集合
+     */
+    public List<QkEmergencyShelter> selectQkEmergencyShelterList(QkEmergencyShelter qkEmergencyShelter);
+
+    /**
+     * 新增应急避难所
+     *
+     * @param qkEmergencyShelter 应急避难所
+     * @return 结果
+     */
+    public int insertQkEmergencyShelter(QkEmergencyShelter qkEmergencyShelter);
+
+    /**
+     * 修改应急避难所
+     *
+     * @param qkEmergencyShelter 应急避难所
+     * @return 结果
+     */
+    public int updateQkEmergencyShelter(QkEmergencyShelter qkEmergencyShelter);
+
+    /**
+     * 批量删除应急避难所
+     *
+     * @param ids 需要删除的应急避难所主键集合
+     * @return 结果
+     */
+    public int deleteQkEmergencyShelterByIds(Long[] ids);
+
+    /**
+     * 删除应急避难所信息
+     *
+     * @param id 应急避难所主键
+     * @return 结果
+     */
+    public int deleteQkEmergencyShelterById(Long id);
+
+    List<QkEmergencyShelter> selectQkEmergencyShelterAllList();
+
+}

+ 65 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkRescueSuppliesService.java

@@ -0,0 +1,65 @@
+package zhsq_qk.system.service;
+
+import java.util.List;
+
+import zhsq_qk.system.domain .QkRescueSupplies;
+
+/**
+ * 防汛抗旱物资储备Service接口
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+public interface IQkRescueSuppliesService {
+    /**
+     * 查询防汛抗旱物资储备
+     *
+     * @param id 防汛抗旱物资储备主键
+     * @return 防汛抗旱物资储备
+     */
+    public QkRescueSupplies selectQkRescueSuppliesById(Long id);
+
+    /**
+     * 查询防汛抗旱物资储备列表
+     *
+     * @param qkRescueSupplies 防汛抗旱物资储备
+     * @return 防汛抗旱物资储备集合
+     */
+    public List<QkRescueSupplies> selectQkRescueSuppliesList(QkRescueSupplies qkRescueSupplies);
+
+    /**
+     * 新增防汛抗旱物资储备
+     *
+     * @param qkRescueSupplies 防汛抗旱物资储备
+     * @return 结果
+     */
+    public int insertQkRescueSupplies(QkRescueSupplies qkRescueSupplies);
+
+    /**
+     * 修改防汛抗旱物资储备
+     *
+     * @param qkRescueSupplies 防汛抗旱物资储备
+     * @return 结果
+     */
+    public int updateQkRescueSupplies(QkRescueSupplies qkRescueSupplies);
+
+    /**
+     * 批量删除防汛抗旱物资储备
+     *
+     * @param ids 需要删除的防汛抗旱物资储备主键集合
+     * @return 结果
+     */
+    public int deleteQkRescueSuppliesByIds(Long[] ids);
+
+    /**
+     * 删除防汛抗旱物资储备信息
+     *
+     * @param id 防汛抗旱物资储备主键
+     * @return 结果
+     */
+    public int deleteQkRescueSuppliesById(Long id);
+
+    List<QkRescueSupplies> selectQkRescueSuppliesAllList();
+
+    List<QkRescueSupplies> selectQkRescueSuppliesByDeptId(Long id);
+}

+ 104 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkEmergencyRescueTeamServiceImpl.java

@@ -0,0 +1,104 @@
+package zhsq_qk.system.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import zhsq_qk.system.mapper.QkEmergencyRescueTeamMapper;
+import zhsq_qk.system.domain.QkEmergencyRescueTeam;
+import zhsq_qk.system.service.IQkEmergencyRescueTeamService;
+
+/**
+ * 抢险救援队Service业务层处理
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+@Service
+public class QkEmergencyRescueTeamServiceImpl implements IQkEmergencyRescueTeamService {
+    @Autowired
+    private QkEmergencyRescueTeamMapper qkEmergencyRescueTeamMapper;
+
+    /**
+     * 查询抢险救援队
+     *
+     * @param id 抢险救援队主键
+     * @return 抢险救援队
+     */
+    @Override
+    public QkEmergencyRescueTeam selectQkEmergencyRescueTeamById(Long id) {
+        return qkEmergencyRescueTeamMapper.selectQkEmergencyRescueTeamById(id);
+    }
+
+    /**
+     * 查询抢险救援队列表
+     *
+     * @param qkEmergencyRescueTeam 抢险救援队
+     * @return 抢险救援队
+     */
+    @Override
+    public List<QkEmergencyRescueTeam> selectQkEmergencyRescueTeamList(QkEmergencyRescueTeam qkEmergencyRescueTeam) {
+        return qkEmergencyRescueTeamMapper.selectQkEmergencyRescueTeamList(qkEmergencyRescueTeam);
+    }
+
+    /**
+     * 新增抢险救援队
+     *
+     * @param qkEmergencyRescueTeam 抢险救援队
+     * @return 结果
+     */
+    @Override
+    public int insertQkEmergencyRescueTeam(QkEmergencyRescueTeam qkEmergencyRescueTeam) {
+            return qkEmergencyRescueTeamMapper.insertQkEmergencyRescueTeam(qkEmergencyRescueTeam);
+    }
+
+    /**
+     * 修改抢险救援队
+     *
+     * @param qkEmergencyRescueTeam 抢险救援队
+     * @return 结果
+     */
+    @Override
+    public int updateQkEmergencyRescueTeam(QkEmergencyRescueTeam qkEmergencyRescueTeam) {
+        return qkEmergencyRescueTeamMapper.updateQkEmergencyRescueTeam(qkEmergencyRescueTeam);
+    }
+
+    /**
+     * 批量删除抢险救援队
+     *
+     * @param ids 需要删除的抢险救援队主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkEmergencyRescueTeamByIds(Long[] ids) {
+        return qkEmergencyRescueTeamMapper.deleteQkEmergencyRescueTeamByIds(ids);
+    }
+
+    /**
+     * 删除抢险救援队信息
+     *
+     * @param id 抢险救援队主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkEmergencyRescueTeamById(Long id) {
+        return qkEmergencyRescueTeamMapper.deleteQkEmergencyRescueTeamById(id);
+    }
+
+    /**
+     * 查询抢险救援队列表
+     *
+     *
+     * @return 抢险救援队
+     */
+    @Override
+    public List<QkEmergencyRescueTeam> selectQkEmergencyRescueTeamAllList() {
+        return qkEmergencyRescueTeamMapper.selectQkEmergencyRescueTeamAllList();
+    }
+
+    @Override
+    public List<QkEmergencyRescueTeam> selectQkEmergencyRescueTeamByDeptId(Long id) {
+        return qkEmergencyRescueTeamMapper.selectQkEmergencyRescueTeamByDeptId(id);
+    }
+
+
+}

+ 91 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkEmergencyShelterServiceImpl.java

@@ -0,0 +1,91 @@
+package zhsq_qk.system.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import zhsq_qk.system.mapper.QkEmergencyShelterMapper;
+import zhsq_qk.system.domain.QkEmergencyShelter;
+import zhsq_qk.system.service.IQkEmergencyShelterService;
+
+/**
+ * 应急避难所Service业务层处理
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+@Service
+public class QkEmergencyShelterServiceImpl implements IQkEmergencyShelterService {
+    @Autowired
+    private QkEmergencyShelterMapper qkEmergencyShelterMapper;
+
+    /**
+     * 查询应急避难所
+     *
+     * @param id 应急避难所主键
+     * @return 应急避难所
+     */
+    @Override
+    public QkEmergencyShelter selectQkEmergencyShelterById(Long id) {
+        return qkEmergencyShelterMapper.selectQkEmergencyShelterById(id);
+    }
+
+    /**
+     * 查询应急避难所列表
+     *
+     * @param qkEmergencyShelter 应急避难所
+     * @return 应急避难所
+     */
+    @Override
+    public List<QkEmergencyShelter> selectQkEmergencyShelterList(QkEmergencyShelter qkEmergencyShelter) {
+        return qkEmergencyShelterMapper.selectQkEmergencyShelterList(qkEmergencyShelter);
+    }
+
+    /**
+     * 新增应急避难所
+     *
+     * @param qkEmergencyShelter 应急避难所
+     * @return 结果
+     */
+    @Override
+    public int insertQkEmergencyShelter(QkEmergencyShelter qkEmergencyShelter) {
+            return qkEmergencyShelterMapper.insertQkEmergencyShelter(qkEmergencyShelter);
+    }
+
+    /**
+     * 修改应急避难所
+     *
+     * @param qkEmergencyShelter 应急避难所
+     * @return 结果
+     */
+    @Override
+    public int updateQkEmergencyShelter(QkEmergencyShelter qkEmergencyShelter) {
+        return qkEmergencyShelterMapper.updateQkEmergencyShelter(qkEmergencyShelter);
+    }
+
+    /**
+     * 批量删除应急避难所
+     *
+     * @param ids 需要删除的应急避难所主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkEmergencyShelterByIds(Long[] ids) {
+        return qkEmergencyShelterMapper.deleteQkEmergencyShelterByIds(ids);
+    }
+
+    /**
+     * 删除应急避难所信息
+     *
+     * @param id 应急避难所主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkEmergencyShelterById(Long id) {
+        return qkEmergencyShelterMapper.deleteQkEmergencyShelterById(id);
+    }
+
+    @Override
+    public List<QkEmergencyShelter> selectQkEmergencyShelterAllList() {
+        return qkEmergencyShelterMapper.selectQkEmergencyShelterAllList();
+    }
+}

+ 96 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkRescueSuppliesServiceImpl.java

@@ -0,0 +1,96 @@
+package zhsq_qk.system.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import zhsq_qk.system.mapper.QkRescueSuppliesMapper;
+import zhsq_qk.system.domain.QkRescueSupplies;
+import zhsq_qk.system.service.IQkRescueSuppliesService;
+
+/**
+ * 防汛抗旱物资储备Service业务层处理
+ *
+ * @author lc
+ * @date 2024-07-18
+ */
+@Service
+public class QkRescueSuppliesServiceImpl implements IQkRescueSuppliesService {
+    @Autowired
+    private QkRescueSuppliesMapper qkRescueSuppliesMapper;
+
+    /**
+     * 查询防汛抗旱物资储备
+     *
+     * @param id 防汛抗旱物资储备主键
+     * @return 防汛抗旱物资储备
+     */
+    @Override
+    public QkRescueSupplies selectQkRescueSuppliesById(Long id) {
+        return qkRescueSuppliesMapper.selectQkRescueSuppliesById(id);
+    }
+
+    /**
+     * 查询防汛抗旱物资储备列表
+     *
+     * @param qkRescueSupplies 防汛抗旱物资储备
+     * @return 防汛抗旱物资储备
+     */
+    @Override
+    public List<QkRescueSupplies> selectQkRescueSuppliesList(QkRescueSupplies qkRescueSupplies) {
+        return qkRescueSuppliesMapper.selectQkRescueSuppliesList(qkRescueSupplies);
+    }
+
+    /**
+     * 新增防汛抗旱物资储备
+     *
+     * @param qkRescueSupplies 防汛抗旱物资储备
+     * @return 结果
+     */
+    @Override
+    public int insertQkRescueSupplies(QkRescueSupplies qkRescueSupplies) {
+            return qkRescueSuppliesMapper.insertQkRescueSupplies(qkRescueSupplies);
+    }
+
+    /**
+     * 修改防汛抗旱物资储备
+     *
+     * @param qkRescueSupplies 防汛抗旱物资储备
+     * @return 结果
+     */
+    @Override
+    public int updateQkRescueSupplies(QkRescueSupplies qkRescueSupplies) {
+        return qkRescueSuppliesMapper.updateQkRescueSupplies(qkRescueSupplies);
+    }
+
+    /**
+     * 批量删除防汛抗旱物资储备
+     *
+     * @param ids 需要删除的防汛抗旱物资储备主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkRescueSuppliesByIds(Long[] ids) {
+        return qkRescueSuppliesMapper.deleteQkRescueSuppliesByIds(ids);
+    }
+
+    /**
+     * 删除防汛抗旱物资储备信息
+     *
+     * @param id 防汛抗旱物资储备主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkRescueSuppliesById(Long id) {
+        return qkRescueSuppliesMapper.deleteQkRescueSuppliesById(id);
+    }
+
+    @Override
+    public List<QkRescueSupplies> selectQkRescueSuppliesAllList() {
+        return qkRescueSuppliesMapper.selectQkRescueSuppliesAllList();
+    }
+
+    @Override
+    public List<QkRescueSupplies> selectQkRescueSuppliesByDeptId(Long id) {
+        return qkRescueSuppliesMapper.selectQkRescueSuppliesByDeptId(id);
+    }
+}

+ 235 - 0
zhsq_qk-system/src/main/resources/mapper/system/QkEmergencyRescueTeamMapper.xml

@@ -0,0 +1,235 @@
+<?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="zhsq_qk.system.mapper.QkEmergencyRescueTeamMapper">
+
+    <resultMap type="QkEmergencyRescueTeam" id="QkEmergencyRescueTeamResult">
+            <result property="id" column="id"/>
+            <result property="name" column="name"/>
+            <result property="userName" column="user_name"/>
+            <result property="dept" column="dept"/>
+            <result property="deptId" column="dept_id"/>
+            <result property="post" column="post"/>
+            <result property="company" column="company"/>
+            <result property="emergencyRescue" column="emergency_rescue"/>
+            <result property="city" column="city"/>
+            <result property="area" column="area"/>
+            <result property="township" column="township"/>
+            <result property="village" column="village"/>
+            <result property="phone" column="phone"/>
+            <result property="effect" column="effect"/>
+            <result property="longitude" column="longitude"/>
+            <result property="latitude" column="latitude"/>
+        <association property="deptOne" javaType="SysDept" resultMap="deptResult"/>
+    </resultMap>
+
+    <resultMap id="deptResult" type="SysDept">
+        <id property="deptId" column="dept_id"/>
+        <result property="parentId" column="parent_id"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="ancestors" column="ancestors"/>
+        <result property="orderNum" column="order_num"/>
+        <result property="leader" column="leader"/>
+        <result property="status" column="dept_status"/>
+    </resultMap>
+
+    <sql id="selectQkEmergencyRescueTeamVo">
+        SELECT
+            t.id,
+            t.NAME,
+            t.user_name,
+            t.dept,
+            t.post,
+            t.company,
+            t.emergency_rescue,
+            t.city,
+            t.area,
+            t.township,
+            t.village,
+            t.phone,
+            t.effect,
+            t.longitude,
+            t.latitude,
+            d.dept_id,
+            d.dept_name
+        FROM
+            qk_emergency_rescue_team t
+                LEFT JOIN sys_dept d ON t.dept_id = d.dept_id
+    </sql>
+
+    <select id="selectQkEmergencyRescueTeamList" parameterType="QkEmergencyRescueTeam" resultMap="QkEmergencyRescueTeamResult">
+        <include refid="selectQkEmergencyRescueTeamVo"/>
+        <where>
+                        <if test="name != null  and name != ''">
+                            and name like concat('%', #{name}, '%')
+                        </if>
+                        <if test="userName != null  and userName != ''">
+                            and user_name like concat('%', #{userName}, '%')
+                        </if>
+                        <if test="dept != null  and dept != ''">
+                            and dept = #{dept}
+                        </if>
+                        <if test="post != null  and post != ''">
+                            and post = #{post}
+                        </if>
+                        <if test="village != null  and village != ''">
+                            and village = #{village}
+                        </if>
+                        <if test="phone != null  and phone != ''">
+                            and phone = #{phone}
+                        </if>
+                        <if test="effect != null  and effect != ''">
+                            and effect = #{effect}
+                        </if>
+                        <if test="longitude != null  and longitude != ''">
+                            and longitude = #{longitude}
+                        </if>
+                        <if test="latitude != null  and latitude != ''">
+                            and latitude = #{latitude}
+                        </if>
+        </where>
+    </select>
+
+    <select id="selectQkEmergencyRescueTeamById" parameterType="Long"
+            resultMap="QkEmergencyRescueTeamResult">
+            <include refid="selectQkEmergencyRescueTeamVo"/>
+            where id = #{id}
+    </select>
+
+    <insert id="insertQkEmergencyRescueTeam" parameterType="QkEmergencyRescueTeam">
+        insert into qk_emergency_rescue_team
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                    <if test="id != null">id,
+                    </if>
+                    <if test="name != null">name,
+                    </if>
+                    <if test="userName != null">user_name,
+                    </if>
+                    <if test="dept != null">dept,
+                    </if>
+                    <if test="post != null">post,
+                    </if>
+                    <if test="company != null">company,
+                    </if>
+                    <if test="emergencyRescue != null">emergency_rescue,
+                    </if>
+                    <if test="phone != null">phone,
+                    </if>
+                    <if test="effect != null">effect,
+                    </if>
+                    <if test="longitude != null">longitude,
+                    </if>
+                    <if test="latitude != null">latitude,
+                    </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                    <if test="id != null">#{id},
+                    </if>
+                    <if test="name != null">#{name},
+                    </if>
+                    <if test="userName != null">#{userName},
+                    </if>
+                    <if test="dept != null">#{dept},
+                    </if>
+                    <if test="post != null">#{post},
+                    </if>
+                    <if test="company != null">#{company},
+                    </if>
+                    <if test="emergencyRescue != null">#{emergencyRescue},
+                    </if>
+                    <if test="phone != null">#{phone},
+                    </if>
+                    <if test="effect != null">#{effect},
+                    </if>
+                    <if test="longitude != null">#{longitude},
+                    </if>
+                    <if test="latitude != null">#{latitude},
+                    </if>
+        </trim>
+    </insert>
+
+    <update id="updateQkEmergencyRescueTeam" parameterType="QkEmergencyRescueTeam">
+        update qk_emergency_rescue_team
+        <trim prefix="SET" suffixOverrides=",">
+                    <if test="name != null">name =
+                        #{name},
+                    </if>
+                    <if test="userName != null">user_name =
+                        #{userName},
+                    </if>
+                    <if test="dept != null">dept =
+                        #{dept},
+                    </if>
+                    <if test="post != null">post =
+                        #{post},
+                    </if>
+                    <if test="company != null">company =
+                        #{company},
+                    </if>
+                    <if test="emergencyRescue != null">emergency_rescue =
+                        #{emergencyRescue},
+                    </if>
+                    <if test="phone != null">phone =
+                        #{phone},
+                    </if>
+                    <if test="effect != null">effect =
+                        #{effect},
+                    </if>
+                    <if test="longitude != null">longitude =
+                        #{longitude},
+                    </if>
+                    <if test="latitude != null">latitude =
+                        #{latitude},
+                    </if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteQkEmergencyRescueTeamById" parameterType="Long">
+        delete
+        from qk_emergency_rescue_team where id = #{id}
+    </delete>
+
+    <delete id="deleteQkEmergencyRescueTeamByIds" parameterType="String">
+        delete from qk_emergency_rescue_team where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <select id="selectQkEmergencyRescueTeamAllList" parameterType="QkEmergencyRescueTeam" resultMap="QkEmergencyRescueTeamResult">
+        SELECT
+            id,
+            sd.dept_id,
+            sd.dept_name as dept,
+            longitude,
+            latitude
+        FROM
+            qk_emergency_rescue_team qk
+                LEFT JOIN sys_dept sd ON qk.dept_id = sd.dept_id
+        GROUP BY
+            qk.dept_id
+    </select>
+
+    <select id="selectQkEmergencyRescueTeamByDeptId" parameterType="QkEmergencyRescueTeam" resultMap="QkEmergencyRescueTeamResult">
+        SELECT id,
+               name,
+               user_name,
+               post,
+               company,
+               emergency_rescue,
+               city,
+               area,
+               township,
+               village,
+               qk.phone,
+               effect,
+               longitude,
+               latitude,
+               sd.dept_name as dept
+        FROM qk_emergency_rescue_team qk
+                 LEFT JOIN sys_dept sd ON qk.dept_id = sd.dept_id
+        where qk.dept_id = #{deptId}
+    </select>
+</mapper>

+ 169 - 0
zhsq_qk-system/src/main/resources/mapper/system/QkEmergencyShelterMapper.xml

@@ -0,0 +1,169 @@
+<?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="zhsq_qk.system.mapper.QkEmergencyShelterMapper">
+
+    <resultMap type="QkEmergencyShelter" id="QkEmergencyShelterResult">
+            <result property="id" column="id"/>
+            <result property="name" column="name"/>
+            <result property="type" column="type"/>
+            <result property="address" column="address"/>
+            <result property="range" column="range"/>
+            <result property="state" column="state"/>
+            <result property="area" column="area"/>
+            <result property="transferPerson" column="transfer_person"/>
+            <result property="constructionContent" column="construction_content"/>
+            <result property="longitude" column="longitude"/>
+            <result property="latitude" column="latitude"/>
+    </resultMap>
+
+    <sql id="selectQkEmergencyShelterVo">
+        select id, `name`, `type`, address, `range`, `state`, area, transfer_person, construction_content, longitude, latitude
+        from qk_emergency_shelter
+    </sql>
+
+    <select id="selectQkEmergencyShelterList" parameterType="QkEmergencyShelter" resultMap="QkEmergencyShelterResult">
+        <include refid="selectQkEmergencyShelterVo"/>
+        <where>
+                        <if test="name != null  and name != ''">
+                            and name like concat('%', #{name}, '%')
+                        </if>
+                        <if test="type != null  and type != ''">
+                            and type = #{type}
+                        </if>
+                        <if test="address != null  and address != ''">
+                            and address = #{address}
+                        </if>
+                        <if test="range != null  and range != ''">
+                            and `range` = #{range}
+                        </if>
+                        <if test="state != null  and state != ''">
+                            and `state` = #{state}
+                        </if>
+                        <if test="area != null  and area != ''">
+                            and area = #{area}
+                        </if>
+                        <if test="transferPerson != null  and transferPerson != ''">
+                            and transfer_person = #{transferPerson}
+                        </if>
+                        <if test="constructionContent != null  and constructionContent != ''">
+                            and construction_content = #{constructionContent}
+                        </if>
+                        <if test="longitude != null  and longitude != ''">
+                            and longitude = #{longitude}
+                        </if>
+                        <if test="latitude != null  and latitude != ''">
+                            and latitude = #{latitude}
+                        </if>
+        </where>
+    </select>
+
+    <select id="selectQkEmergencyShelterById" parameterType="Long"
+            resultMap="QkEmergencyShelterResult">
+            <include refid="selectQkEmergencyShelterVo"/>
+            where id = #{id}
+    </select>
+
+    <insert id="insertQkEmergencyShelter" parameterType="QkEmergencyShelter" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into qk_emergency_shelter
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                    <if test="name != null">name,
+                    </if>
+                    <if test="type != null">type,
+                    </if>
+                    <if test="address != null">address,
+                    </if>
+                    <if test="range != null">`range`,
+                    </if>
+                    <if test="state != null">`state`,
+                    </if>
+                    <if test="area != null">area,
+                    </if>
+                    <if test="transferPerson != null">transfer_person,
+                    </if>
+                    <if test="constructionContent != null">construction_content,
+                    </if>
+                    <if test="longitude != null">longitude,
+                    </if>
+                    <if test="latitude != null">latitude,
+                    </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                    <if test="name != null">#{name},
+                    </if>
+                    <if test="type != null">#{type},
+                    </if>
+                    <if test="address != null">#{address},
+                    </if>
+                    <if test="range != null">#{range},
+                    </if>
+                    <if test="state != null">#{state},
+                    </if>
+                    <if test="area != null">#{area},
+                    </if>
+                    <if test="transferPerson != null">#{transferPerson},
+                    </if>
+                    <if test="constructionContent != null">#{constructionContent},
+                    </if>
+                    <if test="longitude != null">#{longitude},
+                    </if>
+                    <if test="latitude != null">#{latitude},
+                    </if>
+        </trim>
+    </insert>
+
+    <update id="updateQkEmergencyShelter" parameterType="QkEmergencyShelter">
+        update qk_emergency_shelter
+        <trim prefix="SET" suffixOverrides=",">
+                    <if test="name != null">name =
+                        #{name},
+                    </if>
+                    <if test="type != null">type =
+                        #{type},
+                    </if>
+                    <if test="address != null">address =
+                        #{address},
+                    </if>
+                    <if test="range != null">`range` =
+                        #{range},
+                    </if>
+                    <if test="state != null">`state` =
+                        #{state},
+                    </if>
+                    <if test="area != null">area =
+                        #{area},
+                    </if>
+                    <if test="transferPerson != null">transfer_person =
+                        #{transferPerson},
+                    </if>
+                    <if test="constructionContent != null">construction_content =
+                        #{constructionContent},
+                    </if>
+                    <if test="longitude != null">longitude =
+                        #{longitude},
+                    </if>
+                    <if test="latitude != null">latitude =
+                        #{latitude},
+                    </if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteQkEmergencyShelterById" parameterType="Long">
+        delete
+        from qk_emergency_shelter where id = #{id}
+    </delete>
+
+    <delete id="deleteQkEmergencyShelterByIds" parameterType="String">
+        delete from qk_emergency_shelter where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <select id="selectQkEmergencyShelterAllList" parameterType="QkEmergencyShelter" resultMap="QkEmergencyShelterResult">
+        <include refid="selectQkEmergencyShelterVo"/>
+    </select>
+</mapper>

+ 162 - 0
zhsq_qk-system/src/main/resources/mapper/system/QkRescueSuppliesMapper.xml

@@ -0,0 +1,162 @@
+<?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="zhsq_qk.system.mapper.QkRescueSuppliesMapper">
+
+    <resultMap type="QkRescueSupplies" id="QkRescueSuppliesResult">
+            <result property="id" column="id"/>
+            <result property="varieties" column="varieties"/>
+            <result property="cost" column="cost"/>
+            <result property="dept" column="dept"/>
+            <result property="deptId" column="dept_id"/>
+            <result property="remarks" column="remarks"/>
+            <result property="longitude" column="longitude"/>
+            <result property="latitude" column="latitude"/>
+        <association property="deptOne" javaType="SysDept" resultMap="deptResult"/>
+    </resultMap>
+
+    <resultMap id="deptResult" type="SysDept">
+        <id property="deptId" column="dept_id"/>
+        <result property="parentId" column="parent_id"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="ancestors" column="ancestors"/>
+        <result property="orderNum" column="order_num"/>
+        <result property="leader" column="leader"/>
+        <result property="status" column="dept_status"/>
+    </resultMap>
+
+    <sql id="selectQkRescueSuppliesVo">
+        SELECT
+            s.id,
+            s.dept_id,
+            s.varieties,
+            s.cost,
+            s.remarks,
+            s.longitude,
+            s.latitude,
+            s.dept,
+            d.dept_id,
+            d.dept_name
+        FROM
+            qk_rescue_supplies s
+                LEFT JOIN sys_dept d ON s.dept_id = d.dept_id
+    </sql>
+
+    <select id="selectQkRescueSuppliesList" parameterType="QkRescueSupplies" resultMap="QkRescueSuppliesResult">
+        <include refid="selectQkRescueSuppliesVo"/>
+        <where>
+                        <if test="varieties != null  and varieties != ''">
+                            and varieties = #{varieties}
+                        </if>
+                        <if test="cost != null  and cost != ''">
+                            and cost = #{cost}
+                        </if>
+                        <if test="remarks != null  and remarks != ''">
+                            and remarks = #{remarks}
+                        </if>
+                        <if test="longitude != null  and longitude != ''">
+                            and longitude = #{longitude}
+                        </if>
+                        <if test="latitude != null  and latitude != ''">
+                            and latitude = #{latitude}
+                        </if>
+        </where>
+    </select>
+
+    <select id="selectQkRescueSuppliesById" parameterType="Long"
+            resultMap="QkRescueSuppliesResult">
+            <include refid="selectQkRescueSuppliesVo"/>
+            where id = #{id}
+    </select>
+
+    <insert id="insertQkRescueSupplies" parameterType="QkRescueSupplies" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into qk_rescue_supplies
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                    <if test="varieties != null">varieties,
+                    </if>
+                    <if test="cost != null">cost,
+                    </if>
+                    <if test="remarks != null">remarks,
+                    </if>
+                    <if test="longitude != null">longitude,
+                    </if>
+                    <if test="latitude != null">latitude,
+                    </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                    <if test="varieties != null">#{varieties},
+                    </if>
+                    <if test="cost != null">#{cost},
+                    </if>
+                    <if test="remarks != null">#{remarks},
+                    </if>
+                    <if test="longitude != null">#{longitude},
+                    </if>
+                    <if test="latitude != null">#{latitude},
+                    </if>
+        </trim>
+    </insert>
+
+    <update id="updateQkRescueSupplies" parameterType="QkRescueSupplies">
+        update qk_rescue_supplies
+        <trim prefix="SET" suffixOverrides=",">
+                    <if test="varieties != null">varieties =
+                        #{varieties},
+                    </if>
+                    <if test="cost != null">cost =
+                        #{cost},
+                    </if>
+                    <if test="remarks != null">remarks =
+                        #{remarks},
+                    </if>
+                    <if test="longitude != null">longitude =
+                        #{longitude},
+                    </if>
+                    <if test="latitude != null">latitude =
+                        #{latitude},
+                    </if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteQkRescueSuppliesById" parameterType="Long">
+        delete
+        from qk_rescue_supplies where id = #{id}
+    </delete>
+
+    <delete id="deleteQkRescueSuppliesByIds" parameterType="String">
+        delete from qk_rescue_supplies where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <select id="selectQkRescueSuppliesAllList" parameterType="QkRescueSupplies" resultMap="QkRescueSuppliesResult">
+        SELECT
+            id,
+            sd.dept_id,
+            sd.dept_name AS dept,
+            longitude,
+            latitude
+        FROM
+            qk_rescue_supplies qk
+                LEFT JOIN sys_dept sd ON qk.dept_id = sd.dept_id
+        GROUP BY
+            qk.dept_id
+    </select>
+
+    <select id="selectQkRescueSuppliesByDeptId" parameterType="QkRescueSupplies" resultMap="QkRescueSuppliesResult">
+        SELECT id,
+               varieties,
+               cost,
+               remarks,
+               longitude,
+               latitude,
+               sd.dept_name AS dept
+        FROM qk_rescue_supplies qk
+                 LEFT JOIN sys_dept sd ON qk.dept_id = sd.dept_id
+        where qk.dept_id = #{deptId}
+    </select>
+</mapper>

+ 7 - 0
zhsq_qk-ui/src/api/components/supermap.js

@@ -31,3 +31,10 @@ export function getIcon (state) {
     // case "3" : return iconList.yy;break;
   }
 }
+
+export const yjIconList={
+  "yjcs":require('@/assets/images/cameraType/yjcs.png'),
+  "jyd":require('@/assets/images/cameraType/jyd.png'),
+  "fxwz":require('@/assets/images/cameraType/fxwz.png'),
+  // "yy":require('@/assets/images/cameraType/yy.png'),
+}

+ 40 - 0
zhsq_qk-ui/src/api/system/aqyj.js

@@ -0,0 +1,40 @@
+import request from '@/utils/request'
+
+// 可视化查询抢险救援队列表
+export function selectQkEmergencyRescueTeamAllList() {
+  return request({
+    url: '/system/team/selectQkEmergencyRescueTeamAllList',
+    method: 'get',
+  })
+}
+
+// 可视化查询应急避难所列表
+export function selectQkEmergencyShelterAllList() {
+  return request({
+    url: '/system/shelter/selectQkEmergencyShelterAllList',
+    method: 'get',
+  })
+}
+
+// 可视化查询防汛抗旱物资储备列表
+export function selectQkRescueSuppliesAllList() {
+  return request({
+    url: '/system/supplies/selectQkRescueSuppliesAllList',
+    method: 'get',
+  })
+}
+// 可视化根据deptId查询抢险救援队列表
+export function selectQkEmergencyRescueTeamByDeptId(id) {
+  return request({
+    url: '/system/team/selectQkEmergencyRescueTeamByDeptId/' + id,
+    method: 'get'
+  })
+}
+
+// 可视化根据deptId查询防汛抗旱物资储备列表
+export function selectQkRescueSuppliesByDeptId(id) {
+  return request({
+    url: '/system/supplies/selectQkRescueSuppliesByDeptId/' + id,
+    method: 'get'
+  })
+}

+ 44 - 0
zhsq_qk-ui/src/api/system/shelter.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询应急避难所列表
+export function listShelter(query) {
+    return request({
+        url: '/system/shelter/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询应急避难所详细
+export function getShelter(id) {
+    return request({
+        url: '/system/shelter/' + id,
+        method: 'get'
+    })
+}
+
+// 新增应急避难所
+export function addShelter(data) {
+    return request({
+        url: '/system/shelter',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改应急避难所
+export function updateShelter(data) {
+    return request({
+        url: '/system/shelter',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除应急避难所
+export function delShelter(id) {
+    return request({
+        url: '/system/shelter/' + id,
+        method: 'delete'
+    })
+}

+ 44 - 0
zhsq_qk-ui/src/api/system/supplies.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询防汛抗旱物资储备列表
+export function listSupplies(query) {
+    return request({
+        url: '/system/supplies/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询防汛抗旱物资储备详细
+export function getSupplies(id) {
+    return request({
+        url: '/system/supplies/' + id,
+        method: 'get'
+    })
+}
+
+// 新增防汛抗旱物资储备
+export function addSupplies(data) {
+    return request({
+        url: '/system/supplies',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改防汛抗旱物资储备
+export function updateSupplies(data) {
+    return request({
+        url: '/system/supplies',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除防汛抗旱物资储备
+export function delSupplies(id) {
+    return request({
+        url: '/system/supplies/' + id,
+        method: 'delete'
+    })
+}

+ 44 - 0
zhsq_qk-ui/src/api/system/team.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询抢险救援队列表
+export function listTeam(query) {
+    return request({
+        url: '/system/team/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询抢险救援队详细
+export function getTeam(id) {
+    return request({
+        url: '/system/team/' + id,
+        method: 'get'
+    })
+}
+
+// 新增抢险救援队
+export function addTeam(data) {
+    return request({
+        url: '/system/team',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改抢险救援队
+export function updateTeam(data) {
+    return request({
+        url: '/system/team',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除抢险救援队
+export function delTeam(id) {
+    return request({
+        url: '/system/team/' + id,
+        method: 'delete'
+    })
+}

+ 7 - 7
zhsq_qk-ui/src/assets/geoJson/seven.json

@@ -6,7 +6,7 @@
 			"UserID": 0,
 			"name": "前程街道",
 		  	"centroid":[125.12206425844046 , 43.79176559475498],
-      "customColor":"#3D452B",
+      "customColor":"#041D3F",
 			"社区": "pzyc"
 		},
 		"geometry": {
@@ -309,7 +309,7 @@
 		"properties": {
 			"UserID": 0,
 			"name": "富民街道",
-			"customColor":"#3D452B",
+			"customColor":"#041D3F",
 		  	"centroid":[125.14606425844046 , 43.84176559475492],
 			"社区": "xnc"
 		},
@@ -496,7 +496,7 @@
 		"properties": {
 			"UserID": 0,
 			"name": "锦城街道",
-      "customColor":"#3D452B",
+      "customColor":"#041D3F",
 		  	"centroid":[125.21783175638734,43.83816559475492],
 			"社区": "sqjsq"
 		},
@@ -545,7 +545,7 @@
 		"properties": {
 			"UserID": 0,
 			"name": "东风街道",
-      "customColor":"#3D452B",
+      "customColor":"#041D3F",
 		  	"centroid":[125.2423175638734,43.86576559475492],
 			"社区": "ylsq"
 		},
@@ -615,7 +615,7 @@
 		"properties": {
 			"UserID": 0,
 			"name": "锦绣街道",
-      "customColor":"#3D452B",
+      "customColor":"#041D3F",
             "centroid":[125.20783175638734,43.84676559475492],
 			"社区": "xxsq"
 		},
@@ -664,7 +664,7 @@
 		"properties": {
 			"UserID": 0,
 			"name": "zwdt",
-      "customColor":"#3D452B",
+      "customColor":"#041D3F",
 			"社区": "yqcq"
 
 		},
@@ -687,7 +687,7 @@
 		"properties": {
 			"UserID": 0,
 			"name": "广兴街道",
-      "customColor":"#3D452B",
+      "customColor":"#041D3F",
             "centroid":[125.2523175638734,43.85376559475492],
 			"社区": "yqcq"
 		},

BIN
zhsq_qk-ui/src/assets/images/cameraType/fxwz.png


BIN
zhsq_qk-ui/src/assets/images/cameraType/jyd.png


BIN
zhsq_qk-ui/src/assets/images/cameraType/yjcs.png


BIN
zhsq_qk-ui/src/assets/images/home-btn.png


BIN
zhsq_qk-ui/src/assets/images/nav-background-left-on.png


BIN
zhsq_qk-ui/src/assets/images/nav-background-left.png


BIN
zhsq_qk-ui/src/assets/images/nav-background-right-on.png


BIN
zhsq_qk-ui/src/assets/images/nav-background-right.png


+ 14 - 14
zhsq_qk-ui/src/assets/images/qkq_body.css

@@ -295,8 +295,9 @@ body {
 /***********************头部*************************/
 .header{
 	width: 100%;
-	background: url(qkq_topbg.png) no-repeat center;
-	height: 68px;
+	background: url(qkq_topbg.png) no-repeat center;
+	background-size: 100%;
+	height: 100px;
 	position: fixed;
 	top:0px;
 	left: 0px;
@@ -304,14 +305,12 @@ body {
 }
 .header h1{
 	font-family: MyWebFont;
-	line-height: 56px;
-	font-size: 36px;
+	line-height: 108px;
+	font-size: 34px;
 	text-align: center;
-	background-image: linear-gradient(to bottom, #f4f1e8, #f0ddaa);
+	/* background-image: linear-gradient(to bottom, #f4f1e8, #f0ddaa); */
 	color: #ffffff;
-	background-clip: text;
-	-webkit-background-clip: text;
-	-webkit-text-fill-color: transparent;
+	text-shadow: 0px 0px 8px #035dd8;
 
 }
 
@@ -333,11 +332,11 @@ body {
 	padding-left: 20px;
 	background:url(qkq_dw.png) no-repeat left center;
 	font-size: 16px;
-	color: #fceec9;
+	color: #fff;
 }
 .left_con .top_txt span,.nav_min .top_txt span{
 	font-size: 14px;
-	color: #fceec9;
+	color: #fff;
 	margin-left: 6px;
 }
 .right_con{
@@ -356,12 +355,12 @@ body {
 }
 .right_con .top_txt b,.nav_min .top_txt2 b{
 	font-size: 16px;
-	color: #fceec9;
+	color: #fff;
 	background: none!important;
 }
 .right_con .top_txt span,.nav_min .top_txt2 span{
 	font-size: 14px;
-	color: #fceec9;
+	color: #fff;
 	margin-right: 0px;
 }
 .qkq_tit{
@@ -373,7 +372,7 @@ body {
     margin-bottom: 10px;
     background-size: 100% 100%;
 	position: relative;
-	text-shadow: 0px 0px 5px #00ffff;
+	text-shadow: 0px 0px 5px #0096ff;
 }
 .qkq_tit select{
 	float:right;
@@ -457,7 +456,8 @@ color: #fff;
 
 /*底部*/
 .footer{
-	background: url(qkq_btmbg.png) no-repeat bottom;
+	background: url(qkq_btmbg.png) no-repeat bottom;
+	background-size: 100%;
 	width: 100%;
 	position: fixed;
 	bottom:0px;

BIN
zhsq_qk-ui/src/assets/images/qkq_btmbg.png


BIN
zhsq_qk-ui/src/assets/images/qkq_dw.png


BIN
zhsq_qk-ui/src/assets/images/qkq_icon1.png


BIN
zhsq_qk-ui/src/assets/images/qkq_icon2.png


BIN
zhsq_qk-ui/src/assets/images/qkq_icon3.png


BIN
zhsq_qk-ui/src/assets/images/qkq_icon4.png


BIN
zhsq_qk-ui/src/assets/images/qkq_icon5.png


BIN
zhsq_qk-ui/src/assets/images/qkq_icon6.png


BIN
zhsq_qk-ui/src/assets/images/qkq_icon7.png


BIN
zhsq_qk-ui/src/assets/images/qkq_icon8.png


BIN
zhsq_qk-ui/src/assets/images/qkq_iconcon.png


BIN
zhsq_qk-ui/src/assets/images/qkq_iconcon_on.png


+ 17 - 5
zhsq_qk-ui/src/assets/images/qkq_index.css

@@ -25,24 +25,24 @@
 	font-family: MyWebFont2;
 	font-size: 20px;
 	font-weight: 900;
-	color: #6affff;
+	color: #2c70e6;
 	margin-bottom: 3px;
 }
 .qkq_tdzy .dt_txt h3{
 	font-size: 14px;
-	color: #6affff;
+	color: #2c70e6;
 	margin-bottom: 3px;
 }
 .qkq_tdzy .dt_txt h4{
 	font-size: 14px;
 	color: #fff;
 	margin-bottom: 8px;
-	text-shadow: 0px 0px 5px #6affff;
+	text-shadow: 0px 0px 5px #2c70e6;
 }
 .qkq_tdzy .dt_txt h5{
 	font-size: 10px;
 	color: #fff;
-	text-shadow: 0px 0px 5px #6affff;
+	text-shadow: 0px 0px 5px #2c70e6;
 }
 .qkq_tdzy .dt_con{
 	background: url(qkq_tdzybg.png) no-repeat center;
@@ -254,6 +254,9 @@
 .qkq_mapcon .qkq_map a:hover{
 	background: url(qkq_iconcon_on.png) no-repeat center;
 	transform: translateY(-10px); /* 鼠标划过时向上移动20像素 */
+}
+.qkq_mapcon .qkq_map a:hover i img{
+	
 }
 .qkq_mapcon .qkq_map a i{
 	display: block;
@@ -341,7 +344,16 @@
 */
 
 
-
+.footerbg{
+	background: url(../images/sprhbj-bottom.png) no-repeat center;
+	background-size: 100% 100%;
+	width: 100%;
+	height: 160px;
+	position: fixed;
+	bottom: 0px;
+	left: 0px;
+	z-index: 0;
+}
 
 
 

BIN
zhsq_qk-ui/src/assets/images/qkq_leftbg.png


BIN
zhsq_qk-ui/src/assets/images/qkq_mapcon.png


BIN
zhsq_qk-ui/src/assets/images/qkq_rightbg.png


+ 13 - 6
zhsq_qk-ui/src/assets/images/qkq_sprh.css

@@ -1,7 +1,7 @@
 @charset "utf-8";
 
 .left_con,.right_con{
-	min-height: 80vh;
+	min-height: 85vh;
 }
 
 .bj_left{
@@ -340,7 +340,7 @@ padding-left: 20px;
 }
 .nav-li-left :hover{
   filter: brightness(400%);
-  text-shadow: 0 0 20px #faea12;
+  text-shadow: 0 0 20px #00aaff;
   transform: translateY(-3px);
 
 }
@@ -422,11 +422,14 @@ padding-left: 20px;
 }
 .nav-li-right :hover{
     filter: brightness(400%);
-    text-shadow: 0 0 20px #faea12;
+    text-shadow: 0 0 20px #00aaff;
     transform: translateY(-3px);
 
 }
-
+.nav-li-right.on span,.nav-li-left.on span{
+    text-shadow: 0 0 20px #00aaff;
+	color: #fff;
+}
 
 
 
@@ -889,10 +892,14 @@ border-radius: 2px;
 .qkq_con{
 	position: fixed;
 	left: 28px;
-	top:80px;
+	top:100px;
 	z-index: 999;
 	display: flex;
 	flex-direction: row;
+}
+.qkq_con2{
+	left: 60px;
+	top:120px;
 }
 .con_left_a{
 	width: 400px;
@@ -1391,7 +1398,7 @@ padding-right: 10px;
 }
 .qkq_bjs:nth-child(2){
 	background: url(../images/qkq_icon26.png) no-repeat center;
-background-size: 95%;
+background-size: 92%;
 position: relative;
 }
 

BIN
zhsq_qk-ui/src/assets/images/qkq_topbg.png


BIN
zhsq_qk-ui/src/assets/images/sprhbj-bottom.png


+ 3 - 3
zhsq_qk-ui/src/map3d/index.vue

@@ -120,7 +120,7 @@ export default {
       const geometry = new THREE.BufferGeometry().setFromPoints(points);
 
       // 创建材质
-      const material = new THREE.LineBasicMaterial({ color: '#F4B00D' });
+      const material = new THREE.LineBasicMaterial({ color: '#1574F0' });
 
       // 创建线
       const line = new THREE.Line(geometry, material);
@@ -137,7 +137,7 @@ export default {
       const geometry2 = new THREE.BufferGeometry().setFromPoints(points2);
 
       // 创建材质
-      const material2 = new THREE.LineBasicMaterial({ color: '#F4B00D' });
+      const material2 = new THREE.LineBasicMaterial({ color: '#1574F0' });
 
       // 创建线
       const line2 = new THREE.Line(geometry2, material2);
@@ -342,7 +342,7 @@ export default {
 
          const properties = lastPick.object.parent.customProperties;
          if (lastPick.object.material[0]) {
-           lastPick.object.material[0].color.set("#B8A64F");
+           lastPick.object.material[0].color.set("#1F78F0");
            lastPick.object.material[0].opacity = 1; // 设置完全不透明
          }
          // if (tooltipEl && tooltipEl.style) {

+ 6 - 6
zhsq_qk-ui/src/map3d/mapConfig.js

@@ -7,15 +7,15 @@ export const mapConfig = {
   mapTransparent: true,
   mapOpacity: 0.9,
   // 地图颜色
-  mapColor: "#1ED760", // 地图原本颜色
-  mapHoverColor: "#0B284E", // 地图hover颜色
+  mapColor: "#041D3F", // 地图原本颜色
+  mapHoverColor: "#041D3F", // 地图hover颜色
   // 地图人数渐变
-  mapColorGradient: ["#3D452B"],
+  mapColorGradient: ["#041D3F"],
   // 地图侧面渐变
-  mapSideColor1: "#919154",
-  mapSideColor2: "#919154",
+  mapSideColor1: "#0191C7",
+  mapSideColor2: "#01A3DF",
   // 上面的line
-  topLineColor: '#6B784A',
+  topLineColor: '#1640A0',
   topLineWidth: 3,
   topLineZIndex: Depth + 0.5,
   // label 2d高度

+ 223 - 118
zhsq_qk-ui/src/views/fusion/aqyj.vue

@@ -21,52 +21,44 @@
     <div class="left_con sprh-left">
       <div class="top_txt">
         <b>汽开区</b>
-<!--        <span>小雨</span>-->
-<!--        <span>9~16℃</span>-->
+        <!--        <span>小雨</span>-->
+        <!--        <span>9~16℃</span>-->
       </div>
       <!-- 设备tab开始-->
       <div class="facility_tab facility_tab2">
 
-          <div class="qkq_tdzy">
-            <div class="qkq_tit ">应急场所</div>
-         <div class="scrollbar" style="height: 300px;">
-           <ul id="accordion" class="accordion yjcs">
-             <!-- li上加on类名是点击选中后效果 -->
-            <li class="on">
-              <div class="link">为进一步规范和加强应急避难场所规...</div>
-            </li>
-            <li>
-              <div class="link">应急避难场所按建筑与场地空间类别...</div>
-            </li>
-            <li>
-              <div class="link">应急避难场所的规划、建设、使用与...</div>
-            </li>
-            <li>
-              <div class="link">应急避难场所建设、管护和使用所需...</div>
-            </li>
-           </ul>
-         </div>
+        <div class="qkq_tdzy">
+          <div class="qkq_tit ">应急场所</div>
+          <div class="scrollbar" style="height: 300px;">
+            <ul id="accordion" class="accordion yjcs">
+              <!-- li上加on类名是点击选中后效果 -->
+              <li v-for="(item, index) in shelter" :class="{ on: item.id == shelterCurrent }" :key="index"
+                  @click="onShelterlick(item)">
+                <div class="link">{{ item.name }} - {{ item.address }}</div>
+              </li>
+            </ul>
+          </div>
 
         </div>
-		  <div class="qkq_tdzy">
-		    <div class="qkq_tit">城市内涝点</div>
-		 <div class="scrollbar" style="height: 300px;">
-		   <ul id="accordion" class="accordion csnld">
-		    <li class="on">
-		      <div class="link">易涝隐患区域加快整治。</div>
-		    </li>
-		    <li>
-		      <div class="link">行洪排涝能力不断提升。</div>
-		    </li>
-		    <li>
-		      <div class="link">设施运维管理持续完善。</div>
-		    </li>
-		    <li>
-		      <div class="link">海绵城市建设稳步推进。</div>
-		    </li>
-		   </ul>
-		 </div>
-		  </div>
+        <div class="qkq_tdzy">
+          <div class="qkq_tit">城市内涝点</div>
+          <div class="scrollbar" style="height: 300px;">
+            <ul id="accordion" class="accordion csnld">
+              <li class="on">
+                <div class="link">易涝隐患区域加快整治。</div>
+              </li>
+              <li>
+                <div class="link">行洪排涝能力不断提升。</div>
+              </li>
+              <li>
+                <div class="link">设施运维管理持续完善。</div>
+              </li>
+              <li>
+                <div class="link">海绵城市建设稳步推进。</div>
+              </li>
+            </ul>
+          </div>
+        </div>
 
       </div>
       <!-- 设备tab结束-->
@@ -79,60 +71,46 @@
         <!--        <span>星期六</span>-->
         <!--        <b>11:16:58</b>-->
       </div>
-    <div class="facility_tab facility_tab2">
+      <div class="facility_tab facility_tab2">
 
         <div class="qkq_tdzy">
-          <div class="qkq_tit ">内涝设备</div>
-       <div class="scrollbar" style="height: 300px;">
-         <ul id="accordion" class="accordion nlsb">
-           <!-- li上加on类名是点击选中后效果 -->
-           <li class="on">
-             <div class="link">传感器设备是城市内涝积水监测预警...</div>
-           </li>
-		   <li>
-		     <div class="link">数据采集设备负责将传感器设备采集...</div>
-		   </li>
-		   <li>
-		     <div class="link">通信设备是城市内涝积水监测预警系...</div>
-		   </li>
-		   <li>
-		     <div class="link">显示设备是城市内涝积水监测预警系...</div>
-		   </li>
-         </ul>
-       </div>
+          <div class="qkq_tit ">抢险救援队</div>
+          <div class="scrollbar" style="height: 300px;">
+            <ul id="accordion" class="accordion nlsb">
+              <!-- li上加on类名是点击选中后效果 -->
+              <li v-for="(item, index) in team" :class="{ on: item.id == teamCurrent }" :key="index"
+                  @click="onTeamlick(item)">
+                <div class="link">{{ item.dept }}</div>
+              </li>
+            </ul>
+          </div>
 
-      </div>
-    		  <div class="qkq_tdzy">
-    		    <div class="qkq_tit">应急场所设备</div>
-    		 <div class="scrollbar" style="height: 300px;">
-    		   <ul id="accordion" class="accordion yjcssb">
-    		    <li class="on">
-    		      <div class="link">急救箱:包括绷带、消毒棉、止血带...</div>
-    		    </li>
-    		    <li>
-    		      <div class="link">停火器:能够有效灭火且易于携带的...</div>
-    		    </li>
-    		    <li>
-    		      <div class="link">照明设备:包括手电筒、充电式LED...</div>
-    		    </li>
-    		    <li>
-    		      <div class="link"> 呼吸器:用于呼吸困难、有毒气体...</div>
-    		    </li>
-    		   </ul>
-    		 </div>
-    		  </div>
+        </div>
+        <div class="qkq_tdzy">
+          <div class="qkq_tit">防汛物资</div>
+          <div class="scrollbar" style="height: 300px;">
+            <ul id="accordion" class="accordion yjcssb">
+              <li v-for="(item, index) in supplies" :class="{ on: item.id == suppliesCurrent }" :key="index"
+                  @click="onSuppliesclick(item)">
+                <div class="link">{{ item.dept }}</div>
+              </li>
+            </ul>
+          </div>
+        </div>
 
-    </div>
+      </div>
 
     </div>
     <!--右侧结束-->
-	<!-- 多选按钮  开始 -->
-	<form class="qkq_dx">
-	  <label><input type="checkbox"/>应急场所</label>
-	  <label><input type="checkbox"/>内涝点</label>
-	  <label><input type="checkbox"/>摄像头</label>
-	</form>
-	<!-- 多选按钮  结束 -->
+    <!-- 多选按钮  开始 -->
+    <form class="qkq_dx">
+      <label><input checked type="checkbox" name="ckbx" id="sxt" @click="handleClick"/>摄像头</label>
+      <label><input type="checkbox" name="ckbx" id="yjcs" @click="handleClick"/>应急场所</label>
+      <label><input type="checkbox" name="ckbx" id="nld" @click="handleClick"/>城市内涝点</label>
+      <label><input type="checkbox" name="ckbx" id="jyd" @click="handleClick"/>抢险救援队</label>
+      <label><input type="checkbox" name="ckbx" id="fxwz" @click="handleClick"/>防汛物资</label>
+    </form>
+    <!-- 多选按钮  结束 -->
 
     <!-- 点位图例 开始
     <div class="dwtl">
@@ -190,6 +168,11 @@ import "@/assets/images/qkq_body.css";
 import "@/assets/images/qkq_index.css";
 import "@/assets/images/qkq_sprh.css";
 import {getCameraList} from "@/api/system/camera";
+import {
+  selectQkEmergencyRescueTeamAllList,
+  selectQkEmergencyShelterAllList,
+  selectQkRescueSuppliesAllList,
+} from "@/api/system/aqyj";
 import supermap from "@/views/supermap/supermap";
 
 
@@ -202,16 +185,26 @@ export default {
     return {
       dropdownVisible: false,
       cameras: [],
+      team: [],
+      shelter: [],
+      supplies: [],
       sltProps: null,
+      teamCurrent: null,
+      shelterCurrent: null,
+      suppliesCurrent: null,
       currentTime: '',
       btnOne: true,
-      btnTwo: false
+      btnTwo: false,
+      yjcsChecked: false,
     };
     // 可根据实际情况添加更多设备列表
   },
   created() {
   },
   mounted() {
+    this.selectQkEmergencyRescueTeamAllList();
+    this.selectQkEmergencyShelterAllList();
+    this.selectQkRescueSuppliesAllList();
     this.resourceDistribution();
     this.deviceOnline();
     this.deviceOffline();
@@ -224,30 +217,133 @@ export default {
   },
 
   methods: {
+    handleClick() {
+      this.$refs.supermap.clearM()
+      let that = this;
+      $('input[name="ckbx"]:checked').each(function () {
+        switch ($(this).attr("id")) {
+          case "sxt":
+            that.loada();
+            break;
+          case "yjcs":
+            that.loadb();
+            break;
+          case "jyd":
+            that.loadc();
+            break;
+          case "fxwz":
+            that.loadd();
+        }
+      });
+    },
+    loada() {
+      this.$refs.supermap.selectCameraList();
+    },
+    loadb() {
+      this.$refs.supermap.selectQkEmergencyShelterAllList();
+    },
+    loadc() {
+      this.$refs.supermap.selectQkEmergencyRescueTeamAllList();
+    },
+    loadd() {
+      this.$refs.supermap.selectQkRescueSuppliesAllList();
+    },
+    onTeamlick(val) {
+      let dataSource = [];
+      this.suppliesCurrent = null;
+      this.shelterCurrent = null;
+      if (val.id == this.teamCurrent) {
+        this.teamCurrent = null;
+      } else {
+        this.teamCurrent = val.id;
+      }
+      dataSource.push(val)
+      // var checkbox = document.getElementById("jyd");
+      // checkbox.setAttribute("checked", "");
+      this.$refs.supermap.addMarkers(dataSource, "jyd")
+      this.$refs.supermap.dropLocation(val.latitude, val.longitude);
+    },
+    onSuppliesclick(val) {
+      let dataSource = [];
+      this.teamCurrent = null;
+      this.shelterCurrent = null;
+      if (val.id == this.suppliesCurrent) {
+        this.suppliesCurrent = null;
+      } else {
+        this.suppliesCurrent = val.id;
+      }
+      dataSource.push(val)
+      // var checkbox = document.getElementById("fxwz");
+      // checkbox.setAttribute("checked", "");
+      this.$refs.supermap.addMarkers(dataSource, "fxwz")
+      this.$refs.supermap.dropLocation(val.latitude, val.longitude);
+    },
+    onShelterlick(val) {
+      let dataSource = [];
+      this.teamCurrent = null;
+      this.suppliesCurrent = null;
+      if (val.id == this.shelterCurrent) {
+        this.shelterCurrent = null;
+      } else {
+        this.shelterCurrent = val.id;
+      }
+      dataSource.push(val)
+      // var checkbox = document.getElementById("yjcs");
+      // checkbox.setAttribute("checked", "");
+      this.$refs.supermap.addMarkers(dataSource, "yjcs")
+      this.$refs.supermap.dropLocation(val.latitude, val.longitude);
+    },
+    //可视化查询抢险救援队列表
+    selectQkEmergencyRescueTeamAllList() {
+      selectQkEmergencyRescueTeamAllList().then(response => {
+        this.team = response.data;
+      })
+    }
+    ,
+    //可视化查询应急避难所列表
+    selectQkEmergencyShelterAllList() {
+      selectQkEmergencyShelterAllList().then(response => {
+        this.shelter = response.data;
+      })
+    }
+    ,
+    //可视化查询防汛抗旱物资储备列表
+    selectQkRescueSuppliesAllList() {
+      selectQkRescueSuppliesAllList().then(response => {
+        this.supplies = response.data;
+      })
+    }
+    ,
     sltHandle() {
       this.btnOne = true
       this.btnTwo = false
       this.$refs.supermap.getSupermap(null, null, null, "slt", null, null)
-    },
+    }
+    ,
     yxtHandle() {
       this.btnTwo = true
       this.btnOne = false
       this.$refs.supermap.getSupermap(null, null, null, "yxt", null, null)
-    },
+    }
+    ,
     handleNavigation(route) {
       this.$router.push({path: route});
-    },
+    }
+    ,
     homePage(route) {
       this.$router.push({path: route});
-    },
+    }
+    ,
     cameraList() {
       getCameraList().then(response => {
         this.cameras = response.data;
       })
-    },
+    }
+    ,
     toggleDropdown(event) {
       this.dropdownVisible = !this.dropdownVisible;
-    },
+    }
+    ,
 
     resourceDistribution() {
       //资源分布
@@ -378,7 +474,8 @@ export default {
       if (option) {
         myChart.setOption(option);
       }
-    },
+    }
+    ,
 
     deviceOnline() {
       //在线设备
@@ -412,7 +509,7 @@ export default {
             name: "ring5",
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               return {
                 type: 'arc',
                 shape: {
@@ -435,7 +532,7 @@ export default {
             name: "ring5", //紫点
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               let x0 = api.getWidth() / 2;
               let y0 = api.getHeight() / 2;
               let r = Math.min(api.getWidth(), api.getHeight()) * 0.42;
@@ -461,7 +558,7 @@ export default {
             name: "ring5",
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               return {
                 type: 'arc',
                 shape: {
@@ -485,7 +582,7 @@ export default {
             name: "ring5", // 蓝色
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               let x0 = api.getWidth() / 2;
               let y0 = api.getHeight() / 2;
               let r = Math.min(api.getWidth(), api.getHeight()) * 0.42;
@@ -510,7 +607,7 @@ export default {
             name: "ring5",
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               return {
                 type: 'arc',
                 shape: {
@@ -535,7 +632,7 @@ export default {
             name: "ring5",
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               return {
                 type: 'arc',
                 shape: {
@@ -558,7 +655,7 @@ export default {
             name: "ring5",
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               let x0 = api.getWidth() / 2;
               let y0 = api.getHeight() / 2;
               let r = Math.min(api.getWidth(), api.getHeight()) * 0.47;
@@ -582,7 +679,7 @@ export default {
             name: "ring5", //绿点
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               let x0 = api.getWidth() / 2;
               let y0 = api.getHeight() / 2;
               let r = Math.min(api.getWidth(), api.getHeight()) * 0.47;
@@ -723,21 +820,24 @@ export default {
           y: y1
         }
       }
+
       function draw() {
         angle = angle + 3
         myChart.setOption(option, true)
         //window.requestAnimationFrame(draw);
       }
+
       if (timerId) {
         clearInterval(timerId);
       }
-      timerId = setInterval(function() {
+      timerId = setInterval(function () {
         //用setInterval做动画感觉有问题
         draw()
       }, 100);
 
       myChart.setOption(option);
-    },
+    }
+    ,
 
     deviceOffline() {
       // 视频融合--离线设备
@@ -772,7 +872,7 @@ export default {
             name: "ring5",
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               return {
                 type: 'arc',
                 shape: {
@@ -795,7 +895,7 @@ export default {
             name: "ring5", //紫点
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               let x0 = api.getWidth() / 2;
               let y0 = api.getHeight() / 2;
               let r = Math.min(api.getWidth(), api.getHeight()) * 0.42;
@@ -821,7 +921,7 @@ export default {
             name: "ring5",
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               return {
                 type: 'arc',
                 shape: {
@@ -845,7 +945,7 @@ export default {
             name: "ring5", // 蓝色
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               let x0 = api.getWidth() / 2;
               let y0 = api.getHeight() / 2;
               let r = Math.min(api.getWidth(), api.getHeight()) * 0.42;
@@ -870,7 +970,7 @@ export default {
             name: "ring5",
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               return {
                 type: 'arc',
                 shape: {
@@ -895,7 +995,7 @@ export default {
             name: "ring5",
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               return {
                 type: 'arc',
                 shape: {
@@ -918,7 +1018,7 @@ export default {
             name: "ring5",
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               let x0 = api.getWidth() / 2;
               let y0 = api.getHeight() / 2;
               let r = Math.min(api.getWidth(), api.getHeight()) * 0.47;
@@ -942,7 +1042,7 @@ export default {
             name: "ring5", //绿点
             type: 'custom',
             coordinateSystem: "none",
-            renderItem: function(params, api) {
+            renderItem: function (params, api) {
               let x0 = api.getWidth() / 2;
               let y0 = api.getHeight() / 2;
               let r = Math.min(api.getWidth(), api.getHeight()) * 0.47;
@@ -1083,21 +1183,24 @@ export default {
           y: y1
         }
       }
+
       function draw() {
         angle = angle + 3
         myChart.setOption(option, true)
         //window.requestAnimationFrame(draw);
       }
+
       if (timerId) {
         clearInterval(timerId);
       }
-      timerId = setInterval(function() {
+      timerId = setInterval(function () {
         //用setInterval做动画感觉有问题
         draw()
       }, 100);
 
       myChart.setOption(option);
-    },
+    }
+    ,
 
     getCurrentTime() {
       const now = new Date();
@@ -1117,7 +1220,8 @@ export default {
       const formattedSecond = second < 10 ? `0${second}` : second;
 
       this.currentTime = `${year}年${formattedMonth}月${formattedDate}日 ${weekDays[day]} ${formattedHour}:${formattedMinute}:${formattedSecond}`;
-    },
+    }
+    ,
 
     regionTop() {
       //摄像头统计
@@ -1141,7 +1245,7 @@ export default {
           },
           top: '0%',
           left: 'bottom',
-		  bottm:'-10%'
+          bottm: '-10%'
         },
         tooltip: {
           trigger: 'axis',
@@ -1256,7 +1360,8 @@ export default {
       if (option) {
         myChart.setOption(option);
       }
-    },
+    }
+    ,
   }
 };
 

+ 1 - 1
zhsq_qk-ui/src/views/fusion/bjzshz.vue

@@ -26,7 +26,7 @@
     </div>
     <!-- 小头部 结束 -->
     <!-- 中间内容 开始 -->
-    <div class="qkq_con">
+    <div class="qkq_con qkq_con2">
 
 
       <!--左侧开始-->

+ 1 - 1
zhsq_qk-ui/src/views/fusion/fwyq.vue

@@ -26,7 +26,7 @@
     </div>
     <!-- 小头部 结束 -->
     <!-- 中间内容 开始 -->
-    <div class="qkq_con">
+    <div class="qkq_con qkq_con2">
 
 
       <!--左侧开始-->

+ 4 - 1
zhsq_qk-ui/src/views/fusion/index.vue

@@ -186,7 +186,10 @@
     <!--底部开始-->
     <div class="footer">
 
-    </div>
+    </div>
+		<div class="footerbg">
+		
+		</div>
     <!--底部开始-->
   </div>
 </template>

+ 1 - 1
zhsq_qk-ui/src/views/fusion/jjyx.vue

@@ -26,7 +26,7 @@
     </div>
     <!-- 小头部 结束 -->
     <!-- 中间内容 开始 -->
-    <div class="qkq_con">
+    <div class="qkq_con qkq_con2">
 
 
       <!--左侧开始-->

+ 1 - 1
zhsq_qk-ui/src/views/fusion/yshj_new.vue

@@ -26,7 +26,7 @@
     </div>
     <!-- 小头部 结束 -->
     <!-- 中间内容 开始 -->
-    <div class="qkq_con">
+    <div class="qkq_con qkq_con2">
 
 
       <!--左侧开始-->

+ 431 - 195
zhsq_qk-ui/src/views/supermap/supermap.vue

@@ -1,14 +1,50 @@
 <template>
-  <div id="qksupermap" ref="map" style="height: 100%;width: 100%"></div>
+  <div>
+    <div id="qksupermap" ref="map" style="height: 100%;width: 100%"></div>
+    <div>
+      <el-dialog title="防汛物资" :visible.sync="suppliesOpen" width="700px" append-to-body>
+        <el-table :data="suppliesData" height="350">
+          <el-table-column width="60" label="序号" align="center" type="index"/>
+          <el-table-column label="品种" align="center" prop="varieties"/>
+          <el-table-column label="价值(万元)" align="center" prop="cost"/>
+          <el-table-column label="备注" align="center" prop="remarks"/>
+        </el-table>
+      </el-dialog>
+    </div>
+    <div>
+      <el-dialog title="抢险救援队" :visible.sync="teamOpen" width="1200px" append-to-body>
+        <el-table :data="teamData" height="350">
+          <el-table-column width="60" label="序号" align="center" type="index"/>
+          <el-table-column width="100" label="姓名" align="center" prop="name"/>
+          <el-table-column label="职务" align="center" prop="post"/>
+          <el-table-column label="手机号" align="center" prop="phone"/>
+          <el-table-column label="组织归属" align="center" prop="dept"/>
+          <el-table-column label="所属乡镇" align="center" prop="township"/>
+          <el-table-column label="所属村" align="center" prop="village"/>
+        </el-table>
+      </el-dialog>
+    </div>
+  </div>
 </template>
 
 <script>
-import {iconList, selectSuperMap, listForMark, getIcon} from '@/api/components/supermap.js';
+import {iconList, selectSuperMap, listForMark, getIcon, yjIconList} from '@/api/components/supermap.js';
+import {
+  selectQkEmergencyRescueTeamAllList,
+  selectQkEmergencyShelterAllList,
+  selectQkRescueSuppliesAllList,
+  selectQkRescueSuppliesByDeptId,
+  selectQkEmergencyRescueTeamByDeptId
+} from "@/api/system/aqyj";
 
 export default {
   name: "sookaSuperMap",
   data() {
     return {
+      suppliesOpen: false,
+      suppliesData: [],
+      teamOpen: false,
+      teamData: [],
       isAdmin: false,
       isJieDao: false,
       mapId: "qksupermap",
@@ -40,6 +76,7 @@ export default {
       map_qikaiYingXiangLunKuo: "",
       //选择用到的
       resultData: [],
+      resultLayer: [],
       // 街道
       jieDao: null,
       // 社区
@@ -52,6 +89,8 @@ export default {
       rfhSj: null,
       // 年份
       year: null,
+      //事件落点类型
+      markType: ['sxt'],
       //事件详情页是否显示
       eventDetailVisible: null,
       // 路由参数
@@ -60,6 +99,9 @@ export default {
       closeChoseBuilding: null,
       lockReconnect: false,
       userId: null,
+      layerGroup: null, // 地图标点图标
+
+      myLayerGroup: []
     }
   },
   mounted() {
@@ -94,7 +136,7 @@ export default {
       selectSuperMap().then(response => {
         this.centerpointLat = response.data.superMapIServerQiKaiQuMapCenterPoint.split(",")[0];
         this.centerpointLon = response.data.superMapIServerQiKaiQuMapCenterPoint.split(",")[1];
-        // this.datasetName="通榆县委";
+        // this.datasetName="汽开区";
         // this.datasourceName="building";
         this.iServerMap = response.data.superMapIServer;
         this.layerId = response.data.layerId;
@@ -145,10 +187,7 @@ export default {
      * 事件落点
      */
     initSjd: async function () {
-      this.init({
-        deptId: null,
-        year: this.year
-      }, this.map);
+      this.init(this.markType, this.map);
     },
 
     /**
@@ -157,7 +196,12 @@ export default {
     initZxd: async function () {
       this.initMap();
     },
-
+    /**
+     * 落点定位
+     */
+    dropLocation: function (lat, lng) {
+      this.map.flyTo([lat, lng], 16, {duration: 3})
+    },
     /**
      * 加载地图
      */
@@ -174,208 +218,391 @@ export default {
         layers: this.layers,
         attributionControl: false,
         logoControl: false,
-      }).on({"dblclick": this.callbackFunction});
-      // this.editableLayers = new window.L.FeatureGroup().addTo(this.map);
-      // let options = {
-      //   position: 'topleft',
-      //   draw: {
-      //     polyline: null,
-      //     polygon: {},
-      //     circlemarker: null,
-      //     circle: null,
-      //     rectangle: {},
-      //     marker: null,
-      //     remove: false
-      //   }
-      // };
-      // let drawControl = new window.L.Control.Draw(options);
-      // this.map.addControl(drawControl);
-      // this.map.on(window.L.Draw.Event.CREATED, function (e) {
-      //
-      //   let type = e.layerType;
-      //   let layer = e.layer;
-      //
-      //   // _that.editableLayers.clearLayers();
-      //   // _that.editableLayers.addLayer(layer);
-      //
-      //   switch (type) {
-      //     case 'polygon':
-      //     case 'rectangle':
-      //       _that.kuangXuan(layer._latlngs);
-      //       break;
-      //   }
-      // });
+      });
       this.initSjd();
     },
-    callbackFunction: function (e) {
-      let that = this;
-      let lat = e.latlng.lat;
-      let lng = e.latlng.lng;
-      let polygon = window.L.circle([lat, lng], {radius: 10});//根据获取的坐标生成面,面直径为10,根据实际业务变动范围大小
-      let geometryParam = new SuperMap.GetFeaturesByGeometryParameters({
-        //如果涉及到需要加载多个数据源及数据集,格式为datasetNames: ["building:东风创业","building:东风创业","building:东风创业"],如区指挥中心或街道指挥中心登录,则需加载多个数据源和数据集
-        datasetNames: [that.datasourceName + ":" + that.datasetName],//["building:东风新立"]加载数据源和数据集
-        geometry: polygon,//加载坐标
-        spatialQueryMode: "INTERSECT"
+    //事件落点相关方法
+    init: function () {
+      this.selectCameraList()
+    },
+    addMarkers(options, type) {
+      let marker;
+      let markers = [];
+      let layerGroups = [];
+      let clusterGroup = L.markerClusterGroup({
+        //设置为true时显示聚类所占据的范围
+        showCoverageOnHover: false,
+        //设置为true时会向低一级聚类缩放
+        zoomToBoundsOnClick: true,
+        //增加点位时增加聚合动画(否则会出问题)
+        animateAddingMarkers: true,
+        //最大缩放级别点击聚合图标展开图标
+        spiderfyOnMaxZoom: true
+      });
+      for (let i = 0; i < options.length; i++) {
+        if (type == "sxt") {
+          marker = this.addMarker(options[i], type);
+        } else if (type == "yjcs") {
+          marker = this.addShelterMarker(options[i], type);
+        } else if (type == "jyd") {
+          marker = this.addTeamMarker(options[i], type);
+        } else if (type == "fxwz") {
+          marker = this.addSuppliesMark(options[i], type);
+        }
+        clusterGroup.addLayer(marker);
+        this.myLayerGroup.push({type: type, myGroup: clusterGroup});
+      }
+      this.map.addLayer(clusterGroup);
+    },
+    addMarker(option, type) {
+      let markers = [];
+      //定义图标
+      let icon = new window.L.Icon({
+        iconUrl: getIcon(option.buildType),
+        iconAnchor: [50, 50],
+        iconSize: [37, 64],
+        popupAnchor: [-33, -47],
+        shadowSize: [41, 41]
+      });
+      //定义落点
+      let marker = L.marker([option.latitude, option.longitude], {
+        icon: icon
+      });
+      //定义泡泡层
+      marker.on('mouseover', function () {
+        let html = "";
+        html += "<p class='v-p-color'>摄像头名称:" + option.cameraName + "</p>";
+        html += "<p class='v-p-color'>摄像头类型:" + option.buildTypeName + "</p>";
+        html += "<p class='v-p-color'>所属派出所:" + option.policeName + "</p>";
+        this.bindPopup(html).openPopup(this.getLatLng());
+      });
+      // /**鼠标移开关闭popup**/
+      marker.on('mouseout', function () {
+        this.closePopup();
       });
-      window.L.supermap
-        .featureService(that.dataUrl)
-        .getFeaturesByGeometry(geometryParam, function (serviceResult) {
-          console.log(serviceResult);
 
-          if (!serviceResult.result) {
-            return;
-          }
+      return marker;
+    },
 
-          if (serviceResult.result.features.features.length === 0) {
-            return;
-          }
-          let icon = new window.L.Icon({
-            iconUrl: iconList['yy'],
-            iconAnchor: [50, 50],
-            iconSize: [37, 64],
-            popupAnchor: [-33, -47],
-            shadowSize: [41, 41],
-          })
-          if (that.marker) {
-            that.marker.setLatLng(e.latlng);
-          } else {
-            that.marker = window.L.marker(e.latlng, {
-              icon: icon
-            }).addTo(that.map);
-          }
-          window.L.geoJSON(serviceResult.result.features.features, {
-            onEachFeature: function (feature, layer) {
-              that.marker.bindPopup("数据集名称:" + feature.properties.NAME + ', 建筑物标识:' + feature.properties.SMID).openPopup(that.marker.getLatLng());
-              // that.showLatLng(feature.properties.SMID,feature.properties.NAME);
-              that.$emit('supermapShuangji', feature.properties.SMID, feature.properties.NAME);
-            }
-          });
-        });
+    addShelterMarker(option, type) {
+      let markers = [];
+      //定义图标
+      let icon = new window.L.Icon({
+        iconUrl: yjIconList[type],
+        iconAnchor: [50, 50],
+        iconSize: [37, 64],
+        popupAnchor: [-33, -47],
+        shadowSize: [41, 41]
+      });
+      //定义落点
+      let marker = L.marker([option.latitude, option.longitude], {
+        icon: icon
+      });
+      //定义泡泡层
+      marker.on('mouseover', function () {
+        let html = "";
+        html += "<p class='v-p-color'>避难场所名称:" + option.name + "</p>";
+        html += "<p class='v-p-color'>类型:" + option.type + "</p>";
+        html += "<p class='v-p-color'>地址:" + option.address + "</p>";
+        html += "<p class='v-p-color'>避难场所范围:" + option.range + "</p>";
+        html += "<p class='v-p-color'>避难场所现状描述:" + option.state + "</p>";
+        html += "<p class='v-p-color'>占地面积(m²):" + option.area + "</p>";
+        html += "<p class='v-p-color'>可转移安置人数(万人):" + option.transferPerson + "</p>";
+        html += "<p class='v-p-color'>建设内容:" + option.constructionContent + "</p>";
+        this.bindPopup(html).openPopup(this.getLatLng());
+      });
+      // /**鼠标移开关闭popup**/
+      marker.on('mouseout', function () {
+        this.closePopup();
+      });
+      return marker;
     },
-    kuangXuan(arr) {
-      const polygon = window.L.polygon([arr]);
-      this.getBuildingList(polygon);
+
+    addTeamMarker(option, type) {
+      let that = this;
+      let markers = [];
+      //定义图标
+      let icon = new window.L.Icon({
+        iconUrl: yjIconList[type],
+        iconAnchor: [50, 50],
+        iconSize: [37, 64],
+        popupAnchor: [-33, -47],
+        shadowSize: [41, 41]
+      });
+      //定义落点
+      let marker = L.marker([option.latitude, option.longitude], {
+        icon: icon
+      });
+      //定义泡泡层
+      marker.on('click', function () {
+        that.selectQkEmergencyRescueTeamByDeptId(option.deptId)
+        that.suppliesOpen = false
+      });
+      return marker;
     },
-    getBuildingList(geometry) {
+    addSuppliesMark(option, type) {
       let that = this;
-      this.resultData = [];
-      if (this.datasource_datasetNames == null || this.datasource_datasetNames == "" || this.datasource_datasetNames == "undefined") {
-        this.$modal.alertWarning("未获取到建筑物,请重新选取!");
-        return;
-      }
-      const geometryParam = new SuperMap.GetFeaturesByGeometryParameters({
-        //如果涉及到需要加载多个数据源及数据集,格式为datasetNames: ["building:东风创业","building:东风创业","building:东风创业"],如区指挥中心或街道指挥中心登录,则需加载多个数据源和数据集
-        /*datasetNames: [datasourceName + ":" + datasetName],//["building:东风新立"]加载数据源和数据集*/
-        datasetNames: this.datasource_datasetNames,//["building:东风创业"],//
-        geometry: geometry,
-        toIndex: -1,
-        spatialQueryMode: "INTERSECT"
+      let markers = [];
+      //定义图标
+      let icon = new window.L.Icon({
+        iconUrl: yjIconList[type],
+        iconAnchor: [50, 50],
+        iconSize: [37, 64],
+        popupAnchor: [-33, -47],
+        shadowSize: [41, 41]
       });
-
-      window.L.supermap
-        .featureService(this.dataUrl)
-        .getFeaturesByGeometry(geometryParam, function (serviceResult) {
-          console.log(serviceResult);
-          if (!serviceResult.result) {
-            return;
-          }
-          if (serviceResult.result.features.features.length === 0) {
-            return;
-          }
-          let smids = '';
-          let names = '';
-          L.geoJSON(serviceResult.result.features.features, {
-            onEachFeature: function (feature, layer) {
-              smids += feature.properties.SMID + ",";
-              names += feature.properties.NAME + ",";
-            }
-          });
-          that.$emit('rfhMultiBefore', smids, names);
-        });
+      //定义落点
+      let marker = L.marker([option.latitude, option.longitude], {
+        icon: icon
+      });
+      //定义泡泡层
+      marker.on('click', function () {
+        that.selectQkRescueSuppliesByDeptId(option.deptId)
+        that.suppliesOpen = false
+      });
+      return marker;
     },
-    //事件落点相关方法
-    init: function (options) {
+    /**
+     * 清理地图标点
+     */
+    clearM: function () {
+      console.log("this.myLayerGroup",this.myLayerGroup)
+      console.log("this.resultLayer",this.resultLayer)
+      let that = this;
+      if (that.myLayerGroup != null && that.myLayerGroup.length > 0) {
+        for (var i = this.myLayerGroup.length - 1; i >= 0; i--) {
+          that.myLayerGroup[i].myGroup.clearLayers()
+          that.myLayerGroup.splice(i, 1)
+        }
+      }
+      // if (that.resultLayer != null) {
+      //   that.resultLayer.clearLayers()
+      // }
+    },
+    //查询摄像头落点列表
+    selectCameraList() {
+      let that = this;
       listForMark().then(response => {
-        // let res = response;
-        // for (let i = 0; i < res.data.length; i++) {
-        this.addMark(response);
-        // }
+        that.addMarkers(response.data, "sxt");
       });
     },
-    addMark: function (options) {
-      //创建聚散图层并添加layers
-      let marker = [];
-      let resultLayer = L.markerClusterGroup({
-        showCoverageOnHover: false,
-        zoomToBoundsOnClick: true,
-        animateAddingMarkers: true,
-        spiderfyOnMaxZoom: true
-      });
-      options.data.forEach(e => {
-        var lat = e.latitude;
-        var lon = e.longitude;
-        var buildType = e.buildType;
-        var markpoint = e.markpoint;
-        var myIcon = L.icon({
-          iconUrl: getIcon(buildType),
-          iconAnchor: [50, 50],
-          iconSize: [37, 64],
-          popupAnchor: [-33, -47],
-          shadowSize: [41, 41],
-        });
-        marker = L.marker([lat, lon], {
-          icon: myIcon
-        });
-        marker.bindPopup(markpoint);
-        resultLayer.addLayer(marker);
-        /**鼠标悬停打开popup**/
-        marker.on('mouseover', function () {
-          let html = "";
-          html += "<p class='v-p-color'>摄像头名称:" + e.cameraName + "</p>";
-          html += "<p class='v-p-color'>摄像头类型:" + e.buildTypeName + "</p>";
-          html += "<p class='v-p-color'>所属派出所:" + e.policeName + "</p>";
-          this.bindPopup(html).openPopup(this.getLatLng());
-        });
-        // /**鼠标移开关闭popup**/
-        marker.on('mouseout', function () {
-          this.closePopup();
-        });
+    //查询应急避难所落点列表
+    selectQkEmergencyShelterAllList() {
+      let that = this;
+      selectQkEmergencyShelterAllList().then(response => {
+        that.addMarkers(response.data, "yjcs");
       })
-
-      // marker = L.marker(
-      //   [options.latitude,options.longitude]
-      //   ,{
-      //     icon: L.icon({
-      //       iconUrl: getIcon(options.buildType),
-      //       iconAnchor: [50, 50],
-      //       iconSize: [37, 64],
-      //       popupAnchor: [-33, -47],
-      //       shadowSize: [41, 41],
-      //     })
-      //   }
-      //   );
-      // /**鼠标悬停打开popup**/
-      // marker.on('mouseover', function () {
-      //   let html = "";
-      //   html += "<p class='v-p-color'>摄像头名称:" + val.cameraName + "</p>";
-      //   html += "<p class='v-p-color'>摄像头类型:" + val.buildTypeName + "</p>";
-      //   html += "<p class='v-p-color'>所属派出所:" + val.policeName + "</p>";
-      //   this.bindPopup(html).openPopup(this.getLatLng());
-      // });
-      // // /**鼠标移开关闭popup**/
-      // marker.on('mouseout', function () {
-      //   this.closePopup();
-      // });
-      // marker.on('click', function () {
-      //   getEventDetail(options.eventId).then(response => {
-      //     that.$emit('child-event', response);
-      //   });
-      // });
-      // marker.addTo(this.map);
-
-      resultLayer.addTo(this.map)
     },
+    //查询抢险救援队落点列表
+    selectQkEmergencyRescueTeamAllList() {
+      let that = this;
+      selectQkEmergencyRescueTeamAllList().then(response => {
+        that.addMarkers(response.data, "jyd");
+      })
+    },
+    selectQkEmergencyRescueTeamByDeptId(deptId) {
+      selectQkEmergencyRescueTeamByDeptId(deptId).then(res => {
+        this.teamData = res.data;
+        this.teamOpen = true
+      })
+    },
+    //查询防汛抗旱物资储备落点列表
+    selectQkRescueSuppliesAllList() {
+      let that = this;
+      selectQkRescueSuppliesAllList().then(response => {
+        that.addMarkers(response.data, 'fxwz');
+      })
+    },
+    selectQkRescueSuppliesByDeptId(deptId) {
+      selectQkRescueSuppliesByDeptId(deptId).then(res => {
+        this.suppliesData = res.data;
+        this.suppliesOpen = true
+      })
+    },
+    // addCameraMark: function (options) {
+    //   //创建聚散图层并添加layers
+    //   let marker = [];
+    //   this.resultLayer = L.markerClusterGroup({
+    //     showCoverageOnHover: false,
+    //     zoomToBoundsOnClick: true,
+    //     animateAddingMarkers: true,
+    //     spiderfyOnMaxZoom: true
+    //   });
+    //   options.data.forEach(e => {
+    //     var lat = e.latitude;
+    //     var lon = e.longitude;
+    //     var buildType = e.buildType;
+    //     var markpoint = e.markpoint;
+    //     var myIcon = L.icon({
+    //       iconUrl: getIcon(buildType),
+    //       iconAnchor: [50, 50],
+    //       iconSize: [37, 64],
+    //       popupAnchor: [-33, -47],
+    //       shadowSize: [41, 41],
+    //     });
+    //     marker = L.marker([lat, lon], {
+    //       icon: myIcon
+    //     });
+    //     marker.bindPopup(markpoint);
+    //     this.resultLayer.addLayer(marker);
+    //     /**鼠标悬停打开popup**/
+    //     marker.on('mouseover', function () {
+    //       let html = "";
+    //       html += "<p class='v-p-color'>摄像头名称:" + e.cameraName + "</p>";
+    //       html += "<p class='v-p-color'>摄像头类型:" + e.buildTypeName + "</p>";
+    //       html += "<p class='v-p-color'>所属派出所:" + e.policeName + "</p>";
+    //       this.bindPopup(html).openPopup(this.getLatLng());
+    //     });
+    //     // /**鼠标移开关闭popup**/
+    //     marker.on('mouseout', function () {
+    //       this.closePopup();
+    //     });
+    //   })
+    //   this.resultLayer.addTo(this.map)
+    // },
+    //
+    // //查询抢险救援队落点列表
+    // selectQkEmergencyRescueTeamAllList() {
+    //   selectQkEmergencyRescueTeamAllList().then(response => {
+    //     this.addTeamMark(response);
+    //   })
+    // },
+    // addTeamMark: function (options) {
+    //   //创建聚散图层并添加layers
+    //   let that = this;
+    //   let marker = [];
+    //   that.resultLayer = L.markerClusterGroup({
+    //     showCoverageOnHover: false,
+    //     zoomToBoundsOnClick: true,
+    //     animateAddingMarkers: true,
+    //     spiderfyOnMaxZoom: true
+    //   });
+    //   options.data.forEach(e => {
+    //     var lat = e.latitude;
+    //     var lon = e.longitude;
+    //     var myIcon = L.icon({
+    //       iconUrl: require('@/assets/images/cameraType/yjdw.png'),
+    //       iconAnchor: [50, 50],
+    //       iconSize: [37, 64],
+    //       popupAnchor: [-33, -47],
+    //       shadowSize: [41, 41],
+    //     });
+    //     marker = L.marker([lat, lon], {
+    //       icon: myIcon
+    //     });
+    //     that.resultLayer.addLayer(marker);
+    //     /**鼠标悬停打开popup**/
+    //     marker.on('click', function () {
+    //       that.suppliesOpen = false
+    //       that.selectQkEmergencyRescueTeamByDeptId(e.deptId)
+    //     });
+    //
+    //   })
+    //   that.resultLayer.addTo(that.map)
+    // },
+    // selectQkEmergencyRescueTeamByDeptId(deptId) {
+    //   selectQkEmergencyRescueTeamByDeptId(deptId).then(res => {
+    //     this.teamData = res.data;
+    //     this.teamOpen = true
+    //
+    //   })
+    // },
+    // // //查询应急避难所落点列表
+    // // selectQkEmergencyShelterAllList() {
+    // //   selectQkEmergencyShelterAllList().then(response => {
+    // //     this.addShelterMark(response)
+    // //   })
+    // // },
+    // addShelterMark: function (options) {
+    //   //创建聚散图层并添加layers
+    //   let marker = [];
+    //   this.resultLayer = L.markerClusterGroup({
+    //     showCoverageOnHover: false,
+    //     zoomToBoundsOnClick: true,
+    //     animateAddingMarkers: true,
+    //     spiderfyOnMaxZoom: true
+    //   });
+    //   options.data.forEach(e => {
+    //     var lat = e.latitude;
+    //     var lon = e.longitude;
+    //     var markpoint = e.markpoint;
+    //     var myIcon = L.icon({
+    //       iconUrl: require('@/assets/images/cameraType/yjcs.png'),
+    //       iconAnchor: [50, 50],
+    //       iconSize: [37, 64],
+    //       popupAnchor: [-33, -47],
+    //       shadowSize: [41, 41],
+    //     });
+    //     marker = L.marker([lat, lon], {
+    //       icon: myIcon
+    //     });
+    //     marker.bindPopup(markpoint);
+    //     this.resultLayer.addLayer(marker);
+    //     /**鼠标悬停打开popup**/
+    //     marker.on('click', function () {
+    //       let html = "";
+    //       html += "<p class='v-p-color'>避难场所名称:" + e.name + "</p>";
+    //       html += "<p class='v-p-color'>类型:" + e.type + "</p>";
+    //       html += "<p class='v-p-color'>地址:" + e.address + "</p>";
+    //       html += "<p class='v-p-color'>避难场所范围:" + e.range + "</p>";
+    //       html += "<p class='v-p-color'>避难场所现状描述:" + e.state + "</p>";
+    //       html += "<p class='v-p-color'>占地面积(m²):" + e.area + "</p>";
+    //       html += "<p class='v-p-color'>可转移安置人数(万人):" + e.transferPerson + "</p>";
+    //       html += "<p class='v-p-color'>建设内容:" + e.constructionContent + "</p>";
+    //       this.bindPopup(html).openPopup(this.getLatLng());
+    //     });
+    //     // /**鼠标移开关闭popup**/
+    //     marker.on('dblclick', function () {
+    //       this.closePopup();
+    //     });
+    //   })
+    //   this.resultLayer.addTo(this.map)
+    // },
+    //
+    // //查询防汛抗旱物资储备落点列表
+    // selectQkRescueSuppliesAllList() {
+    //   selectQkRescueSuppliesAllList().then(response => {
+    //     this.addSuppliesMark(response);
+    //   })
+    // },
+    // addSuppliesMark: function (options) {
+    //   //创建聚散图层并添加layers
+    //   let that = this;
+    //   let marker = [];
+    //   that.resultLayer = L.markerClusterGroup({
+    //     showCoverageOnHover: false,
+    //     zoomToBoundsOnClick: true,
+    //     animateAddingMarkers: true,
+    //     spiderfyOnMaxZoom: true
+    //   });
+    //   options.data.forEach(e => {
+    //     var lat = e.latitude;
+    //     var lon = e.longitude;
+    //     var myIcon = L.icon({
+    //       iconUrl: require('@/assets/images/cameraType/khwz.png'),
+    //       iconAnchor: [50, 50],
+    //       iconSize: [37, 64],
+    //       popupAnchor: [-33, -47],
+    //       shadowSize: [41, 41],
+    //     });
+    //     marker = L.marker([lat, lon], {
+    //       icon: myIcon
+    //     });
+    //     that.resultLayer.addLayer(marker);
+    //     /**鼠标悬停打开popup**/
+    //     marker.on('click', function () {
+    //       that.teamOpen = false
+    //       that.selectQkRescueSuppliesByDeptId(e.deptId)
+    //     });
+    //   })
+    //   that.resultLayer.addTo(that.map)
+    // },
+    // selectQkRescueSuppliesByDeptId(deptId) {
+    //   selectQkRescueSuppliesByDeptId(deptId).then(res => {
+    //     this.suppliesData = res.data;
+    //     this.suppliesOpen = true
+    //   })
+    // },
   }
 }
 
@@ -386,6 +613,15 @@ export default {
   z-index: 0;
 }
 
+th {
+  width: 100px; /* 设置宽度 */
+  color: white; /* 设置字体颜色为白色 */
+}
+
+td {
+  color: white; /* 设置字体颜色为白色 */
+}
+
 /*地图DOM*/
 #qksupermap {
   width: 100%;

+ 17 - 4
zhsq_qk-ui/src/views/system/camera/index.vue

@@ -129,10 +129,10 @@
     />
 
     <!-- 添加或修改摄像头对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-form-item label="摄像头名称" prop="cameraName">
-          <el-input v-model="form.cameraName" placeholder="请输入摄像头名称"/>
+          <el-input v-model="form.cameraName" placeholder="请输入摄像头名称" maxlength="20"/>
         </el-form-item>
         <el-form-item label="归属派出所" prop="policeName">
           <el-select v-model="form.policeName" filterable placeholder="请选择项目名称" @change="onChange">
@@ -145,7 +145,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label="点位具体位置" prop="address">
-          <el-input v-model="form.address" placeholder="请输入点位具体位置"/>
+          <el-input v-model="form.address" placeholder="请输入点位具体位置" maxlength="20"/>
         </el-form-item>
         <el-form-item label="经度" prop="longitude">
           <el-input v-model="form.longitude" placeholder="请输入经度"/>
@@ -185,6 +185,7 @@
 <script>
 import {getCamera, listCamera,addCamera, delCamera, updateCamera} from "@/api/system/camera";
 import {listAllPolice} from "@/api/system/station";
+import {checkLat, checkLon} from "@/api/system/rules";
 
 export default {
   name: "Camera",
@@ -223,7 +224,19 @@ export default {
       // 表单参数
       form: {},
       // 表单校验
-      rules: {}
+      rules: {
+        longitude: [
+          { required: true, message: "经度不能为空", trigger: "change" },
+          {validator: checkLon, trigger: 'blur'}
+        ],
+        cameraName: [
+          { required: true, message: "摄像头名称不能为空", trigger: "change" },
+        ],
+        latitude: [
+          { required: true, message: "纬度不能为空", trigger: "change" },
+          {validator: checkLat, trigger: 'blur'}
+        ],
+      }
     };
   },
   created() {

+ 324 - 0
zhsq_qk-ui/src/views/system/shelter/index.vue

@@ -0,0 +1,324 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="避难场所名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入避难场所名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="地址" prop="address">
+        <el-input
+          v-model="queryParams.address"
+          placeholder="请输入地址"
+          clearable
+          @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"
+          v-hasPermi="['system:shelter:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:shelter:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:shelter:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:shelter:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="shelterList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="避难场所名称" align="center" prop="name"/>
+      <el-table-column label="类型" align="center" prop="type"/>
+      <el-table-column label="地址" align="center" prop="address"/>
+      <el-table-column label="避难场所范围" align="center" prop="range"/>
+      <el-table-column label="避难场所现状描述" align="center" prop="state"/>
+      <el-table-column label="占地面积(m²)" align="center" prop="area"/>
+      <el-table-column label="可转移安置人数(万人)" align="center" prop="transferPerson"/>
+      <el-table-column label="经度" align="center" prop="longitude"/>
+      <el-table-column label="纬度" align="center" prop="latitude"/>
+      <el-table-column label="建设内容" align="center" prop="constructionContent"/>
+      <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)"
+            v-hasPermi="['system:shelter:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:shelter:remove']"
+          >删除
+          </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"
+    />
+
+    <!-- 添加或修改应急避难所对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="650px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="150px">
+        <el-form-item label="避难场所名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入避难场所名称" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="地址" prop="address">
+          <el-input v-model="form.address" placeholder="请输入地址" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="避难场所范围" prop="range">
+          <el-input v-model="form.range" placeholder="请输入避难场所范围" maxlength="100"/>
+        </el-form-item>
+        <el-form-item label="避难场所现状描述" prop="state">
+          <el-input v-model="form.state" placeholder="请输入避难场所现状描述" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="占地面积(m²)" prop="area">
+          <el-input v-model="form.area" placeholder="请输入占地面积" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="可转移安置人数(万人)" prop="transferPerson">
+          <el-input v-model="form.transferPerson" placeholder="请输入可转移安置人数" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="经度" prop="longitude">
+          <el-input v-model="form.longitude" placeholder="请输入经度"/>
+        </el-form-item>
+        <el-form-item label="纬度" prop="latitude">
+          <el-input v-model="form.latitude" placeholder="请输入纬度"/>
+        </el-form-item>
+        <el-form-item label="建设内容" prop="constructionContent">
+          <el-input v-model="form.constructionContent" type="textarea"  :rows="4" placeholder="请输入内容" maxlength="500"/>
+        </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 {addShelter, delShelter, updateShelter,getShelter, listShelter} from "@/api/system/shelter";
+import {checkLon, checkLat,} from "@/api/system/rules";
+
+export default {
+  name: "Shelter",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 应急避难所表格数据
+      shelterList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        type: null,
+        address: null,
+        range: null,
+        state: null,
+        area: null,
+        transferPerson: null,
+        constructionContent: null,
+        longitude: null,
+        latitude: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "名称不能为空", trigger: "change" },
+        ],
+        longitude: [
+          { required: true, message: "经度不能为空", trigger: "change" },
+          {validator: checkLon, trigger: 'blur'}
+        ],
+        latitude: [
+          { required: true, message: "纬度不能为空", trigger: "change" },
+          {validator: checkLat, trigger: 'blur'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询应急避难所列表 */
+    getList() {
+      this.loading = true;
+      listShelter(this.queryParams).then(response => {
+        this.shelterList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        name: null,
+        type: null,
+        address: null,
+        range: null,
+        state: null,
+        area: null,
+        transferPerson: null,
+        constructionContent: null,
+        longitude: null,
+        latitude: 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.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加应急避难所";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getShelter(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改应急避难所";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateShelter(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addShelter(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除好差评编号为"' + ids + '"的数据项?').then(function () {
+        return delShelter(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/shelter/export', {
+        ...this.queryParams
+      }, `shelter_${new Date().getTime()}.xlsx`)
+    }
+  }
+}
+;
+</script>

+ 8 - 3
zhsq_qk-ui/src/views/system/station/index.vue

@@ -111,10 +111,10 @@
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-form-item label="派出所名称" prop="policeName">
-          <el-input v-model="form.policeName" placeholder="请输入派出所名称"/>
+          <el-input v-model="form.policeName" placeholder="请输入派出所名称" maxlength="20"/>
         </el-form-item>
         <el-form-item label="地址" prop="position">
-          <el-input v-model="form.position" placeholder="请输入地址"/>
+          <el-input v-model="form.position" placeholder="请输入地址" maxlength="20"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -128,6 +128,7 @@
 <script>
 import {getStation, listStation,addStation,updateStation,delStation} from "@/api/system/station";
 import {addCamera, delCamera, updateCamera} from "@/api/system/camera";
+import {checkLon} from "@/api/system/rules";
 
 export default {
   name: "Station",
@@ -162,7 +163,11 @@ export default {
       // 表单参数
       form: {},
       // 表单校验
-      rules: {}
+      rules: {
+        policeName: [
+          { required: true, message: "派出所名称不能为空", trigger: "change" },
+        ],
+      }
     };
   },
   created() {

+ 334 - 0
zhsq_qk-ui/src/views/system/supplies/index.vue

@@ -0,0 +1,334 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="品种" prop="varieties">
+        <el-input
+          v-model="queryParams.varieties"
+          placeholder="请输入品种"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="价值" prop="cost">
+        <el-input
+          v-model="queryParams.cost"
+          placeholder="请输入价值"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="经度" prop="longitude">
+        <el-input
+          v-model="queryParams.longitude"
+          placeholder="请输入经度"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="纬度" prop="latitude">
+        <el-input
+          v-model="queryParams.latitude"
+          placeholder="请输入纬度"
+          clearable
+          @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"
+          v-hasPermi="['system:supplies:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:supplies:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:supplies:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:supplies:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="suppliesList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="品种" align="center" prop="varieties"/>
+      <el-table-column label="价值(万元)" align="center" prop="cost"/>
+      <el-table-column label="经度" align="center" prop="longitude"/>
+      <el-table-column label="纬度" align="center" prop="latitude"/>
+      <el-table-column  key="deptName" :show-overflow-tooltip="true" align="center" label="归属部门"
+                        prop="deptOne.deptName"/>
+      <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)"
+            v-hasPermi="['system:supplies:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:supplies:remove']"
+          >删除
+          </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"
+    />
+
+    <!-- 添加或修改防汛抗旱物资储备对话框 -->
+    <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="varieties">
+          <el-input v-model="form.varieties" placeholder="请输入品种" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="价值(万元)" prop="cost">
+          <el-input v-model="form.cost" placeholder="请输入价值" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="经度" prop="longitude">
+          <el-input v-model="form.longitude" placeholder="请输入经度" />
+        </el-form-item>
+        <el-form-item label="纬度" prop="latitude">
+          <el-input v-model="form.latitude" 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-item label="备注" prop="remarks">
+          <el-input v-model="form.remarks" type="textarea" :rows="4" placeholder="请输入内容" maxlength="500"/>
+        </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 {addSupplies, delSupplies, updateSupplies,getSupplies, listSupplies} from "@/api/system/supplies";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {deptTreeSelect} from "@/api/system/user";
+import Treeselect from "@riophae/vue-treeselect";
+import {checkLon, checkLat} from "@/api/system/rules";
+
+export default {
+  name: "Supplies",
+  components: {Treeselect},
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 部门树选项
+      deptOptions: undefined,
+      // 部门名称
+      deptName: undefined,
+      // 总条数
+      total: 0,
+      // 防汛抗旱物资储备表格数据
+      suppliesList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        varieties: null,
+        cost: null,
+        remarks: null,
+        longitude: null,
+        latitude: null,
+        dept: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        varieties: [
+          { required: true, message: "品种不能为空", trigger: "change" },
+        ],
+        longitude: [
+          { required: true, message: "经度不能为空", trigger: "change" },
+          {validator: checkLon, trigger: 'blur'}
+        ],
+        latitude: [
+          { required: true, message: "纬度不能为空", trigger: "change" },
+          {validator: checkLat, trigger: 'blur'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getDeptTree();
+  },
+  methods: {
+    /** 查询防汛抗旱物资储备列表 */
+    getList() {
+      this.loading = true;
+      listSupplies(this.queryParams).then(response => {
+        this.suppliesList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /** 查询部门下拉树结构 */
+    getDeptTree() {
+      deptTreeSelect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        varieties: null,
+        cost: null,
+        remarks: null,
+        longitude: null,
+        latitude: null,
+        dept: 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.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加防汛抗旱物资储备";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSupplies(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改防汛抗旱物资储备";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateSupplies(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSupplies(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除好差评编号为"' + ids + '"的数据项?').then(function () {
+        return delSupplies(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/supplies/export', {
+        ...this.queryParams
+      }, `supplies_${new Date().getTime()}.xlsx`)
+    }
+  }
+}
+;
+</script>

+ 356 - 0
zhsq_qk-ui/src/views/system/team/index.vue

@@ -0,0 +1,356 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="姓名" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入姓名"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="账号" prop="userName">
+        <el-input
+          v-model="queryParams.userName"
+          placeholder="请输入账号"
+          clearable
+          @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"
+          v-hasPermi="['system:team:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:team:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:team:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:team:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="teamList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="主键id" align="center" prop="id"/>
+      <el-table-column label="姓名" align="center" prop="name"/>
+      <el-table-column label="账号" align="center" prop="userName"/>
+      <el-table-column  key="deptName" :show-overflow-tooltip="true" align="center" label="归属部门"
+                       prop="deptOne.deptName"/>
+      <el-table-column label="职务" align="center" prop="post"/>
+      <el-table-column label="手机号" align="center" prop="phone"/>
+      <el-table-column label="经度" align="center" prop="longitude"/>
+      <el-table-column label="纬度" align="center" prop="latitude"/>
+      <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)"
+            v-hasPermi="['system:team:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:team:remove']"
+          >删除
+          </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"
+    />
+
+    <!-- 添加或修改抢险救援队对话框 -->
+    <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="name">
+          <el-input v-model="form.name" placeholder="请输入姓名" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="账号" prop="userName">
+          <el-input v-model="form.userName" placeholder="请输入账号" maxlength="20"/>
+        </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-item label="职务" prop="post">
+          <el-input v-model="form.post" placeholder="请输入职务" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="单位" prop="company">
+          <el-input v-model="form.company" placeholder="请输入单位" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="救援队" prop="emergencyRescue">
+          <el-input v-model="form.emergencyRescue" placeholder="请输入救援队" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="手机号" prop="phone">
+          <el-input v-model="form.phone" placeholder="请输入手机号"/>
+        </el-form-item>
+        <el-form-item label="防汛抗旱" prop="effect">
+          <el-input v-model="form.effect" placeholder="请输入防汛抗旱" maxlength="20"/>
+        </el-form-item>
+        <el-form-item label="经度" prop="longitude">
+          <el-input v-model="form.longitude" placeholder="请输入经度"/>
+        </el-form-item>
+        <el-form-item label="纬度" prop="latitude">
+          <el-input v-model="form.latitude" 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 {addTeam, delTeam, updateTeam,getTeam, listTeam} from "@/api/system/team";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import {deptTreeSelect} from "@/api/system/user";
+import Treeselect from "@riophae/vue-treeselect";
+import {checkLat, checkLon,validPhoneMobile} from "@/api/system/rules";
+
+export default {
+  name: "Team",
+  components: {Treeselect},
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 部门树选项
+      deptOptions: undefined,
+      // 部门名称
+      deptName: undefined,
+      // 总条数
+      total: 0,
+      // 抢险救援队表格数据
+      teamList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        userName: null,
+        dept: null,
+        deptId: undefined,
+        post: null,
+        company: null,
+        emergencyRescue: null,
+        city: null,
+        area: null,
+        township: null,
+        village: null,
+        phone: null,
+        effect: null,
+        longitude: null,
+        latitude: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "姓名不能为空", trigger: "change" },
+        ],
+        longitude: [
+          { required: true, message: "经度不能为空", trigger: "change" },
+          {validator: checkLon, trigger: 'blur'}
+        ],
+        latitude: [
+          { required: true, message: "纬度不能为空", trigger: "change" },
+          {validator: checkLat, trigger: 'blur'}
+        ],
+        phone: [
+          { required: true, message: "手机号不能为空", trigger: "change" },
+          {validator: validPhoneMobile, trigger: 'blur'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getDeptTree();
+  },
+  methods: {
+    /** 查询抢险救援队列表 */
+    getList() {
+      this.loading = true;
+      listTeam(this.queryParams).then(response => {
+        this.teamList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+
+    /** 查询部门下拉树结构 */
+    getDeptTree() {
+      deptTreeSelect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        name: null,
+        userName: null,
+        dept: null,
+        deptId: null,
+        post: null,
+        company: null,
+        emergencyRescue: null,
+        city: null,
+        area: null,
+        township: null,
+        village: null,
+        phone: null,
+        effect: null,
+        longitude: null,
+        latitude: 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.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加抢险救援队";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getTeam(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改抢险救援队";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id !=null){
+            updateTeam(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          }else{
+            addTeam(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除好差评编号为"' + ids + '"的数据项?').then(function () {
+        return delTeam(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/team/export', {
+        ...this.queryParams
+      }, `team_${new Date().getTime()}.xlsx`)
+    }
+  }
+}
+;
+</script>