|
|
- var editormd;
- var template_list;
- var json_table_data = '|' + lang["params"] + '|' + lang["type"] + '|' + lang["description"] + '|\n' +
- '|:-------|:-------|:-------|\n';
-
- $(function() {
-
- //给按钮文字加上颜色,点击后则去掉颜色
- if (is_showdoc_online()) {
- set_text_color("runapi", "red");
- };
-
- /*加载目录*/
- secondCatList();
-
- function secondCatList() {
- var default_second_cat_id = $("#default_second_cat_id").val();
- var item_id = $("#item_id").val();
- $.post(
- DocConfig.server+"/api/catalog/secondCatList", {
- "item_id": item_id,
- },
- function(data) {
- $("#cat_id").html('<OPTION value="0">' + lang["none"] + '</OPTION>');
- if (data.error_code == 0) {
- json = data.data;
- console.log(json);
- for (var i = 0; i < json.length; i++) {
- cat_html = '<OPTION value="' + json[i].cat_id + '" ';
- if (default_second_cat_id == json[i].cat_id) {
- cat_html += ' selected ';
- }
-
- cat_html += ' ">' + json[i].cat_name + '</OPTION>';
- $("#cat_id").append(cat_html);
- };
- getChildCatList();
- };
-
- },
- "json"
-
- );
- }
-
- function getChildCatList() {
- var cat_id = $("#cat_id").val();
- var default_child_cat_id = $("#default_child_cat_id").val();
- $.post(
- DocConfig.server+"/api/catalog/childCatList", {
- "cat_id": cat_id
- },
- function(data) {
- $("#parent_cat_id").html('<OPTION value="0">' + lang["none"] + '</OPTION>');
- if (data.error_code == 0) {
- json = data.data;
- console.log(json);
- for (var i = 0; i < json.length; i++) {
- cat_html = '<OPTION value="' + json[i].cat_id + '" ';
- if (default_child_cat_id == json[i].cat_id) {
- cat_html += ' selected ';
- }
-
- cat_html += ' ">' + json[i].cat_name + '</OPTION>';
- $("#parent_cat_id").append(cat_html);
- };
- } else {}
-
- },
- "json"
-
- );
- }
- //监听是否选择了目录。如果选择了,则跟后台判断是否还子目录
- $("#cat_id").change(function() {
- getChildCatList();
- });
-
- var keyMap = {
- // 保存
- "Ctrl-S": function() {
- $("#save").click();
- }
- };
- initEditorOutsideKeys();
-
- function initEditorOutsideKeys() {
- if (!editormd) return;
- var $doc = $(document);
- $.each(keyMap, function(key, fn) {
- $doc.on('keydown', null, key.replace('-', '+'), function(e) {
- e.preventDefault();
- fn();
- });
- });
- }
- // 如果是新增页面,则光标为标题文本框
- if (location.href.indexOf('type=new') !== -1) {
- setTimeout(function() {
- $('#page_title').focus();
- }, 1000);
- }
-
- /*初始化编辑器*/
- editormd = editormd("editormd", {
- width: "90%",
- height: 1000,
- syncScrolling: "single",
- path: DocConfig.pubile + "/editor.md/lib/",
- placeholder: lang["editormd_placeholder"],
- taskList: true,
- tex: true, // 默认不解析
- flowChart: true, // 默认不解析
- sequenceDiagram: true, // 默认不解析
- htmlDecode : "style,script,iframe|filterXSS",//解析html
- imageUpload: true,
- imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
- imageUploadURL: "?s=home/page/uploadImg",
- onload: function() {
- this.addKeyMap(keyMap);
- }
- });
-
- /*插入API接口模板*/
- $("#api-doc").click(function() {
- var tmpl = $("#api-doc-templ").html();
- editormd.insertValue(tmpl);
- });
- /*插入数据字典模板*/
- $("#database-doc").click(function() {
- var tmpl = $("#database-doc-templ").html();
- editormd.insertValue(tmpl);
- });
-
- /*JSON转参数表格*/
- $("#jsons").click(function() {
-
- $("#json-templ").show();
-
- });
-
- /*JSON格式美化*/
- $("#beautify-json").click(function() {
-
- $("#beautify-json-dialog").show();
-
- });
-
-
-
- $("#json-templ .editormd-enter-btn").click(function() {
-
-
- var datas = $("#json-templ .jsons").val();
-
- try {
- Change($.parseJSON(datas));
- } catch (e) {
- alert(lang["json_fail"] + e);
- }
-
- //datas=processJSONImport(datas);
- //alert(datas);
- /*var datas='|键|值|类型|空|注释|\n'+
- '|:-------|:-------|:-------|:-------|:-------|\n'+
- '|uid|int(10)|否|||\n'+
- '|username|varchar(20)|否||用户名|';*/
-
- //alert(json_table_data);return;
-
-
-
- editormd.insertValue(json_table_data);
-
- json_table_data = '|' + lang["filed"] + '|' + lang["type"] + '|' + lang["description"] + '|\n' +
- '|:-------|:-------|:-------|\n';
-
-
- $("#json-templ .jsons").val("");
- $("#json-templ").hide();
-
- });
-
-
- $("#beautify-json-dialog .editormd-enter-btn").click(function() {
- var data = $("#beautify-json-dialog .jsons").val();
- try {
- data = data.replace(/(^\s*)|(\s*$)/g, "");
- op1 = data.substr(0, 1) == "[" ? "[" : "{";
- op2 = (op1 == "[") ? "]" : "}";
- var text = "\n ``` \n " + op1 + " \n" + dump(JSON.parse(data)) + " " + op2 + " \n\n ```\n\n"; //整体加个大括号
- //$("#beautify-json-dialog .jsons").val(text);
- $("#beautify-json-dialog .jsons").val("");
- editormd.insertValue(text);
- } catch (e) {
- //非json数据直接显示
- //$("#beautify-json-dialog .jsons").val(data);
- $("#beautify-json-dialog .jsons").val("");
- editormd.insertValue(data);
- }
- $("#beautify-json-dialog").hide();
-
- });
- //{"dgfgdfg":"gdfgdfg"}
-
- //格式化json数据
- function dump(arr, level) {
- var dumped_text = "";
- if (!level) level = 0;
-
- //The padding given at the beginning of the line.
- var level_padding = "";
- for (var j = 0; j < level + 1; j++) level_padding += " ";
- if (typeof(arr) == 'object') { //Array/Hashes/Objects
- var i = 0;
- for (var item in arr) {
- var value = arr[item];
- if (typeof(value) == 'object') { //If it is an array,
- dumped_text += level_padding + "\"" + item + "\" : \{ \n";
- dumped_text += dump(value, level + 1);
- dumped_text += level_padding + "\}";
- } else {
- if (typeof(value) == "number") {
- dumped_text += level_padding + "\"" + item + "\" : " + value ;
- }else{
- dumped_text += level_padding + "\"" + item + "\" : \"" + value + "\"";
- }
- }
- if (i < Object.getOwnPropertyNames(arr).length - 1) {
- dumped_text += ", \n";
- } else {
- dumped_text += " \n";
- }
- i++;
- }
- } else { //Stings/Chars/Numbers etc.
- dumped_text = "===>" + arr + "<===(" + typeof(arr) + ")";
- }
- return dumped_text;
- }
-
- /*保存*/
- $("#save").click(function() {
- var page_id = $("#page_id").val();
- var item_id = $("#item_id").val();
- var page_title = $("#page_title").val();
- var page_comments = $("#page_comments").val();
- var page_content = $("#page_content").val();
- var item_id = $("#item_id").val();
- var s_number = $("#s_number").val();
- var cat_id = $("#cat_id").val();
- var parent_cat_id = $("#parent_cat_id").val();
- if (parent_cat_id > 0) {
- cat_id = parent_cat_id;
- };
- $("#save").html('保存中...').attr('disabled','disabled');
- $.post(
- DocConfig.server+"/api/page/save", {
- "page_id": page_id,
- "cat_id": cat_id,
- "s_number": s_number,
- "page_content": page_content,
- "page_title": page_title,
- "page_comments": page_comments,
- "item_id": item_id
- },
- function(data) {
- if (data.error_code == 0) {
- localStorage.removeItem("page_content");
- window.location.href = "?s=home/item/show&page_id=" + data.data.page_id + "&item_id=" + item_id;
- } else {
- $.alert(lang["save_fail"]);
- $("#save").html('保存').removeAttr('disabled');
-
- }
- },
- 'json'
- )
- });
-
-
-
- $(".editormd-preview-container").bind('DOMNodeInserted', function(e) {
-
- $(".editormd-preview-container table thead tr").css({
- "background-color": "#08c",
- "color": "#fff"
- });
- $(".editormd-preview-container table tr").eq(0).css({
- "background-color": "#08c",
- "color": "#fff"
- });
- $(".editormd-preview-container table tr").each(function() {
- if ($(this).find("td").eq(1).html() == "object" || $(this).find("td").eq(1).html() == "array[object]") {
- $(this).css({
- "background-color": "#99CC99",
- "color": "#000"
- });
- }
-
- });
- });
-
- function closeDiv(target) {
- $(target).hide();
- }
-
- function Change(data) {
- var level_str = "- ";
- if (arguments.length > 1) {
- var level;
- arguments[1] > 0 ? level = arguments[1] : level = 1;
- for (var i = 0; i < level; i++) {
- level_str += "- ";
- }
- }
-
- for (var key in data) {
- var value = data[key];
- var type = typeof(value);
- if (type == "object") {
- json_table_data += '| ' + level_str + key + ' |' + type + ' | ' + lang["none"] + ' |\n';
- if (value instanceof Array) {
- var j = level + 1;
- Change(value[0], j);
- continue;
- }
- //else
- //{
- Change(value, level);
- //}
-
- } else {
- json_table_data += '| ' + key + ' | ' + type + '| ' + lang["none"] + ' |\n';
- }
- }
- }
-
- //{"Result":[{"name":"test1","list":{"pros":"prosfsf","ppps":{"images":[{"22":"22"}]}}}]}
-
- $("#save-to-templ").click(function() {
- $.prompt({
- title: lang["save_templ_title"]
- }, function(template_title, index) {
- if (template_title != null && template_title != "") {
- var template_content = $("#page_content").val();
- $.post(
- "?s=home/template/save", {
- "template_title": template_title,
- "template_content": template_content
- },
- function(data) {
- if (data.error_code == 0) {
- $.closeDialog(index);
- $.alert(lang["saved_templ_msg1"] + template_title + lang["saved_templ_msg2"]);
- } else {
- $.alert(lang["save_fail"]);
-
- }
- },
- "json"
- );
- }
- $("#save-btn-group").removeClass("open");
- return false;
- });
- });
-
- $("#more-templ").click(function() {
- $.post(
- "?s=home/template/getList", {},
- function(data) {
- if (data.error_code == 0) {
- var html = '<TR><td>' + lang["save_time"] + '</td><td>' + lang["templ_title"] + '</td><td>' + lang["operation"] + '</td></TR>';
- template_list = data.data;
- json = data.data;
- for (var i = 0; i < json.length; i++) {
- html += '<TR><td>' + json[i]['addtime'] + '</td>';
- html += '<td>' + json[i]['template_title'] + '</td>';
- html += '<td><a href="javascript:use_template(' + json[i]['id'] + ')">' + lang["use_this_template"] + '</a> | <a href="javascript:delete_template(' + json[i]['id'] + ')">' + lang["delete_this_template"] + '</a></td>';
- html += '</TR>';
- };
- $("#templ-table").html(html);
- $("#more-templ-modal").modal();
- } else {
- //$.alert("获取模板列表失败");
- $("#more-templ-modal").modal("hide");
- $.alert(lang["no_templ_msg"]);
-
- }
- },
- "json"
- );
-
- });
-
- $("#add-page-comments").click(function() {
- var page_comments = prompt(lang["add_page_comments_msg"], "");
- if (page_comments != null && page_comments != "") {
- $("#page_comments").val(page_comments);
- $("#save").click();
- }
- $("#save-btn-group").removeClass("open");
- return false;
- });
-
- /** 粘贴上传图片 **/
- document.getElementById("editormd").addEventListener('paste', function(e) {
- var clipboard = e.clipboardData;
- for (var i = 0, len = clipboard.items.length; i < len; i++) {
- if (clipboard.items[i].kind == 'file' || clipboard.items[i].type.indexOf('image') > -1) {
- var imageFile = clipboard.items[i].getAsFile();
- var form = new FormData;
- form.append('t', 'ajax-uploadpic');
- form.append('editormd-image-file', imageFile);
- var layer_index = {};
- var callback = function(type, data) {
- type = type || 'before';
- var $the = $('#content');
- switch (type) {
- // 开始上传
- case 'before':
- layer_index = layer.load(1, {
- shade: [0.1, '#fff'] //0.1透明度的白色背景
- });
- break;
- // 服务器返回错误
- case 'error':
- $the.attr('disabled', false);
- $.closeDialog(layer_index);
- $.alert('图片上传失败');
- break;
- // 上传成功
- case 'success':
- $the.attr('disabled', false);
- $.closeDialog(layer_index);
- if (data.success == 1) {
- var value = '![](' + data.url + ')';
- editormd.insertValue(value);
- } else {
- $.alert(data.message);
- }
-
- break;
- }
- };
- $.ajax({
- url: "?s=home/page/uploadImg",
- type: "POST",
- dataType: "json",
- data: form,
- processData: false,
- contentType: false,
- beforeSend: function() {
- callback('before');
- },
- error: function() {
- callback('error');
- },
- success: function(data) {
- callback('success', data);
- }
- })
- e.preventDefault();
- }
- }
- });
-
- //更改选择文件框的文件类型让它更快地弹出
- $("#editormd").on("mouseover", '[name=editormd-image-file]', function(){
- $(this).attr("accept","image/png,image/jpg,image/jpeg,imge/bmp,image/gif")
- });
-
- //定时保存文本内容到localStorage
- setInterval(function(){
- localStorage.page_content= $("#page_content").val() ;
- }, 60000);
-
- //检测是否有定时保存的内容
- if (localStorage.page_content && localStorage.page_content.length > 0) {
- $.confirm("检测到有上次编辑时自动保存的草稿。是否自动填充上次的草稿内容?",
- {},
- function(){
- editormd.clear();
- editormd.insertValue(localStorage.page_content);
- $.closeAll();
- localStorage.removeItem("page_content");
- },
- function(){
- localStorage.removeItem("page_content");
- }
-
- )
- };
-
-
- });
-
- //使用模板
- function use_template(id) {
- for (var i = 0; i < template_list.length; i++) {
- if (id > 0 && id == template_list[i]['id']) {
- editormd.insertValue(template_list[i]['template_content']);
- $("#more-templ-modal").modal("hide");
- };
-
- };
- }
-
- //删除模板
- function delete_template(id) {
- $.post(
- "?s=home/template/delete", {
- "id": id
- },
- function(data) {
- if (data.error_code == 0) {
- $("#more-templ").click();
- } else {
- $.alert(lang["save_fail"]);
- }
- },
- "json"
- );
- }
|