<template>
  <section class="detail">
    <ai-detail>
      <template #title>
        <ai-title title="帮扶申请详情" isShowBottomBorder isShowBack @onBackClick="cancel(true)">
          <template #rightBtn>
            <el-button type="primary" @click="changeStatus('转交事件')" size="small" v-if="$permissions('app_apphelpdeclarationinfo_forward') && form.status != 2 && form.status != 3">转交事件</el-button>
            <el-button type="primary" @click="changeStatus('审核处理')" size="small" v-if="$permissions('app_apphelpdeclarationinfo_audit') && form.status != 2 && form.status != 3"> 审核处理</el-button>
          </template>
        </ai-title>
        
      </template>
      <template #content>
        <div style="display:flex;">
          <ai-card title="申请信息" style="flex:2;margin-right:32px;">
            <template slot="content">
              <ai-wrapper class="mar-t16" label-width="100px" :columnsNumber="2">
                <ai-info-item label="申请人姓名："><span>{{form.name || '-'}}</span></ai-info-item>
                <ai-info-item label="身份证号："><span>{{form.idNumber || '-'}}</span></ai-info-item>
                <ai-info-item label="联系方式："><span>{{form.phone || '-'}}</span></ai-info-item>
                <ai-info-item label="申报方式："><span>{{$dict.getLabel("helpDeclarationType", form.declareType) || '-'}}</span></ai-info-item>
                <ai-info-item label="家庭人口数："><span>{{form.householdNumber || '-'}}</span></ai-info-item>
                <ai-info-item label="排查人员："><span>{{form.createUserName || '-'}}</span></ai-info-item>
                <ai-info-item label="申请帮扶原因："><span>{{form.reason || '-'}}</span></ai-info-item>
                <ai-info-item label="上报时间："><span>{{form.declareTime || '-'}}</span></ai-info-item>
              </ai-wrapper>
              <ai-wrapper label-width="100px" :columnsNumber="1">
                <ai-info-item label="所在地区："><span>{{form.areaName}}{{form.address || ''}}</span></ai-info-item>
              </ai-wrapper>
              <ai-wrapper label-width="100px" :columnsNumber="1">
                <ai-info-item label="风险说明："><span>{{form.riskDescription || '-'}}</span></ai-info-item>
              </ai-wrapper>
              <ai-uploader :instance="instance" disabled v-model="form.files"></ai-uploader>
            </template>
          </ai-card>
          <ai-card title="办理进度" style="flex:1;">
            <template #right>
              <p style="color:#666;font-size:14px;">当前状态：<span :class="'color'+form.status">{{$dict.getLabel("helpDeclarationStatus", form.status) || '-'}}</span></p>
            </template>
            <template #content>
              <div class="ai-steps">
                <div class="ai-steps__item" v-for="(item, index) in form.processList" :key="index">
                  <div class="ai-steps__item--left">
                    <div class="ai-steps__item--index">{{index+1}}</div>
                  </div>
                  <div class="ai-steps__item--right">
                    <div class="ai-steps__item__avatar">
                      <img :src="item.avatar" v-if="item.avatar">
                      <h2 v-else>{{ formatName(item.doUsername) }}</h2>
                    </div>
                    <div class="ai-steps__item--content">
                      <h2>{{item.doUsername}}</h2>
                      <h2>{{item.description}}</h2>
                      <p>{{ item.doTime }}</p>
                    </div>
                  </div>
                </div>
              </div>
            </template>
          </ai-card>
        </div>
        <ai-dialog :title="dialogTitle" :visible.sync="showDialog" @onConfirm="statusConfirm()" @onCancel="showDialog=false;" @close="$refs.dialogInfo.resetFields()"  width="750px">
          <div class="addother_main" style="width:100%;">
            <el-form :model="dialogInfo" status-icon ref="dialogInfo" label-width="100px" class="demo-ruleForm">
              <el-form-item label="转交" prop="name" style="width: 100%;" autocomplete="off" :rules="[{ required: true, message: '请选择转交人员', trigger: 'blur' }]" v-if="dialogTitle == '转交事件'">
                <el-input disabled size="small" v-model="dialogInfo.name" placeholder="请选择转交人员">
                  <template slot="append">
                    <ai-wechat-selecter :instance="instance" v-model="addUser" :isMultiple="false" @change="onChange" v-if="dialogTitle == '转交事件'">
                      <el-button size="small">选择</el-button>
                    </ai-wechat-selecter>
                  </template>
                </el-input>
              </el-form-item>
              <el-form-item label="处理结果：" required v-else>
                <el-radio-group v-model="dialogInfo.auditStatus">
                  <el-radio label="1">通过审核</el-radio>
                  <el-radio label="0">驳回申请</el-radio>
                </el-radio-group>
              </el-form-item>
              <el-form-item label="办理意见：" prop="description" autocomplete="off" :rules="{ required: true, message: '办理意见不能为空', trigger: 'blur' }">
                <el-input v-model="dialogInfo.description" autocomplete="off" size="mini" placeholder="请输入..." type="textarea" :rows="4" :maxlength="100" show-word-limit></el-input>
              </el-form-item>
              <el-form-item label="图片" style="width: 100%;" >
                <ai-uploader
                    :instance="instance"
                    v-model="dialogInfo.files"
                    :limit="9">
                    <template slot="tips">
                      <p>最多上传9张图片,单个文件最大10MB，支持jpg、jpeg、png格式</p>
                    </template>
                </ai-uploader>
              </el-form-item>
            </el-form>
          </div>
        </ai-dialog>
      </template>
    </ai-detail>
  </section>
</template>

<script>
export default {
  name: "detail",
  props: {
    instance: Function,
    dict: Object,
    permissions: Function,
    params: Object
  },
  data() {
    return {
      form: {},
      showDialog: false,
      dialogTitle: '',
      dialogInfo: {auditStatus: '1', description: '', files: [], name: ''},
      addUser: [],
    };
  },
  computed: {
    
  },
  created() {
    this.dict.load('helpDeclarationType', 'helpDeclarationStatus', 'helpDeclarationReason');
  },
  mounted() {
    this.form = this.params
    this.getDetail()
  },
  methods: { 
    formatName (name) {
      if(name == undefined){
        return
      }
      return name.substr(name.length - 2, name.length > 2 ? (name.length - 1) : name.length)
    },
    getDetail() {
      this.instance.post(`/app/apphelpdeclarationinfo/queryDetailById?id=${this.params.id}`).then((res) => {
        if (res.code == 0) {
          this.form = {...res.data}
          this.form.files = this.form.files || []
        }
      });
    },
    cancel(isRefresh) {
      this.$emit('change', {
        type: 'list',
        isRefresh: !!isRefresh
      })
    },
    changeStatus(title) {
      this.dialogTitle = title
      this.showDialog = true
    },
    onChange() {
      if (!this.addUser.length) {
        return this.$message.error('请选择转交人员')
      }
      this.dialogInfo.name = this.addUser[0].name
      this.dialogInfo.wxUserId = this.addUser[0].id
    },
    statusConfirm() {
      this.$refs["dialogInfo"].validate((valid) => {
        if (valid) {
          var url = '/app/apphelpdeclarationinfo/forward'  //转交人员
          if(this.dialogTitle == '审核处理') {
            url = '/app/apphelpdeclarationinfo/audit'
          }
          this.dialogInfo.declarationId = this.form.id
          this.instance.post(url, {
            ...this.dialogInfo,
          }).then(res => {
            if (res.code == 0) {
              this.showDialog = false
              this.$message.success("操作成功")
              this.getDetail()
            }
          });
        }
      })
    }
  },
};
</script>

<style lang="scss" scoped>
.detail {
  height: 100%;
  overflow: auto;
  background: #f3f6f9;
  .above{
    overflow: hidden;
    width: 100%;
    .left{
      width: 50%;
      float: left;
    }
    .right{
      width: 50%;
      float: right;
    }
    .el-select{
      width: 100%;
    }
    .el-date-editor.el-input{
      width: 100%;
    }
  }
  .iconEdit,.Edit{
    color:#5088FF;
    font-size: 12px;
    cursor: pointer;
    padding-left: 8px;
  }
  .color0 {
    color: #f82;
  }

  .color1 {
    color: #26f;
  }

  .color2 {
    color: #f46;
  }

  .color3 {
    color: #2EA222;
  }
}
.ai-steps {
  padding-bottom: 40px;
  .ai-steps__item {
    display: flex;
    position: relative;
    padding-bottom: 44px;

    &:after {
      position: absolute;
      left: 12px;
      top: 26px;
      width: 1px;
      height: calc(100% - 30px);
      background: #DDDDDD;
      content: " ";
    }

    &:last-child {
      padding-bottom: 0;

      &:after {
        display: none;
      }
    }

    .ai-steps__item--left {
      position: relative;
      margin-right: 16px;
      .ai-steps__item--index{
        width: 24px;
        height: 24px;
        line-height: 24px;
        border-radius: 50%;
        border: 1px solid #ddd;
        text-align: center;
        color: #ddd;
        font-size: 12px;
      }
      
    }

    .ai-steps__item--right {
      flex-shrink: 0;
      color: #666;
      font-size: 14px;
      display: flex;
      width: calc(100% - 40px);
      .ai-steps__item--content {
        span {
          color: #333;
          font-size: 16px;
        }

        h2 {
          color: #666666;
          font-size: 14px;
          word-break: break-all;
        }

        p {
          margin-top: 8px;
          color: #666666;
          font-size: 14px;
        }
      }

      .ai-steps__item__avatar {
        width: 40px;
        height: 40px;
        margin-right: 8px;

        img, h2 {
          width: 40px;
          height: 40px;
          line-height: 40px;
          text-align: center;
          color: #fff;
          font-size: 14px;
          background: #2266FF;
        }
      }
    }
  }
}
</style>