diff --git a/_server/editor.js b/_server/editor.js index 96139039..b27625b6 100644 --- a/_server/editor.js +++ b/_server/editor.js @@ -453,7 +453,7 @@ editor.prototype.listen = function() { if( e.ctrlKey && ( e.keyCode == 90 || e.keyCode == 89 ) ) e.preventDefault(); //Ctrl+z 撤销上一步undo - if(e.keyCode == 90 && e.ctrlKey && preMapData && currDrawData.pos.length){ + if(e.keyCode == 90 && e.ctrlKey && preMapData && currDrawData.pos.length && selectBox.isSelected){ editor.map = JSON.parse(JSON.stringify(preMapData)); editor.updateMap(); reDo = JSON.parse(JSON.stringify(currDrawData)); @@ -461,7 +461,7 @@ editor.prototype.listen = function() { preMapData = null; } //Ctrl+y 重做一步redo - if(e.keyCode == 89 && e.ctrlKey && reDo && reDo.pos.length){ + if(e.keyCode == 89 && e.ctrlKey && reDo && reDo.pos.length && selectBox.isSelected){ preMapData = JSON.parse(JSON.stringify(editor.map)); for(var j=0; j0?20:-20); workspace.scrollbar[hvScroll].onScroll_(); workspace.setScale(workspace.scale); } @@ -370,6 +370,7 @@ editor_blockly.import = function(id_,args){ var blocklyWidgetDiv = document.getElementsByClassName('blocklyWidgetDiv'); editor_blockly.show = function(){ + if(typeof(selectBox)!==typeof(undefined))selectBox.isSelected = false; document.getElementById('left6').style=''; for(var ii =0,node;node=blocklyWidgetDiv[ii];ii++){ node.style.zIndex = 201; diff --git a/_server/editor_file.js b/_server/editor_file.js index 476b3057..7ae82c1f 100644 --- a/_server/editor_file.js +++ b/_server/editor_file.js @@ -424,7 +424,8 @@ editor_file = function(editor, callback){ saveSetting('data',actionList,function (err) { callback([ (function(){ - var locObj=Object.assign({'main':{}},editor.core.data); + //var locObj=Object.assign({'main':{}},editor.core.data); + var locObj=Object.assign({},data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d,{'main':{}}); Object.keys(editor_file.dataComment._data.main._data).forEach(function(v){ if (isset(editor.main[v])) locObj.main[v]=editor.main[v]; @@ -439,7 +440,8 @@ editor_file = function(editor, callback){ } else { callback([ (function(){ - var locObj=Object.assign({'main':{}},editor.core.data); + //var locObj=Object.assign({'main':{}},editor.core.data); + var locObj=Object.assign({},data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d,{'main':{}}); Object.keys(editor_file.dataComment._data.main._data).forEach(function(v){ if (isset(editor.main[v])) locObj.main[v]=editor.main[v]; diff --git a/_server/editor_mode.js b/_server/editor_mode.js index b0a4d9d3..7105d24f 100644 --- a/_server/editor_mode.js +++ b/_server/editor_mode.js @@ -112,6 +112,7 @@ editor_mode.prototype.objToTable_ = function(obj,commentObj){ } if(checkRange(cobj._range,thiseval)){ editor_mode.addAction(['change',field,thiseval]); + editor_mode.onmode('save');//自动保存 } else { printe(field+' : 输入的值不合要求,请鼠标放置在注释上查看说明'); } @@ -170,127 +171,6 @@ editor_mode.prototype.objToTd_ = function(obj,commentObj,field,cfield,vobj,cobj) } } -editor_mode.prototype.objToTable = function(obj,commentObj){ - var outstr=["\n条目注释值\n"]; - var guids=[]; - var checkIsLeaf = function(obj,commentObj,field){ - var thiseval = eval('obj'+field); - if (thiseval == null || thiseval == undefined)return true;//null,undefined - if (typeof(thiseval) == typeof(''))return true;//字符串 - if (Object.keys(thiseval).length == 0)return true;//数字,true,false,空数组,空对象 - try { - var comment = eval('commentObj'+field); - if( comment.indexOf('$leaf') != -1){ - evalstr = comment.split('$leaf')[1].split('$end')[0]; - if(eval(evalstr) === true)return true; - } - } catch (error) {} - return false; - } - //深度优先遍历 - var recursionParse = function(tfield) { - for(var ii in eval("obj"+tfield)){ - var field = tfield+"['"+ii+"']"; - var isleaf = checkIsLeaf(obj,commentObj,field); - if (isleaf) { - var leafnode = editor_mode.objToTr(obj,commentObj,field); - outstr.push(leafnode[0]); - guids.push(leafnode[1]); - } else { - outstr.push(["--------",field,"\n"].join('')); - recursionParse(field); - } - } - } - recursionParse(""); - var checkRange = function(comment,thiseval){ - if( comment.indexOf('$range') !== -1){ - var evalstr = comment.split('$range')[1].split('$end')[0]; - return eval(evalstr); - } - return true; - } - var listen = function(guids) { - guids.forEach(function(guid){ - // tr>td[title=field] - // >td[title=comment] - // >td>div>input[value=thsieval] - var thisTr = document.getElementById(guid); - var input = thisTr.children[2].children[0].children[0]; - var field = thisTr.children[0].getAttribute('title'); - var comment = thisTr.children[1].getAttribute('title'); - input.onchange = function(){ - var node = thisTr.parentNode; - while (!editor_mode._ids.hasOwnProperty(node.getAttribute('id'))) { - node = node.parentNode; - } - editor_mode.onmode(editor_mode._ids[node.getAttribute('id')]); - var thiseval=null; - try{ - thiseval = JSON.parse(input.value); - }catch(ee){ - printe(field+' : '+ee); - throw ee; - } - if(checkRange(comment,thiseval)){ - editor_mode.addAction(['change',field,thiseval]); - } else { - printe(field+' : 输入的值不合要求,请鼠标放置在注释上查看说明'); - } - } - input.ondblclick = function(){ - if(!editor_blockly.import(guid)) - if(!editor_multi.import(guid)){} - - } - }); - } - return {"HTML":outstr.join(''),"guids":guids,"listen":listen}; -} - -editor_mode.prototype.objToTr = function(obj,commentObj,field){ - var guid = editor.guid(); - var thiseval = eval('obj'+field); - var comment = ''; - try { - comment = eval('commentObj'+field); - } catch (error) {} - if(!comment)comment=''; - - var charlength=10; - - var shortField = field.split("']").slice(-2)[0].split("['").slice(-1)[0]; - shortField = (shortField.length',shortField,'', - '',shortCommentHTMLescape,'', - '
',editor_mode.objToTd(thiseval,comment,field),'
\n', - ]; - return [outstr.join(''),guid]; -} - -editor_mode.prototype.objToTd = function(thiseval,comment,field){ - if( comment.indexOf('$select') != -1){ - var evalstr = comment.split('$select')[1].split('$end')[0]; - var values = eval(evalstr)['values']; - var outstr = [''); - return outstr.join(''); - } else if( comment.indexOf('$input') != -1){ - return ["\n"].join(''); - } else { - //rows='",rows,"' - var num = 0;//editor_mode.indent(field); - return ["\n'].join(''); - } -} - editor_mode.prototype.indent = function(field){ var num = '\t'; if(field.indexOf("['main']")===0)return 0; diff --git a/_server/editor_multi.js b/_server/editor_multi.js index 0a918926..6588545d 100644 --- a/_server/editor_multi.js +++ b/_server/editor_multi.js @@ -31,6 +31,7 @@ editor_multi.isString=false; editor_multi.lintAutocomplete=false; editor_multi.show = function(){ + if(typeof(selectBox)!==typeof(undefined))selectBox.isSelected = false; var valueNow = codeEditor.getValue(); //try{eval('function _asdygakufyg_() { return '+valueNow+'\n}');editor_multi.lintAutocomplete=true;}catch(ee){} if(valueNow.slice(0,8)==='function')editor_multi.lintAutocomplete=true; @@ -49,7 +50,7 @@ editor_multi.toggerLint = function() { } editor_multi.indent = function(field){ - if(editor && editor.mode && editor.mode.indent)return editor.mode.indent(field); + if(typeof(editor)!==typeof(undefined) && editor && editor.mode && editor.mode.indent)return editor.mode.indent(field); return '\t'; }