Bez popisu

addOrEditPlan.js 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803
  1. var ids = helper.request.queryString("ids");
  2. var ajaxUrl;
  3. var indexNum = 0;
  4. var previous = ''; //项目名称切换前的值
  5. var planSdate = ''; //提示信息 计划开始执行的日期;
  6. var channel = 1; //来源渠道
  7. $(function() {
  8. //使用期限
  9. laydate.render({
  10. elem: '#startDate',
  11. type: 'datetime',
  12. range: '~',
  13. theme: '#249fea'
  14. });
  15. laydate.render({
  16. elem: '#expirytime',
  17. range: '~',
  18. btns: ['now', 'confirm'],
  19. theme: '#249fea',
  20. min: helper.DateFormat.getNowDate(),
  21. done: function(value, date, endDate) {
  22. planSdate = value.split(' ~ ')[0];
  23. if ($('#planinterval').val() == 1) {
  24. getMsgTips1();
  25. } else {
  26. getMsgTips();
  27. }
  28. }
  29. });
  30. laydate.render({
  31. elem: '#sstart_time',
  32. type: 'time',
  33. theme: '#249fea',
  34. btns: ['now', 'confirm'],
  35. format: 'HH:mm',
  36. done: function(value, date, endDate) {
  37. getMsgTips(value);
  38. },
  39. });
  40. laydate.render({
  41. elem: '#sstop_time',
  42. type: 'time',
  43. theme: '#249fea',
  44. btns: ['now', 'confirm'],
  45. format: 'HH:mm',
  46. done: function(value, date, endDate) {
  47. getMsgTips('', value);
  48. },
  49. });
  50. $('#sstart_time').val('00:00');
  51. $('#sstop_time').val('23:59');
  52. helper.getDropList.getProlistDrop($('#projectid'))
  53. .then(function() {
  54. $('#projectid').on('change', function() {
  55. $('#building').selectpicker('destroy');
  56. $('#floor').selectpicker('destroy');
  57. $('#floor').empty();
  58. $('#floor').append("<option value=''>请选择楼层</option>");
  59. helper.getDropList.getBuildlistDrop($('#building'), $(this).val());
  60. });
  61. $('#building').on('change', function() {
  62. $('#floor').selectpicker('destroy');
  63. helper.getDropList.getFloorlistDrop($('#floor'), $(this).val());
  64. });
  65. // getAddressSelect($('#deliverylist'), $('#projectid').val(), 0); //发货
  66. // getAddressSelect($('#receiverlist'), $('#pro_title').val(), 1);//1收货
  67. })
  68. .then(function() {
  69. if (ids) {
  70. getDetail(ids);
  71. ajaxUrl = "distributionapi/api/DistriWorkOrderPlan/update";
  72. } else {
  73. ajaxUrl = "distributionapi/api/DistriWorkOrderPlan/add";
  74. }
  75. });
  76. //绑定项目名称 切换
  77. $('#projectid').parent().on('mouseup', sysTitleClick);
  78. $('#projectid').on('change', sysTitleChange);
  79. //绑定巡检频率 执行间隔的切换
  80. $('#planinterval').on('change', planintervalChange);
  81. //绑定巡检频率 执行频率的切换
  82. $('#plantimes').on('change', plantimesChange);
  83. //绑定开始时间 第几天 的切换
  84. $('#sstart_select').on('change', getMsgTips);
  85. //绑定结束时间 第几天 的切换
  86. $('#sstop_select').on('change', getMsgTips);
  87. //添加或者编辑保存
  88. $('#HY_save').on('click', addValue);
  89. })
  90. //添加或者编辑
  91. function addValue() {
  92. if ($("#projectid").val() == '') {
  93. layer.confirm('请选择项目信息!', {
  94. icon: 2,
  95. btn: ['确定'] //按钮
  96. });
  97. return;
  98. }
  99. if (!$.trim($('#building').val())) {
  100. layer.confirm('发货地址中,楼宇名称不允许为空!', {
  101. icon: 2,
  102. btn: ['确定'] //按钮
  103. });
  104. return;
  105. }
  106. if (!$.trim($('#floor').val())) {
  107. layer.confirm('发货地址中,楼层名称不允许为空!', {
  108. icon: 2,
  109. btn: ['确定'] //按钮
  110. });
  111. return;
  112. }
  113. if (!$.trim($('#deliveryname').val())) {
  114. layer.confirm('发货人姓名不允许为空!', {
  115. icon: 2,
  116. btn: ['确定'] //按钮
  117. });
  118. return;
  119. }
  120. if(!regexs.phone.test($.trim($('#deliverytel').val()))) {
  121. layer.confirm('请输入正确格式的发货人电话!', {
  122. icon: 2,
  123. btn: ['确定'] //按钮
  124. });
  125. return;
  126. }
  127. if ($("#planname").val() == '') {
  128. layer.confirm('请输入计划名称!', {
  129. icon: 2,
  130. btn: ['确定'] //按钮
  131. });
  132. return;
  133. }
  134. if ($("#plancontent").val() == '') {
  135. layer.confirm('请输入计划内容!', {
  136. icon: 2,
  137. btn: ['确定'] //按钮
  138. });
  139. return;
  140. }
  141. if ($("#startDate").val() == '') {
  142. layer.confirm('请选择日期!', {
  143. icon: 2,
  144. btn: ['确定'] //按钮
  145. });
  146. return;
  147. }
  148. var goodslist = getFields();
  149. if (goodslist.length === 0) {
  150. layer.confirm('请添加配送物品!', {
  151. icon: 2,
  152. btn: ['确定'] //按钮
  153. });
  154. return;
  155. }
  156. if (!$.trim($('#planinterval').val())) {
  157. layer.confirm('巡检频率执行间隔不能为空!', {
  158. icon: 2,
  159. btn: ['确定'] //按钮
  160. });
  161. return;
  162. }
  163. if (!$.trim($('#plantimes').val())) {
  164. layer.confirm('巡检频率执行频率不能为空!', {
  165. icon: 2,
  166. btn: ['确定'] //按钮
  167. });
  168. return;
  169. }
  170. var timeEls = $('#plantimesCoont').find('input[id*="executionTime_"]');
  171. for (var i = 0, len = timeEls.length; i < len; i++) {
  172. var txtTime = $(timeEls[i]).parent().siblings('label').text().split('*')[1];
  173. if (!$(timeEls[i]).val()) {
  174. layer.confirm(txtTime + ' 不能为空!', {
  175. icon: 2,
  176. btn: ['确定'] //按钮
  177. });
  178. return;
  179. }
  180. // 暂时去掉(允许跨 0 点)
  181. // if(Date.parse('2018/09/10 ' + $(timeEls[i]).val().split(' ~ ')[0]) > Date.parse('2018/09/10 ' + $(timeEls[i]).val().split(' ~ ')[1])) {
  182. // layer.confirm(txtTime + ' 开始时间不能大于结束时间!', {
  183. // icon: 2,
  184. // btn: ['确定'] //按钮
  185. // });
  186. // return;
  187. // }
  188. }
  189. if (Number($('#sstart_select').val()) > Number($('#sstop_select').val())) {
  190. layer.confirm('开始时间不能大于结束时间!', {
  191. icon: 2,
  192. btn: ['确定'] //按钮
  193. });
  194. return;
  195. }
  196. var d1 = $('#sstart_time').val();
  197. var d2 = $('#sstop_time').val();
  198. if (!$.trim(d1)) {
  199. layer.confirm('开始时间不能为空!', {
  200. icon: 2,
  201. btn: ['确定'] //按钮
  202. });
  203. return;
  204. }
  205. if (!$.trim(d2)) {
  206. layer.confirm('结束时间不能为空!', {
  207. icon: 2,
  208. btn: ['确定'] //按钮
  209. });
  210. return;
  211. }
  212. if (Date.parse('2018/09/10 ' + d1) >= Date.parse('2018/09/10 ' + d2)) {
  213. layer.confirm('开始时间不能大于结束时间!', {
  214. icon: 2,
  215. btn: ['确定'] //按钮
  216. });
  217. return;
  218. }
  219. var deliveryDatas = getDeliverDatas($('#building'),$('#floor')); //发货地址
  220. $.ajax({
  221. type: "post",
  222. url: huayi.config.callcenter_url + ajaxUrl,
  223. async: true,
  224. dataType: 'json',
  225. beforeSend: function() { //触发ajax请求开始时执行
  226. $('#HY_save').attr("disabled", true);
  227. $('#HY_save').text('保存中...');
  228. // loadIndex = layer.load();
  229. },
  230. data: {
  231. id: ids,
  232. projectid: $('#projectid').val(),
  233. planname: $('#planname').val(),
  234. plancontent: $('#plancontent').val(),
  235. startdate: $('#startDate').val() && $('#startDate').val().split(' ~ ')[0],
  236. enddate: $('#startDate').val() && $('#startDate').val().split(' ~ ')[1],
  237. goodslist: goodslist, // 配送物品
  238. // deliverylist: $('#deliverylist').val() && JSON.parse($('#deliverylist').val()), // 发货(地址,科室,联系)
  239. deliverylist: deliveryDatas,// 否 List<DistributionDddressModel> 发货(地址,科室,联系)
  240. deliveryname: $('#deliveryname').val(),// 否 string 发货人
  241. deliverytel: $('#deliverytel').val(),// 否 string 发货人电话
  242. channel: channel, //渠道来源 1表示PC 2表示安卓 3表示IOS 4表示微信
  243. plancycle: 4, // 否 int 定时周期:1年,2月,3周,4日,5时,6分
  244. planinterval: $('#planinterval').val(), // 否 int 执行间隔,每几天
  245. plantimes: $('#plantimes').val(), // 否 int 执行频率,几次
  246. extensiontime: getExtensiontime(), //自定义时间段json
  247. },
  248. success: function(data) {
  249. if (data.state.toLowerCase() == 'success') {
  250. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  251. parent.layer.close(index); //再执行关闭
  252. layer.msg(data.message);
  253. parent.$('#table1').bootstrapTable('refresh');
  254. } else {
  255. $('#HY_save').attr("disabled", false);
  256. $('#HY_save').text('保存');
  257. }
  258. }
  259. });
  260. }
  261. //获取详情
  262. function getDetail(ids) {
  263. $.ajax({
  264. type: "get",
  265. url: huayi.config.callcenter_url + "distributionapi/api/DistriWorkOrderPlan/getsingle",
  266. async: true,
  267. dataType: 'json',
  268. data: {
  269. id: ids
  270. },
  271. success: function(data) {
  272. // if(data.state.toLowerCase() == 'success') {
  273. // $('#projectid').selectpicker('val', data.data.projectid).trigger('change');
  274. // $('#floorname').val(data.data.buildname);
  275. // $('#sortnum').val(data.data.sortnum);
  276. // $('#remark').val(data.data.remark);
  277. // }
  278. if (data.state === "success") {
  279. var res = data.data;
  280. $('#projectid').selectpicker('val', res.projectid); // 是 string 项目名称id
  281. // 发货地址
  282. helper.getDropList.getBuildlistDrop($('#building'), res.projectid)
  283. .then(function(){
  284. $('#building').selectpicker('val', res.deliverylist[0].buildingid);
  285. });// 是 string 楼宇id
  286. helper.getDropList.getFloorlistDrop($('#floor'), res.deliverylist[0].buildingid)
  287. .then(function(){
  288. $('#floor').selectpicker('val', res.deliverylist[0].floorid);
  289. });// 是 string 楼层id
  290. $('#deliveryname').val(res.deliveryname); // 否 string 发货人 - 随机工单
  291. $('#deliverytel').val(res.deliverytel); // 否 string 发货人电话 - 随机工单
  292. // $('#channel').selectpicker('val', res.channel); // 是 string 来源渠道
  293. channel = res.channel;
  294. $('#plancycle').selectpicker('val', res.plancycle); // 是 string 定时周期
  295. $('#planname').val(res.planname); // 是 string 计划名称
  296. $('#plancontent').val(res.plancontent); // 是 string 计划内容
  297. $('#startDate').val(data.data.startdate + ' ~ ' + data.data.enddate); // 否 string 期限
  298. //发货
  299. // getAddressSelect($('#deliverylist'), res.projectid, 0)
  300. // .then(function() {
  301. // res.deliverylist = res.deliverylist ? JSON.stringify(res.deliverylist) : '';
  302. // $('#deliverylist').selectpicker('val', res.deliverylist); // 发货(地址,科室,联系)
  303. // });
  304. //配送物品
  305. if (res.goodslist && res.goodslist.length > 0) {
  306. for (var i = 0, len = res.goodslist.length; i < len; i++) {
  307. var cobj = {
  308. "goodsid": res.goodslist[i].goodsid,
  309. "goodsname": res.goodslist[i].goodsname,
  310. "isremind": res.goodslist[i].isremind,
  311. "remark": res.goodslist[i].remark,
  312. }
  313. var tplstr = '<div class="goodsLists_item col-md-12" data-ide="identifier_' + i + '">' +
  314. '<div class="form-group col-md-6 col-sm-6">' +
  315. '<select id="goodsSelect_' + i + '" value=' + JSON.stringify(cobj) +
  316. ' class="form-control selectpicker" data-live-search="true">' +
  317. '<option value="">请选择物品</option>' +
  318. '</select>' +
  319. '</div>' +
  320. '<div class="form-group col-md-4 col-sm-4">' +
  321. '<div class="input-group delibery_num">' +
  322. '<span class="input-group-addon" id="btn_reduce_' + i + '">-</span>' +
  323. '<input id="goodsNum_' + i + '" type="text" value="' + res.goodslist[i].num +
  324. '" class="form-control" placeholder="请输入配送物品数量" aria-describedby="配送物品数量">' +
  325. '<span class="input-group-addon" id="btn_plus_' + i + '">+</span>' +
  326. '</div>' +
  327. '</div>' +
  328. '<button class="form-control btn btn-default" style="width:60px;margin-left:15px" onclick="btn_delete($(this))">删除</button>' +
  329. '</div>';
  330. $('#goodsLists').prepend(tplstr);
  331. getGoodsSelect($('#goodsSelect_' + i), res.projectid)
  332. .then(function(el) {
  333. el.selectpicker('val', $(el).attr('value'));
  334. });
  335. $('#btn_reduce_' + i).on('click', {
  336. _index: i
  337. }, btn_reduce);
  338. $('#btn_plus_' + i).on('click', {
  339. _index: i
  340. }, btn_plus);
  341. $('#goodsNum_' + i).on('input keyup propertychange', inputValid);
  342. }
  343. indexNum = res.goodslist.length;
  344. }
  345. planSdate = res.startdate.split(' ')[0];
  346. //巡检频率 执行间隔
  347. $('#planinterval').selectpicker('val', res.planinterval).trigger('change');
  348. //巡检频率 执行频率
  349. $('#plantimes').selectpicker('val', res.plantimes).trigger('change');
  350. if (res.planinterval === 1) {
  351. if (res.extensiontime && res.extensiontime.length > 0) {
  352. for (var j = 0, l = res.extensiontime.length; j < l; j++) {
  353. $('#executionTime_' + (j + 1)).val(res.extensiontime[j].starttime.split(' ')[1].substring(0, 5) + ' ~ ' + res
  354. .extensiontime[j].endtime.split(' ')[1].substring(0, 5));
  355. }
  356. getMsgTips1(res.plantimes, res.extensiontime[0].starttime.split(' ')[1].substring(0, 5));
  357. }
  358. } else {
  359. if (res.extensiontime && res.extensiontime.length > 0) {
  360. $('#sstart_select').selectpicker('val', res.extensiontime[0].startdate).trigger('change');
  361. $('#sstop_select').selectpicker('val', res.extensiontime[0].enddate).trigger('change');
  362. $('#sstart_time').val(res.extensiontime[0].starttime.split(' ')[1].substring(0, 5)); //开始时间
  363. $('#sstop_time').val(res.extensiontime[0].endtime.split(' ')[1].substring(0, 5)); //结束时间
  364. getMsgTips() //提示信息
  365. }
  366. }
  367. }
  368. }
  369. });
  370. }
  371. //巡检频率 执行间隔的change
  372. function planintervalChange() {
  373. //每天,每2天,每3天,每4天,每5天,每6天,每7天,
  374. var checkedVal = $(this).val();
  375. if (!checkedVal) {
  376. $('#SStimes').hide();
  377. $('#plantimesCoont').hide();
  378. $('#msg_tips').hide(); //提示信息
  379. }
  380. if (Number(checkedVal) > 1) {
  381. $('#plantimes').selectpicker('val', '1').trigger('change');
  382. $('#plantimes').prop('disabled', true);
  383. $('#plantimes').selectpicker('refresh');
  384. } else {
  385. $('#plantimes').selectpicker('val', '1').trigger('change');
  386. $('#plantimes').prop('disabled', false);
  387. $('#plantimes').selectpicker('refresh');
  388. }
  389. }
  390. //巡检频率 执行频率的change
  391. function plantimesChange() {
  392. //1-12次
  393. if (!$(this).val()) {
  394. $('#SStimes').hide();
  395. $('#plantimesCoont').hide();
  396. $('#msg_tips').hide(); //提示信息
  397. }
  398. if (Number($('#planinterval').val()) === 1) { //每天
  399. $('#SStimes').hide();
  400. if ($(this).val()) {
  401. $('#plantimesCoont').show();
  402. getExecutionTime($(this).val());
  403. $('#msg_tips').show(); //提示信息
  404. getMsgTips1();
  405. }
  406. }
  407. if (Number($('#planinterval').val()) > 1) {
  408. $('#plantimesCoont').hide();
  409. $('#SStimes').show();
  410. getDaySelect(Number($('#planinterval').val()), $('#sstart_select')); //开始时间
  411. getDaySelect(Number($('#planinterval').val()), $('#sstop_select')); //结束时间
  412. $('#sstop_select').selectpicker('val', $('#planinterval').val()).trigger('change');
  413. $('#msg_tips').show(); //提示信息
  414. getMsgTips();
  415. }
  416. }
  417. /**
  418. * 获取执行时间
  419. * t 执行的次数
  420. */
  421. function getExecutionTime(t) {
  422. $('#plantimesCoont').empty();
  423. var timeArrs = setDefaultTime(Number(t));
  424. for (var i = 0; i < t; i++) {
  425. var m = i + 1;
  426. $('#plantimesCoont').append('<li class="form-group">' +
  427. '<label for="executionTime_' + m + '" class="col-md-2 text-right"><b class="text_require">*</b>执行时间(' + m +
  428. ')</label>' +
  429. '<div class="col-md-10">' +
  430. '<input id="executionTime_' + m + '" class="form-control" type="text" placeholder="请选择执行时间(' + m + ')" />' +
  431. '</div>' +
  432. '</li>');
  433. if (m === 1) {
  434. laydate.render({
  435. elem: '#executionTime_' + m,
  436. range: '~',
  437. type: 'time',
  438. btns: ['now', 'confirm'],
  439. format: 'HH:mm',
  440. theme: '#249fea',
  441. done: function(value, date, endDate) {
  442. date.hours = date.hours < 10 ? '0' + date.hours : date.hours;
  443. date.minutes = date.minutes < 10 ? '0' + date.minutes : date.minutes;
  444. getMsgTips1('', date.hours + ':' + date.minutes);
  445. // console.log(value); //得到日期生成的值,如:2017-08-18
  446. // console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
  447. // console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。
  448. }
  449. });
  450. } else {
  451. laydate.render({
  452. elem: '#executionTime_' + m,
  453. range: '~',
  454. type: 'time',
  455. btns: ['now', 'confirm'],
  456. format: 'HH:mm',
  457. theme: '#249fea',
  458. });
  459. }
  460. $('#executionTime_' + m).val(timeArrs[i]);
  461. }
  462. }
  463. /**
  464. * 设置默认的执行时间
  465. * t 执行的次数
  466. * 返回一个 时间的数组如["00:00 ~ 11:59", "12:00 ~ 23:59"]
  467. */
  468. function setDefaultTime(t) {
  469. var timesArr = [];
  470. var m0, m1, m2;
  471. for (var i = 0; i < t; i++) {
  472. m0 = parseInt(24 / t) - 1;
  473. m1 = parseInt(24 / t) * i;
  474. m2 = parseInt(24 / t) * (i + 1) - 1;
  475. m0 = m0 < 10 ? '0' + m0 : m0;
  476. m1 = m1 < 10 ? '0' + m1 : m1;
  477. m2 = m2 < 10 ? '0' + m2 : m2;
  478. if (i === 0) {
  479. timesArr.push('00:00 ~ ' + m0 + ':59');
  480. } else if (i < (t - 1)) {
  481. timesArr.push(m1 + ':00 ~ ' + m2 + ':59');
  482. } else if (i === (t - 1)) {
  483. if (24 % t != 0) {
  484. timesArr.push(m1 + ':00 ~ 23:59');
  485. } else {
  486. timesArr.push(m1 + ':00 ~ ' + m2 + ':59');
  487. }
  488. }
  489. }
  490. return timesArr;
  491. }
  492. /**
  493. * 获取 第几天的下拉;
  494. * t 执行的间隔
  495. * el 元素
  496. */
  497. function getDaySelect(t, el) {
  498. var weekArrs = ['一', '二', '三', '四', '五', '六', '七', '十五'];
  499. el.empty();
  500. for (var i = 0; i < t; i++) {
  501. if (i < 7) {
  502. el.append('<option value="' + (i + 1) + '">第' + weekArrs[i] + '天</option>');
  503. }
  504. if (i === 7) {
  505. el.append('<option value="15">第' + weekArrs[i] + '天</option>');
  506. }
  507. }
  508. el.selectpicker('refresh');
  509. }
  510. /**
  511. * 获取巡检频率 不是每天的提示信息
  512. * v1 开始时间
  513. * v2 结束时间
  514. */
  515. function getMsgTips(v1, v2) {
  516. if (v1 && v1.type === "change") {
  517. v1 = $('#sstart_time').val();
  518. }
  519. v1 = (v1 === '' || v1 === undefined) ? $('#sstart_time').val() : v1;
  520. v2 = (v2 === '' || v2 === undefined) ? $('#sstop_time').val() : v2;
  521. $('#msg_tips').find('.text-warning').text('提示:' + $('#planinterval').find('option:selected').text() +
  522. '一次,执行时间' + $('#sstart_select').find('option:selected').text() +
  523. v1 + '至' +
  524. $('#sstop_select').find('option:selected').text() +
  525. v2 + ',' + planSdate + ' ' + v1 + '开始执行计划!');
  526. }
  527. /**
  528. * 获取巡检频率 为每天的 提示信息
  529. * t 次数
  530. * s 计划开始执行的时间
  531. */
  532. function getMsgTips1(t, s) {
  533. t = (t === '' || t === undefined) ? $('#plantimes').val() : t;
  534. s = (s === '' || s === undefined) ? ($('#executionTime_1').val() && $('#executionTime_1').val().split(' ~ ')[0]) : s;
  535. $('#msg_tips').find('.text-warning').text('提示:每天执行' + t + '次,' + planSdate + ' ' + s + '开始执行计划!');
  536. }
  537. /**
  538. *获取自定义时间段
  539. */
  540. function getExtensiontime() {
  541. var arr = [];
  542. var enddate = "1";
  543. if (Number($('#planinterval').val()) === 1) {
  544. var timeEls = $('#plantimesCoont').find('input[id*="executionTime_"]');
  545. for (var i = 0, len = timeEls.length; i < len; i++) {
  546. //每天的时候 开始时间小于结束时间的时候 enddate 为 2
  547. if (Date.parse('2018/09/10 ' + ($(timeEls[i]).val() && $(timeEls[i]).val().split(' ~ ')[0])) > Date.parse(
  548. '2018/09/10 ' + ($(timeEls[i]).val() && $(timeEls[i]).val().split(' ~ ')[1]))) {
  549. enddate = "2";
  550. } else {
  551. enddate = "1";
  552. }
  553. arr.push({
  554. "startdate": "1",
  555. "starttime": $(timeEls[i]).val() && $(timeEls[i]).val().split(' ~ ')[0],
  556. "enddate": enddate,
  557. "endtime": $(timeEls[i]).val() && $(timeEls[i]).val().split(' ~ ')[1]
  558. });
  559. }
  560. } else if (Number($('#planinterval').val()) > 1) {
  561. arr.push({
  562. "startdate": $('#sstart_select').val(),
  563. "starttime": $('#sstart_time').val(),
  564. "enddate": $('#sstop_select').val(),
  565. "endtime": $('#sstop_time').val()
  566. });
  567. }
  568. return arr;
  569. }
  570. //添加配送物品
  571. function btn_add() {
  572. var tplstr = '';
  573. tplstr = '<div class="goodsLists_item col-md-12" data-ide="identifier_' + indexNum + '">' +
  574. '<div class="form-group col-md-6 col-sm-6">' +
  575. '<select id="goodsSelect_' + indexNum + '" class="form-control selectpicker" data-live-search="true">' +
  576. '<option value="">请选择物品</option>' +
  577. '</select>' +
  578. '</div>' +
  579. '<div class="form-group col-md-4 col-sm-4">' +
  580. '<div class="input-group delibery_num">' +
  581. '<span class="input-group-addon" id="btn_reduce_' + indexNum + '">-</span>' +
  582. '<input id="goodsNum_' + indexNum +
  583. '" type="text" value="1" class="form-control" placeholder="请输入配送物品数量" aria-describedby="配送物品数量">' +
  584. '<span class="input-group-addon" id="btn_plus_' + indexNum + '">+</span>' +
  585. '</div>' +
  586. '</div>' +
  587. '<button class="form-control btn btn-default" style="width:60px;margin-left:15px" onclick="btn_delete($(this))">删除</button>' +
  588. '</div>';
  589. $('#goodsLists').prepend(tplstr);
  590. getGoodsSelect($('#goodsSelect_' + indexNum), $('#projectid').val());
  591. $('#btn_reduce_' + indexNum).on('click', {
  592. _index: indexNum
  593. }, btn_reduce);
  594. $('#btn_plus_' + indexNum).on('click', {
  595. _index: indexNum
  596. }, btn_plus);
  597. $('#goodsNum_' + indexNum).on('input keyup propertychange', inputValid);
  598. indexNum++;
  599. }
  600. //获取配送物品的值
  601. function getFields() {
  602. var goodslists = []; //配送物品的数组[{"goodsid":"45643216540","goodsname":"物品名称","isremind":false,"remark":"","num":1,}]
  603. var goodsLists_items = $('#goodsLists').find('.goodsLists_item');
  604. $.each(goodsLists_items, function(i, v) {
  605. var goodsNum = {
  606. "num": $(v).find('input[id*="goodsNum_"]').val()
  607. }
  608. var goodsSelect = JSON.parse($(v).find('select[id*="goodsSelect_"]').val());
  609. if ($.trim(goodsNum.num)) {
  610. var cobj = $.extend(goodsSelect, goodsNum);
  611. goodslists.push(cobj);
  612. }
  613. });
  614. //去重
  615. goodslists = helper.methods.uniqueObjArray(goodslists, 'goodsid');
  616. return goodslists;
  617. }
  618. //获取配送物品 - 下拉
  619. function getGoodsSelect(el, proid) {
  620. var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
  621. $.ajax({
  622. type: "get",
  623. url: huayi.config.callcenter_url + "distributionapi/api/DistriGoods/getlist",
  624. dataType: 'json',
  625. data: {
  626. // keyword: , //否 string 模糊查询
  627. projectid: proid, //否 string 项目id
  628. },
  629. success: function(data) {
  630. el.empty();
  631. if (data.state.toLowerCase() === 'success') {
  632. var res = data.data;
  633. $('<option value="">请选择物品</option>').appendTo(el);
  634. for (var i = 0; i < res.length; i++) {
  635. var cobj = {
  636. "goodsid": res[i].id,
  637. "goodsname": res[i].goodsname,
  638. "isremind": res[i].isremind,
  639. "remark": res[i].remark,
  640. }
  641. $('<option value=' + JSON.stringify(cobj) + '>' + res[i].goodsname + '</option>').appendTo(el);
  642. }
  643. el.selectpicker('refresh');
  644. }
  645. dtd.resolve(el); // 改变Deferred对象的执行状态
  646. }
  647. });
  648. return dtd.promise(); // 返回promise对象
  649. }
  650. //验证是不是数字, 不是数字直接变成1
  651. function inputValid() {
  652. var validValue = Number($(this).val());
  653. if (isNaN(validValue)) {
  654. $(this).val(0);
  655. }
  656. }
  657. //减少
  658. function btn_reduce(event) {
  659. var index = event.data._index;
  660. var num = Number($('#goodsNum_' + index).val());
  661. num--;
  662. if (num <= 1) {
  663. num = 1;
  664. }
  665. $('#goodsNum_' + index).val(num);
  666. }
  667. //增加
  668. function btn_plus(event) {
  669. var index = event.data._index;
  670. var num = Number($('#goodsNum_' + index).val());
  671. num++;
  672. $('#goodsNum_' + index).val(num);
  673. }
  674. //删除配送物品
  675. function btn_delete(el) {
  676. el.parent().remove();
  677. }
  678. /**
  679. * 获取收发地址 - 下拉
  680. * @el 元素
  681. * @proid 项目id
  682. * @addt 地址类型 init 0发货/1收货
  683. */
  684. function getAddressSelect(el, proid, addt) {
  685. var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
  686. $.ajax({
  687. type: "get",
  688. url: huayi.config.callcenter_url + "distributionapi/api/DistriAddress/getlist",
  689. dataType: 'json',
  690. data: {
  691. // keyword: , //否 string 模糊查询
  692. projectid: proid, //否 string 项目id
  693. addresstype: addt, // 否 int 地址类型:0发货/1收货
  694. },
  695. success: function(data) {
  696. el.empty();
  697. if (data.state.toLowerCase() === 'success') {
  698. var res = data.data;
  699. var txt = '请选择收货地址';
  700. if (addt === 0) {
  701. txt = '请选择发货地址';
  702. }
  703. $('<option value="">' + txt + '</option>').appendTo(el);
  704. for (var i = 0; i < res.length; i++) {
  705. var cobj = [{
  706. "building_name": res[i].buildingname,
  707. "floor_name": res[i].floorname,
  708. "department_name": res[i].departmentname,
  709. "fullname": res[i].fullname,
  710. "mobile": res[i].mobile,
  711. }];
  712. var addressTxt = res[i].buildingname + ' ' + res[i].floorname + ' ' + res[i].departmentname;
  713. $('<option value=' + JSON.stringify(cobj) + '>' + addressTxt + '</option>').appendTo(el);
  714. }
  715. el.selectpicker('refresh');
  716. }
  717. dtd.resolve(); // 改变Deferred对象的执行状态
  718. }
  719. });
  720. return dtd.promise(); // 返回promise对象
  721. }
  722. //项目名称切换前
  723. function sysTitleClick() {
  724. previous = $(this).find('#projectid').val();
  725. }
  726. //项目名称切换
  727. function sysTitleChange() {
  728. var self = this;
  729. if ($('#goodsLists').find('.goodsLists_item').length > 0) {
  730. layer.confirm('切换项目名称将清除当前添加的配送物品,您确定要切换项目名称吗?', {
  731. icon: 7,
  732. closeBtn: 0,
  733. btn: ['确定', '取消'], //按钮
  734. }, function(index) {
  735. $('#goodsLists').html('');
  736. // getMatters();
  737. layer.close(index);
  738. }, function() {
  739. $(self).selectpicker('val', previous);
  740. });
  741. } else {
  742. // getMatters();
  743. }
  744. }
  745. //添加地址
  746. function btn_addAddress() {
  747. layer.open({
  748. type: 2,
  749. content: "planAddAddress.html?proId=" + $('#projectid').val(),
  750. title: '添加发货地址',
  751. area: ['80%', '95%'], //宽高
  752. });
  753. }
  754. // 获取发货 收货地址的值
  755. // el1 $('#building')
  756. // el2 $('#floor')
  757. function getDeliverDatas(el1, el2){
  758. var deliverSelect = [];
  759. var buiding_id = el1.val();
  760. var floor_id = el2.val();
  761. var floor_names = el2.find('option[value="'+ floor_id +'"]').text(); // "1楼 护士部"
  762. deliverSelect.push({
  763. buildingid: buiding_id, //"5b6bfd5faa3e390cef675be8"
  764. building_name: el1.find('option[value="'+ buiding_id +'"]').text(), //"住院部"
  765. floor_name: floor_names && floor_names.split(' ')[0], //"1楼"
  766. floorid: floor_id, //"5b6bfdb8aa3e390cef675bed"
  767. department_name: floor_names && floor_names.split(' ')[1], //"护士部"
  768. });
  769. return deliverSelect;
  770. }