You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							160 lines
						
					
					
						
							6.5 KiB
						
					
					
				
			
		
		
	
	
							160 lines
						
					
					
						
							6.5 KiB
						
					
					
				| @@master_page.html | |
| <link href="css/page_table_list.css" rel="stylesheet" /> | |
| <style> | |
|     #editorResult .ace_cursor { | |
|         display: none !important; /* 或者使用 caret-color: transparent; */ | |
|     } | |
|  | |
|     .ace_editor { | |
|         z-index: 999 | |
|     } | |
| </style> | |
| <div id="apibox" class="card"> | |
|     <div class="card-header"><h4>{{title}}</h4></div> | |
|     <div class="p-l-15"> | |
|         <code>{{message1}}输出块,根目录以Model开头,非根目录以变量开头,支持C#自带函数</code> | |
|     </div> | |
|     <div class="p-l-15"> | |
|         <code>{{message2}} 代码块,可以if foreach 逻辑计算等,支持C#自带语法</code> | |
|     </div> | |
|     <div class="card-body"> | |
|  | |
|         <div class="form-group"> | |
|             <label for="example-text-input">测试数据</label> | |
|             <div id="editorJson" style="height: calc(30vh - 100px); min-height: 300px"></div> | |
|         </div> | |
|         <div class="form-group"> | |
|             <label for="example-text-input">测试模版 <span class="red">(复制这个)</span></label> | |
|             <div id="editorTemplate" style="height: calc(30vh - 100px);min-height:500px"></div> | |
|         </div> | |
|         <div class="form-group"> | |
|             <button type="submit" @click="submitTest" class="btn btn-primary m-r-5">测 试</button> | |
|             <button type="button" class="btn btn-default" onclick="javascript: window.close(); return false;">关 闭</button> | |
|         </div> | |
|         <div class="form-group"> | |
|             <label for="example-text-input">测试结果</label> | |
|             <div id="editorResult" style="height: calc(30vh - 100px); min-height: 500px"></div> | |
|         </div> | |
|     </div> | |
| </div> | |
|  | |
| <script src="js/ace/src-min/ace.js"></script> | |
| <script src="js/ace/src-min/ext-language_tools.js"></script> | |
| <script> | |
|     var vueObj = new Vue({ | |
|         el: '#apibox', | |
|         data: { | |
|             title: null, | |
|             message1: "{{}}", | |
|             message2:"<%%>" | |
|         }, | |
|         mounted() { | |
|             this.fetchData(); | |
|         }, | |
|         methods: { | |
|             fetchData() { | |
|                 var page = this.getPageInfo(); | |
|                 this.initEditor("editorJson", "json5"); | |
|                 this.initEditor("editorTemplate", page.style); | |
|                 this.initEditor("editorResult", page.style, true); | |
|                 this.bindDefalutTemplate(); | |
|                 this.bindTemplateFormatJson(); | |
|                 var urlParams = new URLSearchParams(window.location.search); | |
|                 var type = urlParams.get('type'); | |
|                 if (type == 1) | |
|                 { | |
|                     this.title = "实体模版在线教程"; | |
|                 } | |
|             }, | |
|             onSearch: function (page) { | |
|  | |
|             }, | |
|             initEditor: function (id, style, isReadOnly) { | |
|                 var editor = ace.edit(id); | |
|                 if (isReadOnly) { | |
|                     editor.setTheme("ace/theme/monokai"); | |
|                 } else { | |
|                     editor.setTheme("ace/theme/twilight"); | |
|                 } | |
|                 editor.setOption("showPrintMargin", false); | |
|                 editor.setOption("enableBasicAutocompletion", true); | |
|                 editor.setOption("enableSnippets", true); | |
|                 editor.setOption("useWorker", false); | |
|                 editor.setOption("enableLiveAutocompletion", true) | |
|                 editor.session.setMode("ace/mode/" + style); | |
|                 editor.setReadOnly(isReadOnly); | |
|                 editor.setValue(null); | |
|                 editor.selection.clearSelection(); | |
|                 editor.resize(); | |
|             }, | |
|             getPageInfo: function () { | |
|                 var urlParams = new URLSearchParams(window.location.search); | |
|                 var type = urlParams.get('type'); | |
|                 var style = urlParams.get('style'); | |
|                 var result = { style: style }; | |
|                 if (type == 1) { | |
|  | |
|                     return result; | |
|  | |
|                 } else if (type == 2) { | |
|  | |
|                     return result; | |
|                 } | |
|             }, | |
|             submitTest: function () { | |
|                 var data = ace.edit("editorJson").getValue(); | |
|                 var template = ace.edit("editorTemplate").getValue(); | |
|                 var urlParams = new URLSearchParams(window.location.search); | |
|                 var type = urlParams.get('type'); | |
|                 var url = "/PrivateReZeroRoute/100003/ExecTemplate"; | |
|                 axios.post(url, { type: type, data: data, template: template }, jwHeader) | |
|                     .then(response => { | |
|                         this.error = null; | |
|                         var editor = ace.edit("editorResult"); | |
|                         if (response.data && response.data.message) { | |
|                             editor.setValue(response.data.message); | |
|                         } else {  | |
|                             editor.setValue(response.data); | |
|                         } | |
|                         editor.selection.clearSelection(); | |
|  | |
|                     }) | |
|                     .catch(error => { | |
|                         this.error = error.message; | |
|                         this.data = null; | |
|                     }); | |
|             }, | |
|             bindDefalutTemplate: function () { | |
|                 var urlParams = new URLSearchParams(window.location.search); | |
|                 var type = urlParams.get('type'); | |
|                 var url = "/PrivateReZeroRoute/100003/GetDefalutTemplate"; | |
|                 axios.post(url, { type: type }, jwHeader) | |
|                     .then(response => { | |
|                         this.error = null; | |
|                         var editor = ace.edit("editorTemplate"); | |
|                         editor.setValue(response.data); | |
|                         editor.selection.clearSelection(); | |
|                     }) | |
|                     .catch(error => { | |
|                         this.error = error.message; | |
|                         this.data = null; | |
|                     }); | |
|             }, | |
|             bindTemplateFormatJson: function () { | |
|                 var urlParams = new URLSearchParams(window.location.search); | |
|                 var type = urlParams.get('type'); | |
|                 var url = "/PrivateReZeroRoute/100003/GetTemplateFormatJson"; | |
|                 axios.post(url, { type: type }, jwHeader) | |
|                     .then(response => { | |
|                         this.error = null; | |
|                         var editor = ace.edit("editorJson"); | |
|                         editor.setValue(JSON.stringify(response.data, null, 4)); | |
|                         editor.selection.clearSelection(); | |
|                     }) | |
|                     .catch(error => { | |
|                         this.error = error.message; | |
|                         this.data = null; | |
|                     }); | |
|             } | |
|         } | |
|     });</script> |