Commit fd401e75b1106bb022d892415be3fadf83288586

Authored by ykxie
1 parent b2d21f2d

init player tree

src/data/10.json
... ... @@ -13,4 +13,4 @@
13 13 { "id": 24, "pId": 2, "name": "defaultD.java", "type": "java" },
14 14 { "id": 25, "pId": 2, "name": "defaultE.java", "type": "java" }
15 15 ]
16   -}
17 16 \ No newline at end of file
  17 +}
... ...
src/gxb-ide/Dir.js
... ... @@ -9,6 +9,8 @@
9 9 fileList, // 有值的文件数据结构
10 10 treeObj; // 获取ztree对象
11 11  
  12 + var playTreePathData = {"tree": []};
  13 +
12 14 var isReplayPage = false;
13 15  
14 16 /*
... ... @@ -47,16 +49,17 @@
47 49 treeData: [], // 缓存目录树返回结果
48 50 treeLinkEditor: [], // 缓存整个目录树结构和代码编辑器的关系
49 51 mainPath: null, // 运行编译时候需要知道当前是哪个文件
  52 + treeObj: null,
50 53 init: function(){
51 54 console.log('=======================');
52 55 },
53 56 initIdePage: function(el, id, isPlayPage, role){
54 57 var _url = "../data/" + id + ".json";
55 58 var _lang = getLangName(id);
56   - // console.log(id);
  59 +
57 60 console.log('=======================');
58   - console.log(isPlayPage);
59   - console.log(role);
  61 + console.log('isPlayPage ----- ' + isPlayPage);
  62 + console.log('role ----- ' + role);
60 63  
61 64 if (isPlayPage == 0) {
62 65 $.ajax({
... ... @@ -66,16 +69,10 @@
66 69 contentType: "application/json",
67 70 success: function(res) {
68 71 console.log(res);
69   -
70   - treeData = res[_lang];
71   - console.log(treeData);
72   - treeObj = $.fn.zTree.init($(el), setting, treeData);
73   - Dir.treeObj = $.fn.zTree.init($(el), setting, treeData);
74   -
75   - addTextareaPage(treeData);
76   -
  72 + Dir.treeData = res[_lang];
  73 + Dir.treeObj = $.fn.zTree.init($(el), setting, Dir.treeData);
  74 + addTextareaPage(Dir.treeData);
77 75 CodingEditer.initCodeMirror(treeLinkEditor);
78   -
79 76 },
80 77 error: function(XMLHttpRequest, textStatus, errorThrown) {
81 78 console.log('Ajax langs.json error');
... ... @@ -91,7 +88,6 @@
91 88 } else if (role == 1) {
92 89 playUrl = gxb_api + "/programming/student/studentReplay/" + _codeReplayId + "/api";
93 90 }
94   -
95 91 $.ajax({
96 92 type: "GET",
97 93 url: playUrl,
... ... @@ -99,16 +95,12 @@
99 95 contentType: "application/json",
100 96 success: function(res) {
101 97 console.log(res);
102   -
103   - treeData = res[_lang];
104   - console.log(treeData);
105   - treeObj = $.fn.zTree.init($(el), setting, treeData);
106   - Dir.treeObj = $.fn.zTree.init($(el), setting, treeData);
107   -
108   - addTextareaPage(treeData);
109   -
  98 + var treeArr = res.programmingFileList;
  99 + Dir.treeData = programFileListToTreeJson(treeArr);
  100 + Dir.treeObj = $.fn.zTree.init($(el), setting, Dir.treeData);
  101 +
  102 + addTextareaPage(Dir.treeData);
110 103 CodingEditer.initCodeMirror(treeLinkEditor);
111   -
112 104 },
113 105 error: function(XMLHttpRequest, textStatus, errorThrown) {
114 106 console.log('Ajax langs.json error');
... ... @@ -181,6 +173,7 @@
181 173 getTreePath: function(name, newName){
182 174 // console.log(treeData);
183 175 var _pid, _folder, _filename;
  176 + var treeData = Dir.treeData;
184 177 for (var i = 0; i < treeData.length; i++) {
185 178 if(treeData[i].name == name){
186 179 _pid = treeData[i].pId;
... ... @@ -213,47 +206,48 @@
213 206 },
214 207 getTreeData: function(name){
215 208 var _arr = [];
  209 + var treeLinkEditor = Dir.treeLinkEditor;
216 210 console.log(treeLinkEditor);
217 211 if(!isReplayPage){
218 212 // 判断是否是需要返回单文件结果
219 213 if(name){
220 214 for (var i = 0; i < treeLinkEditor.length; i++) {
221   - if(treeLinkEditor[i].name == name && $.trim(treeLinkEditor[i].CodeMirrorRecord.getValue()) != ''){
  215 + // if(treeLinkEditor[i].name == name && $.trim(treeLinkEditor[i].CodeMirrorRecord.getValue()) != ''){
222 216 _arr.push({
223 217 "path": treeLinkEditor[i].filePath,
224 218 "content": $.trim(treeLinkEditor[i].CodeMirrorRecord.getValue())
225 219 })
226   - }
  220 + // }
227 221 }
228 222 }else{
229 223 for (var i = 0; i < treeLinkEditor.length; i++) {
230   - if($.trim(treeLinkEditor[i].CodeMirrorRecord.getValue()) != ''){
  224 + // if($.trim(treeLinkEditor[i].CodeMirrorRecord.getValue()) != ''){
231 225 _arr.push({
232 226 "path": treeLinkEditor[i].filePath,
233 227 "content": $.trim(treeLinkEditor[i].CodeMirrorRecord.getValue())
234 228 })
235   - }
  229 + // }
236 230 }
237 231 }
238 232 }else{
239 233 // 判断是否是需要返回单文件结果
240 234 if(name){
241 235 for (var i = 0; i < treeLinkEditor.length; i++) {
242   - if(treeLinkEditor[i].name == name && $.trim(treeLinkEditor[i].CodeMirrorReplay.getValue()) != ''){
  236 + // if(treeLinkEditor[i].name == name && $.trim(treeLinkEditor[i].CodeMirrorReplay.getValue()) != ''){
243 237 _arr.push({
244 238 "path": treeLinkEditor[i].filePath,
245 239 "content": $.trim(treeLinkEditor[i].CodeMirrorReplay.getValue())
246 240 })
247   - }
  241 + // }
248 242 }
249 243 }else{
250 244 for (var i = 0; i < treeLinkEditor.length; i++) {
251   - if($.trim(treeLinkEditor[i].CodeMirrorReplay.getValue()) != ''){
  245 + // if($.trim(treeLinkEditor[i].CodeMirrorReplay.getValue()) != ''){
252 246 _arr.push({
253 247 "path": treeLinkEditor[i].filePath,
254 248 "content": $.trim(treeLinkEditor[i].CodeMirrorReplay.getValue())
255 249 })
256   - }
  250 + // }
257 251 }
258 252 }
259 253 }
... ... @@ -266,11 +260,11 @@
266 260 return _arr;
267 261 },
268 262 selectTreeItem: function(name){
269   - var _thisName = name || treeData[1].name;
  263 + var _thisName = name || Dir.treeData[1].name;
270 264 // 处理菜单选中状态
271   - var node = treeObj.getNodeByParam("name", _thisName, null);
  265 + var node = Dir.treeObj.getNodeByParam("name", _thisName, null);
272 266  
273   - treeObj.selectNode(node, false, true);
  267 + Dir.treeObj.selectNode(node, false, true);
274 268 },
275 269 // 计算屏幕尺寸,动态渲染
276 270 resizeWindow: function(){
... ... @@ -299,9 +293,6 @@
299 293 }
300 294  
301 295  
302   - console.log(treeObj);
303   -
304   -
305 296  
306 297 // 当鼠标移动到节点上时,显示用户自定义控件
307 298 function addHoverDom(treeId, treeNode) {
... ... @@ -337,7 +328,7 @@
337 328 if (treeNode.isParent) {
338 329 return false;
339 330 }
340   - treeObj.expandNode(treeNode);
  331 + Dir.treeObj.expandNode(treeNode);
341 332  
342 333 var check_tree_time = new Date().getTime(); // 获取焦点的时间
343 334  
... ... @@ -406,9 +397,9 @@
406 397  
407 398  
408 399 function beforeEditName(treeId, treeNode){
409   - treeObj.selectNode(treeNode);
  400 + Dir.treeObj.selectNode(treeNode);
410 401 setTimeout(function() {
411   - treeObj.editName(treeNode);
  402 + Dir.treeObj.editName(treeNode);
412 403 }, 0);
413 404 return false;
414 405 }
... ... @@ -507,6 +498,77 @@
507 498 return _langName;
508 499 }
509 500  
  501 + var isPlayDataError = false;
  502 + function programFileListToTreeJson(arr, lang){
  503 + var playTreeFolder = [],
  504 + playTreeFile = [];
  505 + var n = 0,
  506 + m = 0,
  507 + l = 0;
  508 + var datalist = arr;
  509 +
  510 + if(datalist.length > 10){
  511 + datalist.length = 10;
  512 + }
  513 + for (var i = 0; i < datalist.length; i++) {
  514 + var temArr = datalist[i].path.split('/');
  515 + if(temArr[0] != "undefined" && temArr[1] != "undefined"){
  516 + if(playTreeFolder.length > 0){
  517 + for (var j = 0; j < playTreeFolder.length; j++) {
  518 + if(playTreeFolder[j]){
  519 + if(playTreeFolder[j].name != temArr[0]){
  520 + playTreeFolder[n] = {"name": temArr[0], "open": true, "isParent": true, "collapse": false };
  521 + }else{
  522 + // console.log('playTreeFolder[j] else');
  523 + }
  524 + }
  525 + }
  526 + }else{
  527 + playTreeFolder[n] = {"name": temArr[0], "open": true, "isParent": true, "collapse": false };
  528 + n++;
  529 + }
  530 +
  531 + if(playTreeFile.length > 0){
  532 + for (var j = 0; j < playTreeFile.length; j++) {
  533 + if(playTreeFile[j]){
  534 + if(playTreeFile[j].name != temArr[1]){
  535 + playTreeFile[m] = {'pName': temArr[0], "name": temArr[1], "type": lang };
  536 + }else{
  537 + playTreeFile[m] = {'pName': temArr[0], "name": temArr[1], "type": lang };
  538 + m++;
  539 + }
  540 + }
  541 + }
  542 + }else{
  543 + playTreeFile[m] = {'pName': temArr[0], "name": temArr[1], "type": lang };
  544 + m++;
  545 + }
  546 + }else{
  547 + isPlayDataError = true;
  548 + return false;
  549 + }
  550 + }
  551 + if(!isPlayDataError){
  552 + for (var i = 0; i < playTreeFolder.length; i++) {
  553 + playTreeFolder[i].pId = 0;
  554 + playTreeFolder[i].id = i+1;
  555 + playTreePathData['tree'].push(playTreeFolder[i]);
  556 + }
  557 + for (var i = 0; i < playTreeFile.length; i++) {
  558 + for (var j = 0; j < playTreeFolder.length; j++) {
  559 + if(playTreeFile[i].pName == playTreeFolder[j].name){
  560 + playTreeFile[i].id = (playTreeFolder[j].id.toString() + i.toString()) * 1;
  561 + playTreeFile[i].pId = playTreeFolder[j].id;
  562 + playTreePathData.tree.push(playTreeFile[i]);
  563 + }
  564 + }
  565 + }
  566 + return playTreePathData.tree;
  567 + }else{
  568 + return false;
  569 + }
  570 + }
  571 +
510 572  
511 573 $(window).resize(function() {
512 574 console.log('重置屏幕')
... ...
src/gxb-ide/ToolBox.js
... ... @@ -12,7 +12,7 @@
12 12 '<div class="recording-time" id="timer" value="">00:00:00</div>'+
13 13 '<div class="save-wrap">'+
14 14 '<input type="button" id="upload" class="upload-teach" disabled="disabled" value="保存">'+
15   - '<input type="button" id="savecode" class="upload-stud" style="display: none;" disabled="disabled" value="保存">'+
  15 + '<input type="button" id="savecode" class="upload-stud" style="display: none;" disabled="disabled" value="保存da">'+
16 16 '<input type="button" id="cancel" value="关闭">'+
17 17 '</div>'+
18 18 '</div>';
... ... @@ -176,6 +176,7 @@
176 176 var programmingFileList = Dir.getTreeData();
177 177 var keepTimer = Math.round($('#audio')[0].duration);
178 178  
  179 +
179 180 var postData = {
180 181 "mainPath": Dir.mainPath,
181 182 "mainArgus": "lixxx",
... ...