@@ -29,6 +29,7 @@ import JsonNode from "./node";
2929import FieldEditor from " ./data-field-editor" ;
3030import Modal from " ./modal" ;
3131import Dispatcher from " ./utils/dispatcher" ;
32+ import { deepClone } from " ./utils" ;
3233
3334export default {
3435 name: " JsonVuer" ,
@@ -164,7 +165,7 @@ export default {
164165 this .$set (this .src , path[0 ], this .src [path[0 ]]);
165166 } else {
166167 delete obj[data .name ];
167- this .$set (this .src , path[0 ], Object . assign ({}, this .src [path[0 ]]));
168+ this .$set (this .src , path[0 ], deepClone ( this .src [path[0 ]]));
168169 }
169170 },
170171 onFieldChange (data ) {
@@ -187,8 +188,11 @@ export default {
187188 obj .splice (data .name , 1 , data .value );
188189 this .$set (this .src , path[0 ], this .src [path[0 ]]);
189190 } else {
190- obj[data .name ] = data .value ;
191- this .$set (this .src , path[0 ], Object .assign ({}, this .src [path[0 ]]));
191+ if (data .name !== data .newName ) {
192+ delete obj[data .name ];
193+ }
194+ obj[data .newName ] = data .value ;
195+ this .$set (this .src , path[0 ], deepClone (this .src [path[0 ]]));
192196 }
193197 },
194198 },
0 commit comments