packagecard.js 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form','vue'], function ($, undefined, Backend, Table, Form, Vue) {
  2. var Controller = {
  3. index: function () {
  4. // 初始化表格参数配置
  5. Table.api.init({
  6. extend: {
  7. index_url: 'service/packagecard/index' + location.search,
  8. add_url: 'service/packagecard/add',
  9. edit_url: 'service/packagecard/edit',
  10. del_url: 'service/packagecard/del',
  11. multi_url: 'service/packagecard/multi',
  12. import_url: 'service/packagecard/import',
  13. table: 'service_package_card',
  14. }
  15. });
  16. var table = $("#table");
  17. // 初始化表格
  18. table.bootstrapTable({
  19. url: $.fn.bootstrapTable.defaults.extend.index_url,
  20. pk: 'id',
  21. sortName: 'weigh',
  22. fixedColumns: true,
  23. fixedRightNumber: 1,
  24. columns: [
  25. [
  26. {checkbox: true},
  27. {field: 'id', title: __('Id')},
  28. {field: 'name', title: __('Name'), operate: 'LIKE'},
  29. {field: 'images', title: __('Images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
  30. {field: 'original_price', title: __('Original_price'), operate:'BETWEEN'},
  31. {field: 'price', title: __('Price'), operate:'BETWEEN'},
  32. {field: 'info_images', title: __('Info_images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
  33. {field: 'flow_images', title: __('Flow_images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
  34. {field: 'daynums', title: __('Daynums')},
  35. {field: 'plus_state', title: __('Plus_state'), searchList: {"0":__('Plus_state 0'),"1":__('Plus_state 1')}, formatter: Table.api.formatter.normal},
  36. {field: 'coupon_state', title: __('Coupon_state'), searchList: {"0":__('Coupon_state 0'),"1":__('Coupon_state 1')}, formatter: Table.api.formatter.normal},
  37. {field: 'salenums', title: __('Salenums')},
  38. {field: 'weigh', title: __('Weigh'), operate: false},
  39. {field: 'status', title: __('Status'), searchList: {"normal":__('Status normal'),"hidden":__('Status hidden')}, formatter: Table.api.formatter.status},
  40. {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
  41. {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
  42. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
  43. buttons: [
  44. {
  45. name: 'list',
  46. text: __('订单列表'),
  47. title: __('订单列表'),
  48. classname: 'btn btn-xs btn-danger btn-dialog',
  49. icon: 'fa fa-list',
  50. url: function(row){
  51. return 'service/card/packageorder/index?ordertype=1&package_card_id='+row.id;
  52. },
  53. },
  54. ],
  55. formatter: Table.api.formatter.operate}
  56. ]
  57. ]
  58. });
  59. // 为表格绑定事件
  60. Table.api.bindevent(table);
  61. },
  62. add: function () {
  63. let add = new Vue({
  64. el: '#app',
  65. data(){
  66. return {
  67. info:[]
  68. }
  69. },
  70. watch:{
  71. },
  72. computed:{
  73. original_price(){
  74. let price = 0;
  75. for(let i=0; i < this.info.length; i++){
  76. price+=this.info[i].original_price*this.info[i].nums
  77. }
  78. return price
  79. },
  80. price(){
  81. let price = 0;
  82. for(let i=0; i < this.info.length; i++){
  83. price+=this.info[i].price*this.info[i].nums
  84. }
  85. return price
  86. },
  87. },
  88. methods:{
  89. del(index){
  90. this.info.splice(index,1)
  91. },
  92. goodsSelect(){
  93. let that = this
  94. Backend.api.open('service/packagesku/index','选择项目',{
  95. callback: function(res){
  96. console.log(res.data)
  97. let had = false
  98. for(let i=0; i < that.info.length;i++){
  99. if(that.info[i].id == res.data.id){
  100. had = true
  101. }
  102. }
  103. if(had){
  104. layer.msg("已过滤添加过的信息");
  105. return
  106. }
  107. let data = res.data
  108. data.nums = 1
  109. data.goods_sku_id = data.id
  110. data.original_price = data.price
  111. data.total_price = data.original_price*data.nums
  112. that.info.push(data)
  113. }
  114. });
  115. }
  116. }
  117. })
  118. Controller.api.bindevent();
  119. },
  120. edit: function () {
  121. let add = new Vue({
  122. el: '#app',
  123. data(){
  124. return {
  125. info:Config.goods
  126. }
  127. },
  128. watch:{
  129. },
  130. computed:{
  131. original_price(){
  132. let price = 0;
  133. for(let i=0; i < this.info.length; i++){
  134. price+=this.info[i].original_price*this.info[i].nums
  135. }
  136. return price
  137. },
  138. price(){
  139. let price = 0;
  140. for(let i=0; i < this.info.length; i++){
  141. price+=this.info[i].price*this.info[i].nums
  142. }
  143. return price
  144. },
  145. },
  146. methods:{
  147. del(index){
  148. this.info.splice(index,1)
  149. },
  150. goodsSelect(){
  151. let that = this
  152. Backend.api.open('service/packagesku/index','选择项目',{
  153. callback: function(res){
  154. console.log(res.data)
  155. let had = false
  156. for(let i=0; i < that.info.length;i++){
  157. if(that.info[i].goods_sku_id == res.data.id){
  158. had = true
  159. }
  160. }
  161. if(had){
  162. layer.msg("已过滤添加过的信息");
  163. return
  164. }
  165. let data = res.data
  166. data.nums = 1
  167. data.goods_sku_id = data.id
  168. data.original_price = data.price
  169. data.total_price = data.original_price*data.nums
  170. that.info.push(data)
  171. }
  172. });
  173. }
  174. }
  175. })
  176. Controller.api.bindevent();
  177. },
  178. api: {
  179. bindevent: function () {
  180. Form.api.bindevent($("form[role=form]"));
  181. }
  182. }
  183. };
  184. return Controller;
  185. });