This commit is contained in:
YouWei Zhao 2019-01-12 10:35:24 -05:00
parent 440f384e0c
commit 951fdf7523

View File

@ -92,9 +92,25 @@ editor_mode = function (editor) {
* @param {Object} pcobj
*/
var recursionParse = function (pfield, pcfield, pvobj, pcobj) {
var keysForTableOrder={};
var voidMark={};
// 1. 按照pcobj排序生成
if (pcobj && pcobj['_data']){
for (var ii in pcobj['_data']) keysForTableOrder[ii]=voidMark;
}
// 2. 对每个pvobj且不在pcobj的再添加到最后
var generate = function (ii) {
keysForTableOrder=Object.assign(keysForTableOrder,pvobj)
for (var ii in keysForTableOrder) {
// 3. 对于pcobj有但是pvobj中没有的, 弹出提示, (正常情况下editor_file会补全成null)
// 事实上能执行到这一步工程没崩掉打不开,就继续吧..
if(keysForTableOrder[ii]===voidMark){
if(typeof id_815975ad_ee6f_4684_aac7_397b7e392702==="undefined"){
alert('comment和data不匹配,请在群 HTML5造塔技术交流群 959329661 内反馈')
console.error('comment和data不匹配,请在群 HTML5造塔技术交流群 959329661 内反馈')
id_815975ad_ee6f_4684_aac7_397b7e392702=1;
}
continue;
}
var field = pfield + "['" + ii + "']";
var cfield = pcfield + "['_data']['" + ii + "']";
var vobj = pvobj[ii];
@ -114,7 +130,7 @@ editor_mode = function (editor) {
if (cobj[key] instanceof Function) cobj[key] = cobj[key](args);
}
// 标记为_hide的属性不展示
if (cobj._hide) return;
if (cobj._hide)continue;
if (!cobj._leaf) {
// 不是叶节点时, 插入展开的标记并继续遍历, 此处可以改成按钮用来添加新项或折叠等
outstr.push(["<tr><td>----</td><td>----</td><td>", field, "</td></tr>\n"].join(''));
@ -126,18 +142,6 @@ editor_mode = function (editor) {
guids.push(leafnode[1]);
}
}
var done = {};
if (pcobj && pcobj['_data']) {
for (var ii in pcobj['_data']) {
generate(ii);
done[ii] = true;
}
}
for (var ii in pvobj) {
if (done[ii]) continue;
generate(ii);
}
}
// 开始遍历
recursionParse("", "", obj, commentObj);