<template> 
 | 
  <GlobalWindow :title="title" :visible.sync="isShowModal" @confirm="confirm"> 
 | 
    <div class="modal_wrap"> 
 | 
      <div class="modal_content"> 
 | 
        <div class="header"> 
 | 
          <div class="left"> 
 | 
            <div class="h1">{{ cateList[type] }}</div> 
 | 
            <div class="time">提交时间:{{ info.createDate }}</div> 
 | 
          </div> 
 | 
          <div class="right">{{ statusMap[info.status] }}</div> 
 | 
        </div> 
 | 
        <div class="info"> 
 | 
          <div class="title">隐患随手拍信息</div> 
 | 
          <div class="list"> 
 | 
            <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.areaName }}</div> 
 | 
            </div> 
 | 
            <div class="item"> 
 | 
              <div class="label">隐患类型</div> 
 | 
              <div class="value">{{ info.categoryName }}</div> 
 | 
            </div> 
 | 
            <div class="item"> 
 | 
              <div class="label">隐患描述</div> 
 | 
              <div class="value">{{ info.content }}</div> 
 | 
            </div> 
 | 
            <div class="item file"> 
 | 
              <div class="label">现场情况</div> 
 | 
              <div class="value"> 
 | 
                <div class="file_list"> 
 | 
                  <div class="file" v-for="item in info.submitFileList"> 
 | 
                    <img 
 | 
                      v-if="item.type == 0" 
 | 
                      :key="item.id" 
 | 
                      :src="item.fileurlFull" 
 | 
                      mode="widthFix" 
 | 
                      class="img" 
 | 
                    /> 
 | 
                    <video 
 | 
                      v-if="item.type == 1" 
 | 
                      :key="item.id" 
 | 
                      :src="item.fileurlFull" 
 | 
                      class="img" 
 | 
                      controls 
 | 
                    /> 
 | 
                  </div> 
 | 
                </div> 
 | 
              </div> 
 | 
            </div> 
 | 
          </div> 
 | 
        </div> 
 | 
      </div> 
 | 
      <div class="side"> 
 | 
        <div class="side_title">审批流程</div> 
 | 
        <div 
 | 
          class="list" 
 | 
          v-if=" 
 | 
            info.approveDateVO != null && info.approveDateVO.approveList != null 
 | 
          " 
 | 
        > 
 | 
          <div 
 | 
            class="item" 
 | 
            v-for="(item, index) in info.approveDateVO.approveList" 
 | 
            :key="item.id" 
 | 
          > 
 | 
            <div 
 | 
              class="separate" 
 | 
              v-if="index < info.approveDateVO.approveList.length - 1" 
 | 
            ></div> 
 | 
            <div class="info"> 
 | 
              <img 
 | 
                src="@/assets/icons/ic_tongguo.png" 
 | 
                class="iconnew" 
 | 
                v-if="item.status == 2" 
 | 
              /> 
 | 
              <img 
 | 
                src="@/assets/icons/ic_dangqian.png" 
 | 
                class="iconnew" 
 | 
                v-if="item.status == 1" 
 | 
              /> 
 | 
              <img 
 | 
                src="@/assets/icons/ic_jujue.png" 
 | 
                class="iconnew" 
 | 
                v-if="item.status == 3" 
 | 
              /> 
 | 
              <img 
 | 
                src="@/assets/icons/ic_grey.png" 
 | 
                class="iconnew" 
 | 
                v-if="item.status == null || item.status == 0" 
 | 
              /> 
 | 
              <div style="display: inline" v-if="item.approveType != 1"> 
 | 
                <img 
 | 
                  v-if="item.faceImg != null && item.faceImg != ''" 
 | 
                  :src="item.faceImg" 
 | 
                  class="avatar" 
 | 
                  alt="" 
 | 
                /> 
 | 
                <img 
 | 
                  v-if="item.faceImg == null || item.faceImg == ''" 
 | 
                  src="@/assets/avatar/man.png" 
 | 
                  class="avatar" 
 | 
                  alt="" 
 | 
                /> 
 | 
              </div> 
 | 
              <div style="display: inline" v-if="item.approveType == 1"> 
 | 
                <img 
 | 
                  v-if="item.type != 1" 
 | 
                  src="@/assets/icons/ic_duoren.png" 
 | 
                  class="avatar" 
 | 
                  alt="" 
 | 
                /> 
 | 
                <img 
 | 
                  v-if="item.type == 1" 
 | 
                  src="@/assets/icons/ic_chaosong.png" 
 | 
                  class="avatar" 
 | 
                  alt="" 
 | 
                /> 
 | 
              </div> 
 | 
              <div class="content"> 
 | 
                <div class="line"> 
 | 
                  <div class="name">{{ item.title }}</div> 
 | 
                  <div class="time">{{ item.checkDate }}</div> 
 | 
                </div> 
 | 
                <div class="line"> 
 | 
                  <div class="company"> 
 | 
                    {{ item.memberName }} 
 | 
                    <div 
 | 
                      style="display: inline" 
 | 
                      v-if="item.statusInfo != null && item.statusInfo != ''" 
 | 
                    > 
 | 
                      (<span class="status-green">{{ 
 | 
                        item.statusInfo || "" 
 | 
                      }}</span 
 | 
                      >) 
 | 
                    </div> 
 | 
                  </div> 
 | 
                </div> 
 | 
              </div> 
 | 
            </div> 
 | 
            <div 
 | 
              v-if=" 
 | 
                item.approveType != 1 && 
 | 
                item.checkInfo != null && 
 | 
                item.checkInfo != '' 
 | 
              " 
 | 
              class="remark" 
 | 
            > 
 | 
              {{ item.checkInfo || "" }} 
 | 
            </div> 
 | 
            <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" 
 | 
                  alt="" 
 | 
                /> 
 | 
                <span> {{ item1.memberName }}</span> 
 | 
              </div> 
 | 
            </div> 
 | 
          </div> 
 | 
        </div> 
 | 
      </div> 
 | 
    </div> 
 | 
    <!--  --> 
 | 
    <template v-slot:footer> 
 | 
      <el-button @click="handleAppr" type="primary" class="status-red" 
 | 
        >处理</el-button 
 | 
      > 
 | 
      <el-button @click="isShowTransfer = true" type="primary" plain 
 | 
        >转交</el-button 
 | 
      > 
 | 
      <el-button @click="isShowBack = true" type="danger" plain>退回</el-button> 
 | 
      <el-button @click="isShowModal = false">返回</el-button> 
 | 
    </template> 
 | 
    <!--  同意/拒绝 --> 
 | 
    <el-dialog 
 | 
      append-to-body 
 | 
      title="隐患转交" 
 | 
      :visible.sync="isShowTransfer" 
 | 
      width="600px" 
 | 
    > 
 | 
      <el-form 
 | 
        :model="transferForm" 
 | 
        :rules="handleRules" 
 | 
        ref="transferForm" 
 | 
        label-width="100px" 
 | 
        class="demo-ruleForm" 
 | 
      > 
 | 
        <el-form-item label="隐患转交人" prop="checkUserId"> 
 | 
          <el-select 
 | 
            v-model="transferForm.checkUserId" 
 | 
            filterable 
 | 
            placeholder="请选择 单选" 
 | 
          > 
 | 
            <el-option 
 | 
              v-for="item in memberList" 
 | 
              :key="item.id" 
 | 
              :label="item.name" 
 | 
              :value="item.id" 
 | 
            > 
 | 
            </el-option> 
 | 
          </el-select> 
 | 
        </el-form-item> 
 | 
      </el-form> 
 | 
      <span slot="footer" class="dialog-footer"> 
 | 
        <el-button @click="isShowTransfer = false">取消</el-button> 
 | 
        <el-button :loading="subLoading" type="primary" @click="onTransfer" 
 | 
          >确定</el-button 
 | 
        > 
 | 
      </span> 
 | 
    </el-dialog> 
 | 
    <!-- 隐患 --> 
 | 
    <el-dialog 
 | 
      append-to-body 
 | 
      title="隐患整改" 
 | 
      :visible.sync="isShowProblem" 
 | 
      width="600px" 
 | 
    > 
 | 
      <el-form 
 | 
        :model="handleParam" 
 | 
        :rules="handleRules" 
 | 
        ref="handleForm" 
 | 
        label-width="100px" 
 | 
      > 
 | 
        <el-form-item label="整改时间" prop="dealTime"> 
 | 
          <el-date-picker 
 | 
            class="w300" 
 | 
            value-format="yyyy-MM-dd hh:mm:ss" 
 | 
            type="datetime" 
 | 
            placeholder="选择日期" 
 | 
            v-model="handleParam.dealTime" 
 | 
          /> 
 | 
        </el-form-item> 
 | 
        <el-form-item label="整改前" prop="dealBeforeFileList"> 
 | 
          <div class="upload_wrap"> 
 | 
            <el-upload 
 | 
              class="avatar-uploader" 
 | 
              :action="uploadUrl" 
 | 
              :show-file-list="false" 
 | 
              :on-success="handleAvatarSuccess" 
 | 
              :before-upload="beforeAvatarUpload" 
 | 
            > 
 | 
              <img v-if="param.url" :src="param.url" class="avatar" /> 
 | 
              <div v-else class="upload_box"> 
 | 
                <el-icon class="el-icon-plus icon" /> 
 | 
                <div class="text">图片/视频</div> 
 | 
              </div> 
 | 
            </el-upload> 
 | 
            <template v-if="handleParam.dealBeforeFileList"> 
 | 
              <div 
 | 
                class="img_wrap" 
 | 
                v-for="(img, i) in handleParam.dealBeforeFileList" 
 | 
                :key="i" 
 | 
              > 
 | 
                <img v-if="img.type == 0" :src="img.fileurlFull" alt="" /> 
 | 
                <video 
 | 
                  v-if="img.type == 1" 
 | 
                  :src="img.fileurlFull" 
 | 
                  controls 
 | 
                  alt="" 
 | 
                /> 
 | 
              </div> 
 | 
            </template> 
 | 
          </div> 
 | 
        </el-form-item> 
 | 
        <el-form-item label="整改后" prop="dealAfterFileList"> 
 | 
          <div class="upload_wrap"> 
 | 
            <el-upload 
 | 
              class="avatar-uploader" 
 | 
              :action="uploadUrl" 
 | 
              :show-file-list="false" 
 | 
              :on-success="handleAfterSuccess" 
 | 
              :before-upload="beforeAvatarUpload" 
 | 
            > 
 | 
              <img v-if="param.url" :src="param.url" class="avatar" /> 
 | 
              <div v-else class="upload_box"> 
 | 
                <el-icon class="el-icon-plus icon" /> 
 | 
                <div class="text">图片/视频</div> 
 | 
              </div> 
 | 
            </el-upload> 
 | 
            <template v-if="handleParam.dealAfterFileList"> 
 | 
              <div 
 | 
                class="img_wrap" 
 | 
                v-for="(img, i) in handleParam.dealAfterFileList" 
 | 
                :key="i" 
 | 
              > 
 | 
                <img v-if="img.type == 0" :src="img.fileurlFull" alt="" /> 
 | 
                <video 
 | 
                  v-if="img.type == 1" 
 | 
                  :src="img.fileurlFull" 
 | 
                  controls 
 | 
                  alt="" 
 | 
                /> 
 | 
              </div> 
 | 
            </template> 
 | 
          </div> 
 | 
        </el-form-item> 
 | 
        <el-form-item label="整改说明"> 
 | 
          <el-input 
 | 
            type="textarea" 
 | 
            placeholder="请填写说明" 
 | 
            :rows="4" 
 | 
            v-model="handleParam.checkInfo" 
 | 
          /> 
 | 
        </el-form-item> 
 | 
      </el-form> 
 | 
      <span slot="footer" class="dialog-footer"> 
 | 
        <el-button @click="isShowProblem = false">取消</el-button> 
 | 
        <el-button type="primary" :loading="subLoading" @click="onSubAppr" 
 | 
          >确定</el-button 
 | 
        > 
 | 
      </span> 
 | 
    </el-dialog> 
 | 
    <el-dialog 
 | 
      append-to-body 
 | 
      title="隐患退回" 
 | 
      :visible.sync="isShowBack" 
 | 
      width="600px" 
 | 
    > 
 | 
      <el-form 
 | 
        :model="backForm" 
 | 
        :rules="handleRules" 
 | 
        ref="backForm" 
 | 
        label-width="100px" 
 | 
      > 
 | 
        <el-form-item label="整改时间" prop="dealTime"> 
 | 
          <el-date-picker 
 | 
            class="w300" 
 | 
            value-format="yyyy-MM-dd hh:mm:ss" 
 | 
            type="datetime" 
 | 
            placeholder="选择日期" 
 | 
            v-model="backForm.dealTime" 
 | 
          /> 
 | 
        </el-form-item> 
 | 
        <el-form-item label="整改前"> 
 | 
          <div class="upload_wrap"> 
 | 
            <el-upload 
 | 
              class="avatar-uploader" 
 | 
              :action="uploadUrl" 
 | 
              :show-file-list="false" 
 | 
              :on-success="handleBackSuccess" 
 | 
              :before-upload="beforeAvatarUpload" 
 | 
            > 
 | 
              <div class="upload_box"> 
 | 
                <el-icon class="el-icon-plus icon" /> 
 | 
                <div class="text">图片/视频</div> 
 | 
              </div> 
 | 
            </el-upload> 
 | 
            <template v-if="backForm.dealBeforeFileList"> 
 | 
              <div 
 | 
                class="img_wrap" 
 | 
                v-for="(img, i) in backForm.dealBeforeFileList" 
 | 
                :key="i" 
 | 
              > 
 | 
                <img v-if="img.type == 0" :src="img.fileurlFull" alt="" /> 
 | 
                <video 
 | 
                  v-if="img.type == 1" 
 | 
                  :src="img.fileurlFull" 
 | 
                  controls 
 | 
                  alt="" 
 | 
                /> 
 | 
              </div> 
 | 
            </template> 
 | 
          </div> 
 | 
        </el-form-item> 
 | 
        <el-form-item label="整改说明"> 
 | 
          <el-input 
 | 
            type="textarea" 
 | 
            placeholder="请填写说明" 
 | 
            :rows="4" 
 | 
            v-model="backForm.checkInfo" 
 | 
          /> 
 | 
        </el-form-item> 
 | 
      </el-form> 
 | 
      <span slot="footer" class="dialog-footer"> 
 | 
        <el-button @click="isShowBack = false">取消</el-button> 
 | 
        <el-button type="primary" :loading="subLoading" @click="onSubBack" 
 | 
          >确定</el-button 
 | 
        > 
 | 
      </span> 
 | 
    </el-dialog> 
 | 
  </GlobalWindow> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
import GlobalWindow from '@/components/common/GlobalWindow' 
 | 
import { memberList } from '@/api/business/hiddenDangerParam' 
 | 
import { 
 | 
  uploadFile, 
 | 
  hiddenDangerDetail, 
 | 
  dealHiddenDanger, 
 | 
  transferHiddenDanger 
 | 
} from '@/api/index' 
 | 
  
 | 
export default { 
 | 
  components: { GlobalWindow }, 
 | 
  data () { 
 | 
    return { 
 | 
      id: '', 
 | 
      type: '', 
 | 
      uploadUrl: uploadFile, 
 | 
  
 | 
      title: '访客预约详情', 
 | 
      isShowModal: false, 
 | 
      info: {}, 
 | 
      isShowAppr: false, 
 | 
      apprTitle: '同意', 
 | 
      subLoading: false, 
 | 
      param: {}, 
 | 
      handleParam: {}, 
 | 
      backForm: {}, 
 | 
      isShowBack: false, 
 | 
      isShowTransfer: false, 
 | 
      transferForm: {}, 
 | 
      memberList: [], 
 | 
      isShowProblem: false, 
 | 
      rules: { 
 | 
        checkInfo: [{ required: true, message: '请输入', trigger: 'blur' }] 
 | 
      }, 
 | 
      handleRules: { 
 | 
        dealTime: [{ required: true, message: '请选择', trigger: 'change' }], 
 | 
        dealBeforeFileList: [{ type: 'array', required: true, message: '请选择', trigger: 'change' }], 
 | 
        checkUserId: [{ required: true, message: '请选择', trigger: 'change' }], 
 | 
        dealAfterFileList: [{ type: 'array', required: true, message: '请选择', trigger: 'change' }] 
 | 
      }, 
 | 
      statusMap: { 
 | 
        0: '待审批', 
 | 
        1: '审批中', 
 | 
        2: '审批通过', 
 | 
        3: '审批未通过', 
 | 
        4: '已取消', 
 | 
        5: '他人或签', 
 | 
        6: '他人拒绝' 
 | 
      }, 
 | 
      cateList: { 
 | 
        0: '访客申请', 
 | 
        1: '访客报备', 
 | 
        2: '用车申请', 
 | 
        3: '隐患随手拍', 
 | 
        4: '物流车申请' 
 | 
      } 
 | 
    } 
 | 
  }, 
 | 
  created () { 
 | 
    this.getMemberList() 
 | 
  }, 
 | 
  methods: { 
 | 
    onSubAppr () { 
 | 
      this.$refs.handleForm.validate((valid) => { 
 | 
        if (!valid) { 
 | 
          return 
 | 
        } 
 | 
        this.subLoading = true 
 | 
        dealHiddenDanger({ 
 | 
          ...this.handleParam, 
 | 
          status: 1, 
 | 
          id: this.id 
 | 
        }) 
 | 
          .then(res => { 
 | 
            this.subLoading = false 
 | 
            this.$tip.apiSuccess('处理成功') 
 | 
            this.getDetail() 
 | 
            this.isShowProblem = false 
 | 
          }) 
 | 
          .finally(() => { 
 | 
            this.subLoading = false 
 | 
          }) 
 | 
      }) 
 | 
    }, 
 | 
    onSubBack () { 
 | 
      this.$refs.backForm.validate((valid) => { 
 | 
        if (!valid) { 
 | 
          return 
 | 
        } 
 | 
        this.subLoading = true 
 | 
        dealHiddenDanger({ 
 | 
          ...this.backForm, 
 | 
          status: 2, 
 | 
          id: this.id 
 | 
        }) 
 | 
          .then(res => { 
 | 
            this.subLoading = false 
 | 
            this.$tip.apiSuccess('退回成功') 
 | 
            this.getDetail() 
 | 
            this.isShowProblem = false 
 | 
          }) 
 | 
          .finally(() => { 
 | 
            this.subLoading = false 
 | 
          }) 
 | 
      }) 
 | 
    }, 
 | 
    onTransfer () { 
 | 
      this.$refs.transferForm.validate((valid) => { 
 | 
        if (!valid) { 
 | 
          return 
 | 
        } 
 | 
        this.subLoading = true 
 | 
        transferHiddenDanger({ 
 | 
          ...this.transferForm, 
 | 
          id: this.id 
 | 
        }) 
 | 
          .then(res => { 
 | 
            this.subLoading = false 
 | 
            if (res.code !== 200) return 
 | 
            this.$tip.apiSuccess('转交成功') 
 | 
            this.getDetail() 
 | 
            this.isShowTransfer = false 
 | 
          }) 
 | 
          .finally(() => { 
 | 
            this.subLoading = false 
 | 
          }) 
 | 
      }) 
 | 
    }, 
 | 
    getMemberList () { 
 | 
      memberList({}).then(res => { 
 | 
        this.memberList = res || [] 
 | 
      }) 
 | 
    }, 
 | 
    getDetail () { 
 | 
      const { id } = this 
 | 
      hiddenDangerDetail(id).then(res => { 
 | 
        this.info = res 
 | 
      }) 
 | 
    }, 
 | 
    handleAppr (val) { 
 | 
      this.isShowProblem = true 
 | 
    }, 
 | 
    confirm () { 
 | 
      console.log('--') 
 | 
    }, 
 | 
    handleTransfer () { 
 | 
      this.isShowProblem = true 
 | 
    }, 
 | 
    reject () { }, 
 | 
    handleAvatarSuccess (res) { 
 | 
      if (res.code === 200) { 
 | 
        const str = res.data.url.indexOf('png') > 0 || res.data.url.indexOf('jpg') > 0 
 | 
        const arr = this.handleParam.dealBeforeFileList || [] 
 | 
        arr.push({ 
 | 
          type: str ? 0 : 1, 
 | 
          fileurl: res.data.imgaddr, 
 | 
          fileurlFull: res.data.url 
 | 
        }) 
 | 
        this.$set(this.handleParam, 'dealBeforeFileList', arr) 
 | 
      } 
 | 
    }, 
 | 
    handleAfterSuccess (res) { 
 | 
      if (res.code === 200) { 
 | 
        const str = res.data.url.indexOf('png') > 0 || res.data.url.indexOf('jpg') > 0 
 | 
        const arr = this.handleParam.dealAfterFileList || [] 
 | 
        arr.push({ 
 | 
          type: str ? 0 : 1, 
 | 
          fileurl: res.data.imgaddr, 
 | 
          fileurlFull: res.data.url 
 | 
        }) 
 | 
        this.$set(this.handleParam, 'dealAfterFileList', arr) 
 | 
      } 
 | 
    }, 
 | 
    handleBackSuccess (res) { 
 | 
      if (res.code === 200) { 
 | 
        const str = res.data.url.indexOf('png') > 0 || res.data.url.indexOf('jpg') > 0 
 | 
        const arr = this.backForm.dealBeforeFileList || [] 
 | 
        arr.push({ 
 | 
          type: str ? 0 : 1, 
 | 
          fileurl: res.data.imgaddr, 
 | 
          fileurlFull: res.data.url 
 | 
        }) 
 | 
        this.$set(this.backForm, 'dealBeforeFileList', arr) 
 | 
      } 
 | 
    }, 
 | 
    beforeAvatarUpload () { } 
 | 
  } 
 | 
} 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
.upload_wrap { 
 | 
  display: flex; 
 | 
  flex-wrap: wrap; 
 | 
  .img_wrap { 
 | 
    width: 85px; 
 | 
    margin-right: 10px; 
 | 
    margin-bottom: 10px; 
 | 
    img, 
 | 
    video { 
 | 
      width: 100%; 
 | 
    } 
 | 
  } 
 | 
} 
 | 
.upload_box { 
 | 
  width: 84px; 
 | 
  height: 84px; 
 | 
  border-radius: 4px; 
 | 
  background-color: #f7f7f7; 
 | 
  display: flex; 
 | 
  flex-direction: column; 
 | 
  justify-content: center; 
 | 
  align-items: center; 
 | 
  color: #999999; 
 | 
  border: 1px solid #e4e4e4; 
 | 
  .icon { 
 | 
    font-size: 24px; 
 | 
  } 
 | 
  .text { 
 | 
    font-size: 12px; 
 | 
  } 
 | 
} 
 | 
.side_title { 
 | 
  font-weight: 600; 
 | 
  font-size: 18px; 
 | 
  color: #111111; 
 | 
  margin-bottom: 20px; 
 | 
  margin-left: 20px; 
 | 
  margin-top: 20px; 
 | 
} 
 | 
.modal_wrap { 
 | 
  display: flex; 
 | 
  height: 100%; 
 | 
  .modal_content { 
 | 
    flex: 1; 
 | 
    padding: 0px 30px; 
 | 
    border-radius: 8px; 
 | 
    overflow: hidden; 
 | 
    height: 100%; 
 | 
  
 | 
    .title { 
 | 
      font-weight: 600; 
 | 
      font-size: 18px; 
 | 
      color: #333333; 
 | 
      margin-bottom: 20px; 
 | 
      margin-top: 30px; 
 | 
    } 
 | 
    .info { 
 | 
      .list { 
 | 
        display: flex; 
 | 
        flex-wrap: wrap; 
 | 
  
 | 
        .item { 
 | 
          display: flex; 
 | 
          width: 40%; 
 | 
          margin-bottom: 20px; 
 | 
          &:nth-of-type(2n) { 
 | 
            width: 60%; 
 | 
          } 
 | 
  
 | 
          .label { 
 | 
            color: #888888; 
 | 
            width: 100px; 
 | 
          } 
 | 
          .file_list { 
 | 
            display: flex; 
 | 
            .file { 
 | 
              width: 92px; 
 | 
              margin-right: 12px; 
 | 
              margin-bottom: 12px; 
 | 
              .img{ 
 | 
                max-height: 92px; 
 | 
                max-width: 92px; 
 | 
              } 
 | 
            } 
 | 
          } 
 | 
          .value { 
 | 
            color: #111111; 
 | 
          } 
 | 
        } 
 | 
        .file { 
 | 
          width: 100%; 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  
 | 
    .header { 
 | 
      display: flex; 
 | 
      justify-content: space-between; 
 | 
      align-items: center; 
 | 
      padding: 20px 30px; 
 | 
      margin: 0 -30px; 
 | 
      border-radius: 8px 8px 0 0; 
 | 
      background: linear-gradient(to right, #f2f6fe, #cadffa); 
 | 
  
 | 
      .h1 { 
 | 
        font-weight: 600; 
 | 
        font-size: 22px; 
 | 
        color: #111111; 
 | 
        margin-bottom: 8px; 
 | 
      } 
 | 
  
 | 
      .time { 
 | 
        font-size: 14px; 
 | 
        color: #999999; 
 | 
      } 
 | 
  
 | 
      .right { 
 | 
        height: 40px; 
 | 
        font-size: 16px; 
 | 
        color: #ffffff; 
 | 
        line-height: 40px; 
 | 
        padding: 0 20px; 
 | 
        background: #207ff7; 
 | 
        box-shadow: 4px 4px 0px 0px rgba(32, 127, 247, 0.16); 
 | 
        border-radius: 16px 0px 16px 0px; 
 | 
      } 
 | 
    } 
 | 
    .table_info { 
 | 
      .name_wrap { 
 | 
        display: flex; 
 | 
        align-items: center; 
 | 
        .avatar { 
 | 
          width: 40px; 
 | 
          height: 40px; 
 | 
          border-radius: 50%; 
 | 
          margin-right: 12px; 
 | 
        } 
 | 
        .content { 
 | 
          .line { 
 | 
            display: flex; 
 | 
          } 
 | 
          .tag { 
 | 
            color: #b2cbf9; 
 | 
            border: 1px solid #b2cbf9; 
 | 
            padding: 0px 4px; 
 | 
            border-radius: 4px; 
 | 
            margin-left: 6px; 
 | 
          } 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
  
 | 
  .side { 
 | 
    height: 100%; 
 | 
    width: 420px; 
 | 
    background: #ffffff; 
 | 
    border-left: 20px solid #f7f7f7; 
 | 
    .list { 
 | 
      .item { 
 | 
        padding: 8px 0; 
 | 
        position: relative; 
 | 
        .separate { 
 | 
          position: absolute; 
 | 
          border-left: 2px dashed #cccccc; 
 | 
          left: 31px; 
 | 
          height: calc(100% - 36px); 
 | 
          top: 49px; 
 | 
        } 
 | 
        .avatar { 
 | 
          width: 40px; 
 | 
          height: 40px; 
 | 
          border-radius: 50%; 
 | 
          margin: 0 12px 0 16px; 
 | 
          //border: 1px solid; 
 | 
        } 
 | 
        .childList { 
 | 
          display: flex; 
 | 
          flex-wrap: wrap; 
 | 
          margin-left: 100px; 
 | 
        } 
 | 
        .company { 
 | 
          font-size: 13px; 
 | 
          color: #888888; 
 | 
          .status { 
 | 
            color: #00ba67; 
 | 
          } 
 | 
        } 
 | 
        .m_content { 
 | 
          display: flex; 
 | 
          flex-direction: column; 
 | 
          align-items: center; 
 | 
          justify-content: center; 
 | 
          margin-bottom: 4px; 
 | 
        } 
 | 
        .info { 
 | 
          display: flex; 
 | 
          align-items: center; 
 | 
          margin-left: 20px; 
 | 
          .icon { 
 | 
            position: relative; 
 | 
            z-index: 11; 
 | 
            color: #53b76f; 
 | 
            font-size: 24px; 
 | 
          } 
 | 
          .icon1 { 
 | 
            position: relative; 
 | 
            z-index: 11; 
 | 
            color: deepskyblue; 
 | 
            font-size: 24px; 
 | 
          } 
 | 
          .icon2 { 
 | 
            position: relative; 
 | 
            z-index: 11; 
 | 
            color: #dc362e; 
 | 
            font-size: 24px; 
 | 
          } 
 | 
          .iconnew { 
 | 
            width: 24px; 
 | 
            height: 24px; 
 | 
          } 
 | 
          .icon3 { 
 | 
            position: relative; 
 | 
            z-index: 11; 
 | 
            color: gray; 
 | 
            font-size: 24px; 
 | 
          } 
 | 
          .content { 
 | 
            flex: 1; 
 | 
            .line { 
 | 
              display: flex; 
 | 
              justify-content: space-between; 
 | 
              align-content: center; 
 | 
              margin-bottom: 6px; 
 | 
              .name { 
 | 
                font-weight: 600; 
 | 
                font-size: 16px; 
 | 
                color: #111111; 
 | 
              } 
 | 
              .time { 
 | 
                color: #888888; 
 | 
              } 
 | 
            } 
 | 
          } 
 | 
        } 
 | 
        .remark { 
 | 
          background: #f7f7f7; 
 | 
          border-radius: 4px; 
 | 
          padding: 13px 15px; 
 | 
          color: #666666; 
 | 
          margin-left: 100px; 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
} 
 | 
</style> 
 |