exclusive.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618
  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: 'exclusive/index',
  8. add_url: 'exclusive/add',
  9. edit_url: 'exclusive/edit',
  10. del_url: 'exclusive/del',
  11. multi_url: 'exclusive/multi',
  12. table: 'exclusive',
  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. search: false,
  22. columns: [
  23. [
  24. {checkbox: true},
  25. {field: 'id', title: __('Id'), operate:false},
  26. {field: 'name', title: __('Name'), operate:false},
  27. {field: 'channel_nickname', title: __('渠道昵称'),visible:false},
  28. {field: 'channel_id', title: __('渠道ID'),visible:false},
  29. {field: 'operate', title: __('关联渠道'), table: table, events: Table.api.events.operate, formatter: function(value, row){
  30. var content = '';
  31. content += '<a href="javascript:;" data-id="'+row.id+'" class="btn btn-xs btn-success bind-channels" title="" data-table-id="table">关联渠道</a> ';
  32. content += '<a href="javascript:;" data-id="'+row.id+'" class="btn btn-xs btn-success show-channels" title="" data-table-id="table">查看渠道</a> ';
  33. return content;
  34. }
  35. },
  36. {field: 'operate', title: __('关联书籍'), table: table, events: Table.api.events.operate, formatter: function(value, row){
  37. var content = '';
  38. content += '<a href="javascript:;" data-id="'+row.id+'" class="btn btn-xs btn-success bind-books" title="" data-table-id="table">关联书籍</a> ';
  39. content += '<a href="javascript:;" data-id="'+row.id+'" class="btn btn-xs btn-success show-books" title="" data-table-id="table">查看书籍</a> ';
  40. return content;
  41. }
  42. },
  43. {field: 'endtime', title: __('Endtime'), operate:false, addclass:'datetimerange', formatter: Table.api.formatter.datetime},
  44. {field: 'createtime', title: __('创建时间'), operate:false, addclass:'datetimerange', formatter: Table.api.formatter.datetime},
  45. {field: 'updatetime', title: __('Updatetime'), operate:false, addclass:'datetimerange', formatter: Table.api.formatter.datetime},
  46. {
  47. field: 'status',
  48. title: __('状态'),
  49. searchList: {"1":__('生效'),"2":__('失效')},
  50. formatter: function (value, row, index) {
  51. var html = '';
  52. if(row.status==1){
  53. html += '<span style="color: green">有效</span>';
  54. }else{
  55. html += '<span style="color: red">失效</span>';
  56. }
  57. return html;
  58. }
  59. },
  60. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: function(value, row){
  61. var content = '';
  62. content += '<a href="javascript:;" data-id="'+row.id+'" class="btn btn-xs btn-success btn-ex-edit" title="" data-table-id="table"><i class="fa fa-pencil"></i></a> ';
  63. content += '<a href="javascript:;" data-id="'+row.id+'" class="btn btn-xs btn-success btn-danger btn-ex-danger" title="" data-table-id="table"><i class="fa fa-trash"></i></a> ';
  64. return content;
  65. }}
  66. ]
  67. ]
  68. });
  69. //关联渠道
  70. $(document).on('click','.bind-channels',function () {
  71. var ids = $(this).data('id');
  72. Fast.api.open(
  73. '/admin/exclusive/bindchannels/ids/'+ids,
  74. '关联渠道'
  75. );
  76. });
  77. //查看渠道
  78. $(document).on('click','.show-channels',function () {
  79. var ids = $(this).data('id');
  80. Fast.api.open(
  81. '/admin/exclusive/showchannels/ids/'+ids,
  82. '查看渠道'
  83. );
  84. });
  85. //关联书籍
  86. $(document).on('click','.bind-books',function () {
  87. var ids = $(this).data('id');
  88. Fast.api.open(
  89. '/admin/exclusive/bindbooks/ids/'+ids,
  90. '关联书籍'
  91. );
  92. });
  93. //查看书籍
  94. $(document).on('click','.show-books',function () {
  95. var ids = $(this).data('id');
  96. Fast.api.open(
  97. '/admin/exclusive/showbooks/ids/'+ids,
  98. '查看书籍'
  99. );
  100. });
  101. //修改
  102. $(document).on('click','.btn-ex-edit',function () {
  103. var ids = $(this).data('id');
  104. Fast.api.open('/admin/exclusive/edit/ids/'+ids,'修改');
  105. });
  106. //删除
  107. $(document).on('click','.btn-ex-danger',function () {
  108. var ids = $(this).data('id');
  109. layer.confirm("确定删除选中的 1 项?", { title: "温馨提示" }, function (index) {
  110. Layer.close(index);
  111. $.post('/admin/exclusive/del',{ids:ids},function(data){
  112. if(data.code==1){
  113. Toastr.success('操作成功!');
  114. table.bootstrapTable('refresh');
  115. }else{
  116. Toastr.error(data.msg);
  117. }
  118. })
  119. });
  120. });
  121. // 为表格绑定事件
  122. Table.api.bindevent(table);
  123. },
  124. add: function () {
  125. Controller.api.bindevent();
  126. },
  127. edit: function () {
  128. Controller.api.bindevent();
  129. },
  130. bindchannels: function (){
  131. // 初始化表格参数配置
  132. Table.api.init({
  133. extend: {
  134. index_url: 'exclusive/bindchannels/ids/'+Config.ids,
  135. }
  136. });
  137. var table = $("#bind-channels-table");
  138. var mtotal = 0;
  139. table.on('load-success.bs.table', function (e, data) {
  140. //这里可以获取从服务端获取的JSON数据
  141. mtotal = data.total;
  142. });
  143. // 初始化表格
  144. table.bootstrapTable({
  145. url: $.fn.bootstrapTable.defaults.extend.index_url,
  146. pk: 'id',
  147. sortName: 'id',
  148. search: false,
  149. pageList: [10, 25, 50, 100, 1000],
  150. columns: [
  151. [
  152. {checkbox: true},
  153. {field: 'id', title: 'ID'},
  154. {field: 'username', title: __('用户名'), operate:'LIKE'},
  155. {field: 'nickname', title: __('昵称'), operate:'LIKE'},
  156. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: function(value, row){
  157. var content = '';
  158. if(Config.bindids.split(',').indexOf(row.id) == -1){
  159. content += '<a href="javascript:;" data-id="'+Config.ids+'" data-row-id="'+row.id+'" class="btn btn-xs btn-success btn-single-edit" title="" data-table-id="table">关联</a> ';
  160. }else{
  161. content += '已关联';
  162. }
  163. return content;
  164. }}
  165. ]
  166. ]
  167. });
  168. //单项关联
  169. $(document).on('click','.btn-single-edit',function () {
  170. var rowid = $(this).data('row-id');
  171. layer.confirm('确认要关联所选的1项吗??', {title: "关联渠道"}, function (index) {
  172. Layer.closeAll();
  173. $.ajax({
  174. url:'/admin/exclusive/batch_bind_channels',
  175. type:"post",
  176. data: {
  177. eid:Config.ids,
  178. ids:{rowid}
  179. },
  180. success:function(datas){
  181. Toastr.success('操作成功!');
  182. setTimeout(function() {
  183. window.location.reload();
  184. },1000);
  185. }
  186. });
  187. });
  188. });
  189. //批量关联
  190. $('.btn-batch-bind').on('click',function () {
  191. var ids = Table.api.selectedids(table);
  192. var post_ids = [];
  193. if (ids.length > 0) {
  194. layer.confirm('确认要关联所选的'+ids.length+'项吗??', {title: "关联渠道"}, function (index) {
  195. Layer.closeAll();
  196. ids.forEach(function (v, k) {
  197. if (Config.bindids.split(',').indexOf(v) == -1) {
  198. post_ids.push(v);
  199. }
  200. });
  201. if (post_ids.length > 0) {
  202. $.ajax({
  203. url: '/admin/exclusive/batch_bind_channels',
  204. type: "post",
  205. data: {
  206. eid: Config.ids,
  207. ids: post_ids
  208. },
  209. success: function (datas) {
  210. Toastr.success('操作成功!');
  211. setTimeout(function () {
  212. window.location.reload();
  213. }, 1000);
  214. }
  215. });
  216. } else {
  217. Toastr.error('选择的项已关联');
  218. }
  219. });
  220. } else {
  221. Toastr.error('请选择要关联的选项');
  222. }
  223. });
  224. //全部关联
  225. $('.btn-all-bind').on('click',function () {
  226. if(mtotal>0){
  227. layer.confirm('确认要关联所有项吗??', {title: "关联渠道"}, function (index) {
  228. Layer.closeAll();
  229. $.ajax({
  230. url:'/admin/exclusive/bind_all_channels',
  231. type:"post",
  232. data: {
  233. ids:Config.ids
  234. },
  235. success:function(datas){
  236. Toastr.success('操作成功!');
  237. setTimeout(function() {
  238. window.location.reload();
  239. },1000);
  240. }
  241. });
  242. });
  243. }else{
  244. Toastr.error('无关联项!');
  245. setTimeout(function() {
  246. window.location.reload();
  247. },1000);
  248. }
  249. });
  250. Controller.api.bindevent();
  251. },
  252. showchannels: function (){
  253. // 初始化表格参数配置
  254. Table.api.init({
  255. extend: {
  256. index_url: 'exclusive/showchannels/ids/'+Config.ids,
  257. }
  258. });
  259. var table = $("#unbind-channels-table");
  260. var mtotal = 0;
  261. table.on('load-success.bs.table', function (e, data) {
  262. //这里可以获取从服务端获取的JSON数据
  263. mtotal = data.total;
  264. });
  265. // 初始化表格
  266. table.bootstrapTable({
  267. url: $.fn.bootstrapTable.defaults.extend.index_url,
  268. pk: 'id',
  269. sortName: 'id',
  270. search: false,
  271. pageList: [10, 25, 50, 100, 1000],
  272. columns: [
  273. [
  274. {checkbox: true},
  275. {field: 'id', title: 'ID'},
  276. {field: 'username', title: __('用户名'), operate:'LIKE'},
  277. {field: 'nickname', title: __('昵称'), operate:'LIKE'},
  278. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: function(value, row){
  279. var content = '';
  280. content += '<a href="javascript:;" data-id="'+Config.ids+'" data-row-id="'+row.id+'" class="btn btn-xs btn-success btn-single-edit" title="" data-table-id="table">取消关联</a> ';
  281. return content;
  282. }}
  283. ]
  284. ]
  285. });
  286. //单项取关
  287. $(document).on('click','.btn-single-edit',function () {
  288. var rowid = $(this).data('row-id');
  289. layer.confirm('确认要取关所选的1项吗??', {title: "取关渠道"}, function (index) {
  290. Layer.closeAll();
  291. $.ajax({
  292. url:'/admin/exclusive/batch_unbind_channels',
  293. type:"post",
  294. data: {
  295. eid:Config.ids,
  296. ids:{rowid}
  297. },
  298. success:function(datas){
  299. Toastr.success('操作成功!');
  300. setTimeout(function() {
  301. window.location.reload();
  302. },1000);
  303. }
  304. });
  305. });
  306. });
  307. //批量取关
  308. $('.btn-batch-unbind').on('click',function () {
  309. var ids = Table.api.selectedids(table);
  310. if(ids.length>0){
  311. layer.confirm('确认要取关所选的'+ids.length+'项吗??', {title: "取关渠道"}, function (index) {
  312. Layer.closeAll();
  313. $.ajax({
  314. url:'/admin/exclusive/batch_unbind_channels',
  315. type:"post",
  316. data: {
  317. eid:Config.ids,
  318. ids:ids
  319. },
  320. success:function(datas){
  321. Toastr.success('操作成功!');
  322. setTimeout(function() {
  323. window.location.reload();
  324. },1000);
  325. }
  326. });
  327. });
  328. }else{
  329. Toastr.error('请选择要关联的选项');
  330. }
  331. });
  332. //全部取关
  333. $('.btn-all-unbind').on('click',function () {
  334. if(mtotal>0){
  335. layer.confirm('确认要取关所有项吗??', {title: "取关渠道"}, function (index) {
  336. Layer.closeAll();
  337. $.ajax({
  338. url:'/admin/exclusive/unbind_all_channels',
  339. type:"post",
  340. data: {
  341. ids:Config.ids
  342. },
  343. success:function(datas){
  344. Toastr.success('操作成功!');
  345. table.bootstrapTable('refresh');
  346. }
  347. });
  348. });
  349. }else{
  350. Toastr.error('无关联项!');
  351. setTimeout(function() {
  352. window.location.reload();
  353. },1000);
  354. }
  355. });
  356. Controller.api.bindevent();
  357. },
  358. bindbooks: function (){
  359. // 初始化表格参数配置
  360. Table.api.init({
  361. extend: {
  362. index_url: 'exclusive/bindbooks/ids/'+Config.ids,
  363. }
  364. });
  365. var table = $("#bind-books-table");
  366. var mtotal = 0;
  367. table.on('load-success.bs.table', function (e, data) {
  368. //这里可以获取从服务端获取的JSON数据
  369. mtotal = data.total;
  370. });
  371. // 初始化表格
  372. table.bootstrapTable({
  373. url: $.fn.bootstrapTable.defaults.extend.index_url,
  374. pk: 'id',
  375. sortName: 'id',
  376. search: false,
  377. columns: [
  378. [
  379. {checkbox: true},
  380. {field: 'id', title: '书籍ID'},
  381. {field: 'name', title: __('书籍名称'), operate:'LIKE'},
  382. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: function(value, row){
  383. var content = '';
  384. if(Config.bindids.split(',').indexOf(row.id) == -1){
  385. content += '<a href="javascript:;" data-id="'+Config.ids+'" data-row-id="'+row.id+'" class="btn btn-xs btn-success btn-single-edit" title="" data-table-id="table">关联</a> ';
  386. }else{
  387. content += '已关联';
  388. }
  389. return content;
  390. }}
  391. ]
  392. ]
  393. });
  394. //单项关联
  395. $(document).on('click','.btn-single-edit',function () {
  396. var rowid = $(this).data('row-id');
  397. layer.confirm('确认要关联所选的1项吗??', {title: "关联渠道"}, function (index) {
  398. Layer.closeAll();
  399. $.ajax({
  400. url:'/admin/exclusive/batch_bind_books',
  401. type:"post",
  402. data: {
  403. eid:Config.ids,
  404. ids:{rowid}
  405. },
  406. success:function(datas){
  407. Toastr.success('操作成功!');
  408. setTimeout(function() {
  409. window.location.reload();
  410. },1000);
  411. }
  412. });
  413. });
  414. });
  415. //批量关联
  416. $('.btn-batch-bind').on('click',function () {
  417. var ids = Table.api.selectedids(table);
  418. var post_ids = [];
  419. if (ids.length > 0) {
  420. layer.confirm('确认要关联所选的'+ids.length+'项吗??', {title: "关联渠道"}, function (index) {
  421. Layer.closeAll();
  422. ids.forEach(function (v, k) {
  423. if (Config.bindids.split(',').indexOf(v) == -1) {
  424. post_ids.push(v);
  425. }
  426. });
  427. if (post_ids.length > 0) {
  428. $.ajax({
  429. url: '/admin/exclusive/batch_bind_books',
  430. type: "post",
  431. data: {
  432. eid: Config.ids,
  433. ids: post_ids
  434. },
  435. success: function (datas) {
  436. Toastr.success('操作成功!');
  437. setTimeout(function () {
  438. window.location.reload();
  439. }, 1000);
  440. }
  441. });
  442. } else {
  443. Toastr.error('选择的项已关联');
  444. }
  445. });
  446. } else {
  447. Toastr.error('请选择要关联的选项');
  448. }
  449. });
  450. //全部关联
  451. $('.btn-all-bind').on('click',function () {
  452. if(mtotal>0){
  453. layer.confirm('确认要关联所有项吗??', {title: "关联渠道"}, function (index) {
  454. Layer.closeAll();
  455. $.ajax({
  456. url:'/admin/exclusive/bind_all_books',
  457. type:"post",
  458. data: {
  459. ids:Config.ids
  460. },
  461. success:function(datas){
  462. Toastr.success('操作成功!');
  463. setTimeout(function() {
  464. window.location.reload();
  465. },1000);
  466. }
  467. });
  468. });
  469. }else{
  470. Toastr.error('无关联项!');
  471. setTimeout(function() {
  472. window.location.reload();
  473. },1000);
  474. }
  475. });
  476. Controller.api.bindevent();
  477. },
  478. showbooks: function (){
  479. // 初始化表格参数配置
  480. Table.api.init({
  481. extend: {
  482. index_url: 'exclusive/showbooks/ids/'+Config.ids,
  483. }
  484. });
  485. var table = $("#unbind-books-table");
  486. var mtotal = 0;
  487. table.on('load-success.bs.table', function (e, data) {
  488. //这里可以获取从服务端获取的JSON数据
  489. mtotal = data.total;
  490. });
  491. // 初始化表格
  492. table.bootstrapTable({
  493. url: $.fn.bootstrapTable.defaults.extend.index_url,
  494. pk: 'id',
  495. sortName: 'id',
  496. search: false,
  497. columns: [
  498. [
  499. {checkbox: true},
  500. {field: 'id', title: '书籍ID'},
  501. {field: 'name', title: __('书籍名称'), operate:'LIKE'},
  502. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: function(value, row){
  503. var content = '';
  504. content += '<a href="javascript:;" data-id="'+Config.ids+'" data-row-id="'+row.id+'" class="btn btn-xs btn-success btn-single-edit" title="" data-table-id="table">取消关联</a> ';
  505. return content;
  506. }}
  507. ]
  508. ]
  509. });
  510. //单项取关
  511. $(document).on('click','.btn-single-edit',function () {
  512. var rowid = $(this).data('row-id');
  513. layer.confirm('确认要取关所选的1项吗??', {title: "取关渠道"}, function (index) {
  514. Layer.closeAll();
  515. $.ajax({
  516. url:'/admin/exclusive/batch_unbind_books',
  517. type:"post",
  518. data: {
  519. eid:Config.ids,
  520. ids:{rowid}
  521. },
  522. success:function(datas){
  523. Toastr.success('操作成功!');
  524. setTimeout(function() {
  525. window.location.reload();
  526. },1000);
  527. }
  528. });
  529. });
  530. });
  531. //批量取关
  532. $('.btn-batch-unbind').on('click',function () {
  533. var ids = Table.api.selectedids(table);
  534. if(ids.length>0){
  535. layer.confirm('确认要取关所选的'+ids.length+'项吗??', {title: "取关渠道"}, function (index) {
  536. Layer.closeAll();
  537. $.ajax({
  538. url:'/admin/exclusive/batch_unbind_books',
  539. type:"post",
  540. data: {
  541. eid:Config.ids,
  542. ids:ids
  543. },
  544. success:function(datas){
  545. Toastr.success('操作成功!');
  546. setTimeout(function() {
  547. window.location.reload();
  548. },1000);
  549. }
  550. });
  551. });
  552. }else{
  553. Toastr.error('请选择要关联的选项');
  554. }
  555. });
  556. //全部取关
  557. $('.btn-all-unbind').on('click',function () {
  558. if(mtotal>0){
  559. layer.confirm('确认要取关所有项吗??', {title: "取关渠道"}, function (index) {
  560. Layer.closeAll();
  561. $.ajax({
  562. url:'/admin/exclusive/unbind_all_books',
  563. type:"post",
  564. data: {
  565. ids:Config.ids
  566. },
  567. success:function(datas){
  568. Toastr.success('操作成功!');
  569. table.bootstrapTable('refresh');
  570. }
  571. });
  572. });
  573. }else{
  574. Toastr.error('无关联项!');
  575. setTimeout(function() {
  576. window.location.reload();
  577. },1000);
  578. }
  579. });
  580. Controller.api.bindevent();
  581. },
  582. api: {
  583. bindevent: function () {
  584. Form.api.bindevent($("form[role=form]"));
  585. }
  586. }
  587. };
  588. return Controller;
  589. });