owl-cli 6.68.0 → 6.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -409,6 +409,16 @@ function mergeArray(a1, a2,section_permission){
409
409
  if(!a2){
410
410
  a2 = [];
411
411
  }
412
+ var newa2 = [];
413
+ for(var i=0; i<a2.length; i++){
414
+ if(a2[i]!==null){
415
+ if(!isScalar(a2[i])){
416
+ delete a2[i]._matched;
417
+ }
418
+ newa2.push(a2[i]);
419
+ }
420
+ }
421
+ a2 = newa2;
412
422
  for(var i=0; i<a1.length; i++){
413
423
  var r1 = a1[i];
414
424
  var found = false;
@@ -420,7 +430,10 @@ function mergeArray(a1, a2,section_permission){
420
430
  temp_matched.push(r2);
421
431
  }
422
432
  else{
423
- r2._matched = true;
433
+ if(r2!=null){
434
+ r2._matched = true;
435
+ }
436
+
424
437
  }
425
438
  merged.push(r1);
426
439
  break;
@@ -486,7 +499,7 @@ function merge(oldObj,newObj,permissions,orgId){
486
499
  //暂时对于Array, 只要对于section有权限,则是对于整行来说的,而不能对于行中的某个字段
487
500
  var vn = newObj[k];
488
501
  var merged = mergeArray(vo,vn,ef_section_permissions[k]);
489
- vn[k] = merged;
502
+ newObj[k] = merged;
490
503
  }
491
504
  else {
492
505
  var vn = newObj[k];
@@ -57,8 +57,6 @@ function diffArray(a1, a2,parentKeys){
57
57
  a2 = [];
58
58
  }
59
59
 
60
-
61
-
62
60
  var newa2 = [];
63
61
  for(var j=0; j<a2.length; j++){
64
62
  if(a2[j]!==null){
@@ -73,7 +71,6 @@ function diffArray(a1, a2,parentKeys){
73
71
  if(!isScalar(r2)){
74
72
  delete r2._matched;
75
73
  }
76
-
77
74
  }
78
75
 
79
76
  for(var i=0; i<a1.length; i++){
@@ -124,11 +121,33 @@ function diffArray(a1, a2,parentKeys){
124
121
  r:r2
125
122
  });
126
123
  }
127
-
128
124
  }
129
125
  return result;
130
126
  }
131
127
 
128
+ function isArrayEqual(a1,a2){
129
+ if(a1==null && a2==null){
130
+ return true;
131
+ }
132
+ if(a1==null && a2!=null){
133
+ return false;
134
+ }
135
+
136
+ if(a1!==null && a2===null){
137
+ return false;
138
+ }
139
+
140
+ if(a1.length!==a2.length){
141
+ return false;
142
+ }
143
+ for(var i=0; i<a1.length; i++){
144
+ if(a1[i]!==a2[i]){
145
+ return false;
146
+ }
147
+ }
148
+ return true;
149
+ }
150
+
132
151
 
133
152
 
134
153
  function diff(obj1, obj2,parentKeys){
@@ -202,16 +221,16 @@ function diff(obj1, obj2,parentKeys){
202
221
  else{
203
222
  //v1 == null 或者 v1是object
204
223
  if(v1!=null){
205
- if(Array.isArray(v1) && Array.isArray(v2)){
206
- var newParentKeys = [].concat(parentKeys,[k1]);
207
- var ret = diffArray(v1,v2,newParentKeys);
208
- if(ret && ret.length>0){
224
+ if(Array.isArray(v1)){
225
+ var ret = isArrayEqual(v1,v2);
226
+ if(!ret){
209
227
  result.push({
210
228
  type:'changed',
211
229
  fieldKey : k1,
212
230
  fieldType:'array',
213
231
  parentKeys: JSON.stringify(parentKeys),
214
- diff : ret
232
+ oldv : '' + JSON.stringify(v1),
233
+ newv : '' + JSON.stringify(v2)
215
234
  });
216
235
  }
217
236
  }
@@ -223,7 +242,7 @@ function diff(obj1, obj2,parentKeys){
223
242
  fieldKey : k1,
224
243
  parentKeys: JSON.stringify(parentKeys),
225
244
  oldv : '' + v1,
226
- newv : v2
245
+ newv : ''
227
246
  })
228
247
  }
229
248
  else{
@@ -237,19 +256,18 @@ function diff(obj1, obj2,parentKeys){
237
256
  else{
238
257
  //v1 == null;
239
258
  if(v2!=null){
240
- if(v2!=''){
259
+ if(v2!==''){
241
260
  result.push({
242
261
  type:'added',
243
262
  fieldKey : k1,
244
263
  parentKeys: JSON.stringify(parentKeys),
245
- oldv : v1,
246
- newv : v2
264
+ oldv : '',
265
+ newv : JSON.stringify(v2)
247
266
  })
248
267
  }
249
268
 
250
269
  }
251
270
  }
252
-
253
271
  }
254
272
  }
255
273
 
@@ -265,7 +283,7 @@ function diff(obj1, obj2,parentKeys){
265
283
  type:'added',
266
284
  fieldKey : k2,
267
285
  parentKeys: JSON.stringify(parentKeys),
268
- oldv : v1==null?null:'' + v1,
286
+ oldv : '',
269
287
  newv : '' +v2
270
288
  })
271
289
  }
@@ -276,7 +294,8 @@ function diff(obj1, obj2,parentKeys){
276
294
  fieldKey : k2,
277
295
  fieldType:'array',
278
296
  parentKeys: JSON.stringify(parentKeys),
279
- diff : v2
297
+ // diff : v2
298
+ newv:JSON.stringify(v2)
280
299
  });
281
300
  }
282
301
  else {
@@ -286,7 +305,7 @@ function diff(obj1, obj2,parentKeys){
286
305
  fieldKey: k2,
287
306
  parentKeys: JSON.stringify(parentKeys),
288
307
  oldv: null,
289
- newv: v2
308
+ newv: '' + v2
290
309
  });
291
310
  }
292
311
  }
@@ -97,6 +97,23 @@ var @projectCodeService = (function (pigeon) {
97
97
  }
98
98
  return curData
99
99
  },
100
+ deleteValue:function(fullkey,data){
101
+ var path = fullkey.split('.')
102
+ var curData = data
103
+ for (var i = 0; i < path.length-1; i++) {
104
+ var curKey = path[i]
105
+ if (typeof(curData) == 'object' && curData != null) {
106
+ curData = curData[curKey]
107
+ }
108
+ else {
109
+ return null
110
+ }
111
+ }
112
+ if(curData){
113
+ let lastKey = path[path.length-1];
114
+ delete curData[lastKey];
115
+ }
116
+ },
100
117
 
101
118
  setValue: function (fullkey, value, data) {
102
119
  var path = fullkey.split('.')
@@ -362,12 +379,32 @@ var @projectCodeService = (function (pigeon) {
362
379
 
363
380
  getNormalizedDoc: function (data) {
364
381
  var obj = JSON.parse(JSON.stringify(data))
382
+
383
+ var fields = formSpecs.fields;
384
+ for(var i=0; i<fields.length; i++){
385
+ var field= fields[i];
386
+ if (field['_ft'] === 'subform' || field['_ft'] === 'array') {
387
+ var meta = field.meta;
388
+ if(meta.index==='no'){
389
+ delete obj[field.key]
390
+ }
391
+ }
392
+ else if (field['_ft'] === 'field') {
393
+ if(field.index==='no'){
394
+ delete obj[field.key]
395
+ }
396
+ }
397
+ }
365
398
  f.tranverseFields(formSpecs, function (field, ctx) {
366
399
  if (ctx.parentField && ctx.parentField._ft == 'array') {
367
400
  var items = f.getValue(ctx.parentField.key, obj)
368
401
  if (items) {
369
402
  for (var i = 0; i < items.length; i++) {
370
403
  var item = items[i]
404
+ if(field.index==='no'){
405
+ delete item[field.origKey]
406
+ continue;
407
+ }
371
408
  var value = item[field.origKey]
372
409
  value = f.normalizeValue(value, field)
373
410
  item[field.origKey] = value
@@ -375,9 +412,15 @@ var @projectCodeService = (function (pigeon) {
375
412
  }
376
413
  }
377
414
  else {
378
- var value = f.getValue(field.key, obj)
379
- value = f.normalizeValue(value, field)
380
- f.setValue(field.key, value, obj)
415
+ if(field.index==='no'){
416
+ f.deleteValue(field.key,obj);
417
+ }
418
+ else{
419
+ var value = f.getValue(field.key, obj)
420
+ value = f.normalizeValue(value, field)
421
+ f.setValue(field.key, value, obj)
422
+ }
423
+
381
424
  }
382
425
  }, {})
383
426
  return obj
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "owl-cli",
3
- "version": "6.68.0",
3
+ "version": "6.70.0",
4
4
  "main": "index.js",
5
5
  "preferGlobal": true,
6
6
  "bin": {