addons.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. define([], function () {
  2. require.config({
  3. paths: {
  4. 'async': '../addons/example/js/async',
  5. 'BMap': ['//api.map.baidu.com/api?v=2.0&ak=mXijumfojHnAaN2VxpBGoqHM'],
  6. },
  7. shim: {
  8. 'BMap': {
  9. deps: ['jquery'],
  10. exports: 'BMap'
  11. }
  12. }
  13. });
  14. require.config({
  15. paths: {
  16. 'summernote': '../addons/summernote/lang/summernote-zh-CN.min'
  17. },
  18. shim: {
  19. 'summernote': ['../addons/summernote/js/summernote.min', 'css!../addons/summernote/css/summernote.css'],
  20. }
  21. });
  22. require(['form', 'upload'], function (Form, Upload) {
  23. var _bindevent = Form.events.bindevent;
  24. Form.events.bindevent = function (form) {
  25. _bindevent.apply(this, [form]);
  26. try {
  27. //绑定summernote事件
  28. if ($(".summernote,.editor", form).size() > 0) {
  29. require(['summernote'], function () {
  30. var imageButton = function (context) {
  31. var ui = $.summernote.ui;
  32. var button = ui.button({
  33. contents: '<i class="fa fa-file-image-o"/>',
  34. tooltip: __('Choose'),
  35. click: function () {
  36. parent.Fast.api.open("general/attachment/select?element_id=&multiple=true&mimetype=image/*", __('Choose'), {
  37. callback: function (data) {
  38. var urlArr = data.url.split(/\,/);
  39. $.each(urlArr, function () {
  40. var url = Fast.api.cdnurl(this);
  41. context.invoke('editor.insertImage', url);
  42. });
  43. }
  44. });
  45. return false;
  46. }
  47. });
  48. return button.render();
  49. };
  50. var attachmentButton = function (context) {
  51. var ui = $.summernote.ui;
  52. var button = ui.button({
  53. contents: '<i class="fa fa-file"/>',
  54. tooltip: __('Choose'),
  55. click: function () {
  56. parent.Fast.api.open("general/attachment/select?element_id=&multiple=true&mimetype=*", __('Choose'), {
  57. callback: function (data) {
  58. var urlArr = data.url.split(/\,/);
  59. $.each(urlArr, function () {
  60. var url = Fast.api.cdnurl(this);
  61. var node = $("<a href='" + url + "'>" + url + "</a>");
  62. context.invoke('insertNode', node[0]);
  63. });
  64. }
  65. });
  66. return false;
  67. }
  68. });
  69. return button.render();
  70. };
  71. $(".summernote,.editor", form).summernote({
  72. height: 250,
  73. lang: 'zh-CN',
  74. fontNames: [
  75. 'Arial', 'Arial Black', 'Serif', 'Sans', 'Courier',
  76. 'Courier New', 'Comic Sans MS', 'Helvetica', 'Impact', 'Lucida Grande',
  77. "Open Sans", "Hiragino Sans GB", "Microsoft YaHei",
  78. '微软雅黑', '宋体', '黑体', '仿宋', '楷体', '幼圆',
  79. ],
  80. fontNamesIgnoreCheck: [
  81. "Open Sans", "Microsoft YaHei",
  82. '微软雅黑', '宋体', '黑体', '仿宋', '楷体', '幼圆'
  83. ],
  84. toolbar: [
  85. ['style', ['style', 'undo', 'redo']],
  86. ['font', ['bold', 'underline', 'strikethrough', 'clear']],
  87. ['fontname', ['color', 'fontname', 'fontsize']],
  88. ['para', ['ul', 'ol', 'paragraph', 'height']],
  89. ['table', ['table', 'hr']],
  90. ['insert', ['link', 'picture', 'video']],
  91. ['select', ['image', 'attachment']],
  92. ['view', ['fullscreen', 'codeview', 'help']],
  93. ],
  94. buttons: {
  95. image: imageButton,
  96. attachment: attachmentButton,
  97. },
  98. dialogsInBody: true,
  99. followingToolbar: false,
  100. callbacks: {
  101. onChange: function (contents) {
  102. $(this).val(contents);
  103. $(this).trigger('change');
  104. },
  105. onInit: function () {
  106. },
  107. onImageUpload: function (files) {
  108. var that = this;
  109. //依次上传图片
  110. for (var i = 0; i < files.length; i++) {
  111. Upload.api.send(files[i], function (data) {
  112. var url = Fast.api.cdnurl(data.url);
  113. $(that).summernote("insertImage", url, 'filename');
  114. });
  115. }
  116. }
  117. }
  118. });
  119. });
  120. }
  121. } catch (e) {
  122. }
  123. };
  124. });
  125. });