edit.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. var editormd;
  2. var json_table_data='|参数名|类型|说明|\n'+
  3. '|:-------|:-------|:-------|\n';
  4. $(function() {
  5. /*加载目录*/
  6. getCatList();
  7. function getCatList() {
  8. var default_cat_id = $("#default_cat_id").val();
  9. var item_id = $("#item_id").val();
  10. $.get(
  11. "./", {
  12. "item_id": item_id,
  13. "s": "home/catalog/catList",
  14. },
  15. function(data) {
  16. $("#cat_id").html('<OPTION value="0">无</OPTION>');
  17. if (data.error_code == 0) {
  18. json = data.data;
  19. console.log(json);
  20. for (var i = 0; i < json.length; i++) {
  21. cat_html = '<OPTION value="' + json[i].cat_id + '" ';
  22. if (default_cat_id == json[i].cat_id) {
  23. cat_html += ' selected ';
  24. }
  25. cat_html += ' ">' + json[i].cat_name + '</OPTION>';
  26. $("#cat_id").append(cat_html);
  27. };
  28. };
  29. },
  30. "json"
  31. );
  32. }
  33. var keyMap = {
  34. // 保存
  35. "Ctrl-S": function() {
  36. $("#save").click();
  37. }
  38. };
  39. initEditorOutsideKeys();
  40. function initEditorOutsideKeys() {
  41. if (!editormd) return;
  42. var $doc = $(document);
  43. $.each(keyMap, function(key, fn) {
  44. $doc.on('keydown', null, key.replace('-', '+'), function(e) {
  45. e.preventDefault();
  46. fn();
  47. });
  48. });
  49. }
  50. // 如果是新增页面,则光标为标题文本框
  51. if (location.href.indexOf('type=new') !== -1) {
  52. setTimeout(function() {
  53. $('#page_title').focus();
  54. }, 1000);
  55. }
  56. /*初始化编辑器*/
  57. editormd = editormd("editormd", {
  58. width: "90%",
  59. height: 1000,
  60. syncScrolling: "single",
  61. path: DocConfig.pubile + "/editor.md/lib/",
  62. placeholder: "本编辑器支持Markdown编辑,左边编写,右边预览",
  63. imageUpload: true,
  64. imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
  65. imageUploadURL: "?s=home/page/uploadImg",
  66. onload: function() {
  67. this.addKeyMap(keyMap);
  68. }
  69. });
  70. /*插入API接口模板*/
  71. $("#api-doc").click(function() {
  72. var tmpl = $("#api-doc-templ").html();
  73. editormd.insertValue(tmpl);
  74. });
  75. /*插入数据字典模板*/
  76. $("#database-doc").click(function() {
  77. var tmpl = $("#database-doc-templ").html();
  78. editormd.insertValue(tmpl);
  79. });
  80. /*插入JSON*/
  81. $("#jsons").click(function() {
  82. $("#json-templ").show();
  83. });
  84. $("#json-templ .editormd-enter-btn").click(function(){
  85. var datas=$("#json-templ .jsons").val();
  86. try{
  87. Change($.parseJSON(datas));
  88. }
  89. catch(e){
  90. alert("json导入失败" + e);
  91. }
  92. //datas=processJSONImport(datas);
  93. //alert(datas);
  94. /*var datas='|键|值|类型|空|注释|\n'+
  95. '|:-------|:-------|:-------|:-------|:-------|\n'+
  96. '|uid|int(10)|否|||\n'+
  97. '|username|varchar(20)|否||用户名|';*/
  98. //alert(json_table_data);return;
  99. editormd.insertValue(json_table_data);
  100. json_table_data='|键|类型|说明|\n'+
  101. '|:-------|:-------|:-------|\n';
  102. $("#json-templ .jsons").val("");
  103. $("#json-templ").hide();
  104. });
  105. //{"dgfgdfg":"gdfgdfg"}
  106. /*保存*/
  107. var saving = false;
  108. $("#save").click(function() {
  109. if (saving) return false;
  110. var page_id = $("#page_id").val();
  111. var item_id = $("#item_id").val();
  112. var cat_id = $("#cat_id").val();
  113. var page_title = $("#page_title").val();
  114. var page_content = $("#page_content").val();
  115. var item_id = $("#item_id").val();
  116. var order = $("#order").val();
  117. saving = true;
  118. $.post(
  119. "?s=home/page/save", {
  120. "page_id": page_id,
  121. "cat_id": cat_id,
  122. "order": order,
  123. "page_content": page_content,
  124. "page_title": page_title,
  125. "item_id": item_id
  126. },
  127. function(data) {
  128. if (data.error_code == 0) {
  129. $.bootstrapGrowl("保存成功!");
  130. window.location.href = "?s=home/item/show&page_id=" + data.data.page_id + "&item_id=" + item_id;
  131. } else {
  132. $.bootstrapGrowl("保存失败!");
  133. }
  134. saving = false;
  135. },
  136. 'json'
  137. )
  138. });
  139. $(".editormd-preview-container").bind('DOMNodeInserted', function(e){
  140. $(".editormd-preview-container table thead tr").css({"background-color":"#08c","color":"#fff"});
  141. $(".editormd-preview-container table tr").eq(0).css({"background-color":"#08c","color":"#fff"});
  142. $(".editormd-preview-container table tr").each(function(){
  143. if($(this).find("td").eq(1).html()=="object")
  144. {
  145. $(this).css({"background-color":"#99CC99","color":"#000"});
  146. }
  147. });
  148. });
  149. });
  150. function closeDiv(target)
  151. {
  152. $(target).hide();
  153. }
  154. function Change(data)
  155. {
  156. var level_str="- ";
  157. if(arguments.length>1)
  158. {
  159. var level;
  160. arguments[1]>0?level=arguments[1]:level=1;
  161. for(var i=0;i<level;i++)
  162. {
  163. level_str+="- ";
  164. }
  165. }
  166. for(var key in data)
  167. {
  168. var value = data[key];
  169. var type = typeof(value);
  170. if(type == "object")
  171. {
  172. json_table_data+='| '+level_str+key+' |'+type+' | 无 |\n';
  173. if(value instanceof Array)
  174. {
  175. var j=level+1;
  176. Change(value[0],j);
  177. continue;
  178. }
  179. //else
  180. //{
  181. Change(value,level);
  182. //}
  183. }
  184. else
  185. {
  186. json_table_data+='| '+key+' | '+type+'| 无 |\n';
  187. }
  188. }
  189. }
  190. //{"Result":[{"name":"test1","list":{"pros":"prosfsf","ppps":{"images":[{"22":"22"}]}}}]}