zenglf
2023-09-18 92ff846fb659c62037a32b1d8c15eae9df9d9b54
src/views/eam/repairOrderFinishedReport/modules/ApprovelModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,201 @@
<template>
  <a-modal
    :title='title'
    :width="width"
    :visible='visible'
    :maskClosable='false'
    @ok='handleOk'
    cancelText='关闭'
    @cancel='handleCancel'
    :confirmLoading='confirmLoading'
  >
    <a-spin :spinning='confirmLoading'>
      <a-form-model :form='form' ref='form' :model='model'>
        <a-row>
          <a-col :span='24'>
            <a-form-model-item label='单据号' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='approvalOpinions'>
              <a-input v-model='model.num'  :disabled=true></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span='24'>
            <a-form-model-item label='审批意见' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='approvalOpinions'>
              <a-textarea v-model='model.approval' rows='3' placeholder='请输入审批意见'></a-textarea>
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </a-spin>
    <template slot='footer'>
      <a-button
        :style="{marginRight: '8px'}"
        @click='handleReject'
      >
        é©³å›ž
      </a-button>
      <a-button
        @click='handleOk'
        type='primary'
        :loading='confirmLoading'
      >通过
      </a-button>
    </template>
  </a-modal>
</template>
<script>
import { httpAction } from '@/api/manage'
import Tooltip from 'ant-design-vue/es/tooltip'
export default {
  name: 'ApprovelModal',
  props: {
    width: {
      type: Number,
      default: 550,
      required: false
    }
  },
    components: {
      Tooltip
    },
    data() {
      return {
        replaceFields: {
          value: 'key'
        },
        title: '操作',
        visible: false,
        disableSubmit: false,
        model: {},
        id: '',
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 }
        },
        edit: '',
        reject:'',
        approval: '',
        data:[],
        confirmLoading: false,
        form: this.$form.createForm(this),
        url: {},
        record:{}
      }
    },
    methods: {
      close() {
        this.$emit('close')
        this.visible = false
      },
      handleCancel() {
        this.close()
      },
      showModals(val, val1,val2,val3) {
        this.record = val
        this.model.num=this.record.num
        this.model.approval = this.record.approval
        this.edit = val1
        this.reject = val3
        this.agree = val2
        this.visible = true
      },
      handleReject() {
        const that = this
        this.model.id = that.record.id
        this.model.auditStatus =  this.reject
        let httpurl = ''
        let method = ''
        httpurl += this.edit
        method = 'post'
        httpAction(httpurl, this.model, method).then((res) => {
          if (res.success) {
            that.$emit('cancel')
            that.$message.success(res.message)
          } else {
            that.$message.warning(res.message)
          }
        }).finally(() => {
          that.confirmLoading = false
          that.$emit('loadData')
          that.close()
        })
      },
      handleOk() {
        const that = this
        this.model.id = that.record.id
        this.model.auditStatus = this.agree
        let httpurl = ''
        let method = ''
        httpurl += this.edit
        method = 'post'
        httpAction(httpurl, this.model, method).then((res) => {
          if (res.success) {
            that.$emit('ok')
            that.$message.success(res.message)
          } else {
            that.$message.warning(res.message)
          }
        }).finally(() => {
          that.confirmLoading = false
          that.$emit('loadData')
          that.close()
        })
      }
    }
  }
</script>
<style lang='less' scoped>
/deep/ .frozenRowClass {
  color: #c9c9c9;
}
.fontweight {
  font-weight: bold;
}
.ant-btn {
  padding: 0 10px;
  margin-left: 3px;
}
.ant-form-item-control {
  line-height: 0px;
}
/** ä¸»è¡¨å•行间距 */
.ant-form .ant-form-item {
  margin-bottom: 10px;
}
/** Tab页面行间距 */
.ant-tabs-content .ant-form-item {
  margin-bottom: 0px;
}
/deep/ .ant-modal-title {
  text-align: center;
}
</style>