| | |
| | | <div class="header"> |
| | | <div class="left"> |
| | | <div class="h1">隐患提报</div> |
| | | <div class="time">提报时间:{{model.createDate}}</div> |
| | | <div class="time">提报时间:{{model.submitTime}}</div> |
| | | </div> |
| | | <div class="right" v-if="model.status==0">待处理</div> |
| | | <div class="right" style="background:#53b76f " v-if="model.status==1">已处理</div> |
| | |
| | | <video |
| | | v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" |
| | | ref="videoRef" |
| | | autoplay |
| | | controls |
| | | preload="auto" |
| | | style="width: 80px;height: 80px;object-fit: contain;" |
| | |
| | | <div class="item" v-for="(item,index) in logList" :key="item.id"> |
| | | <div class="separate" v-if="index < logList.length-1"></div> |
| | | <div class="info"> |
| | | <i class="el-icon-success icon" v-if="(model.status ==1) || index < logList.length-1"></i> |
| | | <i class="el-icon-question icon1" v-if="(model.status==0) && index == logList.length-1"></i> |
| | | <i class="el-icon-error icon2" v-if="(model.status==2) && index == logList.length-1"></i> |
| | | <img src="@/assets/icons/ic_tongguo.png" class="iconnew" v-if="(model.status ==1) || index < logList.length-1"/> |
| | | <img src="@/assets/icons/ic_dangqian.png" class="iconnew" v-if="(model.status==0) && index == logList.length-1"/> |
| | | <img src="@/assets/icons/ic_jujue.png" class="iconnew" v-if="(model.status==2) && index == logList.length-1"/> |
| | | <img v-if="item.avatar!=null && item.avatar !=''" :src="item.avatar" class="avatar" alt="" /> |
| | | <img v-if="item.avatar ==null ||item.avatar ==''" src="@/assets/avatar/man.png" class="avatar" alt="" /> |
| | | <div class="content"> |
| | |
| | | </div> |
| | | <div class="line"> |
| | | <div class="company"> |
| | | {{ item.createUserName }} {{ item.companyName }} |
| | | {{ item.createUserName }} |
| | | <div style="display: inline" v-if="index == logList.length-1"> |
| | | (<span class="status-green" v-if="model.status==1">已处理</span> |
| | | <span class="status-blue" v-if="model.status==0">待处理</span> |
| | |
| | | </div> |
| | | <!-- --> |
| | | <template v-slot:footer> |
| | | <el-button @click="isShowProblem = true" type="primary" v-if="model.status==0&& model.checkUserId == userInfo.memberId" class="status-red">处理</el-button> |
| | | <el-button @click="openHandModal" type="primary" v-if="model.status==0&& model.checkUserId == userInfo.memberId" class="status-red">处理</el-button> |
| | | <el-button type="primary" plain v-if="model.status==0 && model.checkUserId == userInfo.memberId" @click="handleTransfer">转交</el-button> |
| | | <el-button @click="isBackProblem=true" v-if="model.status==0&& model.checkUserId == userInfo.memberId" type="danger" >退回</el-button> |
| | | <el-button @click="openBackModal" v-if="model.status==0&& model.checkUserId == userInfo.memberId" type="danger" >退回</el-button> |
| | | <el-button @click="visible=false">返回</el-button> |
| | | </template> |
| | | |
| | |
| | | <el-select v-model="transForm.memberId" style="width: 300px" filterable clearable placeholder="请选择转交安全员"> |
| | | <el-option |
| | | v-for="item in memberList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | :key="item.memberId" |
| | | :label="item.companyName ? `${item.realname}-${item.companyName}` : item.realname" |
| | | :value="item.memberId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | v-model="backForm.checkDate" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="整改前" prop="dealBeforeFileList"> |
| | | <el-form-item label="图片/视频" prop="dealBeforeFileList"> |
| | | <div class="df_ac"> |
| | | <upload width="80px" height="80px" :list="backForm.dealBeforeFileList" :tips="'图片/视频'" accept=".png,.jpg,.jpeg,.mp4" folder="hiddendanger" @loading="uploading = true" @dele="dele($event,2)" @success="uploadFileList($event, 2)" /> |
| | | </div> |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import upload from '@/components/common/upload' |
| | | import dayjs from 'dayjs' |
| | | import { memberList } from '@/api/business/hiddenDangerParam' |
| | | import { mapState } from 'vuex' |
| | | import {findAllList as userList} from "@/api/system/user"; |
| | | export default { |
| | | components: { GlobalWindow, upload }, |
| | | extends: BaseOpera, |
| | |
| | | /*, |
| | | dealBeforeFileList: [ |
| | | { required: true, message: '请上传整改前情况' } |
| | | ]*/ |
| | | ] */ |
| | | }, |
| | | memberList: [], |
| | | transForm: { |
| | |
| | | }) |
| | | }, |
| | | methods: { |
| | | openHandModal () { |
| | | const { model } = this |
| | | this.isShowProblem = true |
| | | this.$set(this.dealForm, 'checkDate', dayjs().format('YYYY-MM-DD HH:mm:ss')) |
| | | if (model.submitFileList && model.submitFileList.length > 0) { |
| | | this.$set(this.dealForm, 'dealBeforeFileList', model.submitFileList.map(item => { |
| | | return { |
| | | fileurl: item.fileurl, |
| | | name: item.name, |
| | | url: item.fileurlFull |
| | | } |
| | | })) |
| | | } |
| | | }, |
| | | openBackModal () { |
| | | this.isBackProblem = true |
| | | this.$set(this.backForm, 'checkDate', dayjs().format('YYYY-MM-DD HH:mm:ss')) |
| | | }, |
| | | dele (index, type) { |
| | | if (type == 0) { |
| | | if (this.dealForm.dealBeforeFileList != null && this.dealForm.dealBeforeFileList.length > index) { |
| | |
| | | this.$tip.apiSuccess('处理成功') |
| | | this.getDetail() |
| | | this.getLogList() |
| | | this.$emit('success') |
| | | this.isShowProblem = false |
| | | }) |
| | | .catch(e => { |
| | |
| | | this.$tip.apiSuccess('退回成功') |
| | | this.getDetail() |
| | | this.getLogList() |
| | | this.$emit('success') |
| | | this.isBackProblem = false |
| | | }) |
| | | .catch(e => { |
| | |
| | | this.$tip.apiSuccess('转交成功') |
| | | this.getDetail() |
| | | this.getLogList() |
| | | this.$emit('success') |
| | | this.isShowTransfer = false |
| | | }) |
| | | .catch(e => { |
| | |
| | | this.loadMemberList() |
| | | }, |
| | | loadMemberList () { |
| | | memberList({}).then(res => { |
| | | userList({ queryParam: this.filterText, querySpecial: 1, type: 2, companyType: 1, workStatus: 0 }) |
| | | .then(res => { |
| | | this.memberList = res || [] |
| | | }) |
| | | /*memberList({}).then(res => { |
| | | this.memberList = res |
| | | }) |
| | | })*/ |
| | | }, |
| | | reject () { }, |
| | | handleAvatarSuccess () { }, |
| | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/style/variables.scss"; |
| | | .side_title{ |
| | | font-weight: 600; |
| | | font-size: 18px; |
| | |
| | | |
| | | .value { |
| | | color: #111111; |
| | | flex: 1; |
| | | } |
| | | } |
| | | } |
| | |
| | | color: #53b76f; |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .iconnew{ |
| | | width: 24px; |
| | | height: 24px; |
| | | } |
| | | .icon1 { |
| | | position: relative; |
| | | z-index: 11; |
| | |
| | | height: 40px; |
| | | border-radius: 50%; |
| | | margin: 0 12px 0 16px; |
| | | border: 1px solid; |
| | | //border: 1px solid; |
| | | } |
| | | .content { |
| | | flex: 1; |
| | |
| | | font-size: 13px; |
| | | color: #888888; |
| | | .status { |
| | | color: #00ba67; |
| | | color: $primaryColor; |
| | | } |
| | | } |
| | | } |