edit.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <template>
  2. <el-dialog :modelValue="modelValue" @close="$emit('update:modelValue', false)" title="编辑权限">
  3. <el-form :model="role" lable-width="120px">
  4. <el-form-item lable="名字">
  5. <el-input v-model="role.name" />
  6. </el-form-item>
  7. <el-form-item lable="是否启用">
  8. <el-switch v-model="role.valid" :active-value="1" :inactive-value="0" />
  9. </el-form-item>
  10. <el-form-item lable="备注">
  11. <el-input v-model="role.remark" type="textarea" />
  12. </el-form-item>
  13. </el-form>
  14. <template #footer>
  15. <el-button type="default" @click="$emit('update:modelValue', false)">取消</el-button>
  16. <el-button v-loading="submitLoading" type="primary" @click="submitForm()">提交</el-button>
  17. </template>
  18. </el-dialog>
  19. </template>
  20. <script setup lang="ts">
  21. import { ref } from 'vue'
  22. import { update } from '/@/api/role'
  23. import type { Role } from '/@/api/role'
  24. import { ElMessage } from 'element-plus'
  25. const { modelValue, role } = defineProps<{
  26. modelValue: boolean,
  27. role: Role
  28. }>()
  29. const emit = defineEmits(['update:modelValue'])
  30. const submitLoading = ref(false)
  31. const submitForm = async () => {
  32. submitLoading.value = true
  33. const result = await update(role)
  34. if (result.code != 0) {
  35. return
  36. }
  37. submitLoading.value = false
  38. ElMessage({ message: '更新成功' })
  39. emit('update:modelValue', false)
  40. }
  41. </script>