add.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455
  1. var selectedData = { cols: [], array: [] };
  2. var checkusersselect = null;
  3. var checkuserlist = new Array();
  4. var tabledatagride = null;
  5. var rowsDate;
  6. $(document).ready(function() {
  7. $.jeDate("#month_date", {
  8. isinitVal: true,
  9. format: 'YYYY/MM' // 分隔符可以任意定义,该例子表示只显示年月
  10. });
  11. $("#month_date").val(getCurrentTimeFormat());
  12. var checked_dept = null;
  13. if (roleContains("QZD")) {
  14. checked_dept = getCurrentUser().organid;
  15. }
  16. setWreckerGroupSelect("#qzd", checked_dept);
  17. getpeople();
  18. //默认值 $("#qzd").val()
  19. var dd = 89;
  20. if ($("#qzd").val() != "") {
  21. dd = $("#qzd").val();
  22. }
  23. inittAreaable($("#month_date").val(), $("#qzd").val(),$("#qzdpeople").val());
  24. initselecttable();
  25. laydate.render({
  26. elem: '#starttime',
  27. type: 'time'
  28. });
  29. laydate.render({
  30. elem: '#endtime',
  31. type: 'time'
  32. });
  33. });
  34. var recordlist = null;
  35. var stimemonth = null;
  36. function initselecttable() {
  37. selectedData = { cols: [], array: [], cache: false };
  38. selectedData.cols.push({ width: 0.2, name: "name", label: '人员', style: { 'text-align': 'center', 'line-height': '34px' } });
  39. selectedData.cols.push({ width: 0.4, name: "car", label: '任务名称', style: { 'text-align': 'center', 'line-height': '34px' } });
  40. selectedData.cols.push({ width: 0.3, name: "option", label: '操作', html: true, style: { 'text-align': 'center', 'line-height': '34px' } });
  41. reloadtable();
  42. }
  43. function reloadtable() {
  44. $('#selected_table').datagrid({
  45. dataSource: selectedData,
  46. states: { fixedTopUntil: 0 },
  47. rowDefaultHeight: 50,
  48. height: 200,
  49. });
  50. }
  51. var layindex = null;
  52. var taskMap = new HashMap();
  53. function inittAreaable(time, dept, people) {
  54. layindex = layer.load(0, { shade: false });
  55. var t = time.replace("/", "-") + "";
  56. var endtime = moment(t + "-25T23:00:00", "YYYY-MM-DD HH:mm:ss");
  57. var starttime = moment(moment(t + "-25T23:00:00", "YYYY-MM-DD HH:mm:ss").subtract(1, 'month'));
  58. var param1 = { "startTime":new Date(starttime), "endTime": new Date(endtime), "dept": dept }
  59. post_common_service("/q/record/getall/0/0", param1, function(taskdata) {
  60. taskMap = new HashMap();
  61. recordlist = taskdata;
  62. taskdata.forEach(t => {
  63. var user = t.users.split(",");
  64. for(var i=0;i<user.length;i++){
  65. var key = user[i]+"_"+moment(t.received_time).format("YYYY-MM-DD");
  66. if (taskMap.get(key) != null) {
  67. var list = taskMap.get(key);
  68. list.push(t);
  69. taskMap.set(key, list);
  70. } else {
  71. var list = [];
  72. list.push(t);
  73. taskMap.set(key, list);
  74. }
  75. }
  76. });
  77. var userData = {
  78. "organid": dept
  79. }
  80. UserGetList(userData, function(redata) {
  81. layer.close(layer.index);
  82. var data ;
  83. var people = $("#qzdpeople").val();
  84. if( people != "全部"){
  85. for(var i in redata){
  86. if(people == redata[i].id){
  87. data = new Array();
  88. data[0]=redata[i];
  89. }
  90. }
  91. }else{
  92. data = redata;
  93. rowsDate = redata;
  94. }
  95. // checkuserlist = redata.checkusers;
  96. var datac = { cols: [], array: [] };
  97. var days = endtime.diff(starttime, 'days');
  98. datac.cols.push({ width: 120, name: 'type', label: "", });
  99. for (var i = 1; i <= days; i++) {
  100. var temp = moment(moment(t + "-25T23:00:00", "YYYY-MM-DD HH:mm:ss").subtract(1, 'month'));
  101. var currentday = temp.add(i, "day");
  102. var day = currentday.date();
  103. datac.cols.push({ width: 80, name: "day_" + i, label: currentday.format("MM-DD"), html: true, className: "table_content" });
  104. }
  105. // arealist = data;
  106. stimemonth = time;
  107. var timedate = [
  108. {},
  109. ]
  110. var dataconfigs = {
  111. C1: { className: "datagrid-cell-index", style: { 'text-align': 'center', } },
  112. R0: { style: { 'text-align': 'center', 'line-height': '36px' } }
  113. }
  114. var row = 1;
  115. for (var index in rowsDate) {
  116. var people = rowsDate[index];
  117. var data_table = {};
  118. data_table.type = people.truename;
  119. var maxsize = 0;
  120. for (var i = 1; i <= days; i++) {
  121. //内容
  122. var temp = moment(moment(t + "-25T23:00:00", "YYYY-MM-DD HH:mm:ss").subtract(1, 'month'));
  123. var currentday = temp.add(i, "day");
  124. var key = people.id + "_" + currentday.format("YYYY-MM-DD");
  125. var temphtml = "";
  126. if(taskMap.get(key) != null){
  127. if(taskMap.get(key).length > maxsize){
  128. maxsize = taskMap.get(key).length;
  129. }
  130. for(var k in taskMap.get(key)){
  131. var record = taskMap.get(key)[k];
  132. var stime = moment(record.received_time).format("HH:mm");
  133. var etime = moment(record.back_time).format("HH:mm");
  134. if(record.check_status == 2){
  135. temphtml = temphtml+'<div class="" data-toggle="buttons" id="div_' + people.id+ '_' + i + '" >' +
  136. '<label class="btn btn-info3" style="font-size:10px;padding:5%;width:90%;margin:5%">' +
  137. '<input type="checkbox" name="options" onchange="selectedTask(this)" id="' + people.id+'_' + i +'_'+k+'">'+stime+'-'+etime+
  138. '</label>'+
  139. "</div>";
  140. }else{
  141. temphtml = temphtml+'<div class="" data-toggle="buttons" id="div_' + people.id+ '_' + i + '" >' +
  142. '<label class="btn btn-info2" style="font-size:10px;padding:5%;width:90%;margin:5%">' +
  143. '<input type="checkbox" name="options" onchange="selectedTask(this)" id="' + people.id+'_' + i +'_'+k+'">'+stime+'-'+etime+
  144. '</label>'+
  145. "</div>";
  146. }
  147. }
  148. }
  149. //eval("dataconfigs."+dkey+"="+cssValue);
  150. // if(i == 4 ){
  151. // temphtml = '<div class="" data-toggle="buttons" id="div_' + people.id + '_' + i + '" >' +
  152. // '<label class="btn btn-info2" style="font-size:10px;padding:5%;width:90%;margin:5%">' +
  153. // "10:00-12:00"+
  154. // '</label>'+
  155. // "</div>";
  156. // temphtml = temphtml+'<div class="" data-toggle="buttons" id="div_' + people.id + '_' + i + '" >' +
  157. // '<label class="btn btn-info2" style="font-size:10px;padding:5%;width:90%;margin:5%">' +
  158. // '<input type="checkbox" name="options" onchange="selectedTask(this)" id="' + people.id + '_' + i + '"> 10:00-12:00'+
  159. // '</label>'+
  160. // "</div>";
  161. // }else{
  162. // //不存在稽查
  163. // temphtml = '<div class="" data-toggle="buttons" id="div_' + people.id + '_' + i + '" >' +
  164. // // '<label class="btn btn-info2" style="font-size:10px">' +
  165. // // "10:00-12:00"+
  166. // // '</label>';
  167. // "</div>";
  168. // }
  169. data_table["day_" + i] = temphtml;
  170. }
  171. if(maxsize > 1){
  172. var dkey = "R"+maxsize;
  173. var cssValue = {'rowspan': maxsize};
  174. eval("dataconfigs.R"+row+"="+"{'rowspan': "+maxsize+"}");
  175. rowsDate.splice(row,0,"无效");
  176. row = row+1;
  177. }else{
  178. row = row+1;
  179. }
  180. datac.array.push(data_table);
  181. }
  182. if (tabledatagride != null) {
  183. tabledatagride.dataSource.data = null;
  184. tabledatagride.setDataSource(datac);
  185. tabledatagride.setPager(1, datac.array.length, datac.array.length);
  186. tabledatagride.setConfigs(dataconfigs);
  187. tabledatagride.render();
  188. } else {
  189. $('#table_s').datagrid({
  190. dataSource: datac,
  191. states: { fixedLeftUntil: 1, fixedTopUntil: 0 },
  192. showRowIndex: false,
  193. onRender: function() {
  194. },
  195. configs: dataconfigs
  196. });
  197. tabledatagride = $('#table_s').data('zui.datagrid');
  198. }
  199. var jcb = {
  200. "organid":"29"
  201. }
  202. UserGetList(jcb, function(jcbdata) {
  203. console.log(jcbdata);
  204. // checkuserlist = jcbdata;
  205. for (var index in jcbdata) {
  206. var p = jcbdata[index];
  207. if(p.roles[0].id == 5){
  208. p.title = p.truename;
  209. checkuserlist.push(p);
  210. }
  211. }
  212. console.log(checkuserlist);
  213. if (checkusersselect != null) {
  214. reset();
  215. } else {
  216. checkusersselect = $('#check_users').comboTree({
  217. source: checkuserlist,
  218. isMultiple: true
  219. });
  220. }
  221. });
  222. });
  223. });
  224. }
  225. function setdatagrid(){
  226. }
  227. function reset() {
  228. initselecttable();
  229. var myDataGrid = $('#selected_table').data('zui.datagrid');
  230. myDataGrid.dataSource.data = null;
  231. myDataGrid.setDataSource(selectedData);
  232. myDataGrid.setPager(1, selectedData.array.length, selectedData.array.length);
  233. myDataGrid.render();
  234. if (checkusersselect != null) {
  235. $("#check_users").val("");
  236. checkusersselect.unbind();
  237. checkusersselect.closeDropDownMenu();
  238. checkusersselect.bindings();
  239. $(".ComboTreeItemChlid").find("input").prop('checked', false);
  240. }
  241. $("#starttime").val("");
  242. $("#endtime").val("");
  243. }
  244. function selectedTask(obj) {
  245. changeListItem(obj.id);
  246. }
  247. function removeListItem(obj) {
  248. var ids = obj.id.split("delete_");
  249. $("#" + ids[1]).parent().removeClass("active");
  250. $("#" + ids[1]).prop("checked", false);
  251. changeListItem(ids[1]);
  252. }
  253. function changeListItem(id) {
  254. console.log(taskMap);
  255. var cobj;
  256. var tempids = id.split("_");
  257. var t = stimemonth.replace("/", "-") + "";
  258. var temp = moment(moment(t + "-25T23:00:00", "YYYY-MM-DD HH:mm:ss").subtract(1, 'month'));
  259. var currentday = temp.add(tempids[1], "day");
  260. var taskMapid = tempids[0]+"_"+currentday.format("YYYY-MM-DD");
  261. var cpeople;
  262. for(var index in rowsDate){
  263. var obj = rowsDate[index];
  264. if(obj.id == tempids[0]){
  265. cpeople = obj;
  266. // truename = obj.truename;
  267. }
  268. }
  269. for(var i in recordlist){
  270. if(taskMap.get(taskMapid)[id.split("_")[2]].id == recordlist[i].id){
  271. cobj = recordlist[i];
  272. }
  273. }
  274. if ($("#" + id).prop('checked')) {
  275. activteChange(cobj,tempids);
  276. addlisttable(cobj, taskMapid,id);
  277. } else {
  278. activteRemove(cobj,tempids);
  279. removelisttable(cobj, currentday.format("YYYY-MM-DD"));
  280. }
  281. }
  282. function addlisttable(people, id,arryid) {
  283. var dept_info = null;
  284. id = trim(id);
  285. var time = id.split("_")[1];
  286. var record = taskMap.get(id)[arryid.split("_")[2]];
  287. var date = moment(record.received_time).format("MM/DD");
  288. var stime = moment(record.received_time).format("HH:mm");
  289. var etime = moment(record.back_time).format("HH:mm");
  290. var btn = '<button class="btn btn-primary" type="button" onclick="removeListItem(this)" id="delete_' + arryid + '">删除</button>';
  291. selectedData.array.push({"name": people.userNames, "car": date+' '+stime+"-"+etime+record.car_info+"清障任务", "option": btn, peopleinfo:people,time:time});
  292. var myDataGrid = $('#selected_table').data('zui.datagrid');
  293. myDataGrid.dataSource.data = null;
  294. myDataGrid.setDataSource(selectedData);
  295. myDataGrid.setPager(1, selectedData.array.length, selectedData.array.length);
  296. myDataGrid.render();
  297. // $('#selected_table').data('zui.datagrid').setDataSource(selectedData);
  298. // $('#selected_table').data('zui.datagrid').renderData();
  299. }
  300. function removelisttable(people,time) {
  301. for (var index in selectedData.array) {
  302. var o = selectedData.array[index];
  303. if (o != null && o.peopleinfo.id == people.id && time.format("YYYY-MM-DD") == o.time) {
  304. selectedData.array.splice(index, 1);
  305. }
  306. }
  307. var myDataGrid = $('#selected_table').data('zui.datagrid');
  308. myDataGrid.dataSource.data = null;
  309. myDataGrid.setDataSource(selectedData);
  310. myDataGrid.setPager(1, selectedData.array.length, selectedData.array.length);
  311. myDataGrid.render();
  312. //reloadtable();
  313. }
  314. function search() {
  315. inittAreaable($("#month_date").val(), $("#qzd").val(),$("#qzdpeople").val());
  316. }
  317. function addTask() {
  318. //获取列表
  319. var tasklist = selectedData.array;
  320. console.log(tasklist);
  321. if (tasklist.length < 1) {
  322. layer.msg('未选择清障记录!', {
  323. time: 2000, //20s后自动关闭
  324. });
  325. return;
  326. }
  327. var check_user_list = checkusersselect.getSelectedItemsId();
  328. var count = tasklist.length / check_user_list.length;
  329. var u_index = 0;
  330. var index = 0;
  331. for(var i in tasklist){
  332. var obj = tasklist[i];
  333. if (index++ == count) {
  334. u_index++;
  335. if (u_index == check_user_list.length) {
  336. u_index--;
  337. }
  338. }
  339. var param = {
  340. "name": obj.car,
  341. "check_status": 2,
  342. "start_time" :moment(obj.peopleinfo.received_time).format("YYYY-MM-DD HH:mm:ss"),
  343. "end_time" : moment(obj.peopleinfo.back_time).format("YYYY-MM-DD HH:mm:ss"),
  344. "checked_dept": obj.peopleinfo.dept,
  345. "checkman" : parseInt(check_user_list[u_index]),
  346. "record_id" : parseInt(obj.peopleinfo.id),
  347. "checked_users" : obj.peopleinfo.users,
  348. "rule_id" : 6
  349. }
  350. console.log(param);
  351. post_common_service('/q/task/add', param, function(redata) {
  352. layer.msg('已添加', { icon: 1 });
  353. //inittAreaable($("#month_date").val(), $("#qzd").val());
  354. });
  355. }
  356. // post_common_service('/f/task/add', param, function(redata) {
  357. // // layer.msg('已添加', { icon: 1 });
  358. // inittAreaable($("#month_date").val(), $("#qzd").val());
  359. // });
  360. }
  361. function getpeople(){
  362. var orginid = $("#qzd").val();
  363. var userData = {
  364. "organid": orginid
  365. }
  366. UserGetList(userData, function(data) {
  367. var opstr ='<option>全部</option>';
  368. for(var i in data){
  369. opstr += "<option value='"+data[i].id+"'>"+data[i].truename+"</option>";
  370. }
  371. $(qzdpeople).html('');
  372. $(qzdpeople).html(opstr);
  373. });
  374. }
  375. function activteChange(cobj,tempids){
  376. var usersids = cobj.users.split(",");
  377. if(usersids.length >1){
  378. for(var j in usersids){
  379. var objid = usersids[j]+"_"+tempids[1]+"_"+tempids[2];
  380. if($("#" + objid).prop('checked') == false){
  381. $("#" + objid).parent().addClass("active");
  382. $("#" + objid).prop("checked", true);
  383. }
  384. }
  385. }
  386. }
  387. function activteRemove(cobj,tempids){
  388. var usersids = cobj.users.split(",");
  389. if(usersids.length >1){
  390. for(var j in usersids){
  391. var objid = usersids[j]+"_"+tempids[1]+"_"+tempids[2];
  392. if($("#" + objid).prop('checked')){
  393. $("#" + objid).parent().removeClass("active");
  394. $("#" + objid).prop("checked", false);
  395. }
  396. }
  397. }
  398. }