edit.js 6.3 KB

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