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
  | <template> 
 |    <el-select 
 |      class="data-perm-type-select" 
 |      :class="{select__block: !inline}" 
 |      :value="value" 
 |      :placeholder="placeholder" 
 |      :clearable="clearable" 
 |      :disabled="disabled" 
 |      @change="$emit('change', $event)" 
 |      @input="$emit('input', $event)" 
 |    > 
 |      <el-option v-for="type in filterTypes" :key="type.code" :value="type.code" :label="type.remark"/> 
 |    </el-select> 
 |  </template> 
 |    
 |  <script> 
 |  import { fetchTypes } from '@/api/system/dataPermission' 
 |  export default { 
 |    name: 'DataPermTypeSelect', 
 |    props: { 
 |      value: {}, 
 |      // 模块名称 
 |      module: {}, 
 |      placeholder: { 
 |        default: '请选择权限类型' 
 |      }, 
 |      inline: { 
 |        default: true 
 |      }, 
 |      disabled: {}, 
 |      clearable: { 
 |        default: false 
 |      } 
 |    }, 
 |    data () { 
 |      return { 
 |        types: [] 
 |      } 
 |    }, 
 |    computed: { 
 |      filterTypes () { 
 |        if (this.module == null || this.module === '') { 
 |          return [] 
 |        } 
 |        const types = [] 
 |        for (const type of this.types) { 
 |          if (type.modules.length === 0 || type.modules.indexOf(this.module) !== -1) { 
 |            types.push(type) 
 |          } 
 |        } 
 |        return types 
 |      } 
 |    }, 
 |    created () { 
 |      fetchTypes() 
 |        .cache() 
 |        .then(data => { 
 |          this.types = data 
 |        }) 
 |    } 
 |  } 
 |  </script> 
 |  <style lang="scss" scoped> 
 |    .select__block { 
 |      display: block; 
 |    } 
 |  </style> 
 |  
  |