addons.js 7.3 KB

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