wdEditor.cms.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. manager.registerUI('cms', function (wdeditor, name) {
  2. var btn = new EditorManager.Button({
  3. wdeditor: wdeditor,
  4. name: "fjEdit",
  5. labelClassName:"label-fj",
  6. command: name,
  7. // getBtnID: function () {
  8. // return "fjEdit";
  9. // },
  10. className: "rightBtn content-OuteduiButton underlineIcon-attachment",
  11. cssRules: "display:inline-block;float:right;/*position:absolute;top:5px;right:3.5em*/ margin-top: 6px;",
  12. text: "",
  13. value: "",
  14. oninit: function () {
  15. var el = this.getElement()
  16. var hiddenName = wdeditor.options["btn_opt_" + name].key || "";
  17. var hiddenValue = wdeditor.options["btn_opt_" + name].value || "";
  18. // manager.registerUI('insertCMS', function (wdeditor, name) {
  19. // var btn = new EditorManager.CheckBox({
  20. // name: name,
  21. // text: "附件",
  22. // title: "附件",
  23. // onBtnClick: function () {
  24. // $("[name='" + hiddenName + "']").val() != "" && this.wdeditor.execCommand('insertHtml', '<img cmsid="' + hiddenValue + '" src="/wd/js/ueditor/lang/zh-cn/images/cmsEdit.png" scrolling="no" frameborder="0" width="300px" height="350px"/>');
  25. // }
  26. // });
  27. // return btn;
  28. // });
  29. var hidden_ = null;
  30. if ((hidden_ = document.getElementsByName(hiddenName)[0]) == null) {
  31. hidden_ = EditorManager.utils.parseDom("<input type='hidden' name='" + hiddenName + "' value='" + hiddenValue + "'/>")[0];
  32. el.parentNode.appendChild(hidden_);
  33. }
  34. //获取附件的数量
  35. window.getAttachmentCount = function () {
  36. var nrid = hidden_.value;
  37. if (nrid)
  38. $.ajax({
  39. async: false,
  40. type: "post",
  41. url: "/service?ssServ=wrCcmsList", // =getSubNrCount",。Lin
  42. data: {
  43. nrid: "T-" + nrid,
  44. jlztm:1
  45. },
  46. dataType: "json", // 增加,统一 Ajax 返回标准 -- .ssCode、.ssMsg、.ssData。Lin
  47. success: function (data) {
  48. /* 改,增加错误处理 -- 统一 Ajax 返回标准 -- .ssCode、.ssMsg、.ssData。Lin
  49. * 去掉 JSON.parse(,改为用 Map<String, Object> 传输
  50. var names = JSON.parse(data);
  51. */
  52. if (data.ssCode != 0) {
  53. alert(data.ssMsg);
  54. return;
  55. }
  56. var names = data.ssData;
  57. var count = names.length;
  58. var wrapper = el.parentNode;
  59. if (wrapper.id != el.id + "wrapper") {
  60. wrapper = document.createElement("span");
  61. wrapper.id = el.id + "wrapper";
  62. el.parentNode.appendChild(wrapper);
  63. wrapper.style.cssText = el.style.cssText;
  64. wrapper.style.marginTop = 'unset';
  65. console.log(wrapper.style.cssText);
  66. wrapper.appendChild(el);
  67. }
  68. if (count > 0) {
  69. var attachment = wrapper,
  70. num = attachment.querySelector(".icon-num");
  71. if (!num) {
  72. num = document.createElement("span");
  73. num.className = "icon-num";
  74. num.className = "icon-num";
  75. num.style.float="right";
  76. num.style.position = "absolute";
  77. num.style.right = "65px";
  78. num.style.top = "2px";
  79. attachment.appendChild(num);
  80. }
  81. num.innerText = count;
  82. attachment.appendChild(num);
  83. var datas = [];
  84. for (var iii = 0; iii < names.length; iii++) {
  85. datas.push({
  86. name: iii,
  87. value: names[iii]
  88. })
  89. }
  90. }
  91. },
  92. error: function (data) {
  93. console.log(data);
  94. }
  95. })
  96. }
  97. function showCMSMenu() {
  98. var nrid = hidden_.value;
  99. if (nrid == "")
  100. return;
  101. window.getAttachmentCount();
  102. var attachment = el.parentNode;
  103. var menuelement = wd.display.initCmsMenu("cms" + nrid,1);
  104. if (menuelement) {
  105. menuelement.showAt(attachment);
  106. $(attachment).mouseleave(function () {
  107. menuelement.hide();
  108. });
  109. }
  110. }
  111. function fjEditClick() {
  112. /// 增加 ssNrObjName、ssNrObjId,内容 表增加 对象名、对象ID 字段 -- 对象的附件。Lin
  113. var dataSet = document.querySelectorAll('textarea[name="'+ wdeditor.ueditor.key +'"]')[0].dataset;
  114. ///
  115. var nrid = hidden_.value;
  116. if (nrid == null || nrid.length == 0) {
  117. $.ajax({
  118. type: 'GET',
  119. url: '/service?ssServ=makeAttCms', // =getNewNridAndUpdateNrmc。Lin
  120. data: {
  121. name: 'fj',
  122. /// 增加 ssNrObjName、ssNrObjId,内容 表增加 对象名、对象ID 字段 -- 对象的附件。Lin
  123. // data-ss-nr-obj-name="${ssObjName}" data-ss-nr-obj-id="${ssObjId}"
  124. ssNrObjName: dataSet.ssNrObjName,
  125. ssNrObjId: dataSet.ssNrObjId
  126. ///
  127. },
  128. async: false,
  129. success: function (data) {
  130. nrid = data;
  131. },
  132. });
  133. hidden_.value = nrid;
  134. }
  135. var user = ''
  136. var Nrid = 'T-' + nrid;
  137. var objectId = ''
  138. var objectFunction = ''
  139. var objectName = ''
  140. var str = '&nrid=';
  141. str += Nrid;
  142. str += '&user=';
  143. str += user;
  144. str += '&objectId=';
  145. str += objectId;
  146. str += '&objectFunction=';
  147. str += objectFunction;
  148. str += '&objectName=';
  149. str += objectName + '&callback=getAttachmentCount';
  150. console.log( wdeditor.options.cms_edit + str)
  151. wd.display.showComponent({
  152. show: ['wdDialog'],
  153. //1984
  154. url: wdeditor.options.cms_edit + str,
  155. title: '编辑内容',
  156. width: 900,
  157. high: 664,
  158. });
  159. }
  160. var this_ = this;
  161. (function () {
  162. var edit = el;
  163. window.getAttachmentCount();
  164. if (edit != null) {
  165. if (edit.addListener) {
  166. edit.addListener('click', fjEditClick, false);
  167. edit.addListener('mouseenter', showCMSMenu, false);
  168. } else if (edit.attachEvent) {
  169. edit.attachEvent('onclick', fjEditClick);
  170. edit.attachEvent('mouseenter', showCMSMenu);
  171. } else {
  172. edit['onclick'] = fjEditClick;
  173. edit['onmouseenter'] = showCMSMenu;
  174. }
  175. }
  176. })();
  177. }
  178. });
  179. return btn;
  180. });