Commit 39fbb01a authored by wuqinghua's avatar wuqinghua

Merge remote-tracking branch 'origin/master'

parents 9b70cb49 0f2b1cdb
package com.zehong.web.controller.complainDeal; package com.zehong.web.controller.complainDeal;
import java.util.Date;
import java.util.List; import java.util.List;
import com.zehong.common.core.domain.model.LoginUser; import com.zehong.common.core.domain.model.LoginUser;
...@@ -51,7 +52,6 @@ public class TComplainDealController extends BaseController ...@@ -51,7 +52,6 @@ public class TComplainDealController extends BaseController
if(loginUser.getUser().getDeptId()!=-2){ if(loginUser.getUser().getDeptId()!=-2){
tComplainDeal.setComplainAssignEnterproseId(loginUser.getUser().getDeptId()); tComplainDeal.setComplainAssignEnterproseId(loginUser.getUser().getDeptId());
} }
System.out.println("=========="+loginUser.getUser().getDeptId());
startPage(); startPage();
List<TComplainDeal> list = tComplainDealService.selectTComplainDealList(tComplainDeal); List<TComplainDeal> list = tComplainDealService.selectTComplainDealList(tComplainDeal);
return getDataTable(list); return getDataTable(list);
...@@ -99,6 +99,9 @@ public class TComplainDealController extends BaseController ...@@ -99,6 +99,9 @@ public class TComplainDealController extends BaseController
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody TComplainDeal tComplainDeal) public AjaxResult edit(@RequestBody TComplainDeal tComplainDeal)
{ {
if(tComplainDeal.getComplainStatus().equals("2")){
tComplainDeal.setDealTime(new Date());
}
return toAjax(tComplainDealService.updateTComplainDeal(tComplainDeal)); return toAjax(tComplainDealService.updateTComplainDeal(tComplainDeal));
} }
......
...@@ -8,13 +8,15 @@ import com.zehong.common.utils.file.FileUploadUtils; ...@@ -8,13 +8,15 @@ import com.zehong.common.utils.file.FileUploadUtils;
import com.zehong.common.utils.file.FileUtils; import com.zehong.common.utils.file.FileUtils;
import com.zehong.framework.config.ServerConfig; import com.zehong.framework.config.ServerConfig;
import com.zehong.system.domain.THiddenDangerStandingBook; import com.zehong.system.domain.THiddenDangerStandingBook;
import com.zehong.system.domain.TSafeEquipmentStandingBook;
import com.zehong.system.domain.TTroubleStandingBook; import com.zehong.system.domain.TTroubleStandingBook;
import com.zehong.system.domain.TVideoManager;
import com.zehong.system.domain.form.THiddenDangerStandingBookForm; import com.zehong.system.domain.form.THiddenDangerStandingBookForm;
import com.zehong.system.domain.form.TTroubleStandingBookForm; import com.zehong.system.domain.form.TTroubleStandingBookForm;
import com.zehong.system.domain.vo.HomepageVo;
import com.zehong.system.domain.vo.THiddenDangerStandingBookVo; import com.zehong.system.domain.vo.THiddenDangerStandingBookVo;
import com.zehong.system.domain.vo.TTroubleStandingBookVo; import com.zehong.system.domain.vo.TTroubleStandingBookVo;
import com.zehong.system.service.ITHiddenDangerStandingBookService; import com.zehong.system.service.*;
import com.zehong.system.service.ITTroubleStandingBookService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -41,10 +43,18 @@ public class StatisticController ...@@ -41,10 +43,18 @@ public class StatisticController
{ {
private static final Logger log = LoggerFactory.getLogger(StatisticController.class); private static final Logger log = LoggerFactory.getLogger(StatisticController.class);
@Autowired
private ITVideoManagerService tVideoManagerService;
@Autowired
private ITSafeEquipmentStandingBookService tSafeEquipmentStandingBookService;
@Autowired @Autowired
private ITTroubleStandingBookService tTroubleStandingBookService; private ITTroubleStandingBookService tTroubleStandingBookService;
@Autowired @Autowired
private ITHiddenDangerStandingBookService tHiddenDangerStandingBookService; private ITHiddenDangerStandingBookService tHiddenDangerStandingBookService;
@Autowired
private ITComplainDealService tComplainDealService;
@Autowired
private ITWorkOrderService tWorkOrderService;
/** /**
* 燃气事故台账统计 * 燃气事故台账统计
...@@ -64,4 +74,29 @@ public class StatisticController ...@@ -64,4 +74,29 @@ public class StatisticController
return AjaxResult.success(tHiddenDangerStandingBookService.selectTHiddenDangerStandingBookStatistic()); return AjaxResult.success(tHiddenDangerStandingBookService.selectTHiddenDangerStandingBookStatistic());
} }
/**
* 首页统计
*/
@GetMapping("/homepageStatistic")
public AjaxResult homepageStatistic()
{
HomepageVo homepageVo = new HomepageVo();
homepageVo = tComplainDealService.countTComplainDeal();
homepageVo.setTaskTotal(tWorkOrderService.countTWorkOrder().getTaskTotal());
homepageVo.setTaskFeedbackTotal(tWorkOrderService.countTWorkOrder().getTaskFeedbackTotal());
List<TVideoManager> tVideoManagerList = tVideoManagerService.selectTVideoManagerList(null);
List<TSafeEquipmentStandingBook> tSafeEquipmentStandingBookList = tSafeEquipmentStandingBookService.selectTSafeEquipmentStandingBookList(null);
List<TTroubleStandingBook> tTroubleStandingBookList = tTroubleStandingBookService.selectTTroubleStandingBookList(null);
List<THiddenDangerStandingBook> tHiddenDangerStandingBookList = tHiddenDangerStandingBookService.selectTHiddenDangerStandingBookList(null);
homepageVo.setVideoTotal(tVideoManagerList.size());
homepageVo.setEquipmentTotal(tSafeEquipmentStandingBookList.size());
homepageVo.setTroubleTotal(tTroubleStandingBookList.size());
homepageVo.setHiddenTotal(tHiddenDangerStandingBookList.size());
return AjaxResult.success(homepageVo);
}
} }
package com.zehong.system.domain; package com.zehong.system.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import com.zehong.common.annotation.Excel; import com.zehong.common.annotation.Excel;
import com.zehong.common.core.domain.BaseEntity; import com.zehong.common.core.domain.BaseEntity;
import java.util.Date;
/** /**
* 投诉处置对象 t_complain_deal * 投诉处置对象 t_complain_deal
* *
...@@ -34,8 +37,11 @@ public class TComplainDeal extends BaseEntity ...@@ -34,8 +37,11 @@ public class TComplainDeal extends BaseEntity
@Excel(name = "转办记录") @Excel(name = "转办记录")
private String transferRecord; private String transferRecord;
@Excel(name = "反馈事件")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date dealTime;
/** 办理情况 */ /** 办理情况 */
@Excel(name = "办理情况") @Excel(name = "办理反馈情况")
private String dealCondition; private String dealCondition;
/** 指派单位名称 */ /** 指派单位名称 */
...@@ -184,6 +190,14 @@ public class TComplainDeal extends BaseEntity ...@@ -184,6 +190,14 @@ public class TComplainDeal extends BaseEntity
return remarks; return remarks;
} }
public Date getDealTime() {
return dealTime;
}
public void setDealTime(Date dealTime) {
this.dealTime = dealTime;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
......
package com.zehong.system.domain.vo;
import lombok.Data;
@Data
public class HomepageVo
{
// 任务总数
private int taskTotal;
// 任务反馈总数
private int taskFeedbackTotal;
// 投诉总数
private int complaintTotal;
// 投诉反馈总数
private int complaintFeedbackTotal;
// 视频监控总数
private int videoTotal;
// 安全装置总数
private int equipmentTotal;
// 事故总数
private int troubleTotal;
// 隐患总数
private int hiddenTotal;
}
...@@ -5,6 +5,7 @@ import java.util.Map; ...@@ -5,6 +5,7 @@ import java.util.Map;
import java.util.Objects; import java.util.Objects;
import com.zehong.system.domain.TComplainDeal; import com.zehong.system.domain.TComplainDeal;
import com.zehong.system.domain.vo.HomepageVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
/** /**
...@@ -31,6 +32,13 @@ public interface TComplainDealMapper ...@@ -31,6 +32,13 @@ public interface TComplainDealMapper
*/ */
public List<TComplainDeal> selectTComplainDealList(TComplainDeal tComplainDeal); public List<TComplainDeal> selectTComplainDealList(TComplainDeal tComplainDeal);
/**
* 投诉处置统计
*
* @return 投诉处置统计
*/
public HomepageVo countTComplainDeal();
/** /**
* 新增投诉处置 * 新增投诉处置
* *
......
...@@ -2,6 +2,7 @@ package com.zehong.system.mapper; ...@@ -2,6 +2,7 @@ package com.zehong.system.mapper;
import java.util.List; import java.util.List;
import com.zehong.system.domain.TWorkOrder; import com.zehong.system.domain.TWorkOrder;
import com.zehong.system.domain.vo.HomepageVo;
/** /**
* 燃气任务Mapper接口 * 燃气任务Mapper接口
...@@ -27,6 +28,13 @@ public interface TWorkOrderMapper ...@@ -27,6 +28,13 @@ public interface TWorkOrderMapper
*/ */
public List<TWorkOrder> selectTWorkOrderList(TWorkOrder tWorkOrder); public List<TWorkOrder> selectTWorkOrderList(TWorkOrder tWorkOrder);
/**
* 燃气任务统计
*
* @return 燃气任务统计
*/
public HomepageVo countTWorkOrder();
/** /**
* 新增燃气任务 * 新增燃气任务
* *
......
...@@ -4,6 +4,7 @@ import java.util.List; ...@@ -4,6 +4,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import com.zehong.system.domain.TComplainDeal; import com.zehong.system.domain.TComplainDeal;
import com.zehong.system.domain.vo.HomepageVo;
/** /**
* 投诉处置Service接口 * 投诉处置Service接口
...@@ -29,6 +30,13 @@ public interface ITComplainDealService ...@@ -29,6 +30,13 @@ public interface ITComplainDealService
*/ */
public List<TComplainDeal> selectTComplainDealList(TComplainDeal tComplainDeal); public List<TComplainDeal> selectTComplainDealList(TComplainDeal tComplainDeal);
/**
* 投诉处置统计
*
* @return 投诉处置统计
*/
public HomepageVo countTComplainDeal();
/** /**
* 新增投诉处置 * 新增投诉处置
* *
......
...@@ -2,6 +2,7 @@ package com.zehong.system.service; ...@@ -2,6 +2,7 @@ package com.zehong.system.service;
import java.util.List; import java.util.List;
import com.zehong.system.domain.TWorkOrder; import com.zehong.system.domain.TWorkOrder;
import com.zehong.system.domain.vo.HomepageVo;
/** /**
* 燃气任务Service接口 * 燃气任务Service接口
...@@ -27,6 +28,13 @@ public interface ITWorkOrderService ...@@ -27,6 +28,13 @@ public interface ITWorkOrderService
*/ */
public List<TWorkOrder> selectTWorkOrderList(TWorkOrder tWorkOrder); public List<TWorkOrder> selectTWorkOrderList(TWorkOrder tWorkOrder);
/**
* 燃气任务统计
*
* @return 燃气任务统计
*/
public HomepageVo countTWorkOrder();
/** /**
* 新增燃气任务 * 新增燃气任务
* *
......
...@@ -4,6 +4,7 @@ import java.util.List; ...@@ -4,6 +4,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import com.zehong.common.utils.DateUtils; import com.zehong.common.utils.DateUtils;
import com.zehong.system.domain.vo.HomepageVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.zehong.system.mapper.TComplainDealMapper; import com.zehong.system.mapper.TComplainDealMapper;
...@@ -46,6 +47,16 @@ public class TComplainDealServiceImpl implements ITComplainDealService ...@@ -46,6 +47,16 @@ public class TComplainDealServiceImpl implements ITComplainDealService
return tComplainDealMapper.selectTComplainDealList(tComplainDeal); return tComplainDealMapper.selectTComplainDealList(tComplainDeal);
} }
/**
* 投诉处置统计
*
* @return 投诉处置统计
*/
public HomepageVo countTComplainDeal()
{
return tComplainDealMapper.countTComplainDeal();
}
/** /**
* 新增投诉处置 * 新增投诉处置
* *
......
...@@ -5,6 +5,7 @@ import com.zehong.common.utils.SecurityUtils; ...@@ -5,6 +5,7 @@ import com.zehong.common.utils.SecurityUtils;
import com.zehong.common.utils.StringUtils; import com.zehong.common.utils.StringUtils;
import com.zehong.system.domain.TEnterpriseInfo; import com.zehong.system.domain.TEnterpriseInfo;
import com.zehong.system.domain.TWorkOrder; import com.zehong.system.domain.TWorkOrder;
import com.zehong.system.domain.vo.HomepageVo;
import com.zehong.system.mapper.TEnterpriseInfoMapper; import com.zehong.system.mapper.TEnterpriseInfoMapper;
import com.zehong.system.mapper.TWorkOrderMapper; import com.zehong.system.mapper.TWorkOrderMapper;
import com.zehong.system.service.ITWorkOrderService; import com.zehong.system.service.ITWorkOrderService;
...@@ -52,6 +53,16 @@ public class TWorkOrderServiceImpl implements ITWorkOrderService ...@@ -52,6 +53,16 @@ public class TWorkOrderServiceImpl implements ITWorkOrderService
return tWorkOrderMapper.selectTWorkOrderList(tWorkOrder); return tWorkOrderMapper.selectTWorkOrderList(tWorkOrder);
} }
/**
* 燃气任务统计
*
* @return 燃气任务统计
*/
public HomepageVo countTWorkOrder()
{
return tWorkOrderMapper.countTWorkOrder();
}
/** /**
* 新增燃气任务 * 新增燃气任务
* *
...@@ -92,6 +103,9 @@ public class TWorkOrderServiceImpl implements ITWorkOrderService ...@@ -92,6 +103,9 @@ public class TWorkOrderServiceImpl implements ITWorkOrderService
{ {
tWorkOrder.setUpdateTime(DateUtils.getNowDate()); tWorkOrder.setUpdateTime(DateUtils.getNowDate());
tWorkOrder.setUpdateBy(SecurityUtils.getUsername()); tWorkOrder.setUpdateBy(SecurityUtils.getUsername());
/*if(StringUtils.isNotEmpty(tWorkOrder.getIconUrl()) || StringUtils.isNotEmpty(tWorkOrder.getRectificationResult())){
tWorkOrder.setWorkStatus("2");
}*/
return tWorkOrderMapper.updateTWorkOrder(tWorkOrder); return tWorkOrderMapper.updateTWorkOrder(tWorkOrder);
} }
......
...@@ -10,6 +10,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -10,6 +10,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="complainPhone" column="complain_phone" /> <result property="complainPhone" column="complain_phone" />
<result property="complainMatter" column="complain_matter" /> <result property="complainMatter" column="complain_matter" />
<result property="transferRecord" column="transfer_record" /> <result property="transferRecord" column="transfer_record" />
<result property="dealTime" column="deal_time" />
<result property="dealCondition" column="deal_condition" /> <result property="dealCondition" column="deal_condition" />
<result property="complainAssignEnterproseName" column="complain_assign_enterprose_name" /> <result property="complainAssignEnterproseName" column="complain_assign_enterprose_name" />
<result property="complainAssignEnterproseId" column="complain_assign_enterprose_id" /> <result property="complainAssignEnterproseId" column="complain_assign_enterprose_id" />
...@@ -25,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -25,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectTComplainDealVo"> <sql id="selectTComplainDealVo">
select complain_deal_id, complain_name, complain_phone, complain_matter, transfer_record, deal_condition, complain_assign_enterprose_name, complain_assign_enterprose_id, complain_assign_man_id, complain_assign_man, complain_status, create_by, create_time, update_by, update_time, is_del, remarks from t_complain_deal select complain_deal_id, complain_name, complain_phone, complain_matter, transfer_record, deal_time,deal_condition, complain_assign_enterprose_name, complain_assign_enterprose_id, complain_assign_man_id, complain_assign_man, complain_status, create_by, create_time, update_by, update_time, is_del, remarks from t_complain_deal
</sql> </sql>
<select id="selectTComplainDealList" parameterType="TComplainDeal" resultMap="TComplainDealResult"> <select id="selectTComplainDealList" parameterType="TComplainDeal" resultMap="TComplainDealResult">
...@@ -44,13 +45,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -44,13 +45,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="isDel != null and isDel != ''"> and is_del = #{isDel}</if> <if test="isDel != null and isDel != ''"> and is_del = #{isDel}</if>
<if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if> <if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if>
</where> </where>
order by create_time desc
</select> </select>
<select id="selectTComplainDealById" parameterType="Long" resultMap="TComplainDealResult"> <select id="selectTComplainDealById" parameterType="Long" resultMap="TComplainDealResult">
<include refid="selectTComplainDealVo"/> <include refid="selectTComplainDealVo"/>
where complain_deal_id = #{complainDealId} where complain_deal_id = #{complainDealId}
</select> </select>
<select id="countTComplainDeal" resultType="HomepageVo">
select COUNT(t.complain_deal_id) AS complaintTotal,
SUM(CASE t.complain_status WHEN '2' THEN 1 ELSE 0 END) AS complaintFeedbackTotal
from (select * from t_complain_deal where is_del = '0') t
</select>
<insert id="insertTComplainDeal" parameterType="TComplainDeal" useGeneratedKeys="true" keyProperty="complainDealId"> <insert id="insertTComplainDeal" parameterType="TComplainDeal" useGeneratedKeys="true" keyProperty="complainDealId">
insert into t_complain_deal insert into t_complain_deal
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
...@@ -58,6 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -58,6 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="complainPhone != null">complain_phone,</if> <if test="complainPhone != null">complain_phone,</if>
<if test="complainMatter != null">complain_matter,</if> <if test="complainMatter != null">complain_matter,</if>
<if test="transferRecord != null">transfer_record,</if> <if test="transferRecord != null">transfer_record,</if>
<if test="dealTime !=null">deal_time,</if>
<if test="dealCondition != null">deal_condition,</if> <if test="dealCondition != null">deal_condition,</if>
<if test="complainAssignEnterproseName != null">complain_assign_enterprose_name,</if> <if test="complainAssignEnterproseName != null">complain_assign_enterprose_name,</if>
<if test="complainAssignEnterproseId != null">complain_assign_enterprose_id,</if> <if test="complainAssignEnterproseId != null">complain_assign_enterprose_id,</if>
...@@ -76,6 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -76,6 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="complainPhone != null">#{complainPhone},</if> <if test="complainPhone != null">#{complainPhone},</if>
<if test="complainMatter != null">#{complainMatter},</if> <if test="complainMatter != null">#{complainMatter},</if>
<if test="transferRecord != null">#{transferRecord},</if> <if test="transferRecord != null">#{transferRecord},</if>
<if test="dealTime != null">#{dealTime},</if>
<if test="dealCondition != null">#{dealCondition},</if> <if test="dealCondition != null">#{dealCondition},</if>
<if test="complainAssignEnterproseName != null">#{complainAssignEnterproseName},</if> <if test="complainAssignEnterproseName != null">#{complainAssignEnterproseName},</if>
<if test="complainAssignEnterproseId != null">#{complainAssignEnterproseId},</if> <if test="complainAssignEnterproseId != null">#{complainAssignEnterproseId},</if>
...@@ -98,6 +108,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -98,6 +108,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="complainPhone != null">complain_phone = #{complainPhone},</if> <if test="complainPhone != null">complain_phone = #{complainPhone},</if>
<if test="complainMatter != null">complain_matter = #{complainMatter},</if> <if test="complainMatter != null">complain_matter = #{complainMatter},</if>
<if test="transferRecord != null">transfer_record = #{transferRecord},</if> <if test="transferRecord != null">transfer_record = #{transferRecord},</if>
<if test="dealTime != null">deal_time = #{dealTime},</if>
<if test="dealCondition != null">deal_condition = #{dealCondition},</if> <if test="dealCondition != null">deal_condition = #{dealCondition},</if>
<if test="complainAssignEnterproseName != null">complain_assign_enterprose_name = #{complainAssignEnterproseName},</if> <if test="complainAssignEnterproseName != null">complain_assign_enterprose_name = #{complainAssignEnterproseName},</if>
<if test="complainAssignEnterproseId != null">complain_assign_enterprose_id = #{complainAssignEnterproseId},</if> <if test="complainAssignEnterproseId != null">complain_assign_enterprose_id = #{complainAssignEnterproseId},</if>
......
...@@ -28,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -28,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectTVideoManagerList" parameterType="TVideoManager" resultMap="TVideoManagerResult"> <select id="selectTVideoManagerList" parameterType="TVideoManager" resultMap="TVideoManagerResult">
<include refid="selectTVideoManagerVo"/> <include refid="selectTVideoManagerVo"/>
<where> <where> is_del = '0'
<if test="videoName != null and videoName != ''"> and video_name like concat('%', #{videoName}, '%')</if> <if test="videoName != null and videoName != ''"> and video_name like concat('%', #{videoName}, '%')</if>
<if test="resourceId != null and resourceId != ''"> and resource_id = #{resourceId}</if> <if test="resourceId != null and resourceId != ''"> and resource_id = #{resourceId}</if>
<if test="longitude != null "> and longitude = #{longitude}</if> <if test="longitude != null "> and longitude = #{longitude}</if>
...@@ -37,7 +37,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -37,7 +37,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null and type != ''"> and type = #{type}</if> <if test="type != null and type != ''"> and type = #{type}</if>
<if test="beyondEnterpriseId != null "> and beyond_enterprise_id = #{beyondEnterpriseId}</if> <if test="beyondEnterpriseId != null "> and beyond_enterprise_id = #{beyondEnterpriseId}</if>
<if test="beyondEnterpriseName != null and beyondEnterpriseName != ''"> and beyond_enterprise_name like concat('%', #{beyondEnterpriseName}, '%')</if> <if test="beyondEnterpriseName != null and beyondEnterpriseName != ''"> and beyond_enterprise_name like concat('%', #{beyondEnterpriseName}, '%')</if>
<if test="isDel != null and isDel != ''"> and is_del = #{isDel}</if>
<if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if> <if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if>
</where> </where>
</select> </select>
......
...@@ -34,39 +34,77 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -34,39 +34,77 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectTWorkOrderVo"> <sql id="selectTWorkOrderVo">
select work_id, work_title, work_type, work_content, work_create_enterprise_name, work_create_enterprise_id, work_assign_enterprose_name, work_assign_enterprose_id, work_assign_man_id, work_assign_man, work_status, inspection_date, inspection_route, problem_description, icon_url, rectification_plan, rectification_result, responsible_unit, responsible_person, expiry_date, create_by, create_time, update_by, update_time, is_del, remarks from t_work_order SELECT
workOrder.work_id,
workOrder.work_title,
workOrder.work_type,
workOrder.work_content,
workOrder.work_create_enterprise_name,
workOrder.work_create_enterprise_id,
info.enterprise_name AS work_assign_enterprose_name,
workOrder.work_assign_enterprose_id,
workOrder.work_assign_man_id,
usr.user_name AS work_assign_man,
workOrder.work_status,
workOrder.inspection_date,
workOrder.inspection_route,
workOrder.problem_description,
workOrder.icon_url,
workOrder.rectification_plan,
workOrder.rectification_result,
workOrder.responsible_unit,
workOrder.responsible_person,
workOrder.expiry_date,
workOrder.create_by,
workOrder.create_time,
workOrder.update_by,
workOrder.update_time,
workOrder.is_del,
workOrder.remarks
FROM
t_work_order workOrder
LEFT JOIN sys_user usr ON usr.user_id = workOrder.work_assign_man_id
LEFT JOIN t_enterprise_info info ON info.enterprise_id = workOrder.work_assign_enterprose_id
</sql> </sql>
<select id="selectTWorkOrderList" parameterType="TWorkOrder" resultMap="TWorkOrderResult"> <select id="selectTWorkOrderList" parameterType="TWorkOrder" resultMap="TWorkOrderResult">
<include refid="selectTWorkOrderVo"/> <include refid="selectTWorkOrderVo"/>
<where> <where>
<if test="workTitle != null and workTitle != ''"> and work_title like concat('%', #{workTitle}, '%')</if> <if test="workTitle != null and workTitle != ''"> and workOrder.work_title like concat('%', #{workTitle}, '%')</if>
<if test="workType != null and workType != ''"> and work_type = #{workType}</if> <if test="workType != null and workType != ''"> and workOrder.work_type = #{workType}</if>
<if test="workContent != null and workContent != ''"> and work_content = #{workContent}</if> <if test="workContent != null and workContent != ''"> and workOrder.work_content = #{workContent}</if>
<if test="workCreateEnterpriseName != null and workCreateEnterpriseName != ''"> and work_create_enterprise_name like concat('%', #{workCreateEnterpriseName}, '%')</if> <if test="workCreateEnterpriseName != null and workCreateEnterpriseName != ''"> and workOrder.work_create_enterprise_name like concat('%', #{workCreateEnterpriseName}, '%')</if>
<if test="workCreateEnterpriseId != null and workCreateEnterpriseId != ''"> and work_create_enterprise_id = #{workCreateEnterpriseId}</if> <if test="workCreateEnterpriseId != null and workCreateEnterpriseId != ''"> and workOrder.work_create_enterprise_id = #{workCreateEnterpriseId}</if>
<if test="workAssignEnterproseName != null and workAssignEnterproseName != ''"> and work_assign_enterprose_name like concat('%', #{workAssignEnterproseName}, '%')</if> <if test="workAssignEnterproseName != null and workAssignEnterproseName != ''"> and info.work_assign_enterprose_name like concat('%', #{workAssignEnterproseName}, '%')</if>
<if test="workAssignEnterproseId != null "> and work_assign_enterprose_id = #{workAssignEnterproseId}</if> <if test="workAssignEnterproseId != null "> and workOrder.work_assign_enterprose_id = #{workAssignEnterproseId}</if>
<if test="workAssignManId != null "> and work_assign_man_id = #{workAssignManId}</if> <if test="workAssignManId != null "> and workOrder.work_assign_man_id = #{workAssignManId}</if>
<if test="workAssignMan != null and workAssignMan != ''"> and work_assign_man = #{workAssignMan}</if> <if test="workAssignMan != null and workAssignMan != ''"> and user.work_assign_man = #{workAssignMan}</if>
<if test="workStatus != null and workStatus != ''"> and work_status = #{workStatus}</if> <if test="workStatus != null and workStatus != ''"> and workOrder.work_status = #{workStatus}</if>
<if test="inspectionDate != null "> and inspection_date = #{inspectionDate}</if> <if test="inspectionDate != null "> and workOrder.inspection_date = #{inspectionDate}</if>
<if test="inspectionRoute != null and inspectionRoute != ''"> and inspection_route = #{inspectionRoute}</if> <if test="inspectionRoute != null and inspectionRoute != ''"> and workOrder.inspection_route = #{inspectionRoute}</if>
<if test="problemDescription != null and problemDescription != ''"> and problem_description = #{problemDescription}</if> <if test="problemDescription != null and problemDescription != ''"> and workOrder.problem_description = #{problemDescription}</if>
<if test="iconUrl != null and iconUrl != ''"> and icon_url = #{iconUrl}</if> <if test="iconUrl != null and iconUrl != ''"> and workOrder.icon_url = #{iconUrl}</if>
<if test="rectificationPlan != null and rectificationPlan != ''"> and rectification_plan = #{rectificationPlan}</if> <if test="rectificationPlan != null and rectificationPlan != ''"> and workOrder.rectification_plan = #{rectificationPlan}</if>
<if test="rectificationResult != null and rectificationResult != ''"> and rectification_result = #{rectificationResult}</if> <if test="rectificationResult != null and rectificationResult != ''"> and workOrder.rectification_result = #{rectificationResult}</if>
<if test="responsibleUnit != null and responsibleUnit != ''"> and responsible_unit = #{responsibleUnit}</if> <if test="responsibleUnit != null and responsibleUnit != ''"> and workOrder.responsible_unit = #{responsibleUnit}</if>
<if test="responsiblePerson != null and responsiblePerson != ''"> and responsible_person = #{responsiblePerson}</if> <if test="responsiblePerson != null and responsiblePerson != ''"> and workOrder.responsible_person = #{responsiblePerson}</if>
<if test="expiryDate != null "> and expiry_date = #{expiryDate}</if> <if test="expiryDate != null "> and workOrder.expiry_date = #{expiryDate}</if>
<if test="isDel != null and isDel != ''"> and is_del = #{isDel}</if> <if test="isDel != null and isDel != ''"> and workOrder.is_del = #{isDel}</if>
<if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if> <if test="remarks != null and remarks != ''"> and workOrder.remarks = #{remarks}</if>
</where> </where>
ORDER BY workOrder.create_time DESC
</select> </select>
<select id="selectTWorkOrderById" parameterType="Long" resultMap="TWorkOrderResult"> <select id="selectTWorkOrderById" parameterType="Long" resultMap="TWorkOrderResult">
<include refid="selectTWorkOrderVo"/> <include refid="selectTWorkOrderVo"/>
where work_id = #{workId} where workOrder.work_id = #{workId}
</select>
<select id="countTWorkOrder" resultType="HomepageVo">
select COUNT(t.work_id) AS taskTotal,
SUM(CASE t.work_status WHEN '2' THEN 1 ELSE 0 END) AS taskFeedbackTotal
from (select * from t_work_order where is_del = '0') t
</select> </select>
<insert id="insertTWorkOrder" parameterType="TWorkOrder" useGeneratedKeys="true" keyProperty="workId"> <insert id="insertTWorkOrder" parameterType="TWorkOrder" useGeneratedKeys="true" keyProperty="workId">
...@@ -137,7 +175,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -137,7 +175,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="workCreateEnterpriseId != null">work_create_enterprise_id = #{workCreateEnterpriseId},</if> <if test="workCreateEnterpriseId != null">work_create_enterprise_id = #{workCreateEnterpriseId},</if>
<if test="workAssignEnterproseName != null">work_assign_enterprose_name = #{workAssignEnterproseName},</if> <if test="workAssignEnterproseName != null">work_assign_enterprose_name = #{workAssignEnterproseName},</if>
<if test="workAssignEnterproseId != null">work_assign_enterprose_id = #{workAssignEnterproseId},</if> <if test="workAssignEnterproseId != null">work_assign_enterprose_id = #{workAssignEnterproseId},</if>
<if test="workAssignManId == null">work_assign_man_id = null,</if> <if test="workAssignManId == null and workAssignMan == ''">work_assign_man_id = null,</if>
<if test="workAssignManId != null">work_assign_man_id = #{workAssignManId},</if> <if test="workAssignManId != null">work_assign_man_id = #{workAssignManId},</if>
<if test="workAssignMan != null">work_assign_man = #{workAssignMan},</if> <if test="workAssignMan != null">work_assign_man = #{workAssignMan},</if>
<if test="workStatus != null">work_status = #{workStatus},</if> <if test="workStatus != null">work_status = #{workStatus},</if>
......
import request from '@/utils/request' import request from '@/utils/request'
// 燃气事故台账统计 // 燃气事故台账统计
export function troubleStatistic(query) { export function troubleStatistic() {
return request({ return request({
url: '/statistic/troubleStatistic', url: '/statistic/troubleStatistic',
method: 'get', method: 'get'
params: query
}) })
} }
// 隐患整治台账统计 // 隐患整治台账统计
export function hiddenStatistic(query) { export function hiddenStatistic() {
return request({ return request({
url: '/statistic/hiddenStatistic', url: '/statistic/hiddenStatistic',
method: 'get', method: 'get'
params: query })
}
// 隐患整治台账统计
export function homepageStatistic() {
return request({
url: '/statistic/homepageStatistic',
method: 'get'
}) })
} }
...@@ -82,10 +82,20 @@ ...@@ -82,10 +82,20 @@
<el-table-column label="投诉人姓名" align="center" prop="complainName" /> <el-table-column label="投诉人姓名" align="center" prop="complainName" />
<el-table-column label="投诉人电话" align="center" prop="complainPhone" /> <el-table-column label="投诉人电话" align="center" prop="complainPhone" />
<el-table-column label="投诉事项" align="center" prop="complainMatter" /> <el-table-column label="投诉事项" align="center" prop="complainMatter" />
<el-table-column label="办理情况" align="center" prop="dealCondition" /> <!--<el-table-column label="反馈内容" align="center" prop="dealCondition" />-->
<el-table-column label="指派单位名称" align="center" prop="complainAssignEnterproseName" /> <el-table-column label="指派单位名称" align="center" prop="complainAssignEnterproseName" />
<el-table-column label="指派人" align="center" prop="complainAssignMan" /> <el-table-column label="指派人" align="center" prop="complainAssignMan" />
<el-table-column label="任务状态" align="center" prop="complainStatus" :formatter="taskStateFormat" /> <el-table-column label="任务状态" align="center" prop="complainStatus" :formatter="taskStateFormat" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="反馈时间" align="center" prop="dealTime" width="180" >
<!--<template slot-scope="scope">-->
<!--<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>-->
<!--</template>-->
</el-table-column>
<el-table-column label="备注" align="center" prop="remarks" /> <el-table-column label="备注" align="center" prop="remarks" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200">
<template slot-scope="scope" > <template slot-scope="scope" >
...@@ -181,7 +191,7 @@ ...@@ -181,7 +191,7 @@
<el-form-item label="投诉事项" prop="complainMatter"> <el-form-item label="投诉事项" prop="complainMatter">
<el-input v-model="form.complainMatter" type = "textarea" placeholder="请输入投诉事项" :disabled="readonly"/> <el-input v-model="form.complainMatter" type = "textarea" placeholder="请输入投诉事项" :disabled="readonly"/>
</el-form-item> </el-form-item>
<el-form-item label="办理情况" prop="dealCondition" :style="display"> <el-form-item label="反馈内容" prop="dealCondition" :style="display">
<el-input v-model="form.dealCondition" type = "textarea" placeholder="请输入办理情况" :disabled="readonly"/> <el-input v-model="form.dealCondition" type = "textarea" placeholder="请输入办理情况" :disabled="readonly"/>
</el-form-item> </el-form-item>
<el-form-item label="转办记录" prop="transferRecord" :style="display"> <el-form-item label="转办记录" prop="transferRecord" :style="display">
...@@ -208,9 +218,16 @@ ...@@ -208,9 +218,16 @@
</el-dialog> </el-dialog>
<el-dialog title="反馈内容" :visible.sync="dialogFormVisible" width="600px"> <el-dialog title="反馈内容" :visible.sync="dialogFormVisible" width="600px">
<el-form :model="form2"> <el-form :model="form2">
<textarea class="inputstyle" v-model="form2.concent" type ="textarea" ></textarea> <div style="width: 100%;min-height: 100px;margin-top: -20px">
<el-form-item label="投诉事项" prop="complainMatter">
<textarea class="inputstyle1" v-model="form2.complainMatter" readonly></textarea>
</el-form-item>
</div>
<el-form-item label="反馈" style = "margin-top: -15px;">
<textarea class="inputstyle" v-model="form2.concent" type ="textarea" ></textarea>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer" style="margin-top: -30px;">
<el-button @click="dialogFormVisible = false"> </el-button> <el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="submint2"> </el-button> <el-button type="primary" @click="submint2"> </el-button>
</div> </div>
...@@ -278,6 +295,7 @@ export default { ...@@ -278,6 +295,7 @@ export default {
}, },
form2:{ form2:{
complainDealId:'', complainDealId:'',
complainMatter:'',
concent:'', concent:'',
}, },
//身份 //身份
...@@ -498,6 +516,7 @@ export default { ...@@ -498,6 +516,7 @@ export default {
this.form2.concent=""; this.form2.concent="";
this.dialogFormVisible = true; this.dialogFormVisible = true;
this.form2.complainDealId=row.complainDealId; this.form2.complainDealId=row.complainDealId;
this.form2.complainMatter = row.complainMatter;
}, },
//提交反馈信息 //提交反馈信息
submint2(){ submint2(){
...@@ -539,5 +558,13 @@ export default { ...@@ -539,5 +558,13 @@ export default {
border-color: 0.5px #99a9bf; border-color: 0.5px #99a9bf;
outline:none; outline:none;
} }
.inputstyle1{
min-height: 50px;
max-height: 200px;
width: 100%;
border : none;
resize:none;
outline:none;
}
</style> </style>
<template> <template>
<div class="app-container homeA"> <div class="app-container homeA">
<el-row :gutter="20"> <div clss="div-row">
<el-col :sm="24" :lg="24"> <div class="div-col1">
<blockquote class="text-warning" style="font-size: 14px"> <el-card>
领取阿里云通用云产品1888优惠券 <div style="width: 50%;height: 100%;text-align: center;float: left;font-size: 15px;">
<br /> <img src="../assets/taskDistribution.png" width="15%" style="margin-top: 2.5rem;">
<el-link <p>任务下发</p>
href="https://www.aliyun.com/minisite/goods?userCode=brki8iof"
type="primary"
target="_blank"
>https://www.aliyun.com/minisite/goods?userCode=brki8iof</el-link
>
<br />
领取腾讯云通用云产品2860优惠券
<br />
<el-link
href="https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console"
type="primary"
target="_blank"
>https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console</el-link
>
<br />
阿里云服务器折扣区
<el-link href="http://aly.ruoyi.vip" type="primary" target="_blank"
>>☛☛点我进入☚☚</el-link
>
&nbsp;&nbsp;&nbsp; 腾讯云服务器秒杀区
<el-link href="http://txy.ruoyi.vip" type="primary" target="_blank"
>>☛☛点我进入☚☚</el-link
><br />
<h4 class="text-danger">
云产品通用红包,可叠加官网常规优惠使用。(仅限新用户)
</h4>
</blockquote>
<hr />
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :sm="24" :lg="12" style="padding-left: 20px">
<h2>若依后台管理框架</h2>
<p>
一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统。,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。
</p>
<p>
<b>当前版本:</b> <span>v{{ version }}</span>
</p>
<p>
<el-tag type="danger">&yen;免费开源</el-tag>
</p>
<p>
<el-button
type="primary"
size="mini"
icon="el-icon-cloudy"
plain
@click="goTarget('https://gitee.com/y_project/RuoYi-Vue')"
>访问码云</el-button
>
<el-button
size="mini"
icon="el-icon-s-home"
plain
@click="goTarget('http://ruoyi.vip')"
>访问主页</el-button
>
</p>
</el-col>
<el-col :sm="24" :lg="12" style="padding-left: 50px">
<el-row>
<el-col :span="12">
<h2>技术选型</h2>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<h4>后端技术</h4>
<ul>
<li>SpringBoot</li>
<li>Spring Security</li>
<li>JWT</li>
<li>MyBatis</li>
<li>Druid</li>
<li>Fastjson</li>
<li>...</li>
</ul>
</el-col>
<el-col :span="6">
<h4>前端技术</h4>
<ul>
<li>Vue</li>
<li>Vuex</li>
<li>Element-ui</li>
<li>Axios</li>
<li>Sass</li>
<li>Quill</li>
<li>...</li>
</ul>
</el-col>
</el-row>
</el-col>
</el-row>
<el-divider />
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="12" :lg="8">
<el-card class="update-log">
<div slot="header" class="clearfix">
<span>联系信息</span>
</div> </div>
<div class="body"> <div style="width: 50%;height: 100%;text-align: center;line-height: 8rem;float: right;font-size: 2.5rem;font-family: 'UnidreamLED';">{{totalObj.taskTotal}}</div>
<p> </el-card>
<i class="el-icon-s-promotion"></i> 官网:<el-link </div>
href="http://www.ruoyi.vip" <div class="div-col1">
target="_blank" <el-card>
>http://www.ruoyi.vip</el-link <div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
> <img src="../assets/taskFeedback.png" width="15%" style="margin-top: 2.5rem;">
</p> <p>任务反馈</p>
<p>
<i class="el-icon-user-solid"></i> QQ群:<s>满937441</s>
<s>满887144332</s> <s>满180251782</s> <s>满104180207</s>
<s>满186866453</s>
<a href="https://jq.qq.com/?_wv=1027&k=5vYAqA05" target="_blank">
201396349</a
>
</p>
<p>
<i class="el-icon-chat-dot-round"></i> 微信:<a
href="javascript:;"
>/ *若依</a
>
</p>
<p>
<i class="el-icon-money"></i> 支付宝:<a
href="javascript:;"
class="支付宝信息"
>/ *若依</a
>
</p>
</div> </div>
<div style="width: 50%;height: 100%;text-align: center;line-height: 8rem;float: right;font-size: 2.5rem;font-family: 'UnidreamLED';">{{totalObj.taskFeedbackTotal}}</div>
</el-card> </el-card>
</el-col> </div>
<el-col :xs="24" :sm="24" :md="12" :lg="8"> <div class="div-col1">
<el-card class="update-log"> <el-card>
<div slot="header" class="clearfix"> <div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
<span>更新日志</span> <img src="../assets/complaint.png" width="15%" style="margin-top: 2.5rem;">
<p>投诉处置</p>
</div> </div>
<el-collapse accordion> <div style="width: 50%;height: 100%;text-align: center;line-height: 8rem;float: right;font-size: 2.5rem;font-family: 'UnidreamLED';">{{totalObj.complaintTotal}}</div>
<el-collapse-item title="v3.5.0 - 2021-05-25"> </el-card>
<ol> </div>
<li>新增菜单导航显示风格TopNav(false为左侧导航菜单,true为顶部导航菜单)</li> <div class="div-col1">
<li>布局设置支持保存&重置配置</li> <el-card>
<li>修复树表数据显示不全&加载慢问题</li> <div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
<li>新增IE浏览器版本过低提示页面</li> <img src="../assets/complaintFeedback.png" width="15%" style="margin-top: 2.5rem;">
<li>用户登录后记录最后登录IP&时间</li> <p>投诉反馈</p>
<li>页面导出按钮点击之后添加遮罩</li> </div>
<li>富文本编辑器支持自定义上传地址</li> <div style="width: 50%;height: 100%;text-align: center;line-height: 8rem;float: right;font-size: 2.5rem;font-family: 'UnidreamLED';">{{totalObj.complaintFeedbackTotal}}</div>
<li>富文本编辑组件新增readOnly属性</li> </el-card>
<li>页签TagsView新增关闭右侧功能</li> </div>
<li>显隐列组件加载初始默认隐藏列</li> </div>
<li>关闭头像上传窗口还原默认图片</li>
<li>个人信息添加手机&邮箱重复验证</li>
<li>代码生成模板导出按钮点击后添加遮罩</li>
<li>代码生成模板树表操作列添加新增按钮</li>
<li>代码生成模板修复主子表字段重名问题</li>
<li>升级fastjson到最新版1.2.76</li>
<li>升级druid到最新版本v1.2.6</li>
<li>升级mybatis到最新版3.5.6 阻止远程代码执行漏洞</li>
<li>升级oshi到最新版本v5.6.0</li>
<li>velocity剔除commons-collections版本,防止3.2.1版本的反序列化漏洞</li>
<li>数据监控页默认账户密码防止越权访问</li>
<li>修复firefox下表单构建拖拽会新打卡一个选项卡</li>
<li>修正后端导入表权限标识</li>
<li>修正前端操作日志&登录日志权限标识</li>
<li>设置Redis配置HashKey序列化</li>
<li>删除操作日志记录信息</li>
<li>上传媒体类型添加视频格式</li>
<li>修复请求形参未传值记录日志异常问题</li>
<li>优化xss校验json请求条件</li>
<li>树级结构更新子节点使用replaceFirst</li>
<li>优化ExcelUtil空值处理</li>
<li>日志记录过滤BindingResult对象,防止异常</li>
<li>修改主题后mini类型按钮无效问题</li>
<li>优化通用下载完成后删除节点</li>
<li>通用Controller添加响应返回消息</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v3.4.0 - 2021-02-22">
<ol>
<li>代码生成模板支持主子表</li>
<li>表格右侧工具栏组件支持显隐列</li>
<li>图片组件添加预览&移除功能</li>
<li>Excel注解支持Image图片导出</li>
<li>操作按钮组调整为朴素按钮样式</li>
<li>代码生成支持文件上传组件</li>
<li>代码生成日期控件区分范围</li>
<li>代码生成数据库文本类型生成表单文本域</li>
<li>用户手机邮箱&菜单组件修改允许空字符串</li>
<li>升级SpringBoot到最新版本2.2.13 提升启动速度</li>
<li>升级druid到最新版本v1.2.4</li>
<li>升级fastjson到最新版1.2.75</li>
<li>升级element-ui到最新版本2.15.0</li>
<li>修复IE11浏览器报错问题</li>
<li>优化多级菜单之间切换无法缓存的问题</li>
<li>修复四级菜单无法显示问题</li>
<li>修正侧边栏静态路由丢失问题</li>
<li>修复角色管理-编辑角色-功能权限显示异常</li>
<li>配置文件新增redis数据库索引属性</li>
<li>权限工具类增加admin判断</li>
<li>角色非自定义权限范围清空选择值</li>
<li>修复导入数据为负浮点数时丢失精度问题</li>
<li>移除path-to-regexp正则匹配插件</li>
<li>修复生成树表代码异常</li>
<li>修改ip字段长度防止ipv6地址长度不够</li>
<li>防止get请求参数值为false或0等特殊值会导致无法正确的传参</li>
<li>登录后push添加catch防止出现检查错误</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v3.3.0 - 2020-12-14">
<ol>
<li>新增缓存监控功能</li>
<li>支持主题风格配置</li>
<li>修复多级菜单之间切换无法缓存的问题</li>
<li>多级菜单自动配置组件</li>
<li>代码生成预览支持高亮显示</li>
<li>支持Get请求映射Params参数</li>
<li>删除用户和角色解绑关联</li>
<li>去除用户手机邮箱部门必填验证</li>
<li>Excel支持注解align对齐方式</li>
<li>Excel支持导入Boolean型数据</li>
<li>优化头像样式,鼠标移入悬停遮罩</li>
<li>代码生成预览提供滚动机制</li>
<li>代码生成删除多余的数字float类型</li>
<li>修正转换字符串的目标字符集属性</li>
<li>回显数据字典防止空值报错</li>
<li>日志记录增加过滤多文件场景</li>
<li>修改缓存Set方法可能导致嵌套的问题</li>
<li>移除前端一些多余的依赖</li>
<li>防止安全扫描YUI出现的风险提示</li>
<li>修改node-sass为dart-sass</li>
<li>升级SpringBoot到最新版本2.1.18</li>
<li>升级poi到最新版本4.1.2</li>
<li>升级oshi到最新版本v5.3.6</li>
<li>升级bitwalker到最新版本1.21</li>
<li>升级axios到最新版本0.21.0</li>
<li>升级element-ui到最新版本2.14.1</li>
<li>升级vue到最新版本2.6.12</li>
<li>升级vuex到最新版本3.6.0</li>
<li>升级vue-cli到版本4.5.9</li>
<li>升级vue-router到最新版本3.4.9</li>
<li>升级vue-cli到最新版本4.4.6</li>
<li>升级vue-cropper到最新版本0.5.5</li>
<li>升级clipboard到最新版本2.0.6</li>
<li>升级core-js到最新版本3.8.1</li>
<li>升级echarts到最新版本4.9.0</li>
<li>升级file-saver到最新版本2.0.4</li>
<li>升级fuse.js到最新版本6.4.3</li>
<li>升级js-beautify到最新版本1.13.0</li>
<li>升级js-cookie到最新版本2.2.1</li>
<li>升级path-to-regexp到最新版本6.2.0</li>
<li>升级quill到最新版本1.3.7</li>
<li>升级screenfull到最新版本5.0.2</li>
<li>升级sortablejs到最新版本1.10.2</li>
<li>升级vuedraggable到最新版本2.24.3</li>
<li>升级chalk到最新版本4.1.0</li>
<li>升级eslint到最新版本7.15.0</li>
<li>升级eslint-plugin-vue到最新版本7.2.0</li>
<li>升级lint-staged到最新版本10.5.3</li>
<li>升级runjs到最新版本4.4.2</li>
<li>升级sass-loader到最新版本10.1.0</li>
<li>升级script-ext-html-webpack-plugin到最新版本2.1.5</li>
<li>升级svg-sprite-loader到最新版本5.1.1</li>
<li>升级vue-template-compiler到最新版本2.6.12</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v3.2.1 - 2020-11-18">
<ol>
<li>阻止任意文件下载漏洞</li>
<li>代码生成支持上传控件</li>
<li>新增图片上传组件</li>
<li>调整默认首页</li>
<li>升级druid到最新版本v1.2.2</li>
<li>mapperLocations配置支持分隔符</li>
<li>权限信息调整</li>
<li>调整sql默认时间</li>
<li>解决代码生成没有bit类型的问题</li>
<li>升级pagehelper到最新版1.3.0</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v3.2.0 - 2020-10-10">
<ol>
<li>升级springboot版本到2.1.17 提升安全性</li>
<li>升级oshi到最新版本v5.2.5</li>
<li>升级druid到最新版本v1.2.1</li>
<li>升级jjwt到版本0.9.1</li>
<li>升级fastjson到最新版1.2.74</li>
<li>修改sass为node-sass,避免el-icon图标乱码</li>
<li>代码生成支持同步数据库</li>
<li>代码生成支持富文本控件</li>
<li>代码生成页面时不忽略remark属性</li>
<li>代码生成添加select必填选项</li>
<li>Excel导出类型NUMERIC支持精度浮点类型</li>
<li>Excel导出targetAttr优化获取值,防止get方法不规范</li>
<li>Excel注解支持自动统计数据总和</li>
<li>Excel注解支持设置BigDecimal精度&舍入规则</li>
<li>菜单&数据权限新增(展开/折叠 全选/全不选 父子联动)</li>
<li>允许用户分配到部门父节点</li>
<li>菜单新增是否缓存keep-alive</li>
<li>表格操作列间距调整</li>
<li>限制系统内置参数不允许删除</li>
<li>富文本组件优化,支持自定义高度&图片冲突问题</li>
<li>富文本工具栏样式对齐</li>
<li>导入excel整形值校验优化</li>
<li>修复页签关闭所有时固定标签路由不刷新问题</li>
<li>表单构建布局型组件新增按钮</li>
<li>左侧菜单文字过长显示省略号</li>
<li>修正根节点为子部门时,树状结构显示问题</li>
<li>修正调用目标字符串最大长度</li>
<li>修正菜单提示信息错误</li>
<li>修正定时任务执行一次权限标识</li>
<li>修正数据库字符串类型nvarchar</li>
<li>优化递归子节点</li>
<li>优化数据权限判断</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v3.1.0 - 2020-08-13">
<ol>
<li>表格工具栏右侧添加刷新&显隐查询组件</li>
<li>后端支持CORS跨域请求</li>
<li>代码生成支持选择上级菜单</li>
<li>代码生成支持自定义路径</li>
<li>代码生成支持复选框</li>
<li>Excel导出导入支持dictType字典类型</li>
<li>Excel支持分割字符串组内容</li>
<li>验证码类型支持(数组计算、字符验证)</li>
<li>升级vue-cli版本到4.4.4</li>
<li>修改 node-sass 为 dart-sass</li>
<li>表单类型为Integer/Long设置整形默认值</li>
<li>代码生成器默认mapper路径与默认mapperScan路径不一致</li>
<li>优化防重复提交拦截器</li>
<li>优化上级菜单不能选择自己</li>
<li>修复角色的权限分配后,未实时生效问题</li>
<li>修复在线用户日志记录类型</li>
<li>修复富文本空格和缩进保存后不生效问题</li>
<li>修复在线用户判断逻辑</li>
<li>唯一限制条件只返回单条数据</li>
<li>添加获取当前的环境配置方法</li>
<li>超时登录后页面跳转到首页</li>
<li>全局异常状态汉化拦截处理</li>
<li>HTML过滤器改为将html转义</li>
<li>检查字符支持小数点&降级改成异常提醒</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v3.0.0 - 2020-07-20">
<ol>
<li>单应用调整为多模块项目</li>
<li>升级element-ui版本到2.13.2</li>
<li>删除babel,提高编译速度。</li>
<li>新增菜单默认主类目</li>
<li>编码文件名修改为uuid方式</li>
<li>定时任务cron表达式验证</li>
<li>角色权限修改时已有权限未自动勾选异常修复</li>
<li>防止切换权限用户后登录出现404</li>
<li>Excel支持sort导出排序</li>
<li>创建用户不允许选择超级管理员角色</li>
<li>修复代码生成导入表结构出现异常页面不提醒问题</li>
<li>修复代码生成点击多次表修改数据不变化的问题</li>
<li>修复头像上传成功二次打开无法改变裁剪框大小和位置问题</li>
<li>修复布局为small者mini用户表单显示错位问题</li>
<li>修复热部署导致的强换异常问题</li>
<li>修改用户管理复选框宽度,防止部分浏览器出现省略号</li>
<li>IpUtils工具,清除Xss特殊字符,防止Xff注入攻击</li>
<li>生成domain 如果是浮点型 统一用BigDecimal</li>
<li>定时任务调整label-width,防止部署出现错位</li>
<li>调整表头固定列默认样式</li>
<li>代码生成模板调整,字段为String并且必填则加空串条件</li>
<li>代码生成字典Integer/Long使用parseInt</li>
<li>
修复dict_sort不可update为0的问题&查询返回增加dict_sort升序排序
</li>
<li>修正岗位导出权限注解</li>
<li>禁止加密密文返回前端</li>
<li>修复代码生成页面中的查询条件创建时间未生效的问题</li>
<li>修复首页搜索菜单外链无法点击跳转问题</li>
<li>修复菜单管理选择图标,backspace删除时不过滤数据</li>
<li>用户管理部门分支节点不可检查&显示计数</li>
<li>数据范围过滤属性调整</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v2.3.0 - 2020-06-01"> <div clss="div-row">
<ol> <div class="div-col1">
<li>升级fastjson到最新版1.2.70 修复高危安全漏洞</li> <el-card>
<li>dev启动默认打开浏览器</li> <div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
<li>vue-cli使用默认source-map</li> <img src="../assets/video.png" width="15%" style="margin-top: 2.5rem;">
<li>slidebar eslint报错优化</li> <p>视频监控</p>
<li>当tags-view滚动关闭右键菜单</li> </div>
<li>字典管理添加缓存读取</li> <div style="width: 50%;height: 100%;text-align: center;line-height: 8rem;float: right;font-size: 2.5rem;font-family: 'UnidreamLED';">{{totalObj.videoTotal}}</div>
<li>参数管理支持缓存操作</li> </el-card>
<li>支持一级菜单(和主页同级)在main区域显示</li> </div>
<li>限制外链地址必须以http(s)开头</li> <div class="div-col1">
<li>tagview & sidebar 主题颜色与element ui(全局)同步</li> <el-card>
<li>修改数据源类型优先级,先根据方法,再根据类</li> <div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
<li>支持是否需要设置token属性,自定义返回码消息。</li> <img src="../assets/equipment.png" width="15%" style="margin-top: 2.5rem;">
<li>swagger请求前缀加入配置。</li> <p>安全装置</p>
<li>登录地点设置内容过长则隐藏显示</li> </div>
<li>修复定时任务执行一次按钮后不提示消息问题</li> <div style="width: 50%;height: 100%;text-align: center;line-height: 8rem;float: right;font-size: 2.5rem;font-family: 'UnidreamLED';">{{totalObj.equipmentTotal}}</div>
<li>修改上级部门(选择项排除本身和下级)</li> </el-card>
<li>通用http发送方法增加参数 contentType 编码类型</li> </div>
<li>更换IP地址查询接口</li> <div class="div-col1">
<li>修复页签变量undefined</li> <el-card>
<li>添加校验部门包含未停用的子部门</li> <div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
<li>修改定时任务详情下次执行时间日期显示错误</li> <img src="../assets/trouble.png" width="15%" style="margin-top: 2.5rem;">
<li>角色管理查询设置默认排序字段</li> <p>燃气事故</p>
<li>swagger添加enable参数控制是否启用</li> </div>
<li>只对json类型请求构建可重复读取inputStream的request</li> <div style="width: 50%;height: 100%;text-align: center;line-height: 8rem;float: right;font-size: 2.5rem;font-family: 'UnidreamLED';">{{totalObj.troubleTotal}}</div>
<li>修改代码生成字典字段int类型没有自动选中问题</li> </el-card>
<li>vuex用户名取值修正</li> </div>
<li>表格树模板去掉多余的)</li> <div class="div-col1">
<li>代码生成序号修正</li> <el-card>
<li>全屏情况下不调整上外边距</li> <div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
<li>代码生成Date字段添加默认格式</li> <img src="../assets/hidden.png" width="15%" style="margin-top: 2.5rem;">
<li>用户管理角色选择权限控制</li> <p>隐患整治</p>
<li>修复路由懒加载报错问题</li> </div>
<li>模板sql.vm添加菜单状态</li> <div style="width: 50%;height: 100%;text-align: center;line-height: 8rem;float: right;font-size: 2.5rem;font-family: 'UnidreamLED';">{{totalObj.hiddenTotal}}</div>
<li>设置用户名称不能修改</li> </el-card>
<li>dialog添加append-to-body属性,防止ie遮罩</li> </div>
<li>菜单区分状态和显示隐藏功能</li> </div>
<li>升级fastjson到最新版1.2.68 修复安全加固</li>
<li>修复代码生成如果选择字典类型缺失逗号问题</li>
<li>登录请求params更换为data,防止暴露url</li>
<li>日志返回时间格式处理</li>
<li>添加handle控制允许拖动的元素</li>
<li>布局设置点击扩大范围</li>
<li>代码生成列属性排序查询</li>
<li>代码生成列支持拖动排序</li>
<li>修复时间格式不支持ios问题</li>
<li>表单构建添加父级class,防止冲突</li>
<li>定时任务并发属性修正</li>
<li>角色禁用&菜单隐藏不查询权限</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v2.2.0 - 2020-03-18"> <div clss="div-row">
<ol> <div class="div-col2" @click="$router.push('/operationMonitor/monitorData')">
<li>系统监控新增定时任务功能</li> <el-card>
<li>添加一个打包Web工程bat</li> <img src="../assets/dataMonitor.png" width="20%"/>
<li>修复页签鼠标滚轮按下的时候,可以关闭不可关闭的tag</li> <p>数据监控</p>
<li>修复点击退出登录有时会无提示问题</li> </el-card>
<li>修复防重复提交注解无效问题</li> </div>
<li>修复通知公告批量删除异常问题</li> <div class="div-col2" @click="$router.push('/emergency/eventInfo')">
<li>添加菜单时路由地址必填限制</li> <el-card>
<li>代码生成字段描述可编辑</li> <img src="../assets/emergency.png" width="20%"/>
<li>修复用户修改个人信息导致缓存不过期问题</li> <p>应急处置</p>
<li>个人信息创建时间获取正确属性值</li> </el-card>
<li>操作日志详细显示正确类型</li> </div>
<li>导入表单击行数据时选中对应的复选框</li> <div class="div-col2" @click="$router.push('/regulation/regulation')">
<li>批量替换表前缀逻辑调整</li> <el-card>
<li>固定重定向路径表达式</li> <img src="../assets/enterprise.png" width="20%"/>
<li>升级element-ui版本到2.13.0</li> <p>燃气企业</p>
<li>操作日志排序调整</li> </el-card>
<li>修复charts切换侧边栏或者缩放窗口显示bug</li> </div>
<li>其他细节优化</li> <div class="div-col2" @click="$router.push('/regulation/gasuser')">
</ol> <el-card>
</el-collapse-item> <img src="../assets/user.png" width="20%"/>
<p>燃气用户</p>
</el-card>
</div>
<div class="div-col2" @click="$router.push('/regulation/station')">
<el-card>
<img src="../assets/station.png" width="20%"/>
<p>场站信息</p>
</el-card>
</div>
<div class="div-col2" @click="$router.push('/regulation/pipe')">
<el-card>
<img src="../assets/pipe.png" width="20%"/>
<p>管道信息</p>
</el-card>
</div>
<div class="div-col2" @click="$router.push('/regulation/device')">
<el-card>
<img src="../assets/device.png" width="20%"/>
<p>设备信息</p>
</el-card>
</div>
<div class="div-col2" @click="$router.push('/standingBook/equipment')">
<el-card>
<img src="../assets/addDetector.png" width="20%"/>
<p>用户加装安全装置</p>
</el-card>
</div>
</div>
<el-collapse-item title="v2.1.0 - 2020-02-24"> <div class="div-row">
<ol> <div class="div-col3">
<li>新增表单构建</li> <el-card>
<li>代码生成支持树表结构</li> <div slot="header">
<li>新增用户导入</li> <span class="div-header" style="cursor: pointer;" @click="$router.push('/operationMonitor/workOrder')">任务下发</span>
<li>修复动态加载路由页面刷新问题</li> </div>
<li>修复地址开关无效问题</li> <div class="body">
<li>汉化错误提示页面</li> <el-table v-loading="orderLoading" :data="orderList" height="265" style="width: 100%; border: 1px solid #e6ebf5;">
<li>代码生成已知问题修改</li> <el-table-column label="序号" type="index" align="center">
<li>修复多数据源下配置关闭出现异常处理</li> <template slot-scope="scope">
<li>添加HTML过滤器,用于去除XSS漏洞隐患</li> <span>{{(orderParams.pageNum - 1) * orderParams.pageSize + scope.$index + 1}}</span>
<li>修复上传头像控制台出现异常</li> </template>
<li>修改用户管理分页不正确的问题</li> </el-table-column>
<li>修复验证码记录提示错误</li> <el-table-column label="任务类型" align="center" prop="workType" width="90">
<li>修复request.js缺少Message引用</li> <template slot-scope="scope">
<li>修复表格时间为空出现的异常</li> <span v-if="scope.row.workType == '1'">入户安检</span>
<li>添加Jackson日期反序列化时区配置</li> <span v-if="scope.row.workType == '2'">巡检</span>
<li>调整根据用户权限加载菜单数据树形结构</li> <span v-if="scope.row.workType == '3'">报警巡查</span>
<li>调整成功登陆不恢复按钮,防止多次点击</li> <span v-if="scope.row.workType == '4'">其他</span>
<li>修改用户个人资料同步缓存信息</li> </template>
<li>修复页面同时出现el-upload和Editor不显示处理</li> </el-table-column>
<li>修复在角色管理页修改菜单权限偶尔未选中问题</li> <el-table-column label="任务名称" align="left" prop="workTitle"/>
<li>配置文件新增redis密码属性</li> <el-table-column label="状态" align="center" prop="workStatus" width="100">
<li>设置mybatis全局的配置文件</li> <template slot-scope="scope">
<li>其他细节优化</li> <span v-if="scope.row.workStatus == '0'">派发中</span>
</ol> </template>
</el-collapse-item> </el-table-column>
</el-table>
<el-collapse-item title="v2.0.0 - 2019-12-02"> <pagination
<ol> v-show="orderTotal>=0"
<li>新增代码生成</li> :total="orderTotal"
<li>新增@RepeatSubmit注解,防止重复提交</li> :page.sync="orderParams.pageNum"
<li>新增菜单主目录添加/删除操作</li> :limit.sync="orderParams.pageSize"
<li>日志记录过滤特殊对象,防止转换异常</li> @pagination="getOrderList"
<li>修改代码生成路由脚本错误</li> />
<li>用户上传头像实时同步缓存,无需重新登录</li> </div>
<li>调整切换页签后不重新加载数据</li>
<li>添加jsencrypt实现参数的前端加密</li>
<li>系统退出删除用户缓存记录</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v1.1.0 - 2019-11-11">
<ol>
<li>新增在线用户管理</li>
<li>新增按钮组功能实现(批量删除、导出、清空)</li>
<li>新增查询条件重置按钮</li>
<li>新增Swagger全局Token配置</li>
<li>新增后端参数校验</li>
<li>修复字典管理页面的日期查询异常</li>
<li>修改时间函数命名防止冲突</li>
<li>去除菜单上级校验,默认为顶级</li>
<li>修复用户密码无法修改问题</li>
<li>修复菜单类型为按钮时不显示权限标识</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v1.0.0 - 2019-10-08">
<ol>
<li>若依前后端分离系统正式发布</li>
</ol>
</el-collapse-item>
</el-collapse>
</el-card> </el-card>
</el-col> </div>
<el-col :xs="24" :sm="24" :md="12" :lg="8"> <div class="div-col3">
<el-card class="update-log"> <el-card>
<div slot="header" class="clearfix"> <div slot="header">
<span>捐赠支持</span> <span class="div-header" style="cursor: pointer;" @click="$router.push('/complainDeal')">投诉处置</span>
</div> </div>
<div class="body"> <div class="body">
<img <el-table v-loading="complainLoading" :data="complainList" height="265" style="width: 100%; border: 1px solid #e6ebf5;">
src="https://oscimg.oschina.net/oscnet/up-d6695f82666e5018f715c41cb7ee60d3b73.png" <el-table-column label="序号" type="index" align="center">
alt="donate" <template slot-scope="scope">
width="100%" <span>{{(complainParams.pageNum - 1) * complainParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="投诉事项" align="left" prop="complainMatter"/>
<el-table-column label="投诉时间" align="center" prop="createTime" width="200"/>
<el-table-column label="状态" align="center" prop="complainStatus" width="100">
<template slot-scope="scope">
<span v-if="scope.row.complainStatus == '1'">派发中</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="complainTotal>=0"
:total="complainTotal"
:page.sync="complainParams.pageNum"
:limit.sync="complainParams.pageSize"
@pagination="getComplainDealList"
/> />
<span style="display: inline-block; height: 30px; line-height: 30px"
>你可以请作者喝杯咖啡表示鼓励</span
>
</div> </div>
</el-card> </el-card>
</el-col> </div>
</el-row> </div>
</div> </div>
</template> </template>
<script> <script>
import { homepageStatistic } from "@/api/statistic/statisticAnalysis";
import { listOrder } from "@/api/operationMonitor/order";
import { listComplainDeal } from "@/api/complainDeal/complainDeal";
export default { export default {
name: "index", name: "index",
data() { data() {
return { return {
// 版本号 // 遮罩层
version: "3.5.0", orderLoading: true,
complainLoading: true,
// 统计数据
totalObj: {},
// 列表数据
orderList: [],
complainList: [],
// 总条数
orderTotal: 0,
complainTotal: 0,
// 查询参数
orderParams: {
pageNum: 1,
pageSize: 10,
workStatus: '0',
isDel: '0'
},
complainParams: {
pageNum: 1,
pageSize: 10,
complainStatus: '1',
isDel: '0'
},
}; };
}, },
created(){ created(){
// 默认配置 // 默认配置
console.log(this.$store.state.settings) console.log(this.$store.state.settings)
}, },
mounted() {
this.getStatiData();
this.getOrderList();
this.getComplainDealList();
},
methods: { methods: {
getStatiData() {
homepageStatistic().then(response => {
this.totalObj = response.data;
console.log("this.totalObj",this.totalObj)
});
},
getOrderList() {
this.orderLoading = true;
listOrder(this.orderParams).then(response => {
this.orderList = response.rows;
this.orderTotal = response.total;
this.orderLoading = false;
});
},
getComplainDealList() {
this.complainLoading = true;
listComplainDeal(this.complainParams).then(response => {
this.complainList = response.rows;
this.complainTotal = response.total;
this.complainLoading = false;
});
},
goTarget(href) { goTarget(href) {
window.open(href, "_blank"); window.open(href, "_blank");
}, },
...@@ -582,64 +279,46 @@ export default { ...@@ -582,64 +279,46 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.homeA { .homeA {
blockquote { div {
padding: 10px 20px; color: #515a6e;
margin: 0 0 20px;
font-size: 17.5px;
border-left: 5px solid #eee;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-top: 1px solid #eee;
} }
.col-item { .col-item {
margin-bottom: 20px; margin-bottom: 20px;
} }
ul { padding: 10px;
padding: 0;
margin: 0;
}
font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13px; font-size: 13px;
color: #676a6c;
overflow-x: hidden; overflow-x: hidden;
ul { p {
list-style-type: none; margin: 0px;
color: #515a6e;
} }
h4 { .div-col1 {
margin-top: 0px; width: 25%;
padding: 6px;
float: left;
} }
h2 { .div-col2 {
margin-top: 10px; width: 12.5%;
font-size: 26px; padding: 6px;
font-weight: 100; float: left;
text-align: center;
cursor: pointer;
} }
p { .div-col3 {
margin-top: 10px; width: 50%;
padding: 6px;
b { float: left;
font-weight: 700;
}
} }
.update-log { .div-header:hover {
ol { text-decoration:underline;
display: block;
list-style-type: decimal;
margin-block-start: 1em;
margin-block-end: 1em;
margin-inline-start: 0;
margin-inline-end: 0;
padding-inline-start: 40px;
}
} }
} }
</style> </style>
......
...@@ -96,10 +96,10 @@ ...@@ -96,10 +96,10 @@
<el-table-column label="指派人" align="center" prop="workAssignMan" /> <el-table-column label="指派人" align="center" prop="workAssignMan" />
<el-table-column label="任务状态" align="center" prop="workStatus"> <el-table-column label="任务状态" align="center" prop="workStatus">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.workStatus == 0">派发中</span> <span v-if="scope.row.workStatus == 0" style='color: #ff4949'>派发中</span>
<span v-if="scope.row.workStatus == 1">已接单</span> <span v-if="scope.row.workStatus == 1" style="color: mediumblue">已接单</span>
<span v-if="scope.row.workStatus == 2">已反馈</span> <span v-if="scope.row.workStatus == 2" style='color: #1890ff'>已反馈</span>
<span v-if="scope.row.workStatus == 3">已归档</span> <span v-if="scope.row.workStatus == 3" style='color: #30B46B'>已归档</span>
</template> </template>
</el-table-column>> </el-table-column>>
<!--<el-table-column label="巡检时间" align="center" prop="inspectionDate" width="180"> <!--<el-table-column label="巡检时间" align="center" prop="inspectionDate" width="180">
...@@ -132,8 +132,10 @@ ...@@ -132,8 +132,10 @@
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="workDetail(scope.row)" @click="workDetail(scope.row)"
v-hasPermi="['system:order:edit']"
key="detail"
>详情</el-button> >详情</el-button>
<el-button <el-button v-if="scope.row.workStatus == '0' || scope.row.workStatus == '1'" key="edit"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
...@@ -146,30 +148,39 @@ ...@@ -146,30 +148,39 @@
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['system:order:remove']" v-hasPermi="['system:order:remove']"
key="detele"
>删除</el-button> >删除</el-button>
<el-button v-if=" (('enterprise'== roleType && (scope.row.workAssignManId == '' || scope.row.workAssignManId == null)) || ('zhengfu'== roleType && (scope.row.workAssignEnterproseId == '' || scope.row.workAssignEnterproseId == null))) && scope.row.workStatus == '0'" <el-button v-if=" (('enterprise'== roleType && (scope.row.workAssignManId == '' || scope.row.workAssignManId == null)) || ('zhengfu'== roleType && (scope.row.workAssignEnterproseId == '' || scope.row.workAssignEnterproseId == null))) && scope.row.workStatus == '0'"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="workIssue(scope.row)" @click="workIssue(scope.row)"
v-hasPermi="['system:order:edit']"
key="work"
>任务下发</el-button> >任务下发</el-button>
<el-button v-if=" 'inpector'== roleType && scope.row.workStatus == '0'" <el-button v-if=" 'inpector'== roleType && scope.row.workStatus == '0'"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="takingOrder(scope.row)" @click="takingOrder(scope.row)"
v-hasPermi="['system:order:edit']"
key="recieve"
>接单</el-button> >接单</el-button>
<el-button v-if="'zhengfu'!= roleType && scope.row.workStatus == '1'" <el-button v-if="'zhengfu'!= roleType && (scope.row.workStatus == '0' || scope.row.workStatus == '1')"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="feedbookWork(scope.row)" @click="feedbookWork(scope.row)"
v-hasPermi="['system:order:edit']"
key="feedbook"
>反馈</el-button> >反馈</el-button>
<el-button v-if="'zhengfu'!= roleType && scope.row.workStatus == '2'" <el-button v-if="'zhengfu'!= roleType && scope.row.workStatus == '2'"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="sortWork(scope.row)" @click="sortWork(scope.row)"
v-hasPermi="['system:order:edit']"
key="sort"
>归档</el-button> >归档</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -263,15 +274,18 @@ ...@@ -263,15 +274,18 @@
<el-form-item label="整改方案" prop="rectificationPlan" v-show="form.workType=='3' && isDetail && (form.workStatus =='2' || form.workStatus =='3')"> <el-form-item label="整改方案" prop="rectificationPlan" v-show="form.workType=='3' && isDetail && (form.workStatus =='2' || form.workStatus =='3')">
<el-input v-model="form.rectificationPlan" type="textarea" placeholder="请输入整改方案" :disabled="isDetail"/> <el-input v-model="form.rectificationPlan" type="textarea" placeholder="请输入整改方案" :disabled="isDetail"/>
</el-form-item> </el-form-item>
<el-form-item label="反馈图片" prop="iconUrl" v-show="isDetail && (form.workStatus =='2' || form.workStatus =='3')"> <el-form-item label="反馈图片" prop="iconUrl" v-show="isDetail && (form.workStatus =='2' || form.workStatus =='3') && form.iconUrl !='' && form.iconUrl != null">
<MyFileUpload <!--<MyFileUpload
listType="picture-card" listType="picture-card"
@resFun="getFileInfo" @resFun="getFileInfo"
@remove="listRemove" @remove="listRemove"
:fileArr="fileList" :fileArr="fileList"
:readOnly= "isDetail" :readOnly= "isDetail"
/> />
<el-input v-show="false" disabled v-model="form.iconUrl"></el-input> <el-input v-show="false" disabled v-model="form.iconUrl"></el-input>-->
<div style="width: 20%;">
<el-image :src="form.iconUrl" :preview-src-list="[form.iconUrl]" style="width: auto;height: auto;" :z-index= "3000"></el-image>
</div>
</el-form-item> </el-form-item>
<el-form-item label="反馈信息" prop="rectificationResult" v-show="isDetail && (form.workStatus =='2' || form.workStatus =='3')"> <el-form-item label="反馈信息" prop="rectificationResult" v-show="isDetail && (form.workStatus =='2' || form.workStatus =='3')">
<el-input v-model="form.rectificationResult" type="textarea" placeholder="请输入整改结果" :disabled="isDetail"/> <el-input v-model="form.rectificationResult" type="textarea" placeholder="请输入整改结果" :disabled="isDetail"/>
...@@ -377,8 +391,8 @@ ...@@ -377,8 +391,8 @@
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="整改方案" prop="rectificationPlan" v-show="feedBookForm.workType=='3'"> <el-form-item label="整改方案" prop="rectificationPlan" v-if="feedBookForm.workType=='3'">
<el-input v-model="form.rectificationPlan" type="textarea" placeholder="请输入整改方案" /> <el-input v-model="feedBookForm.rectificationPlan" type="textarea" placeholder="请输入整改方案" />
</el-form-item> </el-form-item>
<el-form-item label="反馈图片" prop="iconUrl"> <el-form-item label="反馈图片" prop="iconUrl">
...@@ -387,13 +401,12 @@ ...@@ -387,13 +401,12 @@
@resFun="getFileInfo" @resFun="getFileInfo"
@remove="listRemove" @remove="listRemove"
:fileArr="fileList" :fileArr="fileList"
:readOnly= "isDetail"
/> />
<el-input v-show="false" disabled v-model="form.iconUrl"></el-input> <el-input v-show="false" disabled v-model="feedBookForm.iconUrl"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="反馈信息" prop="rectificationResult"> <el-form-item label="反馈信息" prop="rectificationResult">
<el-input v-model="form.rectificationResult" type="textarea" placeholder="反馈信息" /> <el-input v-model="feedBookForm.rectificationResult" type="textarea" placeholder="反馈信息" />
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -427,7 +440,6 @@ export default { ...@@ -427,7 +440,6 @@ export default {
// 导出遮罩层 // 导出遮罩层
exportLoading: false, exportLoading: false,
detailDialogVisible: false, detailDialogVisible: false,
workForm: {},
// 选中数组 // 选中数组
ids: [], ids: [],
// 非单个禁用 // 非单个禁用
...@@ -510,16 +522,18 @@ export default { ...@@ -510,16 +522,18 @@ export default {
//反馈校验 //反馈校验
feedBookRules: { feedBookRules: {
iconUrl: [ iconUrl: [
{ required: true, message: "指派单位", trigger: "blur" } { required: true, message: "反馈图片", trigger: "change" }
], ],
rectificationResult: [ rectificationResult:[
{ required: true, message: "指派人", trigger: "blur" } { required: true, message: "反馈信息", trigger: "blur" }
] ]
}, },
roleType: "zhengfu", roleType: "zhengfu",
workForm:{}, workForm:{},
workOpen: false, workOpen: false,
feedBookForm: {}, feedBookForm: {
iconUrl: ""
},
feedBookOpen: false feedBookOpen: false
}; };
}, },
...@@ -654,7 +668,7 @@ export default { ...@@ -654,7 +668,7 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const workIds = row.workId || this.ids; const workIds = row.workId || this.ids;
this.$confirm('是否确认删除燃气任务编号为"' + workIds + '"的数据项?', "警告", { this.$confirm('是否确认删除燃气任务名称为"' + row.workTitle + '"的数据项?', "警告", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning"
...@@ -681,7 +695,8 @@ export default { ...@@ -681,7 +695,8 @@ export default {
}).catch(() => {}); }).catch(() => {});
}, },
getFileInfo(res){ getFileInfo(res){
this.form.iconUrl = res.url; this.feedBookForm.iconUrl = res.url;
//this.$set(this.feedBookForm,'iconUrl',res.url)
}, },
listRemove(e) { listRemove(e) {
this.form.iconUrl = ""; this.form.iconUrl = "";
...@@ -739,13 +754,14 @@ export default { ...@@ -739,13 +754,14 @@ export default {
},*/ },*/
//详情 //详情
workDetail(row){ workDetail(row){
this.isDetail=true; getOrder(row.workId).then(response => {
this.open = true; this.isDetail=true;
this.title = "燃气任务详情"; this.open = true;
this.title = "燃气任务详情";
this.form = row; this.form = response.data;
this.getEnterpriseLists(); this.getEnterpriseLists();
this.getInspectionUserList(row.workAssignEnterproseId); this.getInspectionUserList(response.data.workAssignEnterproseId);
});
}, },
//任务下发 //任务下发
workIssue(row){ workIssue(row){
...@@ -763,7 +779,7 @@ export default { ...@@ -763,7 +779,7 @@ export default {
this.workForm.workAssignMan = row.workAssignMan; this.workForm.workAssignMan = row.workAssignMan;
}*/ }*/
//this.workForm = row; //this.workForm = row;
this.workForm.workStatus = '1'; //this.workForm.workStatus = '1';
this.workOpen = true; this.workOpen = true;
this.getEnterpriseLists(); this.getEnterpriseLists();
this.getInspectionUserList(row.workAssignEnterproseId); this.getInspectionUserList(row.workAssignEnterproseId);
...@@ -790,18 +806,19 @@ export default { ...@@ -790,18 +806,19 @@ export default {
feedbookWork(row){ feedbookWork(row){
this.title = "反馈信息"; this.title = "反馈信息";
this.feedBookOpen = true; this.feedBookOpen = true;
//this.feedBookForm = {};
this.feedBookForm.workId = row.workId; this.feedBookForm.workId = row.workId;
this.feedBookForm.workTitle = row.workTitle; this.feedBookForm.workTitle = row.workTitle;
this.feedBookForm.workType = row.workType; this.feedBookForm.workType = row.workType;
if(row.iconUrl){ /*if(row.iconUrl){
this.feedBookForm.iconUrl = row.iconUrl; this.feedBookForm.iconUrl = row.iconUrl;
} }*/
if(row.rectificationPlan){ /*if(row.rectificationPlan){
this.feedBookForm.rectificationPlan = row.rectificationPlan; this.feedBookForm.rectificationPlan = row.rectificationPlan;
} }
if(row.rectificationResult){ if(row.rectificationResult){
this.feedBookForm.rectificationResult = row.rectificationResult; this.feedBookForm.rectificationResult = row.rectificationResult;
} }*/
//this.feedBookForm = row; //this.feedBookForm = row;
this.getEnterpriseLists(); this.getEnterpriseLists();
}, },
...@@ -848,11 +865,19 @@ export default { ...@@ -848,11 +865,19 @@ export default {
if (valid) { if (valid) {
if (this.feedBookForm.workId != null) { if (this.feedBookForm.workId != null) {
this.feedBookForm.workStatus = '2'; this.feedBookForm.workStatus = '2';
/*const param ={...this.feedBookForm};
param.workStatus = '2';*/
updateOrder(this.feedBookForm).then(response => { updateOrder(this.feedBookForm).then(response => {
this.msgSuccess("反馈成功"); if(response.code = 200){
this.feedBookOpen = false; this.msgSuccess("反馈成功");
this.getList(); this.feedBookOpen = false;
}); this.getList();
}
/*if(!this.feedBookOpen){
this.getList();
}*/
//this.getList();
});
} }
} }
}); });
......
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
/> />
<!-- 添加或修改应急预案对话框 --> <!-- 添加或修改应急预案对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body> <el-dialog :title="title" :visible.sync="open" @closed="dialogClose" @open="dialogOpen" width="1200px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<div class="division"> <div class="division">
<div style="width: 40%;"> <div style="width: 40%;">
...@@ -199,7 +199,7 @@ ...@@ -199,7 +199,7 @@
<el-form-item label="备注" prop="remarks"> <el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入备注" :disabled="readonly" /> <el-input v-model="form.remarks" placeholder="请输入备注" :disabled="readonly" />
</el-form-item> </el-form-item>
<el-form-item label="预案附件" id="fujian" prop="iconUrl"> <el-form-item label="预案附件" v-if="!readonly" prop="iconUrl">
<FileUpload <FileUpload
listType="picture" listType="picture"
@resFun="getFileInfo" @resFun="getFileInfo"
...@@ -212,7 +212,7 @@ ...@@ -212,7 +212,7 @@
<!--<img width="100%" :src="dialogImageUrl" alt="">--> <!--<img width="100%" :src="dialogImageUrl" alt="">-->
<!--</el-dialog>--> <!--</el-dialog>-->
</el-form-item> </el-form-item>
<el-form-item label="预案附件" id="fujianxia" prop="iconUrl" style="display: none"> <el-form-item label="预案附件" v-if="readonly" prop="iconUrl" >
<span <span
class="dbtn" class="dbtn"
@click="checkFile(form.iconUrl)" @click="checkFile(form.iconUrl)"
...@@ -226,15 +226,10 @@ ...@@ -226,15 +226,10 @@
</div> </div>
<div style="width: 58%;margin-left: 2%"> <div style="width: 58%;margin-left: 2%">
<div class="titletitle">方案内容</div> <div class="titletitle">方案内容</div>
<!--<el-form-item label="应急方案" prop="planContents">--> <!--<editor v-model="form.planContents" style="height: 300px;" readonly="false"/>-->
<!--<el-input v-model="form.planContents" placeholder="" />--> <editor v-if="isOpen" id="editor" v-model="form.planContents" :min-height="300" :readOnly="readonly"/>
<editor v-model="form.planContents" style="height: 300px;" :readOnly="readonly"/>
<!--<textarea id="editorA" v-model="form.planContents" height="100%"></textarea>-->
<!--</el-form-item>-->
</div> </div>
</div> </div>
<!--<el-form-item label="所属企业名称" prop="beyondEnterpriseName">--> <!--<el-form-item label="所属企业名称" prop="beyondEnterpriseName">-->
<!--<el-input v-model="form.beyondEnterpriseName" placeholder="请输入所属企业名称" />--> <!--<el-input v-model="form.beyondEnterpriseName" placeholder="请输入所属企业名称" />-->
<!--</el-form-item>--> <!--</el-form-item>-->
...@@ -244,7 +239,7 @@ ...@@ -244,7 +239,7 @@
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button id="yesbutton" type="primary" @click="submitForm"> </el-button> <el-button type="primary" v-if="!readonly" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
...@@ -265,7 +260,7 @@ export default { ...@@ -265,7 +260,7 @@ export default {
return { return {
// 遮罩层 // 遮罩层
loading: true, loading: true,
readonly: true, readonly: false,
// 导出遮罩层 // 导出遮罩层
exportLoading: false, exportLoading: false,
// 选中数组 // 选中数组
...@@ -287,6 +282,7 @@ export default { ...@@ -287,6 +282,7 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
isOpen:false,
dialogImageUrl: '', dialogImageUrl: '',
dialogVisible: false, dialogVisible: false,
fileList:[], fileList:[],
...@@ -301,7 +297,8 @@ export default { ...@@ -301,7 +297,8 @@ export default {
beyondEnterpriseId: null, beyondEnterpriseId: null,
}, },
// 表单参数 // 表单参数
form: {}, form: {
},
// 表单校验 // 表单校验
rules: { rules: {
planTitle: [ planTitle: [
...@@ -345,6 +342,12 @@ export default { ...@@ -345,6 +342,12 @@ export default {
this.enterpriseList = response.data; this.enterpriseList = response.data;
}); });
}, },
dialogClose(){
this.isOpen=false;
},
dialogOpen(){
this.isOpen=true;
},
qiyechang(value){ qiyechang(value){
let obj = {}; let obj = {};
obj = this.enterpriseList.find((item)=>{ obj = this.enterpriseList.find((item)=>{
...@@ -433,33 +436,23 @@ export default { ...@@ -433,33 +436,23 @@ export default {
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.open = true;
this.readonly=false; this.readonly=false;
this.open = true;
this.fileList = []; this.fileList = [];
this.reset(); this.reset();
this.title = "添加应急预案"; this.title = "添加应急预案";
document.getElementById("fujian").style.display=""
document.getElementById("fujianxia").style.display="none"
document.getElementById("yesbutton").style.display="" ;
document.getElementsByClassName("el-upload--picture-card")[0].style.display="";
}, },
handleDtail(row){ handleDtail(row){
this.readonly=true; this.readonly=true;
this.open = true;
this.fileList = []; this.fileList = [];
this.reset(); this.reset();
this.open = true;
const planId = row.planId || this.ids const planId = row.planId || this.ids
getPlanInfo(planId).then(response => { getPlanInfo(planId).then(response => {
this.form = response.data; this.form = response.data;
this.title = "应急预案详情"; this.title = "应急预案详情";
this.fileList = [{name: '附件', url:uploadfile}]; this.fileList = [{name: '附件', url:uploadfile}];
this.fileurl = row.iconUrl; this.fileurl = row.iconUrl;
document.getElementById("yesbutton").style.display="none" ;
document.getElementById("fujian").style.display="none"
document.getElementById("fujianxia").style.display=""
}); });
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
...@@ -475,9 +468,6 @@ export default { ...@@ -475,9 +468,6 @@ export default {
if(this.form.iconUrl!=null||this.form.iconUrl==""){ if(this.form.iconUrl!=null||this.form.iconUrl==""){
this.fileList = [{name: 'file', url:uploadfile}]; this.fileList = [{name: 'file', url:uploadfile}];
} }
document.getElementById("yesbutton").style.display="" ;
document.getElementById("fujian").style.display=""
document.getElementById("fujianxia").style.display="none"
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment