Commit e81a6b61d715b91a49bee1212fb4fe64d346f7d6

Authored by ykxie
1 parent f853514a

add compile run and save

src/css/ide.css
... ... @@ -176,7 +176,7 @@ html, body {
176 176 .record-toolbox #resultoutput {
177 177 height: 204px;
178 178 overflow: auto; }
179   - .record-toolbox #compileBtn {
  179 + .record-toolbox #teacherCompileBtn, .record-toolbox #studentCompileBtn {
180 180 background-image: -webkit-linear-gradient(left, #1FB6FF 0%, #62DCF5 100%);
181 181 background-image: linear-gradient(to right, #1FB6FF 0%, #62DCF5 100%);
182 182 -webkit-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
... ... @@ -215,3 +215,38 @@ html, body {
215 215 z-index: 99;
216 216 margin: 2px 8px;
217 217 border-radius: 50%; }
  218 +
  219 +.pause-shodow {
  220 + position: absolute;
  221 + top: 0;
  222 + z-index: 999;
  223 + width: 100%;
  224 + height: 100%;
  225 + background-color: rgba(0, 0, 0, 0.4); }
  226 + .pause-shodow img {
  227 + position: absolute;
  228 + top: 15%;
  229 + left: 50%;
  230 + transform: translate(-50%); }
  231 + .pause-shodow .compile-reslut .btn {
  232 + margin-right: 8px; }
  233 +
  234 +.compile-reslut, .re-reslut {
  235 + position: absolute;
  236 + height: 200px;
  237 + width: 400px;
  238 + background-color: #FFF;
  239 + top: 15%;
  240 + left: 50%;
  241 + transform: translate(-50%); }
  242 + .compile-reslut .tip-header, .compile-reslut .tip-footer, .re-reslut .tip-header, .re-reslut .tip-footer {
  243 + width: 100%;
  244 + padding: 8px 8px;
  245 + background-color: #F5F6FA; }
  246 + .compile-reslut .tip-content, .re-reslut .tip-content {
  247 + padding: 40px;
  248 + line-height: 1.7; }
  249 + .compile-reslut .tip-footer, .re-reslut .tip-footer {
  250 + position: absolute;
  251 + bottom: 0;
  252 + text-align: right; }
... ...
src/css/main.css
... ... @@ -98,7 +98,7 @@ html, body {
98 98 .record-toolbox #resultoutput {
99 99 height: 204px;
100 100 overflow: auto; }
101   - .record-toolbox #compileBtn {
  101 + .record-toolbox #teacherCompileBtn, .record-toolbox #studentCompileBtn {
102 102 background-image: -webkit-linear-gradient(left, #1FB6FF 0%, #62DCF5 100%);
103 103 background-image: linear-gradient(to right, #1FB6FF 0%, #62DCF5 100%);
104 104 -webkit-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
... ... @@ -137,3 +137,38 @@ html, body {
137 137 z-index: 99;
138 138 margin: 2px 8px;
139 139 border-radius: 50%; }
  140 +
  141 +.pause-shodow {
  142 + position: absolute;
  143 + top: 0;
  144 + z-index: 999;
  145 + width: 100%;
  146 + height: 100%;
  147 + background-color: rgba(0, 0, 0, 0.4); }
  148 + .pause-shodow img {
  149 + position: absolute;
  150 + top: 15%;
  151 + left: 50%;
  152 + transform: translate(-50%); }
  153 + .pause-shodow .compile-reslut .btn {
  154 + margin-right: 8px; }
  155 +
  156 +.compile-reslut, .re-reslut {
  157 + position: absolute;
  158 + height: 200px;
  159 + width: 400px;
  160 + background-color: #FFF;
  161 + top: 15%;
  162 + left: 50%;
  163 + transform: translate(-50%); }
  164 + .compile-reslut .tip-header, .compile-reslut .tip-footer, .re-reslut .tip-header, .re-reslut .tip-footer {
  165 + width: 100%;
  166 + padding: 8px 8px;
  167 + background-color: #F5F6FA; }
  168 + .compile-reslut .tip-content, .re-reslut .tip-content {
  169 + padding: 40px;
  170 + line-height: 1.7; }
  171 + .compile-reslut .tip-footer, .re-reslut .tip-footer {
  172 + position: absolute;
  173 + bottom: 0;
  174 + text-align: right; }
... ...
src/gxb-ide/Iterm.js
1 1 ;(function(window){
2   - var template = '<div class="upload-tip" style="display: none;"><img src="../img/upload_tip.png" alt=""></div>'
3 2  
4 3 function Iterm(){
5 4 this.initIterm.apply(this, arguments);
6   - }
  5 + }
7 6  
8 7 Iterm.prototype = {
9 8 constructor: Iterm,
... ... @@ -20,51 +19,106 @@
20 19 },
21 20 events: function(){
22 21 var _this = this;
23   - $('#compileBtn').on('click', function(){ _this.compileMode(); })
  22 + $('#teacherCompileBtn').on('click', function(){ _this.teacherCompile(); })
  23 + $('#studentCompileBtn').on('click', function(){ _this.studentCompile(); })
  24 + $('#save_compile').on('click', function(){ _this.saveCompile(); })
  25 + $('#cancel_compile').on('click', function(){ _this.cancelCompile(); })
24 26 },
25   - compileMode: function(){
  27 + teacherCompile: function(){
26 28 console.log('========================');
27   - var l = Ladda.create(document.querySelector( '#compileBtn' ));
28   - l.start();
  29 + console.log(Iterm.prototype.options);
  30 +
  31 + Hourglass.pauseTimer(); // 暂停计时器
  32 + recorder.pause(); // 音频暂停
  33 + $('.pause-shodow').show()
  34 +
  35 + // 编译时插入操作
  36 + var treeNode = null;
  37 + var check_tree_time = new Date().getTime();
  38 + CodingEditer.addRecord(treeNode, check_tree_time);
  39 +
  40 + var _this = this;
  41 + var el = document.querySelector('#teacherCompileBtn');
  42 + var userId = _this.options.userId;
  43 + var languageId = _this.options.languageId;
29 44  
  45 + compileMode(el, userId, languageId)
  46 + },
  47 + studentCompile: function(){
30 48 var _this = this;
31   - console.log(_this.options)
32   - // 获取标准输入值
33   - var runtimeArgus = $('#runtimeArgus').val() || '';
34   - var mainPath = Dir.mainPath;
35   - var _fileList = Dir.getTreeData();
  49 + var el = document.querySelector('#studentCompileBtn');
36 50 var userId = _this.options.userId;
37 51 var languageId = _this.options.languageId;
  52 + compileMode(el, userId, languageId)
  53 + },
  54 + saveCompile: function(){
  55 + recodingConf()
38 56  
39   - var compileData = {
40   - "userId": userId,
41   - "langId": languageId,
42   - "mainPath": mainPath,
43   - "mainArgus": "",
44   - "runtimeArgus": runtimeArgus,
45   - "rand": "123456",
46   - "fileList": _fileList || []
47   - }
48   - console.log(compileData);
49   - $.ajax({
50   - type: "POST",
51   - url: gxb_api + "/gxb-web/programmingMulti/codeRun/api",
52   - data: JSON.stringify(compileData),
53   - dataType: "json",
54   - contentType: "application/json",
55   - success: function(data) {
56   - console.log(data);
57   - compileResult(data)
58   - l.remove();
59   - CodingEditer.compileResultData = data;
60   - },
61   - error: function(XMLHttpRequest, textStatus, errorThrown) {
62   - l.remove();
63   - alert('错误');
64   - console.log(XMLHttpRequest);
65   - },
66   - });
  57 + var length = CodingEditer.records.length - 1;
  58 +
  59 + CodingEditer.records[length].compile = CodingEditer.compileResultData;
  60 +
  61 + CodingEditer.records[length].content = CodingEditer.compileResultData.content;
  62 + CodingEditer.records[length].error = CodingEditer.compileResultData.error;
  63 + CodingEditer.records[length].compilerInfo = CodingEditer.compileResultData.compilerInfo;
  64 + CodingEditer.records[length].code = CodingEditer.compileResultData.code;
  65 +
  66 + },
  67 + cancelCompile: function(){
  68 + recodingConf()
  69 + }
  70 + }
  71 +
  72 + // 继续录制配置
  73 + function recodingConf(){
  74 + $('.pause-shodow').hide()
  75 +
  76 + Hourglass.pauseTimer();
  77 + recorder.pause();
  78 +
  79 + CodingEditer.record_startime = new Date().getTime();
  80 + }
  81 +
  82 + // 编译
  83 + function compileMode(el, userId, languageId){
  84 + var l = Ladda.create(el);
  85 + l.start();
  86 + // 获取标准输入值
  87 + var runtimeArgus = $('#runtimeArgus').val() || '';
  88 + var mainPath = Dir.mainPath;
  89 + var _fileList = Dir.getTreeData();
  90 +
  91 + var compileData = {
  92 + "userId": userId,
  93 + "langId": languageId,
  94 + "mainPath": mainPath,
  95 + "mainArgus": "",
  96 + "runtimeArgus": runtimeArgus,
  97 + "rand": "123456",
  98 + "fileList": _fileList || []
67 99 }
  100 + console.log(compileData);
  101 + $.ajax({
  102 + type: "POST",
  103 + url: gxb_api + "/gxb-web/programmingMulti/codeRun/api",
  104 + data: JSON.stringify(compileData),
  105 + dataType: "json",
  106 + contentType: "application/json",
  107 + success: function(data) {
  108 + console.log(data);
  109 + $('.pause-shodow img').hide()
  110 + $('.pause-shodow .compile-reslut').show()
  111 + compileResult(data)
  112 + l.remove();
  113 + CodingEditer.compileResultData = data;
  114 + },
  115 + error: function(XMLHttpRequest, textStatus, errorThrown) {
  116 + $('.pause-shodow img').remove()
  117 + l.remove();
  118 + alert('错误');
  119 + console.log(XMLHttpRequest);
  120 + },
  121 + });
68 122 }
69 123  
70 124 // 编译结果
... ...
src/scss/main.scss
... ... @@ -134,7 +134,7 @@ html, body{
134 134 overflow: auto;
135 135 }
136 136  
137   - #compileBtn{
  137 + #teacherCompileBtn, #studentCompileBtn{
138 138 background-image: -webkit-linear-gradient(left, #1FB6FF 0%, #62DCF5 100%);
139 139 background-image: linear-gradient(to right, #1FB6FF 0%, #62DCF5 100%);
140 140 -webkit-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
... ... @@ -184,6 +184,51 @@ html, body{
184 184 }
185 185 }
186 186 }
  187 +.pause-shodow{
  188 + position: absolute;
  189 + top: 0;
  190 + z-index: 999;
  191 + width: 100%;
  192 + height: 100%;
  193 + background-color: rgba(0,0,0,0.4);
  194 +
  195 + img{
  196 + position: absolute;
  197 + top: 15%;
  198 + left: 50%;
  199 + transform: translate(-50%);
  200 + }
  201 + .compile-reslut{
  202 + .btn{
  203 + margin-right: 8px;
  204 + }
  205 + }
  206 +}
  207 +
  208 +.compile-reslut, .re-reslut{
  209 + position: absolute;
  210 + height: 200px;
  211 + width: 400px;
  212 + background-color: #FFF;
  213 + top: 15%;
  214 + left: 50%;
  215 + transform: translate(-50%);
  216 +
  217 + .tip-header, .tip-footer{
  218 + width: 100%;
  219 + padding: 8px 8px;
  220 + background-color: #F5F6FA;
  221 + }
  222 + .tip-content{
  223 + padding: 40px;
  224 + line-height: 1.7;
  225 + }
  226 + .tip-footer{
  227 + position: absolute;
  228 + bottom: 0;
  229 + text-align: right;
  230 + }
  231 +}
187 232  
188 233  
189 234  
... ...
src/v1.1/c.html
... ... @@ -111,6 +111,23 @@
111 111 <div id="replayzone" class="tab-pane"></div>
112 112 </div>
113 113 </div>
  114 + <div class="pause-shodow" style="display: none;">
  115 + <div class="compile-loading">
  116 + <img src="../img/loading.png" alt="">
  117 + </div>
  118 + <div class="compile-reslut" style="display: none;">
  119 + <div class="tip-header">
  120 + <span>成功获取编译运行结果</span>
  121 + </div>
  122 + <div class="tip-content">
  123 + <p>保存编译结果后,播放到此处会在运行区域直接显示结果。需要保存结果后继续录制吗?</p>
  124 + </div>
  125 + <div class="tip-footer">
  126 + <button class="btn btn-success btn-sm" id="save_compile">保存并继续录制</button>
  127 + <button class="btn btn-danger btn-sm" id="cancel_compile">不保存继续录制</button>
  128 + </div>
  129 + </div>
  130 + </div>
114 131 </div>
115 132  
116 133  
... ... @@ -128,7 +145,10 @@
128 145 <li><a href="#output" role="tab" data-toggle="tab" class="text">结果</a></li>
129 146 </ul>
130 147 <div class="pull-right func">
131   - <a class="btn btn-success" id="compileBtn">
  148 + <a class="btn btn-success" id="teacherCompileBtn">
  149 + <span class="ladda-label">编译运行</span>
  150 + </a>
  151 + <a class="btn btn-success" id="studentCompileBtn">
132 152 <span class="ladda-label">编译运行</span>
133 153 </a>
134 154 <a id="full-screen" class=""><i class="icon iconfont icon-quanping1"></i></a>
... ...