/** * 添加或修改配送工单 * */ var indexNum = 0; var previous = ''; //项目名称切换前的值 $(function() { autosize($('textarea')); init(); }); function init() { var edit_id = helper.request.queryString("edit_id"); helper.getDropList.getProlistDrop($('#pro_title')) .then(function() { $('#pro_title').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'), $('#pro_title').val(), 0);//发货 // getAddressSelect($('#receiverlist'), $('#pro_title').val(), 1);//1收货 }) .then(function() { if (edit_id) { $('#add_goods').empty(); getDetail(); } $('#save_btns').on('click', btn_save); }); //绑定项目名称 切换 $('#pro_title').parent().on('mouseup', proTitleClick); $('#pro_title').on('change', proTitleChange); } //获取配送物品信息 function getDetail() { var edit_id = helper.request.queryString("edit_id"); $.getJSON(huayi.config.callcenter_url + "distributionapi/api/DistriWorkOrder/getsingle", { id: edit_id, }, function(data) { if (data.state === "success") { var res = data.data.model; $('#pro_title').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 发货人电话 - 随机工单 //发货 // getAddressSelect($('#deliverylist'), res.projectid, 0) // .then(function(){ // res.deliverylist = res.deliverylist ? JSON.stringify(res.deliverylist) : ''; // $('#deliverylist').selectpicker('val', res.deliverylist); // 发货(地址,科室,联系) // }); $('#emergencyid').find('input[name="emergencyid_flag"][value="' + res.emergencyid + '"]').prop("checked", "checked"); // 是 int 紧急程度 - 1一般 2紧急 // $('#remark').val(res.detail); // 是 string 工单内容 //配送物品 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, "typeid": res.goodslist[i].typeid, "remark": res.goodslist[i].remark === null ? '' : res.goodslist[i].remark, } //紧急程度 - 1一般 2紧急 var typeName = res.goodslist[i].typeid === 1 ? '一般' : '紧急'; var tplstr = '
' + '
' + '' + '
' + '
' + '
' + '-' + '' + '+' + '
' + '
' + '' + '
'; $('#goodsLists').prepend(tplstr); // 绑定 + - 事件 $('#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; } //收件(地址,科室,联系) // getAddressSelect($('#receiverlist'), res.projectid, 1) // .then(function(){ // res.receiverlist = res.receiverlist ? JSON.stringify(res.receiverlist) : ''; // $('#receiverlist').selectpicker('val', res.receiverlist); // }); // 收货 $('#receiverLists').show(); helper.getDropList.getBuildlistDrop($('#rec_building'), res.projectid) .then(function(){ $('#rec_building').selectpicker('val', res.receiverlist[0].buildingid); });// 是 string 楼宇id helper.getDropList.getFloorlistDrop($('#rec_floor'), res.receiverlist[0].buildingid) .then(function(){ $('#rec_floor').selectpicker('val', res.receiverlist[0].floorid); });// 是 string 楼层id $('#pro_title').on('change', function() { $('#rec_building').selectpicker('destroy'); $('#rec_floor').selectpicker('destroy'); $('#rec_floor').empty(); $('#rec_floor').append(""); helper.getDropList.getBuildlistDrop($('#rec_building'), $(this).val()); }); $('#rec_building').on('change', function() { $('#rec_floor').selectpicker('destroy'); helper.getDropList.getFloorlistDrop($('#rec_floor'), $(this).val()); }); } }); } //保存配送物品信息 function btn_save() { var wURL, loadIndex; var deliveryDatas; // 添加编辑 发货 地址 var goodslist_chaidan; // 添加 物品 var receiverDatas; //编辑 收货 地址 var goodslist; // 编辑 物品 var edit_id = helper.request.queryString("edit_id"); if (edit_id) { wURL = "distributionapi/api/DistriWorkOrder/update"; } else { wURL = "distributionapi/api/DistriWorkOrder/add"; } if (!$.trim($('#pro_title').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 (!$.trim($('#remark').val())) { // layer.confirm('请输入工单内容!', { // icon: 2, // btn: ['确定'] //按钮 // }); // return; // } deliveryDatas = getDeliverDatas($('#building'),$('#floor')); //发货地址 if(edit_id){ goodslist = getFields(); // 编辑 物品 if (!$.trim($('#rec_building').val())) { layer.confirm('收货地址中,楼宇名称不允许为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } if (!$.trim($('#rec_floor').val())) { layer.confirm('收货地址中,楼层名称不允许为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } receiverDatas = getDeliverDatas($('#rec_building'),$('#rec_floor')); //编辑 收货 地址 }else{ valideFields(); // 验证配送物品 goodslist_chaidan = getFields(); // 添加 物品 } $.ajax({ type: 'post', url: huayi.config.callcenter_url + wURL, dataType: 'json', async: true, beforeSend: function() { //触发ajax请求开始时执行 $('#save_btns').attr("disabled", true); $('#save_btns').text('保存中...'); loadIndex = layer.load(); }, data: { id: edit_id, // 否 string id projectid: $('#pro_title').val(), // 是 string 项目名称id emergencyid: $('#emergencyid').find('input[name="emergencyid_flag"]:checked').val(), // 是 int 紧急程度 - 1一般 2紧急 deliverylist: deliveryDatas,// 否 List 发货(地址,科室,联系) // deliverylist: $('#deliverylist').val() && JSON.parse($('#deliverylist').val()),// 否 List 发货(地址,科室,联系) // detail: helper.filter.delHtmlTag($('#remark').val()),// 是 string 工单内容 deliveryname: $('#deliveryname').val(),// 否 string 发货人 - 随机工单 deliverytel: $('#deliverytel').val(),// 否 string 发货人电话 - 随机工单 goodslist_chaidan: goodslist_chaidan,// 添加传 是 List 添加的时候传 配送物品 - 随机工单不用 goodslist: goodslist, // 编辑传 是 List 配送物品 编辑的时候传 receiverlist: receiverDatas,// 编辑传 否 List 收件(地址,科室,联系) }, success: function(data) { layer.close(loadIndex); if (data.state === "success") { var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); parent.$('#table_all').bootstrapTable('refresh'); parent.layer.msg("保存成功"); } else { $('#save_btns').attr("disabled", false); $('#save_btns').text('保存'); } }, error: function(textStatus) { layer.close(loadIndex); layer.confirm('网络繁忙,请稍后再试...', { icon: 7, closeBtn: 0, btn: ['确定'] //按钮 }); $('#save_btns').attr("disabled", false); $('#save_btns').text('保存'); }, complete: function(XMLHttpRequest, textStatus) { layer.close(loadIndex); if (textStatus == 'timeout') { var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp"); xmlhttp.abort(); layer.confirm('网络超时,请稍后再试...', { icon: 7, closeBtn: 0, btn: ['确定'] //按钮 }); } $('#save_btns').attr("disabled", false); $('#save_btns').text('保存'); }, }); } //项目名称切换前 function proTitleClick() { previous = $(this).find('#pro_title').val(); } //项目名称切换 function proTitleChange() { var self = this; if ($('#goodsLists').find('.goodsLists_item').length > 0) { layer.confirm('切换项目名称将清除当前配送物品内容,您确定要切换项目名称吗?', { icon: 7, closeBtn: 0, btn: ['确定', '取消'], //按钮 }, function(index) { $('#goodsLists').html(''); // getAddressSelect($('#deliverylist'), $(self).val(), 0); //发货 // getAddressSelect($('#receiverlist'), $(self).val(), 1); //1收货 layer.close(index); }, function() { $(self).selectpicker('val', previous); }); } else { // getAddressSelect($('#deliverylist'), $(self).val(), 0); //发货 // getAddressSelect($('#receiverlist'), $(self).val(), 1); //1收货 } } //添加配送物品 function btn_add() { if (!$.trim($('#pro_title').val())) { layer.confirm('请选择项目名称!', { icon: 2, btn: ['确定'] //按钮 }); return; } var tplstr = ''; tplstr = '
' + '
' + '' + '
' + '
' + '' + '
' + '
' + '' + '
' + '
' + '
' + '-' + '' + '+' + '
' + '
' + '' + '
'; $('#goodsLists').prepend(tplstr); // 获取配送物品下拉 $.when( getGoodsSelect($('#goodsSelect_' + indexNum), $('#pro_title').val()), helper.getDropList.getBuildlistDrop($('#buildingSelect_' + indexNum), $('#pro_title').val()), helper.getDropList.getFloorlistDrop($('#floorSelect_' + indexNum), $('#buildingSelect_' + indexNum).val()) ) .then(function() { var curData = null; $('#goodsSelect_' + indexNum).on('change', function() { var curentIndex = $(this).attr('id').split('_')[1]; if ($(this).val()) { curData = JSON.parse($(this).val()); $('#buildingSelect_' + curentIndex).selectpicker('val', curData.buildingid).trigger('change'); } else { $('#buildingSelect_' + curentIndex).selectpicker('destroy'); $('#floorSelect_' + curentIndex).selectpicker('destroy'); $('#floorSelect_' + curentIndex).empty(); $('#floorSelect_' + curentIndex).append(""); } }); $('#buildingSelect_' + indexNum).on('change', function() { var curentIndex = $(this).attr('id').split('_')[1]; $('#floorSelect_' + curentIndex).selectpicker('destroy'); $('#floorSelect_' + curentIndex).empty(); $('#floorSelect_' + curentIndex).append(""); if($(this).val()){ helper.getDropList.getFloorlistDrop($('#floorSelect_' + curentIndex), $(this).val()) .then(function(){ if(curData){ $('#floorSelect_' + curentIndex).selectpicker('val', curData.floorid); } }); } }); // 绑定 + - 事件 $('#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); $('#goodsSelect_' + indexNum).on('change', changeEmergency); indexNum++; }); } // 获取发货 收货地址的值 // 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; } //获取配送物品的值 function getFields() { var goodslists = []; var goodsLists_items = $('#goodsLists').find('.goodsLists_item'); $.each(goodsLists_items, function(i, v) { var goodsNum = { "num": $(v).find('input[id*="goodsNum_"]').val() } var goodsSelect; if ($(v).find('input[id*="goodsSelect_"]').length) { goodsSelect = JSON.parse($(v).find('input[id*="goodsSelect_"]').attr('data-goods')); } else { goodsSelect = JSON.parse($(v).find('select[id*="goodsSelect_"]').val()); var buiding_id = $(v).find('select[id*="buildingSelect_"]').val(); var floor_id = $(v).find('select[id*="floorSelect_"]').val(); var floor_names = $(v).find('option[value="'+ floor_id +'"]').text(); // "1楼 护士部" goodsSelect.building_name = $(v).find('option[value="'+ buiding_id +'"]').text(); //"住院部" goodsSelect.buildingid = buiding_id; //"5b6bfd5faa3e390cef675be8" goodsSelect.department_name = floor_names && floor_names.split(' ')[1]; //"护士部" goodsSelect.floor_name = floor_names && floor_names.split(' ')[0]; //"1楼" goodsSelect.floorid = floor_id; //"5b6bfdb8aa3e390cef675bed" } if ($.trim(goodsNum.num)) { var cobj = $.extend(goodsSelect, goodsNum); goodslists.push(cobj); } }); //去重 // goodslists = helper.methods.uniqueObjArray(goodslists, 'goodsid'); return goodslists; } // 验证配送物品 的值是否填写 function valideFields() { var goodsLists_items = $('#goodsLists').find('.goodsLists_item'); if(goodsLists_items.length){ for (var i = 0; i < goodsLists_items.length; i++) { var goodsSelect = $(goodsLists_items[i]).find('[id*="goodsSelect_"]').val(); if(!goodsSelect){ layer.confirm('请选择配送物品!', { icon: 7, closeBtn: 0, btn: ['确定'] //按钮 }); return; } var buiding_id = $(goodsLists_items[i]).find('[id*="buildingSelect_"]').val(); if(!buiding_id){ layer.confirm('配送物品中楼宇还没有选择!', { icon: 7, closeBtn: 0, btn: ['确定'] //按钮 }); return false; } var floor_id = $(goodsLists_items[i]).find('[id*="floorSelect_"]').val(); if(!floor_id){ layer.confirm('配送物品中楼层还没有选择!', { icon: 7, closeBtn: 0, btn: ['确定'] //按钮 }); return false; } } }else{ layer.confirm('请添加配送物品!', { icon: 2, btn: ['确定'] //按钮 }); return; } } //获取配送物品 - 下拉 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) { if (data.state.toLowerCase() === 'success') { el.empty(); var res = data.data; if (res) { $('').appendTo(el); for (var i = 0; i < res.length; i++) { var cobj = { "goodsid": res[i].id, "goodsname": res[i].goodsname, "isremind": res[i].isremind, "typeid": res[i].typeid, "remark": res[i].remark, "buildingid": res[i].buildingid, // "楼宇id" "building_name": res[i].buildingname, // "楼宇" "floor_name": res[i].floorname, // "层数" "floorid": res[i].floorid, // "层数id" "department_name": res[i].departmentname, // “科室(例如:内科|消化科[一级|二级|三级]) 用"|"隔开” } //紧急程度 - 1一般 2紧急 var typeName = res[i].typeid === 1 ? '一般' : '紧急'; $('').appendTo( el); } el.selectpicker('refresh'); } dtd.resolve(); // 改变Deferred对象的执行状态 } } }); return dtd.promise(); // 返回promise对象 } //修改紧急程度 function changeEmergency() { var goodsLists_items = $('#goodsLists').find('.goodsLists_item'); for (var i = 0; i < goodsLists_items.length; i++) { var curentVal = $(goodsLists_items[i]).find('option:selected').val() && JSON.parse($(goodsLists_items[i]).find( 'option:selected').val()); //紧急 if (curentVal && curentVal.typeid === 2) { $('#emergencyid').find('input[type="radio"][value="2"]').prop('checked', true); break; } else { $('#emergencyid').find('input[type="radio"][value="1"]').prop('checked', true); } } } //验证是不是数字, 不是数字直接变成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) { var goodsLists_items = $('#goodsLists').find('.goodsLists_item'); if(goodsLists_items.length === 1){ layer.confirm('配送物品不能为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } 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对象 }