123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426 |
- <%@ page contentType="text/html;charset=UTF-8" %>
- <%@ include file="/WEB-INF/views/include/taglib.jsp"%>
- <html>
- <head>
- <title>订单列表-添加物流</title>
- <meta name="decorator" content="default"/>
- <style type="text/css">
- *{margin: 0;padding: 0}
- a{list-style: none;text-decoration: none}
- i{font-style: normal}
- body{background-color: rgb(255,255,255);}
- h3{line-height: 20px;padding:20px 0 20px 15px; border-bottom: 1px solid #CCCCCC;font-weight: normal}
- .body-margin{margin:26px}
- .left-span{width: 3px;height: 20px;margin-right:10px;background-color: #00A6C7;display: inline-block;vertical-align: bottom}
- .bj{position: fixed;width: 100%;height: 100%;bottom: 0;top:0;left: 0;z-index: 99;}
- .delivery-info{padding: 15px;background-color: #f5f5f5;}
- .shop-title{ color: #000;border-bottom: 1px solid #ccc;padding: 20px;margin-bottom: 20px;}
- .table{width: 100%;border-collapse: collapse;}
- .table th{color: #000;font-weight: normal}
- .table th,.table td{width: 25%;height: 35px;border: 1px solid #CCCCCC;text-align: center;padding: 5px 0;}
- .table td img{width: 60px;height: 60px;vertical-align: middle}
- .express-delivery{font-size: 14px;}
- .express-div{padding:10px 0;}
- .express-div label{width: 100px;line-height: 35px;display: inline-block;vertical-align: middle}
- .select-btn{display: inline-block;}
- .select-btn input{width: 210px;height: 35px; vertical-align: top;box-sizing: border-box !important;}
- .the-span{display: inline-block;float: none;margin-left: 0; width: 35px;height: 35px;line-height: 33px; box-sizing: border-box; vertical-align: top; border: 1px solid #ccc;cursor: pointer; text-align: center;font-size: 24px;border-radius: 4px;}
- input::-webkit-input-placeholder {text-align: center}
- .mask{padding:20px 20px 20px 120px;font-size: 14px;position:relative;}
- .mask label{position:absolute;left:20px;width: 100px;}
- .mask textarea{resize: none;width: 260px;height: 130px;vertical-align: middle}
- .cencal-btn{margin-left: 130px;}
- .cencal-btn span{display: inline-block;padding: 7px 25px;border: 1px solid #CCCCCC;border-radius: 5px; cursor: pointer;}
- .cencal-btn span:last-child{background-color: #00A6C7;border-color: #00A6C7;margin-left: 30px;color: #fff}
- .border-express{border-top: 1px solid #ccc;margin-top: 15px;}
- .logistic-already{font-size: 14px;width: 600px;border-bottom: 1px solid #CCCCCC}
- .logistic-already h3{border: 0}
- .have-logistic{font-size: 0;}
- .logistic-item{width: 50%;display: inline-block;font-size: 14px;vertical-align: text-top}
- .logistic-item div{margin-bottom: 15px;}
- .logistic-item div label{display: inline-block;margin-right: 15px;}
- .input{height: 100%;border: 0}
- .change-info{position: fixed;top: 20%;left: 50%;transform:translateX(-50%);z-index: 999;padding: 50px;background-color: #fff;box-shadow: 0px 0px 15px #ccc;}
- .mar-css{margin-left: 5px !important;}
- .controls{font-size:0}
- .upload-content{position:relative;}
- .upload-content *{margin:0;padding:0;}
- .upload-content .conList{display:inline-block;margin-right:5px;width:90px;height:90px;background:#e6e6e6;border-radius:5px;position:relative;overflow:hidden}
- .upload-content .conList li{position:relative;padding:18px 0}
- .upload-content .conList li img{width:100%;margin:0 !important;padding:0 !important}
- .upload-content img.cancel-upload{position:absolute;top:0;right:0;cursor:pointer;z-index:100}
- .upload-content .conList .btn{position:absolute;width:100%;height:100%;top:0;left:0;background:#e6e6e6}
- .upload-content .conList .btn div{padding-top:20px}
- .upload-content .conList .btn div span{font-size:35px}
- .hide-pic{display:none !important}
- .upload-tips{margin:10px 0}
- </style>
- </head>
- <body>
- <ul class="nav nav-tabs">
- <li><a href="${ctx}/order/orderList">订单列表</a></li>
- <li><a href="${ctx}/order/toDeliveryPage?id=${orderID}">发货</a></li>
- <li class="active"><a href="${ctx}/order/toShipLogistic?orderID=${orderID}">添加物流</a></li>
- </ul>
- <div class="change-info" style="display: none">发货数量大于总数量</div>
- <div class="bj" style="display: none"></div>
- <div class="body-margin">
- <div class="shop-info">
- <table class="table">
- <tr class="first-tr">
- <th>供应商</th>
- <th>商品图片</th>
- <th>商品名称</th>
- <th>购买数量</th>
- <th>赠品数量</th>
- <th>已发数量</th>
- <th>本次发货</th>
- </tr>
- </table>
- </div>
- <div class="delivery-info">
- <div class="express-delivery">
- <div class="express-div">
- <label><i>*</i>快递公司</label>
- <div class="select-btn" id="qqq">
- <select class="express-input required input-xlarge" style="width:300px;">
- <c:forEach items="${fns:getDictList('kd_type')}" var="kd">
- <option value="${kd.label}">${kd.label}</option>
- </c:forEach>
- </select>
- <span onclick="input(this)" class="span_jia the-span">+</span>
- </div>
- </div>
- <div class="express-div ship-num">
- <label><i>*</i>物流编号</label>
- <div class="select-btn">
- <input class="single-num" type="text" placeholder="请输入单号" style="width:300px;">
- <span onclick="input(this)" class="dan_jia the-span">+</span>
- </div>
- </div>
- </div>
- <div class="mask">
- <label>图片备注:</label>
- <div class="imgbox">
- <div class="controls upload-content" id="remarkImageBox">
- <div class="conList">
- <input type="hidden" id="image1" maxlength="150" class="imagesInput">
- <sys:ckfinder input="image1" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
- </div>
- <div class="conList hide-pic">
- <input type="hidden" id="image2" maxlength="150" class="imagesInput">
- <sys:ckfinder input="image2" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
- </div>
- <div class="conList hide-pic">
- <input type="hidden" id="image3" maxlength="150" class="imagesInput">
- <sys:ckfinder input="image3" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
- </div>
- <div class="conList hide-pic">
- <input type="hidden" id="image4" maxlength="150" class="imagesInput">
- <sys:ckfinder input="image4" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
- </div>
- <div class="conList hide-pic">
- <input type="hidden" id="image5" maxlength="150" class="imagesInput">
- <sys:ckfinder input="image5" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
- </div>
- <div class="conList hide-pic">
- <input type="hidden" id="image6" maxlength="150" class="imagesInput">
- <sys:ckfinder input="image6" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
- </div>
- <div class="conList hide-pic">
- <input type="hidden" id="image7" maxlength="150" class="imagesInput">
- <sys:ckfinder input="image7" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
- </div>
- <div class="conList hide-pic">
- <input type="hidden" id="image8" maxlength="150" class="imagesInput">
- <sys:ckfinder input="image8" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
- </div>
- <div class="conList hide-pic">
- <input type="hidden" id="image9" maxlength="150" class="imagesInput">
- <sys:ckfinder input="image9" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
- </div>
- <div class="conList hide-pic">
- <input type="hidden" id="image10" maxlength="150" class="imagesInput">
- <sys:ckfinder input="image10" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
- </div>
- </div>
- <div class="conList upload-tips"><span style="color:red;">注意:请上传jpg / png格式的图片,最大不超过5M,最多可上传10张</span></div>
- </div>
- </div>
- <div class="mask">
- <label>备注:</label>
- <textarea class="mask-text" placeholder="请输入备注文字,200字以内..." maxlength="200" style="width:300px;"></textarea>
- <p style="width:300px;text-align:right;"><span id="remarkLen" style="color:red;">0</span>/200</p>
- </div>
- <div class="cencal-btn">
- <span><a href="javascript:history.go(-1)">取消</a></span>
- <span class="confirm">确认</span>
- </div>
- </div>
- </div>
- <script>
- var op_html = "";
- window.onload = function () {
- var spanjia_ = document.getElementsByClassName('span_jia');
- var express_ = document.getElementsByClassName('express-delivery');
- var danjia_ = document.getElementsByClassName('dan_jia');
- var shipnum_ = document.getElementsByClassName('ship-num');
- var input_ = document.getElementsByClassName('input')//数量输入框
- var confirm_ = document.getElementsByClassName('confirm');//确定按钮
- var expressDelivery_ = document.getElementsByClassName('express-delivery');//循环物流
- var masktext_ = document.getElementsByClassName('mask-text');//备注
- var singlenum_= document.getElementsByClassName('single-num');//新建输入框判断
- var obj = {};
- // var valuearr = {};
- var expressval = document.getElementsByTagName('select');//物流快递
- var index = expressval[0].selectedIndex ;//索引值
- var value = expressval[0].options[index].value;
- var arr = [];
- for(var i=0;i<expressval[0].options.length;i++){
- var valuearr = {};
- valuearr['name'] = expressval[0].options[i].text;
- valuearr['value'] = expressval[0].options[i].value;
- arr.push(valuearr);
- }
- //新建输入框判断
- for(var i=0;i<singlenum_.length;i++){
- }
- //输入框判断
- for(var i=0;i<input_.length;i++){
- input_[i].onchange = function () {
- var intval = this.value;
- var buynum = this.parentNode.parentNode.getElementsByClassName('buy-num');//购买数量
- var sent_ = this.parentNode.parentNode.getElementsByClassName('sent');//已发数量
- if(parseInt(intval)+parseInt(sent_[0].innerHTML) >=parseInt(buynum[0].innerHTML)){
- document.getElementsByClassName('bj')[0].style.cssText = 'display:block';
- document.getElementsByClassName('change-info')[0].style.cssText = 'display:block';
- setTimeout(function () {
- document.getElementsByClassName('bj')[0].style.cssText = 'display:none';
- document.getElementsByClassName('change-info')[0].style.cssText = 'display:none';
- },1000);
- this.value = 0
- }
- }
- }
- //物流加减
- for(var i=0;i<spanjia_.length;i++){
- spanjia_[i].onclick =function () {
- var html=''
- html+='<div class="express-delivery border-express">';
- html+='<div class="express-div">';
- html+='<label><i>*</i>快递公司</label>';
- html+='<div class="select-btn">';
- html+='<select class="express-input required input-xlarge">';
- for(var i=0;i<arr.length;i++){
- html+='<option value="'+arr[i].value+'">'+arr[i].name;
- html+='</option>';
- }
- html+='</select>';
- html+='<span onclick="jian(this)" class="span_jian mar-css the-span">-</span>';
- html+='</div>';
- html+='</div>';
- html+='<div class="express-div">';
- html+='<label><i>*</i>物流编号</label>';
- html+='<div class="select-btn">';
- html+='<input class="single-num" type="text" placeholder="请输入单号">';
- html+='<span onclick="danjia(this)" class="dan_jia mar-css the-span">+</span>';
- html+='</div>';
- html+='</div>';
- html+='</div>';
- express_[0].insertAdjacentHTML('afterend', html);
- }
- }
- //物流单号
- for(var i=0;i<spanjia_.length;i++){
- danjia_[i].onclick =function () {
- danjia(this)
- }
- }
- //列表信息展示
- var resdata = JSON.parse(localStorage.getItem('jsonstring'));
- console.log(resdata)
- var html = '';
- for(var i=0;i<resdata.length;i++){
- html+='<tr>';
- html+='<td>'+resdata[i].shopName+'</td>'
- html+='<td>';
- html+='<img src="'+resdata[i].image+'">';
- html+='</td>';
- html+='<td>';
- html+=resdata[i].name;
- html+='</td>';
- html+='<td class="buy-num">';
- html+=resdata[i].num;
- html+='</td>';
- html+='<td>';
- html+=resdata[i].presentNum;
- html+='</td>';
- html+='<td class="sent">';
- html+=resdata[i].num + resdata[i].presentNum - resdata[i].notOutStore;
- html+='</td>';
- html+='<td>';
- html+='<span data-id='+resdata[i].orderProductID+' data-type='+resdata[i].shopOrderID+' class="input">';
- html+=''+resdata[i].deliveryNum+'';
- html+='</span>';
- html+='</td>';
- html+='</tr>';
- obj['orderProductID_'+resdata[i].orderProductID+''] = resdata[i].deliveryNum;
- obj['shopOrderID'] = resdata[i].shopOrderID;
- }
- $('.table').append(html);
- //确认点击获取物流以及物流单号
- confirm_[0].onclick = function () {
- var _masktext = masktext_[0].value;
- obj['remarks'] = _masktext;
- for(var i=0;i<expressDelivery_.length;i++){
- var expressval = expressDelivery_[i].getElementsByTagName('select');//物流快递
- if(!expressval[0].value){
- $.jBox.info('请选择物流快递!');
- return false;
- }
- var index = expressval[0].selectedIndex ;//索引值
- var singlenum_ = expressDelivery_[i].getElementsByClassName('single-num');//物流单号
- console.log(expressval[0].value + singlenum_[0].value);
- var list_ = '';
- for(var j=0;j<singlenum_.length;j++){
- if(!singlenum_[j].value){
- $.jBox.info('请填写物流单号!');
- return false;
- }
- list_+= singlenum_[j].value+'_';
- obj['logisticsInfo_'+expressval[0].options[index].value+''] = list_.substring(0,list_.length - 1);
- }
- }
- var imgArr = [];
- if($('#image1').val()){ imgArr.push($('#image1').val()); }
- if($('#image2').val()){ imgArr.push($('#image2').val()); }
- if($('#image3').val()){ imgArr.push($('#image3').val()); }
- if($('#image4').val()){ imgArr.push($('#image4').val()); }
- if($('#image5').val()){ imgArr.push($('#image5').val()); }
- if($('#image6').val()){ imgArr.push($('#image6').val()); }
- if($('#image7').val()){ imgArr.push($('#image7').val()); }
- if($('#image8').val()){ imgArr.push($('#image8').val()); }
- if($('#image9').val()){ imgArr.push($('#image9').val()); }
- if($('#image10').val()){ imgArr.push($('#image10').val()); }
- obj['remarkImages'] = imgArr.join("##");
- console.log(obj);
- $.ajax({
- url : "${ctx}/order/delivery",
- contentType:'application/json',
- data : JSON.stringify(obj),
- type : 'post',
- success : function(data){
- if (data.success) {
- window.location.href = "${ctx}/order/qualificationList?logisticsBatchId="+data.logisticsBatchId;
- } else {
- alert(data.msg);
- }
- },
- error : function(){
- alert("服务器内部错误");
- }
- })
- }
- };
- //物流单号
- function danjia(that) {
- if(that.parentNode.getElementsByClassName('single-num')[0].value ==''){return}
- var html=''
- html+='<div class="express-div">';
- html+='<label><i>*</i>物流编号</label>';
- html+='<div class="select-btn">';
- html+='<input class="single-num" type="text" placeholder="请输入单号">';
- html+='<span onclick="shipjian(this)" class="span_jian mar-css the-span">-</span>';
- html+='</div>';
- html+='</div>';
- that.parentNode.parentNode.insertAdjacentHTML('afterend', html);
- }
- //减物流
- function jian(that) {
- var that_ = that.parentNode.parentNode.parentNode;
- that.parentNode.parentNode.parentNode.parentNode.removeChild(that_);
- }
- //减单号
- function shipjian(that) {
- var that_ = that.parentNode.parentNode;
- that.parentNode.parentNode.parentNode.removeChild(that_);
- }
- //判断输入框不能为空
- function input(that) {
- if(that.parentNode.getElementsByClassName('single-num')[0].value == ''){return}
- }
- $(function () {
- $('.upload-content .conList .btn:nth-of-type(1)').html('<div><span>+</span><h5>选择图片</h5></div>');
- $('.upload-content .conList .btn:nth-of-type(2)').after('<img class="cancel-upload" src="/static/images/close-btn1.png">').remove();
- $('.upload-content .conList').find('.cancel-upload').hide();
- var observeEle = document.getElementsByClassName('upload-content')[0];
- var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
- var MutationObserverConfig={
- childList: true,
- subtree: true,
- characterData: true
- };
- var observer = new MutationObserver(function(mutations){
- $.each(mutations, function(index,item) {
- if (item.type === 'childList') {
- // 在创建新的 element 时调用
- var target = $(item.target),
- thisWrapper = target.closest('.conList'),
- nextEle = thisWrapper.next();
- thisWrapper.find('li').css('z-index',99);
- thisWrapper.find('.cancel-upload').show();
- if(nextEle.hasClass('hide-pic')) {
- nextEle.removeClass('hide-pic');
- }
- }
- })
- });
- observer.observe(observeEle,MutationObserverConfig);
- $('body').on('click', '.cancel-upload',function() {
- var wrapper = $(this).closest('.conList');
- wrapper.find('li').css('z-index','-1');
- wrapper.find('input').val('');
- $(this).hide();
- if ($('.cancel-upload:visible').length < 9) {
- wrapper.addClass("hide-pic");
- }else{
- wrapper.removeClass("hide-pic");
- }
- wrapper.parent().append(wrapper.clone());
- wrapper.remove();
- $(".conList").each(function(i,ele){
- if($(ele).find("input.imagesInput").val()){
- $(ele).next().removeClass("hide-pic")
- }
- })
- });
- $(window).on("load", function(){
- setTimeout(function(){
- $("#remarkImageBox").find("input.imagesInput").each(function(i,ele){
- if($(ele).val()){
- $(ele).next().find("li").css("z-index","99");
- $(ele).parents(".conList").find(".cancel-upload").show();
- $(ele).parents(".conList").next().removeClass("hide-pic")
- }
- })
- },500);
- });
- $('body').on('keyup', '.mask-text',function() {
- $('#remarkLen').text($(this).val().length);
- });
- });
- </script>
- </body>
- </html>
|