role-add.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <template>
  2. <div v-loading="loading">
  3. <div class="whitebox-bg">
  4. <el-form ref="form" :model="form" class="role-add-form" >
  5. <el-form-item :label="$t('Administrator.roleName')">
  6. <el-input v-model="form.roleName"></el-input>
  7. </el-form-item>
  8. <el-form-item :label="$t('common.desc')">
  9. <el-input v-model="form.remark"></el-input>
  10. </el-form-item>
  11. <el-form-item>
  12. <el-button type="primary" :loading="submitButtonStat" @click="onSubmit">{{ $t('common.save') }}</el-button>
  13. </el-form-item>
  14. </el-form>
  15. </div>
  16. </div>
  17. </template>
  18. <script>
  19. import { roleDetail, addOREditRole } from '@/api/filter'
  20. export default {
  21. name: 'RoleAdd',
  22. data() {
  23. return {
  24. form: {
  25. roleName: null,
  26. remark: null
  27. },
  28. loading: false,
  29. submitButtonStat: false
  30. }
  31. },
  32. mounted() {
  33. if (this.$route.name === 'admin_role-edit') {
  34. roleDetail(this.$route.params.id).then(response => {
  35. this.form.roleName = response.data.ROLE_NAME
  36. this.form.remark = response.data.REMARK
  37. this.loading = false
  38. }).catch(err => {
  39. console.log('err---------' + err)
  40. })
  41. }
  42. },
  43. methods: {
  44. onSubmit() {
  45. this.submitButtonStat = true
  46. let path = 'admin/role-add'
  47. if (this.$route.name === 'admin_role-edit') {
  48. path = 'admin/role-edit/' + this.$route.params.id
  49. }
  50. addOREditRole(path, this.form).then(response => {
  51. this.submitButtonStat = false
  52. this.$message({
  53. message: response.data,
  54. type: 'success'
  55. })
  56. this.$router.go(-1)
  57. }).catch(err => {
  58. this.submitButtonStat = false
  59. this.$message({
  60. message: err,
  61. type: 'error'
  62. })
  63. })
  64. }
  65. }
  66. }
  67. </script>
  68. <style scoped>
  69. .whitebox-bg {
  70. background: #fff;
  71. padding: 25px;
  72. }
  73. </style>