mobile_flow_proxy.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form','clipboard'], function ($, undefined, Backend, Table, Form,clipboard) {
  2. var Controller = {
  3. index: function () {
  4. // 初始化表格参数配置
  5. Table.api.init({
  6. extend: {
  7. index_url: 'mobile_flow_proxy/index' + location.search,
  8. add_url: 'mobile_flow/add',
  9. edit_url: 'mobile_flow/edit',
  10. sort_url: 'mobile_flow/sort',
  11. del_url: 'mobile_flow/del',
  12. multi_url: 'mobile_flow/multi',
  13. multi_down_url: 'mobile_flow/multi_down',
  14. multi_up_url: 'mobile_flow/multi_up',
  15. import_url: 'mobile_flow/import',
  16. batch: 'mobile_flow/batch',
  17. table: 'mobile',
  18. }
  19. });
  20. let tableData=[]
  21. let clip=new clipboard('.btn-copy-obj',{
  22. text:function (a){
  23. let idx=$(a).data('row-index'),
  24. row=tableData[idx]
  25. return `${location.origin}/build/#/data-traffic-detail/${row.id}`
  26. }
  27. })
  28. clip.on('success',function (){
  29. parent.layer.msg('复制成功')
  30. })
  31. $('.btn-multi_down').click(function (){
  32. parent.layer.confirm('确定要下架吗?',(idx)=>{
  33. let ids=[]
  34. table.bootstrapTable('getSelections').forEach(item=>{
  35. ids.push(item.id)
  36. })
  37. let a=parent.layer.load()
  38. $.ajax($.fn.bootstrapTable.defaults.extend.multi_down_url,{
  39. data:{ids},
  40. type:'post',
  41. success({code,msg}){
  42. if(code){
  43. parent.layer.msg('操作成功')
  44. $('.btn-refresh').trigger('click')
  45. }else{
  46. parent.layer.alert(msg)
  47. }
  48. },
  49. complete(){
  50. parent.layer.close(a)
  51. }
  52. })
  53. parent.layer.close(idx)
  54. })
  55. })
  56. $('.btn-multi_up').click(function (){
  57. parent.layer.confirm('确定要上架吗?',(idx)=>{
  58. let ids=[]
  59. table.bootstrapTable('getSelections').forEach(item=>{
  60. ids.push(item.id)
  61. })
  62. let a=parent.layer.load()
  63. $.ajax($.fn.bootstrapTable.defaults.extend.multi_up_url,{
  64. data:{ids},
  65. type:'post',
  66. success({code,msg}){
  67. if(code){
  68. parent.layer.msg('操作成功')
  69. $('.btn-refresh').trigger('click')
  70. }else{
  71. parent.layer.alert(msg)
  72. }
  73. },
  74. complete(){
  75. parent.layer.close(a)
  76. }
  77. })
  78. parent.layer.close(idx)
  79. })
  80. });
  81. var table = $("#table");
  82. $(".btn-add").data("area", ["100%","100%"]);
  83. // 初始化表格
  84. table.bootstrapTable({
  85. url: $.fn.bootstrapTable.defaults.extend.index_url,
  86. pk: 'id',
  87. sortName: 'id',
  88. search:false,
  89. searchFormVisible:true,
  90. columns: [
  91. [
  92. {checkbox: true},
  93. {field: 'id', title: __('Id')},
  94. //{field: 'proxy_role', title: __('站点选择'),visible:false,searchable:true,operate:false,searchList:{1:"主站", 2:"本店"},defaultValue:1},
  95. {field: 'proxy_id', title: __('代理商'),formatter:function(value, mobile){
  96. return value ? mobile.proxy.nickname : '';
  97. },visible:(subs ? true : false),searchList:subs,searchable:(subs ? true : false),defaultValue:0},
  98. {field: 'product_no', title: __('产品编码')},
  99. {field: 'name', title: __('商品名称'),operate: 'like',formatter(a,mobile){
  100. let arr=[]
  101. arr.push(`<div class="break-words" style="display:flex;align-items:center;">`)
  102. if(mobile.logo) {
  103. let logo=mobile.logo.split(',')[0]
  104. arr.push(`<div><img src="${logo}" class="view-image" alt="" style="width: 50px;height: 50px;object-fit: cover"/></div>`)
  105. }
  106. arr.push(`<div>${a}</div>`)
  107. arr.push(`</div>`)
  108. return arr.join('')
  109. },align:'left',valign:'top'},
  110. {
  111. field: 'brand',
  112. title: __('运营商'),
  113. formatter: Table.api.formatter.label,
  114. custom:{'flow_limit_yd':'success', 'flow_limit_lt':'danger', 'flow_limit_dx':'info', 'flow_limit_gd':'success'},
  115. searchList:brands,
  116. operate: 'like'
  117. },
  118. {field: 'summary', title: __('商品简介'),operate: "like",formatter: Table.api.formatter.content,width: 200},
  119. {field: 'amount_base', title: __('售价'), operate:'BETWEEN'},
  120. {field: 'stock_num', title: __('库存'), operate:'BETWEEN'},
  121. {field: 'sort', title: __('排序'), operate:'BETWEEN',formatter(a, mobile) {
  122. return `<input class="flow-change-sort" value="${a}" style="width: 100px;" onfocus="$(this).select()" data-id="${mobile.id}">`
  123. }},
  124. {field: 'create_time', title: __('上架时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false,formatter: Table.api.formatter.datetime},
  125. {field:'status',title:'系统售卖状态',formatter: Table.api.formatter.label,searchList:flow_status,defaultValue:0,},
  126. // {field:'proxy_status',title:'展示状态',formatter: Table.api.formatter.label,searchList:flow_status,defaultValue:(superAdmin ? null : 0),visible:(superAdmin ? false : true),searchable:(superAdmin ? false : true)},
  127. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: function(value, row, index){
  128. // return Table.api.formatter.operate;
  129. var that = $.extend({}, this);
  130. var table = $(that.table).clone(true);
  131. if(row.editAuth == false){
  132. $(table).data("operate-edit", null);
  133. that.table = table;
  134. }
  135. if(row.delAuth == false){
  136. $(table).data("operate-del", null);
  137. that.table = table;
  138. }
  139. return Table.api.formatter.operate.call(that, value, row, index);
  140. },buttons:[
  141. {
  142. name: 'detail',
  143. title: __('复制链接'),
  144. text: __('复制链接'),
  145. classname: 'btn btn-xs btn-info btn-copy-obj',
  146. click: function (data,row) {
  147. },
  148. visible: function (row) {
  149. return true;
  150. }
  151. },
  152. {
  153. name: 'detail',
  154. text: __('复制商品'),
  155. title: __('复制商品'),
  156. classname: 'btn btn-xs btn-info btn-ajax',
  157. url: 'mobile_flow/copy_goods',
  158. refresh: true,
  159. visible: function (row) {
  160. return true;
  161. }
  162. },
  163. ]},
  164. ]
  165. ],
  166. onLoadSuccess(a){
  167. tableData=a.rows
  168. $(".btn-editone").data("area", ["100%","100%"]);
  169. }
  170. });
  171. $(document).on('blur','.flow-change-sort',function (){
  172. let id=$(this).data('id')
  173. let idx=layer.load()
  174. Fast.api.ajax({
  175. url: $.fn.bootstrapTable.defaults.extend.sort_url,
  176. data:{id,sort:this.value}
  177. },()=>{
  178. // $('.btn-refresh').trigger('click')
  179. layer.close(idx)
  180. },(res)=>{
  181. layer.close(idx)
  182. })
  183. })
  184. $(document).on('click','.view-image',function (){
  185. layer.photos({
  186. photos:{
  187. data:[
  188. {
  189. src:this.src
  190. }
  191. ]
  192. }
  193. })
  194. })
  195. $('.tab-first[data-value="0"]').trigger('click')
  196. // 为表格绑定事件
  197. Table.api.bindevent(table);
  198. },
  199. add: function () {
  200. Controller.api.bindevent();
  201. $('#c-logo').change(function (){
  202. let images=this.value?this.value.split(','):[]
  203. if(images.length>5){
  204. $(this).val(images.slice(0,5).join(','))
  205. parent.layer.msg('最多上传5张图片')
  206. }
  207. })
  208. },
  209. edit: function () {
  210. Controller.api.bindevent();
  211. },
  212. api: {
  213. bindevent: function () {
  214. Form.api.bindevent($("form[role=form]"));
  215. }
  216. },
  217. };
  218. return Controller;
  219. });