addons.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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. 'summernote': '../addons/summernote/lang/summernote-zh-CN.min'
  7. },
  8. shim: {
  9. 'BMap': {
  10. deps: ['jquery'],
  11. exports: 'BMap',
  12. 'summernote': ['../addons/summernote/js/summernote.min', 'css!../addons/summernote/css/summernote.css'],
  13. }
  14. }
  15. });
  16. require(['form', 'upload'], function (Form, Upload) {
  17. var _bindevent = Form.events.bindevent;
  18. Form.events.bindevent = function (form) {
  19. _bindevent.apply(this, [form]);
  20. try {
  21. //곬땍summernote慤숭
  22. if ($(".summernote,.editor", form).size() > 0) {
  23. require(['summernote'], function () {
  24. var imageButton = function (context) {
  25. var ui = $.summernote.ui;
  26. var button = ui.button({
  27. contents: '<i class="fa fa-file-image-o"/>',
  28. tooltip: __('Choose'),
  29. click: function () {
  30. parent.Fast.api.open("general/attachment/select?element_id=&multiple=true&mimetype=image/*", __('Choose'), {
  31. callback: function (data) {
  32. var urlArr = data.url.split(/\,/);
  33. $.each(urlArr, function () {
  34. var url = Fast.api.cdnurl(this);
  35. context.invoke('editor.insertImage', url);
  36. });
  37. }
  38. });
  39. return false;
  40. }
  41. });
  42. return button.render();
  43. };
  44. var attachmentButton = function (context) {
  45. var ui = $.summernote.ui;
  46. var button = ui.button({
  47. contents: '<i class="fa fa-file"/>',
  48. tooltip: __('Choose'),
  49. click: function () {
  50. parent.Fast.api.open("general/attachment/select?element_id=&multiple=true&mimetype=*", __('Choose'), {
  51. callback: function (data) {
  52. var urlArr = data.url.split(/\,/);
  53. $.each(urlArr, function () {
  54. var url = Fast.api.cdnurl(this);
  55. var node = $("<a href='" + url + "'>" + url + "</a>");
  56. context.invoke('insertNode', node[0]);
  57. });
  58. }
  59. });
  60. return false;
  61. }
  62. });
  63. return button.render();
  64. };
  65. $(".summernote,.editor", form).summernote({
  66. height: 250,
  67. lang: 'zh-CN',
  68. fontNames: [
  69. 'Arial', 'Arial Black', 'Serif', 'Sans', 'Courier',
  70. 'Courier New', 'Comic Sans MS', 'Helvetica', 'Impact', 'Lucida Grande',
  71. "Open Sans", "Hiragino Sans GB", "Microsoft YaHei",
  72. '菓흡錤붚', '芥竟', '붚竟', '력芥', '연竟', '當途',
  73. ],
  74. fontNamesIgnoreCheck: [
  75. "Open Sans", "Microsoft YaHei",
  76. '菓흡錤붚', '芥竟', '붚竟', '력芥', '연竟', '當途'
  77. ],
  78. toolbar: [
  79. ['style', ['style', 'undo', 'redo']],
  80. ['font', ['bold', 'underline', 'strikethrough', 'clear']],
  81. ['fontname', ['color', 'fontname', 'fontsize']],
  82. ['para', ['ul', 'ol', 'paragraph', 'height']],
  83. ['table', ['table', 'hr']],
  84. ['insert', ['link', 'picture', 'video']],
  85. ['select', ['image', 'attachment']],
  86. ['view', ['fullscreen', 'codeview', 'help']],
  87. ],
  88. buttons: {
  89. image: imageButton,
  90. attachment: attachmentButton,
  91. },
  92. dialogsInBody: true,
  93. followingToolbar: false,
  94. callbacks: {
  95. onChange: function (contents) {
  96. $(this).val(contents);
  97. $(this).trigger('change');
  98. },
  99. onInit: function () {
  100. },
  101. onImageUpload: function (files) {
  102. var that = this;
  103. //弩늴�눈暠튬
  104. for (var i = 0; i < files.length; i++) {
  105. Upload.api.send(files[i], function (data) {
  106. var url = Fast.api.cdnurl(data.url);
  107. $(that).summernote("insertImage", url, 'filename');
  108. });
  109. }
  110. }
  111. }
  112. });
  113. });
  114. }
  115. } catch (e) {
  116. }
  117. };
  118. });
  119. });