spring
4 天以前 f26f29d84e0a68831a6af14dab3eec5500496d2e
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<template>
  <view class="wrap">
    <u-form class="form" :model="model" :rules="rules" ref="uForm" label-position="left">
      <u-form-item label="名称" prop="roleName" label-width="180">
        <u-input v-model="model.roleName" placeholder="roleName"></u-input>
      </u-form-item>
      <u-form-item label="编码" prop="roleCode" label-width="180">
        <u-input v-model="model.roleCode" placeholder="roleCode"></u-input>
      </u-form-item>
      <u-form-item label="名称" prop="roleDesc" label-width="180">
        <u-input v-model="model.roleDesc" placeholder="roleDesc"></u-input>
      </u-form-item>
      <u-form-item label="类型" prop="dsType" label-width="180">
        <js-select v-model="model.dsType" placeholder="请选择数据权限类型"
                   itemLabel="label" itemValue="value" :items="dsType"></js-select>
      </u-form-item>
      <u-form-item label="范围" prop="dsType" label-width="180" v-if="checkedDsScopeShow">
        <js-checkbox v-model="checkedDsScope" itemLabel="name" itemValue="deptId" :multiple="true" :items="deptList">
        </js-checkbox>
      </u-form-item>
    </u-form>
    <view class="form-footer">
      <u-button class="btn" type="primary" @click="submit">提交</u-button>
      <u-button class="btn" type="default" @click="cancel">关闭</u-button>
    </view>
  </view>
</template>
 
<script>
export default {
  data() {
    return {
      type: '',
      model: {
        roleId: 0,
        roleName: '',
        roleCode: '',
        roleDesc: '',
        dsType: '',
        dsScope: '',
        createBy: '',
        updateBy: '',
        createTime: '',
        updateTime: '',
        delFlag: '',
        tenantId: '',
      },
      rules: {
        roleName: [
          {required: true, message: 'roleName不能为空', trigger: 'blur'}
        ],
 
        roleCode: [
          {required: true, message: 'roleCode不能为空', trigger: 'blur'}
        ],
 
        roleDesc: [
          {required: true, message: 'roleDesc不能为空', trigger: 'blur'}
        ],
 
        dsType: [
          {required: true, message: 'dsType不能为空', trigger: 'blur'}
        ],
 
        dsScope: [
          {required: true, message: 'dsScope不能为空', trigger: 'blur'}
        ]
      },
      dsType: [
        {
          label: '全部',
          value: '0'
        }, {
          label: '自定义',
          value: '1'
        }, {
          label: '本级及子级',
          value: '2'
        }, {
          label: '本级',
          value: '3'
        }
      ],
      deptList: [],
      checkedDsScope: [],
      checkedDsScopeShow: false
    }
  },
  onLoad(params) {
    if (params && params.id !== "undefined") {
      this.type = 'edit'
      this.$u.api.pigxRole.getObj(params).then(res => {
        Object.assign(this.model, res.data);
        this.checkedDsScope = (this.model.dsScope).split(',')
        this.checkedDsScopeShow = true
      });
    } else {
      this.type = 'add'
      this.model = {}
    }
  },
  onReady() {
    this.$refs.uForm.setRules(this.rules);
    this.$u.api.pigxDept.list().then(res => {
      this.deptList = res.data;
    });
  },
  methods: {
    submit() {
      this.$refs.uForm.validate(async valid => {
        if (valid) {
          this.model.dsScope = this.checkedDsScope
          if (this.type === 'edit') {
            await this.$u.api.pigxRole.putObj(this.model)
          } else {
            await this.$u.api.pigxRole.addObj(this.model)
          }
          setTimeout(() => {
            uni.showModal({
              title: '提示',
              content: this.type === 'edit' ? '修改成功' : '添加成功',
              showCancel: false,
              success: function () {
                uni.setStorageSync('refreshList', true);
                uni.navigateTo({
                  url: '/pages/sys/pigxRole/index'
                })
              }
            })
          }, 200)
        } else {
          this.$u.toast('您填写的信息有误,请根据提示修正。')
        }
      });
    },
    cancel() {
      uni.navigateBack();
    }
  }
}
</script>