Commit 7713e58a authored by 耿迪迪's avatar 耿迪迪
parents 613d0c6e fff2f8c5
package com.zehong.web.controller.complainDeal; package com.zehong.web.controller.complainDeal;
import java.util.List; import java.util.List;
import com.zehong.common.core.domain.model.LoginUser;
import com.zehong.framework.web.service.SysLoginService;
import com.zehong.framework.web.service.TokenService;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -20,6 +24,8 @@ import com.zehong.system.service.ITComplainDealService; ...@@ -20,6 +24,8 @@ import com.zehong.system.service.ITComplainDealService;
import com.zehong.common.utils.poi.ExcelUtil; import com.zehong.common.utils.poi.ExcelUtil;
import com.zehong.common.core.page.TableDataInfo; import com.zehong.common.core.page.TableDataInfo;
import javax.servlet.http.HttpServletRequest;
/** /**
* 投诉处置Controller * 投诉处置Controller
* *
...@@ -32,14 +38,20 @@ public class TComplainDealController extends BaseController ...@@ -32,14 +38,20 @@ public class TComplainDealController extends BaseController
{ {
@Autowired @Autowired
private ITComplainDealService tComplainDealService; private ITComplainDealService tComplainDealService;
@Autowired
private TokenService tokenService;
/** /**
* 查询投诉处置列表 * 查询投诉处置列表
*/ */
@PreAuthorize("@ss.hasPermi('complainDeal:complainDeal:list')") @PreAuthorize("@ss.hasPermi('complainDeal:complainDeal:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(TComplainDeal tComplainDeal) public TableDataInfo list(TComplainDeal tComplainDeal, HttpServletRequest request)
{ {
LoginUser loginUser = tokenService.getLoginUser(request);
if(loginUser.getUser().getDeptId()!=-2){
tComplainDeal.setComplainAssignEnterproseId(loginUser.getUser().getDeptId());
}
startPage(); startPage();
List<TComplainDeal> list = tComplainDealService.selectTComplainDealList(tComplainDeal); List<TComplainDeal> list = tComplainDealService.selectTComplainDealList(tComplainDeal);
return getDataTable(list); return getDataTable(list);
...@@ -100,4 +112,12 @@ public class TComplainDealController extends BaseController ...@@ -100,4 +112,12 @@ public class TComplainDealController extends BaseController
{ {
return toAjax(tComplainDealService.deleteTComplainDealByIds(complainDealIds)); return toAjax(tComplainDealService.deleteTComplainDealByIds(complainDealIds));
} }
@GetMapping("/getuserList/{enterproseId}")
public AjaxResult selectUserByenterproseId(@PathVariable("enterproseId") String enterproseId)
{
return AjaxResult.success(tComplainDealService.selectUserByenterproseId(enterproseId));
}
} }
package com.zehong.web.controller.statistic;
import com.zehong.common.config.GassafetyProgressConfig;
import com.zehong.common.constant.Constants;
import com.zehong.common.core.domain.AjaxResult;
import com.zehong.common.utils.StringUtils;
import com.zehong.common.utils.file.FileUploadUtils;
import com.zehong.common.utils.file.FileUtils;
import com.zehong.framework.config.ServerConfig;
import com.zehong.system.domain.THiddenDangerStandingBook;
import com.zehong.system.domain.TTroubleStandingBook;
import com.zehong.system.domain.form.THiddenDangerStandingBookForm;
import com.zehong.system.domain.form.TTroubleStandingBookForm;
import com.zehong.system.domain.vo.THiddenDangerStandingBookVo;
import com.zehong.system.domain.vo.TTroubleStandingBookVo;
import com.zehong.system.service.ITHiddenDangerStandingBookService;
import com.zehong.system.service.ITTroubleStandingBookService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 统计分析
*
* @author zehong
*/
@RestController
@RequestMapping("/statistic")
public class StatisticController
{
private static final Logger log = LoggerFactory.getLogger(StatisticController.class);
@Autowired
private ITTroubleStandingBookService tTroubleStandingBookService;
@Autowired
private ITHiddenDangerStandingBookService tHiddenDangerStandingBookService;
/**
* 燃气事故台账统计
*/
@GetMapping("/troubleStatistic")
public AjaxResult troubleStatistic()
{
return AjaxResult.success(tTroubleStandingBookService.selectTTroubleStandingBookStatistic());
}
/**
* 隐患整治台账统计
*/
@GetMapping("/hiddenStatistic")
public AjaxResult hiddenStatistic()
{
return AjaxResult.success(tHiddenDangerStandingBookService.selectTHiddenDangerStandingBookStatistic());
}
}
...@@ -47,12 +47,12 @@ public class TComplainDeal extends BaseEntity ...@@ -47,12 +47,12 @@ public class TComplainDeal extends BaseEntity
private Long complainAssignEnterproseId; private Long complainAssignEnterproseId;
/** 指派人 */ /** 指派人 */
@Excel(name = "指派人") @Excel(name = "指派人id")
private String complainAssignManId; private Long complainAssignManId;
/** 指派人id */ /** 指派人id */
@Excel(name = "指派人id") @Excel(name = "指派人")
private Long complainAssignMan; private String complainAssignMan;
/** 任务状态:1.派发中 2.反馈 3.归档 */ /** 任务状态:1.派发中 2.反馈 3.归档 */
@Excel(name = "任务状态:1.派发中 2.反馈 3.归档") @Excel(name = "任务状态:1.派发中 2.反馈 3.归档")
...@@ -138,21 +138,21 @@ public class TComplainDeal extends BaseEntity ...@@ -138,21 +138,21 @@ public class TComplainDeal extends BaseEntity
{ {
return complainAssignEnterproseId; return complainAssignEnterproseId;
} }
public void setComplainAssignManId(String complainAssignManId) public void setComplainAssignManId(Long complainAssignManId)
{ {
this.complainAssignManId = complainAssignManId; this.complainAssignManId = complainAssignManId;
} }
public String getComplainAssignManId() public Long getComplainAssignManId()
{ {
return complainAssignManId; return complainAssignManId;
} }
public void setComplainAssignMan(Long complainAssignMan) public void setComplainAssignMan(String complainAssignMan)
{ {
this.complainAssignMan = complainAssignMan; this.complainAssignMan = complainAssignMan;
} }
public Long getComplainAssignMan() public String getComplainAssignMan()
{ {
return complainAssignMan; return complainAssignMan;
} }
......
package com.zehong.system.domain.vo;
import lombok.Data;
@Data
public class THiddenDangerStandingBookVo
{
// 隐患总数
private int hiddenTotal;
// 一级隐患总数
private int oneLevelTotal;
// 二级隐患总数
private int twoLevelTotal;
// 三级隐患总数
private int threeLevelTotal;
// 已完成总数
private int completedTotal;
// 未完成总数
private int incompleteTotal;
}
package com.zehong.system.domain.vo;
import lombok.Data;
@Data
public class TTroubleStandingBookVo
{
// 事故总数
private int troubleTotal;
// 受伤总数
private int injuryTotal;
// 死亡总数
private int deathTotal;
// 事故处理办结率
private String completionRate;
}
package com.zehong.system.mapper; package com.zehong.system.mapper;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects;
import com.zehong.system.domain.TComplainDeal; import com.zehong.system.domain.TComplainDeal;
import org.apache.ibatis.annotations.Param;
/** /**
* 投诉处置Mapper接口 * 投诉处置Mapper接口
...@@ -58,4 +62,11 @@ public interface TComplainDealMapper ...@@ -58,4 +62,11 @@ public interface TComplainDealMapper
* @return 结果 * @return 结果
*/ */
public int deleteTComplainDealByIds(Long[] complainDealIds); public int deleteTComplainDealByIds(Long[] complainDealIds);
/**
* 查询公司下用户
* @param enterproseId
* @return
*/
public List<Map<String,Object>> selectUserByenterproseId(@Param("enterproseId")String enterproseId);
} }
...@@ -3,6 +3,7 @@ package com.zehong.system.mapper; ...@@ -3,6 +3,7 @@ package com.zehong.system.mapper;
import java.util.List; import java.util.List;
import com.zehong.system.domain.THiddenDangerStandingBook; import com.zehong.system.domain.THiddenDangerStandingBook;
import com.zehong.system.domain.form.THiddenDangerStandingBookForm; import com.zehong.system.domain.form.THiddenDangerStandingBookForm;
import com.zehong.system.domain.vo.THiddenDangerStandingBookVo;
/** /**
* 隐患整治台账Mapper接口 * 隐患整治台账Mapper接口
...@@ -28,6 +29,13 @@ public interface THiddenDangerStandingBookMapper ...@@ -28,6 +29,13 @@ public interface THiddenDangerStandingBookMapper
*/ */
public List<THiddenDangerStandingBook> selectTHiddenDangerStandingBookList(THiddenDangerStandingBookForm tHiddenDangerStandingBook); public List<THiddenDangerStandingBook> selectTHiddenDangerStandingBookList(THiddenDangerStandingBookForm tHiddenDangerStandingBook);
/**
* 隐患台账统计
*
* @return 隐患整治台账集合
*/
public THiddenDangerStandingBookVo selectTHiddenDangerStandingBookStatistic();
/** /**
* 新增隐患整治台账 * 新增隐患整治台账
* *
......
...@@ -3,6 +3,7 @@ package com.zehong.system.mapper; ...@@ -3,6 +3,7 @@ package com.zehong.system.mapper;
import java.util.List; import java.util.List;
import com.zehong.system.domain.TTroubleStandingBook; import com.zehong.system.domain.TTroubleStandingBook;
import com.zehong.system.domain.form.TTroubleStandingBookForm; import com.zehong.system.domain.form.TTroubleStandingBookForm;
import com.zehong.system.domain.vo.TTroubleStandingBookVo;
/** /**
* 事故台账Mapper接口 * 事故台账Mapper接口
...@@ -28,6 +29,13 @@ public interface TTroubleStandingBookMapper ...@@ -28,6 +29,13 @@ public interface TTroubleStandingBookMapper
*/ */
public List<TTroubleStandingBook> selectTTroubleStandingBookList(TTroubleStandingBookForm tTroubleStandingBook); public List<TTroubleStandingBook> selectTTroubleStandingBookList(TTroubleStandingBookForm tTroubleStandingBook);
/**
* 事故台账统计
*
* @return 事故台账统计
*/
public TTroubleStandingBookVo selectTTroubleStandingBookStatistic();
/** /**
* 新增事故台账 * 新增事故台账
* *
......
package com.zehong.system.service; package com.zehong.system.service;
import java.util.List; import java.util.List;
import java.util.Map;
import com.zehong.system.domain.TComplainDeal; import com.zehong.system.domain.TComplainDeal;
/** /**
...@@ -58,4 +60,6 @@ public interface ITComplainDealService ...@@ -58,4 +60,6 @@ public interface ITComplainDealService
* @return 结果 * @return 结果
*/ */
public int deleteTComplainDealById(Long complainDealId); public int deleteTComplainDealById(Long complainDealId);
public List<Map<String,Object>> selectUserByenterproseId(String enterproseId);
} }
...@@ -3,6 +3,7 @@ package com.zehong.system.service; ...@@ -3,6 +3,7 @@ package com.zehong.system.service;
import java.util.List; import java.util.List;
import com.zehong.system.domain.THiddenDangerStandingBook; import com.zehong.system.domain.THiddenDangerStandingBook;
import com.zehong.system.domain.form.THiddenDangerStandingBookForm; import com.zehong.system.domain.form.THiddenDangerStandingBookForm;
import com.zehong.system.domain.vo.THiddenDangerStandingBookVo;
/** /**
* 隐患整治台账Service接口 * 隐患整治台账Service接口
...@@ -28,6 +29,13 @@ public interface ITHiddenDangerStandingBookService ...@@ -28,6 +29,13 @@ public interface ITHiddenDangerStandingBookService
*/ */
public List<THiddenDangerStandingBook> selectTHiddenDangerStandingBookList(THiddenDangerStandingBookForm tHiddenDangerStandingBook); public List<THiddenDangerStandingBook> selectTHiddenDangerStandingBookList(THiddenDangerStandingBookForm tHiddenDangerStandingBook);
/**
* 隐患台账统计
*
* @return 隐患整治台账集合
*/
public THiddenDangerStandingBookVo selectTHiddenDangerStandingBookStatistic();
/** /**
* 新增隐患整治台账 * 新增隐患整治台账
* *
......
...@@ -3,6 +3,7 @@ package com.zehong.system.service; ...@@ -3,6 +3,7 @@ package com.zehong.system.service;
import java.util.List; import java.util.List;
import com.zehong.system.domain.TTroubleStandingBook; import com.zehong.system.domain.TTroubleStandingBook;
import com.zehong.system.domain.form.TTroubleStandingBookForm; import com.zehong.system.domain.form.TTroubleStandingBookForm;
import com.zehong.system.domain.vo.TTroubleStandingBookVo;
/** /**
* 事故台账Service接口 * 事故台账Service接口
...@@ -28,6 +29,13 @@ public interface ITTroubleStandingBookService ...@@ -28,6 +29,13 @@ public interface ITTroubleStandingBookService
*/ */
public List<TTroubleStandingBook> selectTTroubleStandingBookList(TTroubleStandingBookForm tTroubleStandingBook); public List<TTroubleStandingBook> selectTTroubleStandingBookList(TTroubleStandingBookForm tTroubleStandingBook);
/**
* 事故台账统计
*
* @return 事故台账统计
*/
public TTroubleStandingBookVo selectTTroubleStandingBookStatistic();
/** /**
* 新增事故台账 * 新增事故台账
* *
......
package com.zehong.system.service.impl; package com.zehong.system.service.impl;
import java.util.List; import java.util.List;
import java.util.Map;
import com.zehong.common.utils.DateUtils; import com.zehong.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -93,4 +95,8 @@ public class TComplainDealServiceImpl implements ITComplainDealService ...@@ -93,4 +95,8 @@ public class TComplainDealServiceImpl implements ITComplainDealService
{ {
return tComplainDealMapper.deleteTComplainDealById(complainDealId); return tComplainDealMapper.deleteTComplainDealById(complainDealId);
} }
@Override
public List<Map<String,Object>> selectUserByenterproseId(String enterproseId){
return tComplainDealMapper.selectUserByenterproseId(enterproseId);
}
} }
...@@ -3,6 +3,7 @@ package com.zehong.system.service.impl; ...@@ -3,6 +3,7 @@ package com.zehong.system.service.impl;
import java.util.List; import java.util.List;
import com.zehong.common.utils.DateUtils; import com.zehong.common.utils.DateUtils;
import com.zehong.system.domain.form.THiddenDangerStandingBookForm; import com.zehong.system.domain.form.THiddenDangerStandingBookForm;
import com.zehong.system.domain.vo.THiddenDangerStandingBookVo;
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.THiddenDangerStandingBookMapper; import com.zehong.system.mapper.THiddenDangerStandingBookMapper;
...@@ -45,6 +46,16 @@ public class THiddenDangerStandingBookServiceImpl implements ITHiddenDangerStand ...@@ -45,6 +46,16 @@ public class THiddenDangerStandingBookServiceImpl implements ITHiddenDangerStand
return tHiddenDangerStandingBookMapper.selectTHiddenDangerStandingBookList(tHiddenDangerStandingBook); return tHiddenDangerStandingBookMapper.selectTHiddenDangerStandingBookList(tHiddenDangerStandingBook);
} }
/**
* 隐患台账统计
*
* @return 隐患整治台账集合
*/
public THiddenDangerStandingBookVo selectTHiddenDangerStandingBookStatistic()
{
return tHiddenDangerStandingBookMapper.selectTHiddenDangerStandingBookStatistic();
}
/** /**
* 新增隐患整治台账 * 新增隐患整治台账
* *
......
...@@ -3,6 +3,7 @@ package com.zehong.system.service.impl; ...@@ -3,6 +3,7 @@ package com.zehong.system.service.impl;
import java.util.List; import java.util.List;
import com.zehong.common.utils.DateUtils; import com.zehong.common.utils.DateUtils;
import com.zehong.system.domain.form.TTroubleStandingBookForm; import com.zehong.system.domain.form.TTroubleStandingBookForm;
import com.zehong.system.domain.vo.TTroubleStandingBookVo;
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.TTroubleStandingBookMapper; import com.zehong.system.mapper.TTroubleStandingBookMapper;
...@@ -45,6 +46,17 @@ public class TTroubleStandingBookServiceImpl implements ITTroubleStandingBookSer ...@@ -45,6 +46,17 @@ public class TTroubleStandingBookServiceImpl implements ITTroubleStandingBookSer
return tTroubleStandingBookMapper.selectTTroubleStandingBookList(tTroubleStandingBook); return tTroubleStandingBookMapper.selectTTroubleStandingBookList(tTroubleStandingBook);
} }
/**
* 事故台账统计
*
* @return 事故台账统计
*/
@Override
public TTroubleStandingBookVo selectTTroubleStandingBookStatistic()
{
return tTroubleStandingBookMapper.selectTTroubleStandingBookStatistic();
}
/** /**
* 新增事故台账 * 新增事故台账
* *
......
...@@ -124,4 +124,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -124,4 +124,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{complainDealId} #{complainDealId}
</foreach> </foreach>
</delete> </delete>
<select id="selectUserByenterproseId" resultType="java.util.HashMap">
SELECT user_id as id ,nick_name as nickName FROM sys_user
WHERE del_flag!=2 and dept_id = #{enterproseId}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -38,6 +38,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -38,6 +38,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="hiddenFindDateStart != null "> and hidden_find_date &gt;= #{hiddenFindDateStart}</if> <if test="hiddenFindDateStart != null "> and hidden_find_date &gt;= #{hiddenFindDateStart}</if>
<if test="hiddenFindDateEnd != null "> and hidden_find_date &lt;= #{hiddenFindDateEnd}</if> <if test="hiddenFindDateEnd != null "> and hidden_find_date &lt;= #{hiddenFindDateEnd}</if>
</where> </where>
order by create_time desc
</select>
<select id="selectTHiddenDangerStandingBookStatistic" resultType="THiddenDangerStandingBookVo">
select COUNT(t.hidden_id) AS hiddenTotal,
SUM(CASE t.hidden_type WHEN '1' THEN 1 ELSE 0 END) AS oneLevelTotal,
SUM(CASE t.hidden_type WHEN '2' THEN 1 ELSE 0 END) AS twoLevelTotal,
SUM(CASE t.hidden_type WHEN '3' THEN 1 ELSE 0 END) AS threeLevelTotal,
SUM(CASE t.remediation WHEN '1' THEN 1 ELSE 0 END) AS completedTotal,
SUM(CASE t.remediation WHEN '2' THEN 1 ELSE 0 END) AS incompleteTotal
from (select * from t_hidden_danger_standing_book where is_del = '0') t
</select> </select>
<select id="selectTHiddenDangerStandingBookById" parameterType="Long" resultMap="THiddenDangerStandingBookResult"> <select id="selectTHiddenDangerStandingBookById" parameterType="Long" resultMap="THiddenDangerStandingBookResult">
......
...@@ -33,6 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -33,6 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="installTimeStart != null "> and install_time &gt;= #{installTimeStart}</if> <if test="installTimeStart != null "> and install_time &gt;= #{installTimeStart}</if>
<if test="installTimeEnd != null "> and install_time &lt;= #{installTimeEnd}</if> <if test="installTimeEnd != null "> and install_time &lt;= #{installTimeEnd}</if>
</where> </where>
order by create_time desc
</select> </select>
<select id="selectTSafeEquipmentStandingBookById" parameterType="Long" resultMap="TSafeEquipmentStandingBookResult"> <select id="selectTSafeEquipmentStandingBookById" parameterType="Long" resultMap="TSafeEquipmentStandingBookResult">
......
...@@ -44,6 +44,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -44,6 +44,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="dealDateStart != null "> and deal_date &gt;= #{dealDateStart}</if> <if test="dealDateStart != null "> and deal_date &gt;= #{dealDateStart}</if>
<if test="dealDateEnd != null "> and deal_date &lt;= #{dealDateEnd}</if> <if test="dealDateEnd != null "> and deal_date &lt;= #{dealDateEnd}</if>
</where> </where>
order by create_time desc
</select>
<select id="selectTTroubleStandingBookStatistic" resultType="TTroubleStandingBookVo">
select COUNT(t.trouble_id) AS troubleTotal,
SUM(t.injury_num) AS injutyTotal,
SUM(t.death_num) AS deathTotal,
ROUND(SUM(CASE t.is_deal WHEN '1' THEN 1 ELSE 0 END)/COUNT(t.trouble_id)*100, 1) AS completionRate
from (select * from t_trouble_standing_book where is_del = '0') t
</select> </select>
<select id="selectTTroubleStandingBookById" parameterType="Long" resultMap="TTroubleStandingBookResult"> <select id="selectTTroubleStandingBookById" parameterType="Long" resultMap="TTroubleStandingBookResult">
......
...@@ -51,3 +51,10 @@ export function exportComplainDeal(query) { ...@@ -51,3 +51,10 @@ export function exportComplainDeal(query) {
params: query params: query
}) })
} }
export function getUserList(cId) {
return request({
url: '/complainDeal/getuserList/' + cId,
method: 'get'
})
}
import request from '@/utils/request'
// 燃气事故台账统计
export function troubleStatistic(query) {
return request({
url: '/statistic/troubleStatistic',
method: 'get',
params: query
})
}
// 隐患整治台账统计
export function hiddenStatistic(query) {
return request({
url: '/statistic/hiddenStatistic',
method: 'get',
params: query
})
}
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="投诉人姓名" prop="complainName"> <el-form-item label="投诉人" prop="complainName">
<el-input <el-input
v-model="queryParams.complainName" v-model="queryParams.complainName"
placeholder="请输入投诉人姓名" placeholder="请输入投诉人姓名"
...@@ -10,101 +10,40 @@ ...@@ -10,101 +10,40 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="投诉人电话" prop="complainPhone">
<el-input <el-form-item label="指派单位" prop="complainAssignEnterproseId">
v-model="queryParams.complainPhone" <el-select v-model="queryParams.complainAssignEnterproseId" placeholder="请选择预案等级" clearable size="small">
placeholder="请输入投诉人电话" <el-option
clearable v-for = "dict in enterpriseList"
size="small" :key = "dict.enterpriseId"
@keyup.enter.native="handleQuery" :label = "dict.enterpriseName"
/> :value = "dict.enterpriseId"
</el-form-item>
<el-form-item label="投诉事项" prop="complainMatter">
<el-input
v-model="queryParams.complainMatter"
placeholder="请输入投诉事项"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="转办记录" prop="transferRecord">
<el-input
v-model="queryParams.transferRecord"
placeholder="请输入转办记录"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="办理情况" prop="dealCondition">
<el-input
v-model="queryParams.dealCondition"
placeholder="请输入办理情况"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="指派单位名称" prop="complainAssignEnterproseName">
<el-input
v-model="queryParams.complainAssignEnterproseName"
placeholder="请输入指派单位名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="指派单位id" prop="complainAssignEnterproseId">
<el-input
v-model="queryParams.complainAssignEnterproseId"
placeholder="请输入指派单位id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="指派人" prop="complainAssignManId">
<el-input
v-model="queryParams.complainAssignManId"
placeholder="请输入指派人"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="指派人id" prop="complainAssignMan">
<el-input
v-model="queryParams.complainAssignMan"
placeholder="请输入指派人id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/> />
</el-form-item>
<el-form-item label="任务状态:1.派发中 2.反馈 3.归档" prop="complainStatus">
<el-select v-model="queryParams.complainStatus" placeholder="请选择任务状态:1.派发中 2.反馈 3.归档" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否删除(0正常,1删除)" prop="isDel">
<el-input <!--<el-form-item label="指派人" prop="complainAssignManId">-->
v-model="queryParams.isDel" <!--<el-select v-model="queryParams.complainAssignManId" placeholder="请选择预案等级" clearable size="small">-->
placeholder="请输入是否删除(0正常,1删除)" <!--<el-option-->
clearable <!--v-for = "dict in userList"-->
size="small" <!--:key = "dict.id"-->
@keyup.enter.native="handleQuery" <!--:label = "dict.nickName"-->
/> <!--:value = "dict.id"-->
</el-form-item> <!--/>-->
<el-form-item label="备注" prop="remarks"> <!--</el-select>-->
<el-input <!--</el-form-item>-->
v-model="queryParams.remarks" <el-form-item label="任务状态" prop="complainStatus">
placeholder="请输入备注" <el-select v-model="queryParams.complainStatus" placeholder="请选择任务状态" clearable size="small">
clearable <el-option
size="small" v-for="dict in taskStateOptions"
@keyup.enter.native="handleQuery" :key="dict.dictValue"
/> :label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <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-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
...@@ -122,28 +61,7 @@ ...@@ -122,28 +61,7 @@
v-hasPermi="['complainDeal:complainDeal:add']" v-hasPermi="['complainDeal:complainDeal:add']"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['complainDeal:complainDeal:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['complainDeal:complainDeal:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
...@@ -159,19 +77,14 @@ ...@@ -159,19 +77,14 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="complainDealList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="complainDealList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <!--<el-table-column label="投诉处置id" align="center" prop="complainDealId" />-->
<el-table-column label="投诉处置id" align="center" prop="complainDealId" />
<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="transferRecord" />
<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="指派单位id" align="center" prop="complainAssignEnterproseId" /> <el-table-column label="指派人" align="center" prop="complainAssignMan" />
<el-table-column label="指派人" align="center" prop="complainAssignManId" /> <el-table-column label="任务状态" align="center" prop="complainStatus" :formatter="taskStateFormat" />
<el-table-column label="指派人id" align="center" prop="complainAssignMan" />
<el-table-column label="任务状态:1.派发中 2.反馈 3.归档" align="center" prop="complainStatus" />
<el-table-column label="是否删除(0正常,1删除)" align="center" prop="isDel" />
<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"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -182,6 +95,12 @@ ...@@ -182,6 +95,12 @@
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['complainDeal:complainDeal:edit']" v-hasPermi="['complainDeal:complainDeal:edit']"
>修改</el-button> >修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-document-copy"
@click="handleDtail(scope.row)"
>详情</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
...@@ -202,45 +121,64 @@ ...@@ -202,45 +121,64 @@
/> />
<!-- 添加或修改投诉处置对话框 --> <!-- 添加或修改投诉处置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<div class="division">
<div style="width: 50%;">
<el-form-item label="投诉人姓名" prop="complainName"> <el-form-item label="投诉人姓名" prop="complainName">
<el-input v-model="form.complainName" placeholder="请输入投诉人姓名" /> <el-input v-model="form.complainName" placeholder="请输入投诉人姓名" :disabled="readonly"/>
</el-form-item> </el-form-item>
<el-form-item label="投诉人电话" prop="complainPhone"> <el-form-item label="投诉人电话" prop="complainPhone">
<el-input v-model="form.complainPhone" placeholder="请输入投诉人电话" /> <el-input v-model="form.complainPhone" placeholder="请输入投诉人电话" :disabled="readonly"/>
</el-form-item> </el-form-item>
<el-form-item label="投诉事项" prop="complainMatter"> <el-form-item label="投诉事项" prop="complainMatter">
<el-input v-model="form.complainMatter" placeholder="请输入投诉事项" /> <el-input v-model="form.complainMatter" placeholder="请输入投诉事项" :disabled="readonly"/>
</el-form-item>
<el-form-item label="转办记录" prop="transferRecord">
<el-input v-model="form.transferRecord" placeholder="请输入转办记录" />
</el-form-item>
<el-form-item label="办理情况" prop="dealCondition">
<el-input v-model="form.dealCondition" placeholder="请输入办理情况" />
</el-form-item>
<el-form-item label="指派单位名称" prop="complainAssignEnterproseName">
<el-input v-model="form.complainAssignEnterproseName" placeholder="请输入指派单位名称" />
</el-form-item> </el-form-item>
<el-form-item label="指派单位id" prop="complainAssignEnterproseId"> </div>
<el-input v-model="form.complainAssignEnterproseId" placeholder="请输入指派单位id" /> <div style="width: 50%;">
<el-form-item label="指派单位" prop="complainAssignEnterproseId" >
<el-select style="width: 100%" v-model="form.complainAssignEnterproseName" placeholder="请选择预案等级" @change="qiyechang" :disabled="readonly">
<el-option
v-for = "dict in enterpriseList"
:key = "dict.enterpriseId"
:label = "dict.enterpriseName"
:value = "dict.enterpriseId"
/>
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="指派人" prop="complainAssignManId"> <el-form-item label="指派人" prop="complainAssignManId">
<el-input v-model="form.complainAssignManId" placeholder="请输入指派人" /> <el-select v-model="form.complainAssignMan" placeholder="请选择预案等级" clearable style = "width: 100%" @change="manChang" :disabled="readonly">
<el-option
v-for = "dict in peopleList"
:key = "dict.id"
:label = "dict.nickName"
:value = "dict.id"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="指派人id" prop="complainAssignMan"> <el-form-item label="办理情况" prop="dealCondition">
<el-input v-model="form.complainAssignMan" placeholder="请输入指派人id" /> <el-input v-model="form.dealCondition" placeholder="请输入办理情况" :disabled="readonly"/>
</el-form-item> </el-form-item>
<el-form-item label="任务状态:1.派发中 2.反馈 3.归档">
<el-radio-group v-model="form.complainStatus"> </div>
<el-radio label="1">请选择字典生成</el-radio> </div>
</el-radio-group>
<el-form-item label="转办记录" prop="transferRecord">
<el-input v-model="form.transferRecord" type="textarea" placeholder="请输入转办记录" :disabled="readonly"/>
</el-form-item> </el-form-item>
<el-form-item label="是否删除(0正常,1删除)" prop="isDel"> <el-form-item label="任务状态">
<el-input v-model="form.isDel" placeholder="请输入是否删除(0正常,1删除)" /> <el-select v-model="form.complainStatus" placeholder="请选择任务状态" size="small" :disabled="readonly">
<el-option
v-for="dict in taskStateOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remarks"> <el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入备注" /> <el-input v-model="form.remarks" placeholder="请输入备注" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -252,8 +190,8 @@ ...@@ -252,8 +190,8 @@
</template> </template>
<script> <script>
import { listComplainDeal, getComplainDeal, delComplainDeal, addComplainDeal, updateComplainDeal, exportComplainDeal } from "@/api/complainDeal/complainDeal"; import { listComplainDeal, getComplainDeal, delComplainDeal, addComplainDeal, updateComplainDeal, exportComplainDeal,getUserList } from "@/api/complainDeal/complainDeal";
import {enterpriseList} from "@/api/system/eventInfo";
export default { export default {
name: "ComplainDeal", name: "ComplainDeal",
components: { components: {
...@@ -276,6 +214,11 @@ export default { ...@@ -276,6 +214,11 @@ export default {
total: 0, total: 0,
// 投诉处置表格数据 // 投诉处置表格数据
complainDealList: [], complainDealList: [],
enterpriseList:[],
peopleList:[],
readonly:false,
// 投书状态类型:1.派发中 2.反馈 3.归档
taskStateOptions: [],
// 弹出层标题 // 弹出层标题
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
...@@ -298,7 +241,9 @@ export default { ...@@ -298,7 +241,9 @@ export default {
remarks: null remarks: null
}, },
// 表单参数 // 表单参数
form: {}, form: {
peopleList:[]
},
// 表单校验 // 表单校验
rules: { rules: {
} }
...@@ -306,7 +251,10 @@ export default { ...@@ -306,7 +251,10 @@ export default {
}, },
created() { created() {
this.getList(); this.getList();
console.log("===============================") this.getEnterpriseList();
this.getDicts("task_state").then(response => {
this.taskStateOptions = response.data;
});
}, },
methods: { methods: {
/** 查询投诉处置列表 */ /** 查询投诉处置列表 */
...@@ -318,6 +266,36 @@ export default { ...@@ -318,6 +266,36 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
//公司列表
getEnterpriseList() {
console.log(this.uploadImgUrl)
enterpriseList(this.queryParams).then(response => {
this.enterpriseList = response.data;
});
},
qiyechang(value){
this.form.complainAssignMan="";
let obj = {};
obj = this.enterpriseList.find((item)=>{
return item.enterpriseId === value;
});
this.form.complainAssignEnterproseName = obj.enterpriseName;
this.form.complainAssignEnterproseId = value;
getUserList(value).then(response => {
console.log(response.data)
//console.log(this.peopleList)
this.peopleList=response.data;
});
},
manChang(value){
let obj = {};
obj = this.peopleList.find((item)=>{
return item.id === value;
});
this.form.complainAssignManId === value;
this.form.complainAssignMan = obj.nickName;
console.log(this.form);
},
// 取消按钮 // 取消按钮
cancel() { cancel() {
this.open = false; this.open = false;
...@@ -362,14 +340,29 @@ export default { ...@@ -362,14 +340,29 @@ export default {
this.single = selection.length!==1 this.single = selection.length!==1
this.multiple = !selection.length this.multiple = !selection.length
}, },
taskStateFormat(row, column) {
var status = this.selectDictLabel(this.taskStateOptions, row.complainStatus);
if(status=='派发中'){
return <p style='color: #ff4949'>派发中</p>
}else if("反馈"){
return <p style='color: #1890ff'>派发中</p>
}else{
return <p style='color: #30B46B'>派发中</p>
}
return this.selectDictLabel(this.taskStateOptions, row.complainStatus);
},
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.readonly = false;
this.peopleList=[];
this.reset(); this.reset();
this.open = true; this.open = true;
this.title = "添加投诉处置"; this.title = "添加投诉处置";
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.readonly = false;
this.peopleList=[];
this.reset(); this.reset();
const complainDealId = row.complainDealId || this.ids const complainDealId = row.complainDealId || this.ids
getComplainDeal(complainDealId).then(response => { getComplainDeal(complainDealId).then(response => {
...@@ -398,6 +391,16 @@ export default { ...@@ -398,6 +391,16 @@ export default {
} }
}); });
}, },
handleDtail(row) {
this.readonly = true;
this.reset();
const complainDealId = row.complainDealId || this.ids
getComplainDeal(complainDealId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改投诉处置";
});
},
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const complainDealIds = row.complainDealId || this.ids; const complainDealIds = row.complainDealId || this.ids;
...@@ -430,3 +433,10 @@ export default { ...@@ -430,3 +433,10 @@ export default {
} }
}; };
</script> </script>
<style>
.division{
display:flex;
flex-direction:row;
justify-content:flex-start;
}
</style>
<template>
<div class="app-container">
<div style="width: 100%;height: 10em;">
<div class="second-div">
<div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
<img src="../../../assets/hidden.png" width="40%" style="margin-top: 2rem;">
<p>隐患数量</p>
</div>
<div style="width: 50%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{hiddenObj.hiddenTotal}}</div>
</div>
<div class="second-div">
<div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
<img src="../../../assets/hidden.png" width="40%" style="margin-top: 2rem;">
<p>已完成数量</p>
</div>
<div style="width: 50%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{hiddenObj.completedTotal}}</div>
</div>
<div class="second-div">
<div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
<img src="../../../assets/hidden.png" width="40%" style="margin-top: 2rem;">
<p>未完成数量</p>
</div>
<div style="width: 50%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{hiddenObj.incompleteTotal}}</div>
</div>
<div class="second-div">
<div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
<img src="../../../assets/yh1.png" width="40%" style="margin-top: 2rem;">
<p>一级隐患</p>
</div>
<div style="width: 50%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{hiddenObj.oneLevelTotal}}</div>
</div>
<div class="second-div">
<div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
<img src="../../../assets/yh2.png" width="40%" style="margin-top: 2rem;">
<p>二级隐患</p>
</div>
<div style="width: 50%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{hiddenObj.twoLevelTotal}}</div>
</div>
<div class="second-div">
<div style="width: 50%;height: 100%; text-align: center;float: left;font-size: 15px;">
<img src="../../../assets/yh3.png" width="40%" style="margin-top: 2rem;">
<p>三级隐患</p>
</div>
<div style="width: 50%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{hiddenObj.threeLevelTotal}}</div>
</div>
</div>
<div style="width: 100%; padding: 30px 10px 0px 15px;">
<el-table v-loading="loading" :data="hiddenList" >
<el-table-column label="隐患名称" align="center" prop="hiddenTitle" width="200px"/>
<el-table-column label="隐患等级" align="center" prop="hiddenType">
<template slot-scope="scope">
<span v-if="scope.row.hiddenType == '1'">一级隐患</span>
<span v-if="scope.row.hiddenType == '2'">二级隐患</span>
<span v-if="scope.row.hiddenType == '3'">三级隐患</span>
</template>
</el-table-column>
<el-table-column label="隐患位置" align="center" prop="hiddenLocation" width="300px"/>
<el-table-column label="隐患发现人员" align="center" prop="hiddenFindPeople"/>
<el-table-column label="发现时间" align="center" prop="hiddenFindDate" width="150px"/>
<el-table-column label="处理方案" align="center" prop="dealPlanUrl" width="150px">
<template slot-scope="scope">
<span
class="dbtn"
@click="checkFile(scope.row.dealPlanUrl)"
v-if="scope.row.dealPlan != ''"
>
<i class="el-icon el-icon-view"></i>查看/下载
</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="整治情况" align="center" prop="remediation" width="120px">
<template slot-scope="scope">
<span v-if="scope.row.remediation == '1'">已完成</span>
<span v-if="scope.row.remediation == '2'">未完成</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="120px">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="showDetail(scope.row)"
v-hasPermi="['standingBook:hidden:query']"
>详情</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="1200px" append-to-body @cancel="cancel" @close="cancel">
<el-row>
<el-col :span="14">
<el-form ref="detailForm" :model="detailForm" label-width="120px">
<el-row>
<el-col :span="10">
<el-form-item label="隐患名称:">
<font>{{detailForm.hiddenTitle}}</font>
</el-form-item>
<el-form-item label="隐患发现人员:">
<font>{{detailForm.hiddenFindPeople}}</font>
</el-form-item>
<el-form-item label="发现时间:">
<font>{{detailForm.hiddenFindDate}}</font>
</el-form-item>
</el-col>
<el-col :span="13">
<el-form-item label="隐患等级:">
<font v-if="detailForm.hiddenType == '1'">一级隐患</font>
<font v-if="detailForm.hiddenType == '2'">二级隐患</font>
<font v-if="detailForm.hiddenType == '3'">三级隐患</font>
</el-form-item>
<el-form-item label="隐患位置:">
<font>{{detailForm.hiddenLocation}}</font>
</el-form-item>
<el-form-item label="处理方案:">
<span class="dbtn" @click="checkFile(detailForm.dealPlanUrl)" v-if="detailForm.dealPlan != ''">
<i class="el-icon el-icon-view"></i>查看/下载
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item label="隐患内容:">
<font>{{detailForm.hiddenContent}}</font>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="整治情况:">
<font v-if="detailForm.remediation == '1'">已完成</font>
<font v-if="detailForm.remediation == '2'">未完成</font>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="备注信息:">
<font v-if="detailForm.remarks != '' && detailForm.remarks != null">{{detailForm.remarks}}</font>
<font v-else> - </font>
</el-form-item>
</el-row>
</el-form>
</el-col>
<el-col :span="9">
<div style="width: 100%;height: 390px;margin-top: -25px; border: 1px solid rgb(218, 213, 213);margin-bottom: 10px;">
<div style="width: 100%;height: 100%" id="hiddenContainer"></div>
</div>
</el-col>
</el-row>
</el-dialog>
</div>
</div>
</template>
<script>
import { hiddenStatistic } from "@/api/statistic/statisticAnalysis";
import { listHidden, getHidden } from "@/api/standingBook/hidden";
import { EditorMap } from "@/utils/mapClass/getPath.js";
export default {
name: "HiddenStatisticAnalysis",
components: {
},
data() {
return {
// 统计数据
hiddenObj: {},
// 遮罩层
loading: true,
// 隐患台账表格数据
hiddenList: [],
// 总条数
total: 0,
// 地图
map: null,
devicePos: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
},
// 表单参数
detailForm: {},
};
},
created() {
},
mounted() {
this.getStatiData();
this.getList();
},
methods: {
getStatiData() {
hiddenStatistic().then(response => {
this.hiddenObj = response.data;
console.log("this.hiddenObj",this.hiddenObj)
});
},
getList() {
this.loading = true;
listHidden(this.queryParams).then(response => {
this.hiddenList = response.rows;
this.total = response.total;
this.loading = false;
});
},
checkFile(url) {
window.open(url,'_blank');
},
reset() {
this.detailForm = {
hiddenId: null,
hiddenTitle: null,
hiddenContent: null,
hiddenLocation: null,
longitude:null,
latitude: null,
hiddenType: null,
hiddenFindPeople: null,
hiddenFindDate: null,
dealPlan: null,
remediation: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
isDel: null,
remarks: null
};
this.resetForm("detailForm");
this.devicePos = [];
},
/** 详细信息跳转 */
showDetail(row) {
this.reset();
getHidden(row.hiddenId).then(response => {
this.detailForm = response.data;
this.devicePos = [this.detailForm.longitude, this.detailForm.latitude];
console.log("this.devicePos",this.devicePos);
this.open = true;
this.title = "隐患整治台账详情";
this.$nextTick(() => {
this.map = new EditorMap("hiddenContainer", {}, this);
this.map.addDevice({ path: this.devicePos });
this.map.nowMouseTarget = null;
this.map.mousetoolClose(false);
});
});
},
cancel() {
this.open = false;
this.reset();
this.map.destroy();
},
}
};
</script>
<style>
.second-div{
margin-top: 20px;
width: 15%;
float: left;
margin-left: 1.5%;
height: 9rem;
color: #515a6e;
background-color: #FFF;
border-radius: 5px;
border: 2px solid rgb(22, 151, 207, 0.3);
box-shadow: 0 0 8px 8px rgba(131, 229, 255, 0.1)inset, 0 0 7px 7px rgba(22, 151, 207, 0.2);
}
.dbtn {
display: inline-block;
line-height: normal;
padding-left: 2px;
padding-right: 2px;
cursor: pointer;
border-radius: 3px;
border-style: solid;
border-width: 0;
color: rgb(48, 180, 107);
}
.dbtn:hover {
border-width: 1px;
border-color: rgb(48, 180, 107);
}
</style>
<template>
<div class="app-container">
<div style="width: 100%;height: 10em;">
<div class="first-div">
<div style="width: 40%;height: 100%; text-align: center;float: left;font-size: 15px;">
<img src="../../../assets/trouble.png" width="25%" style="margin-top: 2rem;">
<p>事故发生数</p>
</div>
<div style="width: 60%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{troubleObj.troubleTotal}}</div>
</div>
<div class="first-div">
<div style="width: 40%;height: 100%; text-align: center;float: left;font-size: 15px;">
<img src="../../../assets/trouble.png" width="25%" style="margin-top: 2rem;">
<p>伤亡人数</p>
</div>
<div style="width: 60%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{troubleObj.injuryTotal+troubleObj.deathTotal}}</div>
</div>
<div class="first-div">
<div style="width: 40%;height: 100%; text-align: center;float: left;font-size: 15px;">
<img src="../../../assets/trouble.png" width="25%" style="margin-top: 2rem;">
<p>事故处理办结率</p>
</div>
<div style="width: 60%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{troubleObj.completionRate}}%</div>
</div>
</div>
<div style="width: 100%; padding: 30px;">
<el-table v-loading="loading" :data="troubleList" >
<el-table-column label="事故名称" align="center" prop="troubleName" width="200px"/>
<el-table-column label="事故类型" align="center" prop="troubleType" width="130px">
<template slot-scope="scope">
<span v-if="scope.row.troubleType == 1">生产安全事故</span>
<span v-if="scope.row.troubleType == 2">非生产安全事故</span>
</template>
</el-table-column>
<el-table-column label="事故地点" align="center" prop="troubleLocation" width="300px"/>
<el-table-column label="事故发生时间" align="center" prop="happenDate" width="150px"/>
<el-table-column label="是否人员伤亡" align="center" prop="isCasualties" width="150px">
<template slot-scope="scope">
<span v-if="scope.row.isCasualties == 1"></span>
<span v-if="scope.row.isCasualties == 2"></span>
</template>
</el-table-column>
<el-table-column label="责任单位" align="center" prop="responsibleUnit" width="180px"/>
<el-table-column label="责任人员" align="center" prop="responsiblePeople"/>
<el-table-column label="是否处理" align="center" prop="isDeal">
<template slot-scope="scope">
<span v-if="scope.row.isDeal == 1">已处理</span>
<span v-if="scope.row.isDeal == 2">未处理</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="120px">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="showDetail(scope.row)"
v-hasPermi="['standingBook:trouble:query']"
>详情</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="1200px" append-to-body @cancel="cancel" @close="cancel">
<el-row>
<el-col :span="14">
<el-form ref="detailForm" :model="detailForm" label-width="120px">
<el-row>
<el-col :span="10">
<el-form-item label="事故名称:">
<font>{{detailForm.troubleName}}</font>
</el-form-item>
<el-form-item label="事故原因:">
<font>{{detailForm.troubleReason}}</font>
</el-form-item>
<el-form-item label="责任单位:">
<font v-if="detailForm.responsibleUnit != '' && detailForm.responsibleUnit != null">{{detailForm.responsibleUnit}}</font>
<font v-else> - </font>
</el-form-item>
<el-form-item label="是否人员伤亡:">
<font v-if="detailForm.isCasualties == '1'"></font>
<font v-if="detailForm.isCasualties == '2'"></font>
</el-form-item>
</el-col>
<el-col :span="13">
<el-form-item label="事故类型:">
<font v-if="detailForm.troubleType == '1'">安全生产事故</font>
<font v-if="detailForm.troubleType == '2'">非生产安全事故</font>
</el-form-item>
<el-form-item label="事故地点:">
<font>{{detailForm.troubleLocation}}</font>
</el-form-item>
<el-form-item label="责任人员:">
<font v-if="detailForm.responsiblePeople != '' && detailForm.responsiblePeople != null">{{detailForm.responsiblePeople}}</font>
<font v-else> - </font>
</el-form-item>
<el-form-item label="是否处理:">
<font v-if="detailForm.isDeal == '1'">已处理</font>
<font v-if="detailForm.isDeal == '2'">未处理</font>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="detailForm.isCasualties == '1'">
<el-col :span="11">
<el-form-item label="受伤人数:">
<font>{{detailForm.injuryNum}}</font>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="死亡人数:">
<font>{{detailForm.deathNum}}</font>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item label="处理完成时间:">
<font v-if="detailForm.dealDate != '' && detailForm.dealDate != null">{{detailForm.dealDate}}</font>
<font v-else> - </font>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="简要经过:">
<font v-if="detailForm.briefProcess != '' && detailForm.briefProcess != null">{{detailForm.briefProcess}}</font>
<font v-else> - </font>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="备注信息:">
<font v-if="detailForm.remarks != '' && detailForm.remarks != null">{{detailForm.remarks}}</font>
<font v-else> - </font>
</el-form-item>
</el-row>
</el-form>
</el-col>
<el-col :span="9">
<div style="width: 100%;height: 390px;margin-top: -25px; border: 1px solid rgb(218, 213, 213);margin-bottom: 10px;">
<div style="width: 100%;height: 100%" id="troubleContainer"></div>
</div>
</el-col>
</el-row>
</el-dialog>
</div>
</div>
</template>
<script>
import { troubleStatistic } from "@/api/statistic/statisticAnalysis";
import { listTrouble, getTrouble } from "@/api/standingBook/trouble";
import { EditorMap } from "@/utils/mapClass/getPath.js";
export default {
name: "TroubleStatisticAnalysis",
components: {
},
data() {
return {
// 统计数据
troubleObj: {},
// 遮罩层
loading: true,
// 事故台账表格数据
troubleList: [],
// 总条数
total: 0,
// 地图
map: null,
devicePos: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
},
// 表单参数
detailForm: {},
};
},
created() {
},
mounted() {
this.getStatiData();
this.getList();
},
methods: {
getStatiData() {
troubleStatistic().then(response => {
this.troubleObj = response.data;
});
},
getList() {
this.loading = true;
listTrouble(this.queryParams).then(response => {
this.troubleList = response.rows;
this.total = response.total;
this.loading = false;
});
},
reset() {
this.detailForm = {
troubleId: null,
troubleName: null,
troubleLocation: null,
longitude: null,
latitude: null,
troubleType: null,
briefProcess: null,
troubleReason: null,
isCasualties: null,
injuryNum: null,
deathNum: null,
responsibleUnit: null,
responsiblePeople: null,
isDeal: null,
happenDate: null,
dealDate: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
isDel: null,
remarks: null
};
this.resetForm("detailForm");
this.devicePos = [];
},
/** 详细信息跳转 */
showDetail(row) {
this.reset();
getTrouble(row.troubleId).then(response => {
this.detailForm = response.data;
this.devicePos = [this.detailForm.longitude, this.detailForm.latitude];
console.log("this.devicePos",this.devicePos);
this.open = true;
this.title = "燃气事故台账详情";
this.$nextTick(() => {
this.map = new EditorMap("troubleContainer", {}, this);
this.map.addDevice({ path: this.devicePos });
this.map.nowMouseTarget = null;
this.map.mousetoolClose(false);
});
});
},
cancel() {
this.open = false;
this.reset();
this.map.destroy();
},
}
};
</script>
<style>
.first-div{
margin-top: 20px;
width: 30%;
float: left;
margin-left: 2.5%;
height: 9rem;
color: #515a6e;
background-color: #FFF;
border-radius: 5px;
border: 2px solid rgb(22, 151, 207, 0.3);
box-shadow: 0 0 8px 8px rgba(131, 229, 255, 0.1)inset, 0 0 7px 7px rgba(22, 151, 207, 0.2);
}
</style>
...@@ -66,28 +66,6 @@ ...@@ -66,28 +66,6 @@
v-hasPermi="['system:eventInfo:add']" v-hasPermi="['system:eventInfo:add']"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:eventInfo:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:eventInfo:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
...@@ -103,7 +81,7 @@ ...@@ -103,7 +81,7 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="eventInfoList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="eventInfoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <!--<el-table-column type="selection" width="55" align="center" />-->
<!--<el-table-column label="事件id" align="center" prop="eventId" />--> <!--<el-table-column label="事件id" align="center" prop="eventId" />-->
<el-table-column label="事件名称" align="center" prop="eventTitle" /> <el-table-column label="事件名称" align="center" prop="eventTitle" />
<el-table-column label="所属企业" align="center" prop="beyondEnterpriseName" /> <el-table-column label="所属企业" align="center" prop="beyondEnterpriseName" />
...@@ -116,9 +94,21 @@ ...@@ -116,9 +94,21 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="报案人" align="center" prop="reportPerson" /> <el-table-column label="报案人" align="center" prop="reportPerson" />
<el-table-column label="事件处置信息" align="center" prop="eventDeal" /> <el-table-column label="附件" align="center" prop="iconUrl" width="150px">
<el-table-column label="事件评估信息" align="center" prop="eventAssessment" /> <template slot-scope="scope">
<el-table-column label="备注" align="center" prop="remarks" /> <span
class="dbtn"
@click="checkFile(scope.row.iconUrl)"
v-if="scope.row.iconUrl != null && scope.row.iconUrl!=''"
>
<i class="el-icon el-icon-view"></i>查看/下载
</span>
<span v-else>-</span>
</template>
</el-table-column>
<!--<el-table-column label="事件处置信息" align="center" prop="eventDeal" />-->
<!--<el-table-column label="事件评估信息" align="center" prop="eventAssessment" />-->
<!--<el-table-column label="备注" align="center" prop="remarks" />-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
...@@ -134,7 +124,6 @@ ...@@ -134,7 +124,6 @@
icon="el-icon-document-copy" icon="el-icon-document-copy"
@click="handleDtail(scope.row)" @click="handleDtail(scope.row)"
>详情</el-button> >详情</el-button>
<el-button
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
...@@ -216,10 +205,10 @@ ...@@ -216,10 +205,10 @@
</el-form-item> </el-form-item>
</div> </div>
</div> </div>
<el-form-item label="事件处置信息" prop="eventDeal" style="width: 60%"> <el-form-item label="事件处置信息" prop="eventDeal" style="width: 95%">
<el-input v-model="form.eventDeal" type="textarea" placeholder="请输入事件处置信息" :disabled="readonly"/> <el-input v-model="form.eventDeal" type="textarea" placeholder="请输入事件处置信息" :disabled="readonly"/>
</el-form-item> </el-form-item>
<el-form-item label="事件评估信息" prop="eventAssessment" style="width: 60%"> <el-form-item label="事件评估信息" prop="eventAssessment" style="width: 95%">
<el-input v-model="form.eventAssessment" type="textarea" placeholder="请输入事件评估信息" :disabled="readonly"/> <el-input v-model="form.eventAssessment" type="textarea" placeholder="请输入事件评估信息" :disabled="readonly"/>
</el-form-item> </el-form-item>
<el-form-item label="事件附件" prop="iconUrl" :style="display" > <el-form-item label="事件附件" prop="iconUrl" :style="display" >
...@@ -237,7 +226,7 @@ ...@@ -237,7 +226,7 @@
<span <span
class="dbtn" class="dbtn"
@click="checkFile(form.iconUrl)" @click="checkFile(form.iconUrl)"
v-if="form.iconUrl != ''" v-if="form.iconUrl!=null && form.iconUrl != ''"
> >
<i class="el-icon el-icon-view"></i>查看/下载 <i class="el-icon el-icon-view"></i>查看/下载
</span> </span>
...@@ -382,7 +371,7 @@ export default { ...@@ -382,7 +371,7 @@ export default {
let obj = {}; let obj = {};
obj = this.enterpriseList.find((item)=>{ obj = this.enterpriseList.find((item)=>{
return item.enterpriseId === value; return item.enterpriseId === value;
}); ``});
this.form.beyondEnterpriseName = obj.enterpriseName; this.form.beyondEnterpriseName = obj.enterpriseName;
this.form.beyondEnterpriseId = value; this.form.beyondEnterpriseId = value;
}, },
......
...@@ -57,28 +57,28 @@ ...@@ -57,28 +57,28 @@
v-hasPermi="['system:planInfo:add']" v-hasPermi="['system:planInfo:add']"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <!--<el-col :span="1.5">-->
<el-button <!--<el-button-->
type="success" <!--type="success"-->
plain <!--plain-->
icon="el-icon-edit" <!--icon="el-icon-edit"-->
size="mini" <!--size="mini"-->
:disabled="single" <!--:disabled="single"-->
@click="handleUpdate" <!--@click="handleUpdate"-->
v-hasPermi="['system:planInfo:edit']" <!--v-hasPermi="['system:planInfo:edit']"-->
>修改</el-button> <!--&gt;修改</el-button>-->
</el-col> <!--</el-col>-->
<el-col :span="1.5"> <!--<el-col :span="1.5">-->
<el-button <!--<el-button-->
type="danger" <!--type="danger"-->
plain <!--plain-->
icon="el-icon-delete" <!--icon="el-icon-delete"-->
size="mini" <!--size="mini"-->
:disabled="multiple" <!--:disabled="multiple"-->
@click="handleDelete" <!--@click="handleDelete"-->
v-hasPermi="['system:planInfo:remove']" <!--v-hasPermi="['system:planInfo:remove']"-->
>删除</el-button> <!--&gt;删除</el-button>-->
</el-col> <!--</el-col>-->
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="planInfoList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="planInfoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <!--<el-table-column type="selection" width="25" align="center" />-->
<!--<el-table-column label="预案id" align="center" prop="planId" />--> <!--<el-table-column label="预案id" align="center" prop="planId" />-->
<el-table-column label="预案标题" align="center" prop="planTitle" /> <el-table-column label="预案标题" align="center" prop="planTitle" />
<el-table-column label="所属企业名称" align="center" prop="beyondEnterpriseName" /> <el-table-column label="所属企业名称" align="center" prop="beyondEnterpriseName" />
...@@ -102,12 +102,12 @@ ...@@ -102,12 +102,12 @@
<el-table-column label="预案等级" align="center" prop="planLevel" :formatter="planLevelFormat"/> <el-table-column label="预案等级" align="center" prop="planLevel" :formatter="planLevelFormat"/>
<!--<el-table-column label="应急方案" align="center" prop="planContents" />--> <!--<el-table-column label="应急方案" align="center" prop="planContents" />-->
<el-table-column label="应急设备及车辆" align="center" prop="planEquipment" /> <el-table-column label="应急设备及车辆" align="center" prop="planEquipment" />
<el-table-column label="方案附件" align="center" prop="dealPlanUrl" width="150px"> <el-table-column label="方案附件" align="center" prop="iconUrl" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<span <span
class="dbtn" class="dbtn"
@click="checkFile(scope.row.iconUrl)" @click="checkFile(scope.row.iconUrl)"
v-if="scope.row.iconUrl != ''" v-if="scope.row.iconUrl != null && scope.row.iconUrl!=''"
> >
<i class="el-icon el-icon-view"></i>查看/下载 <i class="el-icon el-icon-view"></i>查看/下载
</span> </span>
...@@ -216,7 +216,7 @@ ...@@ -216,7 +216,7 @@
<span <span
class="dbtn" class="dbtn"
@click="checkFile(form.iconUrl)" @click="checkFile(form.iconUrl)"
v-if="form.iconUrl != ''" v-if="form.iconUrl!=null && form.iconUrl != ''"
> >
<i class="el-icon el-icon-view"></i>查看/下载 <i class="el-icon el-icon-view"></i>查看/下载
</span> </span>
...@@ -346,7 +346,6 @@ export default { ...@@ -346,7 +346,6 @@ export default {
}); });
}, },
qiyechang(value){ qiyechang(value){
console.log(value)
let obj = {}; let obj = {};
obj = this.enterpriseList.find((item)=>{ obj = this.enterpriseList.find((item)=>{
return item.enterpriseId === value; return item.enterpriseId === value;
...@@ -475,11 +474,8 @@ export default { ...@@ -475,11 +474,8 @@ export default {
this.title = "修改应急预案"; this.title = "修改应急预案";
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}];
this.$nextTick(()=>{
document.getElementsByClassName("el-upload--picture-card")[0].style.display="none"
document.getElementById("yesbutton").style.display="" ;
})
} }
document.getElementById("yesbutton").style.display="" ;
document.getElementById("fujian").style.display="" document.getElementById("fujian").style.display=""
document.getElementById("fujianxia").style.display="none" 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