ソースを参照

Merge branch 'dev3.0.0' of http://192.168.3.207:10080/qmx/jy into dev3.0.0

# Conflicts:
#	src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/j-icons.css
zhangyuhan 5 年 前
コミット
6d246b801e
19 ファイル変更1257 行追加39 行削除
  1. 149 0
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/buy_commit.css
  2. 37 0
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/ent_info_list.css
  3. 25 0
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/ent_portrait.css
  4. 17 2
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/j-icons.css
  5. 0 1
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/public.css
  6. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/image/icon-add-favorite.png
  7. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/image/icon-company.png
  8. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/image/icon-favorite.png
  9. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/image/icon-phone.png
  10. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/image/img-empty.png
  11. 17 0
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_info_list.js
  12. 7 30
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_portrait.js
  13. 300 0
      src/jfw/modules/app/src/web/staticres/jyapp/css/alertPopShow.css
  14. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/choose.png
  15. 299 0
      src/jfw/modules/app/src/web/staticres/jyapp/js/alertPopShow.js
  16. 182 0
      src/jfw/modules/app/src/web/templates/big-member/page_buy_commit.html
  17. 56 0
      src/jfw/modules/app/src/web/templates/big-member/page_ent_info_list.html
  18. 48 1
      src/jfw/modules/app/src/web/templates/big-member/page_ent_portrait.html
  19. 120 5
      src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html

+ 149 - 0
src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/buy_commit.css

@@ -0,0 +1,149 @@
+@charset "UTF-8";
+.selectLevel {
+  background: #fff;
+}
+
+.selectLevel .selectTitle {
+  width: 100%;
+  height: 0.52rem;
+  padding: 0.32rem 0 0.12rem 0.32rem;
+  font-size: 0.36rem;
+  font-weight: bold;
+  line-height: 0.52rem;
+  color: #171826;
+}
+
+.selectLevel .levelList {
+  display: flex;
+  justify-content: space-between;
+  padding: 0 0.32rem;
+  width: 100%;
+  height: 1.88rem;
+  box-sizing: border-box;
+}
+
+.selectLevel .levelList .setmeal {
+  margin-top: 0.16rem;
+  width: 2.12rem;
+  height: 1.48rem;
+  background: #F5F6F7;
+  border-radius: 0.16rem;
+}
+
+.yearnum {
+  margin-top: 0.16rem;
+}
+
+.yearList {
+  height: 6.92rem;
+}
+
+.yearList .yearPicker .van-picker__toolbar {
+  height: 1.28rem;
+  padding: 0 0.32rem;
+}
+
+.yearList .yearPicker .van-picker__confirm {
+  display: none;
+}
+
+.yearList .yearPicker .van-picker__cancel {
+  order: 1;
+}
+
+.yearList .yearPicker .van-ellipsis.van-picker__title {
+  line-height: 0.6rem;
+  font-size: 0.4rem;
+  color: #171826;
+}
+
+.yearList .j-button-group {
+  box-sizing: border-box;
+}
+
+.content {
+  padding: 16px 16px 160px;
+}
+
+/*底部樣式*/
+.submit-container .price-container {
+  padding: 0.16rem 0.32rem;
+  background-color: #fff;
+}
+
+.submit-container .price-container .price-top {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.submit-container .price-container .price-t-label {
+  font-size: 0.26rem;
+  color: #9B9CA3;
+}
+
+.submit-container .price-container .price-t-count-now {
+  font-size: 0.4rem;
+  color: #FB483D;
+}
+
+.submit-container .price-container .price-t-count-now .cn-l {
+  margin-right: 0.08rem;
+  font-size: 0.32rem;
+}
+
+.submit-container .price-container .price-t-count-now .cn-r {
+  font-weight: 700;
+}
+
+.submit-container .price-container .price-bottom {
+  display: flex;
+  justify-content: flex-end;
+  margin-top: 0.06rem;
+  font-size: 0.22rem;
+  color: #9B9CA3;
+  line-height: 0.28rem;
+}
+
+.submit-container .price-container .price-bottom .co-r {
+  margin-left: 0.08rem;
+  text-decoration: line-through;
+}
+
+.submit-container .statement {
+  display: flex;
+  justify-content: space-between;
+  padding: 0.16rem 0.32rem;
+  border: none;
+  background: #fff;
+  font-size: 0.24rem;
+  line-height: 0.36rem;
+}
+
+.submit-container .statement .state {
+  text-align: justify;
+}
+
+.submit-container .statement .iconSize {
+  overflow: inherit;
+  margin-right: 0.08rem;
+}
+
+.submit-container .statement .van-cell__title {
+  margin-left: 0.16rem;
+}
+
+.submit-container .highlight-text {
+  font-size: 0.24rem;
+}
+
+.submit-container .link:not(:last-of-type):after {
+  content: '、';
+  font-size: 0.24rem;
+  line-height: 0.36rem;
+  color: #5F5E64;
+}
+
+.submit-container .j-button-group {
+  box-sizing: border-box;
+}

+ 37 - 0
src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/ent_info_list.css

@@ -0,0 +1,37 @@
+.empty {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    flex-direction: column;
+    flex: 1;
+    width: 100%;
+    background-color: #fff;
+}
+.empty .empty-img {
+    width: 2rem;
+    margin-bottom: 0.77rem;
+}
+.empty .empty-text {
+    font-size: .28rem;
+    color: #5F5E64;
+}
+
+.add-ent {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    color: #F7F9FA;
+    background-color: #2ABED1;
+}
+.add-ent.circle {
+    position: absolute;
+}
+.add-ent.button {
+    margin: 0 auto;
+    margin-top: .96rem;
+    padding: .16rem .48rem;
+    width: 3.2rem;
+    font-size: .32rem;
+    line-height: .48rem;
+    border-radius: 0.08rem;
+}

+ 25 - 0
src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/ent_portrait.css

@@ -0,0 +1,25 @@
+.ent-header {
+    margin-bottom: .2rem;
+    padding: .28rem .36rem;
+    background-color: #fff;
+}
+.ent-title {
+    flex: 1;
+    margin: 0 .2rem;
+    font-size: .28rem;
+    line-height: .4rem;
+    color: #171826;
+    word-break: break-all;
+}
+.ent-tabs-container {
+    flex: 1;
+    
+    background-color: #fff;
+}
+.ent-tabs-container .van-tabs__content {
+    /* @extends  .j-main */
+    flex: 1;
+    overflow-y: scroll;
+    overflow-x: hidden;
+    -webkit-overflow-scrolling: touch;
+}

+ 17 - 2
src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/j-icons.css

@@ -1,7 +1,7 @@
 .j-icon {
     display: inline-block;
-    width: .4rem;
-    height: .4rem;
+    width: .48rem;
+    height: .48rem;
 }
 
 /* 叉号 */
@@ -81,3 +81,18 @@
 .icon-corner-mark {
     background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKUSURBVHgB7ZdPaxNBGIffmYS2aqBRKkWxur2lLWJy0HtbBY/6AfzTa3vQb6AeBA9CBbF4FLx4M54EQVZPCj3EeDF4MQepFkXXUqXYdqbzbrtlu53p7sxOsnvoc8lMZpY8eZN3frsA++yTXyovGw6BnIOStJe6uRYdfdWokiJ1OUCZQk6puM1rgSTOc1nREbd5g3B4EH4vdxUddZu3opJIriqKksDhtmwtN6Jj7sdZzvlN1Xrmos7zRvlguTALnF/fa1+mor5kP3XFsBq3NzPR4CAXQyfJ/kxEdSWRrouaSCJdFQ1HImjStQM/Gom6dKWiskjUpeMVVUWiLh2t6F6RqEvHROMiURfrokkjMUqldACW1tZhYeW/dL0AFglF4kWd62acQbg/dhKuDg3AspBtLv3btcdaM+FBLiQbkCC3ISI5PTy4PZ842i/dZ0XUNG2ikkj92y/p3tSiNiUftReh/v23dH+qZjKNRJXk3JdF5TXGzYSRSCl5hpLH+3rg4elTcHdkCIj46vPeX7ApaSyKkUg5PBbDPpxfOTEAl44d8dfOlktKWVNJgactuhWJ96LvB6Iq2RSSItzIey1RVSQurKz6r+cOl0Amm0Zyy/RF4mZKEonTQmgmIjTvLfvSxpICts7GY0V1I1Emm0ZSNGv708SZ4SLESWIkcp44bebamxIyWV1JX5SzO/iq/I/iQd5ziL7DIWgSNFH4P2skKarZmqxO4biokjRJmzBYWbwTwtPg9Y8/8PTrT9DE44SNBxPSCUkbrDF2+fP5Wj2Y78h6jMRCr38H5EB2eIyzqbAksi2a9inRBuKzPzDCaq3J2pPomv/T23hKTAM2DXa3TDCA2HwA08ATekKOv+UM6q0LtTdxF2wAr7U5snLQCTUAAAAASUVORK5CYII=);
 }
+
+.icon-favorite {
+    background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHlSURBVHgB7ZntTcJAHMafNg7gBjJC3QAmME6gJvoZRtAN4LMxsgEbaDewTiBs0AEE/D+1JoT2yr1RzuR+yYXQl7vn12u56wFEIpFIxIEEhmyfh0OkYLmQr+dSSmywkpInD3l+8PzX4Tm+keEMV/X5xnUYC1SNAmMpk7pBFUspcymz5C4vXeqQ85+gwUEBaTiTj4WUAfRZSrmWEIVjHSOpY9l1UKdA3fA7uq+YihLb6mqzlal1Hb8SheoApYCEH8jHh2XDPqHEpaon0o4Tba+8b5hhodrZKiBX/xZm9+uxybYvVaYGqh4YIzRS3LRtbjwD9b3/hRBZp4Pk/m21u6nZA2tkCJVkM9rf1BRIAhZo+VFJ8b/QEigRLo1sTYEUylHv5LRka+sBHhRqLxwWqGeROcJjvj/DJaqHeIbwaJ1etwqIaS4zyZAkZuaTuQSPQBAPdCHhJ6qdSoH6fuPId0qJos6gROeNjIMHp9Z9j9BV+LYHdxeTd+I+JbTCE+1ViR4ltMMTo2WVHiSMwhPzdaHjSRiHJ8YC5AgSVuGJlQDxKGEdnlgLEA8STuGJkwBxkHAOT5wFiIWEl/DEiwAxkPAWnngTIBoSXsMTrwKkQ8J7eOJd4I96eZJ/YjDwpwSfIhKJRCKh8QM2/7mt6fWCsAAAAABJRU5ErkJggg==) no-repeat center;
+    background-size: contain;
+}
+
+.icon-add-favorite {
+    background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPKSURBVHgB7ZldTttAEMdn1us+5wbtEdITND1By3MJEBEH8QScIOEGyUOF6gQlFHhub0Bu0HCChhvkscLOTmfz4Th2bGzHFCr5JyHH3t3x/mf2Y9YAFBQUFBRsAUJKLrr9igBRMQS+VYQlgTSZKnpQoIbHVm34VPt+v1/640L5jTA/EahSFhupBeiXukqeAMEp35aijeGYkAZSuJ1arTbZxoZ1WD2HPATYdr8MwvyBQO8gIboTSuFOo/Fl5NnpXbURxEkaG47jfDw+ro3j6om4Qt15FPJuvfM0YdUd9lKNrzuLa4eAxl4Nro9C3fV6N/veMxKTOBvc6CpoQ5ryl23fliFWaAQXF/2ZAfDCTRMgcW5Zu+2oNvbl9wN+c5O99271Ajyo13evluWCcFKvV3+msDFxHfd9VCQiBdi9m99Lz/OVwzl9MpwaLdwwjbsoEUkI28CRVd99v6nuxiGkveAfNkk7r9H1plw/MBwG/uGU1MYs6nMLZdvmyEBCARzm1WQjdZ6088EOBES009rgJbazvEeBGx0QEqDDRwDexHFdNYAMBEWg583kvJFuexUFqPR6t2+DdUICTFP6Z/0wrff9eCJ4lXFmQyId870EvaVYqbANGXwwJVUWONfFkbiHLVk4YAAZ4d36nvePyuw3hjfA2H2ASKUOe94QgX//SCIAvQY634EXBte8jiGHivCD1Zgjwthd8F/AieOH1e/pKFweQEp35Jv55S5nn/BCBFdEKeFpAXrm8w449B6gbMILYZqm925EHAQzXI3c1JAnTocX7s+L20r38rqZNL1Ni06zlTKb7OmSIZwzfyenRA9ikew4j87G929chSyrOtTZoveAoKVFwDPgKOOzIjolooNH1zjwlx1Z1dYiU41MZSKXUcNwW3xZjblnEkFqLVUPLZONw72BdmhU+0gBOpTScPXO9+witiF2I/sfRCQ/E0/lHfiWNG7ZyjKxv/IpT/g2J1OY+3r8z0zySuMoZ+3c8NQhP/FXiTxE2L1rPlt7q1tShla9GpkIxg4hP3kMJ06pK5CeSlxhYgGarUUQ6GgN/X+BQ884WM4p6FmcydQftjR5zolv3asWp+8zByg+/R1Z+6007VNFYMlrWp0yCdBkEaE/S0YdzrOSWYAmjYju5W1TIn8kE9jXwwZyYisBmiQidOc5Z2gt7xFFadUBMfSeE44hJZkm8SaiJvYsvyE89VUdacH+rLPbva4QuZNGozaClOQmQLNRxDqhzm9LrgI0MSJy77wmdwFL5h9p8dP8nxdwf2TttaGgoKCg4LXxF88cMyfSschPAAAAAElFTkSuQmCC) no-repeat center;
+    background-size: contain;
+}
+
+.icon-company {
+    background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKsSURBVHgB7ZldbtNAEMdn1oHQIqiPYB6Q2iKV+AaxAkg8QU+Q9gRtTlA4AeEElBOkfeIBheQGNpEokfriG5C3ilB7GKdp5abeje2s4lb176Hb/fBmJzv7n/UEoKSkpKRIMM2g9e9uHYWxh0g1yM6ICH2E4PikYR+CZpQGWB3XXFkzOghUBw0QYP8Mg23fsUegCaHqXF0TPV2Lj4jmWiGjAxqRGrDZdXe4yOMySiIjpnNroSLrQMQmxer8v0dB2IJz8CEDwgATKuILxL4MQqPJxSFoQGoA+2v9Wh3D7eFr24cc1HquMybx57LOu6BtZ0XagUMn3+IjvJuH1gRNpDbgtnLnDahAQWz8GPSkncSCMQ4+D9/Od9tcBkwC3BOjjpjsy0Qcff8FnmoByviCUMeq2H/RHbR/NbZaoCCXARzgXF6mJevHKL5XjT7/dWABCGl/szswTxpbu7Ixec9AChWRG5gJpJ3oLibrzrUDFIa7HOjeqcYERMeq/jAIE3dn4pZCfOJNtK7aDOOAi37S+FwG/H5lH3FxBAvAQbEv63vec/0HFLnpBarAdytl9NSxvZkmqcsWpkLxuVafGu+zPBOnUBVa/+ZaRlW4BGRGz7B0jqye+yzL+0KhKhTwTZWuz2U+Os92hS9MhSJO39jeRtdtIeDLybxAP1WHO4nCVOhqrobdhgW4n5e5UoWmlCoEpQotzr1XodKAokltAMubtlzOPGoZPktlgB+vPA4nb0VLYQxib6bJk42Vptc5AfsBUBzMDB6xbudNjVszdR+SFzQbGziyhy2ZWkll9KGA9l+CZvzddDqxLleykhrpZt0nIZdsqQtF+UxO6DoE2bLROpksntegyssqD3H04IUR4dclGzLicP/xDEN7XlI51W9kl0SXL1gCWW+kJSUld5j/wlY18F5JPmoAAAAASUVORK5CYII=) no-repeat center;
+    background-size: contain;
+}

+ 0 - 1
src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/public.css

@@ -139,7 +139,6 @@ a {
 .j-container {
     display: flex;
     flex-direction: column;
-    justify-content: space-between;
     height: 100%;
 }
 

BIN
src/jfw/modules/app/src/web/staticres/jyapp/big-member/image/icon-add-favorite.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/big-member/image/icon-company.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/big-member/image/icon-favorite.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/big-member/image/icon-phone.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/big-member/image/img-empty.png


+ 17 - 0
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_info_list.js

@@ -0,0 +1,17 @@
+var vNode = {
+    delimiters: ['${', '}'],
+    el: '#ent-info-list',
+    data: {
+        tabActive: '1',
+        stickyTop: 80
+    },
+    mounted: function () {
+        this.getStickyTop()
+    },
+    methods: {
+        getStickyTop: function () {
+            this.stickyTop = $('.jy-app-header').height()
+        }
+    }
+}
+var entPortrait = new Vue(vNode)

+ 7 - 30
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/ent_portrait.js

@@ -2,39 +2,16 @@ var vNode = {
     delimiters: ['${', '}'],
     el: '#ent-portrait',
     data: {
-        text: 'Hello GoLang & Vue!',
-        loading: true
+        tabActive: '1',
+        stickyTop: 80
     },
-    mounted() {
-        console.log('HI,', this.text)
-        let that = this
-        $.ajax({
-            type: 'GET',
-            url: location.href,
-            data: { name: 'Zepto.js' },
-            success: function(data){
-                // console.log(data)
-            },
-            error: function(xhr, type){
-                console.log('Ajax error!')
-            }
-        })
+    mounted: function () {
+        this.getStickyTop()
     },
     methods: {
-        clickFn (e) {
-            const href = 'https://web-jydev-zyh.jianyu360.cn/jyapp/jylab/mainSearch'
-            if (this.text.length !== 4) {
-                console.log('click', e)
-                vant.Toast.success('预加载页面!')
-                this.text = '前往首页'
-                const link = document.createElement('link')
-                link.rel = 'prerender'
-                link.href = href
-                document.head.appendChild(link)
-            } else {
-                location.href = href
-            }
+        getStickyTop: function () {
+            this.stickyTop = $('.jy-app-header').height()
         }
     }
 }
-new Vue(vNode)
+var entPortrait = new Vue(vNode)

+ 300 - 0
src/jfw/modules/app/src/web/staticres/jyapp/css/alertPopShow.css

@@ -0,0 +1,300 @@
+@charset "UTF-8";
+/* rem */
+@media only screen and (max-width:1080px),only screen and (max-device-width:1080px){
+    html{font-size:33.75px;}
+}
+@media only screen and (max-width:960px),only screen and (max-device-width:960px){
+    html{font-size:30px;}
+}
+@media only screen and (max-width:800px),only screen and (max-device-width:800px){
+    html{font-size:25px;}
+}
+@media only screen and (max-width:720px),only screen and (max-device-width:720px){
+    html{font-size:22.5px;}
+}
+@media only screen and (max-width:640px),only screen and (max-device-width:640px){
+    html{font-size:20px;}
+}
+@media only screen and (max-width:600px),only screen and (max-device-width:600px){
+    html{font-size:18.75px;}
+}
+@media only screen and (max-width:540px),only screen and (max-device-width:540px){
+    html{font-size:16.875px;}
+}
+@media only screen and (max-width:480px),only screen and (max-device-width:480px){
+    html{font-size:15px;}
+}
+@media only screen and (max-width:414px),only screen and (max-device-width:414px){
+    html{font-size:12.9375px;}
+}
+@media only screen and (max-width:400px),only screen and (max-device-width:400px){
+    html{font-size:12.5px;}
+}
+@media only screen and (max-width:375px),only screen and (max-device-width:375px){
+    html{font-size:11.71875px;}
+}
+@media only screen and (max-width:360px),only screen and (max-device-width:360px){
+    html{font-size:11.25px;}
+}
+@media only screen and (max-width:320px),only screen and (max-device-width:320px){
+    html{font-size:10px;}
+}
+@media only screen and (max-width:320px) and (max-height:416px),only screen and (max-device-width:320px) and (max-device-height:480px){
+    html.narrow-screen{font-size:8.5px;}/* 窄屏 */
+}
+@media only screen and (max-width:240px),only screen and (max-device-width:240px){
+    html{font-size:7.5px;}
+}
+/* ============================================================
+   样式重置
+   ============================================================ */
+body,p,ul,ol,li,dl,dt,dd,h1,h2,h3,h4,h5,h6,form,fieldset,legend,input,select,textarea,button,th,td{margin:0;padding:0;}
+h1,h2,h3,h4,h5,h6{font-size:100%;}
+ul,dl,ol{list-style:none;}
+img,fieldset,input[type="submit"]{border:0 none;}
+img{display:inline-block;overflow:hidden;vertical-align:top;}
+em{font-style:normal;}
+strong{font-weight:normal;}
+table{border-collapse:collapse;border-spacing:0;}
+button,input[type="button"]{cursor:pointer;border:0 none;}
+textarea{word-wrap:break-word;resize:none;}  /* word-wrap for opera, resize for webkit */
+menu{margin:0;padding:0;}
+body{-webkit-user-select:none;-webkit-text-size-adjust:100%!important;font-family:Helvetica;}
+input[type="number"]{-webkit-user-select:text;}
+a,button,input,img{-webkit-touch-callout:none;}/* 1.ios 长按时不触发系统的菜单 2.禁止长按时下载图片 */
+input,select,textarea{outline:none;}
+/* 去除android4.0以下 a/button/input标签被点击时产生的边框 因为边框引起了不少bug */
+a,button,input,label{-webkit-tap-highlight-color:rgba(0,0,0,0);}
+/* Android4.0下不识别选择器-webkit-transform-3d 使用它可做Android4.0下版本兼容 */
+@media all and (-webkit-transform-3d){
+    /* android4.0+ ios4+ 恢复按钮被点击时产生的效果 */
+    a,button,input,label{-webkit-tap-highlight-color:rgba(130,130,130,.52);outline: none;}
+}
+html,body{height:100%;margin: 0 auto;max-width: 640px;background-color: #eaeaee;}
+a{text-decoration:none;}
+.clear{clear:both;}
+.clearleft{float:left;display: inline;}
+.clearright{float:right;display: inline;}
+.hide{display: none!important;}
+
+
+/* flex */
+.flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}
+.flex-v{-webkit-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
+.flex-1{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;}
+.flex-align-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;}
+.flex-pack-center{-webkit-box-pack:center;-webkit-justify-content:flex-start;-ms-flex-pack:center;justify-content:flex-start;}
+.flex-pack-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}
+.flex-box { display: -webkit-box;display: -moz-box;display: -ms-flexbox;display: -webkit-flex;display: flex;-moz-box-orient: horizontal;-webkit-box-orient: horizontal;-o-box-orient: horizontal;box-orient: horizontal;}
+/*遮罩*/
+/* .mask{position: fixed;width: 100%;height: 100%;left: 0;top: 0;bottom: 0;background-color: rgba(0,0,0,0.8);z-index: 999;} */
+
+
+
+/* 错误提示弹层 */
+.c-float-modePop {
+    border-radius: 8px;
+text-align: center;
+background-color: #fff;
+}
+.c-float-modePop .warnMsg {
+
+padding: 20px 10px 10px 10px;
+color: #fff
+}
+.c-float-modePop .doBtn {
+
+width: 100%;
+margin: 0 auto;
+}
+.c-float-modePop button {
+
+padding: 6px 9px 6px 9px;
+color: #949494;
+border: 0;
+}
+.c-float-shade {
+
+width: 100%;
+display: block;
+position: absolute;
+z-index: 99;
+background-color: #000;
+opacity: .5;
+top: 0;
+left: 0
+}
+.c-float-shade.hide {
+display: none
+}
+.c-float-popWrap {
+	width: 85%;
+	z-index: 9999;
+	position: fixed;
+	border-radius: 3px;
+    overflow: hidden;
+}
+.c-float-popWrap .c-float-modePop {
+	overflow: hidden;
+	border-radius: 6px;
+}
+.c-float-popWrap .c-float-modePop .warnMsg {
+    padding: 24px 0 0;
+	font-weight: bold;
+    font-size: 18px;
+    line-height: 26px;
+	color: #171826;
+}
+.c-float-popWrap .c-float-modePop .content {
+    margin-top: 8px;
+    padding: 0 20;
+    font-size: 12px;
+    line-height: 18px;
+    color: #9B9CA3;
+	text-align: center;
+}
+.atta_tip{
+    font-size: 12px;
+    line-height: 18px;
+    color: #9B9CA3;
+}
+.alertMode .c-float-modePop .doBtn .ok{
+    color: #171826;
+}
+.c-float-popWrap .c-float-modePop .content .sendsuccess{
+    width: 64px;
+    height: 64px;
+}
+.c-float-popWrap .c-float-modePop .content .alsend{
+    font-size: 18px;
+    line-height: 26px;
+    color: #2ABED1;
+}
+.c-float-popWrap .c-float-modePop .content .emailinput{
+    margin-top: 7px;
+    font-size: 13px;
+    line-height: 20px;
+    color: #5F5E64;
+}
+.c-float-popWrap .c-float-modePop .content .confirm_input{
+    margin-top: 8px;
+    width: 255px;
+    height: 48px;
+    border: 1px solid rgba(0, 0, 0, 0.1);
+    box-sizing: border-box;
+    border-radius: 8px;
+    font-size: 15px;
+    line-height: 22px;
+    color: #171826;
+}
+.c-float-popWrap .c-float-modePop .content .confirm_input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
+    color: #C0C4CC;
+    font-size: 15px;
+}
+.c-float-popWrap .c-float-modePop .doBtn {
+    width: 100%;
+    height: 46px;
+	margin-top: 23px;
+	position: relative;
+}
+.c-float-popWrap .c-float-modePop .doBtn:after {
+    content: " ";
+    position: absolute;
+    left: 0;
+    top: 0;
+    width: 100%;
+    height: 1px;
+    border-top: 1px solid #D5D5D6;
+    color: #D5D5D6;
+    -webkit-transform-origin: 0 0;
+    transform-origin: 0 0;
+    -webkit-transform: scaleY(0.5);
+    transform: scaleY(0.5);
+}
+.c-float-popWrap .c-float-modePop button {
+	background-color: #fff;
+	width: 50%;
+	height: 100%;
+	line-height: 42px;
+	color: #171826;
+	font-size: 18px;
+	border: 0;
+	padding: 0;
+}
+.c-float-popWrap .c-float-modePop button.ok{
+	color: #2ABED1;
+}   
+.c-float-popWrap .c-float-modePop button.cancel{
+	position: relative;
+} 
+.c-float-popWrap .c-float-modePop button.cancel:after {
+    content: " ";
+    position: absolute;
+    right: -1px;
+    top: 0;
+    width: 1px;
+    height: 100%;
+    border-left: 1px solid #D5D5D6;
+    color: #D5D5D6;
+    -webkit-transform-origin: 0 0;
+    transform-origin: 0 0;
+    -webkit-transform: scaleX(0.5);
+    transform: scaleX(0.5);
+}
+.c-float-popWrap.hide {
+
+display: none;
+-webkit-box-shadow: none
+}
+.c-float-popWrap.show {
+
+display: block;
+}
+
+.c-float-popWrap.msgMode .c-float-modePop .content, .c-float-popWrap.msgMode .c-float-modePop .doBtn {
+
+display: none
+}
+
+.c-float-popWrap.alertMode .c-float-modePop .doBtn .cancel {
+
+display: none
+}
+
+.confirm_input{
+	border: 1px solid #D5D5D6;
+	padding: 10px;
+	width: 70%;
+}
+.weui_mask_transparent {
+    position: fixed;
+    z-index: -1;
+    width: 100%;
+    height: 100%;
+    top: 0;
+    left: 0;
+	background: rgba(0, 0, 0, 0.6);
+}
+.cx_mask_transparent{
+	position: fixed;
+    z-index: -1;
+    width: 100%;
+    height: 100%;
+    top: 0;
+    left: 0;
+	background: rgba(255, 255, 255, 0.1);
+}
+
+.web_toast{
+    position: fixed;
+	margin: 0 10px;
+    z-index: 9999;
+    display: none;
+    display: block;
+    padding: 10px;
+    color: #FFFFFF;
+    background: rgba(0, 0, 0, 0.7);
+    font-size: 15px;
+    text-align: center;
+    border-radius: 4px;
+}

BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/choose.png


+ 299 - 0
src/jfw/modules/app/src/web/staticres/jyapp/js/alertPopShow.js

@@ -0,0 +1,299 @@
+
+/** mobile web toast、alert、confirm提示框
+ * 2016.05.25  ghb 
+ * toast使用方式:
+ *      webToast("屌丝逆袭了","bottom",1000);
+ *      webToast("出任SEO","bottom");
+ *      webToast("赢取白富美",1000);
+ *      webToast("走向人生巅峰");
+ *
+ * alert、confirm使用方式:
+ *      popTipShow.alert('弹窗标题',['知道了'],function(e){//do something})
+ *      popTipShow.confirm('弹窗标题','自定义弹窗内容,居左对齐显示,告知需要确认的信息等',['确 定','取 消'],function(e){//do something})
+ */
+
+
+
+function compareVersion(v1, v2) {
+    v1 = v1.toString().split(".");
+    v2 = v2.toString().split(".");
+    for (var i = 0; i < v1.length || i < v2.length; i++) {
+        var n1 = parseInt(v1[i], 10),
+            n2 = parseInt(v2[i], 10);
+        if (window.isNaN(n1)) {
+            n1 = 0
+        }
+        if (window.isNaN(n2)) {
+            n2 = 0
+        }
+        if (n1 < n2) {
+            return -1
+        } else {
+            if (n1 > n2) {
+                return 1
+            }
+        }
+    }
+    return 0
+}
+
+function callback(func, result) {
+    var ua = navigator.userAgent,
+        isAndroid = (/Android/i).test(ua),
+        osVersion = ua.match(/(?:OS|Android)[\/\s](\d+[._]\d+(?:[._]\d+)?)/i)
+
+    if (isAndroid && compareVersion(osVersion, "2.4.0") < 0) {
+        setTimeout(function() {
+            func && func(result)
+        }, 1)
+    } else {
+        func && func(result)
+    }
+}
+
+(function(e) {
+    if (void 0 == window.define) {
+        var d = {},
+            h = d.exports = {};
+        e(null, h, d);
+        window.popTipShow = window.notification = d.exports
+    } else define(e)
+})(function(require, exports, module) {
+    function e(a) {
+        this._options = d.extend({
+            mode: "msg",
+            text: "\u7f51\u9875\u63d0\u793a",
+            useTap: !1
+        }, a || {});
+        this._init()
+    }
+    var d = $,
+        h = d(window),
+        c = d('<div class="c-float-popWrap msgMode hide">'+
+				   '<div class="weui_mask_transparent"></div>'+
+				   '<div class="c-float-modePop">'+
+					   '<div class="warnMsg"></div>'+
+					   '<div class="content"></div>'+
+					   '<div class="doBtn">'+
+					   '<button class="cancel">\u53d6\u6d88</button>'+
+					   '<button class="ok">\u786e\u5b9a</button>'+
+					   '</div>'+
+				   '</div>'+
+			   '</div>'),
+		//c = d('<div class="error-tips hide"><p class="warnMsg"></p></div>'),
+		m = c.find(".warnMsg"),
+        n = c.find(".content"),
+        o = c.find(".doBtn .ok"),
+        p = c.find(".doBtn .cancel"),
+        j = !1,
+        f;
+    d.extend(e.prototype, {
+        _init: function() {
+            var a = this,
+                b = a._options,
+                g = b.mode,
+                k = b.text,
+                e = b.content,
+                f = b.callback,
+                l = b.background,
+                t = b.btns,
+                b = b.useTap ? "tap" : "click",
+                i = c.attr("class"),
+                i = i.replace(/(msg|alert|confirm)Mode/i, g + "Mode");
+            c.attr("class", i);
+            l && c.css("background", l);
+            k && m.html(k);
+            e && n.html(e);
+            t && o.html(t[0]);
+            t && p.html(t[1]);
+			
+			if("alert"==g){//解决一个按钮时的宽度
+				o.css("width", "100%");
+			}else{
+				o.css("width", "");
+			}
+			
+            o.off(b).on(b, function(b) {
+                f.call(a, b, !0);
+            });
+            p.off(b).on(b, function(b) {
+                f.call(a, b, !1)
+            });
+            j || (j = !0, d("body").append(c), h.on("resize",
+                function() {
+                    setTimeout(function() {
+                        a._pos()
+                    }, 500)
+                }))
+        },
+        _pos: function() {
+            var a = document,
+                b = a.documentElement,
+                g = a.body,
+                e, d, f;
+            this.isHide() || (a = g.scrollTop, g = g.scrollLeft, e = b.clientWidth, b = b.clientHeight, d = c.width(), f = c.height(), c.css({
+                top: a + (b - f) / 2,
+                left: g + (e - d) / 2
+            }))
+        },
+        isShow: function() {
+            return c.hasClass("show")
+        },
+        isHide: function() {
+            return c.hasClass("hide")
+        },
+        _cbShow: function() {
+            var a = this._options.onShow;
+            c.css("opacity", "1").addClass("show");
+            a && a.call(this)
+        },
+        show: function() {
+            var a = this;
+            f && (clearTimeout(f), f = void 0);
+            a.isShow() ? a._cbShow() : (c.css("opacity", "0").removeClass("hide"), a._pos(), setTimeout(function() {
+                a._cbShow()
+            }, 300), setTimeout(function() {
+                c.animate({
+                    opacity: "1"
+                }, 300, "linear")
+            }, 1))
+        },
+        _cbHide: function() {
+            var a = this._options.onHide;
+            c.css("opacity", "0").addClass("hide");
+            a && a.call(this)
+        },
+        hide: function() {
+            var a = this;
+            a.isHide() ? a._cbHide() : (c.css("opacity", "1").removeClass("show"), setTimeout(function() {
+                a._cbHide()
+            }, 300), setTimeout(function() {
+                c.animate({
+                    opacity: "0"
+                }, 300, "linear")
+            }, 1))
+        },
+        flash: function(a) {
+            var b = this;
+            opt = b._options;
+            opt.onShow = function() {
+                f = setTimeout(function() {
+                    f && b.hide()
+                }, a)
+            };
+            b.show()
+        }
+    });
+    module.exports = new function() {
+        this.simple = function(a, b, c) {
+            2 == arguments.length && "number" == typeof arguments[1] && (c = arguments[1], b = void 0);
+            var d = new e({
+                mode: "msg",
+                text: a,
+                background: b
+            });
+            d.flash(c || 2E3);
+            return d
+        };
+        this.msg = function(a, b) {
+            var d = new e({
+                mode: "msg",
+                text: a
+            });
+			d.show();
+            return d
+        };
+        this.alert = function(a, s, b, c) {
+            var d = new e({
+                mode: "alert",
+                text: a,
+				content: s,
+				btns:b,
+                callback: c
+            });
+			d.show();
+            return d
+        };
+        this.confirm = function(a, b, c, f) {
+            var d = new e({
+                mode: "confirm",
+                text: a,
+                content: b,
+                btns:c,
+                callback: f
+            });
+            d.show();
+            return d
+        };
+        this.pop = function(a) {
+            return new e(a)
+        }
+    }
+});
+
+
+/** mobile web toast提示框
+ * 使用方式:
+ *      webToast("屌丝逆袭了","bottom",1000);
+ *      webToast("出任SEO","bottom");
+ *      webToast("赢取白富美",1000);
+ *      webToast("走向人生巅峰");
+ */
+function webToast() {
+  //默认设置
+  var dcfg={
+      msg:"提示信息",
+      postion:"top",//展示位置,可能值:bottom,top,middle,默认top:是因为在mobile web环境下,输入法在底部会遮挡toast提示框
+      time:3000,//展示时间
+    };
+  //*********************以下为参数处理******************
+  var len = arguments.length;
+  var arg0 =arguments[0];
+  if(arguments.length>0){
+    dcfg.msg =arguments[0];
+    dcfg.msg=arg0;
+     
+    var arg1 =arguments[1];
+    var regx = /(bottom|top|middle)/i;
+    var numRegx = /[1-9]\d*/;
+    if(regx.test(arg1)){
+      dcfg.postion=arg1;
+    }else if(numRegx.test(arg1)){
+      dcfg.time=arg1;
+    }
+     
+    var arg2 =arguments[2];
+    var numRegx = /[1-9]\d*/;
+    if(numRegx.test(arg2)){
+      dcfg.time=arg2;
+    }
+  }
+//*********************以上为参数处理******************
+var ret = "<div class='web_toast'><div class='cx_mask_transparent'></div>" + dcfg.msg + "</div>";
+  if ($(".web_toast").length <= 0) {
+    $("body").append(ret);
+  } else {//如果页面有web_toast 先清除之前的样式
+	  $(".web_toast").css("left","");
+	 
+	  ret = "<div class='cx_mask_transparent'></div>" + dcfg.msg;
+    $(".web_toast").html(ret);
+  }
+  var w = $(".web_toast").width(),ww = $(window).width();
+  $(".web_toast").fadeIn();
+  $(".web_toast").css("left",(ww-w)/2-20);
+  if("bottom"==dcfg.postion){
+    $(".web_toast").css("bottom",50);
+    $(".web_toast").css("top","");//这里为什么要置空,自己琢磨,我就不告诉
+  }else if("top"==dcfg.postion){
+    $(".web_toast").css("bottom","");
+    $(".web_toast").css("top",50);
+  }else if("middle"==dcfg.postion){
+	$(".web_toast").css("bottom","");
+	$(".web_toast").css("top","");
+    var h = $(".web_toast").height(),hh = $(window).height();
+    $(".web_toast").css("bottom",(hh-h)/2-20);
+  }
+  setTimeout(function() {	
+    $(".web_toast").fadeOut();	
+  }, dcfg.time);
+}

+ 182 - 0
src/jfw/modules/app/src/web/templates/big-member/page_buy_commit.html

@@ -0,0 +1,182 @@
+<!DOCTYPE html>
+<html lang="zh-CN" style="font-size: 50px;">
+
+<head>
+    <title>大会员</title>
+    <!--引入公共资源头部-->
+    {{include "/big-member/meta.html"}}
+
+    <!--S-当前页必定需要预加载的资源-->
+    <link rel="preload" as="style" href=//cdn.jsdelivr.net/npm/reset-css@4.0.1/reset.min.css />
+    <link rel="preload" as="style" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/index.css />
+    <link rel="preload" as="style" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/icon/local.css />
+    <link rel="preload" type="text/css" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/css/buy_commit.css" />
+    <!--E-当前页必定需要预加载的资源-->
+
+
+    <!--S-当前页面的css资源-->
+    <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/reset-css@4.0.1/reset.min.css />
+    <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/index.css />
+    <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/icon/local.css />
+    <link rel="stylesheet" type="text/css" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/css/buy_commit.css" />
+    <!--E-当前页面的css资源-->
+</head>
+
+<body>
+    <div class="j-container">
+        {{include "/big-member/header.html"}}
+        <!--S-Vue-->
+        <div id="v-commit" class="j-main">
+            <div class="j-container">
+                <div class="j-main">
+                    <div class="selectLevel">
+                        <div class="selectTitle">选择会员等级</div>
+                        <div class="levelList">
+                            <div class="setmeal active"></div>
+                            <div class="setmeal"></div>
+                            <div class="setmeal"></div>
+                        </div>
+                    </div>
+                    <van-cell class="yearnum" title="购买年数" is-link value="1年" @click="selectYearNum()"></van-cell>
+                    <van-popup class="yearList j-container" v-model="popupShow"  position="bottom" round >
+                        <div class="j-main">
+                            <van-picker class="yearPicker" show-toolbar title="选择购买年数" :columns="columns" @confirm="onConfirm" @cancel="showPicker=false" @change="onChange"/>
+                        </div>
+                        <div class="j-footer">
+                            <div class="j-button-group">
+                                <button class="j-button-confirm" @click="onSubmit">确定</button>
+                            </div>
+                        </div>
+                    </van-popup>
+                </div>
+                <div class="j-footer">
+                    <div class="submit-container">
+                        <!-- 当 price-top/price-bottom 有一个显示的时候,则price-container显示。否则不显示 -->
+                        <div class="price-container">
+                            <div class="price-top">
+                                <span class="price-t-label">合計:</span>
+                                <span class="price-t-count-now">
+                                    <span class="cn-l">&yen;</span>
+                                    <span class="cn-r">21,999</span>
+                                </span>
+                            </div>
+                            <!-- <div class="price-bottom" v-if="originPrice && originPrice > price"> -->
+                            <div class="price-bottom">
+                                <span class="price-b-label">原价:</span>
+                                <span class="price-b-count-o">
+                                    <span class="co-l">&yen;</span>
+                                    <span class="co-r">27,999</span>
+                                </span>
+                            </div>
+                        </div>
+                        <div class="statement">
+                            <van-checkbox class="iconSize" icon-size="18px" v-model="checked" checked-color="#2ABED1"></van-checkbox>
+                            <p class="state">
+                                <span>我已阅读并同意</span>
+                                <a class="link highlight-text" v-for="(item, index) in serviceTerms"
+                                    @click.stop.prevent="toServiceTerms()" :key="index"
+                                    :href="item.appLink" v-text="item.name"></a>
+                            </p>
+                        </div>
+                        <div class="j-button-group">
+                            <button class="j-button-confirm" @click="onSubmit"
+                                :disabled="confirmDisabled">提交订单</button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!--S-Vue-->
+    </div>
+
+    <!--S-必定需要预加载的资源-->
+    <script rel="preload" as="script" src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js> </script>
+    <script rel="preload" as="script" src=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/vant.min.js> </script> 
+    <script rel="preload" as="script" src=//cdn.jsdelivr.net/npm/zepto@1.2.0/dist/zepto.min.js> </script> <!--E-必定需要预加载的资源-->
+        <!--S-有可能需要提前预加载的资源
+        -->
+    <!--E-有可能需要提前预加载的资源-->
+
+    <!--S-当前页面的资源-->
+    <script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js> </script> 
+    <script src=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/vant.min.js> </script> 
+    <script src=//cdn.jsdelivr.net/npm/zepto@1.2.0/dist/zepto.min.js> </script> {{include "/big-member/commonjs.html"}} <!--
+        <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/demo.js?v={{Msg "seo" "version"}}''></script> -->
+
+<!--E-当前页面的资源-->
+
+<!--小于100行同css,减少请求数-->
+<script>
+   var vNode = {
+        delimiters: ['${', '}'],
+        el: '#v-commit',
+        data: {
+            text: 'Hello GoLang & Vue!',
+            loading: true,
+            checked: false,
+            showPicker: false,
+            popupShow: false,
+            // originPrice: 2,
+            price: 2,
+            columns: ['1','2','3'],
+            serviceTerms: [
+                {
+                    name:'《剑鱼标讯第三方线上招投标课程用户服务协议》',
+                    appLink: '/jyapp/front/staticPage/dataExport_serviceterms.html',
+                },
+                {
+                    name:'《剑鱼标讯第三方线上招投标课程用户服务协议》',
+                    appLink: '/jyapp/front/staticPage/dataExport_serviceterms.html',
+                }
+            ]
+        },
+        computed: {
+            confirmDisabled: function () {
+                return !this.checked
+            }
+        },
+        mounted: function () {
+            console.log('HI,', this.text)
+            
+        },
+        methods: {
+            onSubmit: function (e) {
+                const href = 'https://web-jydev-zyh.jianyu360.cn/jyapp/jylab/mainSearch'
+                if (this.text.length !== 4) {
+                    console.log('click', e)
+                    vant.Toast.success('预加载页面!')
+                    this.text = '前往首页'
+                    const link = document.createElement('link')
+                    link.rel = 'prerender'
+                    link.href = href
+                    document.head.appendChild(link)
+                } else {
+                    location.href = href
+                }
+            },
+            toServiceTerms: function (e) {
+                e.preventDefault()
+                location.href = e.target.href
+            },
+            // 选择购买年数
+            selectYearNum: function () {
+                this.popupShow = true
+            },
+            onConfirm(value, index) {
+            },
+            onChange(picker, value, index) {
+                console.log(picker)
+                console.log(value)
+                console.log(index)
+            },
+            onCancel(e) {
+                // console.log('111',this)
+                // this.showPicker = false
+            }
+        }
+    }
+    new Vue(vNode)
+    </script>
+</body>
+
+</html>

+ 56 - 0
src/jfw/modules/app/src/web/templates/big-member/page_ent_info_list.html

@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang="zh-CN" style="font-size: 50px;">
+<head>
+    <title>企业情报</title>
+
+    <!--引入公共资源头部-->
+    {{include "/big-member/meta.html"}}
+
+    <!--S-当前页必定需要预加载的资源-->
+    <link rel="preload" as="style" href=//cdn.jsdelivr.net/npm/reset-css@4.0.1/reset.min.css />
+    <link rel="preload" as="style" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/index.css />
+    <link rel="preload" as="style" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/icon/local.css />
+    <!--E-当前页必定需要预加载的资源-->
+
+    <!--S-当前页面的css资源-->
+    <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/reset-css@4.0.1/reset.min.css />
+    <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/index.css />
+    <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/icon/local.css />
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/css/ent_info_list.css?v={{Msg "seo" "version"}}' />
+    <!--E-当前页面的css资源-->
+</head>
+<body>
+<div class="j-container">
+    {{include "/big-member/header.html"}}
+    <div id="ent-info-list" class="j-main">
+        <div class="empty">
+            <div class="empty-img">
+                <img src="/jyapp/big-member/image/img-empty.png" alt="">
+            </div>
+            <a href="" class="add-ent button">
+                <span class="j-icon icon-chahao"></span>
+                <span class="button-text">添加企业</span>
+            </a>
+        </div>
+        <div class="info-list">
+            <ul>
+                <li></li>
+            </ul>
+        </div>
+    </div>
+</div>
+
+<!--S-必定需要预加载的资源-->
+<script rel="preload" as="script" src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
+<script rel="preload" as="script" src=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/vant.min.js></script>
+<script rel="preload" as="script" src=//cdn.jsdelivr.net/npm/zepto@1.2.0/dist/zepto.min.js></script>
+<!--E-必定需要预加载的资源-->
+
+<!--S-当前页面的资源-->
+<script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
+<script src=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/vant.min.js></script>
+<script src=//cdn.jsdelivr.net/npm/zepto@1.2.0/dist/zepto.min.js></script>
+{{include "/big-member/commonjs.html"}}
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/ent_info_list.js?v={{Msg "seo" "version"}}'></script>
+</body>
+</html>

+ 48 - 1
src/jfw/modules/app/src/web/templates/big-member/page_ent_portrait.html

@@ -16,13 +16,60 @@
     <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/reset-css@4.0.1/reset.min.css />
     <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/index.css />
     <link rel="stylesheet" href=//cdn.jsdelivr.net/npm/vant@2.8.2/lib/icon/local.css />
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/css/ent_portrait.css?v={{Msg "seo" "version"}}' />
     <!--E-当前页面的css资源-->
 </head>
 <body>
+    <style>
+        .div {
+            display: block;
+            height: 200px;
+        }
+        .red {
+            background-color: red;
+        }
+    </style>
 <div class="j-container">
     {{include "/big-member/header.html"}}
     <div id="ent-portrait" class="j-main">
-        <button class="j-button-confirm">123213</button>
+        <!-- <div class="j-container">
+            <div class="j-header ent-header">
+                <span class="j-icon icon-company"></span>
+                <span class="ent-title">当前页面的资源当前页面的资源当前页面的资源当前页面的资源</span>
+                <span class="j-icon icon-add-favorite"></span>
+            </div>
+            <div class="j-main">
+                <van-tabs class="ent-tabs-container j-container" v-model="tabActive">
+                    <van-tab name="1" title="企业信息">
+                        <mark class="div">1</mark>
+                        <mark class="div red">2</mark>
+                        <mark class="div">3</mark>
+                        <mark class="div red">4</mark>
+                        <mark class="div">5</mark>
+                        <mark class="div red">6</mark>
+                        <mark class="div">7</mark>
+                    </van-tab>
+                    <van-tab name="2" title="中标信息">中标信息</van-tab>
+                </van-tabs>
+            </div>
+        </div> -->
+        <div class="j-header ent-header">
+            <span class="j-icon icon-company"></span>
+            <span class="ent-title">当前页面的资源当前页面的资源当前页面的资源当前页面的资源</span>
+            <span class="j-icon icon-add-favorite"></span>
+        </div>
+        <van-tabs class="ent-tabs-container" v-model="tabActive" sticky :offset-top="stickyTop">
+            <van-tab name="1" title="企业信息">
+                <mark class="div">1</mark>
+                <mark class="div red">2</mark>
+                <mark class="div">3</mark>
+                <mark class="div red">4</mark>
+                <mark class="div">5</mark>
+                <mark class="div red">6</mark>
+                <mark class="div">7</mark>
+            </van-tab>
+            <van-tab name="2" title="中标信息">中标信息</van-tab>
+        </van-tabs>
     </div>
 </div>
 

+ 120 - 5
src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html

@@ -2,6 +2,7 @@
 <head>
 {{include "/common/meta.html"}}
 <title>公告信息</title>
+<link href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/alertPopShow.css?v={{Msg "seo" "version"}}" rel="stylesheet">
 <link href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/bootstrap.min.css?v={{Msg "seo" "version"}}" rel="stylesheet">
 <link rel="stylesheet" type="text/css" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/layout.css" />
 <link href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/font.css?v={{Msg "seo" "version"}}" rel="stylesheet">
@@ -10,6 +11,7 @@
 <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/jquery.min.js"></script>
 <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/fastclick.min.js"></script>
 <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/jquery.cookie.js?v={{Msg "seo" "version"}}"></script>
+<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/alertPopShow.js?v={{Msg "seo" "version"}}"></script>
 <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/bootstrap.min.js"></script>
 {{include "/common/js.html"}}
 <style type="text/css">
@@ -127,17 +129,45 @@ pre {
 	height: 20px;
 }
 .toolbar .tool_bottom{
+	position: relative;
 	height: 20px;
-	margin-top: 13px;
+    display: flex;
+    margin-top: 13px;
+    align-items: center;
+    justify-content: flex-start;
+}
+.toolbar .tool_bottom .forecast{
+	position: absolute;
+	right: -16px;
+	display: flex;
+	justify-content: center;
+	align-items: center;
+	width: 1.68rem;
+	height: .56rem;
+	background: #2ABED1;
+	border-radius: 14px 0px 0px 14px;
+}
+.for_face{
+	display: flex;
+	width: .32rem;
+	height: .32rem;
+	margin-right: .08rem;
+	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIbSURBVHgBzVeNVYMwEA59DuAI2UA2MBtYJygbtBsUJ7BOYJ2gdQJ0guIE4AR0gzPIhV6uIQSKr37v3Qvkcj+53F0gEiMAALd6iDVJJIMSKY+i6CimhjY815RBGOp1C01SXAqtJNZ0gPFYY9RGGV8yZZWmVJPiSut3nF86HC4GRwM9p4ZXA+Wlpi3TMQ8Vji/y3taVoHHjRBwiVExhnOiLiROFNydY6BdiIkBTRQZp16JbsvtXMTFITlTOKOB5GUiPormLTzbgDDM0VWKwcinOkJl5jCddu2AGVIe8KdH9jHuvByO0Fd14wLFeH1ZWNj5xvJsxhiLPXy5JDDs1OiZJSxwld8DU51FfJnmHsOIyMLzNthdV6wAqMbvJPcILpmTMMUjLATSeEYYv/Apf6wwumVOhMBHLTQSexSn8Tzr8XT0/Ic91Ir3hsxp4DPc4fvO63/ikSIMy7bTiNd1XhtBcUAYLWpOFbxdMsQtZoAMp4csbcQr9h/CDJt+ezEvR5EXoMRg97/qoS9r52p1o2gG7hKDjfoCm9bbHAPY1rtja9RkPz2QHbkhipHIpRX6GvA3Yd4EkayScNnHe5tHzJdgR4QqUcAB5CfhzaOfS61qoghYOAAt92rd4UgfAzokD58/E34N+/z2KKzjQ4rfsrumAC//egQLcqOf7v+1HOhDyVyuF/VfsQ8lGC5Frsm4qPQYqnVAvIhDYwJy/7D/Bzdcgx5/1OQAAAABJRU5ErkJggg==) no-repeat;
+	background-size:100% 100% ;
+}
+.for_text{
+	font-size: .26rem;
+	line-height: .4rem;
+	color: #fff;
 }
 .toolbar i{
 	margin-right: 4px;
 }
 .toolbar .follow{
 	float: right;
-  color: #9B9CA3;
-	position: relative;
-	top: 2px;
+    color: #9B9CA3;
+    position: relative;
+    margin-left: 16px;
 }
 .toolbar .follow i{
 	top: 2px;
@@ -768,6 +798,16 @@ ul {
 .content img{
   width:100%;
 }
+
+.download-list ul .downs{
+	margin-bottom: .32rem;
+	font-size: .3rem;
+	line-height: .44rem;
+	color: #2ABED1;
+}
+.download-list ul .downs{
+	text-decoration: underline;
+}
 </style>
 </head>
 <body>
@@ -1016,7 +1056,11 @@ ul {
 				}
 			</script>
 			{{if .T.obj.hasSession}}{{if or .T.obj.projectname .T.obj.projectcode}}<span class="follow" >{{if .T.obj.followFlag}}<i class="glyphicon yiguanzhu"></i>已关注{{else}}<i class="glyphicon weiguanzhu"></i>关注项目{{end}}</span>{{end}}{{else}}<!--<a href="/swordfish/share/-1" style="text-decoration: none;color:#24C0D7;"><span class="follow"><i class="glyphicon weiguanzhu"></i></span>关注项目</a>-->{{end}}
-			</div>
+			<div class="forecast">
+				<span class="for_face"></span>
+				<span class="for_text">中标预测</span>
+			</div>	
+		</div>
       {{end}}
 		</div>
 		</div>
@@ -1155,6 +1199,35 @@ ul {
 			</a>
 			<a class="iconarrow"></a>
 		</div>
+		<div class="atta-download" style="display:none;height: 1.2rem;background: #F5F6F7;border-radius: 8px; color:#2cb7ca;margin-top: 16px; align-items: center;padding: 0 .32rem;" onclick="adv_statistics(this)">
+			<a class="adv_dataexprt" style="width: .48rem; height: .48rem;margin-right: .24rem;display: flex;"></a>
+			<a class="adv_center" style="display: flex;flex-direction: column;flex: 1;">
+				<div class="join">
+					附件下载
+				</div>
+			</a>
+			<a class="iconarrow"></a>
+		</div>
+		<div class="atta-list">
+			<div class="atta-download-have" style="display:flex;height: 1.2rem;background: #fff;border-radius: 8px; color:#2cb7ca;margin-top: 16px; align-items: center;">
+				<a class="adv_dataexprt" style="width: .48rem; height: .48rem;margin-right: .24rem;display: flex;"></a>
+				<a class="adv_center" style="display: flex;flex-direction: column;flex: 1;">
+					<div class="join">
+						附件下载
+					</div>
+				</a>
+			</div>
+			<div class="download-list">
+				<ul>
+					<li class="downs">
+						<a href="javascript:;">颍东区职业教育中心二期、区委党校人防防化设备采购及安装项目清单、控制价.rar</a>
+					</li>
+					<li class="downs">
+						<a href="javascript:;">阜阳市颍东区职业教育中心二期、区委党校人防防化设备采购及安装项目补充公告.doc</a>
+					</li>
+				</ul>
+			</div>
+		</div>
 		<div class="abs">
 			<div onclick="adv_statistics(this)" class="original_name"><a class="original hidden">阅读原文</a></div>
 			{{if .T.obj.hasSession}}
@@ -1599,6 +1672,48 @@ $(".border-tel").click(function(){
     JyObj.callPhone(winnertel)
   }
 })
+// 附件下载弹框
+$('.atta-list').on('click', function(){
+	var html = "<p class=atta_tip>附件将以邮件的形式发送至您的邮箱</p>"+"<input class='confirm_input' placeholder='输入邮箱地址'>";
+	popTipShow.confirm('发送邮箱地址',html,['确 定','取 消'],
+		function(e){
+			//callback 处理按钮事件
+			var button = $(e.target).attr('class');
+			var regEmail = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/
+
+			if(button == 'ok'){
+				if(null==$(".confirm_input").val() || ""==$(".confirm_input").val() || regEmail.test($(".confirm_input").val()) == false){
+					webToast("邮箱地址格式错误","middle", 1500);
+					return;
+				}	
+				
+				this.hide();
+				// setTimeout(function() {
+				// 	webToast($(".confirm_input").val(),"middle", 1500);
+				// }, 300);
+				
+				//按下确定按钮执行的操作
+				//todo ....	
+				sendAlert()							
+			}
+
+			if(button == 'cancel') {
+			//按下取消按钮执行的操作
+			//todo ....
+			this.hide();
+			// setTimeout(function() {
+			// 	webToast("您选择“取消”了","top", 2000);
+			// }, 300);
+			}
+		}
+	);
+});
+function sendAlert() {
+	var sendhtml = "<img class=sendsuccess src='/jyapp/images/choose.png'>"+"<p class=alsend>已发送至</p>"+"<p class=emailinput>2417024719@qq.com</p>";
+	popTipShow.alert(' ',[sendhtml],['我知道了'], function(e){//do something
+		this.hide()
+	})
+}
 var u = navigator.userAgent;
 var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
 $(".app-layout-content-b").scroll(function(event){