浏览代码

fix: 修复缺陷

yangfeng 3 年之前
父节点
当前提交
f6c386569d

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

@@ -409,7 +409,7 @@
     flex: 1;
     width: 33.33%;
     margin-right: .24rem;
-    color: #FF9F40;
+    /* color: #FF9F40; */
     opacity: 0.8;
     white-space: nowrap;
 }

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

@@ -251,7 +251,7 @@
     text-align: center;
 }
 .client .c-name{
-    font-weight: bold;
+    /* font-weight: bold; */
     font-size: .3rem;
     color: #171826;
 }

+ 5 - 5
src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/unit_portrayal.css

@@ -129,7 +129,7 @@
 }
 .d_title{
     padding: .32rem .32rem .12rem;
-    font-weight: bold;
+    /* font-weight: bold; */
     font-size: .36rem;
     line-height: .52rem;
     color: #171826;
@@ -176,7 +176,7 @@
     color: #2ABED1;
     font-size: .24rem;
     border-radius: 4px;
-    font-weight: bold;
+    /* font-weight: bold; */
 }
 .i_time{
     font-size: .2rem;
@@ -345,7 +345,7 @@
 }
 .chart_title,.rank_title,.distribute_title{
     padding: .32rem .32rem .12rem;
-    font-weight: bold;
+    /* font-weight: bold; */
     font-size: .36rem;
     line-height: .52rem;
     color: #171826;
@@ -358,7 +358,7 @@
 }
 .client-title,.agency-title{
     padding: .32rem .32rem .12rem;
-    font-weight: bold;
+    /* font-weight: bold; */
     font-size: .36rem;
     line-height: .52rem;
     color: #171826;
@@ -398,7 +398,7 @@
     text-align: center;
 }
 .client .c-name{
-    font-weight: bold;
+    /* font-weight: bold; */
     font-size: .3rem;
     color: #171826;
 }

+ 17 - 4
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/analysis_result.js

@@ -351,18 +351,26 @@ var vNode = {
         // 处理行业提交数据
         formatterIndustryData:function(data) {
             // var data = {"建筑工程": ["勘察设计", "工程施工", "监理咨询", "材料设备", "机电安装"],"信息技术": ['系统集成及安全','软件开发','运维服务','其他']}
-            var arr = []
+            // var result = []
             if(data) {
                 if(Object.keys(data).length === 0) {
                     return ''
                 } else {
+                    var k = ''
+                    var arr = []
                     for (var key in data) {
+                        k = key
                         for (var i = 0; i < data[key].length; i++) {
-                            data[key][i] = key + '_' + data[key][i]
+                            // data[key][i] = key + '_' + data[key][i]
                             arr.push(data[key][i])
                         }
                     }
-                    return arr;
+                    var result = arr.map(function(v) {
+                      v = k + '_' + v
+                      return v
+                    })
+                    console.log(result,'111')
+                    return result;
                 }
             }
         },
@@ -978,7 +986,12 @@ var vNode = {
         },
         onTabClick (page) {
           if (page == 1) {
-            this.projectListDetail = this.defaultProjectDetail
+            var loading = this.showLoading()
+            var _this = this
+            setTimeout(function() {
+              _this.projectListDetail = _this.defaultProjectDetail
+              loading.clear()
+            }, 50)
           } else {
             var _this = this
             this.$nextTick(function(){

+ 34 - 20
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/unit_portrayal.js

@@ -315,14 +315,24 @@ var vNode = {
                 }
             })
         },
+        // 跳转招标动态新页面
+        goProjectPage: function () {
+          if (this.power.indexOf(5) == -1) {
+            this.openDialog()
+            return
+          } else {
+            location.href = './free_buyer_project_news?entName=' + decodeURIComponent(utils.getParam('entName'))
+          }
+        },
         // 获取中标动态数据
         getNewMsg: function(){
           var storageSet = JSON.parse(sessionStorage.getItem('buyer_high_set'))
           var that = this;
           var data = {
               buyer: decodeURIComponent(utils.getParam('entName')),
-              count: that.dt.pageCount,
-              pageSign: that.dt.isMore
+              // count: that.dt.pageCount,
+              // pageSign: that.dt.isMore,
+              pageNum: 1
           }
           $.ajax({
             type:'POST',
@@ -338,25 +348,29 @@ var vNode = {
                         v.firsttime = new Date(Number(v.firsttime + '000')).pattern('yyyy/MM/dd');
                         v.bidamount = v.bidamount ? utils.moneyUnit(v.bidamount) : ''
                     })
-                    if (!that.dt.isMore) {
-                        that.dt.list = []
-                        that.dt.isMore = 'more'
-                        if(res.data.count <= 3) {
-                            that.dt.isNext = false
-                        }
-                    } else if (that.dt.isMore === 'more') {
-                        if (that.power.indexOf(5) == -1) {
-                          that.openDialog()
-                          return
-                        }
-                        that.dt.isMore = 'max'
-                        if(res.data.count <= 23) {
-                            that.dt.isNext = false
-                        }
-                    } else if (that.dt.isMore === 'max') {
-                        that.dt.isNext = false
+                    if (res.data.count <= 10) {
+                      that.dt.isNext = false
                     }
-                    that.dt.list = that.dt.list.concat(res.data.list)
+                    that.dt.list = res.data.list
+                    // if (!that.dt.isMore) {
+                    //     that.dt.list = []
+                    //     that.dt.isMore = 'more'
+                    //     if(res.data.count <= 3) {
+                    //         that.dt.isNext = false
+                    //     }
+                    // } else if (that.dt.isMore === 'more') {
+                    //     if (that.power.indexOf(5) == -1) {
+                    //       that.openDialog()
+                    //       return
+                    //     }
+                    //     that.dt.isMore = 'max'
+                    //     if(res.data.count <= 23) {
+                    //         that.dt.isNext = false
+                    //     }
+                    // } else if (that.dt.isMore === 'max') {
+                    //     that.dt.isNext = false
+                    // }
+                    // that.dt.list = that.dt.list.concat(res.data.list)
                   }
                 }
               } else {

+ 144 - 0
src/jfw/modules/app/src/web/templates/big-member/page_free_buyer_project_news.html

@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html lang="zh-CN" style="font-size: 50px;">
+<head>
+    <title>招标动态</title>
+
+    <!--引入公共资源头部-->
+    {{include "/big-member/meta.html"}}
+
+    <!--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}}/common-module/collection/css/index.css?v={{Msg "seo" "version"}}' />
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/big-member/css/ent_project_news.css?v={{Msg "seo" "version"}}' />
+    <!--E-当前页面的css资源-->
+    <!--临时处理区域选择仅有一个时展示问题-->
+    <style>
+        .select-area-box.j-container.hide-all .van-index-bar__sidebar + .key-card-box {
+            display: none;
+        }
+        .select-area-box.j-container.hide-all .van-index-bar__sidebar + .key-card-box + .key-card-box .area-card-item:after {
+            content: "";
+            position: absolute;
+            right: 0;
+            bottom: 0;
+            background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHHSURBVHgB7ZS/TsJQFMa/tkpIVEIMCRodIMQEZYGBB8An8AWMuOqgbm46uqFPIImzCS9gqrMDYhxYNAwODiQi/iMEe72nUkJJbe/FwuQ33Z57en49t+d+wL98VEovp1WMSUm9sgGm6grGIIKpDEVaj7zDFb1yYMFII+2QYGA47I+NDJjSbwuMsd3BuO/AtF4Ot6EVwFjead9XoAnjk0jL33J8A3JYrAuLueX5AhSF+QKUgf0ZSFZF7sGAsOg7Q198y6pkYEMDl/XKDrmHG2x9MYLz7BKS00FbXIOkyD0UhiO3nO1YFHuJeUQCk6i3O7huvPf2pDp0sion2FY8aq6rb584e6zb9oU7JKvisP1seMqctNeO4QnLlx943pctx3NK+62KYMVMwiySL9/zoi0pGEn1hNEd6/oiAZq8yMyEZoKtgRCF8e5uFBeY44UmyCmHhTiUil7UX7A2N+sJIzGGE0UG5gS15AUjGYoRV2VhP8Vb2OT/sNktLgKDohSruUzN1qGsVS0EA1iNhFB6enaHATXeXc4GJKvSGI5lrUpAPRg9mEcqYlVDiR/jh2JkLJgZEnEP4fpAg390jU/jlaYapbtc5nIw5xuaNAINUmtJBQAAAABJRU5ErkJggg==);
+            width: 14px;
+            height: 14px;
+            background-size: 100% 100%;
+        }
+        .select-area-box.j-container.hide-all .van-index-bar__sidebar + .key-card-box + .key-card-box .area-card-item {
+            position: relative;
+            background: #E8FAFD;
+            color: #2ABED1;
+        }
+    </style>
+</head>
+<body>
+<div class="j-container">
+    {{include "/big-member/header.html"}}
+    <div id="ent-project-news" class="j-main" v-cloak>
+        <div class="j-container search-container">
+            <div class="search-header">
+                <div class="header-ent-name border-line-b clickable">
+                    <span class="j-icon icon-company"></span>
+                    <span class="ent-title">${ entInfo.buyerName }</span>
+                    <!-- <div class="ent-follow">
+                        <span class="j-icon"
+                            :class="!!entInfo.follow ? 'icon-favorite' : 'icon-add-favorite'"
+                            @click="changeFollowState"
+                            v-if="entInfo.followSearchFinish && entInfo.entExist">
+                        </span>
+                        <van-loading v-if="!entInfo.followSearchFinish" size="24px"></van-loading>
+                    </div> -->
+                </div>
+                <!-- <div class="search-input">
+                    <van-search
+                        v-model.trim="searchInfo.content"
+                        @search="doSearch"
+                        maxlength="50"
+                        placeholder="输入关键词">
+                        <template #left-icon>
+                            <span class="j-icon base-icon icon-search"></span>
+                        </template>
+                    </van-search>
+                    <div class="action-text clickable" @click="doSearch">搜索</div>
+                </div>
+                <div class="search-filters">
+                    <van-dropdown-menu :close-on-click-outside="false">
+                        <van-dropdown-item get-container="body" :lazy-render="false" title="搜索范围" ref="matchTypeMenu">
+                            <popup-select-component :data-list="matchTypeList" multiple show-all-button @confirm="pConfirm($event, 'matchType')" ref="matchTypeSelector"></popup-select-component>
+                        </van-dropdown-item>
+                        <van-dropdown-item get-container="body" :lazy-render="false" title="信息类型" class="collection" ref="infoTypeMenu">
+                            <notice-component class="collection" @cancel="cancel" @confirm="confirm" :selectnoticelist="searchFilters.infoType"  ref="infoTypeSelector"></notice-component>
+                        </van-dropdown-item>
+                        <van-dropdown-item get-container="body" :lazy-render="false" title="项目地区" ref="projectAreaMenu">
+                            <area-component :class="{'hide-all': filterInitData.areaArr.length == 2}" ref="projectAreaSelector" @cancel="cancel" @confirm="confirm"></area-component>
+                        </van-dropdown-item>
+                        <van-dropdown-item get-container="body" :lazy-render="false" title="发布时间" ref="publishTimeMenu">
+                            <popup-select-component ref="publishTimeSelector" button-type="button" :data-list="publishTimeList" @confirm="pConfirm($event, 'publishTime')"></popup-select-component>
+                        </van-dropdown-item>
+                    </van-dropdown-menu>
+                </div> -->
+            </div>
+            <div class="j-main" ref="jList">
+                <div class="list-wrapper">
+                    <van-list
+                        v-model="listState.loading"
+                        :finished="listState.finished"
+                        :immediate-check="false"
+                        finished-text=""
+                        @load="onLoad"
+                        class="project-info-list">
+                        <div
+                            v-for="(item, index) in listState.list"
+                            class="project-info-item bg-white border-line-b clickable"
+                            :immediate-check="false"
+                            @click="goToDetail(item)"
+                            :key="item.id">
+                            <div class="project-name">${ item.title }</div>
+                            <div class="project-info">
+                                <span class="tags">
+                                    <span class="tag tag-success" v-if="item.area">${item.area}</span>
+                                    <span class="tag tag-success" v-if="item.bidstatus">${item.bidstatus}</span>
+                                    <span class="tag tag-success" v-if="item.bidamount">${utils.moneyUnit(item.bidamount)}</span>
+                                </span>
+                                <span class="project-time">
+                                    ${item.firsttime ? new Date(item.firsttime * 1000).pattern('yyyy-MM-dd') : '-'}
+                                </span>
+                            </div>
+                        </div>
+                    </van-list>
+                    <div class="empty-container" v-show="listState.list.length === 0 && listState.loaded && !listState.loading">
+                        <div class="empty-content-position">
+                            <div class="image">
+                                <img src="/jyapp/big-member/image/img-empty.png">
+                            </div>
+                            <div class="empty-main tip-text">暂无数据</div>
+                        </div>
+                    </div>
+                </div>
+            </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 src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "version"}}'></script>
+<script>
+    var pageInfo = {
+        version: {{Msg "seo" "version"}},
+        platform: 'app'
+    }
+</script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/popup-select-mobile.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/notice-mobile.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/js/area-mobile.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/big-member/js/buyer_project_news.js?v={{Msg "seo" "version"}}'></script>
+</body>
+</html>

+ 3 - 3
src/jfw/modules/app/src/web/templates/big-member/page_unit_portrayal.html

@@ -80,9 +80,9 @@
                 <p class="buyer-type">采购单位类型:${statistics.buyerClass || '--'}</p>
             </div>
             <!-- 采购单位通讯录 -->
-            <div v-if="getStatus">
+            <div v-if="getStatus" style="margin-top: .24rem;">
               <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/01-bg.png') no-repeat;background-size:100% 100%">
-                <p class="example-title">采购单位通讯录</p>
+                <p class="example-title win-bid-title">采购单位通讯录</p>
                 <buyer-example :status="bigStatus" :power="power" type="item_1" imgurl='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/collection/image/buyer/01.png'></buyer-example>
               </div>
             </div>
@@ -144,7 +144,7 @@
                     </div>
                     <div v-show="dt.isNext">
                         <div class="more">
-                            <span @click.stop="getNewMsg">查看更多</span>
+                            <span @click.stop="goProjectPage">查看更多</span>
                         </div>
                     </div>
                 </div>

+ 3 - 3
src/jfw/modules/app/src/web/templates/vipsubscribe/commonRules.html

@@ -129,7 +129,7 @@
         <div class="grid-content">
           <div class="g-c-list">
             <span class="rights-icon r-icon-22"></span>
-            <span>中标信息统计</span>
+            <span>中标/采购信息统计</span>
           </div>
           <div class="g-c-list">
             <span class="rights-icon r-icon-23"></span>
@@ -141,7 +141,7 @@
           </div>
           <div class="g-c-list">
             <span class="rights-icon r-icon-5"></span>
-            <span>月度中标金额统计</span>
+            <span>月度中标/采购规模统计</span>
           </div>
           <div class="g-c-list">
             <span class="rights-icon r-icon-6"></span>
@@ -153,7 +153,7 @@
           </div>
           <div class="g-c-list">
             <span class="rights-icon r-icon-2"></span>
-            <span>重点客户分析</span>
+            <span>重点客户/或企业代理机构</span>
           </div>
           <div class="g-c-list">
             <span class="rights-icon r-icon-3"></span>

+ 5 - 5
src/web/staticres/big-member/css/unit_portrayal.css

@@ -129,7 +129,7 @@
 }
 .d_title{
     padding: .32rem .32rem .12rem;
-    font-weight: bold;
+    /* font-weight: bold; */
     font-size: .36rem;
     line-height: .52rem;
     color: #171826;
@@ -176,7 +176,7 @@
     color: #2ABED1;
     font-size: .24rem;
     border-radius: 4px;
-    font-weight: bold;
+    /* font-weight: bold; */
 }
 .i_time{
     font-size: .2rem;
@@ -345,7 +345,7 @@
 }
 .chart_title,.rank_title,.distribute_title{
     padding: .32rem .32rem .12rem;
-    font-weight: bold;
+    /* font-weight: bold; */
     font-size: .36rem;
     line-height: .52rem;
     color: #171826;
@@ -358,7 +358,7 @@
 }
 .client-title,.agency-title{
     padding: .32rem .32rem .12rem;
-    font-weight: bold;
+    /* font-weight: bold; */
     font-size: .36rem;
     line-height: .52rem;
     color: #171826;
@@ -398,7 +398,7 @@
     text-align: center;
 }
 .client .c-name{
-    font-weight: bold;
+    /* font-weight: bold; */
     font-size: .3rem;
     color: #171826;
 }

+ 34 - 20
src/web/staticres/big-member/js/unit_portrayal.js

@@ -314,14 +314,24 @@ var vNode = {
                 }
             })
         },
+        // 跳转招标动态新页面
+        goProjectPage: function () {
+          if (this.power.indexOf(5) == -1) {
+            this.openDialog()
+            return
+          } else {
+            location.href = '/big/wx/page/free_buyer_project_news?entName=' + decodeURIComponent(utils.getParam('entName'))
+          }
+        },
         // 获取中标动态数据
         getNewMsg: function(){
           var that = this;
           var storageSet = JSON.parse(sessionStorage.getItem('buyer_high_set'))
           var data = {
               buyer: decodeURIComponent(utils.getParam('entName')),
-              count: that.dt.pageCount,
-              pageSign: that.dt.isMore
+              // count: that.dt.pageCount,
+              // pageSign: that.dt.isMore,
+              pageNum: 1
           }
           $.ajax({
             type:'POST',
@@ -337,25 +347,29 @@ var vNode = {
                         v.firsttime = new Date(Number(v.firsttime + '000')).pattern('yyyy/MM/dd');
                         v.bidamount = v.bidamount ? utils.moneyUnit(v.bidamount) : ''
                     })
-                    if (!that.dt.isMore) {
-                        that.dt.list = []
-                        that.dt.isMore = 'more'
-                        if(res.data.count <= 3) {
-                            that.dt.isNext = false
-                        }
-                    } else if (that.dt.isMore === 'more') {
-                        if (that.power.indexOf(5) == -1) {
-                          that.openDialog()
-                          return
-                        }
-                        that.dt.isMore = 'max'
-                        if(res.data.count <= 23) {
-                            that.dt.isNext = false
-                        }
-                    } else if (that.dt.isMore === 'max') {
-                        that.dt.isNext = false
+                    if (res.data.count <= 10) {
+                      that.dt.isNext = false
                     }
-                    that.dt.list = that.dt.list.concat(res.data.list)
+                    that.dt.list = res.data.list
+                    // if (!that.dt.isMore) {
+                    //     that.dt.list = []
+                    //     that.dt.isMore = 'more'
+                    //     if(res.data.count <= 3) {
+                    //         that.dt.isNext = false
+                    //     }
+                    // } else if (that.dt.isMore === 'more') {
+                    //     if (that.power.indexOf(5) == -1) {
+                    //       that.openDialog()
+                    //       return
+                    //     }
+                    //     that.dt.isMore = 'max'
+                    //     if(res.data.count <= 23) {
+                    //         that.dt.isNext = false
+                    //     }
+                    // } else if (that.dt.isMore === 'max') {
+                    //     that.dt.isNext = false
+                    // }
+                    // that.dt.list = that.dt.list.concat(res.data.list)
                   }
                 }
               } else {

+ 502 - 0
src/web/staticres/common-module/big-member/js/buyer_project_news.js

@@ -0,0 +1,502 @@
+var matchTypeListForComputed = [
+    {
+        label: '标题搜索',
+        value: 'title'
+    },
+    {
+        label: '正文搜索',
+        value: 'content'
+    },
+    {
+        label: '中标项目/标的物',
+        value: 'purchasing'
+    },
+    {
+        label: '采购单位',
+        value: 'buyer'
+    },
+    {
+        label: '招标代理机构',
+        value: 'agency'
+    },
+    {
+        label: '附件',
+        value: 'file'
+    }
+]
+try {
+    if (is_weixin()) {
+        matchTypeListForComputed.pop()
+    }
+} catch (e) {}
+var vConfig = {
+    delimiters: ['${', '}'],
+    el: '#ent-project-news',
+    components: {
+        popupSelectComponent: popupSelectComponent,
+        areaComponent: areaComponent,
+        noticeComponent: noticeComponent,
+    },
+    data: {
+        platform: pageInfo.platform,
+        sessStorageKey: '$data-ent_project_news',
+        // 企业信息
+        entInfo: {
+            eid: '', // 企业id
+            name: '',
+            follow: 0,
+            followSearchFinish: false,
+            entExist: true,
+            buyerName: ''
+        },
+        searchInfo: {
+            content: ''
+        },
+        searchFilters: {
+            matchType: ['title', 'content'],
+            area: [],
+            infoType: [],
+            pushTime: ['5year'],
+        },
+        listState: {
+            refreshing: false,
+            loaded: false,
+            loading: false,
+            finished: false,
+            pageNum: 1,
+            pageSize: 10,
+            count: 0,
+            offset: 50,
+            scrollTop: 0,
+            list: []
+        },
+        matchTypeList: matchTypeListForComputed,
+        publishTimeList: [
+            {
+                label: '最近7天',
+                value: '7day'
+            },
+            {
+                label: '最新30天',
+                value: '30day'
+            },
+            {
+                label: '1年内',
+                value: '1year'
+            },
+            {
+                label: '3年内',
+                value: '3year'
+            },
+            {
+                label: '5年内',
+                value: '5year'
+            }
+        ],
+        filterInitData: {
+            areaArr: [],
+            infoType: [],
+            timeRange: [],
+        },
+        reqSign: 'bigmember'
+    },
+    computed: {
+        projectNewUrl: function () {
+            var urlMap = {
+                bigmember: '/bigmember/portrait/winner/getNewMsg', // 大会员
+                svip: '/bigmember/portrait/subVipPortrait/winnerNewMsg' // 超级订阅
+            }
+            var url = urlMap.bigmember
+            if (urlMap[this.reqSign]) {
+                url = urlMap[this.reqSign]
+            }
+            return url
+        },
+        filterInfoUrl: function () {
+            var urlMap = {
+                bigmember: '/bigmember/portrait/winner/getNewMsgSelects', // 大会员
+                svip: '/bigmember/portrait/subVipPortrait/getNewMsgSelects' // 超级订阅
+            }
+            var url = urlMap.bigmember
+            if (urlMap[this.reqSign]) {
+                url = urlMap[this.reqSign]
+            }
+            return url
+        },
+    },
+    created: function () {
+        // var eid = utils.getParam('eid')
+        // var reqSign = utils.getParam('reqSign')
+        // if (eid) {
+        //     this.entInfo.eid = decodeURIComponent(eid)
+        // }
+        // if (reqSign) {
+        //     this.reqSign = reqSign
+        // }
+        var entName = decodeURIComponent(utils.getParam('entName'))
+        if (entName) {
+          this.entInfo.buyerName = entName
+        }
+    },
+    mounted: function () {
+        var recover = this.recover()
+        if (!recover) {
+            // this.getFilterInfo()
+            this.onLoad()
+        } else {
+            this.initSelector(this.filterInitData)
+        }
+    },
+    methods: {
+        showToast: function (message) {
+            this.$toast({
+                duration: 1500,
+                forbidClick: true,
+                message: message,
+            })
+        },
+        showLoading: function () {
+            var loading = this.$toast.loading({
+                duration: 0,
+                forbidClick: true,
+                message: 'loading...',
+            })
+            return loading
+        },
+        // getFilterInfo: function () {
+        //     var _this = this
+        //     var loading = this.showLoading()
+        //     $.ajax({
+        //         type: 'POST',
+        //         url: this.filterInfoUrl,
+        //         data: {
+        //             entId: _this.entInfo.eid
+        //         },
+        //         success: function (res) {
+        //             if (res.error_code == 0) {
+        //                 loading.clear()
+        //                 _this.filterInitData = res.data
+        //                 _this.initSelector(res.data)
+        //             } else {
+        //                 _this.showToast(res.error_msg)
+        //             }
+        //         },
+        //         error: function (error) {
+        //             loading.clear()
+        //             console.log(error)
+        //         }
+        //     })
+        // },
+        onLoad: function () {
+            var _this = this
+            var t = this.listState
+            t.loading = true
+            var storageSet = JSON.parse(sessionStorage.getItem('buyer_high_set'))
+            var url = '/bigmember/portrait/buyer/getNewMsg'
+            var data = {
+              buyer: _this.entInfo.buyerName,
+              // match: _this.searchInfo.content,
+              // matchType: _this.searchFilters.matchType.join(','),
+              // area: _this.searchFilters.area.join(','),
+              // infoType: _this.searchFilters.infoType.join(','),
+              // pushTime: _this.searchFilters.pushTime.join(','),
+              pageNum: _this.listState.pageNum,
+              pageSize: _this.listState.pageSize,
+            }
+            $.ajax({
+                type: 'POST',
+                url: url,
+                data: storageSet ? Object.assign(data, storageSet) : data,
+                success: function (res) {
+                    if (res.data) {
+                        // 判断是否为刷新
+                        if (t.refreshing) {
+                            t.list = []
+                            t.refreshing = false
+                        }
+            
+                        // 列表赋值
+                        var list = res.data.list
+                        var count = res.data.count
+                        if (Array.isArray(list)) {
+                            _this.preSortList(list)
+                            if (_this.listState.pageNum === 1) {
+                                t.list = []
+                            }
+                            t.list = t.list.concat(list)
+                        } else {
+                            // list不为数组,则直接finish
+                            t.loaded = true
+                            t.loading = false
+                            t.finished = true
+                        }
+                        if (count && count != -1) {
+                            _this.listState.count = count
+                        }
+            
+                        // 加载状态结束
+                        t.loaded = true
+                        t.loading = false
+            
+                        // 翻页
+                        var hasNextPage = _this.listState.pageNum * _this.listState.pageSize < _this.listState.count
+                        if (hasNextPage) {
+                            t.pageNum++
+                        } else {
+                            t.finished = true
+                        }
+                    } else {
+                        t.loaded = true
+                        t.loading = false
+                        t.finished = true
+                        _this.$toast('请求失败')
+                    }
+                },
+                error: function (error) {
+                    console.log(error)
+                }
+            })
+        },
+        onRefresh: function () {
+            // 重置数据
+            this.listState.pageNum = 1
+            // 解除加载完成状态
+            this.listState.finished = false
+            // 重新加载数据
+            // 将 loading 设置为 true,表示处于加载状态
+            this.listState.loading = true
+            // 请求数据
+            this.onLoad()
+        },
+        resetState: function () {
+            var rState = {
+                refreshing: false,
+                loaded: false,
+                loading: false,
+                finished: false,
+                pageNum: 1,
+                pageSize: 10,
+                scrollTop: 0,
+                list: []
+            }
+            Object.assign(this.listState, rState)
+        },
+        doSearch: function () {
+            this.resetState()
+            this.onRefresh()
+            this.closeDropDownMenu(-1)
+        },
+        preSortList: function (list) {
+            return list
+        },
+        changeFollowState: function () {
+            return this.changeFollowStateRequest()
+            var _this = this
+            if (this.entInfo.follow) {
+                this.$dialog.confirm({
+                    title: '提示信息',
+                    message: '取消对“' + _this.entInfo.name + '”的关注?',
+                    confirmButtonColor: '#2cb7ca'
+                }).then(function () {
+                    _this.changeFollowStateRequest()
+                }).catch(function () {
+                    console.log('取消操作')
+                })
+            } else {
+                this.changeFollowStateRequest()
+            }
+        },
+        // 修改企业关注状态
+        changeFollowStateRequest: function () {
+            var _this = this
+            var loading = this.showLoading()
+            var urls = {
+                addFollow: '/bigmember/follow/ent/addFollow',
+                delFollow: '/bigmember/follow/ent/delFollow'
+            }
+            var url = !!this.entInfo.follow ? urls.delFollow : urls.addFollow
+            $.ajax({
+                type: 'POST',
+                url: url,
+                data: {
+                    entId: _this.entInfo.eid
+                },
+                success: function (res) {
+                    if (res.error_code == 0) {
+                        // 清除上个页面缓存
+                        sessionStorage.removeItem('$data-ent_portrait')
+                        loading.clear()
+                        if (res.data && res.data == 'success') {
+                            _this.entInfo.follow = !_this.entInfo.follow
+                        }
+                    } else {
+                        _this.showToast(res.error_msg)
+                    }
+                },
+                error: function (error) {
+                    loading.clear()
+                    console.log(error)
+                }
+            })
+        },
+        initSelector: function (data) {
+            // this.initMatchTypeSelector()
+            // this.initInfoTypeSelector(data.infoType)
+            // this.initProjectAreaSelector(data.areaArr)
+            // this.initPublishTimeSelector(data.timeRange)
+
+            // this.recoverFilterState()
+        },
+        initMatchTypeSelector: function () {
+            this.$refs.matchTypeSelector.setState(this.searchFilters.matchType)
+        },
+        initInfoTypeSelector: function (infoTypeList) {
+            if (!Array.isArray(infoTypeList)) return
+
+            var list = []
+            infoTypeSelectorMap.forEach(function (item) {
+                for (var key in item) {
+                    var arr = []
+                    item[key].forEach(function (t) {
+                        if (infoTypeList.indexOf(t) !== -1) {
+                            arr.push(t)
+                        }
+                    })
+                    if (arr.length) {
+                        list.push({
+                            [key]: arr
+                        })
+                    }
+                }
+            })
+
+            this.$refs.infoTypeSelector.getIndustryData(list)
+            this.$refs.infoTypeSelector.getbBtnClick()
+            this.$refs.infoTypeSelector.setStates()
+
+            this.$refs.infoTypeSelector.checkBoxAll()
+        },
+        initProjectAreaSelector: function (areaArr) {
+            if (!Array.isArray(areaArr)) return
+
+            if (areaArr.indexOf('全国') === -1) {
+                areaArr.unshift('全国')
+            }
+
+            var areaMap = this.$refs.projectAreaSelector.provinceListMap
+            var map = {}
+            for (var key in areaMap) {
+                var arr = []
+                areaMap[key].forEach(function (item) {
+                    if (areaArr.indexOf(item) !== -1) {
+                        arr.push(item)
+                    }
+                })
+                if (arr.length) {
+                    map[key] = arr
+                }
+            }
+            this.$refs.projectAreaSelector.arrangeListMap(map)
+        },
+        initPublishTimeSelector: function (timeRange) {
+            if (!Array.isArray(timeRange)) return
+            var arr = []
+            this.publishTimeList.forEach(function (item) {
+                if (timeRange.indexOf(item.value) !== -1) {
+                    arr.push(item)
+                }
+            })
+            this.publishTimeList = JSON.parse(JSON.stringify(arr))
+            this.$refs.publishTimeSelector.setSortedList(this.publishTimeList)
+        },
+        cancel: function (data) {
+            if (data.name === 'noticeItem') {
+                this.searchFilters.infoType = []
+                this.$refs.infoTypeSelector.setState()
+            } else if (data.name === 'areaItem') {
+                this.searchFilters.area = []
+            }
+        },
+        confirm: function (data) {
+            if (data.name === 'noticeItem') {
+                this.searchFilters.infoType = data.data
+            } else if (data.name === 'areaItem') {
+                this.searchFilters.area = data.data
+            }
+            this.doSearch()
+        },
+        closeDropDownMenu: function (index) {
+            if (index === 0) {
+                this.$refs.matchTypeMenu.toggle(false)
+            } else if (index === 1) {
+                this.$refs.infoTypeMenu.toggle(false)
+            } else if (index === 2) {
+                this.$refs.projectAreaMenu.toggle(false)
+            } else if (index === 3) {
+                this.$refs.publishTimeMenu.toggle(false)
+            } else if (index === -1) {
+                this.closeDropDownMenu(0)
+                this.closeDropDownMenu(1)
+                this.closeDropDownMenu(2)
+                this.closeDropDownMenu(3)
+            }
+        },
+        pConfirm: function (e, type) {
+            if (type === 'matchType') {
+                this.searchFilters.matchType = e.data
+            } else if (type === 'publishTime') {
+                this.searchFilters.pushTime = e.data
+            }
+            this.doSearch()
+        },
+        goToDetail: function (item) {
+            this.saveState()
+            var href = ''
+            if (this.platform === 'app') {
+                href = '/jyapp/article/content/' + item.id + '.html'
+            } else {
+                href = '/article/content/' + item.id + '.html'
+            }
+            location.href = href
+        },
+        recoverFilterState: function () {
+            if (this.searchFilters.infoType.length) {
+                this.$refs.infoTypeSelector.setState(this.searchFilters.infoType)
+            }
+            if (this.searchFilters.area.length) {
+                this.$refs.projectAreaSelector.setState(this.searchFilters.area)
+            } else {
+                this.$refs.projectAreaSelector.resetAll()
+            }
+            this.$refs.publishTimeSelector.setState(this.searchFilters.pushTime)
+        },
+        saveState: function () {
+            // 保存滚动高度
+            this.listState.scrollTop = parseInt(this.$refs.jList.scrollTop)
+            var $data = JSON.stringify(this.$data)
+            sessionStorage.setItem(this.sessStorageKey, $data)
+        },
+        recover: function () {
+            var _this = this
+            var excludeKey = ['sessStorageKey', 'matchTypeList', 'publishTimeList']
+            var $data = sessionStorage.getItem(this.sessStorageKey)
+            if ($data) {
+                $data = JSON.parse($data)
+                if (this.entInfo.eid !== $data.entInfo.eid) return
+                for (var key in $data) {
+                    if (excludeKey.indexOf(key) !== -1) {
+                        continue
+                    }
+                    this.$data[key] = $data[key]
+                }
+
+                this.$nextTick(function () {
+                    _this.$refs.jList.scrollTop = _this.listState.scrollTop
+                })
+                sessionStorage.removeItem(this.sessStorageKey)
+            }
+            return !!$data
+        },
+    }
+}
+var vm = new Vue(vConfig)

+ 1 - 1
src/web/staticres/common-module/big-member/js/high_set.js

@@ -370,7 +370,7 @@ var highSet = new Vue({
       this.conf.keywords = val.replace(/^\s\s*/,'')
     },
     onCancel: function (data) {
-      // console.log(data)
+      console.log(data)
       if (!data) {
         this.selectScopeList = ['purchasing']
         this.$refs.matchTypeSelector.setState(this.selectScopeList)

+ 139 - 0
src/web/templates/big-member/wx/page_free_buyer_project_news.html

@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html lang="zh-CN" style="font-size: 50px;">
+<head>
+    <title>项目动态</title>
+
+    <!--引入公共资源头部-->
+    {{include "/big-member/wx/meta.html"}}
+
+    <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"}}/common-module/collection/css/index.css?v={{Msg "seo" "version"}}'>
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/big-member/css/ent_project_news.css?v={{Msg "seo" "version"}}'>
+    <!--临时处理区域选择仅有一个时展示问题-->
+    <style>
+        .select-area-box.j-container.hide-all .van-index-bar__sidebar + .key-card-box {
+            display: none;
+        }
+        .select-area-box.j-container.hide-all .van-index-bar__sidebar + .key-card-box + .key-card-box .area-card-item:after {
+            content: "";
+            position: absolute;
+            right: 0;
+            bottom: 0;
+            background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHHSURBVHgB7ZS/TsJQFMa/tkpIVEIMCRodIMQEZYGBB8An8AWMuOqgbm46uqFPIImzCS9gqrMDYhxYNAwODiQi/iMEe72nUkJJbe/FwuQ33Z57en49t+d+wL98VEovp1WMSUm9sgGm6grGIIKpDEVaj7zDFb1yYMFII+2QYGA47I+NDJjSbwuMsd3BuO/AtF4Ot6EVwFjead9XoAnjk0jL33J8A3JYrAuLueX5AhSF+QKUgf0ZSFZF7sGAsOg7Q198y6pkYEMDl/XKDrmHG2x9MYLz7BKS00FbXIOkyD0UhiO3nO1YFHuJeUQCk6i3O7huvPf2pDp0sion2FY8aq6rb584e6zb9oU7JKvisP1seMqctNeO4QnLlx943pctx3NK+62KYMVMwiySL9/zoi0pGEn1hNEd6/oiAZq8yMyEZoKtgRCF8e5uFBeY44UmyCmHhTiUil7UX7A2N+sJIzGGE0UG5gS15AUjGYoRV2VhP8Vb2OT/sNktLgKDohSruUzN1qGsVS0EA1iNhFB6enaHATXeXc4GJKvSGI5lrUpAPRg9mEcqYlVDiR/jh2JkLJgZEnEP4fpAg390jU/jlaYapbtc5nIw5xuaNAINUmtJBQAAAABJRU5ErkJggg==);
+            width: 14px;
+            height: 14px;
+            background-size: 100% 100%;
+        }
+        .select-area-box.j-container.hide-all .van-index-bar__sidebar + .key-card-box + .key-card-box .area-card-item {
+            position: relative;
+            background: #E8FAFD;
+            color: #2ABED1;
+        }
+    </style>
+</head>
+<body>
+    <div id="ent-project-news" class="j-container search-container" v-cloak>
+        <div class="search-header">
+            <div class="header-ent-name border-line-b clickable">
+                <span class="j-icon icon-company"></span>
+                <span class="ent-title">${ entInfo.buyerName }</span>
+                <!-- <div class="ent-follow">
+                    <span class="j-icon"
+                        :class="!!entInfo.follow ? 'icon-favorite' : 'icon-add-favorite'"
+                        @click="changeFollowState"
+                        v-if="entInfo.followSearchFinish && entInfo.entExist">
+                    </span>
+                    <van-loading v-if="!entInfo.followSearchFinish" size="24px"></van-loading>
+                </div> -->
+            </div>
+            <!-- <div class="search-input">
+                <van-search
+                    v-model.trim="searchInfo.content"
+                    @search="doSearch"
+                    maxlength="50"
+                    placeholder="输入关键词">
+                    <template #left-icon>
+                        <span class="j-icon base-icon icon-search"></span>
+                    </template>
+                </van-search>
+                <div class="action-text clickable" @click="doSearch">搜索</div>
+            </div>
+            <div class="search-filters">
+                <van-dropdown-menu :close-on-click-outside="false">
+                    <van-dropdown-item get-container="body" :lazy-render="false" title="搜索范围" ref="matchTypeMenu">
+                        <popup-select-component :data-list="matchTypeList" multiple show-all-button @confirm="pConfirm($event, 'matchType')" ref="matchTypeSelector"></popup-select-component>
+                    </van-dropdown-item>
+                    <van-dropdown-item get-container="body" :lazy-render="false" title="信息类型" class="collection" ref="infoTypeMenu">
+                        <notice-component class="collection" @cancel="cancel" @confirm="confirm" :selectnoticelist="searchFilters.infoType"  ref="infoTypeSelector"></notice-component>
+                    </van-dropdown-item>
+                    <van-dropdown-item get-container="body" :lazy-render="false" title="项目地区" ref="projectAreaMenu">
+                        <area-component :class="{'hide-all': filterInitData.areaArr.length == 2}" ref="projectAreaSelector" @cancel="cancel" @confirm="confirm"></area-component>
+                    </van-dropdown-item>
+                    <van-dropdown-item get-container="body" :lazy-render="false" title="发布时间" ref="publishTimeMenu">
+                        <popup-select-component ref="publishTimeSelector" button-type="button" :data-list="publishTimeList" @confirm="pConfirm($event, 'publishTime')"></popup-select-component>
+                    </van-dropdown-item>
+                </van-dropdown-menu>
+            </div> -->
+        </div>
+        <div class="j-main" ref="jList">
+            <div class="list-wrapper">
+                <van-list
+                    v-model="listState.loading"
+                    :finished="listState.finished"
+                    :immediate-check="false"
+                    finished-text=""
+                    @load="onLoad"
+                    class="project-info-list">
+                    <div
+                        v-for="(item, index) in listState.list"
+                        class="project-info-item bg-white border-line-b clickable"
+                        :immediate-check="false"
+                        @click="goToDetail(item)"
+                        :key="item.id">
+                        <div class="project-name">${ item.title }</div>
+                        <div class="project-info">
+                            <span class="tags">
+                                <span class="tag tag-success" v-if="item.area">${item.area}</span>
+                                <span class="tag tag-success" v-if="item.bidstatus">${item.bidstatus}</span>
+                                <span class="tag tag-success" v-if="item.bidamount">${utils.moneyUnit(item.bidamount)}</span>
+                            </span>
+                            <span class="project-time">
+                                ${item.firsttime ? new Date(item.firsttime * 1000).pattern('yyyy-MM-dd') : '-'}
+                            </span>
+                        </div>
+                    </div>
+                </van-list>
+                <div class="empty-container" v-show="listState.list.length === 0 && listState.loaded && !listState.loading">
+                    <div class="empty-content-position">
+                        <div class="image">
+                            <img src="/big-member/image/img-empty.png">
+                        </div>
+                        <div class="empty-main tip-text">暂无数据</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/collection/css/index.css?v={{Msg "seo" "version"}}'>
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/big-member/css/ent_project_news.css?v={{Msg "seo" "version"}}'>
+
+    <!--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>
+    <script>
+        var pageInfo = {
+            version: {{Msg "seo" "version"}},
+            platform: 'wx'
+        }
+    </script>
+    {{include "/big-member/wx/commonjs.html"}}
+    <script src='{{Msg "seo" "cdn"}}/common-module/collection/js/popup-select-mobile.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/common-module/collection/js/notice-mobile.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/common-module/collection/js/area-mobile.js?v={{Msg "seo" "version"}}'></script>
+    <script src='{{Msg "seo" "cdn"}}/common-module/big-member/js/buyer_project_news.js?v={{Msg "seo" "version"}}'></script>
+</body>
+</html>

+ 3 - 3
src/web/templates/big-member/wx/page_unit_portrayal.html

@@ -93,10 +93,10 @@
               <p class="buyer-type">采购单位类型:${statistics.buyerClass || '--'}</p>
           </div>
           <!-- 采购单位通讯录 -->
-          <div>
+          <div style="margin-top: .24rem;">
             <div v-if="getStatus" key="txl">
               <div class="vip_component" style="height:10.8rem;background:url('/common-module/collection/image/buyer/01-bg.png') no-repeat;background-size:100% 100%">
-                <p class="example-title">采购单位通讯录</p>
+                <p class="example-title win-bid-title">采购单位通讯录</p>
                 <buyer-example data-cl-event="c_wx_free_buttonclick" :status="bigStatus" :power="power" type="item_1" imgurl='{{Msg "seo" "cdn"}}/common-module/collection/image/buyer/01.png'></buyer-example>
               </div>
             </div>
@@ -158,7 +158,7 @@
                   </div>
                   <div v-show="dt.isNext">
                       <div class="more">
-                          <span @click.stop="getNewMsg">查看更多</span>
+                          <span @click.stop="goProjectPage">查看更多</span>
                       </div>
                   </div>
               </div>

+ 3 - 3
src/web/templates/common/commonRules.html

@@ -129,7 +129,7 @@
         <div class="grid-content">
           <div class="g-c-list">
             <span class="rights-icon r-icon-22"></span>
-            <span>中标信息统计</span>
+            <span>中标/采购信息统计</span>
           </div>
           <div class="g-c-list">
             <span class="rights-icon r-icon-23"></span>
@@ -141,7 +141,7 @@
           </div>
           <div class="g-c-list">
             <span class="rights-icon r-icon-5"></span>
-            <span>月度中标金额统计</span>
+            <span>月度中标/采购规模统计</span>
           </div>
           <div class="g-c-list">
             <span class="rights-icon r-icon-6"></span>
@@ -153,7 +153,7 @@
           </div>
           <div class="g-c-list">
             <span class="rights-icon r-icon-2"></span>
-            <span>重点客户分析</span>
+            <span>重点客户/或企业代理机构</span>
           </div>
           <div class="g-c-list">
             <span class="rights-icon r-icon-3"></span>