Переглянути джерело

Merge branch 'dev4.6.2.17' of http://192.168.3.207:8080/qmx/jy into dev4.6.2.17

zhangxinlei1996 3 роки тому
батько
коміт
984a92915a

+ 113 - 0
src/jfw/modules/app/src/web/templates/commonPay/filePack/orderDetail.html

@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+<head>
+    <!--引入公共资源头部-->
+    {{include "/big-member/meta.html"}}
+    <title>订单详情</title>
+    <!--S-当前页面的css资源-->
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/icon/local.css />
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/css/j-icons.css?v={{Msg "seo" "version"}}'>
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/order-list/css/order-detail.css?v={{Msg "seo" "version"}}' />
+</head>
+
+<body>
+    <div class="j-container transparent-header">
+        <div class="j-header jy-app-header border-line-b transparent-header">
+            <span class="header-left">
+                <span class="van-icon van-icon-arrow-left"></span>
+            </span>
+            <span class="header-title title-left">订单详情</span>
+            <span class="header-right"></span>
+        </div>
+        <div class="j-main order-detail" id="app" v-cloak>
+            <div class="j-container">
+                <div class="j-main no-scrollbar">
+                    <div class="wrapper">
+                        <div class="header-pic arc-container" :class="orderStateMap[orderInfo.state].bgcClassName">
+                            <div class="order-state">${ orderStateMap[orderInfo.state].text }</div>
+                            <div class="surplus-time" v-if="orderStateMap[orderInfo.state].surplusTimeShow && orderInfo.surplusTime > 0">
+                                <span>剩余支付时间:</span>
+                                <van-count-down @finish="onCountdownFinish" :time="orderInfo.surplusTime"></van-count-down>
+                            </div>
+                        </div>
+                        <div class="card-list">
+                            <div class="j-card report-p">
+                                <span class="rp-left" :class="'badge-' + (orderInfoFilter.badge || '')">
+                                    <img class="card-l-pic" :src="orderInfo.headerImg">
+                                </span>
+                                <span class="rp-right">
+                                    <span class="product-type">${ orderInfo.productType }</span>
+                                    <span class="pay-money">&yen; ${ orderInfo.payMoney }</span>
+                                </span>
+                            </div>
+                            <div class="j-card product-info">
+                                <div class="j-card-title">购买信息</div>
+                                <div class="j-card-items">
+                                    <div
+                                        class="j-card-item"
+                                        :class="item.className"
+                                        v-for="(item, index) in orderInfo.productInfoList"
+                                        :key="index"
+                                        v-show="item.text"
+                                    >
+                                        <span class="card-item-l">${ item.label + item.split }</span>
+                                        <span class="card-item-r" v-html="item.text"></span>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="j-card report-info">
+                                <div class="j-card-title">订单信息</div>
+                                <div class="j-card-items">
+                                    <div
+                                        class="j-card-item"
+                                        :class="item.className"
+                                        v-for="(item, index) in orderInfo.orderInfoList"
+                                        :key="index"
+                                        v-show="item.text"
+                                    >
+                                        <span class="card-item-l">${ item.label + item.split }</span>
+                                        <span class="card-item-r" v-html="item.text"></span>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="j-button-group j-footer" v-show="buttonGroupShow">
+                    <button
+                        class="j-button-confirm pay"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.pay"
+                        @click="onConfirmPay">立即支付</button>
+                    <button
+                        class="j-button-cancel invoke"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.invoke"
+                        @click="lookInvoke">${ invokeButtonText }</button>
+                    <button
+                        class="j-button-confirm buy-again"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.buyAgain"
+                        @click="buyAgain">再次购买</button>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--S-当前页面的资源-->
+    <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
+    <script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
+    <script src=//cdn-common.jianyu360.com/cdn/lib/zepto/1.2.0/zepto.min.js></script>
+    {{include "/big-member/commonjs.html"}}
+    <script>
+        var pageInfo = {
+            platform: 'app',
+            version: {{Msg "seo" "version"}},
+        }
+    </script>
+    <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/order-list/js/order-list-config.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/order-list/js/order-detail.js?v={{Msg "seo" "version"}}'></script>
+    <!--E-当前页面的资源-->
+    {{include "/common/baiducc.html"}}
+</body>
+
+</html>

+ 48 - 69
src/web/staticres/common-module/order-list/js/order-detail.js

@@ -264,12 +264,10 @@ var vm = new Vue({
       var productType = order.product_type
       var platform = this.platform
       var headerImgUrl = ''
-      if (productType === '省份订阅包') {
-        headerImgUrl = assetsConf.areaPackLink.imgMap.headerImg[platform]
-      }else if (productType === '数据流量包') {
-        headerImgUrl = assetsConf.dataPackLink.imgMap.headerImg[platform]
+      var productKey = assetsConf.productionTypeMap[productType]
+      if (productKey) {
+        headerImgUrl =  assetsConf[productKey].imgMap.headerImg[platform]
       }
-
       return headerImgUrl
     },
     getSurplusTimeTime: function (order) {
@@ -422,80 +420,37 @@ var vm = new Vue({
       })
     },
     onConfirmPay: function () {
-      var order = this.reqOrder
-      var productType = order.product_type
-      var orderCode = order.order_code
-      var platform = this.platform
-      switch (productType) {
-        case '数据流量包': {
-          var href = assetsConf.dataPackLink.pay[platform]
-          if (href) {
-            this.goToLink(`${href}?orderCode=${orderCode}`)
-          }
-          break
-        }
-        case '省份订阅包': {
-          var href = assetsConf.areaPackLink.pay[platform]
-          if (href) {
-            this.goToLink(`${href}?orderCode=${orderCode}`)
-          }
-          break
-        }
-        default: {
-          break
-        }
+      var link = this.getPublicLinkOfKey(this.reqOrder.product_type, 'pay')
+      if (link) {
+        this.goToLink(`${link}?orderCode=${this.reqOrder.order_code}`)
       }
     },
-    renew: function () {
+    getPublicLinkOfKey (productKey, key) {
       var order = this.reqOrder
       var orderCode = order.order_code
       var productType = order.product_type
       var platform = this.platform
-      switch (productType) {
-        case '数据流量包': {
-          var href = assetsConf.dataPackLink.renew[platform]
-          if (href) {
-            this.goToLink(`${href}?orderCode=${orderCode}`)
-          }
-          break
-        }
-        case '省份订阅包': {
-            var href = assetsConf.areaPackLink.renew[platform]
-            if (href) {
-              this.goToLink(`${href}&orderCode=${orderCode}`)
-            }
-            break
-        }
-        default: {
-          break
+      var productKey = assetsConf.productionTypeMap[productType]
+      var tempValue = ''
+      if (productKey) {
+        try {
+          tempValue = assetsConf[productKey][key][platform]
+        } catch (e) {
+          console.warn(e)
         }
       }
+      return tempValue
+    },
+    renew: function () {
+      var link = this.getPublicLinkOfKey(this.reqOrder.product_type, 'renew')
+      if (link) {
+        this.goToLink(`${link}?orderCode=${this.reqOrder.order_code}`)
+      }
     },
     buyAgain: function () {
-      var _this = this
-      var order = this.reqOrder
-      var productType = order.product_type
-      var orderCode = order.order_code
-      var platform = this.platform
-
-      switch (productType) {
-        case '数据流量包': {
-          var href = assetsConf.dataPackLink.buyAgain[platform]
-          if (href) {
-            this.goToLink(`${href}?orderCode=${orderCode}`)
-          }
-          break
-        }
-        case '省份订阅包': {
-          var href = assetsConf.areaPackLink.buyAgain[platform]
-          if (href) {
-            this.goToLink(`${href}&orderCode=${orderCode}`)
-          }
-          break
-        }
-        default: {
-          break
-        }
+      var link = this.getPublicLinkOfKey(this.reqOrder.product_type, 'buyAgain')
+      if (link) {
+        this.goToLink(`${link}?orderCode=${this.reqOrder.order_code}`)
       }
     },
     getProductInfoList: function (info) {
@@ -513,6 +468,10 @@ var vm = new Vue({
           infoList = this.getAreaPackInfo(order)
           break
         }
+        case '附件下载包': {
+          infoList = this.getFilePackInfo(order)
+          break
+        }
         default: {
           break
         }
@@ -520,6 +479,26 @@ var vm = new Vue({
 
       return infoList
     },
+    // 附件下载包订单卡片信息整理
+    getFilePackInfo: function (order) {
+      var filterInfo = JSON.parse(order.filter)
+      var payNum = filterInfo.num + '个'
+      if(filterInfo.give_cycle){
+        payNum += '<span class="highlight-text">&nbsp赠' +	filterInfo.give_cycle + '个</span>'
+      }
+      var numInfo = {
+        label: '附件个数',
+        split: ':',
+        text: payNum
+      }
+      var date = {
+        label: '有效期至',
+        split: ':',
+        text: filterInfo.validTime.replace(/-/g, '/')
+      }
+
+      return [numInfo, date]
+    },
     // 省份订阅包订单卡片信息整理
     getAreaPackInfo: function (order) {
       var filterInfo = JSON.parse(order.filter)

+ 6 - 0
src/web/staticres/common-module/order-list/js/order-list-config.js

@@ -3,6 +3,12 @@
 var assetsConf = {
   version: pageInfo.version,
   platform: pageInfo.platform,
+  // 维护 KeyMap 用于公用订单详情页
+  productionTypeMap: {
+    '数据流量包': 'dataPackLink',
+    '省份订阅包': 'areaPackLink',
+    '附件下载包': 'filePackLink'
+  },
   // 产品集合
   productionTypeList: [
     '历史数据',

+ 15 - 23
src/web/staticres/common-module/order-list/js/order-list.js

@@ -1111,6 +1111,13 @@ var vm = new Vue({
           }
           break
         }
+        case '附件下载包': {
+          var href = assetsConf.filePackLink.pay[platform]
+          if (href) {
+            this.goToLink(`${href}?orderCode=${orderCode}`)
+          }
+          break
+        }
         case '省份订阅包': {
           var href = assetsConf.areaPackLink.pay[platform]
           if (href) {
@@ -2098,40 +2105,25 @@ var vm = new Vue({
       specs.text = specMap[filterInfo.pType]
       return [prodType, buyCount, date, specs]
     },
-    // 数据包订单卡片信息整理
+    // 附件下载包订单卡片信息整理
     getFilePackInfo: function (order) {
       var filterInfo = JSON.parse(order.filter)
-    	  var payNum = filterInfo.pNum + '条'
+    	  var payNum = filterInfo.num + '个'
 	  if(filterInfo.give_cycle){
-		payNum += '<span class="highlight-text">&nbsp赠' +	filterInfo.give_cycle + '</span>'
+		payNum += '<span class="highlight-text">&nbsp赠' +	filterInfo.give_cycle + '</span>'
 	  }
-      var prodType = {
-        label: '产品类型',
-        split: ':',
-        text: order.product_type
-      }
-      var buyCount = {
-        label: '充值条数',
+      var numInfo = {
+        label: '附件个数',
         split: ':',
         text: payNum
       }
       var date = {
-        label: '使用有效日期',
-        split: ':',
-        text: filterInfo.validYear + '年'
-      }
-      var specs = {
-        label: '数据规格',
+        label: '有效期至',
         split: ':',
-        text: ''
+        text: filterInfo.validTime.replace(/-/g, '/')
       }
 
-      var specMap = {
-        1: '标准字段包',
-        2: '高级字段包'
-      }
-      specs.text = specMap[filterInfo.pType]
-      return [prodType, buyCount, date, specs]
+      return [numInfo, date]
     },
     // 省份订阅包订单卡片信息整理
     getAreaPackInfo: function (order) {

+ 117 - 0
src/web/templates/weixin/commonPay/filePack/orderDetail.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+    <meta charset="utf-8">
+    <meta name="keywords" content="剑鱼标讯">
+    <meta name="description" content="剑鱼标讯">
+    <meta name="author" content="剑鱼标讯">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
+    <meta name="browsermode" content="application">
+    <meta name="x5-orientation" content="portrait">
+    <meta name="screen-orientation" content="portrait">
+    <meta name="x5-page-mode" content="app">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black">
+    <meta name="format-detection" content="telephone=no">
+    <title>订单详情</title>
+    <!--S-当前页面的css资源-->
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/icon/local.css />
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/big-member/css/j-icons.css?v={{Msg "seo" "version"}}'>
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/big-member/css/public.css?v={{Msg "seo" "version"}}'>
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/order-list/css/order-detail.css?v={{Msg "seo" "version"}}' />
+</head>
+<body>
+    <div class="j-container">
+        <div class="j-main order-detail" id="app" v-cloak>
+            <div class="j-container">
+                <div class="j-main no-scrollbar">
+                    <div class="wrapper">
+                        <div class="header-pic arc-container" :class="orderStateMap[orderInfo.state].bgcClassName">
+                            <div class="order-state">${ orderStateMap[orderInfo.state].text }</div>
+                            <div class="surplus-time" v-if="orderStateMap[orderInfo.state].surplusTimeShow && orderInfo.surplusTime > 0">
+                                <span>剩余支付时间:</span>
+                                <van-count-down @finish="onCountdownFinish" :time="orderInfo.surplusTime"></van-count-down>
+                            </div>
+                        </div>
+                        <div class="card-list">
+                            <div class="j-card report-p">
+                                <span class="rp-left" :class="'badge-' + (orderInfoFilter.badge || '')">
+                                    <img class="card-l-pic" :src="orderInfo.headerImg">
+                                </span>
+                                <span class="rp-right">
+                                    <span class="product-type">${ orderInfo.productType }</span>
+                                    <span class="pay-money">&yen; ${ orderInfo.payMoney }</span>
+                                </span>
+                            </div>
+                            <div class="j-card product-info">
+                                <div class="j-card-title">购买信息</div>
+                                <div class="j-card-items">
+                                    <div
+                                        class="j-card-item"
+                                        :class="item.className"
+                                        v-for="(item, index) in orderInfo.productInfoList"
+                                        :key="index"
+                                        v-show="item.text"
+                                    >
+                                        <span class="card-item-l">${ item.label + item.split }</span>
+                                        <span class="card-item-r" v-html="item.text"></span>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="j-card report-info">
+                                <div class="j-card-title">订单信息</div>
+                                <div class="j-card-items">
+                                    <div
+                                        class="j-card-item"
+                                        :class="item.className"
+                                        v-for="(item, index) in orderInfo.orderInfoList"
+                                        :key="index"
+                                        v-show="item.text"
+                                    >
+                                        <span class="card-item-l">${ item.label + item.split }</span>
+                                        <span class="card-item-r" v-html="item.text"></span>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="j-button-group j-footer" v-show="buttonGroupShow">
+                    <button
+                        class="j-button-confirm pay"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.pay"
+                        @click="onConfirmPay">立即支付</button>
+                    <button
+                        class="j-button-cancel invoke"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.invoke"
+                        @click="lookInvoke">${ invokeButtonText }</button>
+                    <button
+                        class="j-button-confirm buy-again"
+                        v-if="orderStateMap[orderInfo.state].bottomButtonShow.buyAgain"
+                        @click="buyAgain">再次购买</button>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--S-当前页面的资源-->
+    <script src="/big-member/js/rem.js"></script>
+    <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
+    <script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
+    <script src=//cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js></script>
+    <!--E-当前页面的资源-->
+    <script>
+        var pageInfo = {
+            platform: 'wx',
+            version: {{Msg "seo" "version"}},
+        }
+    </script>
+    <script src='{{Msg "seo" "cdn"}}/big-member/js/utils.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/common-module/order-list/js/order-list-config.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/common-module/order-list/js/order-detail.js?v={{Msg "seo" "version"}}'></script>
+    {{include "/common/baiducc.html"}}
+</body>
+
+</html>