intention.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'selectpage'], function ($, undefined, Backend, Table, Form, Selectpage) {
  2. var Controller = {
  3. index: function () {
  4. // 初始化表格参数配置
  5. Table.api.init({
  6. extend: {
  7. index_url: 'intention/index',
  8. add_url: 'intention/add',
  9. edit_url: 'intention/edit',
  10. del_url: 'intention/del',
  11. follow_url: 'intention/follow',
  12. multi_url: 'intention/multi',
  13. table: 'intention',
  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. showToggle: false,
  23. showColumns: false,
  24. showExport: false,
  25. columns: [
  26. [
  27. {field: 'unit_name', title: '公司名称'},
  28. {field: 'unit_type', title: __('Unit_type'), searchable: false},
  29. {field: 'usr_nickname', title: '操作人'},
  30. {field: 'depart_id', title: '操作人部门',searchable: false,searchList: $.getJSON('auth/group/departList'),formatter:function (value, row) {
  31. return row.usr_depart;
  32. }},
  33. {field: 'created_at', title: '创建时间', operate:'RANGE', addclass:'datetimerange', searchable: false},
  34. {field: 'operate', title: __('Operate'),searchable: false,
  35. table: table,
  36. events: Controller.api.events.operate,
  37. formatter: Controller.api.formatter.operate
  38. }
  39. ]
  40. ]
  41. });
  42. // 为表格绑定事件
  43. Table.api.bindevent(table);
  44. },
  45. add: function () {
  46. $.ajax({
  47. url: 'intention/unitTypeList',
  48. type: 'post',
  49. dataType: 'json',
  50. success: function success(res) {
  51. var data = res.rows;
  52. $('#c-unit_type').selectPage({
  53. data : data,
  54. });
  55. console.log(data);
  56. }
  57. });
  58. Controller.api.bindevent();
  59. },
  60. edit: function () {
  61. Controller.api.bindevent();
  62. },
  63. follow: function () {
  64. Controller.api.bindevent();
  65. },
  66. api: {
  67. bindevent: function () {
  68. Form.api.bindevent($("form[role=form]"));
  69. },
  70. formatter:{
  71. operate: function (value, row, index) {
  72. var table = this.table;
  73. // 操作配置
  74. var options = table ? table.bootstrapTable('getOptions') : {};
  75. // 默认按钮组
  76. var buttons = $.extend([], this.buttons || []);
  77. switch (row.status){
  78. case 0: //保护中
  79. buttons.push({text: '放弃', classname: 'btn btn-xs btn-danger btn-giveup'});
  80. buttons.push({text:'跟进', classname: 'btn btn-xs btn-info btn-follow'});
  81. buttons.push({text:'修改', classname: 'btn btn-xs btn-primary btn-editone'});
  82. buttons.push({text:'详情', classname: 'btn btn-xs btn-warning btn-detail'});
  83. buttons.push({
  84. name: 'del',
  85. icon: 'fa fa-trash',
  86. title: __('Del'),
  87. extend: 'data-toggle="tooltip"',
  88. classname: 'btn btn-xs btn-danger btn-delone'
  89. });
  90. break;
  91. case 1:
  92. buttons.push({text:'详情', classname: 'btn btn-xs btn-warning btn-detail'});
  93. break;
  94. case 2:
  95. buttons.push({text:'修改', classname: 'btn btn-xs btn-primary btn-editone'});
  96. buttons.push({text:'详情', classname: 'btn btn-xs btn-warning btn-detail'});
  97. break;
  98. case 4:
  99. buttons.push({text:'详情', classname: 'btn btn-xs btn-warning btn-detail'});
  100. break;
  101. }
  102. return Table.api.buttonlink(this, buttons, value, row, index, 'operate');
  103. },
  104. },
  105. events:{
  106. operate: {
  107. // 放弃
  108. 'click .btn-giveup': function(e, value, row) {
  109. Layer.confirm('您确定放弃吗?',function (index) {
  110. var id = row.id;
  111. $.ajax({
  112. url: 'intention/giveup',
  113. type: 'post',
  114. data: { id:id },
  115. dataType: 'json',
  116. success: function success(res) {
  117. Layer.close(index);
  118. if(res.code == 1){
  119. Toastr.success(res.msg);
  120. $('.btn-refresh').click();
  121. } else {
  122. Toastr.error(res.msg);
  123. }
  124. }
  125. });
  126. });
  127. },
  128. // 跟进
  129. 'click .btn-follow': function (e, value, row) {
  130. e.stopPropagation();
  131. e.preventDefault();
  132. var options = $(this).closest('table').bootstrapTable('getOptions');
  133. var open = Fast.api.open(options.extend.follow_url + (options.extend.follow_url.match(/(\?|&)+/) ? "&ids=" : "/ids/") + row[options.pk], __('Follow'), {
  134. title: '跟进',
  135. maxmin: false
  136. });
  137. },
  138. // 修改
  139. 'click .btn-editone': function clickBtnEditone(e, value, row, index) {
  140. e.stopPropagation();
  141. e.preventDefault();
  142. var options = $(this).closest('table').bootstrapTable('getOptions');
  143. var open = Fast.api.open(options.extend.edit_url + (options.extend.edit_url.match(/(\?|&)+/) ? "&ids=" : "/ids/") + row[options.pk], __('Edit'), {
  144. title: '修改',
  145. maxmin: false
  146. });
  147. },
  148. 'click .btn-detail': function clickBtnEditone(e, value, row, index) {
  149. var html = '<table class="table table-striped table-bordered table-hover">';
  150. html += '<tr><td>公司名称</td><td>'+ row.unit_name +'</td></tr>';
  151. html += '<tr><td>联系人</td><td>'+ row.contacts +'</td></tr>';
  152. html += '<tr><td>手机</td><td>'+ row.phone +'</td></tr>';
  153. html += '<tr><td>固定电话</td><td>'+ row.fixed_phone +'</td></tr>';
  154. html += '<tr><td>地址</td><td>'+ row.address +'</td></tr>';
  155. html += '<tr><td>联系人职位</td><td>'+ row.con_position +'</td></tr>';
  156. html += '<tr><td>单位性质</td><td>'+ row.unit_type +'</td></tr>';
  157. html += '<tr><td>人数</td><td>'+ row.number +'</td></tr>';
  158. html += '<tr><td>单价</td><td>'+ row.price +'</td></tr>';
  159. html += '<tr><td>备注</td><td>'+ row.remark +'</td></tr>';
  160. html += '<tr><td>操作人</td><td>'+ row.usr_nickname +'</td></tr>';
  161. html += '<tr><td>操作人部门</td><td>'+ row.usr_depart +'</td></tr>';
  162. html += '</table>';
  163. Layer.open({
  164. content : html,
  165. area : ['500px'],
  166. })
  167. },
  168. 'click .btn-delone': function (e, value, row, index) {
  169. e.stopPropagation();
  170. e.preventDefault();
  171. var that = this;
  172. var top = $(that).offset().top - $(window).scrollTop();
  173. var left = $(that).offset().left - $(window).scrollLeft() - 260;
  174. if (top + 154 > $(window).height()) {
  175. top = top - 154;
  176. }
  177. if ($(window).width() < 480) {
  178. top = left = undefined;
  179. }
  180. Layer.confirm(
  181. __('Are you sure you want to delete this item?'),
  182. {icon: 3, title: __('Warning'), offset: [top, left], shadeClose: true},
  183. function (index) {
  184. var table = $(that).closest('table');
  185. var options = table.bootstrapTable('getOptions');
  186. Table.api.multi("del", row[options.pk], table, that);
  187. Layer.close(index);
  188. }
  189. );
  190. }
  191. }
  192. }
  193. }
  194. };
  195. // 全系统搜索
  196. $('.btn-all-search').click(function () {
  197. var val = $('.input-all-search').val();
  198. $.ajax({
  199. url: 'intention/allSearch',
  200. type: 'post',
  201. data: { val:val },
  202. dataType: 'json',
  203. success: function success(res) {
  204. Layer.open({
  205. content:res,
  206. area:['800px'],
  207. title:val
  208. })
  209. }
  210. });
  211. });
  212. return Controller;
  213. });