Forráskód Böngészése

计价清单弹窗

zhangxinlei1996 5 éve
szülő
commit
30f053d3ba

+ 2 - 14
src/jfw/modules/subscribepay/src/service/orderListDetails.go

@@ -359,14 +359,11 @@ func (o *OrderListDetails) EmailOperation() {
 func (o *OrderListDetails) GetValuationList() error {
 	userId := o.GetSession("userId")
 	order_code := o.GetString("order_code")
-	pageNum, _ := o.GetInteger("pageNum")
 	upgradeSubtotail := []map[string]interface{}{}
 	queryMap := map[string]interface{}{
 		"order_code": order_code,
 		"user_Id":    userId,
 	}
-	result := []map[string]interface{}{}
-	haveNextPage := false
 	filter := util.Mysql.FindOne(tableName_order, queryMap, "filter", "")
 	if filter != nil {
 		res := qutil.ObjToMap((*filter)["filter"])
@@ -378,20 +375,11 @@ func (o *OrderListDetails) GetValuationList() error {
 					v["oldBuyset"] = (*res)["newBuyset"]
 				}
 			}
-			start := (pageNum - 1) * pagesize_max
-			end := pageNum * pagesize_max
-			if end > len(upgradeSubtotail) {
-				end = len(upgradeSubtotail)
-			}
-			if start < len(upgradeSubtotail) {
-				result = upgradeSubtotail[start:end]
-			}
 		}
-		haveNextPage = len(result) >= pagesize_max
 	}
+	log.Println("upgradeSubtotail:", upgradeSubtotail)
 	o.ServeJson(map[string]interface{}{
-		"list":         upgradeSubtotail,
-		"haveNextPage": haveNextPage,
+		"list": upgradeSubtotail,
 	})
 	return nil
 }

+ 326 - 0
src/web/staticres/vipsubscribe/css/vip_order_detail.css

@@ -487,3 +487,329 @@
   background: #2cb7ca;
   color: #fff;
 }
+
+.person > p >span , .unit > p >span{
+	margin-bottom: .12rem;
+}
+	
+.jymobile-setting-dialog {
+  font-size: .32rem;
+}
+
+.jymobile-setting-dialog .weui-dialog__hd {
+  padding: 0;
+  height: 0.82rem;
+  line-height: .82rem;
+  text-align: center;
+  background-color: #F5F4F9;
+}
+
+.jymobile-setting-dialog .weui-dialog__hd .weui-dialog__title {
+  font-size: .36rem;
+}
+
+.jymobile-setting-dialog .weui-dialog__bd {
+  padding: .37rem .1rem .38rem;
+  color: #1D1D1D;
+  font-size: .32rem;
+  text-align: center;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft {
+  display: flex;
+  padding: 0 0 .38rem 0;
+  text-align: center;
+  justify-content: space-around;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft:after {
+  border: none;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn {
+  display: flex;
+  flex: none;
+  align-items: center;
+  justify-content: center;
+  width: 1.72rem;
+  height: .72rem;
+  color: #fff;
+  font-size: .32rem;
+  vertical-align: center;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn_primary {
+  margin: 0;
+  margin-left: .3rem;
+  background-color: #2CB7CA;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn_default {
+  margin: 0;
+  margin-right: .3rem;
+  background-color: #BFBFC3;
+}
+.cancel_time{
+	font-size: 16px;
+	margin-left: 20px;
+}
+
+.nothing{
+	margin: 50% auto;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+	flex-direction:column;
+}
+.nothing img{
+    width: 120px;
+}
+.nothingDiv {
+	padding-top:0.42rem;
+	font-size:0.3rem;
+	color:#838384;
+}
+.valuationList {
+    display: inline-block;
+    padding: 0 .12rem;
+    border: 1px solid #2cb7ca;
+	border-radius: 0.06rem;
+	font-size: .28rem;
+	color:#2cb7ca;
+	margin-left: .15rem;
+}
+
+/* 弹窗 */
+.billing-list-container .weui-half-screen-dialog {
+  display: flex;
+  flex-direction: column;
+  background-color: #fff;
+  padding: 0;
+  border-radius: 0;
+}
+
+.billing-list-container .weui-half-screen-dialog .weui-half-screen-dialog__bd {
+  height: 100%;
+}
+
+.billing-list-container .weui-half-screen-dialog .weui-half-screen-dialog__hd {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0 0.4rem;
+  height: 0.88rem;
+  background-color: #f4f4f9;
+}
+
+.billing-list-container .weui-half-screen-dialog .weui-half-screen-dialog__hd .dialog_hd__title {
+  color: #1d1d1d;
+  font-size: 0.32rem;
+}
+
+.billing-list-container .weui-half-screen-dialog .weui-half-screen-dialog__hd .dialog_hd__close {
+  color: #707070;
+  font-size: 0.36rem;
+}
+
+.billing-list-container .weui-half-screen-dialog .weui-half-screen-dialog__ft {
+  padding: 0;
+}
+
+.billing-list-container .vip_prise_table {
+  padding: 0.5rem 0.3rem 0.4rem;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  font-size: 0.26rem;
+  text-align: center;
+}
+
+.billing-list-container .vip_prise_table .table_title {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  margin-bottom: 0.3rem;
+  width: 100%;
+}
+
+.billing-list-container .vip_prise_table .table_title .line {
+  width: 0.16rem;
+  height: 1px;
+  transform: scaleY(0.5);
+  background-color: #888;
+}
+
+.billing-list-container .vip_prise_table .table_title .title {
+  margin: 0 0.12rem;
+}
+
+.billing-list-container .vip_prise_table table {
+  margin-bottom: 0.48rem;
+  width: 100%;
+  border-collapse: collapse;
+}
+
+.billing-list-container .vip_prise_table table td {
+  height: 0.72rem;
+  width: 50%;
+  border: 1px solid #ccc;
+}
+
+.billing-list-container .vip_prise_table .tips {
+  text-align: left;
+}
+
+.billing-list-container .vip_prise_table .tips dt {
+  margin-bottom: 0.08rem;
+}
+
+.valuation_list {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+  flex: 1;
+}
+
+.valuation_list .va-list-container {
+  flex: 1;
+  overflow-y: scroll;
+}
+
+.valuation_list .va-total-container {
+  height: 0.94rem;
+  background-color: #fff;
+}
+
+.va-list-container .text-title {
+  color: #1d1d1d;
+  font-size: 0.32rem;
+}
+
+.va-list-container .list-item {
+  margin-bottom: 0.2rem;
+  font-size: 0.26rem;
+  color: #686868;
+  background-color: #fff;
+}
+
+.va-list-container .list-item .item-top {
+  padding: 0 0.3rem;
+}
+
+.va-list-container .list-item .item-header {
+  display: flex;
+  align-items: center;
+  height: 0.79rem;
+  border-bottom: 1px solid #e0e0e0;
+}
+
+.va-list-container .list-item .item-header .header-content {
+  flex: 1;
+}
+
+.va-list-container .list-item .item-body {
+  position: relative;
+  padding: 0.14rem 0;
+}
+
+.va-list-container .list-item .item-body.vp-oneline {
+  padding: 0.38rem 0;
+}
+
+.va-list-container .list-item .item-body.vp-oneline .b-item .body-area-sub,
+.va-list-container .list-item .item-body.vp-oneline .b-item .body-industry-sub {
+  margin-top: 0.1rem;
+}
+
+.va-list-container .list-item .item-body .b-item {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-around;
+  padding: 0.1rem 0;
+}
+
+.va-list-container .list-item .item-body .body-area-sub,
+.va-list-container .list-item .item-body .body-industry-sub {
+  margin-top: 0.08rem;
+}
+
+.va-list-container .list-item .item-body .vp-type {
+  position: absolute;
+  top: 50%;
+  right: 0;
+  width: 1.4rem;
+  height: 1.4rem;
+  background-color: transparent;
+  transform: translateY(-50%);
+  opacity: 0.5;
+  z-index: 1;
+}
+
+.va-list-container .list-item .item-body .vp-type .vp-type-text {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  width: 100%;
+  height: 100%;
+  color: #e6bd90;
+  font-size: 0.38rem;
+  border: 1px solid #e6bd90;
+  border-radius: 50%;
+  transform: rotate(-30deg);
+}
+
+.va-list-container .list-item .item-footer {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0 0.3rem;
+  height: 0.84rem;
+  border-top: 1px solid #e0e0e0;
+}
+
+.va-total-container {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0 0.3rem;
+  font-size: 0.26rem;
+  color: #686868;
+}
+
+.va-total-container .total-price {
+  font-weight: 700;
+  font-size: 0.32rem;
+  color: #fe737a;
+}
+
+.valuation_list {
+  max-height: 9.23rem;
+  background-color: #f5f4f9;
+}
+
+.va-total-container {
+  height: .94rem;
+  border-top: 1px solid #e0e0e0;
+}
+
+.jy-toast .weui-toast {
+  font-size: 0.3rem;
+  padding: 0.26rem 0.5rem;
+  width: auto;
+  height: auto;
+  max-width: 6rem;
+  min-height: 0;
+  top: 50%;
+  left: 50%;
+  margin-left: 0;
+  margin-top: -0.47rem;
+  transform: translateX(-50%) translateY(-50%);
+}
+
+.jy-toast .weui-icon_toast {
+  display: none;
+}
+
+.jy-toast .weui-toast__content {
+  margin: 0;
+}

+ 151 - 98
src/web/templates/weixin/vipsubscribe/vip_order_detail.html

@@ -14,102 +14,10 @@
     <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}" />
     <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/public.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
-    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/vip_order_detail.css?v={{Msg "seo" "version"}}1">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/vip_order_detail.css?v={{Msg "seo" "version"}}2">
 	{{include "/common/weixin.html"}}
 	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}"></script>   
 </head>
-<style>
-	.person > p >span , .unit > p >span{
-		margin-bottom: .12rem;
-	}
-	
-	.jymobile-setting-dialog {
-  font-size: .32rem;
-}
-
-.jymobile-setting-dialog .weui-dialog__hd {
-  padding: 0;
-  height: 0.82rem;
-  line-height: .82rem;
-  text-align: center;
-  background-color: #F5F4F9;
-}
-
-.jymobile-setting-dialog .weui-dialog__hd .weui-dialog__title {
-  font-size: .36rem;
-}
-
-.jymobile-setting-dialog .weui-dialog__bd {
-  padding: .37rem .1rem .38rem;
-  color: #1D1D1D;
-  font-size: .32rem;
-  text-align: center;
-}
-
-.jymobile-setting-dialog .weui-dialog__ft {
-  display: flex;
-  padding: 0 0 .38rem 0;
-  text-align: center;
-  justify-content: space-around;
-}
-
-.jymobile-setting-dialog .weui-dialog__ft:after {
-  border: none;
-}
-
-.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn {
-  display: flex;
-  flex: none;
-  align-items: center;
-  justify-content: center;
-  width: 1.72rem;
-  height: .72rem;
-  color: #fff;
-  font-size: .32rem;
-  vertical-align: center;
-}
-
-.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn_primary {
-  margin: 0;
-  margin-left: .3rem;
-  background-color: #2CB7CA;
-}
-
-.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn_default {
-  margin: 0;
-  margin-right: .3rem;
-  background-color: #BFBFC3;
-}
-.cancel_time{
-	font-size: 16px;
-	margin-left: 20px;
-}
-
-.nothing{
-	margin: 50% auto;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-	flex-direction:column;
-}
-.nothing img{
-    width: 120px;
-}
-.nothingDiv {
-	padding-top:0.42rem;
-	font-size:0.3rem;
-	color:#838384;
-}
-.valuationList {
-    display: inline-block;
-    padding: 0 .12rem;
-    border: 1px solid #2cb7ca;
-	border-radius: 0.06rem;
-	font-size: .28rem;
-	color:#2cb7ca;
-	margin-left: .15rem;
-}
-</style>
 <body style="visibility:hidden">
 	<div class="nothing" style="display:none">
         <img src="/vipsubscribe/image/nothing.png"/>
@@ -163,13 +71,13 @@
                     </div>
                     <div class="card-content">
                         <div class="item-list">
-                            <label class="dyqy">订阅区域:</label>
+                            <label class="dyqy">区域:</label>
                             <ul class="item-list-parents">
                                 <li class="areaNum"></li>
                             </ul>
                         </div>
                         <div class="item-list">
-                            <label class="dyhy">订阅行业:</label>
+                            <label class="dyhy">采购单位为行业:</label>
                             <ul class="item-list-parents">
                                 <li><span class="industryNum"></span></li>
                             </ul>
@@ -194,10 +102,32 @@
         <!--当状态为已取消时显示再次购买按钮-->
         <a class="button align" style="display:none">去支付<span class="cancel_time"></span></a>
     </div>
+	<!-- 计费清单picker -->
+	<div class="billing-list-container" style="display: none;">
+		<div class="weui-mask weui-animate-fade-in"></div>
+		<div class="weui-half-screen-dialog weui-picker weui-animate-slide-up">
+			<div class="weui-half-screen-dialog__hd">
+				<div class="dialog_hd__l"></div>
+				<div class="dialog_hd__title">计费清单</div>
+				<div class="dialog_hd__close iconfont icon-guanbi"></div>
+			</div>
+			<div class="weui-half-screen-dialog__bd valuation_list">
+				<div class="va-list-container">
+					<ul class="list-content">
+					</ul> 
+				</div>
+			</div>
+			<div class="weui-half-screen-dialog__ft">
+				<div class="va-total-container">
+					<span class="total-label">共计:</span>
+					<span class="total-price"></span>
+				</div>
+			</div>
+		</div>
+	</div>
 </body>
 <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/jquery-2.1.4.js?v={{Msg "seo" "version"}}"></script>
 <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
-<!--<script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/fastclick.js?v={{Msg "seo" "version"}}"></script>-->
 <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
 <script>
 try{
@@ -615,9 +545,29 @@ try{
             var filterObj=JSON.parse(r.data.order.filter);
 			var upgradeSubtotail=filterObj.upgradeSubtotail;
 			if (upgradeSubtotail){	//有则显示
+				$.ajax({
+				    type: 'POST',
+				    url: '/subscribepay/orderListDetails/getValuationList',
+				    data: {
+						"order_code":orderCode
+				    },
+				    success: function (data) {
+				        console.log(data);
+				        appendList(data.list);
+				    }
+				});
+			
 				$(".valuationList").css("display","");
-				$(".valuationList").on("click",function(){
-					window.location.href="/front/wxMyOrder/getValuationList/"+orderCode;
+				// 计算标准点击事件
+				$('.valuationList').on('click', function () {
+					pickerShow('.billing-list-container', true)
+				})
+				// 计算标准隐藏
+				$('.billing-list-container .dialog_hd__close').on('click', function () {
+					pickerShow('.billing-list-container', false)
+				})
+				$('.weui-mask').on('click', function () {
+					pickerShow('.billing-list-container', false)
 				})
 			}
 		  
@@ -757,6 +707,109 @@ try{
 		    isPageHide = true;
 		});  
 	});
+	
+	 // picker的显示隐藏
+	function pickerShow(selector, f) {
+		if (f) {
+			// 添加进场动画,并显示
+			$(selector).find('.weui-mask').removeClass('weui-animate-fade-out').addClass('weui-animate-fade-in')
+			$(selector).find('.weui-picker').removeClass('weui-animate-slide-down').addClass('weui-animate-slide-up')
+			$(selector).show(300);
+		} else {
+			// 添加离场动画,并隐藏
+			$(selector).find('.weui-mask').removeClass('weui-animate-fade-in').addClass('weui-animate-fade-out')
+			$(selector).find('.weui-picker').removeClass('weui-animate-slide-up').addClass('weui-animate-slide-down')
+			$(selector).hide(300);
+		}
+	}
+	var total_price=0;
+	function appendList(list){
+		var returnHtml = "";
+		for (var i = 0; i < list.length; i++) {
+			var showTime=""
+			var start= new Date(list[i].startTime * 1000).pattern('yyyy-MM-dd');
+			var end =new Date(list[i].endTime * 1000).pattern('yyyy-MM-dd');
+			var effective = MonthsBetw(start,end);	//月份
+			showTime +="("+effective+"个月)"
+			if (effective>12){
+				showTime +="("+(effective/12)+"年)"
+			}
+			showTime += new Date(list[i].startTime * 1000).pattern('yyyy年MM月dd日') + "-" + new Date(list[i].endTime * 1000).pattern('yyyy年MM月dd日');
+			
+			
+			var typeName = "";
+			if (list[i].type === 1) {
+				typeName = "续费"
+			} else if (list[i].type === 0) {
+				typeName = "升级"
+			}
+			var showArea = "";
+			if (list[i].oldBuyset.areacount === -1) {
+				showArea = "全国"
+			} else {
+				showArea = list[i].oldBuyset.areacount + "个省";
+				if (list[i].oldBuyset.newcitys.length > 0) {
+					var cityCount = 0;
+					for (var j = 0; j < list[i].oldBuyset.newcitys.length; j++) {
+						cityCount += list[i].oldBuyset.newcitys[j];
+					}
+					showArea += "、" + 3 + "个市(分布在" + list[i].oldBuyset.newcitys.length + "个省内)";
+				}
+			}
+			var industryShow = "";
+			if (list[i].oldBuyset.buyerclasscount === -1) {
+				industryShow = "全行业"
+			} else {
+				industryShow = list[i].oldBuyset.buyerclasscount + "个行业";
+			}
+			returnHtml += "<li class='list-item'>"
+				+ '<div class="item-top">'
+				+ '<div class="item-header">'
+				+ '<span class="header-label">有效日期:</span>'
+				+ '<span class="header-content ellipsis">' + showTime + '</span>'
+				+ '</div>'
+				+ '<div class="item-body">'
+				+ '<div class="b-item body-area">'
+				+ '<div class="body-area-title text-title">区域</div>'
+				+ '<div class="body-area-sub">' + showArea + '</div>'
+				+ '</div>'
+				+ '<div class="b-item body-industry">'
+				+ '<div class="body-industry-title text-title">采购单位行业</div>'
+				+ '<div class="body-industry-sub">' + industryShow + '</div>'
+				+ '</div>'
+			if (typeName != "") {
+				returnHtml += '<div class="vp-type">'
+					+ '<div class="vp-type-text">' + typeName + '</div>'
+					+ '</div>'
+			}
+
+			returnHtml += '</div>'
+				+ '</div>'
+				+ '<div class="item-footer">'
+				+ '<span class="footer-label">小计:</span>'
+				+ '<span class="footer-content text-title">¥' +(list[i].price/100) + '</span>'
+				+ '</div>'
+				+ '</li>'
+				
+			total_price+=(list[i].price/100) ;
+		}
+		$(".total-price").text("¥"+total_price);
+		$(".list-content").html(returnHtml);
+	}
+	
+	function MonthsBetw(date1, date2) { //date1和date2是2019-3-12格式
+	    //用-分成数组
+	    date1 = date1.split("-");
+	    date2 = date2.split("-");
+	    //获取年,月数
+	    var year1 = parseInt(date1[0]),
+	        month1 = parseInt(date1[1]),
+	        year2 = parseInt(date2[0]),
+	        month2 = parseInt(date2[1]),
+	        //通过年,月差计算月份差
+	        months = (year2 - year1) * 12 + (month2 - month1);
+	    return months;
+	}
 </script>
 	{{include "/common/baiducc.html"}}
 </html>