Newer
Older
smartcity_merchant_front / src / views / change / shopChangeDetail.vue
wangxitong on 22 Feb 2024 11 KB first commit
<!--案卷详情 只读-->
<template>
  <app-container style="margin-bottom: 10px">
    <el-row class="table-title">
      <el-col :span="6"><div class="title-header"><i class="el-icon-menu"/>变更内容</div></el-col>
    </el-row>
    <el-form ref="caseform" class="form" label-width="90px">
      <el-row :gutter="20">
        <el-col :span="6">
          <el-form-item label="三包编号">
            <table-cell-read :text="caseDetail.changeRecord.shopCode"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="变更类型">
            <table-cell-read :text="caseDetail.changeRecord.changeTypeName"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="租用状态">
            <table-cell-read :text="caseDetail.changeRecord.rentStatusName"/>
          </el-form-item>
        </el-col>
        <el-col v-show="caseDetail.changeRecord.changeType === '1'" :span="6">
          <el-form-item label="商户名称">
            <table-cell-read :text="caseDetail.changeRecord.merchantName"/>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row v-show="caseDetail.changeRecord.changeType === '1'" :gutter="20">
        <el-col :span="6">
          <el-form-item label="联系人">
            <table-cell-read :text="caseDetail.changeRecord.contactName"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="联系电话">
            <table-cell-read :text="caseDetail.changeRecord.contactPhone"/>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="6">
          <el-form-item label="上报时间">
            <table-cell-read :text="caseDetail.changeRecord.applyTime"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="上报来源">
            <table-cell-read :text="caseDetail.changeRecord.applySourceName"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="上报人员">
            <table-cell-read :text="caseDetail.changeRecord.applyUserName"/>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <el-row v-show="showChangeImage">
      <el-tabs type="border-card" class="image-container">
        <el-tab-pane v-if="fileIdChange.length>0" label="商户图片">
          <el-image v-for="(img, index) in fileIdChange" :key="img" :src="img" :preview-src-list="fileIdChange" fit="contain" class="image"/>
        </el-tab-pane>
      </el-tabs>
    </el-row>
    <el-row class="table-title">
      <el-col :span="6"><div class="title-header"><i class="el-icon-menu"/>原商户信息</div></el-col>
    </el-row>
    <el-form ref="caseform" class="form" label-width="90px">
      <el-row :gutter="20">
        <el-col :span="6">
          <el-form-item label="商户名称">
            <table-cell-read :text="caseDetail.oldMerchant.merchantName"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="租用状态">
            <table-cell-read :text="caseDetail.changeRecord.oldRentStatusName"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="联系人">
            <table-cell-read :text="caseDetail.oldMerchant.contactName"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="联系电话">
            <table-cell-read :text="caseDetail.oldMerchant.contactPhone"/>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <el-row v-show="showOldImage">
      <el-tabs type="border-card" class="image-container">
        <el-tab-pane v-if="fileIdOld.length>0" label="商户图片">
          <el-image v-for="(img, index) in fileIdOld" :key="img" :src="img" :preview-src-list="fileIdOld" fit="contain" class="image"/>
        </el-tab-pane>
      </el-tabs>
    </el-row>
    <el-row class="table-title">
      <el-col :span="6"><div class="title-header"><i class="el-icon-menu"/>店铺信息</div></el-col>
    </el-row>
    <el-form ref="caseform" class="form" label-width="90px">
      <el-row :gutter="20">
        <el-col :span="6">
          <el-form-item label="三包编号">
            <table-cell-read :text="caseDetail.shopInfo.shopCode"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="租用面积(㎡)">
            <table-cell-read :text="caseDetail.shopInfo.rentArea.toString()"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="所在街道">
            <table-cell-read :text="caseDetail.shopInfo.streetName"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="所在社区">
            <table-cell-read :text="caseDetail.shopInfo.communityName"/>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="6">
          <el-form-item label="详细地址">
            <table-cell-read :text="caseDetail.shopInfo.address"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="大队负责人">
            <table-cell-read :text="caseDetail.shopInfo.chargeName"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="联系电话">
            <table-cell-read :text="caseDetail.shopInfo.chargePhone"/>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <el-row class="table-title">
      <el-col :span="6"><div class="title-header"><i class="el-icon-menu"/>审核意见</div></el-col>
    </el-row>
    <el-form ref="dataForm" :model="review" :rules="rules" class="form" label-width="90px">
      <el-row :gutter="20">
        <el-col :span="12">
          <el-form-item label="审核意见">
            <el-radio v-model="review.opinion" label="1">同意</el-radio>
            <el-radio v-model="review.opinion" label="2">驳回</el-radio>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row v-show="review.opinion==='2'" :gutter="20">
        <el-col :span="24">
          <el-form-item label="驳回原因" prop="refuseReason">
            <el-input v-model="review.refuseReason" :rows="2" type="textarea" maxlength="50"/>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="24">
          <el-form-item label="备注">
            <el-input v-model="review.remarks" :rows="2" type="textarea" maxlength="50"/>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>

    <el-row style="text-align: center;margin-bottom: 30px">
      <el-button class="filter-item" type="primary" style="width: 200px;text-align: center;font-size: 15px" @click="submit">提 交</el-button>
    </el-row>
  </app-container>
</template>

<script>
// import 'element-ui/lib/theme-chalk/index.css'
import { changeDetail, changeReview } from '@/api/change/change'

export default {
  name: 'ShopChangeDetail',
  data() {
    return {
      id: '',
      imgurl: process.env.BASE_API + '/static/',
      showNeedVisit: false,
      caseDetail: {},
      review: {
        recordId: '',
        opinion: '1',
        refuseReason: '',
        remarks: ''
      },
      operationKey: '', // 案件处理按钮key
      fileIdChange: [], // 核实照片id
      fileIdOld: [], // 处理照片id
      recordList: [], // 流转记录列表
      processForm: { // 提交案卷处理表单
        processId: '', // 流程实例ID
        bizId: '', // 业务表单ID(caseId)
        currState: '', // 当前案件状态
        changeState: '', // 案件流转后状态
        remarks: '', // 审批意见
        approvalResult: '' // 审批结果标志
      },
      rules: {
        refuseReason: [{ required: true, message: '驳回原因不能为空', trigger: ['blur', 'change'] }]
      }, // 前端校验规则
      dialogVisible: false
    }
  },
  computed: {
    isNeedVisit: function() {
      return this.caseDetail.isNeedRevisit === 1 ? '需要回访' : '不需要回访'
    },
    // 是否显示案卷图片
    showChangeImage: function() {
      if (this.caseDetail.changeRecord.images.length === 0) {
        return false
      } else {
        return true
      }
    },
    showOldImage: function() {
      if (this.caseDetail.oldMerchant.images.length === 0) {
        return false
      } else {
        return true
      }
    }
  },
  mounted() {
    this.id = this.$route.params.id
    this.review.recordId = this.id
    this.initData()
    this.$refs['dataForm'].clearValidate()
  },
  methods: {
    async initData() {
      // 查询案件详情接口
      console.log(this.id)
      const resDetail = await changeDetail(this.id)
      console.log('detail', resDetail)
      this.caseDetail = resDetail.data

      console.log(this.caseDetail)
      // 解析图片id
      const imgUrl = process.env.BASE_API + '/static/'
      if (this.caseDetail.changeRecord.images) {
        this.fileIdChange = this.caseDetail.changeRecord.images.split(',')
        this.fileIdChange = this.fileIdChange.map(item => imgUrl + item)
      }
      if (this.caseDetail.oldMerchant.images) {
        this.fileIdOld = this.caseDetail.oldMerchant.images.split(',')
        this.fileIdOld = this.fileIdOld.map(item => imgUrl + item)
      }
    },
    submit() {
      this.$refs['dataForm'].validate((valid) => {
        console.log(valid)
        if (valid || this.review.opinion === '1') {
          console.log(this.review, '@@@@@@@@@@@@@@@@@@@@@@@')
          changeReview(this.review).then(response => {
            if (response.code === 200) {
              this.$message.success('审核成功')
              this.$router.push({ path: '/shopchange' })
            }
          })
        }
      })
    }
  }
}
</script>

<style rel="stylesheet/scss" lang="scss" scoped>
  $tableTitleHeight:46px;
  .table-title{
    background-color: rgb(255, 255, 255);
    height: 46px;
    .title-header{
      line-height:$tableTitleHeight;
      color: #606266;
      font-size: 15px;
      i{
        margin-left: 5px;
        margin-right: 5px;
      }
    }
  }
  .edit_btns{
    .edit_btn{
      float:right;
      margin:7px 3px;//为了需要居中显示margin-top和bottom要用$tableTitleHeight减去按钮原高度除以2
    }
  }
  .app-container{
    // padding-top: 50px;
    margin-bottom: 20px;
  }
  .form{
    margin: 20px;
    // margin-left: 20px;
    // margin-right: 20px;
  }
  .table{
    margin: 20px;
    width: 98%;
  }
  .title{
    margin-left: 38px;
    font-size: 15px;
    font-weight: bold;
    margin-bottom: 20px;
  }
  .content{
    margin-left: 50px;
    font-size: 14px;
    margin-bottom: 10px;
  }
  .button{
    margin-bottom: 30px;
  }

  .image-container {
    margin-left: 40px;
    margin-right: 20px;
    margin-bottom: 20px;
  }
  .el-image.image {
    width: 150px;
    height: 150px;
    margin-right: 20px;
  }
   /deep/ .gutter{
    background-color: #f3f3f3;
  }
  /deep/ .el-icon-circle-close{
    color: #e2e2e2
  }
</style>