Blame view

src/components/role/AddPrivilegeGroup.vue 2.83 KB
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
  <template>
      <el-dialog :title="isEdit ? $t('role.editRole') : $t('role.addRole')" :visible.sync="visible" width="50%"
          @close="resetForm">
          <el-form ref="form" :model="form" :rules="rules" label-width="120px">
              <el-alert v-if="errorInfo" :title="errorInfo" type="error" show-icon />
  
              <el-form-item :label="$t('role.name')" prop="name">
                  <el-input v-model="form.name" :placeholder="$t('role.nameRequired')" />
              </el-form-item>
  
              <el-form-item :label="$t('role.description')" prop="description">
                  <el-input v-model="form.description" type="textarea" :placeholder="$t('role.descLength')" :rows="4" />
              </el-form-item>
          </el-form>
  
          <div slot="footer" class="dialog-footer">
              <el-button @click="visible = false">{{ $t('role.cancel') }}</el-button>
              <el-button type="primary" @click="submitForm">{{ $t('role.save') }}</el-button>
          </div>
      </el-dialog>
  </template>
    
  <script>
  import { savePrivilegeGroup, updatePrivilegeGroup } from '@/api/role/roleApi'
  
  export default {
      name: 'AddPrivilegeGroup',
      data() {
          return {
              visible: false,
              isEdit: false,
              errorInfo: '',
              form: {
                  pgId: '',
                  name: '',
                  description: ''
              },
              rules: {
                  name: [
                      { required: true, message: this.$t('role.nameRequired'), trigger: 'blur' },
                      { min: 2, max: 10, message: this.$t('role.nameLength'), trigger: 'blur' }
                  ],
                  description: [
                      { max: 200, message: this.$t('role.descLength'), trigger: 'blur' }
                  ]
              }
          }
      },
      methods: {
          open(data = null) {
              if (data) {
                  this.isEdit = true
                  this.form = { ...data }
              } else {
                  this.isEdit = false
              }
              this.visible = true
          },
          resetForm() {
              this.$refs.form.resetFields()
              this.form = {
                  pgId: '',
                  name: '',
                  description: ''
              }
              this.errorInfo = ''
          },
          async submitForm() {
  
              try {
                  if (this.isEdit) {
                      await updatePrivilegeGroup(this.form)
                  } else {
                      await savePrivilegeGroup(this.form)
                  }
  
                  this.$message.success(this.$t('role.addSuccess'))
                  this.visible = false
                  this.$emit('success')
              } catch (error) {
                  this.errorInfo = error.message || this.$t('role.saveError')
              }
  
          }
      }
  
  }
  </script>
    
  <style lang="scss" scoped>
  .el-alert {
      margin-bottom: 20px;
  }
  </style>