<template>
  <el-dialog
    :title="'审批'"
    :close-on-click-modal="false"
    :before-close="closeDialog"
    :visible.sync="visible"
    :append-to-body="true"
    :modal="false"
    width="55%">
    <el-form v-model="dataForm" :inline="true">
      <div class="form-group dialog">
        <el-form-item class="full" label="审批意见" prop="auditMsg">
          <el-input type="textarea" placeholder="审批意见" v-model="dataForm.auditMsg"></el-input>
        </el-form-item>
        <el-form-item label="审批人" class="full" prop="auditUserId">
          <el-select v-model="dataForm.auditUserId" disabled placeholder="审批人" style="width: 100%;">
            <el-option
              v-for="item in optionsBranch"
              :key="item.id"
              :label="item.cname"
              :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
      </div>
    </el-form>
    <span slot="footer" class="dialog-footer">
      <el-button @click="closeDia">关闭</el-button>
      <el-button @click="approvalRejected">审批驳回</el-button>
      <el-button @click="approved">审批通过</el-button>
    </span>
  </el-dialog>
</template>

<script>
import { listCharge } from '@/api/system/startApproval'
import { queryUserVal } from '@/api/warehouseBusiness/agreement'
import Global from '@/layout/components/global'
  export default {
    name: 'startApproval',
    data () {
      return {
        dataForm: {
          id: null,
          actId: null,
          auditMsg: null,
          auditUserId: this.$store.state.user.id
        },
        visible: false,
        optionsBranch: [{
          id: this.$store.state.user.id,
          cname: this.$store.state.user.actualname
        }]
      }
    },
    components: {
    },
    methods: {
      init (id,actId) {
        // 默认录入人
        queryUserVal().then((response)=>{
          this.dataForm.auditUserId = response.user.userName
        })

        this.visible = true
        if (typeof id === 'undefined' || typeof actId === 'undefined') {
          this.$message.error('未检测到对应信息，请选择')
          return false
        }
        this.dataForm.id = id
        this.dataForm.actId = actId
        this.dataForm.billId = id
      },
      approved () {
        this.dataForm.auditUserId = ''
        this.$confirm(`是否通过审批?`, '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          return  listCharge(this.dataForm,'/warehouse/paths/approved')
          }).then(data => {
            if (data && data.code == 200) {
              this.$message({
                message: '审核通过',
                type: 'success',
                duration: 600,
                onClose: () => {
                  this.closeDia()
                }
              })
              this.visible = true
              // this.homePage()
            } else {
              this.$message.error(data.msg)
            }
          })
      },
      // homePage(){
      //   let view = {
      //     fullPath: "/finance/charge",
      //     hash: "",
      //     matched: Array(2),
      //     meta: Object,
      //     name: "Charge",
      //     params: Object,
      //     path: "/finance/charge",
      //     query: Object,
      //     title: "收费"
      //   }
      //   this.$router.push({ path: '/index'})
      //   this.$store.dispatch('tagsView/delView', view).then(({ visitedViews }) => {
      //     if (this.isActive(view)) {
      //       this.toLastView(visitedViews, view)
      //     }
      //   })
      //   Global.$emit("removeCache", "closeSelectedTag", view);
      // },
      approvalRejected () {
        this.dataForm.auditUserId = ''
        this.$confirm(`是否驳回审批?`, '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          return listCharge(this.dataForm,'/warehouse/paths/approvalRejected')
          }).then(data => {
          if (data && data.code == 200) {
              this.$message({
                message: '驳回审批',
                type: 'success',
                duration: 600,
                // onClose: () => {
                //   this.closeDia()
                // }
              })
              this.visible = true
              this.closeDia()
              // this.homePage()
            } else {
              this.$message.error(data.msg)
            }
          })
      },
      closeDialog (done) {
        this.visible = false
        this.$emit('returnApproval', this.dataForm.id, false)
        Object.assign(this.$data, this.$options.data.call(this))
      },
      closeDia () {
        this.visible = false
        this.$emit('refreshDataList', this.dataForm.id, false)
        Object.assign(this.$data, this.$options.data.call(this))
      }
    }
  }
</script>

<style scoped>

</style>
