Commit fd401e75b1106bb022d892415be3fadf83288586

Authored by ykxie
1 parent b2d21f2d

init player tree

src/data/10.json
@@ -13,4 +13,4 @@ @@ -13,4 +13,4 @@
13 { "id": 24, "pId": 2, "name": "defaultD.java", "type": "java" }, 13 { "id": 24, "pId": 2, "name": "defaultD.java", "type": "java" },
14 { "id": 25, "pId": 2, "name": "defaultE.java", "type": "java" } 14 { "id": 25, "pId": 2, "name": "defaultE.java", "type": "java" }
15 ] 15 ]
16 -}  
17 \ No newline at end of file 16 \ No newline at end of file
  17 +}
src/gxb-ide/Dir.js
@@ -9,6 +9,8 @@ @@ -9,6 +9,8 @@
9 fileList, // 有值的文件数据结构 9 fileList, // 有值的文件数据结构
10 treeObj; // 获取ztree对象 10 treeObj; // 获取ztree对象
11 11
  12 + var playTreePathData = {"tree": []};
  13 +
12 var isReplayPage = false; 14 var isReplayPage = false;
13 15
14 /* 16 /*
@@ -47,16 +49,17 @@ @@ -47,16 +49,17 @@
47 treeData: [], // 缓存目录树返回结果 49 treeData: [], // 缓存目录树返回结果
48 treeLinkEditor: [], // 缓存整个目录树结构和代码编辑器的关系 50 treeLinkEditor: [], // 缓存整个目录树结构和代码编辑器的关系
49 mainPath: null, // 运行编译时候需要知道当前是哪个文件 51 mainPath: null, // 运行编译时候需要知道当前是哪个文件
  52 + treeObj: null,
50 init: function(){ 53 init: function(){
51 console.log('======================='); 54 console.log('=======================');
52 }, 55 },
53 initIdePage: function(el, id, isPlayPage, role){ 56 initIdePage: function(el, id, isPlayPage, role){
54 var _url = "../data/" + id + ".json"; 57 var _url = "../data/" + id + ".json";
55 var _lang = getLangName(id); 58 var _lang = getLangName(id);
56 - // console.log(id); 59 +
57 console.log('======================='); 60 console.log('=======================');
58 - console.log(isPlayPage);  
59 - console.log(role); 61 + console.log('isPlayPage ----- ' + isPlayPage);
  62 + console.log('role ----- ' + role);
60 63
61 if (isPlayPage == 0) { 64 if (isPlayPage == 0) {
62 $.ajax({ 65 $.ajax({
@@ -66,16 +69,10 @@ @@ -66,16 +69,10 @@
66 contentType: "application/json", 69 contentType: "application/json",
67 success: function(res) { 70 success: function(res) {
68 console.log(res); 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 CodingEditer.initCodeMirror(treeLinkEditor); 75 CodingEditer.initCodeMirror(treeLinkEditor);
78 -  
79 }, 76 },
80 error: function(XMLHttpRequest, textStatus, errorThrown) { 77 error: function(XMLHttpRequest, textStatus, errorThrown) {
81 console.log('Ajax langs.json error'); 78 console.log('Ajax langs.json error');
@@ -91,7 +88,6 @@ @@ -91,7 +88,6 @@
91 } else if (role == 1) { 88 } else if (role == 1) {
92 playUrl = gxb_api + "/programming/student/studentReplay/" + _codeReplayId + "/api"; 89 playUrl = gxb_api + "/programming/student/studentReplay/" + _codeReplayId + "/api";
93 } 90 }
94 -  
95 $.ajax({ 91 $.ajax({
96 type: "GET", 92 type: "GET",
97 url: playUrl, 93 url: playUrl,
@@ -99,16 +95,12 @@ @@ -99,16 +95,12 @@
99 contentType: "application/json", 95 contentType: "application/json",
100 success: function(res) { 96 success: function(res) {
101 console.log(res); 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 CodingEditer.initCodeMirror(treeLinkEditor); 103 CodingEditer.initCodeMirror(treeLinkEditor);
111 -  
112 }, 104 },
113 error: function(XMLHttpRequest, textStatus, errorThrown) { 105 error: function(XMLHttpRequest, textStatus, errorThrown) {
114 console.log('Ajax langs.json error'); 106 console.log('Ajax langs.json error');
@@ -181,6 +173,7 @@ @@ -181,6 +173,7 @@
181 getTreePath: function(name, newName){ 173 getTreePath: function(name, newName){
182 // console.log(treeData); 174 // console.log(treeData);
183 var _pid, _folder, _filename; 175 var _pid, _folder, _filename;
  176 + var treeData = Dir.treeData;
184 for (var i = 0; i < treeData.length; i++) { 177 for (var i = 0; i < treeData.length; i++) {
185 if(treeData[i].name == name){ 178 if(treeData[i].name == name){
186 _pid = treeData[i].pId; 179 _pid = treeData[i].pId;
@@ -213,47 +206,48 @@ @@ -213,47 +206,48 @@
213 }, 206 },
214 getTreeData: function(name){ 207 getTreeData: function(name){
215 var _arr = []; 208 var _arr = [];
  209 + var treeLinkEditor = Dir.treeLinkEditor;
216 console.log(treeLinkEditor); 210 console.log(treeLinkEditor);
217 if(!isReplayPage){ 211 if(!isReplayPage){
218 // 判断是否是需要返回单文件结果 212 // 判断是否是需要返回单文件结果
219 if(name){ 213 if(name){
220 for (var i = 0; i < treeLinkEditor.length; i++) { 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 _arr.push({ 216 _arr.push({
223 "path": treeLinkEditor[i].filePath, 217 "path": treeLinkEditor[i].filePath,
224 "content": $.trim(treeLinkEditor[i].CodeMirrorRecord.getValue()) 218 "content": $.trim(treeLinkEditor[i].CodeMirrorRecord.getValue())
225 }) 219 })
226 - } 220 + // }
227 } 221 }
228 }else{ 222 }else{
229 for (var i = 0; i < treeLinkEditor.length; i++) { 223 for (var i = 0; i < treeLinkEditor.length; i++) {
230 - if($.trim(treeLinkEditor[i].CodeMirrorRecord.getValue()) != ''){ 224 + // if($.trim(treeLinkEditor[i].CodeMirrorRecord.getValue()) != ''){
231 _arr.push({ 225 _arr.push({
232 "path": treeLinkEditor[i].filePath, 226 "path": treeLinkEditor[i].filePath,
233 "content": $.trim(treeLinkEditor[i].CodeMirrorRecord.getValue()) 227 "content": $.trim(treeLinkEditor[i].CodeMirrorRecord.getValue())
234 }) 228 })
235 - } 229 + // }
236 } 230 }
237 } 231 }
238 }else{ 232 }else{
239 // 判断是否是需要返回单文件结果 233 // 判断是否是需要返回单文件结果
240 if(name){ 234 if(name){
241 for (var i = 0; i < treeLinkEditor.length; i++) { 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 _arr.push({ 237 _arr.push({
244 "path": treeLinkEditor[i].filePath, 238 "path": treeLinkEditor[i].filePath,
245 "content": $.trim(treeLinkEditor[i].CodeMirrorReplay.getValue()) 239 "content": $.trim(treeLinkEditor[i].CodeMirrorReplay.getValue())
246 }) 240 })
247 - } 241 + // }
248 } 242 }
249 }else{ 243 }else{
250 for (var i = 0; i < treeLinkEditor.length; i++) { 244 for (var i = 0; i < treeLinkEditor.length; i++) {
251 - if($.trim(treeLinkEditor[i].CodeMirrorReplay.getValue()) != ''){ 245 + // if($.trim(treeLinkEditor[i].CodeMirrorReplay.getValue()) != ''){
252 _arr.push({ 246 _arr.push({
253 "path": treeLinkEditor[i].filePath, 247 "path": treeLinkEditor[i].filePath,
254 "content": $.trim(treeLinkEditor[i].CodeMirrorReplay.getValue()) 248 "content": $.trim(treeLinkEditor[i].CodeMirrorReplay.getValue())
255 }) 249 })
256 - } 250 + // }
257 } 251 }
258 } 252 }
259 } 253 }
@@ -266,11 +260,11 @@ @@ -266,11 +260,11 @@
266 return _arr; 260 return _arr;
267 }, 261 },
268 selectTreeItem: function(name){ 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 resizeWindow: function(){ 270 resizeWindow: function(){
@@ -299,9 +293,6 @@ @@ -299,9 +293,6 @@
299 } 293 }
300 294
301 295
302 - console.log(treeObj);  
303 -  
304 -  
305 296
306 // 当鼠标移动到节点上时,显示用户自定义控件 297 // 当鼠标移动到节点上时,显示用户自定义控件
307 function addHoverDom(treeId, treeNode) { 298 function addHoverDom(treeId, treeNode) {
@@ -337,7 +328,7 @@ @@ -337,7 +328,7 @@
337 if (treeNode.isParent) { 328 if (treeNode.isParent) {
338 return false; 329 return false;
339 } 330 }
340 - treeObj.expandNode(treeNode); 331 + Dir.treeObj.expandNode(treeNode);
341 332
342 var check_tree_time = new Date().getTime(); // 获取焦点的时间 333 var check_tree_time = new Date().getTime(); // 获取焦点的时间
343 334
@@ -406,9 +397,9 @@ @@ -406,9 +397,9 @@
406 397
407 398
408 function beforeEditName(treeId, treeNode){ 399 function beforeEditName(treeId, treeNode){
409 - treeObj.selectNode(treeNode); 400 + Dir.treeObj.selectNode(treeNode);
410 setTimeout(function() { 401 setTimeout(function() {
411 - treeObj.editName(treeNode); 402 + Dir.treeObj.editName(treeNode);
412 }, 0); 403 }, 0);
413 return false; 404 return false;
414 } 405 }
@@ -507,6 +498,77 @@ @@ -507,6 +498,77 @@
507 return _langName; 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 $(window).resize(function() { 573 $(window).resize(function() {
512 console.log('重置屏幕') 574 console.log('重置屏幕')
src/gxb-ide/ToolBox.js
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 '<div class="recording-time" id="timer" value="">00:00:00</div>'+ 12 '<div class="recording-time" id="timer" value="">00:00:00</div>'+
13 '<div class="save-wrap">'+ 13 '<div class="save-wrap">'+
14 '<input type="button" id="upload" class="upload-teach" disabled="disabled" value="保存">'+ 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 '<input type="button" id="cancel" value="关闭">'+ 16 '<input type="button" id="cancel" value="关闭">'+
17 '</div>'+ 17 '</div>'+
18 '</div>'; 18 '</div>';
@@ -176,6 +176,7 @@ @@ -176,6 +176,7 @@
176 var programmingFileList = Dir.getTreeData(); 176 var programmingFileList = Dir.getTreeData();
177 var keepTimer = Math.round($('#audio')[0].duration); 177 var keepTimer = Math.round($('#audio')[0].duration);
178 178
  179 +
179 var postData = { 180 var postData = {
180 "mainPath": Dir.mainPath, 181 "mainPath": Dir.mainPath,
181 "mainArgus": "lixxx", 182 "mainArgus": "lixxx",