docs.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*
  2. 授权产品文档
  3. */
  4. layui.define(function(exports){
  5. var $ = layui.jquery
  6. ,layer = layui.layer
  7. ,form = layui.form
  8. ,fly = layui.fly
  9. ,util = layui.util;
  10. $('.layui-fixbar').remove();
  11. //后续增加工单系统
  12. util.fixbar({
  13. });
  14. var editor = $('#FLY-docs-editor')
  15. ,preview = $('#FLY-docs-preview')
  16. ,docID = $('#FLY-docs-id').val()
  17. ,tableName = 'layui-auth-product-'+ docID;
  18. //发布与编辑
  19. ;!function(){
  20. if(!editor[0]) return;
  21. var md = window.markdownit({
  22. html: true
  23. ,typographer: true
  24. ,linkify: true
  25. ,breaks: true
  26. });
  27. //转义
  28. md.renderer.rules.table_open = function () {
  29. return '<table class="layui-table">\n';
  30. };
  31. var editorView = function(){
  32. var content = editor.val()
  33. ,getHtml = md.render(content);
  34. preview.html(getHtml);
  35. };
  36. docID || editor.val(layui.data(tableName).content);
  37. editorView();
  38. //编辑同步
  39. editor.on('keyup', function(){
  40. var content = editor.val();
  41. editorView();
  42. //同步本地记录
  43. layui.data(tableName, {
  44. key: 'content'
  45. ,value: content
  46. });
  47. }).on('scroll', function(){
  48. var othis = $(this)
  49. ,scrollHeight = othis.prop('scrollHeight')
  50. ,docsPreview = $('.fly-docs-preview')
  51. ,scrollTop = othis.scrollTop();
  52. var top = (scrollTop / scrollHeight * docsPreview.prop('scrollHeight'));
  53. docsPreview.scrollTop(top);
  54. });
  55. //监听文档提交
  56. form.on('submit(FLY-docs-send)', function(obj){
  57. fly.json(obj.form.action, obj.field, function(res){
  58. location.href = '/docs/'+ res.data.id + '/';
  59. });
  60. return false;
  61. });
  62. }();
  63. //详情页
  64. (function(){
  65. var spreadDir = $('#FLY-spread-dir');
  66. spreadDir.on('click', function(){
  67. $('body').addClass('fly-docs-spread');
  68. return false;
  69. });
  70. $('body').on('click', function(){
  71. $(this).removeClass('fly-docs-spread');
  72. });
  73. }());
  74. exports('docs', {});
  75. })