1
1
<template >
2
2
<div class =" block_content array" >
3
3
<ol class =" array-ol" >
4
-
5
4
<draggable v-model =" flowData" handle =" .dragbar" @end =" onDragEnd" >
6
5
<li
7
6
v-for =" (member, index) in flowData"
8
- :key =" `${member.remark }${index}`"
7
+ :key =" `${member.type }${index}`"
9
8
:class =" ['array-item', {'hide-item': hideMyItem[index] == true}]"
10
9
>
11
10
<p v-if =" member.type !== 'object' && member.type !== 'array'" >
12
11
<input
13
12
type =" text"
14
13
v-model =" member.remark"
15
14
class =" val-input"
16
- v-if =" member.type == 'string'"
15
+ v-if =" member.type === 'string'"
17
16
placeholder =" string"
18
- >
17
+ / >
19
18
<input
20
19
type =" number"
21
20
v-model.number =" member.remark"
22
21
class =" val-input"
23
22
v-if =" member.type == 'number'"
24
23
placeholder =" number"
25
- >
24
+ / >
26
25
<select
27
26
name =" value"
28
27
v-model =" member.remark"
40
39
class =" collapse-down v-json-edit-icon-arrow_drop_down"
41
40
v-if =" member.type == 'object' || member.type == 'array'"
42
41
@click =" closeBlock(index, $event)"
43
- >
44
- </i >
45
- <!-- <i v-if="member.type == 'object'">
46
- {{'{' + member.childParams.length + '}'}}
47
- </i>
48
- <i v-if="member.type == 'array'">
49
- {{'[' + member.childParams.length + ']'}}
50
- </i> -->
42
+ ></i >
43
+ <i v-if =" member.type == 'object'" >{{'{' + member.childParams.length + '}'}}</i >
44
+ <i v-if =" member.type == 'array'" >{{'[' + member.childParams.length + ']'}}</i >
51
45
</span >
52
-
46
+
53
47
<span class =" json-val" >
54
48
<template v-if =" member .type == ' array' " >
55
- <array-view
56
- :parsedData =" member.childParams"
57
- v-model =" member.childParams"
58
- ></array-view >
49
+ <array-view :parsedData =" member.childParams || []" v-model =" member.childParams" ></array-view >
59
50
</template >
60
51
61
52
<template v-if =" member .type == ' object' " >
62
- <json-view
63
- :parsedData =" member.childParams"
64
- v-model =" member.childParams"
65
- ></json-view >
53
+ <json-view :parsedData =" member.childParams || {}" v-model =" member.childParams" ></json-view >
66
54
</template >
67
55
</span >
68
56
</div >
69
57
70
58
<div class =" tools" >
71
59
<select v-model =" member.type" class =" tools-types" @change =" itemTypeChange(member)" >
72
- <option
73
- v-for =" (item, index) in formats"
74
- :value =" item"
75
- :key =" index" >
76
- {{item}}
77
- </option >
60
+ <option v-for =" (item, index) in formats" :value =" item" :key =" index" >{{item}}</option >
78
61
</select >
79
62
<i class =" dragbar v-json-edit-icon-drag" ></i >
80
- <i
81
- class =" del-btn"
82
- @click =" delItem(parsedData, member, index)" >
63
+ <i class =" del-btn" @click =" delItem(parsedData, member, index)" >
83
64
<i class =" v-json-edit-icon-huishouzhan_huaban" ></i >
84
65
</i >
85
66
</div >
86
67
</li >
87
68
</draggable >
88
69
</ol >
89
70
90
- <item-add-form
91
- v-if =" toAddItem"
92
- @confirm =" newItem"
93
- @cancel =" cancelNewItem"
94
- :needName =" false" >
95
- </item-add-form >
71
+ <item-add-form v-if =" toAddItem" @confirm =" newItem" @cancel =" cancelNewItem" :needName =" false" ></item-add-form >
96
72
97
- <div
98
- class =" block add-key"
99
- v-if =" !toAddItem"
100
- @click =" addItem" >
73
+ <div class =" block add-key" v-if =" !toAddItem" @click =" addItem" >
101
74
<i class =" v-json-edit-icon-add" ></i >
102
75
</div >
103
76
</div >
@@ -111,18 +84,18 @@ export default {
111
84
props: [" parsedData" ],
112
85
data : function () {
113
86
return {
114
- formats: [' string' , ' array' , ' object' , ' number' , ' boolean' ],
87
+ formats: [" string" , " array" , " object" , " number" , " boolean" ],
115
88
flowData: this .parsedData ,
116
89
toAddItem: false ,
117
90
hideMyItem: {}
118
91
};
119
92
},
120
- watch: {
121
- parsedData: {
122
- handler (newValue , oldValue ) {
123
- this .flowData = this .parsedData || [];
124
- }
125
- }
93
+ watch: {
94
+ parsedData: {
95
+ handler (newValue , oldValue ) {
96
+ this .flowData = this .parsedData || [];
97
+ }
98
+ }
126
99
},
127
100
components: {
128
101
" item-add-form" : ItemAddForm,
@@ -172,15 +145,13 @@ export default {
172
145
},
173
146
174
147
itemTypeChange : function (item ) {
175
- console .log (item)
176
- if (item .type === ' array' ) {
177
- item .remark = []
178
- }
179
- if (item .type === ' object' ) {
180
- item .remark = {}
148
+ console .log (item);
149
+ if (item .type === " array" || item .type === " object" ) {
150
+ item .childParams = [];
151
+ item .remark = null ;
181
152
}
182
- if (item .type === ' boolean' ) {
183
- item .remark = true
153
+ if (item .type === " boolean" ) {
154
+ item .remark = true ;
184
155
}
185
156
}
186
157
}
0 commit comments