materiallibrary.js 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983
  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/materiallibrary/index',
  8. add_url: 'send/message/materiallibrary/add',
  9. edit_url: 'send/message/materiallibrary/edit',
  10. del_url: 'send/message/materiallibrary/del',
  11. multi_url: 'send/message/materiallibrary/multi',
  12. table: 'send_message_material_library',
  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: __('序号'), operate: false },
  25. { field: 'material_name', title: __('消息名称'),operate:'LIKE'},
  26. {
  27. field: 'material_type',
  28. title: __('消息类型'),
  29. searchList: { "1": __('文本类型'), "2": __('图文类型'), "3": __('图片消息') },
  30. formatter: function (val, row, index) {
  31. if (val == 1) {
  32. return '文本类型';
  33. } else if (val == 2) {
  34. return '图文类型';
  35. } else if (val == 3) {
  36. return '图片消息';
  37. }
  38. }
  39. },
  40. { field: 'createtime', title: __('Createtime'), operate: false, addclass: 'datetimerange', formatter: Table.api.formatter.datetime },
  41. {
  42. field: 'operate',
  43. title: __('Operate'),
  44. table: table,
  45. events: Table.api.events.operate,
  46. buttons: [
  47. {
  48. name: 'detail',
  49. text: __('再次发送'),
  50. title: __('再次发送'),
  51. classname: 'btn btn-xs btn-primary btn-dialog',
  52. icon: '',
  53. url: '/admin/send/message/message/add_with_material',
  54. callback: function (data) {
  55. },
  56. visible: function (row) {
  57. return true;
  58. }
  59. },
  60. {
  61. name: 'detail',
  62. text: __('消息预览'),
  63. title: __('消息预览'),
  64. classname: 'btn btn-xs btn-primary btn-dialog',
  65. icon: '',
  66. url: '/admin/send/message/materiallibrary/message_preview',
  67. callback: function (data) {
  68. Layer.alert("接收到回传数据:" + JSON.stringify(data), { title: "回传数据" });
  69. },
  70. visible: function (row) {
  71. //返回true时按钮显示,返回false隐藏
  72. return true;
  73. }
  74. },
  75. {
  76. name: 'detail',
  77. text: __('修改'),
  78. title: __('修改'),
  79. classname: 'btn btn-xs btn-success btn-dialog',
  80. icon: '',
  81. url: '/admin/send/message/materiallibrary/edit',
  82. callback: function (data) {
  83. },
  84. visible: function (row) {
  85. if (row.send_status != 4 && row.send_status != 5) {
  86. return true;
  87. }
  88. //返回true时按钮显示,返回false隐藏
  89. return false;
  90. }
  91. },
  92. {
  93. name: 'ajax',
  94. text: __('删除'),
  95. title: __('删除'),
  96. classname: 'btn btn-xs btn-danger btn-magic btn-ajax',
  97. icon: '',
  98. url: '/admin/send/message/materiallibrary/do_status',
  99. confirm: '确认删除该条素材吗?',
  100. success: function (data, ret) {
  101. table.bootstrapTable('refresh');
  102. }
  103. },
  104. ],
  105. formatter: Table.api.formatter.buttons
  106. }
  107. ]
  108. ]
  109. });
  110. // 为表格绑定事件
  111. Table.api.bindevent(table);
  112. //生效
  113. $('.btn-effective').on('click', function () {
  114. var ids = Table.api.selectedids(table);
  115. Layer.confirm(
  116. '确定要把选中的' + ids.length + '项改为生效吗?',
  117. { icon: 3, title: __('Warning'), offset: 0, shadeClose: true },
  118. function () {
  119. $.ajax({
  120. url: 'send/message/materiallibrary/do_status',
  121. type: "post",
  122. data: {
  123. ids: ids,
  124. material_status: 1
  125. },
  126. success: function () {
  127. layer.msg('操作成功');
  128. table.bootstrapTable('refresh');
  129. }
  130. });
  131. }
  132. );
  133. });
  134. //失效
  135. $('.btn-invalid').on('click', function () {
  136. var ids = Table.api.selectedids(table);
  137. Layer.confirm(
  138. '确定要把选中的' + ids.length + '项改为失效吗?',
  139. { icon: 3, title: __('Warning'), offset: 0, shadeClose: true },
  140. function () {
  141. $.ajax({
  142. url: 'send/message/materiallibrary/do_status',
  143. type: "post",
  144. data: {
  145. ids: ids,
  146. material_status: 2
  147. },
  148. success: function () {
  149. layer.msg('操作成功');
  150. table.bootstrapTable('refresh');
  151. }
  152. });
  153. }
  154. );
  155. });
  156. //批量删除
  157. $('.btn-batch-del').on('click', function () {
  158. var ids = Table.api.selectedids(table);
  159. Layer.confirm(
  160. '确定要删除选中的' + ids.length + '项吗?',
  161. { icon: 3, title: __('Warning'), offset: 0, shadeClose: true },
  162. function () {
  163. $.ajax({
  164. url: 'send/message/materiallibrary/do_status',
  165. type: "post",
  166. data: {
  167. ids: ids,
  168. message_status: 3
  169. },
  170. success: function () {
  171. layer.msg('操作成功');
  172. table.bootstrapTable('refresh');
  173. }
  174. });
  175. }
  176. );
  177. });
  178. },
  179. add: function () {
  180. window.msgData = {
  181. type: "",
  182. data: []
  183. }
  184. // 消息类型切换
  185. window.lastMsgTypeValue = '0';
  186. $('#c-message_type').on('click', '[type=radio]', function (e) {
  187. if (window.lastMsgTypeValue == e.target.value) return;
  188. window.msgEditData = undefined;
  189. window.msgIsEditing = false;
  190. window.msgEditIndex = -1;
  191. window.msgData = { type: '', data: [] };
  192. $(window.document).find('#message_type_add_btn').show();
  193. window.lastMsgTypeValue = e.target.value;
  194. window.imgtext_chapter_id = "";
  195. window.imgtext_activity_id_edit = "";
  196. window.imgtext_book_id = "";
  197. $('.message_type_content_contianer').empty();
  198. $('.toggleContainer').empty();
  199. window.toggleData = undefined;
  200. });
  201. // 添加消息按钮呼出弹窗
  202. $('#message_type_add_btn').on('click', function () {
  203. if(typeof(window.msgData) !=="undefined" && window.msgData.data.length >= 8){
  204. layer.alert("添加不能超出8条!");
  205. return;
  206. }
  207. var url = '';
  208. var title = '';
  209. var val = 1;
  210. var radios = $('#c-message_type [type=radio]');
  211. radios.each(function (index, ele) {
  212. if (ele.checked == true) {
  213. val = ele.value;
  214. }
  215. });
  216. switch (val) {
  217. case '1':
  218. url = '/admin/send/message/text/add';
  219. title = '文本消息';
  220. break;
  221. case '2':
  222. url = '/admin/send/message/imgtext/add';
  223. title = '图文消息';
  224. break;
  225. case '3':
  226. url = '/admin/send/message/img/add';
  227. title = '图片消息';
  228. break;
  229. default:
  230. url = '/admin/send/message/text/add';
  231. title = '文本消息';
  232. break;
  233. };
  234. window.msgEditData = undefined;
  235. window.msgIsEditing = false;
  236. window.msgEditIndex = -1;
  237. Fast.api.open(url, title, {
  238. callback: function (data) {
  239. //$this.find('img').attr('src',data.image);
  240. }
  241. });
  242. return false;
  243. });
  244. // 消息删除功能
  245. $('.message_type_content_contianer').on('click', '.preview_del', function (e) {
  246. var debtn = $(e.target);
  247. var delIndex = debtn.data('index');
  248. window.msgData.data.splice(delIndex, 1);
  249. var newHtml = "";
  250. if (window.msgData.type == "imgtext") {
  251. $(window.msgData.data).each(function (index, item) {
  252. if (index == 0) {
  253. newHtml += '<div class="msg_preview h180" data-index="' + index + '">' +
  254. ' <img class="preview_img_imgtext" src="' + item.cover + '" alt="" >' +
  255. '<div class="preview_handler" style="background: rgba(0,0,0,.3);">' +
  256. '<h3 class="preview_imgtext_title" >' + item.title + '</h3>' +
  257. '<a href="javascript:;" class="preview_del" data-index="' + index + '">删除</a>' +
  258. '<a href="javascript:;" class="preview_edit" data-index="' + index + '">编辑</a>' +
  259. '</div>' +
  260. '</div>';
  261. } else {
  262. newHtml += '<div class="msg_preview h180" data-index="' + index + '">' +
  263. '<img class="msg_preview_img2" src="' + item.cover + '" alt="" style="float: right;">' +
  264. '<h3 class="msg_preview_title2" >' + item.title + '</h3>' +
  265. '<div class="preview_handler" >' +
  266. '<a href="javascript:;" class="preview_del" data-index="' + index + '">删除</a>' +
  267. '<a href="javascript:;" class="preview_edit" data-index="' + index + '">编辑</a>' +
  268. '</div>' +
  269. '</div>';
  270. }
  271. });
  272. } else if (window.msgData.type == 'text') {
  273. $(window.msgData.data).each(function (index, item) {
  274. newHtml += '' +
  275. '<div class="msg_preview_text" data-index="' + index + '">' +
  276. '<div class="preview_handler" >' +
  277. '<p class="msg_preview_title3">' + item.content + '</p>' +
  278. '<a href="javascript:;" class="preview_del" data-index="' + index + '">删除</a>' +
  279. '<a href="javascript:;" class="preview_edit" data-index="' + index + '">编辑</a>' +
  280. '</div>' +
  281. '</div>';
  282. });
  283. } else if (window.msgData.type == 'img') {
  284. $(window.msgData.data).each(function (index, item) {
  285. newHtml += '' +
  286. '<div class="msg_preview" data-index="' + index + '">' +
  287. '<img class="msg_preview_img3" src="' + item.img_path + '" alt="" >' +
  288. '<div class="preview_handler" >' +
  289. '<a href="javascript:;" class="preview_del" data-index="' + index + '">删除</a>' +
  290. '<a href="javascript:;" class="preview_edit" data-index="' + index + '">编辑</a>' +
  291. '</div>' +
  292. '</div>';
  293. });
  294. };
  295. $('.message_type_content_contianer').html(newHtml);
  296. $("#message_content").val(JSON.stringify(window.msgData.data));
  297. if(window.msgData.type == 'img' && window.msgData.data.length > 0){
  298. $(window.document).find('#message_type_add_btn').hide();
  299. }else{
  300. if(window.msgData.data.length < 8){
  301. $(window.document).find('#message_type_add_btn').show();
  302. }else{
  303. $(window.document).find('#message_type_add_btn').hide();
  304. }
  305. }
  306. });
  307. // 消息编辑功能
  308. $('.message_type_content_contianer').on('click', '.preview_edit', function (e) {
  309. var url = '';
  310. var title = '';
  311. var val = 1;
  312. var radios = $('#c-message_type [type=radio]');
  313. radios.each(function (index, ele) {
  314. if (ele.checked == true) {
  315. val = ele.value;
  316. }
  317. });
  318. switch (val) {
  319. case '1':
  320. url = '/admin/send/message/text/add';
  321. title = '文本消息';
  322. break;
  323. case '2':
  324. url = '/admin/send/message/imgtext/add';
  325. title = '图文消息';
  326. break;
  327. case '3':
  328. url = '/admin/send/message/img/add';
  329. title = '图片消息';
  330. break;
  331. default:
  332. url = '/admin/send/message/text/add';
  333. title = '文本消息';
  334. break;
  335. };
  336. var editBtn = $(e.target);
  337. var editIndex = editBtn.data('index');
  338. var editData = window.msgData.data[editIndex];
  339. window.msgEditData = editData;
  340. window.msgIsEditing = true;
  341. window.msgEditIndex = editIndex;
  342. // 呼出 子页
  343. Fast.api.open(url, title, {
  344. callback: function (data) {
  345. //$this.find('img').attr('src',data.image);
  346. }
  347. });
  348. return false;
  349. });
  350. // 添加测试公众号
  351. $('.btn-add-test-subscription-list').on('click',function(){
  352. Fast.api.open(
  353. '/admin/send/message/subscriptionlist/test_user?not_in_ids='+$('#test_channel_id').val(),
  354. '添加测试公众号'
  355. );
  356. });
  357. // 测试用户
  358. $('.btn-test_user').on('click',function(){
  359. if($('.message_type_1').is(':checked')) {
  360. var itemsHtml = '';
  361. if(typeof(window.msgData) !=="undefined") {
  362. window.msgData.data.forEach(function (item, number) {
  363. if (item.hasOwnProperty('url')) {
  364. itemsHtml += '';
  365. itemsHtml += '<a href="' + item.url + '">';
  366. itemsHtml += item.content;
  367. itemsHtml += "</a>";
  368. } else {
  369. itemsHtml += item.content;
  370. }
  371. });
  372. if (itemsHtml.length > 290) {
  373. Layer.msg('文本最大字符不得超过290个字符');
  374. return false;
  375. }
  376. }
  377. }
  378. if($('#test_channel_id').length>0){
  379. if($('#test_channel_id').val()==''){
  380. Layer.msg('渠道ID不能为空');
  381. return;
  382. }
  383. }
  384. if($('#c-test_message').length<=0){
  385. Layer.msg('测试用户ID不能为空');
  386. return;
  387. }
  388. if(!$('.message_type_1').is(':checked') && !$('.message_type_2').is(':checked') && !$('.message_type_3').is(':checked')){
  389. Layer.msg('消息类型不能为空');
  390. return;
  391. }
  392. var message_type = 0;
  393. if($('.message_type_1').is(':checked')){
  394. message_type = 1;
  395. }else if($('.message_type_2').is(':checked')){
  396. message_type = 2;
  397. }else if($('.message_type_3').is(':checked')){
  398. message_type = 3;
  399. }
  400. if(typeof(window.msgData) == "undefined"){
  401. Layer.msg('消息内容不能为空');
  402. return;
  403. }
  404. if($('#test_channel_id').length>0){
  405. var datas = {
  406. message_type:message_type,
  407. user_id:$('#c-test_message').val(),
  408. message_content : window.msgData.data,
  409. channel_id:$('#test_channel_id').val(),
  410. }
  411. }else{
  412. var datas = {
  413. message_type:message_type,
  414. user_id:$('#c-test_message').val(),
  415. message_content : window.msgData.data,
  416. }
  417. }
  418. Layer.confirm(
  419. '确定要给该用户发送测试消息吗?',
  420. {icon: 3, title: __('Warning'), offset: 0, shadeClose: true},
  421. function () {
  422. layer.closeAll('dialog');
  423. $.ajax({
  424. url:'send/message/message/testmessagetouser',
  425. type:"post",
  426. data: datas,
  427. success:function(data){
  428. if(data.code == 1){
  429. layer.msg('发送完成');
  430. return false;
  431. }else{
  432. layer.msg(data.msg);
  433. return false;
  434. }
  435. }
  436. });
  437. }
  438. );
  439. });
  440. // 测试公众号删除
  441. $('#gzh_table1').on('click', '.gzh_del_btn1' , function(e){
  442. $('#test_channel_id').val("");
  443. $(e.target).parent().parent().remove();
  444. });
  445. // 提交
  446. $("#mater_submit").click(function(){
  447. if(typeof(window.msgData) == 'undefined' ||window.msgData.data.length===0){
  448. Layer.msg('消息内容不能为空');
  449. return false;
  450. }
  451. switch (window.lastMsgTypeValue) {
  452. case '1':
  453. window.toggleData.forEach(function(item , index){
  454. if(item.type == 'text')window.msgData = item;
  455. })
  456. break;
  457. case '2':
  458. window.toggleData.forEach(function(item , index){
  459. if(item.type == 'imgtext')window.msgData = item;
  460. })
  461. break;
  462. case '3':
  463. window.toggleData.forEach(function(item , index){
  464. if(item.type == 'img')window.msgData = item;
  465. })
  466. break;
  467. }
  468. if($('.message_type_1').is(':checked')) {
  469. var itemsHtml = '';
  470. if(typeof(window.msgData) !=="undefined") {
  471. window.msgData.data.forEach(function (item, number) {
  472. if (item.hasOwnProperty('url')) {
  473. itemsHtml += '';
  474. itemsHtml += '<a href="' + item.url + '">';
  475. itemsHtml += item.content;
  476. itemsHtml += "</a>";
  477. } else {
  478. itemsHtml += item.content;
  479. }
  480. });
  481. if (itemsHtml.length > 290) {
  482. Layer.msg('文本最大字符不得超过290个字符');
  483. return false;
  484. }
  485. }
  486. }
  487. $("#message_content").val(JSON.stringify(window.msgData.data))
  488. })
  489. Controller.api.bindevent();
  490. },
  491. edit: function () {
  492. //初始化
  493. $(function () {
  494. // 消息数据 3中类型添加
  495. window.msgData = { type: '', data: [] };
  496. window.toggleData = [];
  497. var msgTypeValue = $('#c-message_type').find(".msg_hidden_type").val();
  498. var tempArr = $('#c-message_type').find(".msg_hidden_data").val();
  499. window.lastMsgTypeValue = msgTypeValue;
  500. if (msgTypeValue == '2') {
  501. window.msgData.type = "imgtext";
  502. window.toggleData = [
  503. { type: "text", data: [] },
  504. window.msgData,
  505. { type: "img", data: [] },
  506. ];
  507. } else if (msgTypeValue == '3') {
  508. window.msgData.type = "img";
  509. window.toggleData = [
  510. { type: "text", data: [] },
  511. { type: "imgtext", data: [] },
  512. window.msgData,
  513. ]
  514. if( tempArr && (JSON.parse(tempArr)).length != 0 ){
  515. $('.message_type_add_btn_contianer').hide();
  516. }
  517. } else {
  518. window.msgData.type = "text";
  519. window.toggleData = [
  520. window.msgData,
  521. { type: "img", data: [] },
  522. { type: "imgtext", data: [] },
  523. ]
  524. };
  525. window.msgData.data = JSON.parse($('#c-message_type').find(".msg_hidden_data").val());
  526. // 添加按钮显示隐藏
  527. $('#material_content_arr_length').val() < 8 ? $('#message_type_add_btn').show() : $('#message_type_add_btn').hide();
  528. });
  529. // 消息类型切换
  530. $('#c-message_type').on('click', '[type=radio]', function (e) {
  531. if (window.lastMsgTypeValue == e.target.value) return;
  532. $('.message_type_add_btn_contianer').show();
  533. window.msgEditData = undefined;
  534. window.msgIsEditing = false;
  535. window.msgEditIndex = -1;
  536. window.lastMsgTypeValue = e.target.value;
  537. window.imgtext_chapter_id = "";
  538. window.imgtext_activity_id_edit = "";
  539. window.imgtext_book_id = "";
  540. $(".toggleContainer").hide();
  541. $('.message_type_content_contianer').empty();
  542. // $('.message_type_content_contianer').empty();
  543. switch (window.lastMsgTypeValue) {
  544. case "1":
  545. $(".text_container").show();
  546. window.toggleData.forEach(function (item, index) {
  547. if (item.type == 'text') window.msgData = item;
  548. })
  549. break;
  550. case "2":
  551. $(".imgtext_container").show();
  552. window.toggleData.forEach(function (item, index) {
  553. if (item.type == 'imgtext') window.msgData = item;
  554. })
  555. break;
  556. case "3":
  557. $(".img_container").show();
  558. window.toggleData.forEach(function (item, index) {
  559. if (item.type == 'img') window.msgData = item;
  560. })
  561. break;
  562. }
  563. if(window.msgData.type == 'img' && window.msgData.data.length > 0){
  564. $(window.document).find('#message_type_add_btn').hide();
  565. }else{
  566. if(window.msgData.data.length < 8){
  567. $(window.document).find('#message_type_add_btn').show();
  568. }else{
  569. $(window.document).find('#message_type_add_btn').hide();
  570. }
  571. }
  572. });
  573. // 添加消息按钮呼出弹窗
  574. $('#message_type_add_btn').on('click', function () {
  575. if(typeof(window.msgData) !=="undefined" && window.msgData.data.length >= 8){
  576. layer.alert("添加不能超出8条!");
  577. return;
  578. }
  579. var url = '';
  580. var title = '';
  581. var val = 1;
  582. var radios = $('#c-message_type [type=radio]');
  583. radios.each(function (index, ele) {
  584. if (ele.checked == true) {
  585. val = ele.value;
  586. }
  587. });
  588. switch (val) {
  589. case '1':
  590. url = '/admin/send/message/text/add';
  591. title = '文本消息';
  592. break;
  593. case '2':
  594. url = '/admin/send/message/imgtext/add';
  595. title = '图文消息';
  596. break;
  597. case '3':
  598. url = '/admin/send/message/img/add';
  599. title = '图片消息';
  600. break;
  601. default:
  602. url = '/admin/send/message/text/add';
  603. title = '文本消息';
  604. break;
  605. }
  606. window.msgEditData = undefined;
  607. window.msgIsEditing = false;
  608. window.msgEditIndex = -1;
  609. Fast.api.open(url, title, {
  610. // callback: function (data) {
  611. // $this.find('img').attr('src',data.image);
  612. // }
  613. });
  614. return false;
  615. });
  616. // 消息删除
  617. $('.message_type_content_contianer').on('click', '.preview_del', function (e) {
  618. switch (window.lastMsgTypeValue) {
  619. case '1':
  620. window.toggleData.forEach(function(item , index){
  621. if(item.type == 'text')window.msgData = item;
  622. })
  623. break;
  624. case '2':
  625. window.toggleData.forEach(function(item , index){
  626. if(item.type == 'imgtext')window.msgData = item;
  627. })
  628. break;
  629. case '3':
  630. window.toggleData.forEach(function(item , index){
  631. if(item.type == 'img')window.msgData = item;
  632. })
  633. break;
  634. }
  635. var debtn = $(e.target);
  636. var delIndex = debtn.data('index');
  637. window.msgData.data.splice(delIndex, 1);
  638. var newHtml = "";
  639. if (window.msgData.type == "imgtext") {
  640. $(window.msgData.data).each(function (index, item) {
  641. if (index == 0) {
  642. newHtml += '<div class="msg_preview h180" data-index="' + index + '">' +
  643. ' <img class="preview_img_imgtext" src="' + item.cover + '" alt="" >' +
  644. '<div class="preview_handler" style="background: rgba(0,0,0,.3);">' +
  645. '<h3 class="preview_imgtext_title" >' + item.title + '</h3>' +
  646. '<a href="javascript:;" class="preview_del" data-index="' + index + '">删除</a>' +
  647. '<a href="javascript:;" class="preview_edit" data-index="' + index + '">编辑</a>' +
  648. '</div>' +
  649. '</div>';
  650. } else {
  651. newHtml += '<div class="msg_preview h180" data-index="' + index + '">' +
  652. '<img class="msg_preview_img2" src="' + item.cover + '" alt="" style="float: right;">' +
  653. '<h3 class="msg_preview_title2" >' + item.title + '</h3>' +
  654. '<div class="preview_handler" >' +
  655. '<a href="javascript:;" class="preview_del" data-index="' + index + '">删除</a>' +
  656. '<a href="javascript:;" class="preview_edit" data-index="' + index + '">编辑</a>' +
  657. '</div>' +
  658. '</div>';
  659. }
  660. });
  661. $('.message_type_content_contianer .imgtext_container').html(newHtml);
  662. } else if (window.msgData.type == 'text') {
  663. $(window.msgData.data).each(function (index, item) {
  664. newHtml += '' +
  665. '<div class="msg_preview_text" data-index="' + index + '">' +
  666. '<div class="preview_handler" >' +
  667. '<p class="msg_preview_title3">' + item.content + '</p>' +
  668. '<a href="javascript:;" class="preview_del" data-index="' + index + '">删除</a>' +
  669. '<a href="javascript:;" class="preview_edit" data-index="' + index + '">编辑</a>' +
  670. '</div>' +
  671. '</div>';
  672. });
  673. $('.message_type_content_contianer .text_container').html(newHtml);
  674. } else if (window.msgData.type == 'img') {
  675. $(window.msgData.data).each(function (index, item) {
  676. newHtml += '' +
  677. '<div class="msg_preview" data-index="' + index + '">' +
  678. '<img class="msg_preview_img3" src="' + item.img_path + '" alt="" >' +
  679. '<div class="preview_handler" >' +
  680. '<a href="javascript:;" class="preview_del" data-index="' + index + '">删除</a>' +
  681. '<a href="javascript:;" class="preview_edit" data-index="' + index + '">编辑</a>' +
  682. '</div>' +
  683. '</div>';
  684. });
  685. $('.message_type_content_contianer .img_container').html(newHtml);
  686. };
  687. // if(window.msgData.data.length < 8){
  688. // $(window.document).find('#message_type_add_btn').show();
  689. // }
  690. if(window.msgData.type == 'img' && window.msgData.data.length > 0){
  691. $(window.document).find('#message_type_add_btn').hide();
  692. }else{
  693. if(window.msgData.data.length < 8){
  694. $(window.document).find('#message_type_add_btn').show();
  695. }else{
  696. $(window.document).find('#message_type_add_btn').hide();
  697. }
  698. }
  699. });
  700. // 消息编辑功能
  701. $('.message_type_content_contianer').on('click', '.preview_edit', function (e) {
  702. var url = '';
  703. var title = '';
  704. var val = 1;
  705. var radios = $('#c-message_type [type=radio]');
  706. radios.each(function (index, ele) {
  707. if (ele.checked == true) {
  708. val = ele.value;
  709. }
  710. });
  711. switch (val) {
  712. case '1':
  713. url = '/admin/send/message/text/add';
  714. title = '文本消息';
  715. break;
  716. case '2':
  717. url = '/admin/send/message/imgtext/add';
  718. title = '图文消息';
  719. break;
  720. case '3':
  721. url = '/admin/send/message/img/add';
  722. title = '图片消息';
  723. break;
  724. default:
  725. url = '/admin/send/message/text/add';
  726. title = '文本消息';
  727. break;
  728. };
  729. switch (window.lastMsgTypeValue) {
  730. case '1':
  731. window.toggleData.forEach(function(item , index){
  732. if(item.type == 'text')window.msgData = item;
  733. })
  734. break;
  735. case '2':
  736. window.toggleData.forEach(function(item , index){
  737. if(item.type == 'imgtext')window.msgData = item;
  738. })
  739. break;
  740. case '3':
  741. window.toggleData.forEach(function(item , index){
  742. if(item.type == 'img')window.msgData = item;
  743. })
  744. break;
  745. }
  746. var editBtn = $(e.target);
  747. var editIndex = editBtn.data('index');
  748. var editData = window.msgData.data[editIndex];
  749. window.msgEditData = editData;
  750. window.msgIsEditing = true;
  751. window.msgEditIndex = editIndex;
  752. // 呼出 子页
  753. Fast.api.open(url, title, {
  754. callback: function (data) {
  755. // $this.find('img').attr('src', data.image);
  756. }
  757. });
  758. return false;
  759. });
  760. // 添加测试公众号
  761. $('.btn-add-test-subscription-list').on('click',function(){
  762. Fast.api.open(
  763. '/admin/send/message/subscriptionlist/test_user?not_in_ids='+$('#test_channel_id').val(),
  764. '添加测试公众号'
  765. );
  766. });
  767. // 测试用户
  768. $('.btn-test_user').on('click',function(){
  769. if($('.message_type_1').is(':checked')) {
  770. var itemsHtml = '';
  771. if(typeof(window.msgData) !=="undefined") {
  772. window.msgData.data.forEach(function (item, number) {
  773. if (item.hasOwnProperty('url')) {
  774. itemsHtml += '';
  775. itemsHtml += '<a href="' + item.url + '">';
  776. itemsHtml += item.content;
  777. itemsHtml += "</a>";
  778. } else {
  779. itemsHtml += item.content;
  780. }
  781. });
  782. if (itemsHtml.length > 290) {
  783. Layer.msg('文本最大字符不得超过290个字符');
  784. return false;
  785. }
  786. }
  787. }
  788. if($('#test_channel_id').length>0){
  789. if($('#test_channel_id').val()==''){
  790. Layer.msg('渠道ID不能为空');
  791. return;
  792. }
  793. }
  794. if($('#c-test_message').length<=0){
  795. Layer.msg('测试用户ID不能为空');
  796. return;
  797. }
  798. if(!$('.message_type_1').is(':checked') && !$('.message_type_2').is(':checked') && !$('.message_type_3').is(':checked')){
  799. Layer.msg('消息类型不能为空');
  800. return;
  801. }
  802. var message_type = 0;
  803. if($('.message_type_1').is(':checked')){
  804. message_type = 1;
  805. }else if($('.message_type_2').is(':checked')){
  806. message_type = 2;
  807. }else if($('.message_type_3').is(':checked')){
  808. message_type = 3;
  809. }
  810. if(typeof(window.msgData) == "undefined"){
  811. Layer.msg('消息内容不能为空');
  812. return;
  813. }
  814. if($('#test_channel_id').length>0){
  815. var datas = {
  816. message_type:message_type,
  817. user_id:$('#c-test_message').val(),
  818. message_content : window.msgData.data,
  819. channel_id:$('#test_channel_id').val(),
  820. }
  821. }else{
  822. var datas = {
  823. message_type:message_type,
  824. user_id:$('#c-test_message').val(),
  825. message_content : window.msgData.data,
  826. }
  827. }
  828. Layer.confirm(
  829. '确定要给该用户发送测试消息吗?',
  830. {icon: 3, title: __('Warning'), offset: 0, shadeClose: true},
  831. function () {
  832. layer.closeAll('dialog');
  833. $.ajax({
  834. url:'send/message/message/testmessagetouser',
  835. type:"post",
  836. data: datas,
  837. success:function(data){
  838. if(data.code == 1){
  839. layer.msg('发送完成');
  840. return false;
  841. }else{
  842. layer.msg(data.msg);
  843. return false;
  844. }
  845. }
  846. });
  847. }
  848. );
  849. });
  850. // 测试公众号删除
  851. $('#gzh_table1').on('click', '.gzh_del_btn1' , function(e){
  852. $('#test_channel_id').val("");
  853. $(e.target).parent().parent().remove();
  854. });
  855. // 提交
  856. $("#mater_submit").click(function(){
  857. if(typeof(window.msgData) == 'undefined' ||window.msgData.data.length===0){
  858. Layer.msg('消息内容不能为空');
  859. return false;
  860. }
  861. switch (window.lastMsgTypeValue) {
  862. case '1':
  863. window.toggleData.forEach(function(item , index){
  864. if(item.type == 'text')window.msgData = item;
  865. })
  866. break;
  867. case '2':
  868. window.toggleData.forEach(function(item , index){
  869. if(item.type == 'imgtext')window.msgData = item;
  870. })
  871. break;
  872. case '3':
  873. window.toggleData.forEach(function(item , index){
  874. if(item.type == 'img')window.msgData = item;
  875. })
  876. break;
  877. }
  878. if($('.message_type_1').is(':checked')) {
  879. var itemsHtml = '';
  880. if(typeof(window.msgData) !=="undefined") {
  881. window.msgData.data.forEach(function (item, number) {
  882. if (item.hasOwnProperty('url')) {
  883. itemsHtml += '';
  884. itemsHtml += '<a href="' + item.url + '">';
  885. itemsHtml += item.content;
  886. itemsHtml += "</a>";
  887. } else {
  888. itemsHtml += item.content;
  889. }
  890. });
  891. if (itemsHtml.length > 290) {
  892. Layer.msg('文本最大字符不得超过290个字符');
  893. return false;
  894. }
  895. }
  896. }
  897. $("#message_content").val(JSON.stringify(window.msgData.data))
  898. })
  899. Controller.api.bindevent();
  900. },
  901. message_preview: function () {
  902. Controller.api.bindevent();
  903. },
  904. api: {
  905. bindevent: function () {
  906. Form.api.bindevent($("form[role=form]"));
  907. }
  908. }
  909. };
  910. return Controller;
  911. });