Эх сурвалжийг харах

Merge branch 'feature/v4.7.10' of http://192.168.3.207:8080/qmx/jy into feature/v4.7.10

tsz 3 жил өмнө
parent
commit
693e8e6a92

+ 113 - 0
src/jfw/modules/app/src/web/templates/commonPay/dataFile/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>

+ 1 - 1
src/jfw/modules/common/src/qfw/util/jy/subscribepush.go

@@ -51,7 +51,7 @@ const (
 	pageSizes           = 10
 	AllSubPushCacheSize = 250
 	query               = `{"query":{"terms":{"_id":["%s"]}},"_source":["_id","area", "publishtime", "s_subscopeclass", "subtype", "title", "toptype", "type", "buyerclass","bidamount","budget","projectname","buyer","bidopentime","s_winner","spidercode","site"],"from":0,"size":%d}`
-	mongodb_fields      = `{"_id":1,"area":1,"publishtime":1,"s_subscopeclass":1,"subtype":1,"title":1,"toptype":1,"type":1, "buyerclass":1,"budget":1,"bidamount":1,"s_winner":1,"bidopentime":1,"buyer":1,"projectname":1,"site":1}`
+	mongodb_fields      = `{"_id":1,"area":1,"publishtime":1,"s_subscopeclass":1,"subtype":1,"title":1,"toptype":1,"type":1, "buyerclass":1,"budget":1,"bidamount":1,"s_winner":1,"bidopentime":1,"buyer":1,"projectname":1,"spidercode":1,"site":1}`
 	querys              = `{"query":{"terms":{"_id":["%s"]}},"_source":["_id","title","detail","area","city","publishtime","projectname","buyer","buyerclass","s_winner","bidamount","subtype","toptype","href","projectcode","buyerperson","buyertel","budget","bidopentime","agency","projectscope","winnerperson","winnertel","spidercode","site"]}`
 
 	MemberFlag   = "m"

BIN
src/web/staticres/common-module/order-list/image/dataFile.png


+ 16 - 1
src/web/staticres/common-module/order-list/js/order-detail.js

@@ -231,8 +231,9 @@ var vm = new Vue({
         this.orderStateMap[1].bottomButtonShow.buyAgain = true
       }
 
+      var filterInfo = JSON.parse(order.filter)
       // 开发票按钮展示逻辑
-      if (order.pay_money <= 0) {
+      if ((order.pay_money <= 0)||(filterInfo.canInvoice!=undefined &&!filterInfo.canInvoice)) {
         this.orderStateMap[1].bottomButtonShow.invoke = false
       }
 
@@ -478,6 +479,10 @@ var vm = new Vue({
           infoList = this.getBuyerPortraitPackInfo(order)
           break
         }
+        case '数据文件': {
+          infoList = this.getDataFileInfo(order)
+          break
+        }
         default: {
           break
         }
@@ -627,6 +632,16 @@ var vm = new Vue({
         }
       ]
     },
+    //数据文件
+    getDataFileInfo: function (order) {
+      var filterInfo = JSON.parse(order.filter)
+      var numInfo = {
+        label: '文件名称',
+        split: ':',
+        text: filterInfo.remark
+      }
+      return [numInfo]
+    },
     goToLink: function (href) {
       location.href = href
     }

+ 17 - 2
src/web/staticres/common-module/order-list/js/order-list-config.js

@@ -8,7 +8,8 @@ var assetsConf = {
     '数据流量包': 'dataPackLink',
     '省份订阅包': 'areaPackLink',
     '附件下载包': 'filePackLink',
-    '采购单位画像包':'buyerPortraitPackLink'
+    '采购单位画像包':'buyerPortraitPackLink',
+    '数据文件':'dataFileLink'
   },
   // 产品集合
   productionTypeList: [
@@ -27,7 +28,8 @@ var assetsConf = {
     '数据流量包',
     '附件下载包',
     '省份订阅包',
-    '采购单位画像包'
+    '采购单位画像包',
+    '数据文件'
   ],
   // 支持再次购买的产品集合
   canBuyAgainProductions: [
@@ -417,6 +419,19 @@ var assetsConf = {
         app: '/common-module/order-list/image/buyerPortraitPack.png'
       }
     }
+  },
+  // 微信小店-数据文件
+  dataFileLink: {
+    orderDetail: {
+      wx: '/weixin/common/dataFile/orderDetail',
+      app: '/jyapp/common/dataFile/orderDetail'
+    },
+    imgMap: {
+      headerImg: {
+        wx: '/common-module/order-list/image/dataFile.png',
+        app: '/common-module/order-list/image/dataFile.png'
+      }
+    }
   }
 }
 

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

@@ -746,6 +746,16 @@ var vm = new Vue({
           }
           break
         }
+        case '数据文件': {
+          try {
+            info.contentImgUrl = assetsConf.dataFileLink.imgMap.headerImg[platform]
+            info.contentList = this.getDataFile(order)
+          } catch (error) {
+            info.contentList = []
+            console.log(error)
+          }
+          break
+        }
         default: {
           console.log('没有找到商品类型: ' + productType)
           break
@@ -1400,6 +1410,13 @@ var vm = new Vue({
           }
           break
         }
+        case '数据文件': {
+          var href = assetsConf.dataFileLink.orderDetail[platform]
+          if (href) {
+            goToFn(`${href}?order_code=${orderCode}`)
+          }
+          break
+        }
         default: {
           break
         }
@@ -2244,6 +2261,17 @@ var vm = new Vue({
         result.push(date)
       }
       return result
+    },
+     // 数据文件
+    getDataFile: function (order) {
+      var filterInfo = JSON.parse(order.filter)
+    	  var prodType = {
+        label: '',
+        split: '',
+        text: filterInfo.remark
+      }
+      var result = [prodType]
+      return result
     },
     calcGiveInfoHTML: function (filterInfo) {
       var giveHTML = ''

+ 1 - 1
src/web/staticres/vipsubscribe/js/vip_index_new.js

@@ -96,7 +96,7 @@ var subNode = new Vue({
                 type: 'POST',
                 url: '/publicapply/subscribe/vipSwitch',
                 success: function(res) {
-                    if (res.data.vt !== 'v' ) {
+                    if (res.data.vt !== 'v' && res.data.vt !=='m') {
                         _this.vSwitch = 'f'
                         _this.linkObj.pushsetting = _this.linkObj.freepush
                         _this.linkObj.resultview = '/front/vipsubscribe/toVIPViewPage?vSwitch=f',

+ 321 - 0
src/web/templates/frontRouter/pc/dataFile/sess/orderDetail.html

@@ -0,0 +1,321 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>订单详情</title>
+    <meta content="增值服务" theme="light" name="enable-header"/>
+    <script>
+        var myPageNavIsNormal = true;
+    </script>
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/course/css/bootstrap.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/course/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/course/css/reset_pc.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/course/css/order_detail.css?v={{Msg "seo" "version"}}">
+    {{include "/common/pnc.html"}}
+    <link href="{{Msg "seo" "cdn"}}/css/pc.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+    <link href="{{Msg "seo" "cdn"}}/css/dev2/reset_pc.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+    <link rel="stylesheet" type="text/css"
+          href="{{Msg "seo" "cdn"}}/pccss/public-nav-1200.css?v={{Msg "seo" "version"}}"/>
+    <script type="text/javascript" src="{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}3"></script>
+    <!--[if lt IE 9]>
+    <script src="https://cdn-common.jianyu360.com/cdn/lib/html5shiv/3.7.3/html5shiv.min.js"></script>
+    <script src="https://cdn-common.jianyu360.com/cdn/lib/respond-js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+    <style>
+        .filter_data p {
+            font-size: 14px;
+            margin-bottom: 10px;
+        }
+
+        #order_detail {
+            line-height: 1;
+            padding-top: 76px;
+            padding-bottom: 0px !important;
+            background-color: #fff;
+        }
+
+        .qxBg {
+            border-top: 2px solid #999999;
+            background-color: #ececec;
+        }
+
+        .qxBgFont {
+            color: #686868;
+        }
+    </style>
+</head>
+<body>
+{{include "/common/pchead.html"}}
+<!-- header -->
+<!-- main  START -->
+<div class="order_detail" id="order_detail">
+    <div class="w order_crumb">
+        <a href="#" onclick="window.location.href='/front/swordfish/toMyOrder'">我的订单</a><em> > </em>
+        <a href="#" class="active">订单详情</a>
+    </div>
+    <div class="w order_main">
+        <!-- greenBg 为绿色背景及边框 redBg为红色背景及边框 -->
+        <div id="bg" class="o_m_thead greenBg">
+            <p class="order_id"></p>
+            <p class="clearfix order_state">
+                <!--greenFont为绿色字体 redFont为红色字体 -->
+                <span class="greenFont hide" id="status_success">已完成</span>
+                <span class="redFont hide" id="status_wait_pay">待付款</span>
+                <span class="qxBgFont hide" id="status_cancelled">已取消</span>
+
+                <a class="go_pay payOrder" style="display: none;">去支付</a>
+
+                <!-- 当状态为已完成时显示开发票 或 查看发票 -->
+                <a class="openinvoice go_pay" style="display: none;">开发票</a>
+                <a class="lookinvoice go_pay" style="display: none;">查看发票</a>
+            </p>
+        </div>
+
+        <div class="o_m_tbody">
+            <div class="b_list">
+                <div class="list_thead">
+                    <span class="fl">购买信息</span>
+                </div>
+                <div class="clearfix list_tbody">
+                    <div class="filter_data">
+                        <p><span class="dq_text">产品类型</span>:<span class="dq">数据文件</span></p>
+                        <p><span class="dq_text">文件名称</span>:<span class="wjmc"></span></p>
+                    </div>
+                </div>
+            </div>
+            <div class="b_list">
+                <div class="list_thead">
+                    <span class="fl">订单信息</span>
+                </div>
+                <div class="clearfix list_tbody">
+                    <div class="filter_data">
+                        <p>订单编号:<span class="order_code"></span></p>
+                        <p>下单时间:<span class="order_time"></span></p>
+                        <p class="pay_time_p" style="display: none;">支付时间:<span class="pay_time"></span></p>
+                        <p class="pay_way_p" style="display:none">支付方式:<span class="pay_way"></span></p>
+                        <p class="pay_num_p" style="display:none">支付单号:<span class="pay_num"></span></p>
+                        <p class="price_p" data-need-before-money>商品总价:<span class="price"></span> &nbsp; <span class="valuationList"
+                                                                                           style="color:#2CB7CA;display:none;cursor:pointer">计费清单</span>
+                        </p>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+    </div>
+    <div style="margin-top: 20px;"></div>
+    <!-- main END -->
+    {{include "/common/pcbottom.html"}}
+    {{include "/common/baiducc.html"}}
+    <script src="{{Msg "seo" "cdn"}}/course/js/jquery-2.1.4.min.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/course/js/bootstrap.min.js?v={{Msg "seo" "version"}}"></script>
+    <!-- footer -->
+    <script>
+        $(function () {
+            $("#public-nav").css("background", "#fff");
+            $(".public-nav").css("border-bottom", "1px solid #e0e0e0");
+            $("section[id='drder']").css("padding-top", "80px");
+            haslogin({{.T.logid}});
+            var orderCode = getParam("order_code");
+            $(".order_id").text("订单编号:" + orderCode);
+            $.post("/subscribepay/orderListDetails/getOrderPayAllMsg", {"orderCode": orderCode}, function (r) {
+                if (r == '{"error":"需要登录!"}') {
+                    location.href = '/';
+                }
+                if (r.success) {
+                    //订单信息
+                    $(".order_code").text(orderCode);
+                    var filterObj = JSON.parse(r.data.order.filter);
+                    if (r.data.order.create_time) {
+                        $(".order_time").text(r.data.order.create_time.replace(/-/g, "."));
+                    }
+
+                    /*---S-优惠券---*/
+                    function insetMoneyItem () {
+                        // 商品总价=订单金额(order_money)+优惠金额(order.discount_price)
+                        var order_money = (r.data.order.order_money / 100)
+                        var getPayMoney = (r.data.order.pay_money / 100)
+                        var getCouponMoney = (r.data.order.discount_price / 100) || 0
+                        var prodMoney = (order_money * 100) + (getCouponMoney * 100)
+                        var insetDom = $('*[data-need-before-money]')
+
+                        $(".price").text("¥ " + formatMoney(prodMoney / 100) + "元");
+                        // 已取消和已退款订单不显示优惠信息
+                        if (r.data.order.order_status != -2 && r.data.order.order_status != -3) {
+                            if (getPayMoney) {
+                                insetDom.after('<p>实付金额:¥' + formatMoney(getPayMoney) +'元</p>')
+                            }
+                            if (getCouponMoney) {
+                                insetDom.after('<p>优惠金额:-¥' + formatMoney(getCouponMoney) +'元</p>')
+                            }
+                        }
+
+                    }
+                    insetMoneyItem()
+                    /*---E-优惠券---*/
+
+                    //优惠码
+                    if (r.data.order.isUsedActiveCode) {
+                        $(".discount-container").removeClass("hide");
+                        $(".highlight-text").text("赠送30天");
+                    }
+                    var give_cycle=filterObj.give_cycle;
+                    if (give_cycle!=undefined){
+                      give_cycle = give_cycle < 12 ? (give_cycle + '个月') : ('1年');
+                    }
+                    if (give_cycle) {
+                        $(".discount-container").removeClass("hide");
+                        $(".highlight-text").text("赠送"+give_cycle);
+                    }
+                    if (r.data.order.order_status == 1) {
+                        $("#status_success").removeClass("hide");
+                        if (r.data.order.pay_time){
+                            $(".pay_time_p").css("display", "");
+                            $(".pay_time").text(r.data.order.pay_time.replace("-", ".").replace("-", "."));
+                        }
+                        //支付方式
+                        if (r.data.order.pay_way.indexOf("wx") > -1) {
+                            $(".pay_way_p").css("display", "");
+                            $(".pay_way").text("微信支付");
+                        } else if (r.data.order.pay_way.indexOf("ali") > -1) {
+                            $(".pay_way").text("支付宝支付");
+                            $(".pay_way_p").css("display", "");
+                        }
+                        if (r.data.order.original_price == 0) {
+                            $(".pay_time_p").css("display", "none");
+                            $(".vip_type").text("(试用)");
+                        } else if (r.data.order.pay_money > 0){
+                            $(".pay_num_p").css("display", "");
+                            if (r.data.transaction_id) $(".pay_num").text(r.data.transaction_id);
+                            //发票
+                            if (r.data.order.applybill_status === 0 && r.data.order.billingMode === 1 && r.data.order.is_backstage_order === 0) {
+                                $(".openinvoice").css("display", "");
+                            } else if (r.data.applybill_status === 1 || r.data.applybill_status === 2) {
+                                $(".lookinvoice").css("display", "").on("click", function () {
+                                    checkinvoice(r.data.applybill_status, orderCode)//查看发票
+                                })
+                            }
+                        }
+                    }
+                    if (r.data.order.order_status == -2 || r.data.order.order_status == -3) {
+                        $("#status_cancelled").removeClass("hide");
+                        $("#bg").addClass("qxBg").removeClass("greenBg");
+                    }
+                    if (r.data.order.order_status == 0) {
+                        $("#status_wait_pay").removeClass("hide");
+                        $("#bg").addClass("redBg").removeClass("greenBg");
+                        $(".payOrder").show();
+                    }
+                    // 展示字段
+                    $('.filter_data .wjmc').text(filterObj.remark)
+                    $(".payOrder").on("click", function () {
+                        var tempTotal = Number(filterObj.pNum) + Number(filterObj.give_cycle > 0 ? filterObj.give_cycle : 0)
+                        location.href = "/front/datapackage/orderPay/" + orderCode + "?total=" + tempTotal;
+                    })
+
+                    //计价清单
+                    var filterObj = JSON.parse(r.data.order.filter);
+                    var upgradeSubtotail = filterObj.upgradeSubtotail;
+                    if (upgradeSubtotail) {	//有则显示
+                        $(".valuationList").css("display", "");
+                        $(".valuationList").on("click", function () {
+                            window.location.href = "/front/order/valuationList/" + orderCode;
+                        })
+                    }
+                }
+            })
+
+
+            $(".openinvoice").on("click", function () {
+              // return false // 待可开发票时删除
+                $.post("/subscribepay/orderListDetails/isOver", {"order_code": orderCode}, function (r) {
+                    if (r.status != 1) {
+                        window.open("/front/order/invoicetimeOut", '_self');
+                    } else {
+                        window.open("/front/order/invoice/" + orderCode, '_self');
+                    }
+                })
+            })
+        })
+
+        // 格式化金钱的函数
+        // s: 金额(number) 必传
+        // n: 保留小数的位数(int:0-100)
+        function formatMoney(s, n) {
+            if (n === undefined) {
+                n = -1
+            } else {
+                n = n > 0 && n <= 20 ? n : 2;
+            }
+            var intS = parseInt(s)
+            var point = '.'
+            var left;
+            var right;
+            s = parseFloat((s + '').replace(/[^\d\.-]/g, ''))
+            // 没传n,默认(如果为整数,则不保留小数。如果为浮点数,则保留两位小数)
+            if (n === -1) {
+                if (s === intS) {
+                    n = 0
+                    right = ''
+                    point = ''
+                } else {
+                    n = 2
+                    s = s.toFixed(n);
+                    right = s.split('.')[1];
+                }
+                s = s + ''
+                left = s.split('.')[0].split("").reverse();
+            } else {
+                s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + '';
+                left = s.split('.')[0].split('').reverse();
+                right = s.split('.')[1];
+            }
+
+            t = "";
+            for (i = 0; i < left.length; i++) {
+                t += left[i] + ((i + 1) % 3 == 0 && (i + 1) != left.length ? ',' : '');
+            }
+
+            var money = t.split('').reverse().join('') + point + right;
+            return money;
+        }
+
+
+        /******* 获取url参数(正则)********/
+        function getParam(name) {
+            var search = document.location.search;
+            // alert(search);
+            var pattern = new RegExp("[?&]" + name + "\=([^&]+)", "g");
+            var matcher = pattern.exec(search);
+            var items = null;
+            if (null != matcher) {
+                try {
+                    items = decodeURIComponent(decodeURIComponent(matcher[1]));
+                } catch (e) {
+                    try {
+                        items = decodeURIComponent(matcher[1]);
+                    } catch (e) {
+                        items = matcher[1];
+                    }
+                }
+            }
+            return items;
+        };
+        //查看发票
+        function checkinvoice(flag, orderCode) {
+            if (flag === 2) {
+                var showHtml = '<div style="width: 100%;height: 100%;z-index: 999; position: absolute;top: 0;background: rgba(0, 0, 0, 0.65);">   <div style="position: fixed;z-index: 9999;width: 540px;height: 262px;left: 50%;top: 30%;margin-left: -270px;background-color: #fff;border-radius: 6px;padding: 32px;display: flex;flex-direction: column;justify-items: center;align-items: center;">       <div class="invoice_title" style="color: #1D1D1D;font-size: 18px;line-height: 28px;">提示</div>       <div class="invoice_body"            style="height: 78px;margin: 20px 0px;font-size: 14px;line-height: 24px;text-align: center;">           您已开具发票<br>           如有问题请联系客服<br>           400-108-6670       </div>       <div class="invoice_control"            style="width: 132px;height: 36px;text-align: center;background: #2CB7CA;border-radius: 6px;font-size: 16px;line-height: 36px;color: #FFFFFF;cursor: pointer;"            onclick="document.querySelector(\'#invoice_tip\').remove()"       >           我知道了       </div>   </div>\n</div>'
+                var div_invoice_tip = document.createElement('div');
+                div_invoice_tip.innerHTML = showHtml;
+                div_invoice_tip.id = "invoice_tip"
+                document.body.appendChild(div_invoice_tip)
+                return
+            }
+            window.open("/front/order/check_invoice/" + orderCode, '_self');
+        }
+    </script>
+</body>
+</html>

+ 2 - 2
src/web/templates/pc/dataPack/packDetail.html

@@ -193,8 +193,8 @@
                         } else if (r.data.order.pay_money > 0){
                             $(".pay_num_p").css("display", "");
                             if (r.data.transaction_id) $(".pay_num").text(r.data.transaction_id);
-                            //发票
-                            if (r.data.order.applybill_status === 0) {
+                            //发票 "item.applybill_status === 0 &&  && item.is_backstage_order === 0"
+                            if (r.data.order.applybill_status === 0 && r.data.order.billingMode === 1 && r.data.order.is_backstage_order === 0) {
                                 $(".openinvoice").css("display", "");
                             } else if (r.data.applybill_status === 1 || r.data.applybill_status === 2) {
                                 $(".lookinvoice").css("display", "").on("click", function () {

+ 18 - 5
src/web/templates/pc/myOrder.html

@@ -351,6 +351,9 @@
                                     <p style="line-height: 24px;">数量:@#item.filter.score | FormatNum#@枚</p>
                                     <p style="line-height: 24px;">有效日期:永久</p>
                                 </div>
+                                 <div class="fl shop_main" v-if="item.product_type === '数据文件'">
+                                    <p style="line-height: 24px;">@#item.filter.remark#@</p>
+                                </div>
                             </div>
                             <div class="fl m_number" :class="{'blueColor': item.order_status === 0, 'grayColor': item.order_status !== 0}">
 <!--                                <div v-if="item.filter&&item.filter.give_cycle&&item.filter.original_price" style='display: flex; flex-direction: column;align-items: center;justify-content: center;line-height:1;height:100%;color:#999;'>-->
@@ -395,7 +398,8 @@
                                                             || item.product_type === '大会员-子账号'
                                                             || item.product_type === '招标文件解读'
                                                             || item.product_type === '剑鱼币'
-                                                            || item.product_type === '大会员-招标文件解读'">
+                                                            || item.product_type === '大会员-招标文件解读'
+                                                            || item.product_type === '数据文件'">
                                     <div v-if="item.order_status === 1">
                                         <p class="finish_status" v-if="item.filter.isAll == 2">待付款</p>
                                         <p class="finish_status" v-else-if="item.filter.isAll == 3">待付完</p>
@@ -441,9 +445,11 @@
                                         <p><a class="go_pay" data-jy-track="click-hover" @click="goPay(item)">去支付</a></p>
                                         <p><a data-jy-track="click-hover" @click="goCancel(item)">取消订单</a></p>
                                     </div>
-                                    <div v-if="item.order_status === 1 && (item.filter.source || '') === ''">
-                                        <p><a v-if="item.applybill_status === 0" data-jy-track="click-hover" @click="goInvoice(item)">开发票</a></p>
-                                        <p><a v-if="item.applybill_status === 1 || item.applybill_status === 2" data-jy-track="click-hover" @click="goInvoice(item)">发票信息</a></p>
+                                    <div v-if="item.order_status === 1 && (item.filter.source || '') === '' ">
+<!--                                        <div v-if="(item.filter.canInvoice !=undefined  && !item.filter.canInvoice)">-->
+                                          <p><a v-if="item.applybill_status === 0" data-jy-track="click-hover" @click="goInvoice(item)">开发票</a></p>
+                                          <p><a v-if="item.applybill_status === 1 || item.applybill_status === 2" data-jy-track="click-hover" @click="goInvoice(item)">发票信息</a></p>
+<!--                                        </div>-->
                                     </div>
                                 </div>
                                 <div class="handleBox"  v-else>
@@ -605,7 +611,7 @@
       delimiters: ['@#', '#@'],
       data: function () {
         return {
-          typeEnum: ["VIP订阅", "中标必听课", "企业商机管理", "剑鱼币", "历史数据", "大会员", "大会员-AI中标预测包", "大会员-子账号", "大会员-招标文件解读", "大会员-补充包", "招标文件解读", "数据报告", '数据流量包', '省份订阅包', '附件下载包', '采购单位画像包'],
+          typeEnum: ["VIP订阅", "中标必听课", "企业商机管理", "剑鱼币", "历史数据", "大会员", "大会员-AI中标预测包", "大会员-子账号", "大会员-招标文件解读", "大会员-补充包", "招标文件解读", "数据报告", '数据流量包', '省份订阅包', '附件下载包', '采购单位画像包','数据文件'],
           imgMap: {
             'VIP订阅': {
               icon: '/electronic_invoice/image/vipBook.png'
@@ -695,6 +701,9 @@
             },
             '省份订阅包': {
               icon: '/common-module/order-list/image/sfdybao.png'
+            },
+            '数据文件':{
+              icon: '/common-module/order-list/image/dataFile.png'
             }
           },
           bigIndexMap: {
@@ -1212,6 +1221,10 @@
               href = '/areaPack/pc/page/order?order_code=' + item.order_code
               break
             }
+            case '数据文件': {
+              href = '/swordfish/frontPage/dataFile/sess/orderDetail?order_code=' + item.order_code
+              break
+            }
           }
           window.open(href)
         },

+ 117 - 0
src/web/templates/weixin/commonPay/dataFile/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>