没心没肺 5 years ago
parent
commit
33f8ad150e
3 changed files with 162 additions and 86 deletions
  1. 78 32
      js/root/orderSearch.js
  2. 75 45
      newSystem/pnrSearch.html
  3. 9 9
      orderSearch.html

+ 78 - 32
js/root/orderSearch.js

@@ -428,7 +428,7 @@ require(['common', 'template', 'moment', 'clipboard', 'pinyin', 'serializeObject
           }
 
           if (row.receiver_pricebig) {
-            result += `<div class="ellipsis" title="${row.receiver_pricebig}" style="max-width:100px;">${row.receiver_pricebig}</div>`
+            result += `<div class="ellipsis" title="${row.receiver_pricebig}" style="max-width:100px;">${row.receiver_method ? row.receiver_method.split('~')[0] : ''}${row.receiver_pricebig}</div>`
           }
           return result
         }
@@ -578,23 +578,33 @@ require(['common', 'template', 'moment', 'clipboard', 'pinyin', 'serializeObject
             isUO: ['UO'],
             isNO: ['NO']
           }
+          var carrier = ''
           Object.entries(airline).forEach(function (e) {
             row[e[0]] = row.go.concat(row.go.back).filter(function (e) { return e }).every(function (segments) {
               return e[1].indexOf(segments.flightNum.slice(0, 2)) >= 0
             })
+            if (row[e[0]]) {
+              carrier = e[1][0]
+            }
           })
 
           var priceDisabled = !/#/.test(row.orderNo) && row.isAK
-
+          var lockDisabled = ''
+          // if ((Date.now() - Number(row.createTime) <= 300000 && row.is5J) || (row.ticketLock != 0 && row.ticketLock != 1)) {
+          //   lockDisabled = 'disabled'
+          // }
+          if (row.ticketLock != 0 && row.ticketLock != 1) {
+            lockDisabled = 'disabled'
+          }
           var html = `
                 <div class='btn-group'>
                     <button type='button' class='btn btn-xs btn-warning price' ${priceDisabled ? '' : 'disabled'} data-index="${index}" data-data='${JSON.stringify(row)}'>比价</button>
                     <button type='button' class='btn btn-xs btn-primary edit' data-orderno='${row.orderNo}'>编辑</button>
-                    <button type='button' class='btn btn-xs btn-success lock ${row.ticketLock == 0 ? "btn-outline'" : (row.ticketLock == 1 ? "'" : "' disabled")} data-ordersource='${row.orderSource}' data-ticketlock='${row.ticketLock == 0 ? 1 : 0}' data-orderno='${row.orderNo}'>${row.ticketLock == 0 ? '锁单' : (row.ticketLock == 1 ? '解锁' : '已锁定')}</button>
+                    <button type='button' class='btn btn-xs btn-success lock ${row.ticketLock == 0 ? "btn-outline" : ""}' ${lockDisabled} data-ordersource='${row.orderSource}' data-ticketlock='${row.ticketLock == 0 ? 1 : 0}' data-orderno='${row.orderNo}'>${row.ticketLock == 0 ? '锁单' : (row.ticketLock == 1 ? '解锁' : '已锁定')}</button>
                 </div>
                 <div class='btn-group'>
-                    <button type='button' class='btn btn-xs btn-info webGenerateOrder' ${((!/行李/.test(row.addService) && row.isFR) || row.isAK || row.is5J) ? '' : 'disabled'} data-isreturn='${row.back.length}' data-orderno='${row.orderNo}' data-pnrcode='${row.pnrCode}' data-iscebu='${row.is5J}' data-isfr='${row.isFR}'>${row.isFR ? '生单支付' : (row.is5J ? '特价生单' : '官网')}</button>
-                    ${row.isAK ? `<button type='button' class='btn btn-xs btn-default specialGenerateOrder' ${!/#/.test(row.orderNo) ? '' : 'disabled'} data-orderno='${row.orderNo}' data-pnrcode='${row.pnrCode}' data-type='${row.back.length ? '' : 'go'}' data-paytype='balance'>特价</button>` : ''}
+                    <button type='button' class='btn btn-xs btn-info webGenerateOrder' ${(row.isFR || row.isAK || row.is5J) ? '' : 'disabled'} data-isreturn='${row.back.length}' data-orderno='${row.orderNo}' data-pnrcode='${row.pnrCode}' data-iscebu='${row.is5J}' data-isfr='${row.isFR}'>${row.isFR ? '生单支付' : (row.is5J ? '生单' : '官网')}</button>
+                    ${(row.isAK || row.is5J) ? `<button type='button' class='btn btn-xs btn-default specialGenerateOrder' ${!/#/.test(row.orderNo) ? '' : 'disabled'} data-orderno='${row.orderNo}' data-pnrcode='${row.pnrCode}' data-carrier='${carrier}' data-type='${row.back.length ? '' : 'go'}' data-paytype='balance'>特价</button>` : ''}
                     <button type='button' class='btn btn-xs btn-danger pay' data-isze='${row.isZE}' data-isdd='${row.isDD}' data-ismm='${row.isMM}' data-is7c='${row.is7C}' data-iscebu='${row.is5J}' ${/#/.test(row.orderNo) || !(row.status == 1) ? 'disabled' : ''} data-orderno='${row.orderNo}' data-pnrcode='${row.pnrCode}' data-paytype='balance'>支付</button>
                 </div>`
           if (!/5JNEWYW/.test(row.receiver_pricebig) || (row.createTime + 600000) < Date.now()) {
@@ -2331,16 +2341,23 @@ require(['common', 'template', 'moment', 'clipboard', 'pinyin', 'serializeObject
     }
 
     // 亚航特价生单
-    function specialGenerateOrder(data) {
+    function specialGenerateOrder(data, carrier) {
       var html = ''
-      // if (data.type === 'go') {
-      //   html += '<button type="button" class="btn btn-primary btn-xs m-b" id="getAccount">获取账号</button>'
-      // }
-      html += '<button type="button" class="btn btn-primary btn-xs m-b" id="getAccount">获取账号</button>'
+      if (carrier === 'AK') {
+        html += '<button type="button" class="btn btn-primary btn-xs m-b" id="getAccount">获取账号</button>'
+      }
+      var url = {
+        AK: 'order/gw_order.jsp',
+        '5J': 'cebu/gw_order.jsp'
+      }
       html += '<form id="specialGenerateOrder">'
       html += '<p class="msg"></p>'
       html += '<input type="text" class="m-b form-control" placeholder="特价账号" name="userName" required>'
-      html += '<input type="text" class="form-control" placeholder="密码" name="passWord" required>'
+      html += '<input type="text" class="m-b form-control" placeholder="密码" name="passWord" required>'
+      if (carrier === 'AK') {
+        html += '<input type="text" class="m-b form-control" placeholder="去程舱位码" name="cabaCode">'
+        html += '<input type="text" class="form-control" placeholder="回程舱位码" name="retCabaCode">'
+      }
       html += '</form>'
       layer.confirm(html, {
         title: '请输入特价账号信息',
@@ -2350,7 +2367,7 @@ require(['common', 'template', 'moment', 'clipboard', 'pinyin', 'serializeObject
             var temp = $('#specialGenerateOrder').serializeObject()
             $.send({
               data: $.extend(temp, data),
-              url: 'http://fly.tripto.cn/jsp/order/gw_order.jsp',
+              url: JSP_URL + url[carrier],
               success: function (res) {
                 layer.msg(res.msg)
               }
@@ -2358,23 +2375,25 @@ require(['common', 'template', 'moment', 'clipboard', 'pinyin', 'serializeObject
           }
         },
         success: function () {
-          $('#getAccount').on('click', function () {
-            $.send({
-              data: JSON.stringify(data),
-              timeout: 60000,
-              contentType: 'application/json',
-              url: JSP_URL + 'utils/getPointsEmail.jsp',
-              success: function (res) {
-                if (res.result) {
-                  res.msg && $('#specialGenerateOrder .msg').text(res.msg)
-                  $('#specialGenerateOrder [name="userName"]').val(res.data.account_name)
-                  $('#specialGenerateOrder [name="passWord"]').val(res.data.account_pwd)
-                } else {
-                  layer.msg(res.msg || '获取失败')
+          if (carrier === 'AK') {
+            $('#getAccount').on('click', function () {
+              $.send({
+                data: JSON.stringify(data),
+                timeout: 60000,
+                contentType: 'application/json',
+                url: JSP_URL + 'utils/getPointsEmail.jsp',
+                success: function (res) {
+                  if (res.result) {
+                    res.msg && $('#specialGenerateOrder .msg').text(res.msg)
+                    $('#specialGenerateOrder [name="userName"]').val(res.data.account_name)
+                    $('#specialGenerateOrder [name="passWord"]').val(res.data.account_pwd)
+                  } else {
+                    layer.msg(res.msg || '获取失败')
+                  }
                 }
-              }
+              })
             })
-          })
+          }
         }
       })
     }
@@ -2725,6 +2744,7 @@ require(['common', 'template', 'moment', 'clipboard', 'pinyin', 'serializeObject
     function splitRequestInfo(data) {
       tableRender('modalBody', 'splitRequestInfo', data, [
         { title: '人数', field: 'usercount' },
+        { title: '数据源', field: 'method' },
         { title: '舱位码', field: 'sellkey' },
         { title: '原始币种', field: 'obcurrency' },
         { title: '原始价格', field: 'obprice', format: function (v, row) { return row.ibprice ? row.obprice + '|' + row.ibprice : row.obprice } },
@@ -2985,7 +3005,7 @@ require(['common', 'template', 'moment', 'clipboard', 'pinyin', 'serializeObject
           editUser: $.attachment.name,
           force: 'bigOrder'
         }
-        specialGenerateOrder(data)
+        specialGenerateOrder(data, $(this).data('carrier'))
       })
 
       //支付
@@ -3197,10 +3217,36 @@ require(['common', 'template', 'moment', 'clipboard', 'pinyin', 'serializeObject
         }
       })
 
-      // 回填
+      // 获取虚拟卡
       $('#modal').on('click', '#virtualCard', function () {
         if ($(this).data('operator') === $.attachment.name) {
-          virtualCard({ orderNo: $(this).data('orderno'), totalprice: $(this).data('totalprice'), currency: 'CNY', operator: $.attachment.name })
+          var orderNo = $(this).data('orderno')
+          var html = `<form id="virtualCardForm">
+          <div>币种 <select class="form-control" name="currency" required></select></div>
+          <div>虚拟卡金额 <input type="number" class="form-control" name="totalprice" placeholder="虚拟卡金额" value="${$(this).data('totalprice')}" required></div></form>`
+          layer.confirm(html, {
+            title: '获取虚拟卡',
+            skin: 'layui-layer-molv',
+            success: function () {
+              $('#virtualCardForm [name=currency]').html(createOption({
+                options: [
+                  { value: 'USD', label: 'USD' },
+                  { value: 'HKD', label: 'HKD' },
+                  { value: 'EUR', label: 'EUR' },
+                  { value: 'JPY', label: 'JPY' }
+                ]
+              }))
+            },
+            yes: function () {
+              if ($('#virtualCardForm').valid()) {
+                var eitData = $('#virtualCardForm').serializeObject()
+                eitData.orderNo = orderNo
+                eitData.operator = $.attachment.name
+                eitData.terminalName = 'Manual'
+                virtualCard(eitData)
+              }
+            }
+          })
         } else {
           layer.msg('您未锁定订单,无法获取虚拟卡')
         }
@@ -3826,7 +3872,7 @@ require(['common', 'template', 'moment', 'clipboard', 'pinyin', 'serializeObject
         var orderNo = $(this).data('orderno')
         $.send({
           data: { orderNo: orderNo, operator: $.nickname, editUser: $.attachment.name },
-          url: 'http://fly.tripto.cn/jsp/utils/gw_auto_stop.jsp ',
+          url: 'http://fly.tripto.cn/jsp/utils/gw_auto_stop.jsp',
           success(res) {
             if (res.code == 200) {
               layer.msg(res.msg || '暂停成功', function () {
@@ -3857,7 +3903,7 @@ require(['common', 'template', 'moment', 'clipboard', 'pinyin', 'serializeObject
         var val = $(this).val().toUpperCase()
         $(this).val(val)
         var rate = window.top.RATE['UnionPay' + val] || 1
-        $('#modal .currencyRate').val(rate).trigger('change')
+        $(this).parents('tr').find('.currencyRate').val(rate).trigger('change')
         allProfitCalculation()
         luggageProfitCalculation()
       })

+ 75 - 45
newSystem/pnrSearch.html

@@ -27,54 +27,59 @@
       </div>
       <div class="ibox-content">
         <form class="form-horizontal row" id="searchForm">
-          <div class="row">
-            <div class="col-sm-3 m-b">
-              <label class="col-sm-4 control-label">PNR:</label>
-              <div class="col-sm-8">
-                <input type="text" class="form-control toUpper" name="pnr" maxlength="8">
-                <i class="fa fa-remove"></i>
-              </div>
+          <div class="col-sm-3 m-b">
+            <label class="col-sm-4 control-label">PNR:</label>
+            <div class="col-sm-8">
+              <input type="text" class="form-control toUpper" name="pnr" maxlength="8">
+              <i class="fa fa-remove"></i>
             </div>
-            <div class="col-sm-3 m-b">
-              <label class="col-sm-4 control-label">lastName:</label>
-              <div class="col-sm-8">
-                <input type="text" class="form-control toUpper" name="lastName">
-                <i class="fa fa-remove"></i>
-              </div>
+          </div>
+          <div class="col-sm-3 m-b">
+            <label class="col-sm-4 control-label">lastName:</label>
+            <div class="col-sm-8">
+              <input type="text" class="form-control toUpper" name="lastName">
+              <i class="fa fa-remove"></i>
+            </div>
+          </div>
+          <div class="col-sm-3 m-b">
+            <label class="col-sm-4 control-label">firstName:</label>
+            <div class="col-sm-8">
+              <input type="text" class="form-control toUpper" name="firstName">
+              <i class="fa fa-remove"></i>
+            </div>
+          </div>
+          <div class="col-sm-3 m-b">
+            <label class="col-sm-4 control-label">起飞日期:</label>
+            <div class="col-sm-8">
+              <input type="date" class="form-control" name="depDate">
+              <i class="fa fa-remove"></i>
             </div>
-            <div class="col-sm-3 m-b">
-              <label class="col-sm-4 control-label">firstName:</label>
-              <div class="col-sm-8">
-                <input type="text" class="form-control toUpper" name="firstName">
-                <i class="fa fa-remove"></i>
-              </div>
+          </div>
+          <div class="col-sm-3 m-b">
+            <label class="col-sm-4 control-label">亚航缓存:</label>
+            <div class="col-sm-8">
+              <select name="useCache" class="form-control">
+                <option value="">亚航使用缓存</option>
+                <option value="akCache">亚航不使用缓存</option>
+              </select>
             </div>
-            <div class="col-sm-3 m-b">
-              <label class="col-sm-4 control-label">起飞日期:</label>
-              <div class="col-sm-8">
-                <input type="date" class="form-control" name="depDate">
-                <i class="fa fa-remove"></i>
-              </div>
+          </div>
+          <div class="col-sm-3 m-b">
+            <label class="col-sm-4 control-label">宿务缓存:</label>
+            <div class="col-sm-8">
+              <select name="isUseCache" class="form-control">
+                <option value="">宿务不使用缓存</option>
+                <option value="1">宿务使用缓存</option>
+              </select>
             </div>
           </div>
-          <div class="row">
-            <div class="col-sm-3 m-b">
-              <label class="col-sm-4 control-label">缓存:</label>
-              <div class="col-sm-8">
-                <select name="useCache" class="form-control">
-                  <option value="">亚航使用缓存</option>
-                  <option value="akCache">亚航不使用缓存</option>
-                </select>
-              </div>
+          <div class="col-sm-3 col-sm-offset-3 m-b">
+            <div class="col-sm-6">
+              <button type="button" class="btn btn-block btn-link" id="clearAll">清空选项</button>
             </div>
-            <div class="col-sm-3 col-sm-offset-6 m-b">
-              <div class="col-sm-6">
-                <button type="button" class="btn btn-block btn-link" id="clearAll">清空选项</button>
-              </div>
-              <div class="col-sm-6">
-                <button type="button" class="btn btn-block btn-success" id="search"><i class="fa fa-search"></i>
-                  搜索</button>
-              </div>
+            <div class="col-sm-6">
+              <button type="button" class="btn btn-block btn-success" id="search"><i class="fa fa-search"></i>
+                搜索</button>
             </div>
           </div>
         </form>
@@ -168,6 +173,11 @@
                     layer.msg('获取失败')
                     $('#tableContent').html('')
                   }
+                },
+                error: function () {
+                  PNRDATA = false
+                  layer.msg('获取失败')
+                  $('#tableContent').html('')
                 }
               })
             } else {
@@ -177,7 +187,14 @@
                 method: 'get',
                 success: function (result) {
                   if (result.success) {
-                    PNRDATA = JSON.parse(result.info)
+                    try {
+                      PNRDATA = JSON.parse(result.info)
+                    } catch (error) {
+                      PNRDATA = false
+                      layer.msg('获取失败')
+                      $('#tableContent').html('')
+                      return false
+                    }
                     console.log(PNRDATA)
                     if (type == 'AK') {
                       renderModalAK(PNRDATA)
@@ -189,6 +206,11 @@
                     layer.msg('获取失败')
                     $('#tableContent').html('')
                   }
+                },
+                error: function () {
+                  PNRDATA = false
+                  layer.msg('获取失败')
+                  $('#tableContent').html('')
                 }
               })
             }
@@ -765,8 +787,11 @@
             { field: 'priceStatus', title: '价格状态' },
             { field: 'profileStatus', title: '概要文件状态' },
             { field: 'promotionCode', title: '促销码' },
-            { field: 'bookedDate', title: '订单日期' },
-            { field: 'expirationDate', title: '过期日期' }
+            { field: 'bookedDate', title: '订单日期', type: 'dateTime' },
+            { field: 'createdDate', title: '创建日期', type: 'dateTime' },
+            { field: 'expirationDate', title: '过期日期', type: 'dateTime' },
+            { field: 'modifiedDate', title: '修改日期', type: 'dateTime' },
+            { field: 'hold', title: '到期', format: function (v) { return v && v.expiration && moment(v.expiration).format('YYYY-MM-DD HH:mm') } }
           ])
         }
 
@@ -1121,6 +1146,10 @@
             showColumns: false,
             pagination: false
           }, [
+            { field: 'status', title: '状态' },
+            { field: 'createdAgentId', title: '代理人ID' },
+            { field: 'authorizationCode', title: '授权码' },
+            { field: 'authorizationStatus', title: '授权状态' },
             { field: 'amount', title: '支付金额', format: function (value, row) { return row.amounts.amount } },
             { field: 'currencyCode', title: '支付币种', format: function (value, row) { return row.amounts.currencyCode } },
             { field: 'type', title: 'type' },
@@ -1283,6 +1312,7 @@
                 searchData.date = searchData.depDate
                 getData(searchData, '7C')
               } else {
+                searchData.isUseCache = !!searchData.isUseCache
                 getData(searchData, '5J')
               }
             } else {

+ 9 - 9
orderSearch.html

@@ -503,7 +503,7 @@
   <div class="wrapper wrapper-content">
     <div class="ibox float-e-margins">
       <div class="ibox-title">
-        <h5>搜索 v0.6.5</h5>
+        <h5>搜索 v0.7.2</h5>
         <div class="ibox-tools">
           <a class="collapse-link">
             <i class="fa fa-chevron-up searchClose"></i>
@@ -952,8 +952,8 @@
             <div class="ibox-content">
                 <button type="button" class="btn btn-link btn-xs" id="passengerCopy"><i class="fa fa-clipboard"></i> 复制乘机人信息</button>{{if orderInfo.isAK||orderInfo.is5J||orderInfo.isMM||orderInfo.is7C||orderInfo.isVJ||orderInfo.isFR||orderInfo.isSL||orderInfo.isDD||orderInfo.isZE||orderInfo.isUO}}
                 <button type="button" class="btn btn-danger btn-xs fl-r m-f" id="checkOrder">核验订单</button>{{/if}}
-                <button type="button" class="btn btn-primary btn-xs fl-r m-f" id="rewrite" {{orderInfo.isRewrite? 'disabled': ''}}>{{orderInfo.isRewrite==1?'回填完成':orderInfo.isRewrite==2?'回填失败':'回填票号'}}</button>{{if orderInfo.status==1}}
-                <button type="button" class="btn btn-success btn-xs fl-r m-f" id="virtualCard" data-operator="{{orderInfo.operator}}" data-orderno="{{orderInfo.orderNo}}" data-totalprice="{{orderInfo.allPrice}}">查看虚拟卡</button>
+                <button type="button" class="btn btn-primary btn-xs fl-r m-f" id="rewrite" {{orderInfo.isRewrite? 'disabled': ''}}>{{orderInfo.isRewrite==1?'回填完成':orderInfo.isRewrite==2?'回填失败':'回填票号'}}</button>{{if orderInfo.status==1||orderInfo.status==100}}
+                <button type="button" class="btn btn-success btn-xs fl-r m-f" id="virtualCard" data-operator="{{orderInfo.operator}}" data-orderno="{{orderInfo.orderNo}}" data-totalprice="{{orderInfo.allPrice}}">查看虚拟卡</button>{{/if}}{{if orderInfo.status==1}}
                 <button type="button" class="btn btn-success btn-xs fl-r m-f" id="getVerifyCode" data-operator="{{orderInfo.operator}}" data-orderno="{{orderInfo.orderNo}}">获取短信验证码</button>{{/if}}
                 <div class="bootstrap-table">
                     <div class="fixed-table-container" style="padding-bottom: 0px;">
@@ -1634,14 +1634,14 @@
                     <button type="button" class="btn btn-sm btn-white" id="vietjetairAgentSearch" data-data="{{json}}">越捷代理人</button>{{/if}}{{if orderInfo.isMM}}
                     <button type="button" class="btn btn-sm btn-white" id="peachWebsiteSearch" data-data="{{json}}">乐淘官网</button>{{/if}}
                 </div>
-                <!-- <div>
-                    <span>外采: </span>
+                <div>
+                    <!-- <span>外采: </span> -->
                     <div class="btn-group">
                       <button type="button" class="btn btn-outline btn-link" id="qunarExternalProcurement" data-data="{{json}}">去哪儿</button>
-                      <button type="button" class="btn btn-outline btn-link" id="fliggyExternalProcurement" data-data="{{json}}">飞猪</button>
-                      <button type="button" class="btn btn-outline btn-link" id="lyExternalProcurement" data-data="{{json}}">同程</button>
+                      <!-- <button type="button" class="btn btn-outline btn-link" id="fliggyExternalProcurement" data-data="{{json}}">飞猪</button> -->
+                      <!-- <button type="button" class="btn btn-outline btn-link" id="lyExternalProcurement" data-data="{{json}}">同程</button> -->
                     </div>
-                </div> -->
+                </div>
             </div>
         </div>
     </div>
@@ -2662,6 +2662,6 @@
 </script>
 <script src="js/require.js"></script>
 <script src="js/require-config.js"></script>
-<script src="js/root/orderSearch.js?v=0.6.5"></script>
+<script src="js/root/orderSearch.js?v=0.7.2"></script>
 
 </html>