edit.js 5.0 KB

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