<template> 
 | 
  <GlobalWindow 
 | 
    :title="title" 
 | 
    text="同意" 
 | 
    backText="拒绝" 
 | 
    :visible.sync="isShowModal" 
 | 
    @confirm="confirm" 
 | 
    @close="reject" 
 | 
  > 
 | 
    <div class="modal_wrap"> 
 | 
      <div class="modal_content"> 
 | 
        <div class="header"> 
 | 
          <div class="left"> 
 | 
            <div class="h1">访客预约</div> 
 | 
            <div class="time">提交时间:</div> 
 | 
          </div> 
 | 
          <div class="right">待审核</div> 
 | 
        </div> 
 | 
        <div class="info"> 
 | 
          <div class="title">访客报备详情</div> 
 | 
          <div class="list"> 
 | 
            <div class="item"> 
 | 
              <div class="label">被访人</div> 
 | 
              <div class="value"></div> 
 | 
            </div> 
 | 
            <div class="item"> 
 | 
              <div class="label">拜访时间</div> 
 | 
              <div class="value"></div> 
 | 
            </div> 
 | 
            <div class="item"> 
 | 
              <div class="label">入园车辆</div> 
 | 
              <div class="value"></div> 
 | 
            </div> 
 | 
            <div class="item"> 
 | 
              <div class="label">来访单位</div> 
 | 
              <div class="value"></div> 
 | 
            </div> 
 | 
            <div class="item"> 
 | 
              <div class="label">联系人</div> 
 | 
              <div class="value"></div> 
 | 
            </div> 
 | 
            <div class="item"> 
 | 
              <div class="label">随车人数</div> 
 | 
              <div class="value"></div> 
 | 
            </div> 
 | 
            <div class="item"> 
 | 
              <div class="label">来访事由</div> 
 | 
              <div class="value"></div> 
 | 
            </div> 
 | 
          </div> 
 | 
        </div> 
 | 
        <div class="table_info"> 
 | 
          <div class="title">访客信息</div> 
 | 
          <el-table :data="detail.datalist" border fit> 
 | 
            <el-table-column label="姓名" prop="" min-width="150"> 
 | 
              <template slot-scope="{ row }"> 
 | 
                <div class="name_wrap"> 
 | 
                  <image src="" class="avatar" mode="" /> 
 | 
                  <div class="content"> 
 | 
                    <div class="line"> 
 | 
                      <div class="name">李东</div> 
 | 
                      <div class="tag">申请人</div> 
 | 
                    </div> 
 | 
                    <div class="line placeholder9">1888888</div> 
 | 
                  </div> 
 | 
                </div> 
 | 
              </template> 
 | 
            </el-table-column> 
 | 
            <el-table-column label="性别" prop="" min-width="40" /> 
 | 
            <el-table-column label="证件类型" prop="" min-width="80" /> 
 | 
            <el-table-column label="证件号码" prop="" min-width="120" /> 
 | 
            <el-table-column label="公司名称" prop="" min-width="120" /> 
 | 
            <el-table-column label="人脸照片" prop="" min-width="80"> 
 | 
              <template slot-scope="{ row }"> 
 | 
                <el-image :src="row.url" :preview-src-list="[row.url]"> 
 | 
                </el-image> 
 | 
              </template> 
 | 
            </el-table-column> 
 | 
          </el-table> 
 | 
        </div> 
 | 
      </div> 
 | 
      <div class="side"> 
 | 
        <div class="side_title">审批流程</div> 
 | 
        <div class="list"> 
 | 
          <div class="item"> 
 | 
            <div class="separate"></div> 
 | 
            <div class="info"> 
 | 
              <i class="el-icon-success icon"></i> 
 | 
              <img src="" class="avatar" alt="" /> 
 | 
              <div class="content"> 
 | 
                <div class="line"> 
 | 
                  <div class="name">刘某刘某</div> 
 | 
                  <div class="time">2020-02-02 12:20</div> 
 | 
                </div> 
 | 
                <div class="line"> 
 | 
                  <div class="company">中国移动有限公司</div> 
 | 
                </div> 
 | 
              </div> 
 | 
            </div> 
 | 
          </div> 
 | 
          <div class="item"> 
 | 
            <!-- <div v-if="" class="separate"></div> --> 
 | 
            <div class="info"> 
 | 
              <i class="el-icon-success icon"></i> 
 | 
              <img src="" class="avatar" alt="" /> 
 | 
              <div class="content"> 
 | 
                <div class="line"> 
 | 
                  <div class="name">刘某刘某</div> 
 | 
                  <div class="time">2020-02-02 12:20</div> 
 | 
                </div> 
 | 
                <div class="line"> 
 | 
                  <div class="company"> 
 | 
                    中国移动有限公司( <span class="status">已同意</span> ) 
 | 
                  </div> 
 | 
                </div> 
 | 
              </div> 
 | 
            </div> 
 | 
            <div class="remark">提交约好的</div> 
 | 
          </div> 
 | 
        </div> 
 | 
      </div> 
 | 
    </div> 
 | 
    <!--  --> 
 | 
    <template #btns> 
 | 
      <el-button type="primary" plain @click="handleTransfer">转交</el-button> 
 | 
    </template> 
 | 
    <!--  同意/拒绝 --> 
 | 
    <el-dialog 
 | 
      append-to-body 
 | 
      :title="apprTitle" 
 | 
      :visible.sync="isShowAppr" 
 | 
      width="480px" 
 | 
    > 
 | 
      <el-input 
 | 
        type="textarea" 
 | 
        :placeholder="apprTitle + '说明,非必填'" 
 | 
        :rows="4" 
 | 
        v-model="param.explain" 
 | 
      /> 
 | 
      <span slot="footer" class="dialog-footer"> 
 | 
        <el-button @click="isShowAppr = false">取消</el-button> 
 | 
        <el-button type="primary" @click="isShowAppr = false">确定</el-button> 
 | 
      </span> 
 | 
    </el-dialog> 
 | 
    <!-- 隐患 --> 
 | 
    <el-dialog 
 | 
      append-to-body 
 | 
      title="隐患" 
 | 
      :visible.sync="isShowProblem" 
 | 
      width="480px" 
 | 
    > 
 | 
      <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px"> 
 | 
        <el-form-item label="退回时间"> 
 | 
          <el-date-picker 
 | 
            class="w300" 
 | 
            value-format="yyyy-MM-dd" 
 | 
            type="date" 
 | 
            placeholder="选择日期" 
 | 
            v-model="param.date" 
 | 
          /> 
 | 
        </el-form-item> 
 | 
        <el-form-item label="整改前"> 
 | 
          <div class="df_ac"> 
 | 
            <img src="@/assets/avatar/man.png" /> 
 | 
            <el-upload 
 | 
              class="avatar-uploader" 
 | 
              action="https://jsonplaceholder.typicode.com/posts/" 
 | 
              :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> 
 | 
          </div> 
 | 
        </el-form-item> 
 | 
        <el-form-item label="退回说明"> 
 | 
          <el-input 
 | 
            type="textarea" 
 | 
            placeholder="请填写说明" 
 | 
            :rows="4" 
 | 
            v-model="param.explain" 
 | 
          /> 
 | 
        </el-form-item> 
 | 
      </el-form> 
 | 
      <span slot="footer" class="dialog-footer"> 
 | 
        <el-button @click="isShowProblem = false">取消</el-button> 
 | 
        <el-button type="primary" @click="isShowProblem = false" 
 | 
          >确定</el-button 
 | 
        > 
 | 
      </span> 
 | 
    </el-dialog> 
 | 
  </GlobalWindow> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
import GlobalWindow from '@/components/common/GlobalWindow' 
 | 
export default { 
 | 
  components: { GlobalWindow }, 
 | 
  data() { 
 | 
    return { 
 | 
      title: '访客预约详情', 
 | 
      isShowModal: false, 
 | 
      detail: { 
 | 
        datalist: [{}] 
 | 
      }, 
 | 
  
 | 
      isShowAppr: false, 
 | 
      apprTitle: '同意', 
 | 
      param: {}, 
 | 
  
 | 
      isShowProblem: false, 
 | 
      rules: {} 
 | 
    } 
 | 
  }, 
 | 
  methods: { 
 | 
    confirm() { 
 | 
      console.log('--') 
 | 
    }, 
 | 
    handleTransfer() { 
 | 
      this.isShowProblem = true 
 | 
    }, 
 | 
    reject() { }, 
 | 
    handleAvatarSuccess() { }, 
 | 
    beforeAvatarUpload() { } 
 | 
  } 
 | 
} 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
.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; 
 | 
  } 
 | 
} 
 | 
.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: 68px; 
 | 
          } 
 | 
  
 | 
          .value { 
 | 
            color: #111111; 
 | 
          } 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  
 | 
    .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: 51px; 
 | 
          height: calc(100% - 24px); 
 | 
          top: 46px; 
 | 
        } 
 | 
        .info { 
 | 
          display: flex; 
 | 
          align-items: center; 
 | 
          margin-left: 40px; 
 | 
          .icon { 
 | 
            position: relative; 
 | 
            z-index: 11; 
 | 
            color: #53b76f; 
 | 
            font-size: 24px; 
 | 
          } 
 | 
          .avatar { 
 | 
            width: 40px; 
 | 
            height: 40px; 
 | 
            border-radius: 50%; 
 | 
            margin: 0 12px 0 16px; 
 | 
            border: 1px solid; 
 | 
          } 
 | 
          .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; 
 | 
              } 
 | 
              .company { 
 | 
                font-size: 13px; 
 | 
                color: #888888; 
 | 
                .status { 
 | 
                  color: #00ba67; 
 | 
                } 
 | 
              } 
 | 
            } 
 | 
          } 
 | 
        } 
 | 
        .remark { 
 | 
          background: #f7f7f7; 
 | 
          border-radius: 4px; 
 | 
          padding: 13px 15px; 
 | 
          color: #666666; 
 | 
          margin-left: 120px; 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
} 
 | 
</style> 
 |