Commit b394a2ab authored by 耿迪迪's avatar 耿迪迪

客服及督查页面及后台接口开发

parent e517630b
......@@ -124,11 +124,20 @@ public class TRectifyGroupMemberInfoController extends BaseController
/**
* 非居民安检根据登录人职位获取可选成员小程序接口
* 非居民安检(工商业)根据登录人职位获取可选成员小程序接口
* @return
*/
@GetMapping("/otherDangerSelectMemberByUserPost")
public AjaxResult otherDangerSelectMemberByUserPost(){
return AjaxResult.success(tRectifyGroupMemberInfoService.otherDangerSelectMemberByUserPost());
}
/**
* 客服和督查类型隐患获取可选人员小程序接口
* @return
*/
@GetMapping("/customerAndSuperviseDangerSelectMemberByUserPost")
public AjaxResult customerAndSuperviseDangerSelectMemberByUserPost(){
return AjaxResult.success(tRectifyGroupMemberInfoService.otherDangerSelectMemberByUserPost());
}
}
......@@ -197,6 +197,14 @@ public class TDanger extends BaseEntity
//是否有审核权限
private boolean hasApprovalPermission;
/** 联系人 */
@Excel(name="联系人")
private String contact;
/** 表号记录 */
@Excel(name="表号")
private String meterNumRecord;
public String getBranch() {
return branch;
}
......@@ -634,6 +642,22 @@ public class TDanger extends BaseEntity
this.hasApprovalPermission = hasApprovalPermission;
}
public String getContact() {
return contact;
}
public void setContact(String contact) {
this.contact = contact;
}
public String getMeterNumRecord() {
return meterNumRecord;
}
public void setMeterNumRecord(String meterNumRecord) {
this.meterNumRecord = meterNumRecord;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
......
......@@ -79,4 +79,10 @@ public interface ITRectifyGroupMemberInfoService
* @return
*/
List<TRectifyGroupMemberInfo> otherDangerSelectMemberByUserPost();
/**
* 客服和督查类型隐患获取可选人员小程序接口
* @return
*/
List<TRectifyGroupMemberInfo> customerAndSuperviseDangerSelectMemberByUserPost();
}
......@@ -242,4 +242,55 @@ public class TRectifyGroupMemberInfoServiceImpl implements ITRectifyGroupMemberI
}
return result;
}
/**
* 客服和督查类型隐患获取可选人员小程序接口
* @return
*/
@Override
public List<TRectifyGroupMemberInfo> customerAndSuperviseDangerSelectMemberByUserPost(){
//登录人信息
Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
//获取登录人职务
TRectifyGroupMemberInfo tRectifyGroupMemberInfo = new TRectifyGroupMemberInfo();
tRectifyGroupMemberInfo.setUserId(userId);
List<TRectifyGroupMemberInfo> memberInfoList = tRectifyGroupMemberInfoMapper.selectTRectifyGroupMemberInfoList(tRectifyGroupMemberInfo);
if(CollectionUtils.isEmpty(memberInfoList)) throw new CustomException("未获取到登录人分组信息");
List<TRectifyGroupMemberInfo> result = new ArrayList<>();
for(TRectifyGroupMemberInfo memberInfo : memberInfoList){
/**
* 1.不是维修班的组员只能看到自己的组长
* 2.不是维修班的班长只能看到自己的组员和维修班的班长
* 3.维修班的班长只能看到自己的组员和其他维修班的班长
* 4.维修班的组员只能看到自己的组长
*/
if("1".equals(memberInfo.getPost())){
//班长登录
//自己的组员
TRectifyGroupMemberInfo InspectTeam = new TRectifyGroupMemberInfo();
InspectTeam.setGroupId(memberInfo.getGroupId());
InspectTeam.setPost("2");
List<TRectifyGroupMemberInfo> teamInfo = tRectifyGroupMemberInfoMapper.selectTRectifyGroupMemberInfoList(InspectTeam);
result.addAll(teamInfo);
//维修班组长信息
TRectifyGroupMemberInfo leader = new TRectifyGroupMemberInfo();
leader.setPost("1");
leader.setType("2");
List<TRectifyGroupMemberInfo> leaderInfo = tRectifyGroupMemberInfoMapper.selectTRectifyGroupMemberInfoList(leader);
result.addAll(leaderInfo);
}else{
//组员登录
//本组组长信息
TRectifyGroupMemberInfo team = new TRectifyGroupMemberInfo();
team.setGroupId(memberInfo.getGroupId());
team.setPost("1");
List<TRectifyGroupMemberInfo> leaderInfo = tRectifyGroupMemberInfoMapper.selectTRectifyGroupMemberInfoList(team);
result.addAll(leaderInfo);
}
}
return result;
}
}
......@@ -46,6 +46,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="dealMethod" column="deal_method" />
<result property="branch" column="branch" />
<result property="approvalStatus" column="approval_status" />
<result property="contact" column="contact" />
<result property="meterNumRecord" column="meter_num_record" />
</resultMap>
<sql id="selectTDangerVo">
......@@ -92,6 +94,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
danger.deal_method,
danger.branch,
danger.approval_status,
danger.contact,
danger.meter_num_record,
(SELECT nick_name FROM sys_user where user_id = danger.file_id) as fileName,
(
case type
......@@ -153,6 +157,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="branch != null "> and danger.branch = #{branch}</if>
<if test="params != null and params.approvalCondition != null and params.approvalCondition != ''">${params.approvalCondition}</if>
<if test="reformName != null and reformName != ''"> and ref.nick_name like concat('%',#{reformName},'%')</if>
<if test="params != null and params.queryType != null and params.queryType != '' and params.queryType == 1">and danger.type not in (9,10)</if>
</where>
ORDER BY create_time DESC
</select>
......@@ -205,6 +210,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="dealMethod != null">deal_method,</if>
<if test="branch != null">branch,</if>
<if test="approvalStatus != null">approval_status,</if>
<if test="contact != null">contact,</if>
<if test="meterNumRecord != null">meter_num_record,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="taskId != null">#{taskId},</if>
......@@ -247,6 +254,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="dealMethod != null">#{dealMethod},</if>
<if test="branch != null"> #{branch},</if>
<if test="approvalStatus != null"> #{approvalStatus},</if>
<if test="contact != null">#{contact},</if>
<if test="meterNumRecord != null">#{meterNumRecord},</if>
</trim>
</insert>
......@@ -293,6 +302,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="dealMethod != null">deal_method = #{dealMethod},</if>
<if test="branch != null">branch = #{branch},</if>
<if test="approvalStatus != null">approval_status = #{approvalStatus},</if>
<if test="contact != null">contact = #{contact},</if>
<if test="meterNumRecord != null">meter_num_record = #{meterNumRecord},</if>
</trim>
where id = #{id}
</update>
......@@ -370,6 +381,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
danger.safety_emergency_plan,
danger.deal_method,
danger.approval_status,
danger.contact,
danger.meter_num_record,
(SELECT nick_name FROM sys_user where user_id = danger.file_id) as fileName,
(
<if test="type == 1">
......
......@@ -47,6 +47,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="isDel != null and isDel != ''"> and member.is_del = #{isDel}</if>
<if test="remarks != null and remarks != ''"> and member.remarks = #{remarks}</if>
<if test="type != null and type != ''"> and info.type = #{type}</if>
<if test="params != null and params.queryType != null and params.queryType != '' and params.queryType == 1">and info.type in ('3','4')</if>
<if test="params != null and params.queryType != null and params.queryType != '' and params.queryType == 2">and info.type not in ('1')</if>
<if test="nickName != null and nickName != ''">
AND su.nick_name like concat('%', #{nickName}, '%')
</if>
......
<template>
<el-dialog :title="title" :visible.sync="approvalOpen" width="800px" append-to-body destroy-on-close :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="审核状态" prop="state">
<el-radio-group v-model="form.state">
<el-radio :label="0">通过</el-radio>
<el-radio :label="1">不通过</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="审核意见" prop="suggestion">
<el-input type="textarea" v-model="form.suggestion" placeholder="请输入审核意见"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { dangerApproval } from "@/api/checktask/danger";
export default {
name: "approval",
data(){
return{
title: "审核",
approvalOpen: false,
ids: [],
form: {},
rules: {
state: [
{ required: true, message: "请选择审核状态", trigger: "change" }
],
}
}
},
methods:{
open(ids){
this.reset();
this.ids = ids;
this.approvalOpen = true;
},
submitForm(){
this.$refs["form"].validate(valid => {
if (valid) {
let data = [];
this.ids.forEach(item =>{
data.push({
id: item,
...this.form
})
})
dangerApproval(data).then(res =>{
this.$message.success("审核成功");
this.approvalOpen = false;
this.$parent.getList();
})
}
})
},
cancel(){
this.approvalOpen = false;
},
reset(){
this.form = {
state: null,
suggestion: null
}
this.resetForm("form");
}
}
}
</script>
<style scoped>
</style>
<template>
<div>
<el-dialog
title="隐患记录"
:visible.sync="dangerDetailOpen"
width="1400px"
append-to-body
destroy-on-close
:close-on-click-modal="false"
>
<div class="dlg-wrapper">
<div class="steps">
<MySteps
:stepsData="stepsArr"
:active="stepsNumData[dangerDetailInfo.status] || 0"
/>
</div>
<el-row>
<div class="t">隐患信息</div>
<el-row class="container flex bb">
<el-col :span="16">
<el-form label-width="140px" class="el-table">
<el-col :span="12">
<el-form-item label="隐患标题">
<span>{{ dangerDetailInfo.title }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患状态">
<span v-if="dangerDetailInfo.status == 0">待处理</span>
<span v-if="dangerDetailInfo.status == 1">拒绝整改</span>
<span v-if="dangerDetailInfo.status == 2">待复查</span>
<span v-if="dangerDetailInfo.status == 3">待审核</span>
<span v-if="dangerDetailInfo.status == 4">已归档</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患来源">
<span>{{ $parent.typeFormatter(dangerDetailInfo) }}</span>
</el-form-item>
</el-col>
<!--<el-col :span="12">
<el-form-item label="场站名称" v-if="dangerDetailInfo.type == '5'">
<span v-if="dangerDetailInfo.receiveName">{{
dangerDetailInfo.receiveName
}}</span>
<span v-else>-</span>
</el-form-item>
<el-form-item label="设备名称" v-else-if="dangerDetailInfo.type == '6'">
<span v-if="dangerDetailInfo.receiveName">{{
dangerDetailInfo.receiveName
}}</span>
<span v-else>-</span>
</el-form-item>
<el-form-item label="用户" v-else>
<span v-if="dangerDetailInfo.receiveName">{{
dangerDetailInfo.receiveName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>-->
<el-col :span="12">
<el-form-item label="隐患级别">
<span v-if="dangerDetailInfo.level == 1">重大</span>
<span v-if="dangerDetailInfo.level == 2">一般</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上报时间">
{{
parseTime(
dangerDetailInfo.createTime,
"{y}-{m}-{d} {h}:{i}:{s}"
)
}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患内容">
<span v-if="dangerDetailInfo.beforeContent">{{
dangerDetailInfo.beforeContent
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上报人">
{{ dangerDetailInfo.reportName }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人">
<span v-if="dangerDetailInfo.contact">{{ dangerDetailInfo.contact }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话">
<span v-if="dangerDetailInfo.phone">{{
dangerDetailInfo.phone
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="表号">
<span v-if="dangerDetailInfo.meterNumRecord">{{ dangerDetailInfo.meterNumRecord }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患地址">
<span v-if="dangerDetailInfo.address">{{
dangerDetailInfo.address
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<!--<el-col :span="12">
<el-form-item label="责任归属">
<span v-if="dangerDetailInfo.flag == 1">安全管理部</span>
<span v-else-if="dangerDetailInfo.flag == 2">客服运营部</span>
<span v-else-if="dangerDetailInfo.flag == 3">生产运营部</span>
<span v-else>-</span>
</el-form-item>
</el-col>-->
<el-col :span="12">
<el-form-item label="整改前图片" prop="beforeImg">
<div>
<MyImage
v-if="dangerDetailInfo.beforeImg"
:src="dangerDetailInfo.beforeImg.split(',')[0]"
:previewSrcList="dangerDetailInfo.beforeImg.split(',')"
/>
<div class="error" v-else>暂无图片</div>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改前视频" prop="beforeVideo">
<span v-if="dangerDetailInfo.beforeVideo">
<video
v-for="videoInfo in dangerDetailInfo.beforeVideo.split(
','
)"
:key="videoInfo"
type="video/mp4"
controls="controls"
:src="videoInfo"
class="upload-video"
/>
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改期限">
<span v-if="dangerDetailInfo.endTime">{{
dangerDetailInfo.endTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改方式">
<span v-if="dangerDetailInfo.dealMethod == '1'">燃气用户整改</span>
<span v-else-if="dangerDetailInfo.dealMethod == '2'">用户出资公司整改</span>
<span v-else-if="dangerDetailInfo.dealMethod == '3'">燃气公司整改</span>
<!--<span v-else-if="dangerDetailInfo.dealMethod == '4'">公司出资整改</span>-->
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="营业网点">
<span>{{ $parent.branchFormat(dangerDetailInfo,null) }}</span>
</el-form-item>
</el-col>
<!--<el-col :span="12">
<el-form-item label="归档人">
<span v-if="dangerDetailInfo.fileName">{{
dangerDetailInfo.fileName
}}</span>6
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归档时间">
<span v-if="dangerDetailInfo.fileTime">{{
dangerDetailInfo.fileTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>-->
<el-col :span="12" v-if="dangerDetailInfo.type == '8'">
<el-form-item label="治理的标准要求">
<span v-if="dangerDetailInfo.governanceStandards">
{{ dangerDetailInfo.governanceStandards}}
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="dangerDetailInfo.type == '8'">
<el-form-item label="治理方法和措施">
<span v-if="dangerDetailInfo.governanceMethod">
{{ dangerDetailInfo.governanceMethod}}
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="dangerDetailInfo.type == '8'">
<el-form-item label="经费和物资的落实">
<span v-if="dangerDetailInfo.fundsMaterials">
{{ dangerDetailInfo.fundsMaterials}}
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="dangerDetailInfo.type == '8'">
<el-form-item label="安全措施和应急预案">
<span v-if="dangerDetailInfo.safetyEmergencyPlan">
{{ dangerDetailInfo.safetyEmergencyPlan}}
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注">
<span v-if="dangerDetailInfo.remark">{{
dangerDetailInfo.remark
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-form>
</el-col>
<el-col :span="8">
<div id="dangerMap"></div>
<div class="map-bottom">隐患上报位置</div>
</el-col>
</el-row>
<div class="t" v-if="dangerDetailInfo.tTaskInspect">安检信息</div>
<el-row class="container flex bb" v-if="dangerDetailInfo.tTaskInspect">
<el-form label-width="110px" class="el-table">
<el-col style="height: auto" :span="8">
<el-col :span="24">
<el-form-item label="安检时间">
<span v-if="dangerDetailInfo.tTaskInspect.createTime">{{ dangerDetailInfo.tTaskInspect.createTime}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="安检人">
<span v-if="dangerDetailInfo.tTaskInspect.memberName">{{
dangerDetailInfo.tTaskInspect.memberName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-col>
<el-col :span="16">
<el-col :span="24">
<el-form-item label="签字状态">
<span v-if="dangerDetailInfo.tTaskInspect.sign == 0">未签字</span>
<span v-else-if="dangerDetailInfo.tTaskInspect.sign == 1">已签字</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="操作">
<el-button
type="text"
@click="handleInspect(dangerDetailInfo.tTaskInspect)"
>安检单</el-button>
<el-button
type="text"
@click="handleCover(dangerDetailInfo.tTaskInspect)"
>图片</el-button>
</el-form-item>
</el-col>
</el-col>
</el-form>
</el-row>
<div class="t">整改信息</div>
<el-row class="container flex bb">
<el-form label-width="110px" class="el-table">
<el-col style="height: auto" :span="8">
<el-col :span="24">
<el-form-item label="整改内容">
<span v-if="dangerDetailInfo.afterContent">{{
dangerDetailInfo.afterContent
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="整改人">
<span v-if="dangerDetailInfo.reformName">{{
dangerDetailInfo.reformName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<!--<el-col :span="24">
<el-form-item label="整改期限">
<span v-if="dangerDetailInfo.endTime">{{
dangerDetailInfo.endTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>-->
<el-col :span="24">
<el-form-item label="整改时间">
<span v-if="dangerDetailInfo.reformTime">{{
dangerDetailInfo.reformTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-col>
<el-col :span="16">
<el-col :span="24">
<el-form-item label="整改后图片">
<div>
<MyImage
v-if="dangerDetailInfo.afterImg"
:src="dangerDetailInfo.afterImg.split(',')[0]"
:previewSrcList="dangerDetailInfo.afterImg.split(',')"
/>
<div class="error" v-else>暂无图片</div>
</div>
</el-form-item>
</el-col>
</el-col>
</el-form>
</el-row>
<div class="t">复查信息</div>
<el-row class="container flex bb">
<el-form label-width="110px" class="el-table">
<el-col style="height: auto" :span="8">
<el-col :span="24">
<el-form-item label="复查人">
<span v-if="dangerDetailInfo.checkName">{{
dangerDetailInfo.checkName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="复查时间">
<span v-if="dangerDetailInfo.checkTime">{{
dangerDetailInfo.checkTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="复查备注">
<span v-if="dangerDetailInfo.checkRemark">{{
dangerDetailInfo.checkRemark
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-col>
<el-col :span="16">
<el-col :span="24">
<el-form-item label="复查图片" prop="checkImg">
<div>
<MyImage
v-if="dangerDetailInfo.checkImg"
:src="dangerDetailInfo.checkImg.split(',')[0]"
:previewSrcList="dangerDetailInfo.checkImg.split(',')"
/>
<div class="error" v-else>暂无图片</div>
</div>
</el-form-item>
</el-col>
</el-col>
</el-form>
</el-row>
<div class="t">审核信息</div>
<div class="container bb">
<el-form label-width="110px" class="el-table scroll" v-if="dangerApprovalList.length > 0">
<el-timeline >
<el-timeline-item
placement="top"
type="primary"
v-for="(activity, index) in dangerApprovalList"
:key="index"
:timestamp="activity.createTime">
<el-card>
<el-form-item label="审核人">{{activity.nickName}}</el-form-item>
<el-form-item label="审状态">
<span v-if="activity.approvalStatus == '0'">通过</span>
<span v-else>不通过</span>
</el-form-item>
<el-form-item label="审核意见">{{ activity.suggestion }}</el-form-item>
</el-card>
</el-timeline-item>
</el-timeline>
</el-form>
</div>
<div class="t">归档信息</div>
<el-row class="container flex bb">
<el-form label-width="110px" class="el-table">
<el-col :span="24">
<el-col :span="4">
<el-form-item label="归档人">
<span v-if="dangerDetailInfo.fileName">{{
dangerDetailInfo.fileName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="归档时间">
<span v-if="dangerDetailInfo.fileTime">{{
dangerDetailInfo.fileTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<!--<el-col :span="14">
<el-form-item label="复查备注">
<span v-if="dangerDetailInfo.checkRemark">{{
dangerDetailInfo.checkRemark
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>-->
</el-col>
</el-form>
</el-row>
</el-row>
<!-- <el-row>
<el-col :span="14">
<el-form label-width="110px" class="dangerDetailInfo">
<div style="font-size: 20px; margin: 7px 0px 7px 0px">隐患信息</div>
<el-row>
<el-col :span="12">
<el-form-item label="隐患标题">
<span>{{ dangerDetailInfo.title }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患状态">
<span v-if="dangerDetailInfo.status == 0">待处理</span>
<span v-if="dangerDetailInfo.status == 1">拒绝整改</span>
<span v-if="dangerDetailInfo.status == 2">待复查</span>
<span v-if="dangerDetailInfo.status == 3">待审核</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="隐患来源">
<span>{{ $parent.typeFormatter(dangerDetailInfo) }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="用户">
<span v-if="dangerDetailInfo.receiveName">{{
dangerDetailInfo.receiveName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="隐患级别">
<span v-if="dangerDetailInfo.level == 1">一级</span>
<span v-if="dangerDetailInfo.level == 2">二级</span>
<span v-if="dangerDetailInfo.level == 3">三级</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患责任人">
<span v-if="dangerDetailInfo.flag == 1">用户自己</span>
<span v-else-if="dangerDetailInfo.flag == 2">公司客服部</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="上报人">
{{ dangerDetailInfo.reportName }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上报时间">
{{
parseTime(
dangerDetailInfo.createTime,
"{y}-{m}-{d} {h}:{i}:{s}"
)
}}
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item label="隐患地址">
<span v-if="dangerDetailInfo.address">{{
dangerDetailInfo.address
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患内容">
<span v-if="dangerDetailInfo.beforeContent">{{
dangerDetailInfo.beforeContent
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患备注">
<span v-if="dangerDetailInfo.remark">{{
dangerDetailInfo.remark
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患整改前图片" prop="beforeImg">
<span v-if="dangerDetailInfo.beforeImg">
<el-image
v-for="imageInfo in dangerDetailInfo.beforeImg.split(',')"
:src="imageInfo"
:preview-src-list="[imageInfo]"
:z-index="9999"
style="width: 99px; height: 100px; margin-right: 10px"
/>
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患整改前视频" prop="beforeVideo">
<span v-if="dangerDetailInfo.beforeVideo">
<video
v-for="videoInfo in dangerDetailInfo.beforeVideo.split(',')"
type="video/mp4"
controls="controls"
:src="videoInfo"
class="upload-video"
/>
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<div style="font-size: 20px; margin: 7px 0px 7px 0px">整改信息</div>
<el-col :span="12">
<el-form-item label="整改人">
<span v-if="dangerDetailInfo.reformName">{{
dangerDetailInfo.reformName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改期限">
<span v-if="dangerDetailInfo.endTime">{{
dangerDetailInfo.endTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改时间">
<span v-if="dangerDetailInfo.reformTime">{{
dangerDetailInfo.reformTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="整改内容">
<span v-if="dangerDetailInfo.afterContent">{{
dangerDetailInfo.afterContent
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-row>
<el-col :span="24">
<el-form-item label="隐患整改后图片">
<span v-if="dangerDetailInfo.afterImg">
<el-image
v-for="afterImageInfo in dangerDetailInfo.afterImg.split(
','
)"
:src="afterImageInfo"
:preview-src-list="[afterImageInfo]"
:z-index="9999"
style="width: 99px; height: 100px; margin-right: 10px"
/>
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-row>
<div style="font-size: 20px; margin: 7px 0px 7px 0px">复查信息</div>
<el-row>
<el-col :span="12">
<el-form-item label="复查人">
<span v-if="dangerDetailInfo.checkName">{{
dangerDetailInfo.checkName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="复查时间">
<span v-if="dangerDetailInfo.checkTime">{{
dangerDetailInfo.checkTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="复查备注">
<span v-if="dangerDetailInfo.checkRemark">{{
dangerDetailInfo.checkRemark
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-row>
<div style="font-size: 20px; margin: 7px 0px 7px 0px">变更信息</div>
<el-table :data="dangerStatusChangeList">
<el-table-column
label="时间"
align="center"
prop="optime"
:show-overflow-tooltip="true"
/>
<el-table-column
label="状态"
align="center"
prop="status"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<span v-if="scope.row.status == 0">待处理</span>
<span v-if="scope.row.status == 1">拒绝整改</span>
<span v-if="scope.row.status == 2">待复查</span>
<span v-if="scope.row.status == 3">待审核</span>
</template>
</el-table-column>
<el-table-column
label="操作人"
align="center"
prop="operator"
:show-overflow-tooltip="true"
/>
</el-table>
</el-form>
</el-col>
<el-col :span="10">
<div
id="dangerMap"
style="width: 100%; height: 500px; border: 1px solid"
></div>
</el-col>
</el-row> -->
</div>
</el-dialog>
<!-- 表封照片 -->
<CoverPhotoView ref="cover" />
<!-- 安检表 -->
<component ref="inspectDetail" :is="inspectDetailInfo"/>
</div>
</template>
<script>
import { getDanger } from "@/api/checktask/danger";
import { EditorMap } from "@/utils/mapClass/map";
import { mapGetters } from "vuex";
import { dangerStatusList } from "@/api/checktask/dangerStatus";
import MySteps from "@/components/MySteps";
import MyImage from "@/components/MyImage/index.vue";
import CoverPhotoView from "@/views/checktask/task/components/CoverPhotoView";
import { getUser } from "@/api/baseinfo/user";
import { getBusiness } from "@/api/baseinfo/businessInfo";
import CanyinRecordDetail from "@/views/checktask/inspect/jumInspect/cyRecordDetail";
import IndustryRecordDetail from "@/views/checktask/task/components/IndustryRecordDetail";
import { getTask } from "@/api/checktask/task";
import { dangerApprovalListInfo } from "@/api/checktask/dangerApprovalRecord";
export default {
name: "danger-detail",
components: {
MySteps,
MyImage,
CoverPhotoView,
CanyinRecordDetail,
IndustryRecordDetail
},
data() {
return {
dangerDetailOpen: false,
dangerDetailInfo: {
beforeImg: "",
beforeVideo: "",
afterImg: "",
},
stepsArr: [
{
title: "发现隐患",
a: ["安检员", "-"],
b: ["上报时间", "-"],
},
{
title: "已整改待复查",
a: ["整改人", "-"],
b: ["整改时间", "-"],
},
{
title: "已复查审核中",
a: ["复查人", "-"],
b: ["复查时间", "-"],
},
{
title: "已归档",
a: ["归档人", "-"],
b: ["归档时间", "-"],
}
],
stepsNumData: {
0: 1,
2: 2,
3: 3,
4: 4
},
dangerStatusChangeList: [],
inspectDetailInfo: null,
dangerApprovalList: []
};
},
methods: {
//隐患详情
handleDangerDetail(dangerId) {
getDanger(dangerId).then((response) => {
this.dangerDetailInfo = response.data;
this.dangerDetailOpen = true;
this.$set(this.stepsArr[0].a, 1, this.dangerDetailInfo.reportName);
this.$set(this.stepsArr[0].b, 1, this.dangerDetailInfo.createTime);
this.$set(this.stepsArr[1].a, 1, this.dangerDetailInfo.reformName);
this.$set(this.stepsArr[1].b, 1, this.dangerDetailInfo.reformTime);
this.$set(this.stepsArr[2].a, 1, this.dangerDetailInfo.checkName);
this.$set(this.stepsArr[2].b, 1, this.dangerDetailInfo.checkTime);
this.$set(this.stepsArr[3].a, 1, this.dangerDetailInfo.fileName);
this.$set(this.stepsArr[3].b, 1, this.dangerDetailInfo.fileTime);
this.initMap();
this.statusChangeInfo(dangerId);
});
//获取审核记录
this.getDangerApprovalList(dangerId);
},
//地图初始化
initMap() {
this.$nextTick(() => {
const path = eval(this.systemSetting.map_center);
this.detailGaoMap = new EditorMap(
"dangerMap",
{
center: path,
zoom: 12,
},
this
);
if (this.dangerDetailInfo.longitude) {
this.addLocation({
longitude: this.dangerDetailInfo.longitude,
latitude: this.dangerDetailInfo.latitude,
nickName: this.dangerDetailInfo.title,
iconType: "dangerDetail",
});
}
});
},
//位置上图
addLocation(data) {
this.detailGaoMap.allDevice["dangerDetail"]?.forEach((item) => {
this.detailGaoMap.map.remove(item);
});
this.detailGaoMap.control = 2;
this.detailGaoMap.addDevice(data, null);
this.detailGaoMap.map.panTo([data.longitude, data.latitude]);
},
statusChangeInfo(dangerId) {
dangerStatusList({ dangerId: dangerId }).then((res) => {
if (res.code == 200 && res.data) {
this.dangerStatusChangeList = res.data;
}
});
},
//表封照片
handleCover(row) {
if (!row.meterImg) return this.$message.error("未查询到图片");
this.$refs.cover.viewCoverPhoto(row.meterImg);
},
handleInspect(row){
if (!row.content) return this.$message.error("未查到安检信息!");
//居民和商户
if(row.type == 1 || row.type == 2){
this.inspectDetailInfo = CanyinRecordDetail;
this.$nextTick(() =>{
if (row.type == 1) {
this.getUserInfo(row.receiveId);
}else{
this.getBusinessInfo(row.receiveId);
}
this.$refs.inspectDetail.open = true;
this.$refs.inspectDetail.checkType = row.type;
this.$refs.inspectDetail.map = row;
this.$refs.inspectDetail.jsondata = JSON.parse(row.content);
})
}
if(row.type == 3){
this.inspectDetailInfo = IndustryRecordDetail;
this.$nextTick(() =>{
getTask(row.taskId).then(res =>{
this.$refs.inspectDetail.checkType = res.data.checkType;
this.$refs.inspectDetail.inspectInfo = row;
this.$refs.inspectDetail.open = true;
})
})
}
},
getUserInfo(userId) {
getUser(userId).then((res) => {
this.$refs.inspectDetail.detailInfo = res.data;
});
},
getBusinessInfo(businessId) {
getBusiness(businessId).then((res) => {
this.$refs.inspectDetail.device = JSON.parse(res.data.device);
this.$refs.inspectDetail.detailInfo = res.data;
});
},
//获取审核记录
getDangerApprovalList(dangerId){
dangerApprovalListInfo({dangerId:dangerId}).then(res =>{
if(res.code == 200){
this.dangerApprovalList = res.data;
}
})
}
},
computed: {
...mapGetters(["systemSetting"]),
},
};
</script>
<style scoped lang="scss">
.dangerDetailInfo {
height: 500px;
overflow-y: auto;
padding-right: 10px;
&::-webkit-scrollbar {
width: 3px;
background: #dfe4ed;
position: absolute;
top: 0;
}
&::-webkit-scrollbar-thumb {
/*滚动条里面小方块*/
// border-radius: 10px;
// box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
background: #cccccc;
border-radius: 5px;
}
}
.upload-video {
object-fit: fill;
height: 180px;
width: 208px;
margin-right: 10px;
}
.dlg-wrapper {
height: 700px;
overflow: auto;
padding-right: 10px;
}
.steps {
padding: 15px 0;
}
.top-title {
text-align: center;
font-size: 20px;
}
.container {
background: #f9f9f9;
margin-bottom: 32px;
padding: 10px 10px;
.el-form-item {
margin-bottom: 12px;
}
}
.t {
font-size: 14px;
margin: 7px 0px 7px 0px;
}
#dangerMap {
width: 340px;
height: 305px;
margin-bottom: 5px;
}
.map-bottom {
width: 340px;
text-align: center;
font-size: 14px;
color: #606266;
}
.error {
width: 130px;
height: 130px;
text-align: center;
line-height: 139px;
// background: #f5f7fa;
background: #ffffff;
}
.el-table {
width: 100%;
background-color: #f9f9f9;
}
.scroll{
height: 350px;
overflow-y: auto;
}
</style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
<el-form-item label="隐患标题" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入隐患标题"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!--<el-form-item label="隐患来源" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择隐患来源" clearable size="small">
<el-option
v-for="item in dangerSource"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
/>
</el-select>
</el-form-item>-->
<el-form-item label="隐患状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择隐患状态" clearable size="small">
<el-option label="待处理" value="0" />
<el-option label="拒绝整改" value="1" />
<el-option label="待复查" value="2" />
<el-option label="待审核" value="3" />
<el-option label="已归档" value="4" />
</el-select>
</el-form-item>
<el-form-item label="责任归属人" prop="reformName">
<el-autocomplete
class="inline-input"
v-model="queryParams.reformName"
:fetch-suggestions="queryReformSearch"
placeholder="请输入责任归属人"
:trigger-on-focus="false"
clearable
size="small"
@keyup.enter.native="handleQuery"
></el-autocomplete>
</el-form-item>
<el-form-item label="上报人" prop="reportName">
<el-input
v-model="queryParams.reportName"
placeholder="请输入隐患标题"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="上报时间" prop="reportTimeRange">
<el-date-picker
v-model="reportTimeRange"
type="datetimerange"
size="small"
:clearable="false"
value-format="yyyy-MM-dd HH:mm"
@change="timeChange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['checkTask:danger:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
:loading="exportLoading"
@click="handleExport"
v-hasPermi="['checkTask:danger:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="dangerList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" prop="id" v-if="!$store.state.user.roles.includes('visitor')"/>
<el-table-column label="隐患标题" align="center" prop="title" width="150" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ scope.row.title + (scope.row.remark ? '-' + scope.row.remark : '')}}</span>
</template>
</el-table-column>
<el-table-column label="隐患来源" align="center" prop="type" :formatter="typeFormatter"/>
<el-table-column label="隐患地址" align="center" prop="address" width="150" :show-overflow-tooltip="true"/>
<el-table-column label="隐患状态" align="center" prop="status">
<template slot-scope="scope">
<span v-if="scope.row.status == 0" style="color: red">待处理</span>
<span v-if="scope.row.status == 1" style="color: blue">拒绝整改</span>
<span v-if="scope.row.status == 2" style="color: blue">待复查</span>
<span v-if="scope.row.status == 3" style="color: green">待审核</span>
<span v-if="scope.row.status == 4" style="color: green">已归档</span>
</template>
</el-table-column>
<el-table-column label="上报人" align="center" prop="reportName" />
<el-table-column label="上报时间" align="center" prop="createTime" width="150">
<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="contact" width="150" :show-overflow-tooltip="true"/>
<el-table-column label="联系电话" align="center" prop="phone" width="150" :show-overflow-tooltip="true"/>
<el-table-column label="表号" align="center" prop="meterNumRecord" width="150" :show-overflow-tooltip="true"/>-->
<el-table-column label="整改人" align="center" prop="reformName">
<template slot-scope="scope">
<span v-if="scope.row.reformName">{{ scope.row.reformName }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="整改时间" align="center" prop="reformTime" width="150">
<template slot-scope="scope">
<span v-if="scope.row.reformTime">{{ parseTime(scope.row.reformTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<!--<el-table-column label="备注" align="center" prop="remark" width="100" :show-overflow-tooltip="true"/>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-document"
@click="handleDetail(scope.row)"
>详情</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['checkTask:danger:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['checkTask:danger:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改安检隐患整改对话框 -->
<el-dialog :title="title" :visible.sync="open" width="900px" append-to-body destroy-on-close :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="隐患标题" prop="title">
<el-input v-model="form.title" placeholder="请输入隐患标题" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患级别" prop="level">
<el-select v-model="form.level" placeholder="请选择隐患级别" style="width: 100%">
<el-option label="重大" value="1" />
<el-option label="一般" value="2" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="隐患内容" prop="beforeContent">
<el-input v-model="form.beforeContent" type="textarea" placeholder="请输入隐患内容" />
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item label="联系人" prop="contact">
<el-input v-model="form.contact" placeholder="请输入联系人多个逗号隔开" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入联系电话多个逗号隔开" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="整改人" prop="reformId">
<el-select v-model="form.reformId" placeholder="请选择隐患级别" style="width: 100%">
<el-option
v-for="member in memberInfoList"
:key="member.memberId"
:label="member.nickName"
:value="member.userId"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="表号" prop="meterNumRecord">
<el-input v-model="form.meterNumRecord" placeholder="请输入表号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="具体地址" prop="address">
<el-input v-model="form.address" placeholder="请输入具体地址" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="经纬度坐标" prop="longitude">
<el-col :span="8">
<el-input v-model="form.longitude" placeholder="请输入经度"/>
</el-col>
<el-col :span="8" style="margin-left: 20px">
<el-input v-model="form.latitude" placeholder="请输入纬度"/>
</el-col>
<el-col :span="4" style="margin-left: 30px">
<el-button type="primary" plain @click="MapdialogFun">选择经纬度</el-button>
</el-col>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="备注" prop="remark">
<el-input type="textarea" v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 坐标选择 -->
<GetPos
:dialogVisible.sync="dialogTableVisibles"
:devicePos="devicePos"
@close="dialogcancelFun"
@getPath="getPath"
style="z-index: 3000"
/>
<!-- 详情 -->
<DangerDetail ref="dangerDetail"/>
<!-- 审核 -->
<Approval ref="approval"/>
</div>
</template>
<script>
import { listDanger, getDanger, delDanger, addDanger, updateDanger, exportDanger } from "@/api/checktask/danger";
import Editor from '@/components/Editor';
import GetPos from '@/components/GetPos';
import DangerDetail from "./components/DangerDetail";
import Approval from "./components/Approval";
import { memberInfoList } from "@/api/checktask/dangerGroupMember";
export default {
name: "Danger",
components: {
Editor,
GetPos,
DangerDetail,
Approval
},
data() {
return {
// 遮罩层
loading: true,
// 导出遮罩层
exportLoading: false,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 安检隐患整改表格数据
dangerList: [],
sceneOptions:[],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
taskId: null,
inspectId: null,
type: '9',
category: 1,
receiveId: null,
title: null,
level: null,
beforeContent: null,
address: null,
longitude: null,
latitude: null,
beforeImg: null,
beforeVideo: null,
flag: null,
afterContent: null,
afterImg: null,
startTime: null,
endTime: null,
status: null,
reportName: null,
beginDate: null,
endDate : null,
branch:null,
reformName: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
title: [
{ required: true, message: "隐患标题不能为空", trigger: "blur" }
],
level: [
{ required: true, message: "请选择隐患级别", trigger: "change" }
],
beforeContent: [
{ required: true, message: "隐患内容不能为空", trigger: "blur" }
],
phone: [
{ required: true, message: "电话不能为空", trigger: "blur" },
],
address: [
{ required: true, message: "地址不能为空", trigger: "blur" }
],
reformId: [
{ required: true, message: "请选择整改人", trigger: "change" }
],
contact:[
{ required: true, message: "联系人不能为空", trigger: "blur" }
],
longitude:[
{ required: true, message: "请选择经纬度", trigger: "change" }
]
},
dialogTableVisibles: false,
devicePos: [],
dangerSource: [],
reportTimeRange: [],
memberInfoList: [],
reformMemberInfoList: []
};
},
created() {
this.getList();
this.getDangerSource();
this.getDicts("t_branch").then(response => {
this.sceneOptions = response.data;
});
},
methods: {
branchFormat(row, column) {
return this.selectDictLabel(this.sceneOptions, row.branch);
},
/** 查询安检隐患整改列表 */
getList() {
this.loading = true;
listDanger(this.queryParams).then(response => {
this.dangerList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//隐患来源
getDangerSource(){
this.getDicts("t_danger_source").then(response => {
this.dangerSource = response.data;
});
},
typeFormatter(row){
const receiveName = (row.receiveName && !row.receiveName?.includes("-")) ? '[' + row.receiveName + ']' : '';
return this.selectDictLabel(
this.dangerSource,
row.type
) + receiveName;
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
taskId: null,
inspectId: null,
type: 9,
receiveId: null,
title: null,
level: null,
beforeContent: null,
address: null,
longitude: null,
latitude: null,
beforeImg: null,
beforeVideo: null,
flag: null,
afterContent: null,
afterImg: null,
startTime: null,
endTime: null,
status: 0,
reformId: null,
createTime: null,
remark: null,
contact: null,
meterNumRecord: null,
dealMethod: '3'
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.reportTimeRange = [];
this.queryParams.beginDate = null;
this.queryParams.endDate = null;
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.getMemberInfoList();
this.open = true;
this.title = "添加安检隐患整改";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getDanger(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改安检隐患整改";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateDanger(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addDanger(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除安检隐患整改名称为"' + row.title + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delDanger(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有安检隐患整改数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.exportLoading = true;
return exportDanger(queryParams);
}).then(response => {
this.download(response.msg);
this.exportLoading = false;
}).catch(() => {});
},
/**
* 经纬度坐标方法
*/
MapdialogFun() {
this.dialogTableVisibles = true;
},
/**
* 地图关闭方法
*/
dialogcancelFun() {
this.dialogTableVisibles = false;
},
/**
* 经纬度 选择
* @param res
*/
getPath(res){
//确认选择经纬度
this.form.longitude = res[0];
this.form.latitude = res[1];
},
//详情
handleDetail(row){
this.$refs.dangerDetail.handleDangerDetail(row.id);
},
timeChange(val){
this.queryParams.beginDate = val[0];
this.queryParams.endDate = val[1];
},
handleApproval(row){
let approvalIds = [];
if(row.id){
approvalIds = [row.id];
}else{
if(this.ids.length == 0) {
this.$message.error("至少选择一个隐患");
return;
}
approvalIds = this.ids;
}
this.$refs.approval.open(approvalIds);
},
//获取维修班班长
getMemberInfoList(){
memberInfoList({params:{queryType: 1}}).then(res =>{
if(res.code == 200){
this.memberInfoList = res.data;
}
})
},
//联想责任归属人
queryReformSearch(queryString, cb){
memberInfoList({nickName:queryString}).then(res =>{
if(res.code == 200 && res.data){
let result = res.data.map(item => ({value: item.nickName}));
cb(result);
}
})
},
}
};
</script>
......@@ -401,6 +401,9 @@ export default {
endDate : null,
branch:null,
reformName: null,
params:{
queryType: 1
}
},
// 表单参数
form: {},
......
......@@ -116,9 +116,10 @@
style="width: 100%"
@change="changeType"
>
<el-option label="巡检组" value="1"/>
<el-option label="督查班" value="1"/>
<el-option label="维修班" value="2"/>
<el-option label="网格班" value="3"/>
<el-option label="巡线班" value="4"/>
</el-select>
</el-form-item>
</el-col>
......
<template>
<el-dialog :title="title" :visible.sync="approvalOpen" width="800px" append-to-body destroy-on-close :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="审核状态" prop="state">
<el-radio-group v-model="form.state">
<el-radio :label="0">通过</el-radio>
<el-radio :label="1">不通过</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="审核意见" prop="suggestion">
<el-input type="textarea" v-model="form.suggestion" placeholder="请输入审核意见"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { dangerApproval } from "@/api/checktask/danger";
export default {
name: "approval",
data(){
return{
title: "审核",
approvalOpen: false,
ids: [],
form: {},
rules: {
state: [
{ required: true, message: "请选择审核状态", trigger: "change" }
],
}
}
},
methods:{
open(ids){
this.reset();
this.ids = ids;
this.approvalOpen = true;
},
submitForm(){
this.$refs["form"].validate(valid => {
if (valid) {
let data = [];
this.ids.forEach(item =>{
data.push({
id: item,
...this.form
})
})
dangerApproval(data).then(res =>{
this.$message.success("审核成功");
this.approvalOpen = false;
this.$parent.getList();
})
}
})
},
cancel(){
this.approvalOpen = false;
},
reset(){
this.form = {
state: null,
suggestion: null
}
this.resetForm("form");
}
}
}
</script>
<style scoped>
</style>
<template>
<div>
<el-dialog
title="隐患记录"
:visible.sync="dangerDetailOpen"
width="1400px"
append-to-body
destroy-on-close
:close-on-click-modal="false"
>
<div class="dlg-wrapper">
<div class="steps">
<MySteps
:stepsData="stepsArr"
:active="stepsNumData[dangerDetailInfo.status] || 0"
/>
</div>
<el-row>
<div class="t">隐患信息</div>
<el-row class="container flex bb">
<el-col :span="16">
<el-form label-width="140px" class="el-table">
<el-col :span="12">
<el-form-item label="隐患标题">
<span>{{ dangerDetailInfo.title }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患状态">
<span v-if="dangerDetailInfo.status == 0">待处理</span>
<span v-if="dangerDetailInfo.status == 1">拒绝整改</span>
<span v-if="dangerDetailInfo.status == 2">待复查</span>
<span v-if="dangerDetailInfo.status == 3">待审核</span>
<span v-if="dangerDetailInfo.status == 4">已归档</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患来源">
<span>{{ $parent.typeFormatter(dangerDetailInfo) }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患级别">
<span v-if="dangerDetailInfo.level == 1">重大</span>
<span v-if="dangerDetailInfo.level == 2">一般</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上报时间">
{{
parseTime(
dangerDetailInfo.createTime,
"{y}-{m}-{d} {h}:{i}:{s}"
)
}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患内容">
<span v-if="dangerDetailInfo.beforeContent">{{
dangerDetailInfo.beforeContent
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上报人">
{{ dangerDetailInfo.reportName }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人">
<span v-if="dangerDetailInfo.contact">{{ dangerDetailInfo.contact }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话">
<span v-if="dangerDetailInfo.phone">{{
dangerDetailInfo.phone
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="表号">
<span v-if="dangerDetailInfo.meterNumRecord">{{ dangerDetailInfo.meterNumRecord }}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患地址">
<span v-if="dangerDetailInfo.address">{{
dangerDetailInfo.address
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改前图片" prop="beforeImg">
<div>
<MyImage
v-if="dangerDetailInfo.beforeImg"
:src="dangerDetailInfo.beforeImg.split(',')[0]"
:previewSrcList="dangerDetailInfo.beforeImg.split(',')"
/>
<div class="error" v-else>暂无图片</div>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改前视频" prop="beforeVideo">
<span v-if="dangerDetailInfo.beforeVideo">
<video
v-for="videoInfo in dangerDetailInfo.beforeVideo.split(
','
)"
:key="videoInfo"
type="video/mp4"
controls="controls"
:src="videoInfo"
class="upload-video"
/>
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改期限">
<span v-if="dangerDetailInfo.endTime">{{
dangerDetailInfo.endTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改方式">
<span v-if="dangerDetailInfo.dealMethod == '1'">燃气用户整改</span>
<span v-else-if="dangerDetailInfo.dealMethod == '2'">用户出资公司整改</span>
<span v-else-if="dangerDetailInfo.dealMethod == '3'">燃气公司整改</span>
<!--<span v-else-if="dangerDetailInfo.dealMethod == '4'">公司出资整改</span>-->
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="营业网点">
<span>{{ $parent.branchFormat(dangerDetailInfo,null) }}</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="dangerDetailInfo.type == '8'">
<el-form-item label="治理的标准要求">
<span v-if="dangerDetailInfo.governanceStandards">
{{ dangerDetailInfo.governanceStandards}}
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="dangerDetailInfo.type == '8'">
<el-form-item label="治理方法和措施">
<span v-if="dangerDetailInfo.governanceMethod">
{{ dangerDetailInfo.governanceMethod}}
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="dangerDetailInfo.type == '8'">
<el-form-item label="经费和物资的落实">
<span v-if="dangerDetailInfo.fundsMaterials">
{{ dangerDetailInfo.fundsMaterials}}
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="dangerDetailInfo.type == '8'">
<el-form-item label="安全措施和应急预案">
<span v-if="dangerDetailInfo.safetyEmergencyPlan">
{{ dangerDetailInfo.safetyEmergencyPlan}}
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注">
<span v-if="dangerDetailInfo.remark">{{
dangerDetailInfo.remark
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-form>
</el-col>
<el-col :span="8">
<div id="dangerMap"></div>
<div class="map-bottom">隐患上报位置</div>
</el-col>
</el-row>
<div class="t" v-if="dangerDetailInfo.tTaskInspect">安检信息</div>
<el-row class="container flex bb" v-if="dangerDetailInfo.tTaskInspect">
<el-form label-width="110px" class="el-table">
<el-col style="height: auto" :span="8">
<el-col :span="24">
<el-form-item label="安检时间">
<span v-if="dangerDetailInfo.tTaskInspect.createTime">{{ dangerDetailInfo.tTaskInspect.createTime}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="安检人">
<span v-if="dangerDetailInfo.tTaskInspect.memberName">{{
dangerDetailInfo.tTaskInspect.memberName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-col>
<el-col :span="16">
<el-col :span="24">
<el-form-item label="签字状态">
<span v-if="dangerDetailInfo.tTaskInspect.sign == 0">未签字</span>
<span v-else-if="dangerDetailInfo.tTaskInspect.sign == 1">已签字</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="操作">
<el-button
type="text"
@click="handleInspect(dangerDetailInfo.tTaskInspect)"
>安检单</el-button>
<el-button
type="text"
@click="handleCover(dangerDetailInfo.tTaskInspect)"
>图片</el-button>
</el-form-item>
</el-col>
</el-col>
</el-form>
</el-row>
<div class="t">整改信息</div>
<el-row class="container flex bb">
<el-form label-width="110px" class="el-table">
<el-col style="height: auto" :span="8">
<el-col :span="24">
<el-form-item label="整改内容">
<span v-if="dangerDetailInfo.afterContent">{{
dangerDetailInfo.afterContent
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="整改人">
<span v-if="dangerDetailInfo.reformName">{{
dangerDetailInfo.reformName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<!--<el-col :span="24">
<el-form-item label="整改期限">
<span v-if="dangerDetailInfo.endTime">{{
dangerDetailInfo.endTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>-->
<el-col :span="24">
<el-form-item label="整改时间">
<span v-if="dangerDetailInfo.reformTime">{{
dangerDetailInfo.reformTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-col>
<el-col :span="16">
<el-col :span="24">
<el-form-item label="整改后图片">
<div>
<MyImage
v-if="dangerDetailInfo.afterImg"
:src="dangerDetailInfo.afterImg.split(',')[0]"
:previewSrcList="dangerDetailInfo.afterImg.split(',')"
/>
<div class="error" v-else>暂无图片</div>
</div>
</el-form-item>
</el-col>
</el-col>
</el-form>
</el-row>
<div class="t">复查信息</div>
<el-row class="container flex bb">
<el-form label-width="110px" class="el-table">
<el-col style="height: auto" :span="8">
<el-col :span="24">
<el-form-item label="复查人">
<span v-if="dangerDetailInfo.checkName">{{
dangerDetailInfo.checkName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="复查时间">
<span v-if="dangerDetailInfo.checkTime">{{
dangerDetailInfo.checkTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="复查备注">
<span v-if="dangerDetailInfo.checkRemark">{{
dangerDetailInfo.checkRemark
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-col>
<el-col :span="16">
<el-col :span="24">
<el-form-item label="复查图片" prop="checkImg">
<div>
<MyImage
v-if="dangerDetailInfo.checkImg"
:src="dangerDetailInfo.checkImg.split(',')[0]"
:previewSrcList="dangerDetailInfo.checkImg.split(',')"
/>
<div class="error" v-else>暂无图片</div>
</div>
</el-form-item>
</el-col>
</el-col>
</el-form>
</el-row>
<div class="t">审核信息</div>
<div class="container bb">
<el-form label-width="110px" class="el-table scroll" v-if="dangerApprovalList.length > 0">
<el-timeline >
<el-timeline-item
placement="top"
type="primary"
v-for="(activity, index) in dangerApprovalList"
:key="index"
:timestamp="activity.createTime">
<el-card>
<el-form-item label="审核人">{{activity.nickName}}</el-form-item>
<el-form-item label="审状态">
<span v-if="activity.approvalStatus == '0'">通过</span>
<span v-else>不通过</span>
</el-form-item>
<el-form-item label="审核意见">{{ activity.suggestion }}</el-form-item>
</el-card>
</el-timeline-item>
</el-timeline>
</el-form>
</div>
<div class="t">归档信息</div>
<el-row class="container flex bb">
<el-form label-width="110px" class="el-table">
<el-col :span="24">
<el-col :span="4">
<el-form-item label="归档人">
<span v-if="dangerDetailInfo.fileName">{{
dangerDetailInfo.fileName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="归档时间">
<span v-if="dangerDetailInfo.fileTime">{{
dangerDetailInfo.fileTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<!--<el-col :span="14">
<el-form-item label="复查备注">
<span v-if="dangerDetailInfo.checkRemark">{{
dangerDetailInfo.checkRemark
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>-->
</el-col>
</el-form>
</el-row>
</el-row>
<!-- <el-row>
<el-col :span="14">
<el-form label-width="110px" class="dangerDetailInfo">
<div style="font-size: 20px; margin: 7px 0px 7px 0px">隐患信息</div>
<el-row>
<el-col :span="12">
<el-form-item label="隐患标题">
<span>{{ dangerDetailInfo.title }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患状态">
<span v-if="dangerDetailInfo.status == 0">待处理</span>
<span v-if="dangerDetailInfo.status == 1">拒绝整改</span>
<span v-if="dangerDetailInfo.status == 2">待复查</span>
<span v-if="dangerDetailInfo.status == 3">待审核</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="隐患来源">
<span>{{ $parent.typeFormatter(dangerDetailInfo) }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="用户">
<span v-if="dangerDetailInfo.receiveName">{{
dangerDetailInfo.receiveName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="隐患级别">
<span v-if="dangerDetailInfo.level == 1">一级</span>
<span v-if="dangerDetailInfo.level == 2">二级</span>
<span v-if="dangerDetailInfo.level == 3">三级</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患责任人">
<span v-if="dangerDetailInfo.flag == 1">用户自己</span>
<span v-else-if="dangerDetailInfo.flag == 2">公司客服部</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="上报人">
{{ dangerDetailInfo.reportName }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上报时间">
{{
parseTime(
dangerDetailInfo.createTime,
"{y}-{m}-{d} {h}:{i}:{s}"
)
}}
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item label="隐患地址">
<span v-if="dangerDetailInfo.address">{{
dangerDetailInfo.address
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患内容">
<span v-if="dangerDetailInfo.beforeContent">{{
dangerDetailInfo.beforeContent
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患备注">
<span v-if="dangerDetailInfo.remark">{{
dangerDetailInfo.remark
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患整改前图片" prop="beforeImg">
<span v-if="dangerDetailInfo.beforeImg">
<el-image
v-for="imageInfo in dangerDetailInfo.beforeImg.split(',')"
:src="imageInfo"
:preview-src-list="[imageInfo]"
:z-index="9999"
style="width: 99px; height: 100px; margin-right: 10px"
/>
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患整改前视频" prop="beforeVideo">
<span v-if="dangerDetailInfo.beforeVideo">
<video
v-for="videoInfo in dangerDetailInfo.beforeVideo.split(',')"
type="video/mp4"
controls="controls"
:src="videoInfo"
class="upload-video"
/>
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<div style="font-size: 20px; margin: 7px 0px 7px 0px">整改信息</div>
<el-col :span="12">
<el-form-item label="整改人">
<span v-if="dangerDetailInfo.reformName">{{
dangerDetailInfo.reformName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改期限">
<span v-if="dangerDetailInfo.endTime">{{
dangerDetailInfo.endTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改时间">
<span v-if="dangerDetailInfo.reformTime">{{
dangerDetailInfo.reformTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="整改内容">
<span v-if="dangerDetailInfo.afterContent">{{
dangerDetailInfo.afterContent
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-row>
<el-col :span="24">
<el-form-item label="隐患整改后图片">
<span v-if="dangerDetailInfo.afterImg">
<el-image
v-for="afterImageInfo in dangerDetailInfo.afterImg.split(
','
)"
:src="afterImageInfo"
:preview-src-list="[afterImageInfo]"
:z-index="9999"
style="width: 99px; height: 100px; margin-right: 10px"
/>
</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-row>
<div style="font-size: 20px; margin: 7px 0px 7px 0px">复查信息</div>
<el-row>
<el-col :span="12">
<el-form-item label="复查人">
<span v-if="dangerDetailInfo.checkName">{{
dangerDetailInfo.checkName
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="复查时间">
<span v-if="dangerDetailInfo.checkTime">{{
dangerDetailInfo.checkTime
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="复查备注">
<span v-if="dangerDetailInfo.checkRemark">{{
dangerDetailInfo.checkRemark
}}</span>
<span v-else>-</span>
</el-form-item>
</el-col>
</el-row>
<div style="font-size: 20px; margin: 7px 0px 7px 0px">变更信息</div>
<el-table :data="dangerStatusChangeList">
<el-table-column
label="时间"
align="center"
prop="optime"
:show-overflow-tooltip="true"
/>
<el-table-column
label="状态"
align="center"
prop="status"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<span v-if="scope.row.status == 0">待处理</span>
<span v-if="scope.row.status == 1">拒绝整改</span>
<span v-if="scope.row.status == 2">待复查</span>
<span v-if="scope.row.status == 3">待审核</span>
</template>
</el-table-column>
<el-table-column
label="操作人"
align="center"
prop="operator"
:show-overflow-tooltip="true"
/>
</el-table>
</el-form>
</el-col>
<el-col :span="10">
<div
id="dangerMap"
style="width: 100%; height: 500px; border: 1px solid"
></div>
</el-col>
</el-row> -->
</div>
</el-dialog>
<!-- 表封照片 -->
<CoverPhotoView ref="cover" />
<!-- 安检表 -->
<component ref="inspectDetail" :is="inspectDetailInfo"/>
</div>
</template>
<script>
import { getDanger } from "@/api/checktask/danger";
import { EditorMap } from "@/utils/mapClass/map";
import { mapGetters } from "vuex";
import { dangerStatusList } from "@/api/checktask/dangerStatus";
import MySteps from "@/components/MySteps";
import MyImage from "@/components/MyImage/index.vue";
import CoverPhotoView from "@/views/checktask/task/components/CoverPhotoView";
import { getUser } from "@/api/baseinfo/user";
import { getBusiness } from "@/api/baseinfo/businessInfo";
import CanyinRecordDetail from "@/views/checktask/inspect/jumInspect/cyRecordDetail";
import IndustryRecordDetail from "@/views/checktask/task/components/IndustryRecordDetail";
import { getTask } from "@/api/checktask/task";
import { dangerApprovalListInfo } from "@/api/checktask/dangerApprovalRecord";
export default {
name: "danger-detail",
components: {
MySteps,
MyImage,
CoverPhotoView,
CanyinRecordDetail,
IndustryRecordDetail
},
data() {
return {
dangerDetailOpen: false,
dangerDetailInfo: {
beforeImg: "",
beforeVideo: "",
afterImg: "",
},
stepsArr: [
{
title: "发现隐患",
a: ["安检员", "-"],
b: ["上报时间", "-"],
},
{
title: "已整改待复查",
a: ["整改人", "-"],
b: ["整改时间", "-"],
},
{
title: "已复查审核中",
a: ["复查人", "-"],
b: ["复查时间", "-"],
},
{
title: "已归档",
a: ["归档人", "-"],
b: ["归档时间", "-"],
}
],
stepsNumData: {
0: 1,
2: 2,
3: 3,
4: 4
},
dangerStatusChangeList: [],
inspectDetailInfo: null,
dangerApprovalList: []
};
},
methods: {
//隐患详情
handleDangerDetail(dangerId) {
getDanger(dangerId).then((response) => {
this.dangerDetailInfo = response.data;
this.dangerDetailOpen = true;
this.$set(this.stepsArr[0].a, 1, this.dangerDetailInfo.reportName);
this.$set(this.stepsArr[0].b, 1, this.dangerDetailInfo.createTime);
this.$set(this.stepsArr[1].a, 1, this.dangerDetailInfo.reformName);
this.$set(this.stepsArr[1].b, 1, this.dangerDetailInfo.reformTime);
this.$set(this.stepsArr[2].a, 1, this.dangerDetailInfo.checkName);
this.$set(this.stepsArr[2].b, 1, this.dangerDetailInfo.checkTime);
this.$set(this.stepsArr[3].a, 1, this.dangerDetailInfo.fileName);
this.$set(this.stepsArr[3].b, 1, this.dangerDetailInfo.fileTime);
this.initMap();
this.statusChangeInfo(dangerId);
});
//获取审核记录
this.getDangerApprovalList(dangerId);
},
//地图初始化
initMap() {
this.$nextTick(() => {
const path = eval(this.systemSetting.map_center);
this.detailGaoMap = new EditorMap(
"dangerMap",
{
center: path,
zoom: 12,
},
this
);
if (this.dangerDetailInfo.longitude) {
this.addLocation({
longitude: this.dangerDetailInfo.longitude,
latitude: this.dangerDetailInfo.latitude,
nickName: this.dangerDetailInfo.title,
iconType: "dangerDetail",
});
}
});
},
//位置上图
addLocation(data) {
this.detailGaoMap.allDevice["dangerDetail"]?.forEach((item) => {
this.detailGaoMap.map.remove(item);
});
this.detailGaoMap.control = 2;
this.detailGaoMap.addDevice(data, null);
this.detailGaoMap.map.panTo([data.longitude, data.latitude]);
},
statusChangeInfo(dangerId) {
dangerStatusList({ dangerId: dangerId }).then((res) => {
if (res.code == 200 && res.data) {
this.dangerStatusChangeList = res.data;
}
});
},
//表封照片
handleCover(row) {
if (!row.meterImg) return this.$message.error("未查询到图片");
this.$refs.cover.viewCoverPhoto(row.meterImg);
},
handleInspect(row){
if (!row.content) return this.$message.error("未查到安检信息!");
//居民和商户
if(row.type == 1 || row.type == 2){
this.inspectDetailInfo = CanyinRecordDetail;
this.$nextTick(() =>{
if (row.type == 1) {
this.getUserInfo(row.receiveId);
}else{
this.getBusinessInfo(row.receiveId);
}
this.$refs.inspectDetail.open = true;
this.$refs.inspectDetail.checkType = row.type;
this.$refs.inspectDetail.map = row;
this.$refs.inspectDetail.jsondata = JSON.parse(row.content);
})
}
if(row.type == 3){
this.inspectDetailInfo = IndustryRecordDetail;
this.$nextTick(() =>{
getTask(row.taskId).then(res =>{
this.$refs.inspectDetail.checkType = res.data.checkType;
this.$refs.inspectDetail.inspectInfo = row;
this.$refs.inspectDetail.open = true;
})
})
}
},
getUserInfo(userId) {
getUser(userId).then((res) => {
this.$refs.inspectDetail.detailInfo = res.data;
});
},
getBusinessInfo(businessId) {
getBusiness(businessId).then((res) => {
this.$refs.inspectDetail.device = JSON.parse(res.data.device);
this.$refs.inspectDetail.detailInfo = res.data;
});
},
//获取审核记录
getDangerApprovalList(dangerId){
dangerApprovalListInfo({dangerId:dangerId}).then(res =>{
if(res.code == 200){
this.dangerApprovalList = res.data;
}
})
}
},
computed: {
...mapGetters(["systemSetting"]),
},
};
</script>
<style scoped lang="scss">
.dangerDetailInfo {
height: 500px;
overflow-y: auto;
padding-right: 10px;
&::-webkit-scrollbar {
width: 3px;
background: #dfe4ed;
position: absolute;
top: 0;
}
&::-webkit-scrollbar-thumb {
/*滚动条里面小方块*/
// border-radius: 10px;
// box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
background: #cccccc;
border-radius: 5px;
}
}
.upload-video {
object-fit: fill;
height: 180px;
width: 208px;
margin-right: 10px;
}
.dlg-wrapper {
height: 700px;
overflow: auto;
padding-right: 10px;
}
.steps {
padding: 15px 0;
}
.top-title {
text-align: center;
font-size: 20px;
}
.container {
background: #f9f9f9;
margin-bottom: 32px;
padding: 10px 10px;
.el-form-item {
margin-bottom: 12px;
}
}
.t {
font-size: 14px;
margin: 7px 0px 7px 0px;
}
#dangerMap {
width: 340px;
height: 305px;
margin-bottom: 5px;
}
.map-bottom {
width: 340px;
text-align: center;
font-size: 14px;
color: #606266;
}
.error {
width: 130px;
height: 130px;
text-align: center;
line-height: 139px;
// background: #f5f7fa;
background: #ffffff;
}
.el-table {
width: 100%;
background-color: #f9f9f9;
}
.scroll{
height: 350px;
overflow-y: auto;
}
</style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
<el-form-item label="隐患标题" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入隐患标题"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="隐患状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择隐患状态" clearable size="small">
<el-option label="待处理" value="0" />
<el-option label="拒绝整改" value="1" />
<el-option label="待复查" value="2" />
<el-option label="待审核" value="3" />
<el-option label="已归档" value="4" />
</el-select>
</el-form-item>
<el-form-item label="责任归属人" prop="reformName">
<el-autocomplete
class="inline-input"
v-model="queryParams.reformName"
:fetch-suggestions="queryReformSearch"
placeholder="请输入责任归属人"
:trigger-on-focus="false"
clearable
size="small"
@keyup.enter.native="handleQuery"
></el-autocomplete>
</el-form-item>
<el-form-item label="上报人" prop="reportName">
<el-input
v-model="queryParams.reportName"
placeholder="请输入隐患标题"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="上报时间" prop="reportTimeRange">
<el-date-picker
v-model="reportTimeRange"
type="datetimerange"
size="small"
:clearable="false"
value-format="yyyy-MM-dd HH:mm"
@change="timeChange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!--<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['checkTask:danger:add']"
>新增</el-button>
</el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
:loading="exportLoading"
@click="handleExport"
v-hasPermi="['checkTask:danger:export']"
>导出</el-button>
</el-col>
<!--<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="handleApproval"
v-hasPermi="['checkTask:danger:approval']"
>审核</el-button>
</el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="dangerList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" prop="id" v-if="!$store.state.user.roles.includes('visitor')"/>
<el-table-column label="隐患标题" align="center" prop="title" width="150" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ scope.row.title + (scope.row.remark ? '-' + scope.row.remark : '')}}</span>
</template>
</el-table-column>
<el-table-column label="隐患来源" align="center" prop="type" :formatter="typeFormatter"/>
<!--<el-table-column label="营业网点" align="center" prop="branch" :formatter="branchFormat"/>
<el-table-column label="表具编号" align="center" prop="meterNum" />-->
<!--<el-table-column label="责任归属" align="center" prop="flag">
<template slot-scope="scope">
<span v-if="scope.row.flag == 1">安全管理部</span>
<span v-else-if="scope.row.flag == 2">客服运营部</span>
<span v-else-if="scope.row.flag == 3">生产运营部</span>
<span v-else>-</span>
</template>
</el-table-column>-->
<!--<el-table-column label="隐患级别" align="center" prop="level">
<template slot-scope="scope">
<span v-if="scope.row.level == 1">重大</span>
<span v-if="scope.row.level == 2">一般</span>
</template>
</el-table-column>-->
<el-table-column label="隐患地址" align="center" prop="address" width="150" :show-overflow-tooltip="true"/>
<el-table-column label="隐患状态" align="center" prop="status">
<template slot-scope="scope">
<span v-if="scope.row.status == 0" style="color: red">待处理</span>
<span v-if="scope.row.status == 1" style="color: blue">拒绝整改</span>
<span v-if="scope.row.status == 2" style="color: blue">待复查</span>
<span v-if="scope.row.status == 3" style="color: green">待审核</span>
<span v-if="scope.row.status == 4" style="color: green">已归档</span>
</template>
</el-table-column>
<el-table-column label="上报人" align="center" prop="reportName" />
<el-table-column label="上报时间" align="center" prop="createTime" width="150">
<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="reformName">
<template slot-scope="scope">
<span v-if="scope.row.reformName">{{ scope.row.reformName }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="整改时间" align="center" prop="reformTime" width="150">
<template slot-scope="scope">
<span v-if="scope.row.reformTime">{{ parseTime(scope.row.reformTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<!--<el-table-column label="备注" align="center" prop="remark" width="100" :show-overflow-tooltip="true"/>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-document"
@click="handleDetail(scope.row)"
>详情</el-button>
<!-- <el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['checkTask:danger:edit']"
>修改</el-button>-->
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['checkTask:danger:remove']"
>删除</el-button>
<!--<el-button
size="mini"
type="text"
@click="handleApproval(scope.row)"
v-if="scope.row.hasApprovalPermission"
v-hasPermi="['checkTask:danger:approval']"
>审核</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="900px" append-to-body destroy-on-close :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="隐患标题" prop="title">
<el-input v-model="form.title" placeholder="请输入隐患标题" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="隐患级别" prop="level">
<el-select v-model="form.level" placeholder="请选择隐患级别" style="width: 100%">
<el-option label="重大" value="1" />
<el-option label="一般" value="2" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="隐患内容" prop="beforeContent">
<el-input v-model="form.beforeContent" type="textarea" placeholder="请输入隐患内容" />
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item label="整改人" prop="reformId">
<el-select v-model="form.reformId" placeholder="请选择隐患级别" style="width: 100%">
<el-option
v-for="member in memberInfoList"
:key="member.memberId"
:label="member.nickName"
:value="member.userId"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="phone">
<el-input v-model="form.phone" maxlength="11" placeholder="请输入联系电话" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="具体地址" prop="address">
<el-input v-model="form.address" placeholder="请输入具体地址" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="经纬度坐标" prop="longitude">
<el-col :span="8">
<el-input v-model="form.longitude" placeholder="请输入经度"/>
</el-col>
<el-col :span="8" style="margin-left: 20px">
<el-input v-model="form.latitude" placeholder="请输入纬度"/>
</el-col>
<el-col :span="4" style="margin-left: 30px">
<el-button type="primary" plain @click="MapdialogFun">选择经纬度</el-button>
</el-col>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="备注" prop="remark">
<el-input type="textarea" v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 坐标选择 -->
<GetPos
:dialogVisible.sync="dialogTableVisibles"
:devicePos="devicePos"
@close="dialogcancelFun"
@getPath="getPath"
style="z-index: 3000"
/>
<!-- 详情 -->
<DangerDetail ref="dangerDetail"/>
<!-- 审核 -->
<Approval ref="approval"/>
</div>
</template>
<script>
import { listDanger, getDanger, delDanger, addDanger, updateDanger, exportDanger } from "@/api/checktask/danger";
import Editor from '@/components/Editor';
import GetPos from '@/components/GetPos';
import DangerDetail from "./components/DangerDetail";
import Approval from "./components/Approval";
import { memberInfoList } from "@/api/checktask/dangerGroupMember";
export default {
name: "Danger",
components: {
Editor,
GetPos,
DangerDetail,
Approval
},
data() {
return {
// 遮罩层
loading: true,
// 导出遮罩层
exportLoading: false,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 安检隐患整改表格数据
dangerList: [],
sceneOptions:[],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
taskId: null,
inspectId: null,
type: '10',
category: 1,
receiveId: null,
title: null,
level: null,
beforeContent: null,
address: null,
longitude: null,
latitude: null,
beforeImg: null,
beforeVideo: null,
flag: null,
afterContent: null,
afterImg: null,
startTime: null,
endTime: null,
status: null,
reportName: null,
beginDate: null,
endDate : null,
branch:null,
reformName: null
},
// 表单参数
form: {},
// 表单校验
rules: {
title: [
{ required: true, message: "隐患标题不能为空", trigger: "blur" }
],
level: [
{ required: true, message: "请选择隐患级别", trigger: "change" }
],
beforeContent: [
{ required: true, message: "隐患内容不能为空", trigger: "blur" }
],
phone: [
{ required: true, message: "电话不能为空", trigger: "blur" },
{
type: 'number',
message: '手机号格式不正确',
trigger: 'blur',
transform(value) {
let phonereg = 11 && /^((13|14|15|16|17|18|19)[0-9]{1}\d{8})$/
if (!phonereg.test(value)) {
return false
} else {
return Number(value)
}
}
}
],
address: [
{ required: true, message: "地址不能为空", trigger: "blur" }
],
reformId: [
{ required: true, message: "请选择整改人", trigger: "change" }
],
},
dialogTableVisibles: false,
devicePos: [],
dangerSource: [],
reportTimeRange: [],
memberInfoList: [],
reformMemberInfoList: []
};
},
created() {
this.getList();
this.getDangerSource();
this.getDicts("t_branch").then(response => {
this.sceneOptions = response.data;
});
},
methods: {
branchFormat(row, column) {
return this.selectDictLabel(this.sceneOptions, row.branch);
},
/** 查询安检隐患整改列表 */
getList() {
this.loading = true;
listDanger(this.queryParams).then(response => {
this.dangerList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//隐患来源
getDangerSource(){
this.getDicts("t_danger_source").then(response => {
this.dangerSource = response.data;
});
},
typeFormatter(row){
const receiveName = (row.receiveName && !row.receiveName?.includes("-")) ? '[' + row.receiveName + ']' : '';
return this.selectDictLabel(
this.dangerSource,
row.type
) + receiveName;
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
taskId: null,
inspectId: null,
type: 7,
receiveId: null,
title: null,
level: null,
beforeContent: null,
address: null,
longitude: null,
latitude: null,
beforeImg: null,
beforeVideo: null,
flag: null,
afterContent: null,
afterImg: null,
startTime: null,
endTime: null,
status: 0,
reformId: null,
createTime: null,
remark: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.reportTimeRange = [];
this.queryParams.beginDate = null;
this.queryParams.endDate = null;
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.getMemberInfoList();
this.open = true;
this.title = "添加安检隐患整改";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getDanger(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改安检隐患整改";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateDanger(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addDanger(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除安检隐患整改名称为"' + row.title + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delDanger(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有安检隐患整改数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.exportLoading = true;
return exportDanger(queryParams);
}).then(response => {
this.download(response.msg);
this.exportLoading = false;
}).catch(() => {});
},
/**
* 经纬度坐标方法
*/
MapdialogFun() {
this.dialogTableVisibles = true;
},
/**
* 地图关闭方法
*/
dialogcancelFun() {
this.dialogTableVisibles = false;
},
/**
* 经纬度 选择
* @param res
*/
getPath(res){
//确认选择经纬度
this.form.longitude = res[0];
this.form.latitude = res[1];
},
//详情
handleDetail(row){
this.$refs.dangerDetail.handleDangerDetail(row.id);
},
timeChange(val){
this.queryParams.beginDate = val[0];
this.queryParams.endDate = val[1];
},
handleApproval(row){
let approvalIds = [];
if(row.id){
approvalIds = [row.id];
}else{
if(this.ids.length == 0) {
this.$message.error("至少选择一个隐患");
return;
}
approvalIds = this.ids;
}
this.$refs.approval.open(approvalIds);
},
//获取维修班班长
getMemberInfoList(){
memberInfoList({type: '2',post: '1'}).then(res =>{
if(res.code == 200){
this.memberInfoList = res.data;
}
})
},
//联想责任归属人
queryReformSearch(queryString, cb){
memberInfoList({nickName:queryString}).then(res =>{
if(res.code == 200 && res.data){
let result = res.data.map(item => ({value: item.nickName}));
cb(result);
}
})
},
}
};
</script>
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