canlendar.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. define(['jquery', 'bootstrap', 'backend', 'form', 'table'], function ($, undefined, Backend, Form, Table) {
  2. function get_need_number(){
  3. $.post("qingdongams/customer/need/get_need_number",function (data){
  4. top.window.Backend.api.sidebar({
  5. 'qingdongams/customer/need/index':[data.data.number, 'red', 'badge'],
  6. 'qingdongams/customer/need':[data.data.number, 'red', 'badge'],
  7. 'qingdongams/examine/examine/index':[data.data.contract, 'red', 'badge'], //合同
  8. 'qingdongams/examine/examine/consume':[data.data.consume, 'red', 'badge'],
  9. 'qingdongams/examine/examine/receivables':[data.data.receivables, 'red', 'badge'],
  10. 'qingdongams/examine/examine/achievement':[data.data.achievement, 'red', 'badge'],
  11. 'qingdongams/examine/examine/work':[data.data.approval, 'red', 'badge'],
  12. 'qingdongams/canlendar/canlendar':[data.data.eventOne, 'red', 'badge'],
  13. });
  14. },'json');
  15. }
  16. get_need_number();
  17. setInterval(function (){
  18. get_need_number();
  19. },50000);
  20. var Controller = {
  21. index: function () {
  22. // 初始化表格参数配置
  23. Table.api.init({
  24. extend: {
  25. index_url: 'qingdongams/canlendar/canlendar/index?need='+Fast.api.query("need"),
  26. add_url: 'qingdongams/canlendar/canlendar/add',
  27. edit_url: 'qingdongams/canlendar/canlendar/edit',
  28. del_url: 'qingdongams/canlendar/canlendar/del',
  29. table: 'canlendar'
  30. }
  31. });
  32. var table = $("#table");
  33. // 初始化表格
  34. table.bootstrapTable({
  35. url: $.fn.bootstrapTable.defaults.extend.index_url,
  36. sortName: 'id',
  37. columns: [
  38. [
  39. {field: 'state', checkbox: true},
  40. {field: 'title', title: __('标题'), operate:"like", formatter: function (value, row) {
  41. if(row.relation_type == 'event'){
  42. return "<a href='javascript:void(0);' data-id='" + row.id + "' class='show-event-detail'>" + value + "</a>";
  43. }else{
  44. return "<a href='javascript:void(0);' data-id='" + row.relation_id + "' class='show-workorder-detail'>" + value + "</a>";
  45. }
  46. }},
  47. {field: 'event_type', title: __('类型'), operate:"like"},
  48. {field: 'start_time', title: __('开始时间'), operate:false},
  49. {field: 'end_time', title: __('结束时间'), operate:false},
  50. {field: 'staff.name', title: __('归属人'), operate:false},
  51. {field: 'status', title: __('状态'),formatter:Table.api.formatter.status,
  52. searchList: {'0':'未开始', 1:'执行中',2:'已结束',3:'已取消',}},
  53. {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime},
  54. ]
  55. ],
  56. //启用普通表单搜索
  57. commonSearch: true,
  58. searchFormVisible: true,
  59. });
  60. // 为表格绑定事件
  61. Table.api.bindevent(table);
  62. $('.search').hide();
  63. $('.btn-import').hide();
  64. $(document).on('click', '.show-event-detail', function () {
  65. var id = $(this).data('id');
  66. var area = [$(window).width() > 1200 ? '1200px' : '95%', $(window).height() > 800 ? '800px' : '95%'];
  67. var options = {
  68. shadeClose: false,
  69. shade: [0.3, '#393D49'],
  70. area: area,
  71. };
  72. Fast.api.open("qingdongams/event/event/detail?ids=" + id, '任务详情', options);
  73. }).on('click', '.show-workorder-detail', function () {
  74. var id = $(this).data('id');
  75. var area = [$(window).width() > 1200 ? '1200px' : '95%', $(window).height() > 800 ? '800px' : '95%'];
  76. var options = {
  77. shadeClose: false,
  78. shade: [0.3, '#393D49'],
  79. area: area,
  80. };
  81. Fast.api.open("qingdongams/workorder/workorder/detail?ids=" + id, '工单详情', options);
  82. });
  83. },
  84. add: function () {
  85. $('.relation_type').change(function(){
  86. var type = $(this).val();
  87. var url = '';
  88. if(type == 1){
  89. url = 'qingdongams/canlendar/canlendar/customer';
  90. }else if(type == 2){
  91. url = 'qingdongams/canlendar/canlendar/contacts';
  92. }else if(type == 3){
  93. url = 'qingdongams/canlendar/canlendar/contract';
  94. }else{
  95. url = 'qingdongams/canlendar/canlendar/leads';
  96. }
  97. $.ajax({url:url,success:function(ret) {
  98. if (ret.code == 1) {
  99. var data = ret.data;
  100. var length = data.length;
  101. var html = '';
  102. for (var i = 0; i < length; i++) {
  103. html += '<option value="' + data[i].id + '">' + data[i].name + '</option>';
  104. }
  105. $('#c-type').html(html);
  106. $('select').selectpicker('refresh');
  107. }
  108. }
  109. });
  110. });
  111. Controller.api.bindevent();
  112. },
  113. edit: function () {
  114. $('.relation_type').change(function(){
  115. var type = $(this).val();
  116. var url = '';
  117. if(type == 1){
  118. url = 'qingdongams/canlendar/canlendar/customer';
  119. }else if(type == 2){
  120. url = 'qingdongams/canlendar/canlendar/contacts';
  121. }else if(type == 3){
  122. url = 'qingdongams/canlendar/canlendar/contract';
  123. }else{
  124. url = 'qingdongams/canlendar/canlendar/leads';
  125. }
  126. $.ajax({url:url,success:function(ret) {
  127. if (ret.code == 1) {
  128. var data = ret.data;
  129. var length = data.length;
  130. var html = '';
  131. for (var i = 0; i < length; i++) {
  132. html += '<option value="' + data[i].id + '">' + data[i].name + '</option>';
  133. }
  134. $('#c-type').html(html);
  135. $('select').selectpicker('refresh');
  136. }
  137. }
  138. });
  139. });
  140. Controller.api.bindevent();
  141. },
  142. api: {
  143. bindevent: function () {
  144. Form.api.bindevent($("form[role=form]"));
  145. },
  146. formatter: {
  147. thumb: function (value, row, index) {
  148. var style = row.storage == 'upyun' ? '!/fwfh/120x90' : '';
  149. return '<img src="' + row.image + '" data-tips-image alt="" title="封面图" style="max-height:90px;max-width:120px">';
  150. },
  151. }
  152. }
  153. };
  154. return Controller;
  155. });