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.
		
		
		
		
		
			
		
			
				
					
					
						
							255 lines
						
					
					
						
							12 KiB
						
					
					
				
			
		
		
	
	
							255 lines
						
					
					
						
							12 KiB
						
					
					
				@@master_page.html | 
						|
<link href="css/page_table_list.css" rel="stylesheet" /> | 
						|
<div id="apibox" class="card"> | 
						|
    <div class="search-bar"> | 
						|
 | 
						|
        <form id="frmSearach" action="lyear_forms_elements.html" method="post" onsubmit="return false;"> | 
						|
            <div class="form-group"> | 
						|
                <div class="row"> | 
						|
                    <div class="col-md-1"><label class="form-control" t>名称:</label></div> | 
						|
                    <div class="col-md-3"><input class="form-control" type="text" id="txtSearch" name="example-text-input" placeholder="分类名称"></div> | 
						|
                    <div class="col-md-3"> | 
						|
                        <button @click="onSearch()" id="btnSearch" class="btn btn-secondary"><i class="mdi mdi-magnify"></i>搜索</button> | 
						|
                        <button onclick="frmSearach.reset()" class="btn btn-close m-l-15" type="submit">清空</button> | 
						|
 | 
						|
                    </div> | 
						|
                    <div class="col-md-4"></div> | 
						|
                </div> | 
						|
            </div> | 
						|
        </form> | 
						|
        <div class="toolbar-btn-action"> | 
						|
            <button @click="openAddDiv()" class="btn btn-primary m-l-15 " data-toggle="modal" data-target="#gridSystemModal"><i class="mdi mdi-plus"></i> 新增</button> | 
						|
            <button @click="openTutorials(1)" class="btn btn-success m-l-15 " data-toggle="modal" data-target="#"><i class="mdi mdi-book-open-variant"></i> 复制实体模版</button> | 
						|
            <button @click="openTutorials(2)" class="btn btn-cyan m-l-15 " data-toggle="modal" data-target="#"><i class="mdi mdi-book-open-variant"></i>  复制接口模版</button> | 
						|
        </div> | 
						|
    </div> | 
						|
    <div class="card-body"> | 
						|
 | 
						|
        <h5> </h5> | 
						|
        <div class="table-responsive"> | 
						|
            <table class="table table-bordered"> | 
						|
                <thead> | 
						|
                    <tr v-if="data && data.Columns && data.Columns.length > 0"> | 
						|
                        <th class="mi-w-100" v-for="column in data.Columns">{{column.ColumnDescription}}</th> | 
						|
                        <th>操作</th> | 
						|
                    </tr> | 
						|
                </thead> | 
						|
                <tbody v-if="data &&data.Data"> | 
						|
                    <tr v-if="data.Columns && data.Columns.length > 0" v-for="item in data.Data"> | 
						|
 | 
						|
                        <td v-for="column in data.Columns"> | 
						|
                            {{ item[column.PropertyName] }} | 
						|
                        </td> | 
						|
 | 
						|
                        <td class="table_opt"> | 
						|
                            <button data-toggle="modal" @click="openEditDiv(item)" data-target="#gridSystemModal" class="btn btn-link" type="button"> | 
						|
                                <i class="mdi mdi-lead-pencil"></i> 修改 | 
						|
                            </button> | 
						|
                            <button data-toggle="modal" @click="deleteAndConfirm(item)" data-target="#divDelBox" class="btn btn-link" type="button"> | 
						|
                                <i class="mdi mdi-do-not-disturb"></i> 删除 | 
						|
                            </button> | 
						|
                        </td> | 
						|
                    </tr> | 
						|
 | 
						|
                </tbody> | 
						|
            </table> | 
						|
        </div> | 
						|
 | 
						|
    </div> | 
						|
    @@page_control.html | 
						|
    <div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="gridSystemModalLabel" id="gridSystemModal" style="display: none;"> | 
						|
        <div class="modal-dialog width1000" role="document"> | 
						|
            <div class="modal-content"> | 
						|
                <div class="modal-header"> | 
						|
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | 
						|
                    <h4 class="modal-title" id="exampleModalLabel">{{title}}</h4> | 
						|
                </div> | 
						|
                <div class="modal-body"> | 
						|
                    <form id="frmEdit"> | 
						|
                        <input type="hidden" v-model="formData.Id" name="Id" /> | 
						|
                        <div class="form-group"> | 
						|
                            <label for="recipient-name" class="control-label">名称:</label> | 
						|
                            <input type="text" v-model="formData.Title" name="Title" class="form-control" id="recipient-name"> | 
						|
                        </div> | 
						|
                        <div class="form-group"> | 
						|
                            <label for="message-text" class="control-label">模版分类:</label> | 
						|
                            <select v-model="formData.TypeId" name="TypeId" class="form-control"> | 
						|
                                <option></option> | 
						|
                                <option value="1">实体</option> | 
						|
                                <option value="2">接口</option> | 
						|
                            </select> | 
						|
                        </div> | 
						|
                        <div class="form-group"> | 
						|
                            <label for="message-text" class="control-label">编辑框样式:</label> | 
						|
                            <select @change="setEditorValue" class="form-control" v-model="formData.TemplateContentStyle"> | 
						|
                                <option>csharp</option> | 
						|
                                <option>javascript</option> | 
						|
                                <option>typescript</option> | 
						|
                            </select> | 
						|
                        </div> | 
						|
                        <div class="form-group"> | 
						|
                            <label for="recipient-name" class="control-label">生成地址:</label> | 
						|
                            <input type="text" v-model="formData.Url" name="Url"   class="form-control" id="recipient-name"> | 
						|
                        </div> | 
						|
                        <div class="form-group"> | 
						|
                            <label for="message-text" class="control-label">内容(复制进来):</label> | 
						|
                            <div id="editor" style="width: 100%; height: calc(100vh - 580px);"></div> | 
						|
                            <textarea class="form-control hidden" v-model="formData.TemplateContent" name="TemplateContent" id="message-text"></textarea> | 
						|
                        </div> | 
						|
                    </form> | 
						|
                </div> | 
						|
                <div class="modal-footer"> | 
						|
                    <button type="button" id="btnCloseEdit" class="btn btn-default" data-dismiss="modal">关闭</button> | 
						|
                    <button type="button" @click="addOrUpdate()" class="btn btn-primary">保存</button> | 
						|
                </div> | 
						|
            </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: { | 
						|
            data: null, | 
						|
            error: null, | 
						|
            addTitle: "添加模版", | 
						|
            editTitle: "修改模版", | 
						|
            title: "", | 
						|
            formData: { | 
						|
             | 
						|
            } | 
						|
        }, | 
						|
        mounted() { | 
						|
            this.fetchData(""); | 
						|
        }, | 
						|
        methods: { | 
						|
            fetchData(append) { | 
						|
                var url = "/PrivateReZeroRoute/100003/GetTemplatePageList?v=1" + append; | 
						|
                axios.get(url, jwHeader) | 
						|
                    .then(response => { | 
						|
                        this.data = response.data; | 
						|
                        this.error = null; | 
						|
                    }) | 
						|
                    .catch(error => { | 
						|
                        this.error = error.message; | 
						|
                        this.data = null; | 
						|
                    }); | 
						|
            }, | 
						|
            onSearch: function (page) { | 
						|
 | 
						|
                var urlParameters = "&" + tools.objectToQueryString({ | 
						|
                    Name: txtSearch.value, | 
						|
                    __pageNumber: page, | 
						|
                   __pageSize: tools.getValue("selPageSize"), | 
						|
                }); | 
						|
                this.fetchData(urlParameters); | 
						|
            }, | 
						|
            deleteAndConfirm: function (item) { | 
						|
                if (item == null) { | 
						|
                    if (localStorage.delId == 200100) { | 
						|
                        tools.alert("初始化分类不能删除"); | 
						|
                        btnDelClose.click(); | 
						|
                        return; | 
						|
                    } | 
						|
                    var url = "/PrivateReZeroRoute/100003/DeleteTemplate?IsDeleted=true&Id=" + localStorage.delId; | 
						|
                    axios.get(url, jwHeader) | 
						|
                        .then(response => { | 
						|
                            this.data = response.data; | 
						|
                            this.error = null; | 
						|
                            this.onSearch(); | 
						|
                            btnDelClose.click(); | 
						|
                        }) | 
						|
                        .catch(error => { | 
						|
                            this.error = error.message; | 
						|
                            this.data = null; | 
						|
                        }); | 
						|
                } else { | 
						|
                    localStorage.delId = item.Id; | 
						|
                } | 
						|
            }, | 
						|
            openEditDiv: function (item) { | 
						|
                var urlById = "/PrivateReZeroRoute/100003/GetTemplateById?id=" + item.Id; | 
						|
                if (item.Id) { | 
						|
                    this.title = this.editTitle; | 
						|
                    axios.get(urlById, jwHeader) | 
						|
                        .then(response => { | 
						|
                            this.formData = response.data; | 
						|
                            this.setEditorValue(); | 
						|
                        }) | 
						|
                        .catch(error => { | 
						|
                            this.error = error.message; | 
						|
                            this.data = null; | 
						|
                        }); | 
						|
                } | 
						|
            }, | 
						|
            openAddDiv: function (item) { | 
						|
                this.title = this.addTitle; | 
						|
                this.formData = { Url: "{project}\\Models\\{0}.cs" }; | 
						|
                this.setEditorValue(); | 
						|
            }, | 
						|
            addOrUpdate: function () { | 
						|
                var th = this; | 
						|
                var frmId = "frmEdit"; | 
						|
                var json = this.formData; | 
						|
                var url = json.Id ? | 
						|
                    "/PrivateReZeroRoute/100003/UpdateTemplate" : | 
						|
                    "/PrivateReZeroRoute/100003/AddTemplate"; | 
						|
                this.addOrUpdateSubmit(url, json); | 
						|
            }, | 
						|
            addOrUpdateSubmit: function (url, json) { | 
						|
                if (this.formData.TypeId == 2) | 
						|
                { | 
						|
                    return tools.alert("接口模版还在开发中,现在只支持实体"); | 
						|
                } | 
						|
                var th = this; | 
						|
                var editor = ace.edit("editor"); | 
						|
                this.formData.TemplateContent = editor.getValue(); | 
						|
                axios.post(url, json, jwHeader) | 
						|
                    .then(response => { | 
						|
                        this.error = null; | 
						|
                        this.onSearch(); | 
						|
                        if (response.data == true) { | 
						|
                            frmEdit.reset(); | 
						|
                            btnCloseEdit.click(); | 
						|
                        } | 
						|
                        else { | 
						|
                            tools.highlightErrorFields(response.data) | 
						|
                        } | 
						|
                    }) | 
						|
                    .catch(error => { | 
						|
                        this.error = error.message; | 
						|
                        this.data = null; | 
						|
                    }); | 
						|
            }, | 
						|
            setEditorValue: function () { | 
						|
                if (this.formData.TemplateContentStyle == null) { | 
						|
                    this.formData.TemplateContentStyle = "csharp"; | 
						|
                } | 
						|
                var editor = ace.edit("editor");   | 
						|
                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/" + this.formData.TemplateContentStyle); | 
						|
                editor.setValue(this.formData.TemplateContent); | 
						|
                editor.selection.clearSelection(); | 
						|
                editor.resize(); | 
						|
 | 
						|
            }, | 
						|
            openTutorials: function (item) | 
						|
            { | 
						|
                if (item == 1) { | 
						|
                    var url = "/rezero/tutorials.html?type=" + item + "&style=csharp"; | 
						|
                    url = tools.appendQueryParams(url); | 
						|
                    window.open(url); | 
						|
                } else | 
						|
                { | 
						|
                    tools.alert("根据接口生成还在开发中"); | 
						|
                } | 
						|
            } | 
						|
        } | 
						|
    });</script> |