text.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
  2. var Controller = {
  3. index: function () {
  4. // 初始化表格参数配置
  5. Table.api.init({
  6. extend: {
  7. index_url: 'send/message/text/index',
  8. add_url: 'send/message/text/add',
  9. edit_url: 'send/message/text/edit',
  10. del_url: 'send/message/text/del',
  11. multi_url: 'send/message/text/multi',
  12. table: 'send_message_text',
  13. }
  14. });
  15. var table = $("#table");
  16. // 初始化表格
  17. table.bootstrapTable({
  18. url: $.fn.bootstrapTable.defaults.extend.index_url,
  19. pk: 'id',
  20. sortName: 'id',
  21. columns: [
  22. [
  23. {checkbox: true},
  24. {field: 'id', title: __('Id')},
  25. {field: 'is_url', title: __('Is_url'), formatter: Table.api.formatter.url},
  26. {field: 'type', title: __('Type')},
  27. {field: 'book_id', title: __('Book_id')},
  28. {field: 'chapter_id', title: __('Chapter_id')},
  29. {field: 'activity_type', title: __('Activity_type')},
  30. {field: 'activity_id', title: __('Activity_id')},
  31. {field: 'campaign_match_id', title: __('Campaign_match_id')},
  32. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
  33. ]
  34. ]
  35. });
  36. // 为表格绑定事件
  37. Table.api.bindevent(table);
  38. },
  39. add: function () {
  40. Controller.api.bindevent();
  41. //纯文本
  42. $(".btn-nourl").click(function(){
  43. $('.mini-content').addClass('hidden');
  44. $('.mini-page').addClass('hidden');
  45. $('.l-textonly').removeClass('hidden');
  46. $('.l-message-text').addClass('hidden');
  47. $('.l-message-url').addClass('hidden');
  48. $('.l-message-url-desc').addClass('hidden');
  49. $('#c-message-text-only').val('');
  50. $('#c-message-content').val('');
  51. $('#c-message-url').val('');
  52. });
  53. //占位符
  54. $(".btn-br").click(function(){
  55. $('.mini-content').addClass('hidden');
  56. $('.mini-page').addClass('hidden');
  57. $('.l-textonly').addClass('hidden');
  58. $('.l-message-text').addClass('hidden');
  59. $('.l-message-url').addClass('hidden');
  60. $('.l-message-url-desc').addClass('hidden');
  61. $('#c-message-text-only').val('');
  62. $('#c-message-content').val('');
  63. $('#c-message-url').val('');
  64. });
  65. //跳转类型
  66. $(".btn-isurl").click(function(){
  67. $('.mini-content').addClass('hidden');
  68. $('.mini-page').addClass('hidden');
  69. $('.l-textonly').addClass('hidden');
  70. $('.l-message-text').removeClass('hidden');
  71. $('.l-message-url').removeClass('hidden');
  72. $('.l-message-url-desc').removeClass('hidden');
  73. $('#c-message-text-only').val('');
  74. $('#c-message-content').val('');
  75. $('#c-message-url').val('');
  76. });
  77. //小程序跳转
  78. $('.btn-mini').click(function () {
  79. $('.l-textonly').addClass('hidden');
  80. $('.l-message-text').addClass('hidden');
  81. $('.l-message-url').addClass('hidden');
  82. $('.l-message-url-desc').addClass('hidden');
  83. $('.mini-content').removeClass('hidden');
  84. $('.mini-page').removeClass('hidden');
  85. });
  86. //提交
  87. $("#o-subbmit").click(function(){
  88. if( $("#p-nourl").is(':checked') && $('#c-message-text-only').val().length==0){
  89. Layer.msg('消息内容不能为空');
  90. return false;
  91. }
  92. if($("#p-isurl").is(':checked')){
  93. if($('#c-message-content').val().length==0){
  94. Layer.msg('消息内容不能为空');
  95. return false;
  96. }
  97. if($('#c-message-url').val().length==0){
  98. Layer.msg('跳转链接不能为空');
  99. return false;
  100. }
  101. if($('#c-message-url').val().indexOf('https:\/\/mp.weixin.qq.com')!==0){
  102. Layer.msg('跳转链接必须以https://mp.weixin.qq.com开头');
  103. return false;
  104. }
  105. }
  106. if($("#p-mini").is(':checked')){
  107. if( $('#c-mini_content').val().length == 0 ){
  108. Layer.msg('展示文字内容不能为空');
  109. return false;
  110. }
  111. if( $('#c-mini_content').val().length > 50 ){
  112. Layer.msg('展示文字内容不能大于50字符');
  113. return false;
  114. }
  115. }
  116. if($("#p-nourl").is(':checked')){
  117. Pdata.data.content = $('#c-message-text-only').val();
  118. }else if($("#p-br").is(':checked')){
  119. Pdata.data.content = '\n\n';
  120. }else if($("#p-isurl").is(':checked')){
  121. Pdata.data.content = $('#c-message-content').val();
  122. Pdata.data.url = $('#c-message-url').val();
  123. }else if($("#p-mini").is(':checked')){
  124. Pdata.data.content = $('#c-mini_content').val();
  125. Pdata.data.page = $('#c-mini_page').find('option:checked').val();
  126. }
  127. window.parent.toggleData = window.parent.toggleData ? window.parent.toggleData : [{type:"text", data:[]} ,{type:"img", data:[]} ,{type:"imgtext", data:[]} , ]
  128. if(window.parent.msgIsEditing){
  129. $(window.parent.toggleData).each(function (index, item) {
  130. if (item.type == 'text') {
  131. item.data.splice(window.parent.msgEditIndex, 1, Pdata.data);
  132. window.parent.msgData= item;
  133. }
  134. })
  135. }else{
  136. $(window.parent.toggleData).each(function (index, item) {
  137. if (item.type == 'text') {
  138. item.data.push(Pdata.data);
  139. window.parent.msgData= item;
  140. }
  141. })
  142. }
  143. // 创建父层结构
  144. var textHtml = "";
  145. $(window.parent.msgData.data).each(function(index, item){
  146. textHtml += ''+
  147. '<div class="msg_preview_text" data-index="'+index+'">' +
  148. '<div class="preview_handler" >' +
  149. '<p class="msg_preview_title3">'+ item.content +'</p>'+
  150. '<a href="javascript:;" class="preview_del" data-index="'+index+'">删除</a>' +
  151. '<a href="javascript:;" class="preview_edit" data-index="'+index+'">编辑</a>' +
  152. '</div>' +
  153. '</div>';
  154. });
  155. // .text_container
  156. $(window.parent.document).find('.message_type_content_contianer').html(textHtml);
  157. // 长度超出8隐藏添加按钮
  158. if(window.parent.msgData.data.length >= 8){
  159. $(window.parent.document).find('#message_type_add_btn').hide();
  160. }
  161. // 关闭当前页
  162. Fast.api.close('');
  163. });
  164. window.Pdata = {type: 'text' , data:{}};
  165. if(window.parent.msgData){}else{
  166. window.parent.msgData = {type : 'text' , data:[]};
  167. };
  168. if(window.parent.msgIsEditing){
  169. var editData = window.parent.msgEditData;
  170. console.log(editData);
  171. if(editData.hasOwnProperty('url')){
  172. $('.btn-isurl').click();
  173. $('#c-message-content').val(editData.content);
  174. $('#c-message-url').val(editData.url);
  175. }else if(editData.hasOwnProperty('page')){
  176. $('.btn-mini').click();
  177. $('#c-mini_content').val(editData.content);
  178. $("#c-mini_page").find('option[value=\''+editData.page+'\']').attr("selected",true);
  179. }else{
  180. if(editData.content != '\n'){
  181. $('.btn-nourl').click();
  182. $('#c-message-text-only').val(editData.content);
  183. }else{
  184. $('.btn-br').click();
  185. }
  186. }
  187. }
  188. },
  189. edit: function () {
  190. Controller.api.bindevent();
  191. },
  192. api: {
  193. bindevent: function () {
  194. Form.api.bindevent($("form[role=form]"));
  195. }
  196. }
  197. };
  198. return Controller;
  199. });