Newer
Older
smart-metering-front / src / views / device / borrow / components / approvalActionDialog.vue
<!-- 审批操作弹窗 -->
<script lang="ts" setup>
import type { FormInstance, FormRules } from 'element-plus'
import dayjs from 'dayjs'
import useUserStore from '@/store/modules/user'
const emits = defineEmits(['resetData'])
const userInfo = useUserStore()
const dialogVisibleApprove = ref(false)
const form = reactive({
  radio: '1',
  certificateNo: '',
  certificateName: '',
  certificateCompany: '',
  certificateDate: '',
  validDate: '',
})
const ruleFormRef = ref<FormInstance>()
const rules = reactive<FormRules>({
})
// 重置
const resetData = () => {
  form.certificateNo = ''
  form.certificateName = ''
  form.certificateCompany = ''
  form.certificateDate = ''
  form.validDate = ''
}
const approvetime = ref('') // 审批时间
const initDialog = (row: any) => {
  dialogVisibleApprove.value = true
  approvetime.value = dayjs().format('YYYY-MM-DD HH:mm:ss')
  form.radio = row.radio
}
defineExpose({ initDialog })

// 点击保存
const submitForm = async (formEl: FormInstance | undefined) => {
  if (!formEl) { return }
  await formEl.validate((valid, fields) => {
    if (valid) {
      dialogVisibleApprove.value = false
      emits('resetData')
    }
  })
}
// 取消
const resetForm = (formEl: FormInstance | undefined) => {
  if (!formEl) { return }
  formEl.resetFields()
  dialogVisibleApprove.value = false
}
</script>

<template>
  <el-dialog v-model="dialogVisibleApprove" title="审批操作" width="50%">
    <el-form
      ref="ruleFormRef" :model="form"
      :rules="rules" label-width="110px"
    >
      <el-row :gutter="24">
        <el-col :span="24">
          <el-form-item label="审批意见">
            <el-radio-group v-model="form.radio" style="width: 100%;">
              <el-radio label="1">
                同意
              </el-radio>
              <el-radio label="2">
                拒绝
              </el-radio>
              <el-radio label="3">
                驳回
              </el-radio>
            </el-radio-group>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="24">
        <el-col :span="24">
          <el-form-item label="审批结论">
            <el-input
              :rows="4"
              type="textarea"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="24">
        <el-col :span="12">
          <el-form-item label="审批人">
            <el-input disabled :value="userInfo.$state.name" />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="审批时间">
            <el-input disabled :value="approvetime" />
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <template #footer>
      <span class="dialog-footer">
        <el-button type="primary" @click="submitForm(ruleFormRef)">确认</el-button>
        <el-button @click="resetForm(ruleFormRef)">
          取消
        </el-button>
      </span>
    </template>
  </el-dialog>
</template>