subscriptionlist.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  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/subscriptionlist/index?not_in_ids='+Config.not_in_ids,
  8. table: 'admin_config',
  9. }
  10. });
  11. var table = $("#table");
  12. // 初始化表格
  13. table.bootstrapTable({
  14. url: $.fn.bootstrapTable.defaults.extend.index_url,
  15. pk: 'admin_id',
  16. sortName: 'admin_id',
  17. columns: [
  18. [
  19. {
  20. checkbox: true,
  21. formatter: function(i , row){
  22. if(window.gzhArr.indexOf(row.admin_id) != -1){
  23. return {checked : true};
  24. }
  25. }
  26. },
  27. {field: 'sub_nickname', title: __('公众号名称')},
  28. {field: 'admin_id', title: __('账号ID'),operate:false},
  29. {field: 'username', title: __('用户名称')},
  30. {field: 'nickname', title: __('用户昵称')},
  31. ]
  32. ],
  33. onCheckAll:function(rows){
  34. $(rows).each(function(index, row){
  35. if(window.gzhArr.indexOf(row.admin_id) == -1){
  36. window.gzhArr.push(row.admin_id);
  37. window.htmlArr.push({
  38. admin_id:row.admin_id,
  39. sub_nickname:row.sub_nickname,
  40. username:row.username,
  41. nickname:row.nickname
  42. });
  43. } ;
  44. });
  45. },
  46. onUncheckAll:function(rows){
  47. $(rows).each(function(index, row){
  48. var tdIndex = window.gzhArr.indexOf(row.admin_id);
  49. if( tdIndex != -1){
  50. window.gzhArr.splice(tdIndex , 1);
  51. window.htmlArr.splice( tdIndex , 1);
  52. } ;
  53. });
  54. },
  55. onCheck:function(row){
  56. var idIndex = window.gzhArr.indexOf(row.admin_id);
  57. if(idIndex == -1){
  58. window.gzhArr.push(row.admin_id);
  59. window.htmlArr.push({
  60. admin_id:row.admin_id,
  61. sub_nickname:row.sub_nickname,
  62. username:row.username,
  63. nickname:row.nickname
  64. });
  65. };
  66. },
  67. onUncheck:function(row){
  68. var idIndex = window.gzhArr.indexOf(row.admin_id);
  69. if(idIndex != -1){
  70. window.gzhArr.splice( idIndex , 1);
  71. window.htmlArr.splice( idIndex , 1);
  72. };
  73. },
  74. });
  75. // 给父层的id数组
  76. $(function(){
  77. window.gzhArr = [];
  78. window.htmlArr = [];
  79. if(!window.parent.gzhIdArr){
  80. window.parent.gzhIdArr = [];
  81. }
  82. window.PIdArr = window.parent.gzhIdArr;
  83. if(!window.parent.gzhHtmlArr){
  84. window.parent.gzhHtmlArr = [];
  85. }
  86. window.PhtmlArr = window.parent.gzhHtmlArr;
  87. });
  88. // 添加时将数组转字符串, 设置给hidden input的value
  89. $('.btn-add-subscription-list').click(function(){
  90. //id整理
  91. if(PIdArr.length > 0 ){
  92. $(window.gzhArr).each(function(index, item){
  93. if(PIdArr.indexOf(item) == -1){
  94. PIdArr.push(item);
  95. };
  96. });
  97. }else{
  98. PIdArr = window.gzhArr;
  99. };
  100. $(window.parent.document).find('#subscription_ids').val(PIdArr.join(','));
  101. window.parent.gzhIdArr = PIdArr;
  102. // 所有数据整理
  103. if(PhtmlArr.length == 0){
  104. PhtmlArr = window.htmlArr;
  105. }else{
  106. $(window.htmlArr).each(function (index , item) {
  107. var flag = true;
  108. $(PhtmlArr).each(function (idx , itemInner) {
  109. if(itemInner.admin_id == item.admin_id){
  110. flag = false;
  111. }
  112. });
  113. if(flag){
  114. PhtmlArr.push(item);
  115. }
  116. });
  117. };
  118. window.parent.gzhHtmlArr = PhtmlArr;
  119. var gzhParentHtml = "";
  120. $(window.parent.gzhHtmlArr).each(function (index, item) {
  121. var tempHtml = '' +
  122. '<tr data-index="0"> ' +
  123. '<td style="text-align: center; vertical-align: middle; ">' +
  124. item.sub_nickname +
  125. '</td> ' +
  126. '<td style="text-align: center; vertical-align: middle; ">' +
  127. item.admin_id +
  128. '</td> ' +
  129. '<td style="text-align: center; vertical-align: middle; ">' +
  130. item.username +
  131. '</td> ' +
  132. '<td style="text-align: center; vertical-align: middle; ">' +
  133. item.nickname +
  134. '</td> ' +
  135. '<td style="text-align: center; vertical-align: middle; ">' +
  136. '<a class="gzh_del_btn" href="javascript:;" data-index='+index+' data-id='+item.admin_id+'>删除</a>' +
  137. '</td> ' +
  138. '</tr>';
  139. gzhParentHtml += tempHtml;
  140. });
  141. $(window.parent.document).find('#gzh_table tbody').html(gzhParentHtml);
  142. Fast.api.close('');
  143. });
  144. // 为表格绑定事件
  145. Table.api.bindevent(table);
  146. },
  147. subscriptions_list: function () {
  148. // 初始化表格参数配置
  149. Table.api.init({
  150. extend: {
  151. index_url: 'send/message/subscriptionlist/subscriptions_list?in_ids='+Config.in_ids,
  152. table: 'admin_config',
  153. }
  154. });
  155. var table = $("#table");
  156. // 初始化表格
  157. table.bootstrapTable({
  158. url: $.fn.bootstrapTable.defaults.extend.index_url,
  159. pk: 'admin_id',
  160. sortName: 'admin_id',
  161. columns: [
  162. [
  163. {field: 'sub_nickname', title: __('公众号名称')},
  164. {field: 'admin_id', title: __('账号ID'),operate:false},
  165. {field: 'username', title: __('用户名称')},
  166. {field: 'nickname', title: __('用户昵称')},
  167. ]
  168. ],
  169. });
  170. // 为表格绑定事件
  171. Table.api.bindevent(table);
  172. },
  173. test_user: function () {
  174. // 初始化表格参数配置
  175. Table.api.init({
  176. extend: {
  177. test_user_url: 'send/message/subscriptionlist/test_user?not_in_ids='+Config.not_in_ids,
  178. table: 'admin_config',
  179. }
  180. });
  181. var table = $("#table");
  182. // 初始化表格
  183. table.bootstrapTable({
  184. url: $.fn.bootstrapTable.defaults.extend.test_user_url,
  185. pk: 'admin_id',
  186. sortName: 'admin_id',
  187. columns: [
  188. [
  189. {
  190. checkbox: true
  191. },
  192. {field: 'sub_nickname', title: __('公众号名称')},
  193. {field: 'admin_id', title: __('账号ID'),operate:false},
  194. {field: 'username', title: __('用户名称')},
  195. {field: 'nickname', title: __('用户昵称')},
  196. ]
  197. ],
  198. onCheckAll:function(rows){
  199. $(rows).each(function(index, row){
  200. if(window.gzhArr.indexOf(row.admin_id) == -1){
  201. window.gzhArr.push(row.admin_id);
  202. window.htmlArr.push({
  203. admin_id:row.admin_id,
  204. sub_nickname:row.sub_nickname,
  205. username:row.username,
  206. nickname:row.nickname
  207. });
  208. } ;
  209. });
  210. },
  211. onUncheckAll:function(rows){
  212. $(rows).each(function(index, row){
  213. var tdIndex = window.gzhArr.indexOf(row.admin_id);
  214. if( tdIndex != -1){
  215. window.gzhArr.splice(tdIndex , 1);
  216. window.htmlArr.splice( tdIndex , 1);
  217. } ;
  218. });
  219. },
  220. onCheck:function(row){
  221. window.admin_id = row.admin_id;
  222. window.htmlArr = {
  223. admin_id:row.admin_id,
  224. sub_nickname:row.sub_nickname,
  225. username:row.username,
  226. nickname:row.nickname
  227. };
  228. },
  229. onUncheck:function(row){
  230. },
  231. });
  232. // 给父层的id数组
  233. $(function(){
  234. window.admin_id = "";
  235. window.htmlArr = {};
  236. window.parent.testGzhId = window.parent.testGzhId ? window.parent.testGzhId : "";
  237. window.parent.testGzhObj = window.parent.testGzhObj ? window.parent.testGzhObj : {};
  238. });
  239. // 添加时将数组转字符串, 设置给hidden input的value
  240. $('.btn-add-test-subscription-list').click(function(){
  241. //id整理
  242. window.parent.testGzhId = admin_id;
  243. window.parent.testGzhObj = htmlArr;
  244. var gzhParentHtml = ""+
  245. '<tr data-index="0"> ' +
  246. '<td style="text-align: center; vertical-align: middle; ">' +
  247. htmlArr.sub_nickname +
  248. '</td> ' +
  249. '<td style="text-align: center; vertical-align: middle; ">' +
  250. htmlArr.admin_id +
  251. '</td> ' +
  252. '<td style="text-align: center; vertical-align: middle; ">' +
  253. htmlArr.username +
  254. '</td> ' +
  255. '<td style="text-align: center; vertical-align: middle; ">' +
  256. htmlArr.nickname +
  257. '</td> ' +
  258. '<td style="text-align: center; vertical-align: middle; ">' +
  259. '<a class="gzh_del_btn1" href="javascript:;" >删除</a>' +
  260. '</td> ' +
  261. '</tr>';
  262. $(window.parent.document).find('#gzh_table1 tbody').html(gzhParentHtml);
  263. $(window.parent.document).find('#test_channel_id').val(admin_id);
  264. Fast.api.close('');
  265. });
  266. // 为表格绑定事件
  267. Table.api.bindevent(table);
  268. },
  269. add: function () {
  270. Controller.api.bindevent();
  271. },
  272. edit: function () {
  273. Controller.api.bindevent();
  274. },
  275. api: {
  276. bindevent: function () {
  277. Form.api.bindevent($("form[role=form]"));
  278. }
  279. }
  280. };
  281. return Controller;
  282. });