|
@@ -623,6 +623,50 @@ function shielded_exec_env($PROJECT, $ME, rptDataItemObj) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+function getActPropertyVal(firstPropKey, secPropKey, orgObj) {
|
|
|
+ let rst = null;
|
|
|
+ if (orgObj[firstPropKey]) {
|
|
|
+ rst = orgObj[firstPropKey];
|
|
|
+ } else if (orgObj[secPropKey]){
|
|
|
+ rst = orgObj[secPropKey];
|
|
|
+ }
|
|
|
+ return rst;
|
|
|
+}
|
|
|
+
|
|
|
+function getDeepProperty(propKey, orgObj, destArr) {
|
|
|
+ let keys = propKey.split(".");
|
|
|
+ let dftPropKey = "key", dftPropVal = "value", secDftPropVal = "items";
|
|
|
+ let parent = orgObj, lastVal = null;
|
|
|
+ for (let key of keys) {
|
|
|
+ if (parent instanceof Array) {
|
|
|
+ for (let item of parent) {
|
|
|
+ if (item[dftPropKey] === key) {
|
|
|
+ lastVal = getActPropertyVal(dftPropVal, secDftPropVal, item);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ lastVal = null;
|
|
|
+ if (parent[key] !== undefined) {
|
|
|
+ lastVal = parent[key];
|
|
|
+ } else if (parent[secDftPropVal]){
|
|
|
+ for (let item of parent[secDftPropVal]) {
|
|
|
+ if (item[dftPropKey] === key) {
|
|
|
+ // lastVal = item[dftPropVal];
|
|
|
+ lastVal = getActPropertyVal(dftPropVal, secDftPropVal, item);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ parent = lastVal;
|
|
|
+ if (parent === null) break;
|
|
|
+ }
|
|
|
+ if (destArr && destArr instanceof Array) {
|
|
|
+ destArr.push(lastVal);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
function ext_mainGetPropety(propKey) {
|
|
|
let rst = [], parentObj = this;
|
|
|
let dtObj = parentObj["myOwnRawDataObj"];
|
|
@@ -631,10 +675,11 @@ function ext_mainGetPropety(propKey) {
|
|
|
if (!dtObj["property"][propKey] && dtObj[propKey]) {
|
|
|
rst.push(dtObj[propKey]);
|
|
|
} else {
|
|
|
- rst.push(dtObj["property"][propKey]);
|
|
|
+ getDeepProperty(propKey, dtObj["property"], rst);
|
|
|
}
|
|
|
} else {
|
|
|
- rst.push(dtObj[propKey]);
|
|
|
+ // rst.push(dtObj[propKey]);
|
|
|
+ getDeepProperty(propKey, dtObj, rst);
|
|
|
}
|
|
|
}
|
|
|
return rst;
|
|
@@ -647,6 +692,11 @@ function ext_getPropety(propKey) {
|
|
|
for (let dItem of dtObj.data) {
|
|
|
let doc = (dItem._doc === null || dItem._doc === undefined)?dItem:dItem._doc;
|
|
|
if (doc.hasOwnProperty("property")) {
|
|
|
+ // if (!doc["property"][propKey] && doc[propKey]) {
|
|
|
+ // rst.push(doc[propKey]);
|
|
|
+ // } else {
|
|
|
+ // getDeepProperty(propKey, doc["property"], rst);
|
|
|
+ // }
|
|
|
rst.push(doc["property"][propKey]);
|
|
|
} else if (doc.hasOwnProperty(propKey)) {
|
|
|
rst.push(doc[propKey]);
|