数据字典
... 2021-7-29 About 2 min
# 数据字典
Tips
更多字典详细用法参考Form组件数据字典
//使用字典需要引入axios
import axios from 'axios'
Vue.use(Avue,{axios})
//老版本需要使用如下
//main.js
window.axios = axios
1
2
3
4
5
6
7
2
3
4
5
6
7
# 字典使用
本地字典配置dicData
为一个Array
数组,网络字典可以配置dicUrl
字段,自动加载字典到对应的组件中,注意返回的字典中 value 类型和数据的类型必须要对应,比如都是字符串或者都是数字。配置dicFlag
为true
,打开表单的时候会重新请求字典
<avue-crud :data="data" :option="option" ></avue-crud>
<script>
let baseUrl = 'https://cli.avuejs.com/api/area'
export default {
data() {
return {
data: [
{
province: '110000',
cascader:[0,1],
}, {
province: '130000',
cascader:[0,2],
}
],
option:{
column:[{
label:'本地字典',
prop:'cascader',
type:'cascader',
dicData:[{
label:'一级',
value:0,
children:[
{
label:'一级1',
value:1,
},{
label:'一级2',
value:2,
}
]
}],
},
{
label:'网络字典',
prop:'province',
type:'select',
props: {
label: 'name',
value: 'code'
},
dicFlag:true,
dicUrl:`${baseUrl}/getProvince`
}]
}
}
}
}
</script>
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
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
Expand Copy Copy
# 字典联动
Tips
2.9.0+
cascader
为需要联动的子选择框prop
值,填写多个就会形成一对多的关系,表格加载联动数据需要调用内置方法dicInit
<avue-crud ref="crud" :data="data" :option="option" ></avue-crud>
<script>
let baseUrl = 'https://cli.avuejs.com/api/area'
export default {
data() {
return {
data: [],
option:{
column:[
{
label:'姓名',
prop:'name',
}, {
label:'性别',
prop:'sex'
},{
label:'省份',
prop:'province',
type:'select',
cascader: ['city'],
cascaderIndex:1,
props: {
label: 'name',
value: 'code'
},
dicUrl:`${baseUrl}/getProvince`
},
{
width: 120,
label: '城市',
prop: 'city',
type: 'select',
cascader: ['area'],
cascaderIndex:1,
cell: true,
props: {
label: 'name',
value: 'code'
},
dicUrl: `${baseUrl}/getCity/{{key}}`,
rules: [
{
required: true,
message: '请选择城市',
trigger: 'blur'
}
]
},
{
width: 120,
label: '地区',
prop: 'area',
cell: true,
props: {
label: 'name',
value: 'code'
},
type: 'select',
dicUrl: `${baseUrl}/getArea/{{key}}`,
rules: [
{
required: true,
message: '请选择地区',
trigger: 'blur'
}
]
}
]
}
}
},
mounted(){
this.data=[{
name:'张三',
sex:'男',
province: '110000',
city: '110100',
area: '110101',
}, {
name:'李四',
sex:'女',
province: '130000',
city: '130200',
area: '130202',
}]
this.$nextTick(()=>{
//放在数据加载完后执行
this.$refs.crud.dicInit('cascader');
})
}
}
</script>
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
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
Expand Copy Copy