demands.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  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: 'demands/index' + location.search,
  8. add_url: 'demands/add',
  9. edit_url: 'demands/edit',
  10. del_url: 'demands/del',
  11. multi_url: 'demands/multi',
  12. import_url: 'demands/import',
  13. table: 'demands',
  14. }
  15. });
  16. var table = $("#table");
  17. // 初始化表格
  18. table.bootstrapTable({
  19. url: $.fn.bootstrapTable.defaults.extend.index_url,
  20. pk: 'id',
  21. sortName: 'id',
  22. fixedColumns: true,
  23. fixedRightNumber: 1,
  24. columns: [
  25. [
  26. {checkbox: true},
  27. {field: 'id', title: __('Id')},
  28. {field: 'user_id', title: __('User_id')},
  29. {field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
  30. {
  31. field: 'type',
  32. title: __('Type'),
  33. searchList: {"0": __('Type 0'), "1": __('Type 1')},
  34. formatter: Table.api.formatter.normal
  35. },
  36. {
  37. field: 'title',
  38. title: __('Title'),
  39. operate: 'LIKE',
  40. table: table,
  41. class: 'autocontent',
  42. formatter: Table.api.formatter.content
  43. },
  44. {
  45. field: 'images',
  46. title: __('Images'),
  47. operate: false,
  48. events: Table.api.events.image,
  49. formatter: Table.api.formatter.images
  50. },
  51. {field: 'files', title: __('Files'), operate: false, formatter: Table.api.formatter.files},
  52. {
  53. field: 'contact',
  54. title: __('Contact'),
  55. operate: 'LIKE',
  56. table: table,
  57. class: 'autocontent',
  58. formatter: Table.api.formatter.content
  59. },
  60. {field: 'budget_amount', title: __('Budget_amount'), operate: 'BETWEEN'},
  61. {field: 'limit_time', title: __('Limit_time'), operate: false},
  62. {field: 'weigh', title: __('Weigh'), operate: false},
  63. {
  64. field: 'status',
  65. title: __('Status'),
  66. searchList: {
  67. "0": __('Status 0'),
  68. "1": __('Status 1'),
  69. "2": __('Status 2'),
  70. "3": __('Status 3'),
  71. "4": __('Status 4'),
  72. "5": __('Status 5'),
  73. "6": __('Status 6'),
  74. "7": __('Status 7')
  75. },
  76. formatter: Table.api.formatter.status
  77. },
  78. {
  79. field: 'work_status',
  80. title: __('Work_status'),
  81. searchList: {
  82. "0": __('Work_status 0'),
  83. "1": __('Work_status 1'),
  84. "2": __('Work_status 2'),
  85. "3": __('Work_status 3')
  86. },
  87. formatter: Table.api.formatter.status
  88. },
  89. {
  90. field: 'accept_status',
  91. title: __('Accept_status'),
  92. searchList: {
  93. "0": __('Accept_status 0'),
  94. "1": __('Accept_status 1'),
  95. "2": __('Accept_status 2'),
  96. "3": __('Accept_status 3')
  97. },
  98. formatter: Table.api.formatter.status
  99. },
  100. {
  101. field: 'settle_status',
  102. title: __('Settle_status'),
  103. searchList: {
  104. "0": __('Settle_status 0'),
  105. "1": __('Settle_status 1'),
  106. "2": __('Settle_status 2'),
  107. "3": __('Settle_status 3')
  108. },
  109. formatter: Table.api.formatter.status
  110. },
  111. {
  112. field: 'publish_status',
  113. title: __('Publish_status'),
  114. searchList: {
  115. "0": __('Publish_status 0'),
  116. "1": __('Publish_status 1'),
  117. "2": __('Publish_status 2'),
  118. "3": __('Publish_status 3')
  119. },
  120. formatter: Table.api.formatter.status
  121. },
  122. {
  123. field: 'createtime',
  124. title: __('Createtime'),
  125. operate: 'RANGE',
  126. addclass: 'datetimerange',
  127. autocomplete: false,
  128. formatter: Table.api.formatter.datetime
  129. },
  130. {
  131. field: 'updatetime',
  132. title: __('Updatetime'),
  133. operate: 'RANGE',
  134. addclass: 'datetimerange',
  135. autocomplete: false,
  136. formatter: Table.api.formatter.datetime
  137. },
  138. {
  139. field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
  140. buttons: [
  141. {
  142. name: 'ajax',
  143. title: __('审核'),
  144. classname: 'btn btn-xs btn-success btn-magic btn-ajax',
  145. icon: 'fa fa-check-square-o',
  146. confirm: '是否确认审核通过?',
  147. url: 'demands/audit',
  148. hidden: function(row){
  149. return row.publish_status === 2;
  150. },
  151. success: function (data, ret) {
  152. Layer.alert(ret.msg);
  153. // 刷新当前列表页
  154. table.bootstrapTable('refresh');
  155. //如果需要阻止成功提示,则必须使用return false;
  156. //return false;
  157. },
  158. error: function (data, ret) {
  159. console.log(data, ret);
  160. Layer.alert(ret.msg);
  161. return false;
  162. }
  163. },
  164. {
  165. name: 'ajax',
  166. title: __('重新投标'),
  167. classname: 'btn btn-xs btn-success btn-magic btn-ajax',
  168. icon: 'fa fa-rotate-left',
  169. confirm: '确认重新投标?重新投标会取消当前中标人员并退回冻结金额',
  170. url: 'demands/resetBidding',
  171. success: function (data, ret) {
  172. console.log(data, ret);
  173. Layer.alert(ret.msg);
  174. table.bootstrapTable('refresh');
  175. //如果需要阻止成功提示,则必须使用return false;
  176. //return false;
  177. },
  178. error: function (data, ret) {
  179. console.log(data, ret);
  180. Layer.alert(ret.msg);
  181. return false;
  182. }
  183. },
  184. {
  185. name: 'ajax',
  186. title: __('取消需求'),
  187. classname: 'btn btn-xs btn-success btn-magic btn-ajax',
  188. icon: 'fa fa-times-circle',
  189. confirm: '确认取消需求?取消需求会结束需求流程并退回协商后的指定冻结金额,客户预付款和尾款会一起退回',
  190. url: 'demands/cancel',
  191. success: function (data, ret) {
  192. Layer.alert(ret.msg);
  193. table.bootstrapTable('refresh');
  194. //如果需要阻止成功提示,则必须使用return false;
  195. //return false;
  196. },
  197. error: function (data, ret) {
  198. console.log(data, ret);
  199. Layer.alert(ret.msg);
  200. return false;
  201. }
  202. }
  203. ],
  204. formatter: Table.api.formatter.operate
  205. }
  206. ]
  207. ]
  208. });
  209. // 为表格绑定事件
  210. Table.api.bindevent(table);
  211. },
  212. add: function () {
  213. Controller.api.bindevent();
  214. },
  215. edit: function () {
  216. Controller.api.bindevent();
  217. },
  218. api: {
  219. bindevent: function () {
  220. Form.api.bindevent($("form[role=form]"));
  221. }
  222. }
  223. };
  224. return Controller;
  225. });