MrShi
2025-08-19 ff087240b3dee29ce4e14ad0836e76b9fdf312cf
admin/src/components/business/OperaWorkorderDetailSheWindow.vue
@@ -8,16 +8,16 @@
    <div class="modal_wrap">
      <div class="modal_content">
        <div class="header">
          <img v-if="info.status == '3'" class="head_bg"
               src="@/assets/task/bg_shenhe_fail@2x.png" alt="">
          <img v-else-if="info.status == '4'" class="head_bg"
<!--          <img v-if="info.status == '0'" class="head_bg"
               src="@/assets/task/bg_shenhe_fail@2x.png" alt="">-->
          <img v-if="info.status == '4' || info.status == '3'||info.status == '5'||info.status == '6'" class="head_bg"
               src="@/assets/task/bg_shenhe_pass@2x.png" alt="">
          <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt="">
          <div class="left">
            <div class="h1">{{ cateList[type] }}</div>
            <div class="time">提交时间:{{ info.createDate }}</div>
          </div>
          <div class="right"  :class="{ scs: info.status == '3' || info.status == '4' || info.status == '5',  msg: info.status == '6' }">{{statusMap[info.status] }}</div>
          <div class="right"  :style="(info.status ==0 ||info.status ==1 || info.status ==2)?'min-width: 90px':''"   :class="{ scs: info.status == '3' || info.status == '4' || info.status == '5',  msg: info.status == '6' }">{{statusMap[info.status] }}</div>
        </div>
        <div class="info">
          <div class="title">工单信息</div>
@@ -25,6 +25,10 @@
            <div class="item">
              <div class="label">员工姓名</div>
              <div class="value">{{ info.memberName }} - {{ info.memberPhone || '[无手机号]' }}</div>
            </div>
            <div class="item">
              <div class="label">所属部门</div>
              <div class="value">{{ info.companyName }} </div>
            </div>
            <div class="item">
              <div class="label">上报时间</div>
@@ -37,8 +41,8 @@
              <div class="value" v-else>本人</div>
            </div>
            <div class="item">
              <div class="label">发生地点</div>
              <div class="value">{{ info.locationName }}</div>
              <div class="label">发现时间</div>
              <div class="value">{{ info.happenTime }}</div>
            </div>
            <div class="item">
              <div class="label">外部就医</div>
@@ -59,6 +63,14 @@
            <div class="item">
              <div class="label">和工作相关</div>
              <div class="value">{{ info.workRelated == "0" ? "否" : "是" }}</div>
            </div>
            <div class="item">
              <div class="label">发生地点</div>
              <div class="value">{{ info.locationName }}</div>
            </div>
            <div class="item">
              <div class="label">具体位置</div>
              <div class="value">{{ info.remark }}</div>
            </div>
            <div class="item">
              <div class="label">事件说明</div>
@@ -89,7 +101,7 @@
          </div>
        </div>
      </div>
      <div class="side">
      <div class="side" v-if="false">
        <div class="side_title">操作历史</div>
        <div class="list" v-if=" info.logList != null && info.logList.length != 0
        ">
@@ -136,7 +148,7 @@
            <div v-if="item.approveType == 1" class="childList">
              <div class="m_content company" v-for="item1 in item.approveList" :key="item1.id">
                <img v-if="item1.faceImg != null && item1.faceImg != ''" :src="item1.faceImg" class="avatar" alt="" />
                <img v-if="item1.faceImg == null || item1.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
                <img v-if="item1.faceImg == null || item1.faceImg == ''" src="../../assets/avatar/man.png" class="avatar"
                     alt="" />
                <span> {{ item1.memberName }}</span>
              </div>
@@ -155,6 +167,7 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import {getById } from '@/api/business/workorder'
export default {
  name: 'OperaWorkorderWindow',
  extends: BaseOpera,
@@ -166,18 +179,18 @@
      title: '工单详情',
      info: {},
      statusMap: {
        0: '待分配WTS',
        1: '待分配任务',
        2: '待处理',
        3: '已解决',
        4: '已解决',
        5: '已解决'
        0: '处理中',
        1: '处理中',
        2: '处理中',
        3: '已处理',
        4: '已处理',
        5: '已处理'
      },
      cateList: {
        0: 'SHE事件工单',
        1: '跌绊滑事件工单',
        2: 'DCA事件提交记录',
        3: 'DCA事件工单'
        1: 'DCA事件提交记录',
        2: 'DCA事件工单',
        3: '跌绊滑事件工单'
      }
    }
  },
@@ -186,34 +199,27 @@
      this.title = title
      this.visible = true
      this.info = target
      this.getDetail()
      this.type = this.info.type
    },
    close () {
      this.visible = false
    },
    getDetail () {
      const { id, type } = this
      switch (type) {
      case 0:
        getVisitedDetail({ id }).then(res => {
          this.info = res
          if (this.info.approveDateVO && this.info.approveDateVO.approveList.length > 0) {
            this.info.approveDateVO.approveList.forEach(item => {
              if (item.approveList && item.approveList.length == 1 && item.type !== 1) {
                item.title = item.approveList[0].title
                item.faceImg = item.approveList[0].faceImg
                item.memberName = item.approveList[0].memberName
                item.statusInfo = item.approveList[0].statusInfo
                item.approveList = []
              }
            })
          }
        })
        break
      default:
        break
      }
      getById(this.info.id).then(res => {
        this.info = res
        if (this.info.logList && this.info.logList.length > 0) {
          this.info.logList.forEach(item => {
            if (item.approveList && item.approveList.length == 1 && item.type !== 1) {
              item.title = item.approveList[0].title
              item.faceImg = item.approveList[0].faceImg
              item.memberName = item.approveList[0].memberName
              item.statusInfo = item.approveList[0].statusInfo
              item.approveList = []
            }
          })
        }
      })
    },
    reject () { },
    handleAvatarSuccess () { },
@@ -257,7 +263,7 @@
.modal_wrap {
  display: flex;
  height: 100%;
  height: auto;
  .modal_content {
    flex: 1;
@@ -281,12 +287,12 @@
        .item {
          display: flex;
          width: 40%;
          width: 50%;
          font-size: 14px;
          margin-bottom: 20px;
          &:nth-of-type(2n) {
            width: 60%;
            width: 50%;
          }
          .label {
@@ -295,6 +301,7 @@
          }
          .value {
             width: calc(100% - 100px);
            color: #111111;
          }
        }