channel.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
  2. $('#c-pay_method').change(function(){
  3. var sval = $(this).val();
  4. if (sval<3){ //银行卡
  5. $('.c-card_bank').show();
  6. $('.c-card_holder').html('* 收款人:');
  7. $('.c-card_num').html('* 收款账号:');
  8. }else if(sval==3){ //微信
  9. $('.c-card_bank').hide();
  10. $('.c-card_holder').html('* 姓名:');
  11. $('.c-card_num').html('* 微信账号:');
  12. $('#c-card_bank').val('');
  13. }else if(sval==4){ //支付宝
  14. $('.c-card_bank').hide();
  15. $('.c-card_holder').html('* 姓名:');
  16. $('.c-card_num').html('* 支付宝账号:');
  17. $('#c-card_bank').val('');
  18. }
  19. })
  20. //book_but
  21. $(document).on('click','.book_but',function () {
  22. Fast.api.open($(this).attr('href'), '查看数据', {});
  23. return false;
  24. });
  25. $(document).on('click','.btn-re',function () {
  26. var uid = $(this).data('uid');
  27. layer.confirm("请确认你要进行重置服务号,重置后将会导致、数据清空、老用户无法访问、等等一系列你无法想象的超级严重的问题", { title: "重置服务号确认" }, function (index) {
  28. layer.close(index);
  29. $.post('/admin/auth/channel/re?admin_id='+uid,{},function(data){
  30. if(data.code != 0){
  31. Toastr.success(data.msg);
  32. setTimeout(function() {
  33. window.location.reload();
  34. },2000);
  35. }else{
  36. Toastr.error(data.msg);
  37. }
  38. })
  39. });
  40. });
  41. $(document).on('click','.btn-sync',function () {
  42. var uid = $(this).data('uid');
  43. layer.confirm("请确认你要进行微信用户同步确认", { title: "微信用户同步确认" }, function (index) {
  44. layer.close(index);
  45. $.post('/admin/auth/channel/sync?admin_id='+uid,{},function(data){
  46. if(data.code != 0){
  47. Toastr.success(data.msg);
  48. setTimeout(function() {
  49. window.location.reload();
  50. },2000);
  51. }else{
  52. Toastr.error(data.msg);
  53. }
  54. })
  55. });
  56. });
  57. $('#c-platform_id').change(function(){
  58. var thisval = $(this).val();
  59. console.log(thisval);
  60. if(thisval){
  61. thisval = 'p'+thisval;
  62. $('.'+thisval)[0].checked=true;
  63. $('.platform').removeAttr("disabled");
  64. $('.'+thisval).attr("disabled",true);
  65. }else{
  66. //清空所有平台的readonly属性
  67. $('.platform').removeAttr("disabled");
  68. }
  69. });
  70. var Controller = {
  71. index: function () {
  72. // 初始化表格参数配置
  73. Table.api.init({
  74. extend: {
  75. index_url: 'auth/channel/index',
  76. add_url: 'auth/channel/add',
  77. edit_url: 'auth/channel/edit',
  78. del_url: 'auth/channel/del',
  79. multi_url: 'auth/channel/multi',
  80. },
  81. showToggle: false,
  82. visible: false,
  83. searchFormVisible:true,
  84. search:false,
  85. });
  86. var table = $("#table");
  87. // 初始化表格
  88. table.bootstrapTable({
  89. url: $.fn.bootstrapTable.defaults.extend.index_url,
  90. columns: [
  91. [
  92. {field: 'admin.id', title: 'ID',operate: '=',visible:false},
  93. {field: 'id', title: 'ID',operate: false},
  94. {field: 'username', title: __('账号'),operate: 'LIKE %...%'},
  95. {field: 'nickname', title: __('Nickname'),operate: 'LIKE %...%'},
  96. {field: 'ac.appid', title: __('Appid'),visible:false,operate: 'LIKE %...%'},
  97. {field: 'appid', title: __('Appid'),operate:false},
  98. {field: 'admin_extend.benefit', title: __('佣金比例'), operate: false},
  99. {field: 'admin_extend.create_by', title: __('开户人'), operate: false},
  100. {field: 'today_recharge_money', title: __('今日充值'), operate: false},
  101. {field: 'yesterday_recharge_money', title: __('昨日充值'), operate: false},
  102. {field: 'recharge_money', title: __('总充值金额(不含当日)'), operate: false},
  103. {field: 'benefit_money', title: __('结算单总额(包含当日)'), operate: false},
  104. {field: 'no_cash_money', title: __('未提现总额(包含当日)'), operate: false},
  105. {field: 'status', title: __("Status"), formatter: Table.api.formatter.status,searchList: {'normal': '正常', 'hidden':'隐藏'}},
  106. {field: 'is_fouce', title: __("是否强制授权"), operate: false,formatter: function(value,row,index){return value==1?"强制":"不强制";}},
  107. {field: 'platforms', title: __("域名系统"), operate: false,formatter: function(value,row,index){return $('<div/>').html(value).text();}},
  108. {field: 'ac.platform_id', title: __("默认平台"), visible:false, searchList:Controller.api.formatter.platforms()},
  109. {field: 'ophost', title: __("业务域名(主)"), operate: 'LIKE %...%'},
  110. {field: 'wxpay', title: __("支付服务号(主)"), operate: false},
  111. {field: 'menuophost', title: __("业务域名(菜单)"), operate: 'LIKE %...%'},
  112. {field: 'menuwxpay_host', title: __("支付服务号(菜单)"), operate: false},
  113. {field: 'entryhost', title: __("入口域名"), operate: false},
  114. {field: 'admin_extend.can_distribute', title: __("配号状态"), searchList: {'0': '关闭', '1':'开启'},formatter: function(value,row,index){return value==1?"开启":"关闭";}},
  115. {field: 'admin_extend.reward_state', title: __('赏金开关'),formatter:function(value,row,index){return value==1?"已开启":"未开启";}, searchList: {'0': '未开启', '1':'已开启'}},
  116. {
  117. field: 'admin_extend.createtime',
  118. title: __('注册时间'),
  119. formatter: Table.api.formatter.datetime,
  120. operate: false
  121. },
  122. {
  123. field: 'tongji', visible:(Config.group>=2), title: __("统计"), operate: false, formatter: function (value, row, index) {
  124. return '<a style="display:inline-block; margin:4px 5px;vertical-align: middle;" href="/admin/collect/index?channel_id=' + row.id + '" class="book_but"><button type="button" class="btn dropdown-toggle" style="background-color:#ddd;">订单统计</button></a>' +
  125. '<div class="dropdown" style="display:inline-block; margin:4px 5px;vertical-align: middle;"> <button type="button" style="background-color:#ddd;" class="btn dropdown-toggle" id="dropdownMenu1"data-toggle="dropdown">更多' +
  126. '<span class="caret"></span>' +
  127. '</button>' +
  128. '<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1" style="min-width: 5px;">' +
  129. '<li role="presentation">' +
  130. '<a role="menuitem" tabindex="-1" href="/admin/user/collect/index?ids=' + row.id + '" class="book_but">用户统计</a>' +
  131. '</li>' +
  132. '<li role="presentation">' +
  133. '<a role="menuitem" tabindex="-1" href="/admin/orders/index?channel_id=' + row.id + '" class="book_but">订单明细</a>' +
  134. '</li>' +
  135. '<li role="presentation">' +
  136. '<a role="menuitem" tabindex="-1" href="/admin/referral/referral/index?ids=' + row.id + '" class="book_but">推广链接</a>' +
  137. '</li>' +
  138. '</ul>' +
  139. '</div>';
  140. }
  141. },
  142. {
  143. field: 'operate',
  144. title: __('Operate'),
  145. table: table,
  146. events: Table.api.events.operate,
  147. formatter: function (value, row, index) {
  148. if (row.id == Config.admin.id) {
  149. return '';
  150. }
  151. return Table.api.formatter.operate.call(this, value, row, index);
  152. }
  153. },
  154. //{field: 'id', title: __('统计'), table: table, buttons: [
  155. // {name: 'collect', text: '数据统计', title: '数据统计', icon: 'fa fa-list', classname: 'btn btn-xs btn-primary btn-dialog', url: '/admin/auth/channel/collect', callback:function(data){}},
  156. // {name: 'more', text: '更多', title: '更多', icon: 'fa fa-flash', classname: 'btn btn-xs btn-primary btn-dialog', url: '/admin/auth/channel/more'}
  157. //], operate:false, formatter: Table.api.formatter.buttons}
  158. ]
  159. ]
  160. });
  161. // 为表格绑定事件
  162. Table.api.bindevent(table);
  163. },
  164. add: function () {
  165. Form.api.bindevent($("form[role=form]"));
  166. $("#c-platform_id").change(function(){
  167. var id = $(this).val();
  168. var url = "auth/channel/ajaxgetlistbyplatformid?platform_id=" + id;
  169. $.get(url,function(data){
  170. if(data.code == 0){
  171. // var oplist = "";
  172. // var wxlist = "";
  173. $("#c-ophost_id").html("<option value='0' >请选择</option>");
  174. // if(data.data.ophostList){
  175. for(var key1 in data.data.ophostList){
  176. $("#c-ophost_id").append("<option value='"+ key1 +"' >"+data.data.ophostList[key1]+"</option><br>");
  177. // oplist += "<option value='"+ key1 +"' >"+data.data.ophostList[key1]+"</option><br>";
  178. }
  179. $("#c-menuophost_id").html("<option value='0' >请选择</option>");
  180. for(var key1 in data.data.ophostList) {
  181. $("#c-menuophost_id").append("<option value='" + key1 + "' >" + data.data.ophostList[key1] + "</option><br>");
  182. }
  183. // }
  184. // $("#c-ophost_id").html(oplist);
  185. // if(data.data.wxpayList){
  186. $("#c-wxpay_id").html("<option value='0' >请选择</option>");
  187. for(var key2 in data.data.wxpayList){
  188. $("#c-wxpay_id").append("<option value='"+ key2 +"' >"+data.data.wxpayList[key2]+"</option><br>");
  189. // wxlist += "<option value='"+ key2 +"' >"+data.data.wxpayList[key2]+"</option><br>";
  190. }
  191. $("#c-menuwxpay_id").html("<option value='0' >请选择</option>");
  192. for(var key2 in data.data.wxpayList) {
  193. $("#c-menuwxpay_id").append("<option value='" + key2 + "' >" + data.data.wxpayList[key2] + "</option><br>");
  194. }
  195. // }
  196. // $("#c-wxpay_id").html(wxlist);
  197. }
  198. });
  199. })
  200. $('.checkbox_plat input').change(function(){
  201. var $this = $(this);
  202. var txt = $this.attr('textinfo');
  203. var id = $this.attr('value');
  204. // var wxopurl = "auth/channel/ajaxgetlistbyplatformid?platform_id=" + id ;
  205. if($this.is(":checked")){
  206. $('#c-platform_id').append($('<option class="rem_'+ id +'" value='+ id +'>'+txt+'</option>'));
  207. /*$.get(wxopurl,function(data){
  208. if(data.code == 0){
  209. for(var key1 in data.data.ophostList){
  210. $("#c-menuophost_id").append($('<option class="rem_'+ id +'" value='+ key1 +'>'+data.data.ophostList[key1]+'</option>'));
  211. }
  212. for(var key2 in data.data.wxpayList){
  213. $("#c-menuwxpay_id").append($('<option class="rem_'+ id +'" value='+ key2 +'>'+data.data.ophostList[key1]+'</option>'));
  214. }
  215. }
  216. });*/
  217. }else{
  218. $('.rem_' + id).remove();
  219. }
  220. $("#c-platform_id" ).selectpicker('refresh');
  221. // alert(txt + '=====' +id + '=====' +$this.is(":checked"));
  222. });
  223. },
  224. edit: function () {
  225. $('.checkbox_plat input').change(function(){
  226. var $this = $(this);
  227. var id = $this.attr('value');
  228. var url = "auth/channel/checkplatformauth?platform_id=" + id +'&channel_id='+Config.rowid;
  229. // var wxopurl = "auth/channel/ajaxgetlistbyplatformid?platform_id=" + id ;
  230. var txt = $this.attr('textinfo');
  231. if($this.is(":checked")){
  232. if(Config.is_exists_auth){
  233. $.get(url,function(data){
  234. if(data.code){
  235. $('#c-platform_id').append($('<option class="rem_'+ id +'" value='+ id +'>'+txt+'</option>'));
  236. }
  237. });
  238. // $.get(wxopurl,function(data){
  239. // if(data.code == 0){
  240. // for(var key1 in data.data.ophostList){
  241. // $("#c-menuophost_id").append($('<option class="rem_'+ id +'" value='+ key1 +'>'+data.data.ophostList[key1]+'</option>'));
  242. // }
  243. // for(var key2 in data.data.wxpayList){
  244. // $("#c-menuwxpay_id").append($('<option class="rem_'+ id +'" value='+ key2 +'>'+data.data.ophostList[key1]+'</option>'));
  245. // }
  246. // }
  247. // });
  248. }else{
  249. $('#c-platform_id').append($('<option class="rem_'+ id +'" value='+ id +'>'+txt+'</option>'));
  250. }
  251. }else{
  252. $('.rem_' + id).remove();
  253. }
  254. // $("#c-platform_id" ).selectpicker('refresh');
  255. })
  256. $("#c-platform_id").change(function(){
  257. var id = $(this).val();
  258. var url = "auth/channel/ajaxgetlistbyplatformid?platform_id=" + id;
  259. $.get(url,function(data){
  260. if(data.code == 0){
  261. // var oplist = "";
  262. // var wxlist = "";
  263. $("#c-ophost_id").html("<option value='0' >请选择</option>");
  264. // if(data.data.ophostList){
  265. for(var key1 in data.data.ophostList){
  266. $("#c-ophost_id").append("<option value='"+ key1 +"' >"+data.data.ophostList[key1]+"</option><br>");
  267. // oplist += "<option value='"+ key1 +"' >"+data.data.ophostList[key1]+"</option><br>";
  268. }
  269. $("#c-menuophost_id").html("<option value='0' >请选择</option>");
  270. for(var key1 in data.data.ophostList) {
  271. $("#c-menuophost_id").append("<option value='" + key1 + "' >" + data.data.ophostList[key1] + "</option><br>");
  272. }
  273. // }
  274. // $("#c-ophost_id").html(oplist);
  275. // if(data.data.wxpayList){
  276. $("#c-wxpay_id").html("<option value='0' >请选择</option>");
  277. for(var key2 in data.data.wxpayList){
  278. $("#c-wxpay_id").append("<option value='"+ key2 +"' >"+data.data.wxpayList[key2]+"</option><br>");
  279. // wxlist += "<option value='"+ key2 +"' >"+data.data.wxpayList[key2]+"</option><br>";
  280. }
  281. $("#c-menuwxpay_id").html("<option value='0' >请选择</option>");
  282. for(var key2 in data.data.wxpayList) {
  283. $("#c-menuwxpay_id").append("<option value='" + key2 + "' >" + data.data.wxpayList[key2] + "</option><br>");
  284. }
  285. // }
  286. // $("#c-wxpay_id").html(wxlist);
  287. }
  288. });
  289. })
  290. Form.api.bindevent($("form[role=form]"));
  291. },
  292. api:{
  293. formatter: {
  294. tongji: function (value, row, index) {
  295. return '<a class="btn btn-xs btn-browser">' + row.useragent.split(" ")[0] + '</a>';
  296. },
  297. platforms: function(){
  298. var list = {};
  299. for(var val in Config.platforms){
  300. list[Config.platforms[val].id] = Config.platforms[val].name;
  301. }
  302. return list;
  303. },
  304. },
  305. }
  306. };
  307. return Controller;
  308. });