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> |