Browse Source

民生诉求

bihuisong 9 months ago
parent
commit
d41ecbf5b7

+ 85 - 0
zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkPeopleAppealController.java

@@ -0,0 +1,85 @@
+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.QkPeopleAppeal;
+import zhsq_qk.system.service.IQkPeopleAppealService;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 民生诉求Controller
+ *
+ * @author ruoyi
+ * @date 2024-08-13
+ */
+@RestController
+@RequestMapping("/system/appeal")
+public class QkPeopleAppealController extends BaseController {
+    @Autowired
+    private IQkPeopleAppealService qkPeopleAppealService;
+
+    /**
+     * 查询民生诉求列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(QkPeopleAppeal qkPeopleAppeal) {
+        startPage();
+        List<QkPeopleAppeal> list = qkPeopleAppealService.selectQkPeopleAppealList(qkPeopleAppeal);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出民生诉求列表
+     */
+    @Log(title = "民生诉求", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, QkPeopleAppeal qkPeopleAppeal) {
+        List<QkPeopleAppeal> list = qkPeopleAppealService.selectQkPeopleAppealList(qkPeopleAppeal);
+        ExcelUtil<QkPeopleAppeal> util = new ExcelUtil<QkPeopleAppeal>(QkPeopleAppeal.class);
+        util.exportExcel(response, list, "民生诉求数据");
+    }
+
+    /**
+     * 获取民生诉求详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(qkPeopleAppealService.selectQkPeopleAppealById(id));
+    }
+
+    /**
+     * 新增民生诉求
+     */
+    @Log(title = "民生诉求", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody QkPeopleAppeal qkPeopleAppeal) {
+        return toAjax(qkPeopleAppealService.insertQkPeopleAppeal(qkPeopleAppeal));
+    }
+
+    /**
+     * 修改民生诉求
+     */
+    @Log(title = "民生诉求", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody QkPeopleAppeal qkPeopleAppeal) {
+        return toAjax(qkPeopleAppealService.updateQkPeopleAppeal(qkPeopleAppeal));
+    }
+
+    /**
+     * 删除民生诉求
+     */
+    @Log(title = "民生诉求", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(qkPeopleAppealService.deleteQkPeopleAppealByIds(ids));
+    }
+}

+ 85 - 0
zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkPeopleAppealImgController.java

@@ -0,0 +1,85 @@
+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.QkPeopleAppealImg;
+import zhsq_qk.system.service.IQkPeopleAppealImgService;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 民生诉求图片Controller
+ *
+ * @author ruoyi
+ * @date 2024-08-13
+ */
+@RestController
+@RequestMapping("/system/img")
+public class QkPeopleAppealImgController extends BaseController {
+    @Autowired
+    private IQkPeopleAppealImgService qkPeopleAppealImgService;
+
+    /**
+     * 查询民生诉求图片列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(QkPeopleAppealImg qkPeopleAppealImg) {
+        startPage();
+        List<QkPeopleAppealImg> list = qkPeopleAppealImgService.selectQkPeopleAppealImgList(qkPeopleAppealImg);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出民生诉求图片列表
+     */
+    @Log(title = "民生诉求图片", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, QkPeopleAppealImg qkPeopleAppealImg) {
+        List<QkPeopleAppealImg> list = qkPeopleAppealImgService.selectQkPeopleAppealImgList(qkPeopleAppealImg);
+        ExcelUtil<QkPeopleAppealImg> util = new ExcelUtil<QkPeopleAppealImg>(QkPeopleAppealImg.class);
+        util.exportExcel(response, list, "民生诉求图片数据");
+    }
+
+    /**
+     * 获取民生诉求图片详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(qkPeopleAppealImgService.selectQkPeopleAppealImgById(id));
+    }
+
+    /**
+     * 新增民生诉求图片
+     */
+    @Log(title = "民生诉求图片", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody QkPeopleAppealImg qkPeopleAppealImg) {
+        return toAjax(qkPeopleAppealImgService.insertQkPeopleAppealImg(qkPeopleAppealImg));
+    }
+
+    /**
+     * 修改民生诉求图片
+     */
+    @Log(title = "民生诉求图片", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody QkPeopleAppealImg qkPeopleAppealImg) {
+        return toAjax(qkPeopleAppealImgService.updateQkPeopleAppealImg(qkPeopleAppealImg));
+    }
+
+    /**
+     * 删除民生诉求图片
+     */
+    @Log(title = "民生诉求图片", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(qkPeopleAppealImgService.deleteQkPeopleAppealImgByIds(ids));
+    }
+}

+ 82 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkPeopleAppeal.java

@@ -0,0 +1,82 @@
+package zhsq_qk.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+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 java.util.Date;
+
+/**
+ * 民生诉求对象 qk_people_appeal
+ *
+ * @author ruoyi
+ * @date 2024-08-13
+ */
+@Data
+public class QkPeopleAppeal extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 诉求标题
+     */
+    @Excel(name = "诉求标题")
+    private String appealName;
+
+    /**
+     * 诉求描述
+     */
+    @Excel(name = "诉求描述")
+    private String appealDescribe;
+
+    /**
+     * 上报时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "上报时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date appearTime;
+
+    /**
+     * 上报人id
+     */
+    @Excel(name = "上报人id")
+    private String appearUserId;
+
+    /**
+     * 上报人姓名
+     */
+    @Excel(name = "上报人姓名")
+    private String appearUserName;
+
+    /**
+     * 上报联系方式
+     */
+    @Excel(name = "上报联系方式")
+    private String appearPhone;
+
+    /**
+     * 上报位置
+     */
+    @Excel(name = "上报位置")
+    private String appearAddress;
+
+    /**
+     * 事件分类
+     */
+    @Excel(name = "事件分类")
+    private String evenType;
+
+    /**
+     * 诉求是否处理(0:已上报;1:已处理)
+     */
+    @Excel(name = "诉求是否处理", readConverterExp = "0=:已上报;1:已处理")
+    private String status;
+
+}

+ 36 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/domain/QkPeopleAppealImg.java

@@ -0,0 +1,36 @@
+package zhsq_qk.system.domain;
+
+import lombok.Data;
+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_people_appeal_img
+ *
+ * @author ruoyi
+ * @date 2024-08-13
+ */
+@Data
+public class QkPeopleAppealImg extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 民生诉求id
+     */
+    @Excel(name = "民生诉求id")
+    private Long appealId;
+
+    /**
+     * 图片
+     */
+    @Excel(name = "图片")
+    private String imgUrl;
+
+}

+ 61 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkPeopleAppealImgMapper.java

@@ -0,0 +1,61 @@
+package zhsq_qk.system.mapper;
+
+import zhsq_qk.system.domain.QkPeopleAppealImg;
+
+import java.util.List;
+
+/**
+ * 民生诉求图片Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-08-13
+ */
+public interface QkPeopleAppealImgMapper {
+    /**
+     * 查询民生诉求图片
+     *
+     * @param id 民生诉求图片主键
+     * @return 民生诉求图片
+     */
+    public QkPeopleAppealImg selectQkPeopleAppealImgById(Long id);
+
+    /**
+     * 查询民生诉求图片列表
+     *
+     * @param qkPeopleAppealImg 民生诉求图片
+     * @return 民生诉求图片集合
+     */
+    public List<QkPeopleAppealImg> selectQkPeopleAppealImgList(QkPeopleAppealImg qkPeopleAppealImg);
+
+    /**
+     * 新增民生诉求图片
+     *
+     * @param qkPeopleAppealImg 民生诉求图片
+     * @return 结果
+     */
+    public int insertQkPeopleAppealImg(QkPeopleAppealImg qkPeopleAppealImg);
+
+    /**
+     * 修改民生诉求图片
+     *
+     * @param qkPeopleAppealImg 民生诉求图片
+     * @return 结果
+     */
+    public int updateQkPeopleAppealImg(QkPeopleAppealImg qkPeopleAppealImg);
+
+    /**
+     * 删除民生诉求图片
+     *
+     * @param id 民生诉求图片主键
+     * @return 结果
+     */
+    public int deleteQkPeopleAppealImgById(Long id);
+
+    /**
+     * 批量删除民生诉求图片
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteQkPeopleAppealImgByIds(Long[] ids);
+}

+ 61 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkPeopleAppealMapper.java

@@ -0,0 +1,61 @@
+package zhsq_qk.system.mapper;
+
+import zhsq_qk.system.domain.QkPeopleAppeal;
+
+import java.util.List;
+
+/**
+ * 民生诉求Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-08-13
+ */
+public interface QkPeopleAppealMapper {
+    /**
+     * 查询民生诉求
+     *
+     * @param id 民生诉求主键
+     * @return 民生诉求
+     */
+    public QkPeopleAppeal selectQkPeopleAppealById(Long id);
+
+    /**
+     * 查询民生诉求列表
+     *
+     * @param qkPeopleAppeal 民生诉求
+     * @return 民生诉求集合
+     */
+    public List<QkPeopleAppeal> selectQkPeopleAppealList(QkPeopleAppeal qkPeopleAppeal);
+
+    /**
+     * 新增民生诉求
+     *
+     * @param qkPeopleAppeal 民生诉求
+     * @return 结果
+     */
+    public int insertQkPeopleAppeal(QkPeopleAppeal qkPeopleAppeal);
+
+    /**
+     * 修改民生诉求
+     *
+     * @param qkPeopleAppeal 民生诉求
+     * @return 结果
+     */
+    public int updateQkPeopleAppeal(QkPeopleAppeal qkPeopleAppeal);
+
+    /**
+     * 删除民生诉求
+     *
+     * @param id 民生诉求主键
+     * @return 结果
+     */
+    public int deleteQkPeopleAppealById(Long id);
+
+    /**
+     * 批量删除民生诉求
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteQkPeopleAppealByIds(Long[] ids);
+}

+ 61 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkPeopleAppealImgService.java

@@ -0,0 +1,61 @@
+package zhsq_qk.system.service;
+
+import zhsq_qk.system.domain.QkPeopleAppealImg;
+
+import java.util.List;
+
+/**
+ * 民生诉求图片Service接口
+ *
+ * @author ruoyi
+ * @date 2024-08-13
+ */
+public interface IQkPeopleAppealImgService {
+    /**
+     * 查询民生诉求图片
+     *
+     * @param id 民生诉求图片主键
+     * @return 民生诉求图片
+     */
+    public QkPeopleAppealImg selectQkPeopleAppealImgById(Long id);
+
+    /**
+     * 查询民生诉求图片列表
+     *
+     * @param qkPeopleAppealImg 民生诉求图片
+     * @return 民生诉求图片集合
+     */
+    public List<QkPeopleAppealImg> selectQkPeopleAppealImgList(QkPeopleAppealImg qkPeopleAppealImg);
+
+    /**
+     * 新增民生诉求图片
+     *
+     * @param qkPeopleAppealImg 民生诉求图片
+     * @return 结果
+     */
+    public int insertQkPeopleAppealImg(QkPeopleAppealImg qkPeopleAppealImg);
+
+    /**
+     * 修改民生诉求图片
+     *
+     * @param qkPeopleAppealImg 民生诉求图片
+     * @return 结果
+     */
+    public int updateQkPeopleAppealImg(QkPeopleAppealImg qkPeopleAppealImg);
+
+    /**
+     * 批量删除民生诉求图片
+     *
+     * @param ids 需要删除的民生诉求图片主键集合
+     * @return 结果
+     */
+    public int deleteQkPeopleAppealImgByIds(Long[] ids);
+
+    /**
+     * 删除民生诉求图片信息
+     *
+     * @param id 民生诉求图片主键
+     * @return 结果
+     */
+    public int deleteQkPeopleAppealImgById(Long id);
+}

+ 61 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkPeopleAppealService.java

@@ -0,0 +1,61 @@
+package zhsq_qk.system.service;
+
+import zhsq_qk.system.domain.QkPeopleAppeal;
+
+import java.util.List;
+
+/**
+ * 民生诉求Service接口
+ *
+ * @author ruoyi
+ * @date 2024-08-13
+ */
+public interface IQkPeopleAppealService {
+    /**
+     * 查询民生诉求
+     *
+     * @param id 民生诉求主键
+     * @return 民生诉求
+     */
+    public QkPeopleAppeal selectQkPeopleAppealById(Long id);
+
+    /**
+     * 查询民生诉求列表
+     *
+     * @param qkPeopleAppeal 民生诉求
+     * @return 民生诉求集合
+     */
+    public List<QkPeopleAppeal> selectQkPeopleAppealList(QkPeopleAppeal qkPeopleAppeal);
+
+    /**
+     * 新增民生诉求
+     *
+     * @param qkPeopleAppeal 民生诉求
+     * @return 结果
+     */
+    public int insertQkPeopleAppeal(QkPeopleAppeal qkPeopleAppeal);
+
+    /**
+     * 修改民生诉求
+     *
+     * @param qkPeopleAppeal 民生诉求
+     * @return 结果
+     */
+    public int updateQkPeopleAppeal(QkPeopleAppeal qkPeopleAppeal);
+
+    /**
+     * 批量删除民生诉求
+     *
+     * @param ids 需要删除的民生诉求主键集合
+     * @return 结果
+     */
+    public int deleteQkPeopleAppealByIds(Long[] ids);
+
+    /**
+     * 删除民生诉求信息
+     *
+     * @param id 民生诉求主键
+     * @return 结果
+     */
+    public int deleteQkPeopleAppealById(Long id);
+}

+ 87 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkPeopleAppealImgServiceImpl.java

@@ -0,0 +1,87 @@
+package zhsq_qk.system.service.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import zhsq_qk.system.domain.QkPeopleAppealImg;
+import zhsq_qk.system.mapper.QkPeopleAppealImgMapper;
+import zhsq_qk.system.service.IQkPeopleAppealImgService;
+
+import java.util.List;
+
+/**
+ * 民生诉求图片Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-08-13
+ */
+@Service
+public class QkPeopleAppealImgServiceImpl implements IQkPeopleAppealImgService {
+    @Autowired
+    private QkPeopleAppealImgMapper qkPeopleAppealImgMapper;
+
+    /**
+     * 查询民生诉求图片
+     *
+     * @param id 民生诉求图片主键
+     * @return 民生诉求图片
+     */
+    @Override
+    public QkPeopleAppealImg selectQkPeopleAppealImgById(Long id) {
+        return qkPeopleAppealImgMapper.selectQkPeopleAppealImgById(id);
+    }
+
+    /**
+     * 查询民生诉求图片列表
+     *
+     * @param qkPeopleAppealImg 民生诉求图片
+     * @return 民生诉求图片
+     */
+    @Override
+    public List<QkPeopleAppealImg> selectQkPeopleAppealImgList(QkPeopleAppealImg qkPeopleAppealImg) {
+        return qkPeopleAppealImgMapper.selectQkPeopleAppealImgList(qkPeopleAppealImg);
+    }
+
+    /**
+     * 新增民生诉求图片
+     *
+     * @param qkPeopleAppealImg 民生诉求图片
+     * @return 结果
+     */
+    @Override
+    public int insertQkPeopleAppealImg(QkPeopleAppealImg qkPeopleAppealImg) {
+        return qkPeopleAppealImgMapper.insertQkPeopleAppealImg(qkPeopleAppealImg);
+    }
+
+    /**
+     * 修改民生诉求图片
+     *
+     * @param qkPeopleAppealImg 民生诉求图片
+     * @return 结果
+     */
+    @Override
+    public int updateQkPeopleAppealImg(QkPeopleAppealImg qkPeopleAppealImg) {
+        return qkPeopleAppealImgMapper.updateQkPeopleAppealImg(qkPeopleAppealImg);
+    }
+
+    /**
+     * 批量删除民生诉求图片
+     *
+     * @param ids 需要删除的民生诉求图片主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkPeopleAppealImgByIds(Long[] ids) {
+        return qkPeopleAppealImgMapper.deleteQkPeopleAppealImgByIds(ids);
+    }
+
+    /**
+     * 删除民生诉求图片信息
+     *
+     * @param id 民生诉求图片主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkPeopleAppealImgById(Long id) {
+        return qkPeopleAppealImgMapper.deleteQkPeopleAppealImgById(id);
+    }
+}

+ 93 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkPeopleAppealServiceImpl.java

@@ -0,0 +1,93 @@
+package zhsq_qk.system.service.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import zhsq_qk.common.utils.DateUtils;
+import zhsq_qk.system.domain.QkPeopleAppeal;
+import zhsq_qk.system.mapper.QkPeopleAppealImgMapper;
+import zhsq_qk.system.mapper.QkPeopleAppealMapper;
+import zhsq_qk.system.service.IQkPeopleAppealService;
+
+import java.util.List;
+
+/**
+ * 民生诉求Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-08-13
+ */
+@Service
+public class QkPeopleAppealServiceImpl implements IQkPeopleAppealService {
+    @Autowired
+    private QkPeopleAppealMapper qkPeopleAppealMapper;
+    @Autowired
+    private QkPeopleAppealImgMapper qkPeopleAppealImgMapper;
+
+    /**
+     * 查询民生诉求
+     *
+     * @param id 民生诉求主键
+     * @return 民生诉求
+     */
+    @Override
+    public QkPeopleAppeal selectQkPeopleAppealById(Long id) {
+        return qkPeopleAppealMapper.selectQkPeopleAppealById(id);
+    }
+
+    /**
+     * 查询民生诉求列表
+     *
+     * @param qkPeopleAppeal 民生诉求
+     * @return 民生诉求
+     */
+    @Override
+    public List<QkPeopleAppeal> selectQkPeopleAppealList(QkPeopleAppeal qkPeopleAppeal) {
+        return qkPeopleAppealMapper.selectQkPeopleAppealList(qkPeopleAppeal);
+    }
+
+    /**
+     * 新增民生诉求
+     *
+     * @param qkPeopleAppeal 民生诉求
+     * @return 结果
+     */
+    @Override
+    public int insertQkPeopleAppeal(QkPeopleAppeal qkPeopleAppeal) {
+        qkPeopleAppeal.setCreateTime(DateUtils.getNowDate());
+        return qkPeopleAppealMapper.insertQkPeopleAppeal(qkPeopleAppeal);
+    }
+
+    /**
+     * 修改民生诉求
+     *
+     * @param qkPeopleAppeal 民生诉求
+     * @return 结果
+     */
+    @Override
+    public int updateQkPeopleAppeal(QkPeopleAppeal qkPeopleAppeal) {
+        qkPeopleAppeal.setUpdateTime(DateUtils.getNowDate());
+        return qkPeopleAppealMapper.updateQkPeopleAppeal(qkPeopleAppeal);
+    }
+
+    /**
+     * 批量删除民生诉求
+     *
+     * @param ids 需要删除的民生诉求主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkPeopleAppealByIds(Long[] ids) {
+        return qkPeopleAppealMapper.deleteQkPeopleAppealByIds(ids);
+    }
+
+    /**
+     * 删除民生诉求信息
+     *
+     * @param id 民生诉求主键
+     * @return 结果
+     */
+    @Override
+    public int deleteQkPeopleAppealById(Long id) {
+        return qkPeopleAppealMapper.deleteQkPeopleAppealById(id);
+    }
+}

+ 77 - 0
zhsq_qk-system/src/main/resources/mapper/system/QkPeopleAppealImgMapper.xml

@@ -0,0 +1,77 @@
+<?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.QkPeopleAppealImgMapper">
+
+    <resultMap type="QkPeopleAppealImg" id="QkPeopleAppealImgResult">
+            <result property="id" column="id"/>
+            <result property="appealId" column="appeal_id"/>
+            <result property="imgUrl" column="img_url"/>
+    </resultMap>
+
+    <sql id="selectQkPeopleAppealImgVo">
+        select id, appeal_id, img_url
+        from qk_people_appeal_img
+    </sql>
+
+    <select id="selectQkPeopleAppealImgList" parameterType="QkPeopleAppealImg" resultMap="QkPeopleAppealImgResult">
+        <include refid="selectQkPeopleAppealImgVo"/>
+        <where>
+            <if test="appealId != null ">
+                and appeal_id = #{appealId}
+            </if>
+            <if test="imgUrl != null  and imgUrl != ''">
+                and img_url = #{imgUrl}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectQkPeopleAppealImgById" parameterType="Long"
+            resultMap="QkPeopleAppealImgResult">
+            <include refid="selectQkPeopleAppealImgVo"/>
+            where id = #{id}
+    </select>
+
+    <insert id="insertQkPeopleAppealImg" parameterType="QkPeopleAppealImg" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into qk_people_appeal_img
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                    <if test="appealId != null">appeal_id,
+                    </if>
+                    <if test="imgUrl != null">img_url,
+                    </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                    <if test="appealId != null">#{appealId},
+                    </if>
+                    <if test="imgUrl != null">#{imgUrl},
+                    </if>
+        </trim>
+    </insert>
+
+    <update id="updateQkPeopleAppealImg" parameterType="QkPeopleAppealImg">
+        update qk_people_appeal_img
+        <trim prefix="SET" suffixOverrides=",">
+                    <if test="appealId != null">appeal_id =
+                        #{appealId},
+                    </if>
+                    <if test="imgUrl != null">img_url =
+                        #{imgUrl},
+                    </if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteQkPeopleAppealImgById" parameterType="Long">
+        delete
+        from qk_people_appeal_img where id = #{id}
+    </delete>
+
+    <delete id="deleteQkPeopleAppealImgByIds" parameterType="String">
+        delete from qk_people_appeal_img where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 209 - 0
zhsq_qk-system/src/main/resources/mapper/system/QkPeopleAppealMapper.xml

@@ -0,0 +1,209 @@
+<?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.QkPeopleAppealMapper">
+
+    <resultMap type="QkPeopleAppeal" id="QkPeopleAppealResult">
+        <result property="id" column="id"/>
+        <result property="appealName" column="appeal_name"/>
+        <result property="appealDescribe" column="appeal_describe"/>
+        <result property="appearTime" column="appear_time"/>
+        <result property="appearUserId" column="appear_user_id"/>
+        <result property="appearUserName" column="appear_user_name"/>
+        <result property="appearPhone" column="appear_phone"/>
+        <result property="appearAddress" column="appear_address"/>
+        <result property="evenType" column="even_type"/>
+        <result property="status" column="status"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectQkPeopleAppealVo">
+        select id,
+               appeal_name,
+               appeal_describe,
+               appear_time,
+               appear_user_id,
+               appear_user_name,
+               appear_phone,
+               appear_address,
+               even_type,
+               status,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from qk_people_appeal
+    </sql>
+
+    <select id="selectQkPeopleAppealList" parameterType="QkPeopleAppeal" resultMap="QkPeopleAppealResult">
+        <include refid="selectQkPeopleAppealVo"/>
+        <where>
+            <if test="appealName != null  and appealName != ''">
+                and appeal_name like concat('%', #{appealName}, '%')
+            </if>
+            <if test="appealDescribe != null  and appealDescribe != ''">
+                and appeal_describe = #{appealDescribe}
+            </if>
+            <if test="appearTime != null ">
+                and appear_time = #{appearTime}
+            </if>
+            <if test="appearUserId != null  and appearUserId != ''">
+                and appear_user_id = #{appearUserId}
+            </if>
+            <if test="appearUserName != null  and appearUserName != ''">
+                and appear_user_name like concat('%', #{appearUserName}, '%')
+            </if>
+            <if test="appearPhone != null  and appearPhone != ''">
+                and appear_phone = #{appearPhone}
+            </if>
+            <if test="appearAddress != null  and appearAddress != ''">
+                and appear_address = #{appearAddress}
+            </if>
+            <if test="evenType != null  and evenType != ''">
+                and even_type = #{evenType}
+            </if>
+            <if test="status != null  and status != ''">
+                and status = #{status}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectQkPeopleAppealById" parameterType="Long"
+            resultMap="QkPeopleAppealResult">
+        <include refid="selectQkPeopleAppealVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertQkPeopleAppeal" parameterType="QkPeopleAppeal" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into qk_people_appeal
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="appealName != null">appeal_name,
+            </if>
+            <if test="appealDescribe != null">appeal_describe,
+            </if>
+            <if test="appearTime != null">appear_time,
+            </if>
+            <if test="appearUserId != null">appear_user_id,
+            </if>
+            <if test="appearUserName != null">appear_user_name,
+            </if>
+            <if test="appearPhone != null">appear_phone,
+            </if>
+            <if test="appearAddress != null">appear_address,
+            </if>
+            <if test="evenType != null">even_type,
+            </if>
+            <if test="status != null">status,
+            </if>
+            <if test="createBy != null">create_by,
+            </if>
+            <if test="createTime != null">create_time,
+            </if>
+            <if test="updateBy != null">update_by,
+            </if>
+            <if test="updateTime != null">update_time,
+            </if>
+            <if test="remark != null">remark,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="appealName != null">#{appealName},
+            </if>
+            <if test="appealDescribe != null">#{appealDescribe},
+            </if>
+            <if test="appearTime != null">#{appearTime},
+            </if>
+            <if test="appearUserId != null">#{appearUserId},
+            </if>
+            <if test="appearUserName != null">#{appearUserName},
+            </if>
+            <if test="appearPhone != null">#{appearPhone},
+            </if>
+            <if test="appearAddress != null">#{appearAddress},
+            </if>
+            <if test="evenType != null">#{evenType},
+            </if>
+            <if test="status != null">#{status},
+            </if>
+            <if test="createBy != null">#{createBy},
+            </if>
+            <if test="createTime != null">#{createTime},
+            </if>
+            <if test="updateBy != null">#{updateBy},
+            </if>
+            <if test="updateTime != null">#{updateTime},
+            </if>
+            <if test="remark != null">#{remark},
+            </if>
+        </trim>
+    </insert>
+
+    <update id="updateQkPeopleAppeal" parameterType="QkPeopleAppeal">
+        update qk_people_appeal
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="appealName != null">appeal_name =
+                #{appealName},
+            </if>
+            <if test="appealDescribe != null">appeal_describe =
+                #{appealDescribe},
+            </if>
+            <if test="appearTime != null">appear_time =
+                #{appearTime},
+            </if>
+            <if test="appearUserId != null">appear_user_id =
+                #{appearUserId},
+            </if>
+            <if test="appearUserName != null">appear_user_name =
+                #{appearUserName},
+            </if>
+            <if test="appearPhone != null">appear_phone =
+                #{appearPhone},
+            </if>
+            <if test="appearAddress != null">appear_address =
+                #{appearAddress},
+            </if>
+            <if test="evenType != null">even_type =
+                #{evenType},
+            </if>
+            <if test="status != null">status =
+                #{status},
+            </if>
+            <if test="createBy != null">create_by =
+                #{createBy},
+            </if>
+            <if test="createTime != null">create_time =
+                #{createTime},
+            </if>
+            <if test="updateBy != null">update_by =
+                #{updateBy},
+            </if>
+            <if test="updateTime != null">update_time =
+                #{updateTime},
+            </if>
+            <if test="remark != null">remark =
+                #{remark},
+            </if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteQkPeopleAppealById" parameterType="Long">
+        delete
+        from qk_people_appeal
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteQkPeopleAppealByIds" parameterType="String">
+        delete from qk_people_appeal where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

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

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询民生诉求列表
+export function listAppeal(query) {
+    return request({
+        url: '/system/appeal/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询民生诉求详细
+export function getAppeal(id) {
+    return request({
+        url: '/system/appeal/' + id,
+        method: 'get'
+    })
+}
+
+// 新增民生诉求
+export function addAppeal(data) {
+    return request({
+        url: '/system/appeal',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改民生诉求
+export function updateAppeal(data) {
+    return request({
+        url: '/system/appeal',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除民生诉求
+export function delAppeal(id) {
+    return request({
+        url: '/system/appeal/' + id,
+        method: 'delete'
+    })
+}

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


+ 3 - 3
zhsq_qk-ui/src/views/fusion/index.vue

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

File diff suppressed because it is too large
+ 0 - 1547
zhsq_qk-ui/src/views/fusion/jczl - 备份.vue


File diff suppressed because it is too large
+ 1556 - 262
zhsq_qk-ui/src/views/fusion/jczl.vue


+ 238 - 0
zhsq_qk-ui/src/views/fusion/jczlDetails.vue

@@ -0,0 +1,238 @@
+<template>
+  <div style="background-color: #32435A">
+    <!-- 阴影背景 -->
+
+    <div class="bj_left"><img src="@/assets/images/sprhbj-left.png"/></div>
+    <div class="bj_right"><img src="@/assets/images/sprhbj-right.png"/></div>
+    <div class="bj_bottom"><img src="@/assets/images/sprhbj-bottom.png"/></div>
+    <!--头部开始-->
+    <div class="header">
+      <h1>城市运行一网统管指挥中心</h1>
+    </div>
+    <!--头部结束-->
+    <!-- 中间开始 -->
+    <!-- 中间结束 -->
+    <!--左侧开始-->
+    <el-dialog title="详情" :visible.sync="detailsOpen" append-to-body>
+      <div class="left_con left_con2">
+        <div class="top_txt">
+          <b>汽开区</b>
+          <!--        <span>小雨</span>-->
+          <!--        <span>9~16℃</span>-->
+        </div>
+        <ul class="ms_list scrollbar">
+          <li>
+            <div class="ms_tit">
+              <img src="../../assets/images/qikai.png"/>
+              <div class="ms_txt">
+                <h4>这是民生诉求的标题展示位置这是民生诉求的标题展示位置</h4>
+                <p>
+                  这是民生诉求的详细描述说明,这是说明2024年8月6日09:29:51,当前位置也是这样不用理会,这是民生诉求的详细描述说明,这是说明2024年8月6日09:29:51,当前位置也是这样不用理会,当前位置也是这样不用理会,看看就好...
+                </p>
+              </div>
+            </div>
+          </li>
+          <li>
+            <div class="ms_tit">
+              <img src="../../assets/images/qikai.png"/>
+              <div class="ms_txt">
+                <h4>这是民生诉求的标题展示位置这是民生诉求的标题展示位置</h4>
+                <p>
+                  这是民生诉求的详细描述说明,这是说明2024年8月6日09:29:51,当前位置也是这样不用理会,这是民生诉求的详细描述说明,这是说明2024年8月6日09:29:51,当前位置也是这样不用理会,当前位置也是这样不用理会,看看就好...
+                </p>
+              </div>
+            </div>
+          </li>
+          <li>
+            <div class="ms_tit">
+              <img src="../../assets/images/qikai.png"/>
+              <div class="ms_txt">
+                <h4>这是民生诉求的标题展示位置这是民生诉求的标题展示位置</h4>
+                <p>
+                  这是民生诉求的详细描述说明,这是说明2024年8月6日09:29:51,当前位置也是这样不用理会,这是民生诉求的详细描述说明,这是说明2024年8月6日09:29:51,当前位置也是这样不用理会,当前位置也是这样不用理会,看看就好...
+                </p>
+              </div>
+            </div>
+          </li>
+          <li>
+            <div class="ms_tit">
+              <img src="../../assets/images/qikai.png"/>
+              <div class="ms_txt">
+                <h4>这是民生诉求的标题展示位置这是民生诉求的标题展示位置</h4>
+                <p>
+                  这是民生诉求的详细描述说明,这是说明2024年8月6日09:29:51,当前位置也是这样不用理会,这是民生诉求的详细描述说明,这是说明2024年8月6日09:29:51,当前位置也是这样不用理会,当前位置也是这样不用理会,看看就好...
+                </p>
+              </div>
+            </div>
+          </li>
+          <li>
+            <div class="ms_tit">
+              <img src="../../assets/images/qikai.png"/>
+              <div class="ms_txt">
+                <h4>这是民生诉求的标题展示位置这是民生诉求的标题展示位置</h4>
+                <p>
+                  这是民生诉求的详细描述说明,这是说明2024年8月6日09:29:51,当前位置也是这样不用理会,这是民生诉求的详细描述说明,这是说明2024年8月6日09:29:51,当前位置也是这样不用理会,当前位置也是这样不用理会,看看就好...
+                </p>
+              </div>
+            </div>
+          </li>
+        </ul>
+      </div>
+      <!--左侧结束-->
+      <!--右侧开始-->
+      <div class="right_con right_con2">
+        <div class="top_txt">
+          <span>{{ currentTime }}</span>
+        </div>
+        <div class="ms_right">
+          <div class="ms_right_top">
+            <div class="ms_img">
+              <el-carousel :interval="5000" arrow="always">
+                <el-carousel-item v-for="(image, index) in images" :key="index">
+                  <img
+                    :src="image.src"
+                  />
+                </el-carousel-item>
+              </el-carousel>
+            </div>
+            <div class="mssq_txt">
+              <h4>这是民生诉求的标题展示位置这是民生诉求的标题展示位置</h4>
+              <div class="mssq_txt_p">
+                <p>
+                  <span>事件时间:8月6日13:07:35</span>
+                  <span>事件分类:电梯安全</span>
+                </p>
+                <p>
+                  <span>上报人:刘美红</span>
+                  <span>联系方式:18652636965</span>
+                </p>
+                <p>事件位置:长春市汽开区万达广场B座</p>
+              </div>
+            </div>
+
+          </div>
+          <div class="mssq_btm_txt">
+            <h4>具体诉求:</h4>
+            <p class="scrollbar">民办培训学校办学层次、专业(工种)变更的,应通过审批机关审核批准。申请时需提交以下材料:
+              <br>(一)变更办学层次、专业(工种)的报告及决策机构同意的书面材料;
+              <br>(二)《吉林省民办职业培训学校变更审批表》;
+              <br>(三)《办学许可证》(正、副本)。
+              <br>(四)本办法第十二条第(六)、(九)、(十)款要求材料。
+              <br> 第十二条 申请正式设立民办学校应提交以下材料:
+              <br>(六)拟聘理论教师、实习指导教师的身份、学历、资格证明材料的复印件;
+              <br>(九)满足教学和实训需要的主要设施、设备的清单;<br> (十)开展相应职业(工种)培训的教学计划、教学大纲和相应的教材目录;
+            </p>
+          </div>
+        </div>
+      </div>
+    </el-dialog>
+    <!--右侧结束-->
+    <!--底部开始-->
+    <div class="footer">
+      <div class="nav-bottom">
+        <div class="nav-bottom-left">
+          <div class="nav-li-left" @click="serviceFAW('jjyx')">
+            <span>经济运行</span>
+          </div>
+          <div class="nav-li-left" @click="serviceFAW('csgl')">
+            <span>城市管理</span>
+          </div>
+          <div class="nav-li-left" @click="serviceFAW('jtzl')">
+            <span>交通治理</span>
+          </div>
+          <div class="nav-li-left on">
+            <span>基层治理</span>
+          </div>
+        </div>
+        <div class="nav-home-middle" @click="homePage('weather')">
+          <img src="@/assets/images/home-btn.png"/>
+          <a>返回首页</a>
+        </div>
+        <div class="nav-bottom-right">
+          <div class="nav-li-right" @click="serviceFAW('yshj_new')">
+            <span>营商环境</span>
+          </div>
+          <div class="nav-li-right" @click="serviceFAW('bjzshz')">
+            <span>政务运行</span>
+          </div>
+          <div class="nav-li-right" @click="serviceFAW('aqyj')">
+            <span>安全应急</span>
+          </div>
+          <div class="nav-li-right" @click="serviceFAW('fwyq')">
+            <span>服务一汽</span>
+          </div>
+        </div>
+      </div>
+    </div>
+    <!--底部开始-->
+  </div>
+</template>
+
+<script>
+import "@/assets/images/qkq_body.css";
+import "@/assets/images/qkq_index.css";
+import "@/assets/images/qkq_sprh.css";
+
+export default {
+  name: "jczlDetails",
+  components: {},
+  data() {
+    return {
+      currentTime: '',
+      sltProps: null,
+      btnOne: true,
+      btnTwo: false,
+      detailsOpen: false,
+      images: [
+        {
+          src: require('@/assets/images/qikai.png')
+        },
+        {
+          src: '@/assets/images/login-back2.png'
+        },
+        {
+          src: '@/assets/images/login-background.png'
+        },
+        {
+          src: '@/assets/images/qikai.png'
+        },
+      ]
+    }
+  },
+  created() {
+  },
+  mounted() {
+    // 每秒刷新时间
+    setInterval(() => {
+      this.getCurrentTime();
+    }, 1000);
+  },
+  methods: {
+    getCurrentTime() {
+      const now = new Date();
+      const year = now.getFullYear();
+      const month = now.getMonth() + 1;
+      const date = now.getDate();
+      const day = now.getDay();
+      const weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
+      const hour = now.getHours();
+      const minute = now.getMinutes();
+      const second = now.getSeconds();
+
+      const formattedMonth = month < 10 ? `0${month}` : month;
+      const formattedDate = date < 10 ? `0${date}` : date;
+      const formattedHour = hour < 10 ? `0${hour}` : hour;
+      const formattedMinute = minute < 10 ? `0${minute}` : minute;
+      const formattedSecond = second < 10 ? `0${second}` : second;
+
+      this.currentTime =
+        `${year}年${formattedMonth}月${formattedDate}日 ${weekDays[day]} ${formattedHour}:${formattedMinute}:${formattedSecond}`;
+    },
+
+  },
+};
+</script>
+
+<style scoped>
+/* Your CSS styles here */
+</style>

+ 333 - 0
zhsq_qk-ui/src/views/system/appeal/index.vue

@@ -0,0 +1,333 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="88px">
+      <el-form-item label="诉求标题" prop="appealName">
+        <el-input
+          v-model="queryParams.appealName"
+          placeholder="请输入诉求标题"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="上报人姓名" prop="appearUserName">
+        <el-input
+          v-model="queryParams.appearUserName"
+          placeholder="请输入上报人姓名"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="上报位置" prop="appearAddress">
+        <el-input
+          v-model="queryParams.appearAddress"
+          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"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >删除
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+    <el-table v-loading="loading" :data="appealList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="序号" align="center" type="index"/>
+      <el-table-column label="诉求标题" align="center" prop="appealName"/>
+      <el-table-column label="诉求描述" align="center" prop="appealDescribe"/>
+      <el-table-column label="上报时间" align="center" prop="appearTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.appearTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="上报人姓名" align="center" prop="appearUserName"/>
+      <el-table-column label="上报联系方式" align="center" prop="appearPhone"/>
+      <el-table-column label="上报位置" align="center" prop="appearAddress"/>
+      <el-table-column label="事件分类" align="center" prop="evenType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.even_type" :value="scope.row.evenType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="诉求是否处理" align="center" prop="status"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改民生诉求对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="98px">
+        <el-form-item label="诉求标题" prop="appealName">
+          <el-input v-model="form.appealName" placeholder="请输入诉求标题"/>
+        </el-form-item>
+        <el-form-item label="诉求描述" prop="appealDescribe">
+          <el-input v-model="form.appealDescribe" type="textarea" placeholder="请输入诉求描述"/>
+        </el-form-item>
+        <el-form-item label="上报时间" prop="appearTime">
+          <el-date-picker clearable
+                          v-model="form.appearTime"
+                          type="datetime"
+                          value-format="yyyy-MM-dd hh:mm:ss"
+                          placeholder="请选择上报时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="上报人姓名" prop="appearUserName">
+          <el-input v-model="form.appearUserName" placeholder="请输入上报人姓名"/>
+        </el-form-item>
+        <el-form-item label="上报联系方式" prop="appearPhone">
+          <el-input v-model="form.appearPhone" placeholder="请输入上报联系方式"/>
+        </el-form-item>
+        <el-form-item label="上报位置" prop="appearAddress">
+          <el-input v-model="form.appearAddress" placeholder="请输入上报位置"/>
+        </el-form-item>
+        <el-form-item label="事件分类" prop="evenType">
+          <el-select v-model="form.evenType" placeholder="请选择事件分类">
+            <el-option
+              v-for="dict in dict.type.even_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </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 {addAppeal, delAppeal, getAppeal, listAppeal, updateAppeal} from "@/api/system/appeal";
+
+export default {
+  name: "Appeal",
+  dicts: ["even_type"],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 民生诉求表格数据
+      appealList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        appealName: null,
+        appealDescribe: null,
+        appearTime: null,
+        appearUserId: null,
+        appearUserName: null,
+        appearPhone: null,
+        appearAddress: null,
+        evenType: null,
+        status: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        appealName: [
+          {required: true, message: "诉求标题不能为空", trigger: "blur"},
+        ],
+        appealDescribe: [
+          {required: true, message: "诉求描述不能为空", trigger: "blur"},
+          { max: 250, message: '诉求描述最多可以输入250个字符', trigger: 'blur' }
+        ],
+        appearTime: [
+          {required: true, message: "上报时间不能为空", trigger: "change"},
+        ],
+        appearUserName: [
+          {required: true, message: "上报人姓名不能为空", trigger: "blur"},
+        ],
+        appearPhone: [
+          {required: true, message: "上报联系方式不能为空", trigger: "blur"},
+        ],
+        appearAddress: [
+          {required: true, message: "上报位置不能为空", trigger: "blur"},
+        ],
+        evenType: [
+          {required: true, message: "事件分类不能为空", trigger: "blur"},
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询民生诉求列表 */
+    getList() {
+      this.loading = true;
+      listAppeal(this.queryParams).then(response => {
+        this.appealList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        appealName: null,
+        appealDescribe: null,
+        appearTime: null,
+        appearUserId: null,
+        appearUserName: null,
+        appearPhone: null,
+        appearAddress: null,
+        evenType: null,
+        status: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        remark: 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
+      getAppeal(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) {
+            updateAppeal(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addAppeal(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 delAppeal(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+  }
+};
+</script>