Commit 9b3071d4a0310c0d5a20c2642d418f784fb7fbed

Authored by ykxie
1 parent 85d829b1

初步实现录制编译

src/css/ide.css
@@ -61,6 +61,21 @@ ul.ztree li span.button.add { @@ -61,6 +61,21 @@ ul.ztree li span.button.add {
61 float: left; 61 float: left;
62 border-bottom: 0; } 62 border-bottom: 0; }
63 63
  64 +.programing #resultoutput .tab-pane {
  65 + padding: 14px; }
  66 +
  67 +.programing .record-title .nav-tabs > li.active > a, .programing .record-title .nav-tabs > li.active > a:hover, .programing .record-title .nav-tabs > li.active > a:focus {
  68 + color: #fff; }
  69 +
  70 +.programing .record-title .nav-tabs > li > a, .programing .record-title .nav-tabs > li.active > a:hover, .programing .record-title .nav-tabs > li.active > a:focus {
  71 + margin-right: 0;
  72 + line-height: 1.428571429;
  73 + border: none !important;
  74 + background: transparent !important;
  75 + height: 36px;
  76 + line-height: 36px;
  77 + padding: 0 12px; }
  78 +
64 html, body { 79 html, body {
65 width: 100%; 80 width: 100%;
66 height: 100%; } 81 height: 100%; }
@@ -74,20 +89,21 @@ html, body { @@ -74,20 +89,21 @@ html, body {
74 89
75 .record-title { 90 .record-title {
76 width: 100%; 91 width: 100%;
77 - height: 60px; 92 + height: 36px;
78 background-image: -webkit-linear-gradient(left, #1FB6FF 0%, #62DCF5 100%); 93 background-image: -webkit-linear-gradient(left, #1FB6FF 0%, #62DCF5 100%);
79 background-image: linear-gradient(to right, #1FB6FF 0%, #62DCF5 100%); 94 background-image: linear-gradient(to right, #1FB6FF 0%, #62DCF5 100%);
80 position: absolute; 95 position: absolute;
81 top: 0; 96 top: 0;
82 - z-index: 9999; } 97 + z-index: 9999;
  98 + padding-left: 28px; }
83 99
84 .record-wrap { 100 .record-wrap {
85 width: 100%; 101 width: 100%;
86 height: 100%; 102 height: 100%;
87 position: absolute; 103 position: absolute;
88 box-sizing: border-box; 104 box-sizing: border-box;
89 - padding-top: 60px;  
90 - padding-bottom: 280px; } 105 + padding-top: 36px;
  106 + padding-bottom: 300px; }
91 .record-wrap #ideDir { 107 .record-wrap #ideDir {
92 width: 170px; 108 width: 170px;
93 height: 100%; 109 height: 100%;
@@ -105,7 +121,8 @@ html, body { @@ -105,7 +121,8 @@ html, body {
105 .record-wrap #ideEditer #recordzone, .record-wrap #ideEditer #replayzone, .record-wrap #ideEditer .coding { 121 .record-wrap #ideEditer #recordzone, .record-wrap #ideEditer #replayzone, .record-wrap #ideEditer .coding {
106 height: 100%; } 122 height: 100%; }
107 .record-wrap #folder { 123 .record-wrap #folder {
108 - height: 100%; } 124 + height: 100%;
  125 + min-height: 300px; }
109 .record-wrap .gxb-record { 126 .record-wrap .gxb-record {
110 position: relative; 127 position: relative;
111 height: 100%; } 128 height: 100%; }
@@ -114,7 +131,6 @@ html, body { @@ -114,7 +131,6 @@ html, body {
114 width: 100%; 131 width: 100%;
115 position: absolute; 132 position: absolute;
116 bottom: 0; 133 bottom: 0;
117 - background-color: #23383f;  
118 z-index: 999; } 134 z-index: 999; }
119 .record-toolbox .console-wrap { 135 .record-toolbox .console-wrap {
120 width: 100%; 136 width: 100%;
@@ -124,6 +140,54 @@ html, body { @@ -124,6 +140,54 @@ html, body {
124 .record-toolbox .console-wrap #toolbar { 140 .record-toolbox .console-wrap #toolbar {
125 width: 100%; 141 width: 100%;
126 height: 36px; 142 height: 36px;
127 - background-color: #F0F3F5; } 143 + overflow: hidden;
  144 + background-color: #e3e3e3; }
  145 + .record-toolbox .console-wrap #toolbar .result-tabs {
  146 + height: 30px;
  147 + border-radius: 30px;
  148 + background-color: #62DCF5;
  149 + overflow: hidden;
  150 + margin: 3px 16px;
  151 + color: #fff; }
  152 + .record-toolbox .console-wrap #toolbar .text {
  153 + color: #fff; }
  154 + .record-toolbox .console-wrap #toolbar .result-tabs > li.active > a, .record-toolbox .console-wrap #toolbar .result-tabs > li.active > a:hover, .record-toolbox .console-wrap #toolbar .result-tabs > li > a:hover, .record-toolbox .console-wrap #toolbar .result-tabs > li.active > a:focus {
  155 + color: #1FB6FF;
  156 + background-color: #fff;
  157 + box-shadow: 0px 0px 2px 0px #B3E5FF;
  158 + border: none; }
  159 + .record-toolbox .console-wrap #toolbar .result-tabs > li > a, .record-toolbox .console-wrap #toolbar .result-tabs > li.active > a:hover {
  160 + padding: 4px 36px;
  161 + border: none;
  162 + margin: 1px;
  163 + border-radius: 15px;
  164 + font-size: 14px;
  165 + transition: all 0.1s ease; }
  166 + .record-toolbox .console-wrap #toolbar .func {
  167 + height: 36px;
  168 + padding-top: 3px; }
  169 + .record-toolbox #full-screen, .record-toolbox #back-screen {
  170 + margin: 0;
  171 + background-image: linear-gradient(90deg, #1FB6FF 0%, #62DCF5 100%);
  172 + border-radius: 100px;
  173 + padding: 6px 7px;
  174 + margin: 0 16px;
  175 + color: #fff; }
  176 + .record-toolbox #resultoutput {
  177 + height: 204px;
  178 + overflow: auto; }
  179 + .record-toolbox #compileBtn {
  180 + background-image: -webkit-linear-gradient(left, #1FB6FF 0%, #62DCF5 100%);
  181 + background-image: linear-gradient(to right, #1FB6FF 0%, #62DCF5 100%);
  182 + -webkit-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
  183 + transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
  184 + border: none;
  185 + color: #fff;
  186 + padding-top: 5px;
  187 + padding-bottom: 5px; }
128 .record-toolbox .record-ctrl { 188 .record-toolbox .record-ctrl {
129 - height: 60px; } 189 + height: 60px;
  190 + width: 100%;
  191 + z-index: 999;
  192 + padding: 0 136px;
  193 + background-color: #23383f; }
src/css/main.css
@@ -11,20 +11,21 @@ html, body { @@ -11,20 +11,21 @@ html, body {
11 11
12 .record-title { 12 .record-title {
13 width: 100%; 13 width: 100%;
14 - height: 60px; 14 + height: 36px;
15 background-image: -webkit-linear-gradient(left, #1FB6FF 0%, #62DCF5 100%); 15 background-image: -webkit-linear-gradient(left, #1FB6FF 0%, #62DCF5 100%);
16 background-image: linear-gradient(to right, #1FB6FF 0%, #62DCF5 100%); 16 background-image: linear-gradient(to right, #1FB6FF 0%, #62DCF5 100%);
17 position: absolute; 17 position: absolute;
18 top: 0; 18 top: 0;
19 - z-index: 9999; } 19 + z-index: 9999;
  20 + padding-left: 28px; }
20 21
21 .record-wrap { 22 .record-wrap {
22 width: 100%; 23 width: 100%;
23 height: 100%; 24 height: 100%;
24 position: absolute; 25 position: absolute;
25 box-sizing: border-box; 26 box-sizing: border-box;
26 - padding-top: 60px;  
27 - padding-bottom: 280px; } 27 + padding-top: 36px;
  28 + padding-bottom: 300px; }
28 .record-wrap #ideDir { 29 .record-wrap #ideDir {
29 width: 170px; 30 width: 170px;
30 height: 100%; 31 height: 100%;
@@ -42,7 +43,8 @@ html, body { @@ -42,7 +43,8 @@ html, body {
42 .record-wrap #ideEditer #recordzone, .record-wrap #ideEditer #replayzone, .record-wrap #ideEditer .coding { 43 .record-wrap #ideEditer #recordzone, .record-wrap #ideEditer #replayzone, .record-wrap #ideEditer .coding {
43 height: 100%; } 44 height: 100%; }
44 .record-wrap #folder { 45 .record-wrap #folder {
45 - height: 100%; } 46 + height: 100%;
  47 + min-height: 300px; }
46 .record-wrap .gxb-record { 48 .record-wrap .gxb-record {
47 position: relative; 49 position: relative;
48 height: 100%; } 50 height: 100%; }
@@ -51,7 +53,6 @@ html, body { @@ -51,7 +53,6 @@ html, body {
51 width: 100%; 53 width: 100%;
52 position: absolute; 54 position: absolute;
53 bottom: 0; 55 bottom: 0;
54 - background-color: #23383f;  
55 z-index: 999; } 56 z-index: 999; }
56 .record-toolbox .console-wrap { 57 .record-toolbox .console-wrap {
57 width: 100%; 58 width: 100%;
@@ -61,6 +62,54 @@ html, body { @@ -61,6 +62,54 @@ html, body {
61 .record-toolbox .console-wrap #toolbar { 62 .record-toolbox .console-wrap #toolbar {
62 width: 100%; 63 width: 100%;
63 height: 36px; 64 height: 36px;
64 - background-color: #F0F3F5; } 65 + overflow: hidden;
  66 + background-color: #e3e3e3; }
  67 + .record-toolbox .console-wrap #toolbar .result-tabs {
  68 + height: 30px;
  69 + border-radius: 30px;
  70 + background-color: #62DCF5;
  71 + overflow: hidden;
  72 + margin: 3px 16px;
  73 + color: #fff; }
  74 + .record-toolbox .console-wrap #toolbar .text {
  75 + color: #fff; }
  76 + .record-toolbox .console-wrap #toolbar .result-tabs > li.active > a, .record-toolbox .console-wrap #toolbar .result-tabs > li.active > a:hover, .record-toolbox .console-wrap #toolbar .result-tabs > li > a:hover, .record-toolbox .console-wrap #toolbar .result-tabs > li.active > a:focus {
  77 + color: #1FB6FF;
  78 + background-color: #fff;
  79 + box-shadow: 0px 0px 2px 0px #B3E5FF;
  80 + border: none; }
  81 + .record-toolbox .console-wrap #toolbar .result-tabs > li > a, .record-toolbox .console-wrap #toolbar .result-tabs > li.active > a:hover {
  82 + padding: 4px 36px;
  83 + border: none;
  84 + margin: 1px;
  85 + border-radius: 15px;
  86 + font-size: 14px;
  87 + transition: all 0.1s ease; }
  88 + .record-toolbox .console-wrap #toolbar .func {
  89 + height: 36px;
  90 + padding-top: 3px; }
  91 + .record-toolbox #full-screen, .record-toolbox #back-screen {
  92 + margin: 0;
  93 + background-image: linear-gradient(90deg, #1FB6FF 0%, #62DCF5 100%);
  94 + border-radius: 100px;
  95 + padding: 6px 7px;
  96 + margin: 0 16px;
  97 + color: #fff; }
  98 + .record-toolbox #resultoutput {
  99 + height: 204px;
  100 + overflow: auto; }
  101 + .record-toolbox #compileBtn {
  102 + background-image: -webkit-linear-gradient(left, #1FB6FF 0%, #62DCF5 100%);
  103 + background-image: linear-gradient(to right, #1FB6FF 0%, #62DCF5 100%);
  104 + -webkit-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
  105 + transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
  106 + border: none;
  107 + color: #fff;
  108 + padding-top: 5px;
  109 + padding-bottom: 5px; }
65 .record-toolbox .record-ctrl { 110 .record-toolbox .record-ctrl {
66 - height: 60px; } 111 + height: 60px;
  112 + width: 100%;
  113 + z-index: 999;
  114 + padding: 0 136px;
  115 + background-color: #23383f; }
src/gxb-ide/CodingEditer.js
@@ -49,7 +49,7 @@ @@ -49,7 +49,7 @@
49 console.log('---------------------------') 49 console.log('---------------------------')
50 50
51 var treeLinkEditor = Dir.treeLinkEditor; 51 var treeLinkEditor = Dir.treeLinkEditor;
52 - 52 + console.log(treeLinkEditor)
53 CodingEditer.record_startime = new Date().getTime(); // 设置开始录制的时间 53 CodingEditer.record_startime = new Date().getTime(); // 设置开始录制的时间
54 54
55 initProgramPage(treeLinkEditor); 55 initProgramPage(treeLinkEditor);
src/gxb-ide/Dir.js
@@ -48,7 +48,6 @@ @@ -48,7 +48,6 @@
48 treeLinkEditor: [], // 缓存整个目录树结构和代码编辑器的关系 48 treeLinkEditor: [], // 缓存整个目录树结构和代码编辑器的关系
49 mainPath: null, // 运行编译时候需要知道当前是哪个文件 49 mainPath: null, // 运行编译时候需要知道当前是哪个文件
50 init: function(){ 50 init: function(){
51 - this.resizeWindow();  
52 }, 51 },
53 initIdePage: function(el, id){ 52 initIdePage: function(el, id){
54 var _url = "../js/" + id + ".json"; 53 var _url = "../js/" + id + ".json";
@@ -61,13 +60,14 @@ @@ -61,13 +60,14 @@
61 dataType: "json", 60 dataType: "json",
62 contentType: "application/json", 61 contentType: "application/json",
63 success: function(res) { 62 success: function(res) {
64 - 63 + console.log(res);
  64 +
65 treeData = res[_lang]; 65 treeData = res[_lang];
66 console.log(treeData); 66 console.log(treeData);
67 -  
68 treeObj = $.fn.zTree.init($(el), setting, treeData); 67 treeObj = $.fn.zTree.init($(el), setting, treeData);
69 68
70 addTextareaPage(treeData); 69 addTextareaPage(treeData);
  70 +
71 CodingEditer.initCodeMirror(treeLinkEditor); 71 CodingEditer.initCodeMirror(treeLinkEditor);
72 72
73 }, 73 },
@@ -76,7 +76,6 @@ @@ -76,7 +76,6 @@
76 console.log(XMLHttpRequest); 76 console.log(XMLHttpRequest);
77 } 77 }
78 }); 78 });
79 - this.resizeWindow();  
80 }, 79 },
81 showEdite: function(obj){ 80 showEdite: function(obj){
82 81
@@ -86,6 +85,7 @@ @@ -86,6 +85,7 @@
86 _CodeMirrorReplayId, 85 _CodeMirrorReplayId,
87 _num = 0; 86 _num = 0;
88 87
  88 + console.log(treeLinkEditor)
89 // 判断是否是初始化选时候调用 showEdite 89 // 判断是否是初始化选时候调用 showEdite
90 if(obj){ 90 if(obj){
91 for (var i = 0; i < treeLinkEditor.length; i++) { 91 for (var i = 0; i < treeLinkEditor.length; i++) {
@@ -363,7 +363,7 @@ @@ -363,7 +363,7 @@
363 var _file = _datalist[i].name; 363 var _file = _datalist[i].name;
364 var _name = Dir.manageName(_file); 364 var _name = Dir.manageName(_file);
365 var defaultValue; 365 var defaultValue;
366 - defaultValue = 'package '+ Dir.getTreePath(_file).split('/')[0] +';\n'; 366 + defaultValue = '';
367 treeLinkEditor.push({ 367 treeLinkEditor.push({
368 "name": _name, 368 "name": _name,
369 "file": _file, 369 "file": _file,
@@ -409,7 +409,7 @@ @@ -409,7 +409,7 @@
409 _langName = "C++"; 409 _langName = "C++";
410 break; 410 break;
411 case 29: 411 case 29:
412 - _langName = "PHP"; 412 + _langName = "php";
413 break; 413 break;
414 case 4: 414 case 4:
415 _langName = "python"; 415 _langName = "python";
src/gxb-ide/ToolBox.js
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
13 "mainArgus": "", 13 "mainArgus": "",
14 "runtimeArgus": runtimeArgus, 14 "runtimeArgus": runtimeArgus,
15 "rand": "123456", 15 "rand": "123456",
16 - "fileList": _fileList 16 + "fileList": _fileList || []
17 } 17 }
18 18
19 console.log(compileData); 19 console.log(compileData);
src/gxb-ide/idedemo.html
@@ -52,7 +52,7 @@ @@ -52,7 +52,7 @@
52 var userId = 826920; 52 var userId = 826920;
53 var ide = new GxbIde({ 53 var ide = new GxbIde({
54 el: '#folder', 54 el: '#folder',
55 - languageid: 10 55 + languageid: languageid
56 }); 56 });
57 57
58 $('.getValue').click(function(){ 58 $('.getValue').click(function(){
@@ -124,14 +124,15 @@ @@ -124,14 +124,15 @@
124 <div id="toolbar"> 124 <div id="toolbar">
125 <!-- Nav tabs --> 125 <!-- Nav tabs -->
126 <ul class="nav nav-tabs result-tabs need-compile" role="tablist" id="cmprun-tabs"> 126 <ul class="nav nav-tabs result-tabs need-compile" role="tablist" id="cmprun-tabs">
127 - <li class="active"><a href="#stdin" role="tab" data-toggle="tab" class="text-warning">标准</a></li>  
128 - <li><a href="#cmpinfo" role="tab" data-toggle="tab" class="text-warning">编译</a></li>  
129 - <li><a href="#stderr" role="tab" data-toggle="tab" class="text-danger">错误</a></li>  
130 - <li><a href="#output" role="tab" data-toggle="tab" class="text-success">结果</a></li> 127 + <li class="active"><a href="#stdin" role="tab" data-toggle="tab" class="text">标准</a></li>
  128 + <li><a href="#cmpinfo" role="tab" data-toggle="tab" class="text">编译</a></li>
  129 + <li><a href="#stderr" role="tab" data-toggle="tab" class="text">错误</a></li>
  130 + <li><a href="#output" role="tab" data-toggle="tab" class="text">结果</a></li>
131 </ul> 131 </ul>
132 - <div class="pull-right"> 132 + <div class="pull-right func">
133 <a class="btn btn-success" id="compileBtn">编译运行</a> 133 <a class="btn btn-success" id="compileBtn">编译运行</a>
134 - <a class="btn btn-success"><i class="icon iconfont icon-quanping1"></i></a> 134 + <a id="full-screen" class=""><i class="icon iconfont icon-quanping1"></i></a>
  135 + <!-- <a id="back-screen" class=""><i class="icon iconfont icon-quanping1"></i></a> -->
135 </div> 136 </div>
136 </div> 137 </div>
137 138
@@ -149,7 +150,7 @@ @@ -149,7 +150,7 @@
149 </div> 150 </div>
150 </div> 151 </div>
151 152
152 - <div class="record-contrl"> 153 + <div class="record-ctrl">
153 <button class="btn btn-success getValue"> 154 <button class="btn btn-success getValue">
154 播放代码 155 播放代码
155 </button> 156 </button>
src/gxb-ide/java.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 + <title>IDE</title>
  6 + <link rel="stylesheet" href="../css/responsive/css/bootstrap.min.css">
  7 + <link href="../css/codemirror.css" rel="stylesheet">
  8 + <link href="../css/reset.css" rel="stylesheet">
  9 + <link rel="stylesheet" href="../js/zTree_v3-3.5.27/css/zTreeStyle/zTreeStyle.css">
  10 +
  11 + <link href="../common/fonts/iconfont.css" rel="stylesheet">
  12 +
  13 + <link href="../css/cm-theme/gbtags.css" rel="stylesheet">
  14 + <link href="../css/cm-theme/eclipse.css" rel="stylesheet">
  15 + <link href="../css/cm-theme/gbtags-dark.css" rel="stylesheet">
  16 +
  17 + <!-- <link href="../css/layout.css" rel="stylesheet"> -->
  18 + <!-- <link href="../css/main.css" rel="stylesheet"> -->
  19 +
  20 + <!-- <link href="../css/recording.css" rel="stylesheet"> -->
  21 + <!-- <link rel="stylesheet" href="../css/demo.css"> -->
  22 +
  23 + <link rel="stylesheet" href="../css/ide.css">
  24 +
  25 + <script src="../js/jquery-1.7.1.js"></script>
  26 + <script src="../js/bootstrap.js"></script>
  27 + <script src="../js/codemirror.js"></script>
  28 + <script type="text/javascript" src="../js/zTree_v3-3.5.27/js/jquery.ztree.core.js"></script>
  29 + <script type="text/javascript" src="../js/zTree_v3-3.5.27/js/jquery.ztree.exedit.js"></script>
  30 + <script src="../js/emmet.js"></script>
  31 + <script src="../js/util/util.js"></script>
  32 +
  33 + <script src="Dir.js"></script>
  34 + <script src="CodingEditer.js"></script>
  35 + <script src="ToolBox.js"></script>
  36 + <script src="Ide.js"></script>
  37 +
  38 + <script src="java.js"></script>
  39 +
  40 + <script src="../js/gbdebug/mode/xml/xml.js"></script>
  41 + <script src="../js/gbdebug/mode/javascript/javascript.js"></script>
  42 + <script src="../js/gbdebug/mode/css/css.js"></script>
  43 + <script src="../js/gbdebug/mode/htmlmixed/htmlmixed.js"></script>
  44 + <script src="../js/gbdebug/mode/clike/clike.js"></script>
  45 +
  46 + <script>
  47 + var gxb_api = "https://restful1.gaoxiaobang.com";
  48 + // var gxb_api = "http://192.168.80.223:8080"
  49 +
  50 + </script>
  51 +
  52 +</head>
  53 +<body>
  54 + <div>
  55 +
  56 +
  57 + </div>
  58 + <div class="programing">
  59 +
  60 + <!-- 控制条 -->
  61 + <div class="record-title">
  62 + <ul id="recordertab" class="nav nav-tabs pull-left">
  63 + <li class="active">
  64 + <a href="#recordzone" data-toggle="tab">
  65 + <i class="icon iconfont icon-suspend"></i>课程录制区
  66 + </a>
  67 + </li>
  68 + <li>
  69 + <a href="#replayzone" data-toggle="tab">
  70 + <i class="icon iconfont icon-yulan"></i>课程预览区
  71 + </a>
  72 + </li>
  73 + </ul>
  74 + </div>
  75 +
  76 + <!-- 录制区 -->
  77 + <div class="record-wrap">
  78 + <!-- 录制区 -->
  79 + <div class="gxb-record">
  80 + <div id="ideDir">
  81 + <div class="tree-header">目录</div>
  82 + <ul id="folder" class="ztree"></ul>
  83 + <div id="handleLM"></div>
  84 + </div>
  85 +
  86 + <div id="ideEditer" class="tab-content">
  87 + <div id="recordzone" class="tab-pane active"></div>
  88 + <div id="replayzone" class="tab-pane"></div>
  89 + </div>
  90 + </div>
  91 + </div>
  92 +
  93 +
  94 +
  95 + <!-- 控录制录制 -->
  96 + <div class="record-toolbox">
  97 + <!-- 运行结果区 -->
  98 + <div class="console-wrap">
  99 + <div id="toolbar">
  100 + <!-- Nav tabs -->
  101 + <ul class="nav nav-tabs result-tabs need-compile" role="tablist" id="cmprun-tabs">
  102 + <li class="active"><a href="#stdin" role="tab" data-toggle="tab" class="text-warning">标准</a></li>
  103 + <li><a href="#cmpinfo" role="tab" data-toggle="tab" class="text-warning">编译</a></li>
  104 + <li><a href="#stderr" role="tab" data-toggle="tab" class="text-danger">错误</a></li>
  105 + <li><a href="#output" role="tab" data-toggle="tab" class="text-success">结果</a></li>
  106 + </ul>
  107 + <div class="pull-right">
  108 + <a class="btn btn-success" id="compileBtn">编译运行</a>
  109 + <a class="btn btn-success"><i class="icon iconfont icon-quanping1"></i></a>
  110 + </div>
  111 + </div>
  112 +
  113 + <!-- Tab panes -->
  114 + <div id="resultoutput" class="tab-content need-compile">
  115 + <div class="tab-pane active padall15" id="stdin">
  116 + <input type="text" class="form-control" id="runtimeArgus" placeholder="标准输入">
  117 + </div>
  118 + <div class="tab-pane padall15" id="cmpinfo"></div>
  119 + <div class="tab-pane padall15" id="stderr"></div>
  120 + <div class="tab-pane padall15" id="output"></div>
  121 + </div>
  122 + <div class="panel-body no-compile" id="ifrcontainer">
  123 + <iframe id="resultiframe" frameBorder="0" width="100%"></iframe>
  124 + </div>
  125 + </div>
  126 +
  127 + <div class="record-contrl">
  128 + <button class="btn btn-success getValue">
  129 + 播放代码
  130 + </button>
  131 + </div>
  132 +
  133 + </div>
  134 +
  135 + </div>
  136 +
  137 +</body>
  138 +</html>
0 \ No newline at end of file 139 \ No newline at end of file
src/gxb-ide/java.js 0 → 100644
  1 +$(function(){
  2 + var languageid = 10;
  3 + var userId = 826920;
  4 + var ide = new GxbIde({
  5 + el: '#folder',
  6 + languageid: languageid
  7 + });
  8 +
  9 + $('.getValue').click(function(){
  10 + // var treeLinkEditor = Dir.treeLinkEditor;
  11 + console.log(CodingEditer.records);
  12 + CodingEditer.getCodeMirrorValue();
  13 + CodingEditer.playCoding();
  14 + })
  15 +
  16 + $('#compileBtn').click(function(){
  17 + ToolBox.compileMode(userId, languageid);
  18 + })
  19 +
  20 +
  21 +
  22 +
  23 +})
0 \ No newline at end of file 24 \ No newline at end of file
src/gxb-ide/web.html 0 → 100644
src/gxb-ide/web.js 0 → 100644
src/js/29.json
1 { 1 {
2 "php": [ 2 "php": [
3 { "id": 1, "pId": 0, "name": "package1", "open": true, "isParent": true, "collapse": false }, 3 { "id": 1, "pId": 0, "name": "package1", "open": true, "isParent": true, "collapse": false },
4 - { "id": 11, "pId": 1, "name": "default1.java", "type": "java" },  
5 - { "id": 12, "pId": 1, "name": "default2.java", "type": "java" },  
6 - { "id": 13, "pId": 1, "name": "default3.java", "type": "java" },  
7 - { "id": 14, "pId": 1, "name": "default4.java", "type": "java" },  
8 - { "id": 15, "pId": 1, "name": "default5.java", "type": "java" }, 4 + { "id": 11, "pId": 1, "name": "default1.php", "type": "php" },
  5 + { "id": 12, "pId": 1, "name": "default2.php", "type": "php" },
  6 + { "id": 13, "pId": 1, "name": "default3.php", "type": "php" },
  7 + { "id": 14, "pId": 1, "name": "default4.php", "type": "php" },
  8 + { "id": 15, "pId": 1, "name": "default5.php", "type": "php" },
9 { "id": 2, "pId": 0, "name": "package2", "open": true, "isParent": true, "expand": true }, 9 { "id": 2, "pId": 0, "name": "package2", "open": true, "isParent": true, "expand": true },
10 - { "id": 21, "pId": 2, "name": "defaultA.java", "type": "java" },  
11 - { "id": 22, "pId": 2, "name": "defaultB.java", "type": "java" },  
12 - { "id": 23, "pId": 2, "name": "defaultC.java", "type": "java" },  
13 - { "id": 24, "pId": 2, "name": "defaultD.java", "type": "java" },  
14 - { "id": 25, "pId": 2, "name": "defaultE.java", "type": "java" } 10 + { "id": 21, "pId": 2, "name": "defaultA.php", "type": "php" },
  11 + { "id": 22, "pId": 2, "name": "defaultB.php", "type": "php" },
  12 + { "id": 23, "pId": 2, "name": "defaultC.php", "type": "php" },
  13 + { "id": 24, "pId": 2, "name": "defaultD.php", "type": "php" },
  14 + { "id": 25, "pId": 2, "name": "defaultE.php", "type": "php" }
15 ] 15 ]
16 } 16 }
17 \ No newline at end of file 17 \ No newline at end of file
src/scss/_bootstrapReset.scss
@@ -2,7 +2,29 @@ @@ -2,7 +2,29 @@
2 .nav-tabs{ 2 .nav-tabs{
3 float: left; 3 float: left;
4 border-bottom: 0; 4 border-bottom: 0;
5 - } 5 + }
  6 + #resultoutput{
  7 + .tab-pane{
  8 + padding: 14px;
  9 + }
  10 + }
  11 +
  12 + .record-title{
  13 + .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus{
  14 + color: #fff;
  15 + }
  16 +
  17 + .nav-tabs > li > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus{
  18 + margin-right: 0;
  19 + line-height: 1.428571429;
  20 + border: none !important;
  21 + background: transparent !important;
  22 + height: 36px;
  23 + line-height: 36px;
  24 + padding: 0 12px;
  25 + }
  26 + }
  27 +
6 } 28 }
7 29
8 30
9 \ No newline at end of file 31 \ No newline at end of file
src/scss/main.scss
@@ -13,12 +13,14 @@ html, body{ @@ -13,12 +13,14 @@ html, body{
13 // 头部菜单 13 // 头部菜单
14 .record-title{ 14 .record-title{
15 width: 100%; 15 width: 100%;
16 - height: 60px; 16 + height: 36px;
17 background-image: -webkit-linear-gradient(left, #1FB6FF 0%, #62DCF5 100%); 17 background-image: -webkit-linear-gradient(left, #1FB6FF 0%, #62DCF5 100%);
18 background-image: linear-gradient(to right, #1FB6FF 0%, #62DCF5 100%); 18 background-image: linear-gradient(to right, #1FB6FF 0%, #62DCF5 100%);
19 position: absolute; 19 position: absolute;
20 top: 0; 20 top: 0;
21 z-index: 9999; 21 z-index: 9999;
  22 + padding-left: 28px;
  23 +
22 } 24 }
23 25
24 // 录制区 26 // 录制区
@@ -27,8 +29,8 @@ html, body{ @@ -27,8 +29,8 @@ html, body{
27 height: 100%; 29 height: 100%;
28 position: absolute; 30 position: absolute;
29 box-sizing: border-box; 31 box-sizing: border-box;
30 - padding-top: 60px;  
31 - padding-bottom: 280px; 32 + padding-top: 36px;
  33 + padding-bottom: 300px;
32 34
33 #ideDir{ 35 #ideDir{
34 width: 170px; 36 width: 170px;
@@ -57,6 +59,7 @@ html, body{ @@ -57,6 +59,7 @@ html, body{
57 59
58 #folder{ 60 #folder{
59 height: 100%; 61 height: 100%;
  62 + min-height: 300px;
60 } 63 }
61 64
62 .gxb-record{ 65 .gxb-record{
@@ -70,7 +73,6 @@ html, body{ @@ -70,7 +73,6 @@ html, body{
70 width: 100%; 73 width: 100%;
71 position: absolute; 74 position: absolute;
72 bottom: 0; 75 bottom: 0;
73 - background-color: #23383f;  
74 z-index: 999; 76 z-index: 999;
75 77
76 .console-wrap{ 78 .console-wrap{
@@ -82,12 +84,73 @@ html, body{ @@ -82,12 +84,73 @@ html, body{
82 #toolbar{ 84 #toolbar{
83 width: 100%; 85 width: 100%;
84 height: 36px; 86 height: 36px;
85 - background-color: #F0F3F5; 87 + overflow: hidden;
  88 + background-color: #e3e3e3;
  89 + .result-tabs{
  90 + height: 30px;
  91 + border-radius: 30px;
  92 + background-color: #62DCF5;
  93 + overflow: hidden;
  94 + margin: 3px 16px;
  95 + color: #fff;
  96 + }
  97 + .text{
  98 + color: #fff;
  99 + }
  100 + .result-tabs>li.active>a, .result-tabs>li.active>a:hover, .result-tabs>li>a:hover, .result-tabs>li.active>a:focus{
  101 + color: #1FB6FF;
  102 + background-color: #fff;
  103 + box-shadow: 0px 0px 2px 0px #B3E5FF;
  104 + border: none;
  105 + }
  106 + .result-tabs>li>a, .result-tabs>li.active>a:hover{
  107 + padding: 4px 36px;
  108 + border: none;
  109 + margin: 1px;
  110 + border-radius: 15px;
  111 + font-size: 14px;
  112 + // color: #fff;
  113 + transition: all 0.1s ease;
  114 + }
  115 +
  116 + .func{
  117 + height: 36px;
  118 + padding-top: 3px;
  119 + }
86 } 120 }
87 } 121 }
  122 +
  123 + #full-screen, #back-screen{
  124 + margin: 0;
  125 + background-image: linear-gradient(90deg, #1FB6FF 0%, #62DCF5 100%);
  126 + border-radius: 100px;
  127 + padding: 6px 7px;
  128 + margin: 0 16px;
  129 + color: #fff;
  130 + }
  131 +
  132 + #resultoutput{
  133 + height: 204px;
  134 + overflow: auto;
  135 + }
  136 +
  137 + #compileBtn{
  138 + background-image: -webkit-linear-gradient(left, #1FB6FF 0%, #62DCF5 100%);
  139 + background-image: linear-gradient(to right, #1FB6FF 0%, #62DCF5 100%);
  140 + -webkit-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
  141 + transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
  142 + border: none;
  143 + color: #fff;
  144 + padding-top: 5px;
  145 + padding-bottom: 5px;
  146 + }
88 147
89 .record-ctrl{ 148 .record-ctrl{
90 height: 60px; 149 height: 60px;
  150 + width: 100%;
  151 + z-index: 999;
  152 + padding: 0 136px;
  153 + background-color: #23383f;
91 } 154 }
92 } 155 }
93 156