var ids = helper.request.queryString("ids"); var ajaxUrl; var indexNum = 0; var previous = ''; //项目名称切换前的值 var planSdate = ''; //提示信息 计划开始执行的日期; var channel = 1; //来源渠道 $(function() { //使用期限 laydate.render({ elem: '#startDate', type: 'datetime', range: '~', theme: '#249fea' }); laydate.render({ elem: '#expirytime', range: '~', btns: ['now', 'confirm'], theme: '#249fea', min: helper.DateFormat.getNowDate(), done: function(value, date, endDate) { planSdate = value.split(' ~ ')[0]; if ($('#planinterval').val() == 1) { getMsgTips1(); } else { getMsgTips(); } } }); laydate.render({ elem: '#sstart_time', type: 'time', theme: '#249fea', btns: ['now', 'confirm'], format: 'HH:mm', done: function(value, date, endDate) { getMsgTips(value); }, }); laydate.render({ elem: '#sstop_time', type: 'time', theme: '#249fea', btns: ['now', 'confirm'], format: 'HH:mm', done: function(value, date, endDate) { getMsgTips('', value); }, }); $('#sstart_time').val('00:00'); $('#sstop_time').val('23:59'); helper.getDropList.getProlistDrop($('#projectid')) .then(function() { $('#projectid').on('change', function() { $('#building').selectpicker('destroy'); $('#floor').selectpicker('destroy'); $('#floor').empty(); $('#floor').append(""); helper.getDropList.getBuildlistDrop($('#building'), $(this).val()); }); $('#building').on('change', function() { $('#floor').selectpicker('destroy'); helper.getDropList.getFloorlistDrop($('#floor'), $(this).val()); }); // getAddressSelect($('#deliverylist'), $('#projectid').val(), 0); //发货 // getAddressSelect($('#receiverlist'), $('#pro_title').val(), 1);//1收货 }) .then(function() { if (ids) { getDetail(ids); ajaxUrl = "distributionapi/api/DistriWorkOrderPlan/update"; } else { ajaxUrl = "distributionapi/api/DistriWorkOrderPlan/add"; } }); //绑定项目名称 切换 $('#projectid').parent().on('mouseup', sysTitleClick); $('#projectid').on('change', sysTitleChange); //绑定巡检频率 执行间隔的切换 $('#planinterval').on('change', planintervalChange); //绑定巡检频率 执行频率的切换 $('#plantimes').on('change', plantimesChange); //绑定开始时间 第几天 的切换 $('#sstart_select').on('change', getMsgTips); //绑定结束时间 第几天 的切换 $('#sstop_select').on('change', getMsgTips); //添加或者编辑保存 $('#HY_save').on('click', addValue); }) //添加或者编辑 function addValue() { if ($("#projectid").val() == '') { layer.confirm('请选择项目信息!', { icon: 2, btn: ['确定'] //按钮 }); return; } if (!$.trim($('#building').val())) { layer.confirm('发货地址中,楼宇名称不允许为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } if (!$.trim($('#floor').val())) { layer.confirm('发货地址中,楼层名称不允许为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } if (!$.trim($('#deliveryname').val())) { layer.confirm('发货人姓名不允许为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } if(!regexs.phone.test($.trim($('#deliverytel').val()))) { layer.confirm('请输入正确格式的发货人电话!', { icon: 2, btn: ['确定'] //按钮 }); return; } if ($("#planname").val() == '') { layer.confirm('请输入计划名称!', { icon: 2, btn: ['确定'] //按钮 }); return; } if ($("#plancontent").val() == '') { layer.confirm('请输入计划内容!', { icon: 2, btn: ['确定'] //按钮 }); return; } if ($("#startDate").val() == '') { layer.confirm('请选择日期!', { icon: 2, btn: ['确定'] //按钮 }); return; } var goodslist = getFields(); if (goodslist.length === 0) { layer.confirm('请添加配送物品!', { icon: 2, btn: ['确定'] //按钮 }); return; } if (!$.trim($('#planinterval').val())) { layer.confirm('巡检频率执行间隔不能为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } if (!$.trim($('#plantimes').val())) { layer.confirm('巡检频率执行频率不能为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } var timeEls = $('#plantimesCoont').find('input[id*="executionTime_"]'); for (var i = 0, len = timeEls.length; i < len; i++) { var txtTime = $(timeEls[i]).parent().siblings('label').text().split('*')[1]; if (!$(timeEls[i]).val()) { layer.confirm(txtTime + ' 不能为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } // 暂时去掉(允许跨 0 点) // if(Date.parse('2018/09/10 ' + $(timeEls[i]).val().split(' ~ ')[0]) > Date.parse('2018/09/10 ' + $(timeEls[i]).val().split(' ~ ')[1])) { // layer.confirm(txtTime + ' 开始时间不能大于结束时间!', { // icon: 2, // btn: ['确定'] //按钮 // }); // return; // } } if (Number($('#sstart_select').val()) > Number($('#sstop_select').val())) { layer.confirm('开始时间不能大于结束时间!', { icon: 2, btn: ['确定'] //按钮 }); return; } var d1 = $('#sstart_time').val(); var d2 = $('#sstop_time').val(); if (!$.trim(d1)) { layer.confirm('开始时间不能为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } if (!$.trim(d2)) { layer.confirm('结束时间不能为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } if (Date.parse('2018/09/10 ' + d1) >= Date.parse('2018/09/10 ' + d2)) { layer.confirm('开始时间不能大于结束时间!', { icon: 2, btn: ['确定'] //按钮 }); return; } var deliveryDatas = getDeliverDatas($('#building'),$('#floor')); //发货地址 $.ajax({ type: "post", url: huayi.config.callcenter_url + ajaxUrl, async: true, dataType: 'json', beforeSend: function() { //触发ajax请求开始时执行 $('#HY_save').attr("disabled", true); $('#HY_save').text('保存中...'); // loadIndex = layer.load(); }, data: { id: ids, projectid: $('#projectid').val(), planname: $('#planname').val(), plancontent: $('#plancontent').val(), startdate: $('#startDate').val() && $('#startDate').val().split(' ~ ')[0], enddate: $('#startDate').val() && $('#startDate').val().split(' ~ ')[1], goodslist: goodslist, // 配送物品 // deliverylist: $('#deliverylist').val() && JSON.parse($('#deliverylist').val()), // 发货(地址,科室,联系) deliverylist: deliveryDatas,// 否 List 发货(地址,科室,联系) deliveryname: $('#deliveryname').val(),// 否 string 发货人 deliverytel: $('#deliverytel').val(),// 否 string 发货人电话 channel: channel, //渠道来源 1表示PC 2表示安卓 3表示IOS 4表示微信 plancycle: 4, // 否 int 定时周期:1年,2月,3周,4日,5时,6分 planinterval: $('#planinterval').val(), // 否 int 执行间隔,每几天 plantimes: $('#plantimes').val(), // 否 int 执行频率,几次 extensiontime: getExtensiontime(), //自定义时间段json }, success: function(data) { if (data.state.toLowerCase() == 'success') { var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引 parent.layer.close(index); //再执行关闭 layer.msg(data.message); parent.$('#table1').bootstrapTable('refresh'); } else { $('#HY_save').attr("disabled", false); $('#HY_save').text('保存'); } } }); } //获取详情 function getDetail(ids) { $.ajax({ type: "get", url: huayi.config.callcenter_url + "distributionapi/api/DistriWorkOrderPlan/getsingle", async: true, dataType: 'json', data: { id: ids }, success: function(data) { // if(data.state.toLowerCase() == 'success') { // $('#projectid').selectpicker('val', data.data.projectid).trigger('change'); // $('#floorname').val(data.data.buildname); // $('#sortnum').val(data.data.sortnum); // $('#remark').val(data.data.remark); // } if (data.state === "success") { var res = data.data; $('#projectid').selectpicker('val', res.projectid); // 是 string 项目名称id // 发货地址 helper.getDropList.getBuildlistDrop($('#building'), res.projectid) .then(function(){ $('#building').selectpicker('val', res.deliverylist[0].buildingid); });// 是 string 楼宇id helper.getDropList.getFloorlistDrop($('#floor'), res.deliverylist[0].buildingid) .then(function(){ $('#floor').selectpicker('val', res.deliverylist[0].floorid); });// 是 string 楼层id $('#deliveryname').val(res.deliveryname); // 否 string 发货人 - 随机工单 $('#deliverytel').val(res.deliverytel); // 否 string 发货人电话 - 随机工单 // $('#channel').selectpicker('val', res.channel); // 是 string 来源渠道 channel = res.channel; $('#plancycle').selectpicker('val', res.plancycle); // 是 string 定时周期 $('#planname').val(res.planname); // 是 string 计划名称 $('#plancontent').val(res.plancontent); // 是 string 计划内容 $('#startDate').val(data.data.startdate + ' ~ ' + data.data.enddate); // 否 string 期限 //发货 // getAddressSelect($('#deliverylist'), res.projectid, 0) // .then(function() { // res.deliverylist = res.deliverylist ? JSON.stringify(res.deliverylist) : ''; // $('#deliverylist').selectpicker('val', res.deliverylist); // 发货(地址,科室,联系) // }); //配送物品 if (res.goodslist && res.goodslist.length > 0) { for (var i = 0, len = res.goodslist.length; i < len; i++) { var cobj = { "goodsid": res.goodslist[i].goodsid, "goodsname": res.goodslist[i].goodsname, "isremind": res.goodslist[i].isremind, "remark": res.goodslist[i].remark, } var tplstr = '
' + '
' + '' + '
' + '
' + '
' + '-' + '' + '+' + '
' + '
' + '' + '
'; $('#goodsLists').prepend(tplstr); getGoodsSelect($('#goodsSelect_' + i), res.projectid) .then(function(el) { el.selectpicker('val', $(el).attr('value')); }); $('#btn_reduce_' + i).on('click', { _index: i }, btn_reduce); $('#btn_plus_' + i).on('click', { _index: i }, btn_plus); $('#goodsNum_' + i).on('input keyup propertychange', inputValid); } indexNum = res.goodslist.length; } planSdate = res.startdate.split(' ')[0]; //巡检频率 执行间隔 $('#planinterval').selectpicker('val', res.planinterval).trigger('change'); //巡检频率 执行频率 $('#plantimes').selectpicker('val', res.plantimes).trigger('change'); if (res.planinterval === 1) { if (res.extensiontime && res.extensiontime.length > 0) { for (var j = 0, l = res.extensiontime.length; j < l; j++) { $('#executionTime_' + (j + 1)).val(res.extensiontime[j].starttime.split(' ')[1].substring(0, 5) + ' ~ ' + res .extensiontime[j].endtime.split(' ')[1].substring(0, 5)); } getMsgTips1(res.plantimes, res.extensiontime[0].starttime.split(' ')[1].substring(0, 5)); } } else { if (res.extensiontime && res.extensiontime.length > 0) { $('#sstart_select').selectpicker('val', res.extensiontime[0].startdate).trigger('change'); $('#sstop_select').selectpicker('val', res.extensiontime[0].enddate).trigger('change'); $('#sstart_time').val(res.extensiontime[0].starttime.split(' ')[1].substring(0, 5)); //开始时间 $('#sstop_time').val(res.extensiontime[0].endtime.split(' ')[1].substring(0, 5)); //结束时间 getMsgTips() //提示信息 } } } } }); } //巡检频率 执行间隔的change function planintervalChange() { //每天,每2天,每3天,每4天,每5天,每6天,每7天, var checkedVal = $(this).val(); if (!checkedVal) { $('#SStimes').hide(); $('#plantimesCoont').hide(); $('#msg_tips').hide(); //提示信息 } if (Number(checkedVal) > 1) { $('#plantimes').selectpicker('val', '1').trigger('change'); $('#plantimes').prop('disabled', true); $('#plantimes').selectpicker('refresh'); } else { $('#plantimes').selectpicker('val', '1').trigger('change'); $('#plantimes').prop('disabled', false); $('#plantimes').selectpicker('refresh'); } } //巡检频率 执行频率的change function plantimesChange() { //1-12次 if (!$(this).val()) { $('#SStimes').hide(); $('#plantimesCoont').hide(); $('#msg_tips').hide(); //提示信息 } if (Number($('#planinterval').val()) === 1) { //每天 $('#SStimes').hide(); if ($(this).val()) { $('#plantimesCoont').show(); getExecutionTime($(this).val()); $('#msg_tips').show(); //提示信息 getMsgTips1(); } } if (Number($('#planinterval').val()) > 1) { $('#plantimesCoont').hide(); $('#SStimes').show(); getDaySelect(Number($('#planinterval').val()), $('#sstart_select')); //开始时间 getDaySelect(Number($('#planinterval').val()), $('#sstop_select')); //结束时间 $('#sstop_select').selectpicker('val', $('#planinterval').val()).trigger('change'); $('#msg_tips').show(); //提示信息 getMsgTips(); } } /** * 获取执行时间 * t 执行的次数 */ function getExecutionTime(t) { $('#plantimesCoont').empty(); var timeArrs = setDefaultTime(Number(t)); for (var i = 0; i < t; i++) { var m = i + 1; $('#plantimesCoont').append('
  • ' + '' + '
    ' + '' + '
    ' + '
  • '); if (m === 1) { laydate.render({ elem: '#executionTime_' + m, range: '~', type: 'time', btns: ['now', 'confirm'], format: 'HH:mm', theme: '#249fea', done: function(value, date, endDate) { date.hours = date.hours < 10 ? '0' + date.hours : date.hours; date.minutes = date.minutes < 10 ? '0' + date.minutes : date.minutes; getMsgTips1('', date.hours + ':' + date.minutes); // console.log(value); //得到日期生成的值,如:2017-08-18 // console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} // console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 } }); } else { laydate.render({ elem: '#executionTime_' + m, range: '~', type: 'time', btns: ['now', 'confirm'], format: 'HH:mm', theme: '#249fea', }); } $('#executionTime_' + m).val(timeArrs[i]); } } /** * 设置默认的执行时间 * t 执行的次数 * 返回一个 时间的数组如["00:00 ~ 11:59", "12:00 ~ 23:59"] */ function setDefaultTime(t) { var timesArr = []; var m0, m1, m2; for (var i = 0; i < t; i++) { m0 = parseInt(24 / t) - 1; m1 = parseInt(24 / t) * i; m2 = parseInt(24 / t) * (i + 1) - 1; m0 = m0 < 10 ? '0' + m0 : m0; m1 = m1 < 10 ? '0' + m1 : m1; m2 = m2 < 10 ? '0' + m2 : m2; if (i === 0) { timesArr.push('00:00 ~ ' + m0 + ':59'); } else if (i < (t - 1)) { timesArr.push(m1 + ':00 ~ ' + m2 + ':59'); } else if (i === (t - 1)) { if (24 % t != 0) { timesArr.push(m1 + ':00 ~ 23:59'); } else { timesArr.push(m1 + ':00 ~ ' + m2 + ':59'); } } } return timesArr; } /** * 获取 第几天的下拉; * t 执行的间隔 * el 元素 */ function getDaySelect(t, el) { var weekArrs = ['一', '二', '三', '四', '五', '六', '七', '十五']; el.empty(); for (var i = 0; i < t; i++) { if (i < 7) { el.append(''); } if (i === 7) { el.append(''); } } el.selectpicker('refresh'); } /** * 获取巡检频率 不是每天的提示信息 * v1 开始时间 * v2 结束时间 */ function getMsgTips(v1, v2) { if (v1 && v1.type === "change") { v1 = $('#sstart_time').val(); } v1 = (v1 === '' || v1 === undefined) ? $('#sstart_time').val() : v1; v2 = (v2 === '' || v2 === undefined) ? $('#sstop_time').val() : v2; $('#msg_tips').find('.text-warning').text('提示:' + $('#planinterval').find('option:selected').text() + '一次,执行时间' + $('#sstart_select').find('option:selected').text() + v1 + '至' + $('#sstop_select').find('option:selected').text() + v2 + ',' + planSdate + ' ' + v1 + '开始执行计划!'); } /** * 获取巡检频率 为每天的 提示信息 * t 次数 * s 计划开始执行的时间 */ function getMsgTips1(t, s) { t = (t === '' || t === undefined) ? $('#plantimes').val() : t; s = (s === '' || s === undefined) ? ($('#executionTime_1').val() && $('#executionTime_1').val().split(' ~ ')[0]) : s; $('#msg_tips').find('.text-warning').text('提示:每天执行' + t + '次,' + planSdate + ' ' + s + '开始执行计划!'); } /** *获取自定义时间段 */ function getExtensiontime() { var arr = []; var enddate = "1"; if (Number($('#planinterval').val()) === 1) { var timeEls = $('#plantimesCoont').find('input[id*="executionTime_"]'); for (var i = 0, len = timeEls.length; i < len; i++) { //每天的时候 开始时间小于结束时间的时候 enddate 为 2 if (Date.parse('2018/09/10 ' + ($(timeEls[i]).val() && $(timeEls[i]).val().split(' ~ ')[0])) > Date.parse( '2018/09/10 ' + ($(timeEls[i]).val() && $(timeEls[i]).val().split(' ~ ')[1]))) { enddate = "2"; } else { enddate = "1"; } arr.push({ "startdate": "1", "starttime": $(timeEls[i]).val() && $(timeEls[i]).val().split(' ~ ')[0], "enddate": enddate, "endtime": $(timeEls[i]).val() && $(timeEls[i]).val().split(' ~ ')[1] }); } } else if (Number($('#planinterval').val()) > 1) { arr.push({ "startdate": $('#sstart_select').val(), "starttime": $('#sstart_time').val(), "enddate": $('#sstop_select').val(), "endtime": $('#sstop_time').val() }); } return arr; } //添加配送物品 function btn_add() { var tplstr = ''; tplstr = '
    ' + '
    ' + '' + '
    ' + '
    ' + '
    ' + '-' + '' + '+' + '
    ' + '
    ' + '' + '
    '; $('#goodsLists').prepend(tplstr); getGoodsSelect($('#goodsSelect_' + indexNum), $('#projectid').val()); $('#btn_reduce_' + indexNum).on('click', { _index: indexNum }, btn_reduce); $('#btn_plus_' + indexNum).on('click', { _index: indexNum }, btn_plus); $('#goodsNum_' + indexNum).on('input keyup propertychange', inputValid); indexNum++; } //获取配送物品的值 function getFields() { var goodslists = []; //配送物品的数组[{"goodsid":"45643216540","goodsname":"物品名称","isremind":false,"remark":"","num":1,}] var goodsLists_items = $('#goodsLists').find('.goodsLists_item'); $.each(goodsLists_items, function(i, v) { var goodsNum = { "num": $(v).find('input[id*="goodsNum_"]').val() } var goodsSelect = JSON.parse($(v).find('select[id*="goodsSelect_"]').val()); if ($.trim(goodsNum.num)) { var cobj = $.extend(goodsSelect, goodsNum); goodslists.push(cobj); } }); //去重 goodslists = helper.methods.uniqueObjArray(goodslists, 'goodsid'); return goodslists; } //获取配送物品 - 下拉 function getGoodsSelect(el, proid) { var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象 $.ajax({ type: "get", url: huayi.config.callcenter_url + "distributionapi/api/DistriGoods/getlist", dataType: 'json', data: { // keyword: , //否 string 模糊查询 projectid: proid, //否 string 项目id }, success: function(data) { el.empty(); if (data.state.toLowerCase() === 'success') { var res = data.data; $('').appendTo(el); for (var i = 0; i < res.length; i++) { var cobj = { "goodsid": res[i].id, "goodsname": res[i].goodsname, "isremind": res[i].isremind, "remark": res[i].remark, } $('').appendTo(el); } el.selectpicker('refresh'); } dtd.resolve(el); // 改变Deferred对象的执行状态 } }); return dtd.promise(); // 返回promise对象 } //验证是不是数字, 不是数字直接变成1 function inputValid() { var validValue = Number($(this).val()); if (isNaN(validValue)) { $(this).val(0); } } //减少 function btn_reduce(event) { var index = event.data._index; var num = Number($('#goodsNum_' + index).val()); num--; if (num <= 1) { num = 1; } $('#goodsNum_' + index).val(num); } //增加 function btn_plus(event) { var index = event.data._index; var num = Number($('#goodsNum_' + index).val()); num++; $('#goodsNum_' + index).val(num); } //删除配送物品 function btn_delete(el) { el.parent().remove(); } /** * 获取收发地址 - 下拉 * @el 元素 * @proid 项目id * @addt 地址类型 init 0发货/1收货 */ function getAddressSelect(el, proid, addt) { var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象 $.ajax({ type: "get", url: huayi.config.callcenter_url + "distributionapi/api/DistriAddress/getlist", dataType: 'json', data: { // keyword: , //否 string 模糊查询 projectid: proid, //否 string 项目id addresstype: addt, // 否 int 地址类型:0发货/1收货 }, success: function(data) { el.empty(); if (data.state.toLowerCase() === 'success') { var res = data.data; var txt = '请选择收货地址'; if (addt === 0) { txt = '请选择发货地址'; } $('').appendTo(el); for (var i = 0; i < res.length; i++) { var cobj = [{ "building_name": res[i].buildingname, "floor_name": res[i].floorname, "department_name": res[i].departmentname, "fullname": res[i].fullname, "mobile": res[i].mobile, }]; var addressTxt = res[i].buildingname + ' ' + res[i].floorname + ' ' + res[i].departmentname; $('').appendTo(el); } el.selectpicker('refresh'); } dtd.resolve(); // 改变Deferred对象的执行状态 } }); return dtd.promise(); // 返回promise对象 } //项目名称切换前 function sysTitleClick() { previous = $(this).find('#projectid').val(); } //项目名称切换 function sysTitleChange() { var self = this; if ($('#goodsLists').find('.goodsLists_item').length > 0) { layer.confirm('切换项目名称将清除当前添加的配送物品,您确定要切换项目名称吗?', { icon: 7, closeBtn: 0, btn: ['确定', '取消'], //按钮 }, function(index) { $('#goodsLists').html(''); // getMatters(); layer.close(index); }, function() { $(self).selectpicker('val', previous); }); } else { // getMatters(); } } //添加地址 function btn_addAddress() { layer.open({ type: 2, content: "planAddAddress.html?proId=" + $('#projectid').val(), title: '添加发货地址', area: ['80%', '95%'], //宽高 }); } // 获取发货 收货地址的值 // el1 $('#building') // el2 $('#floor') function getDeliverDatas(el1, el2){ var deliverSelect = []; var buiding_id = el1.val(); var floor_id = el2.val(); var floor_names = el2.find('option[value="'+ floor_id +'"]').text(); // "1楼 护士部" deliverSelect.push({ buildingid: buiding_id, //"5b6bfd5faa3e390cef675be8" building_name: el1.find('option[value="'+ buiding_id +'"]').text(), //"住院部" floor_name: floor_names && floor_names.split(' ')[0], //"1楼" floorid: floor_id, //"5b6bfdb8aa3e390cef675bed" department_name: floor_names && floor_names.split(' ')[1], //"护士部" }); return deliverSelect; }