achievement.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. define(['jquery', 'bootstrap', 'backend', 'form', 'table'], function ($, undefined, Backend, Form, Table) {
  2. var Controller = {
  3. index : function () {
  4. // 初始化表格参数配置
  5. Table.api.init({
  6. extend : {
  7. index_url : 'qingdongams/department/achievement/index',
  8. add_url : 'qingdongams/department/achievement/add',
  9. table : 'achievement'
  10. }
  11. });
  12. var table = $("#table");
  13. // 初始化表格
  14. table.bootstrapTable({
  15. url : $.fn.bootstrapTable.defaults.extend.index_url,
  16. sortName : 'id',
  17. fixedColumns : true,
  18. // fixedNumber : 2,
  19. fixedRightNumber : 1,
  20. columns : [
  21. [
  22. {checkbox : true,rowspan:2},
  23. {field : 'staff.name', title : __('姓名'),rowspan:2},
  24. {field : 'status', title : __('考核目标'),rowspan:2, formatter : Table.api.formatter.status, searchList :{1:'获客',2:'拜访',3: '合同金额', 4: '回款金额'}},
  25. {field : 'all', title : __('全年'),colspan:3},
  26. {field : 'one',colspan:3, title : __('第一季度')},
  27. {field : 'two',colspan:3, title : __('第二季度')},
  28. {field : 'three',colspan:3, title : __('第三季度')},
  29. {field : 'four',colspan:3, title : __('第四季度')},
  30. {field : 'january',colspan:3, title : __('一月')},
  31. {field : 'february',colspan:3, title : __('二月')},
  32. {field : 'march',colspan:3, title : __('三月')},
  33. {field : 'april',colspan:3, title : __('四月')},
  34. {field : 'may',colspan:3, title : __('五月')},
  35. {field : 'june',colspan:3, title : __('六月')},
  36. {field : 'july',colspan:3, title : __('七月')},
  37. {field : 'august',colspan:3, title : __('八月')},
  38. {field : 'september',colspan:3, title : __('九月')},
  39. {field : 'october',colspan:3, title : __('十月')},
  40. {field : 'november',colspan:3, title : __('十一月')},
  41. {field : 'december',colspan:3, title : __('十二月')},
  42. {
  43. field : 'operate',
  44. title : __('Operate'),
  45. rowspan:2,
  46. table : table,
  47. events : Table.api.events.operate,
  48. formatter : Table.api.formatter.operate,
  49. buttons : [
  50. {
  51. name : 'save',
  52. text : __('修改目标'),
  53. classname : 'records btn-dialog',
  54. extend: 'data-area=["90%","90%"]',
  55. url : 'qingdongams/department/achievement/edit',
  56. callback: function (data) {
  57. $('.btn-success').trigger('click');
  58. },
  59. },
  60. {
  61. name : 'delete',
  62. text : __('删除'),
  63. classname : 'records btn-ajax',
  64. confirm: '确认要删除当前目标?',
  65. refresh:true,
  66. extend: 'data-area=["90%","90%"]',
  67. url : 'qingdongams/department/achievement/del',
  68. callback: function (data) {
  69. $('.btn-success').trigger('click');
  70. },
  71. }
  72. ]
  73. }
  74. ],
  75. [
  76. {field : 'year_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  77. {field : 'yeartarget', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  78. {field : 'year_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  79. {field : 'one_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  80. {field : 'one', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  81. {field : 'one_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  82. {field : 'two_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  83. {field : 'two', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  84. {field : 'two_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  85. {field : 'three_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  86. {field : 'three', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  87. {field : 'three_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  88. {field : 'four_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  89. {field : 'four', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  90. {field : 'four_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  91. {field : 'january_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  92. {field : 'january', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  93. {field : 'january_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  94. {field : 'february_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  95. {field : 'february', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  96. {field : 'february_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  97. {field : 'march_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  98. {field : 'march', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  99. {field : 'march_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  100. {field : 'april_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  101. {field : 'april', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  102. {field : 'april_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  103. {field : 'may_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  104. {field : 'may', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  105. {field : 'may_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  106. {field : 'june_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  107. {field : 'june', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  108. {field : 'june_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  109. {field : 'july_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  110. {field : 'july', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  111. {field : 'july_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  112. {field : 'august_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  113. {field : 'august', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  114. {field : 'august_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  115. {field : 'september_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  116. {field : 'september', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  117. {field : 'september_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  118. {field : 'october_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  119. {field : 'october', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  120. {field : 'october_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  121. {field : 'november_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  122. {field : 'november', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  123. {field : 'november_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  124. {field : 'december_money', title : __('已完成'),cellStyle:{css: {"border": "0"}}},
  125. {field : 'december', title : __('目标'),cellStyle:{css: {"border": "0"}}},
  126. {field : 'december_ratio', title : __('完成率'),cellStyle:{css: {"border": "0",'border-right':'1px solid #eae8e8','color':'red'}}},
  127. ]
  128. ],
  129. templateView : false,
  130. clickToSelect : false,
  131. search : false,
  132. showColumns : false,
  133. showToggle : false,
  134. showExport : false,
  135. showSearch : false,
  136. commonSearch : true,
  137. searchFormVisible : true,
  138. searchFormTemplate : 'searchformtpl',
  139. pageSize : 50
  140. });
  141. // 为表格绑定事件
  142. Table.api.bindevent(table);
  143. },
  144. personal : function () {
  145. // 初始化表格参数配置
  146. Table.api.init({
  147. extend : {
  148. index_url : 'qingdongams/department/achievement/personal',
  149. table : 'achievement'
  150. }
  151. });
  152. var table = $("#table");
  153. // 初始化表格
  154. table.bootstrapTable({
  155. url : $.fn.bootstrapTable.defaults.extend.index_url,
  156. sortName : 'id',
  157. fixedColumns : true,
  158. fixedNumber : 2,
  159. fixedRightNumber : 1,
  160. columns : [
  161. [
  162. {checkbox : true},
  163. {field : 'year', title : __('年份')},
  164. {field : 'status', title : __('目标'), formatter : Table.api.formatter.status, searchList :{1:'获客',2:'拜访',3: '合同金额', 4: '回款金额'}},
  165. {field : 'all', title : __('全年')},
  166. {field : 'one', title : __('第一季度')},
  167. {field : 'january', title : __('一月')},
  168. {field : 'february', title : __('二月')},
  169. {field : 'march', title : __('三月')},
  170. {field : 'two', title : __('第二季度')},
  171. {field : 'april', title : __('四月')},
  172. {field : 'may', title : __('五月')},
  173. {field : 'june', title : __('六月')},
  174. {field : 'three', title : __('第三季度')},
  175. {field : 'july', title : __('七月')},
  176. {field : 'august', title : __('八月')},
  177. {field : 'september', title : __('九月')},
  178. {field : 'four', title : __('第四季度')},
  179. {field : 'october', title : __('十月')},
  180. {field : 'november', title : __('十一月')},
  181. {field : 'december', title : __('十二月')},
  182. {
  183. field : 'operate',
  184. title : __('Operate'),
  185. table : table,
  186. events : Table.api.events.operate,
  187. formatter : Table.api.formatter.operate,
  188. buttons : [
  189. {
  190. name : '设置目标',
  191. text : __('设置目标'),
  192. classname : 'btn btn-info btn-xs btn-dialog',
  193. url : 'qingdongams/department/achievement/edit_personal/status/{status}/year/{year}',
  194. callback: function (data) {
  195. $('.btn-success').trigger('click');
  196. },
  197. }
  198. ]
  199. }
  200. ]
  201. ],
  202. templateView : false,
  203. clickToSelect : false,
  204. search : false,
  205. showColumns : false,
  206. showToggle : false,
  207. showExport : false,
  208. showSearch : false,
  209. commonSearch : true,
  210. searchFormVisible : true,
  211. searchFormTemplate : 'searchformtpl',
  212. pageSize : 50
  213. });
  214. // 为表格绑定事件
  215. Table.api.bindevent(table);
  216. },
  217. records : function () {
  218. // 初始化表格参数配置
  219. Table.api.init({
  220. extend : {
  221. index_url : 'qingdongams/department/achievement/records',
  222. table : 'achievement'
  223. }
  224. });
  225. var table = $("#table");
  226. // 初始化表格
  227. table.bootstrapTable({
  228. url : $.fn.bootstrapTable.defaults.extend.index_url,
  229. sortName : 'id',
  230. fixedColumns : true,
  231. columns : [
  232. [
  233. {checkbox : true},
  234. {field : 'year', title : __('年份')},
  235. {field : 'check_status', title : __('审核状态'), formatter : Table.api.formatter.status,
  236. searchList :{0: '待审核', 1: '审核中',2:'审核通过',3:'审核未通过',4:'撤销'}},
  237. {field : 'staff.name', title : __('提交人')},
  238. {field : 'check_staff', title : __('审核人')},
  239. {field : 'createtime', title : __('提交时间')},
  240. {field : 'status', title : __('目标类型'), formatter : Table.api.formatter.status, searchList :{1:'获客',2:'拜访',3: '合同金额', 4: '回款金额'}},
  241. {field : 'yeartarget', title : __('年目标')},
  242. {field : 'january', title : __('一月')},
  243. {field : 'february', title : __('二月')},
  244. {field : 'march', title : __('三月')},
  245. {field : 'april', title : __('四月')},
  246. {field : 'may', title : __('五月')},
  247. {field : 'june', title : __('六月')},
  248. {field : 'july', title : __('七月')},
  249. {field : 'august', title : __('八月')},
  250. {field : 'september', title : __('九月')},
  251. {field : 'october', title : __('十月')},
  252. {field : 'november', title : __('十一月')},
  253. {field : 'december', title : __('十二月')},
  254. ]
  255. ],
  256. templateView : false,
  257. clickToSelect : false,
  258. search : false,
  259. showColumns : false,
  260. showToggle : false,
  261. showExport : false,
  262. showSearch : false,
  263. commonSearch : true,
  264. pageSize : 50
  265. });
  266. // 为表格绑定事件
  267. Table.api.bindevent(table);
  268. },
  269. add : function () {
  270. Controller.api.bindevent();
  271. },
  272. edit : function () {
  273. Controller.api.bindevent();
  274. },
  275. detail : function () {
  276. Controller.api.bindevent();
  277. },
  278. edit_personal : function () {
  279. $('.month').on('change',function () {
  280. var january = parseFloat($('#january').val()),
  281. february = parseFloat($('#february').val()),
  282. march = parseFloat($('#march').val()),
  283. april = parseFloat($('#april').val()),
  284. may = parseFloat($('#may').val()),
  285. june = parseFloat($('#june').val()),
  286. july = parseFloat($('#july').val()),
  287. august = parseFloat($('#august').val()),
  288. september = parseFloat($('#september').val()),
  289. october = parseFloat($('#october').val()),
  290. november = parseFloat($('#november').val()),
  291. december = parseFloat($('#december').val());
  292. $('#all').html((january + february + march + april + may + june + july + august + september + october + november + december).toFixed(2))
  293. $('#yeartarget').val((january + february + march + april + may + june + july + august + september + october + november + december).toFixed(2))
  294. $('#one').html((january + february + march).toFixed(2));
  295. $('#two').html((april + may + june).toFixed(2));
  296. $('#three').html((july + august + september).toFixed(2));
  297. $('#four').html((october + november + december).toFixed(2));
  298. $(this).val(parseFloat($(this).val()));
  299. }).trigger('change');
  300. Controller.api.bindevent();
  301. },
  302. api : {
  303. bindevent : function () {
  304. $('.average_month').on('click',function (){
  305. var yeartarget=$('#yeartarget').val();
  306. var average=Math.floor(parseFloat(yeartarget/12) * 100) / 100
  307. $('.month').val(average).trigger('change');
  308. });
  309. $('.month').on('change',function () {
  310. var january = parseFloat($('#january').val()),
  311. february = parseFloat($('#february').val()),
  312. march = parseFloat($('#march').val()),
  313. april = parseFloat($('#april').val()),
  314. may = parseFloat($('#may').val()),
  315. june = parseFloat($('#june').val()),
  316. july = parseFloat($('#july').val()),
  317. august = parseFloat($('#august').val()),
  318. september = parseFloat($('#september').val()),
  319. october = parseFloat($('#october').val()),
  320. november = parseFloat($('#november').val()),
  321. december = parseFloat($('#december').val());
  322. $('#all').html((january + february + march + april + may + june + july + august + september + october + november + december).toFixed(2))
  323. $('#yeartarget').val((january + february + march + april + may + june + july + august + september + october + november + december).toFixed(2))
  324. $('#one').html((january + february + march).toFixed(2));
  325. $('#two').html((april + may + june).toFixed(2));
  326. $('#three').html((july + august + september).toFixed(2));
  327. $('#four').html((october + november + december).toFixed(2));
  328. $(this).val(parseFloat($(this).val()));
  329. }).trigger('change');
  330. Form.api.bindevent($("form[role=form]"), function(data, ret){
  331. //这里是表单提交处理成功后的回调函数,接收来自php的返回数据
  332. Fast.api.close(data);//这里是重点
  333. }, function(data, ret){
  334. });
  335. },
  336. formatter : {},
  337. }
  338. };
  339. return Controller;
  340. });