Explorar o código

feat: 企业搜索完善

zhangyuhan %!s(int64=4) %!d(string=hai) anos
pai
achega
6dacd20f3b

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

@@ -339,6 +339,13 @@
 .icon-address {
     background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKaSURBVHgB7ZhBkhIxFED/T+OMsxJv0OwAF8AJBKa0ypVHgCPMDYAbOCeQOQHDyoUOjSdocIFUubBvIKsplenE/JapckZ+Ot2dZb8qqqvIT3jwk58EgJKSEiMIBah/DLsovLd6lDaC8vVb/mHQnQRcgYKVkvF8+6qzhJzkEkzEPG+kpbqWXSJQcrI570whI5kE/VlYPXvmzTKIPUThVP6OJ9s3nci2i7Vg/UPoi1MRwCGNBYjkL9mzlbQSdCh3j7WkAAu03AzcyRE+nnrvbQJTBZvBeqQfbUhHLwR1nbxArdKCaR43bsKL9DgDVqlFdb3fq8m3150HUvUg9FHBGEEMgGd3i7IW9To7LqBi6AziBLpGOQWTTb89Pta07SXza9i8CSNAMWJGqJ5JGOrnO+AcwAAiDoxy560xpKBr31jXwEv+Q3ShN8AKtoOwqgC7cNQNolsh2W/9mBMBY/04mkaai77+LMgq+POOXxiIammaN49ZUaySV1z7E8M0sioz/yHVZ8gOu7IrcQ5BIZzWPSOIkD3FSgGbQj0H2QHz9JFS11AGXtDjU5K28o52Ae8l1xZX+B/DWKibi/UPYL653ktrthv+oeB/Z5p3m37rOdfXvEgULtmOf/dnK4yxSFujoa+pUcr40tDcbiy+BPTrcAF0fqQYMOzlKlZzMJB63HqxWAVcwT5AW9l0v7+b3+/HSUqfVgao5IVpcVDB/9pv1aCIIB3vhZccGJwjY30mTLmvpBbqZAB9nwDX6L3c5jJlfeRvfFpPUcAAHKBTe6VTO7SJzXRpciGZRY7IfO0sIplVjsh1L84jmUeOyP3PQhbJvHJEob8+bCSLyBGFBAmTZFE5orAgcUzShRzhRJD4V9KVnHNIsrFYT6GkxJ4/YdQTQvZUTqcAAAAASUVORK5CYII=");
 }
+/* 对勾-圈 */
+.icon-tick-circle-fill {
+    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOuSURBVHgB7ZlPSBRRHMd/762oocUWgmJKIyWsQegePHRyN+nQba276VUhu3kwUA9BxwzqmtI53E5BYeqhk4ddCXRByJFUlKIWS/xDO6/fm3YHXebNvLezs3uZDww7s+/Nm+935r3fe/MbgICAgIBqQqBMRN6ntFAtJBiQbiAkhg2HGW75i2RxX2eM6BRyy7lTSGbuRXUoA54N3FxIDTESekiAxUCNNDBjZq0/OgseKNlA5GMqRkP0Ne5q4A0djUyXakTZgDafCjeEQ5OMscdQRggjzw9pblqPR7NK56lU5v2c1tF53O0Bf9CNEyOuMj6kDeTFL4L3LuOGkgkqU4l3mwqJNy/Hn7K2mArLVJYywPs8VEZ8gZ4Gw7ymK65diIdJIGa0qThGDrvS3eiSUx33J0Co1J3wg3yYdq7jVGje/Qp0nUTLZXOzQctrEFLjVEgIHWPgL6NaM4x0NFvHyb1f58r5LI8/s6LzhU+Ah03mX7w3KRZvB1+idH1euyYqFxoguDADH7G788V33+L4ZEDUjtgAhPrAJ+zET6x/E9YnFFe4AsQGCNPs/m+tr4UPtyPmFmmsB1VUxZswEhMVCQ0wQfTh0eIqmuDbbPQ69DddAllKEv8f4axMVU96hxfdPT419y/WhODFLQ0G25rAjWLxC98PZMULtXCklhJn2UHxQ6mvlgnOeGcrjDpEk2LxmT9H8CQjLd4RJwPCdbmdiREUaWfCTvwwnnvwNwcKCLWUZIDDTdxf2TAFFeAmnna1Wcd8vJRBPEcXFTgMYmMZXPiNQh6gieTeT+u/RMsVeNvbCYPtTWim3frfg3iuZUtURh3OSoMkE+vb8HJz3zqONF6A8Rut1jHvao++bJUkPq9lSVQkfgIUkqDAK33/nIkCu/nxsnNmvKjipEVoIBOP6rgOWQIFuIlnG7vWcTnEI2muRVTouBrNMTZHiXgWtOPN9g9YyR5Cb7jBnDNK7jZ5DMwdOZW7vpF1fVrdJJV9nbTg2bz1O90dTnVcJzKWM4ahSjBMeLnVcTVgvpO6PEY/YAxmMhLZOqmlRC2FKQD5sOoV3nWOqDElU1fKQBrTfQYxBpjDjFguzCw2MeKyKUbpxRwPZbxhP01g22l+DaewWYzSapQ3XEeMqB9jgvf5I0XxnNLT65juwKzFpNcQa3YZjHRuCSwRnj9wcCM42Y1hU0oZDIazPKbo5zLV+sBRTGQxpREDEgRIH7aqYdO4WW9SWXNjKBrYKivjJ6aAgICA6vIPiiaSgW3pn7sAAAAASUVORK5CYII=");
+}
+.icon-tick-circle {
+    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANySURBVHgB7VndUdtAEP5OsvPsDiIqiDMJmWEgg1VBTAVABZAKwBUEKghUEFKB7AmEBwg4FcTpgKc8YKTN7kk2MsPpx5asyUTfjHxne3W7e3u3u7cH1KhRo0aVUCgI3uWlA7/RVcp6BaIOCC0evaX/JNxxfyQPEQ0wfjhz3bURCsDCCngXP3YU0TZ3O8iHIang2F1/d4IFMLcC3rerjlLqM3cd/YPMsqXOyMcAtj/EfXPkuq/vNK1328KLMdPZbfg+v2d9mFoHbBUV9OZVJLcCIozVDA4ItD8VAHSMceNkInCmcULLHSCaAAV1FIytXp4xwvdywPMuHdVsfuFuW2acFPXcjdUjLADv/Gqfhf8UfR3ReOzm2R+ZFYiE9xDOWG5GZY1tZSGSZRNjMCxSeIGMJWPK2MJDrKz3TQZkUkDWPB5nZ6tI4SeIlNgSHvy0I56pSF1C0WYTbwNmsFKG8DP8wuV0y90WxwzXfb/aT6JPtUDkKXjP0seyhRdoS4B6mnfophORaIHY7I86G29XsET0z69/ceNwjNhNihGJFmDh96SVQIMlQ8cWLYO1nURnVEDWIsTfA3eLhvu5wIFRePPTubi5eWkiM1ug2eiGHXWGCiARmQJ8lf79H3/LRGdUQJHalJaUP0BlUH39KRmuAWYLqChJC4NLNfD9Ce+OiSRpEzv6k7NKVIaIN5ExKicpoF/Kmx0WiRjvuRT4J5CkwONhpCLEeBtXQaoC4UmqKkx5j0wURgXYB0/cZxtV4YWteXNU/m0iMVvAIu3CFOxNVAROZSa8+yYaswJc+tAtUbfCfdCdkeUZGBWIUuc+xIU1H3awZEgmjNB9DpPS+EQ3SkqdSsuH7j0sGdNzCNeOkugSFXDX35wg9ACOVA+wJAy+X8uEOcI7LRNODWR8rNuVlq1wEKXYpUJ4sAfUpZos55BUBeRMSgQxo65MlKlErLwC4ZnlHJItlXiwDzFT8iheiVjRzIEs25BnKv6PwpYgVnwaIbTEbREbWzasaugyioM5imZzFXfR8A+VwsS15q4u6zE4tkTu2ZHf9D7jZVNqcXdGiCfV5fASg8vr4RH0+fK6b7eVjU0E1J0pr7OnSytgFa7AE0VkJvMmfX223GllFxxPoT1TU66YuBhAbBV5Zq+YxELskoOfsPmKaa38Kl+NGjVqlI+/zO65Qdp3pJkAAAAASUVORK5CYII=");
+}
 
 /******** img背景图 **********/
 .j-img {

+ 4 - 0
src/jfw/modules/app/src/web/staticres/jyapp/js/searchindex.js

@@ -995,6 +995,10 @@ var SuperSearch = {
         console.log('没有筛选tab 01')
         $("#supersearchPage div[data-open='industry']").trigger('click')
         console.log('清空 01', sessionStorage.superSearch_shaxuan)
+        // 隐藏企业搜索
+        if (vEntSearchComponent) {
+          vEntSearchComponent.toggleEntShow(false)
+        }
         SuperSearch.filterWin = {}
         SuperSearch.filterBuy = {}
         $('#supersearchPage .list').find('.industry_item').removeClass('active');

+ 72 - 32
src/jfw/modules/app/src/web/templates/weixin/search/tabSearch.html

@@ -493,10 +493,11 @@
                 <div id="v-ent-ent-search-group" v-cloak>
                     <div v-show="showEntSearch">
                         <van-tabs @click="onClickTabs" :ellipsis="false" line-height="0" v-model="activeTabIndex">
-                            <van-tab v-for="tab in entTabs"  :key="tab.title" :disabled="tab.disabled">
+                            <van-tab v-for="tab in entTabs"  :key="tab.title">
                                 <template #title>
-                                    <div class="ent-search-tab-item" v-show="tab.title">
+                                    <div class="ent-search-tab-item" :class="{close: !showPop, 'disabled': tab.disabled}" v-show="tab.title">
                                         <span>@@ tab.title @@</span>
+                                        <div class="disabled-tag">开通</div>
                                         <div class="an-icon-box">
                                             <i class="j-icon base-icon icon-triangle-down"></i>
                                             <i class="j-icon base-icon icon-triangle-up"></i>
@@ -505,45 +506,76 @@
                                 </template>
                             </van-tab>
                         </van-tabs>
-                        <div class="ent-search-list" :class="{stop: showPop}">
-                            <div v-show="showPop" class="jy-diy-pop">
-                                <div @click="togglePop(false)" class="van-overlay"></div>
-                                <div class="van-popup">
-                                    <div class="pop-bottom">
-                                        <button>1</button>
-                                        <button>2</button>
+                        <div v-show="showPop" class="jy-diy-pop ent-search-pop">
+                            <div @click="togglePop(false)" class="van-overlay"></div>
+                            <div class="van-popup">
+                                <div class="popup-content">
+                                    <div class="wait-buy-tip-group" v-if="isWaitBuy">
+                                        <h3>您暂无使用权限</h3>
+                                        <p>开通超级订阅,全国企业随手查,<br>搜索信息更高效!</p>
                                     </div>
-                                </div>
-                            </div>
-                            <div class="ent-search-item" v-for="(item, i) in list" :key="i" @click="selectEnt(item)">
-                                <div class="ent-info-top">
-                                    <div class="ent-info-head">
-                                        <span class="ent-info-status" :class="'status-' + item.status">@@statusEnum[item.status]@@</span>
-                                    </div>
-                                    <div class="ent-info-keep">
-                                        <div class="ent-row">
-                                            <div class="ent-name van-ellipsis">@@item.name@@</div>
-                                            <div class="fill-icon-box">
-                                                <i class="j-icon base-icon icon-no-favorite"></i>
+                                    <div class="condition-select-group" :class="{more: isMoreSelect}" v-show="conditionMap[activeTabIndex]">
+                                        <div class="condition-select-item" @click="onSelectItem(item, activeTabIndex)" v-for="(item,i) in conditionMap[activeTabIndex]" :class="{checked: item.checked}">
+                                            <div>@@item.title@@</div>
+                                            <i v-if="!isMoreSelect" class="j-icon base-icon icon-tick"></i>
+                                            <div class="more-icon-box" v-else>
+                                                <i  class="j-icon base-icon icon-tick-circle"></i>
+                                                <i  class="j-icon base-icon icon-tick-circle-fill"></i>
                                             </div>
                                         </div>
-                                        <div class="ent-more">
-                                            <div>法定代表人: <span>@@item.legal@@</span></div>
-                                            <div>注册资本: <span>@@item.money@@</span></div>
-                                        </div>
-                                        <div class="ent-line-box"></div>
                                     </div>
                                 </div>
-                                <div class="ent-info-bottom">
-                                    <div  class="ent-row ent-address">
-                                        <div class="van-multi-ellipsis--l2">@@item.address@@</div>
-                                        <i class="j-icon base-icon icon-address"></i>
+                                <div class="pop-bottom" v-show="!isWaitBuy && isMoreSelect">
+                                    <van-button type="default" @click="resetCondition">重置</van-button>
+                                    <van-button type="primary" @click="submitCondition">确定</van-button>
+                                </div>
+                                <div class="pop-bottom" v-if="isWaitBuy">
+                                    <van-button type="default" @click="resetCondition">再想一想</van-button>
+                                    <van-button type="primary" @click="goUpBuyPage">去开通</van-button>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="ent-search-list" :class="{stop: showPop}">
+                            <van-list
+                                    v-model="listInfo.loading"
+                                    :finished="listInfo.finished"
+                                    finished-text=""
+                                    @load="onLoad"
+                            >
+                                <div class="ent-search-item" v-for="(item, i) in list" :key="i" @click="selectEnt(item)">
+                                    <div class="ent-info-top">
+                                        <div class="ent-info-head">
+                                            <span class="ent-info-status" :class="'status-' + item.status">@@statusEnum[item.status]@@</span>
+                                        </div>
+                                        <div class="ent-info-keep">
+                                            <div class="ent-row">
+                                                <div class="ent-name van-ellipsis">@@item.name@@</div>
+                                                <div class="fill-icon-box">
+                                                    <i class="j-icon base-icon icon-no-favorite"></i>
+                                                </div>
+                                            </div>
+                                            <div class="ent-more">
+                                                <div v-if="item.legal">法定代表人: <span>@@item.legal@@</span></div>
+                                                <div v-if="item.money">注册资本: <span>@@item.money@@万元</span></div>
+                                            </div>
+                                            <div class="ent-line-box"></div>
+                                        </div>
                                     </div>
+                                    <div class="ent-info-bottom">
+                                        <div  class="ent-row ent-address">
+                                            <div class="van-multi-ellipsis--l2">@@item.address@@</div>
+                                            <i class="j-icon base-icon icon-address"></i>
+                                        </div>
 
+                                    </div>
                                 </div>
+                            </van-list>
+                            <div class="empty-tip-group" v-if="!listInfo.loading && !list.length">
+                                <div class="img-empty"></div>
+                                <span>未搜索到符合条件的企业</span>
                             </div>
-                            <div class="up-button">升级会员,查看更多搜索结果</div>
-                            <div class="ent-more-tip">
+                            <div class="up-button" @click="goUpBuyPage" v-if="showUpTip">升级会员,查看更多搜索结果</div>
+                            <div class="ent-more-tip" v-if="false">
                                 <i class="j-icon base-icon icon-up-allow"></i>
                                 <span>上拉查看更多搜索结果</span>
                             </div>
@@ -1203,6 +1235,7 @@
     }
 
     function createSearchResultList () {
+
         var nowIndex = $(".tabs-box .tabs-nav .active").index()
         var nowInput = $("#search-header-input").val().trim()
         var outDom = nowIndex === 1 ? "#search-ent-list" : "#search-buyer-list"
@@ -1226,6 +1259,13 @@
             }, function (r) {
                 if (r && r.error_code === 0) {
                     var listData = r.data.list
+
+                    if (listData && listData.length) {
+                      if (vEntSearchComponent) {
+                        vEntSearchComponent.toggleEntShow(false)
+                      }
+                    }
+
                     var outHtml = createLiList(listData, nowInput)
                     $(outDom).html(outHtml).siblings().hide()
                     window.topSearchData[nowType] = nowInput

+ 199 - 5
src/web/staticres/common-module/ent-search/ent-search-template.css

@@ -1,6 +1,6 @@
 #v-ent-ent-search-group {
   display: block !important;
-  background-color: rgba(0, 0, 0, 0.05);
+  background-color: #f5f6f7;
 }
 
 #v-ent-ent-search-group .ent-search-item {
@@ -120,7 +120,7 @@
 .ent-line-box {
   margin-top: 0.24rem;
   width: 4.22rem;
-  height: 0.02rem;
+  height: 0.01rem;
   background: rgba(0, 0, 0, 0.05);
   border-radius: 0.08rem;
 }
@@ -137,7 +137,7 @@
 }
 
 .up-button {
-  margin: 0 auto;
+  margin: 0.48rem auto;
   display: flex;
   flex-direction: column;
   align-items: center;
@@ -214,8 +214,38 @@
   padding: 0.24rem 0.38rem;
 }
 
+#v-ent-ent-search-group .ent-search-tab-item .disabled-tag {
+  display: none;
+  width: 0.64rem;
+  height: 0.32rem;
+  border: 0.02rem solid #FB483D;
+  box-sizing: border-box;
+  border-radius: 0.16rem;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  text-align: center;
+  font-size: 0.2rem;
+  line-height: 0.32rem;
+  color: #FB483D;
+  margin: 0 0.04rem;
+}
+
+#v-ent-ent-search-group .ent-search-tab-item.disabled {
+  color: #C0C4CC !important;
+}
+
+#v-ent-ent-search-group .ent-search-tab-item.disabled .disabled-tag {
+  display: inline-block;
+}
+
 #v-ent-ent-search-group .van-tabs--line .van-tabs__wrap::after {
-  border: none;
+  border-width: 0;
+  border-bottom-width: 1px;
+}
+
+#v-ent-ent-search-group .van-tab--active .ent-search-tab-item {
+  color: #2ABED1;
 }
 
 #v-ent-ent-search-group .van-tab--active .ent-search-tab-item .icon-triangle-up {
@@ -226,6 +256,18 @@
   opacity: 0;
 }
 
+#v-ent-ent-search-group .van-tab--active .ent-search-tab-item.close {
+  color: #5F5E64;
+}
+
+#v-ent-ent-search-group .van-tab--active .ent-search-tab-item.close .icon-triangle-up {
+  opacity: 0;
+}
+
+#v-ent-ent-search-group .van-tab--active .ent-search-tab-item.close .icon-triangle-down {
+  opacity: 1;
+}
+
 #v-ent-ent-search-group .ent-search-list {
   overflow-y: auto;
   position: relative;
@@ -235,6 +277,14 @@
   overflow: hidden;
 }
 
+#v-ent-ent-search-group .jy-diy-pop {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  height: unset;
+}
+
 #v-ent-ent-search-group .jy-diy-pop .van-overlay {
   position: absolute;
 }
@@ -248,8 +298,152 @@
   z-index: 2;
 }
 
+#v-ent-ent-search-group .jy-diy-pop .popup-content {
+  max-height: 40vh;
+  overflow-y: auto;
+}
+
+#v-ent-ent-search-group .empty-tip-group {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.28rem;
+  line-height: 0.4rem;
+  color: #5F5E64;
+}
+
+#v-ent-ent-search-group .empty-tip-group .img-empty {
+  width: 3.2rem;
+  height: 3.2rem;
+  margin-bottom: 0.24rem;
+  margin-top: 1.76rem;
+}
+
+#v-ent-ent-search-group .wait-buy-tip-group {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  padding: 0.96rem 0;
+  border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
+}
+
+#v-ent-ent-search-group .wait-buy-tip-group h3 {
+  font-size: 0.36rem;
+  line-height: 0.52rem;
+  color: #171826;
+  margin-bottom: 0.16rem;
+}
+
+#v-ent-ent-search-group .wait-buy-tip-group p {
+  font-size: 0.3rem;
+  line-height: 0.44rem;
+  text-align: center;
+  color: #5F5E64;
+}
+
+#v-ent-ent-search-group .condition-select-group {
+  padding-left: 0.32rem;
+}
+
+#v-ent-ent-search-group .condition-select-group.more .condition-select-item .more-icon-box {
+  position: relative;
+  width: 0.48rem;
+  height: 0.48rem;
+}
+
+#v-ent-ent-search-group .condition-select-group.more .condition-select-item .more-icon-box .j-icon {
+  top: 0;
+  left: 0;
+  position: absolute;
+}
+
+#v-ent-ent-search-group .condition-select-group.more .condition-select-item .icon-tick-circle-fill {
+  opacity: 0;
+}
+
+#v-ent-ent-search-group .condition-select-group.more .condition-select-item .icon-tick-circle {
+  opacity: 1;
+}
+
+#v-ent-ent-search-group .condition-select-group.more .condition-select-item.checked .icon-tick-circle-fill {
+  opacity: 1;
+}
+
+#v-ent-ent-search-group .condition-select-group.more .condition-select-item.checked .icon-tick-circle {
+  opacity: 0;
+}
+
+#v-ent-ent-search-group .condition-select-group .condition-select-item {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0.24rem 0.32rem;
+  padding-left: 0;
+  border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.28rem;
+  line-height: 0.4rem;
+  color: #5F5E64;
+}
+
+#v-ent-ent-search-group .condition-select-group .condition-select-item .j-icon {
+  opacity: 0;
+  width: 0.48rem;
+  height: 0.48rem;
+  transition: all 0.2s;
+}
+
+#v-ent-ent-search-group .condition-select-group .condition-select-item.checked {
+  color: #2ABED1;
+}
+
+#v-ent-ent-search-group .condition-select-group .condition-select-item.checked .j-icon {
+  opacity: 1;
+}
+
+#v-ent-ent-search-group .pop-bottom {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0.16rem 0.32rem;
+}
+
+#v-ent-ent-search-group .pop-bottom > .van-button {
+  flex: 1;
+  font-family: PingFang SC;
+  font-style: normal;
+  font-weight: 500;
+  font-size: 0.32rem;
+  line-height: 0.48rem;
+  color: #5F5E64;
+  background: #EDEFF2;
+  border-radius: 4px;
+}
+
+#v-ent-ent-search-group .pop-bottom > .van-button--primary {
+  color: #fff;
+  border-color: #2ABED1;
+  background-color: #2ABED1;
+}
+
+#v-ent-ent-search-group .pop-bottom > .van-button + .van-button {
+  margin-left: 0.26rem;
+}
+
 .ent-stop-scroll {
-  overflow: hidden;
+  overflow: hidden !important;
 }
 
 /*# sourceMappingURL=ent-search-template.css.map */

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
src/web/staticres/common-module/ent-search/ent-search-template.css.map


+ 356 - 68
src/web/staticres/common-module/ent-search/ent-search-template.js

@@ -1,104 +1,392 @@
 var vEntSearchComponent = new Vue({
   el: '#v-ent-ent-search-group',
   delimiters: ['@@', '@@'],
-  data: {
-    showEntSearch: false,
-    showPop: true,
-    activeTabIndex: 0,
-    entTabs: [
-      {
-        title: ''
+  data: function () {
+    return {
+      showEntSearch: false,
+      showPop: false,
+      showUpTip: false,
+      listInfo: {
+        value: '',
+        pageNum: 0,
+        pageSize: 10,
+        total: -1,
+        loading: true,
+        finished: false
       },
-      {
-        title: '搜索范围'
+      activeTabIndex: 0,
+      entTabs: [
+        {
+          title: ''
+        },
+        {
+          title: '搜索范围'
+        },
+        {
+          title: '注册地'
+        },
+        {
+          title: '注册资本'
+        },
+        {
+          title: '企业类型'
+        },
+        {
+          title: '企业状态'
+        },
+        {
+          title: '中标区域',
+          disabled: true
+        },
+        {
+          title: '单位类型'
+        },
+        {
+          title: '联系方式'
+        }
+      ],
+      statusEnum: ['存续', '吊销', '停业', '撤销'],
+      list: [],
+      conditionMap: {
+        1: [
+          {
+            title: '企业名称',
+            checked: false,
+            key: 'A'
+          },
+          {
+            title: '法定代表人',
+            checked: false,
+            key: 'B'
+          },
+          {
+            title: '股东',
+            checked: false,
+            key: 'C'
+          },
+          {
+            title: '高管',
+            checked: false,
+            key: 'D'
+          },
+          {
+            title: '中标项目/标的物',
+            checked: false,
+            key: 'E'
+          }
+        ],
+        4: [
+          {
+            title: '有限责任公司',
+            checked: false,
+            key: 'A'
+          },
+          {
+            title: '股份有限公司',
+            checked: false,
+            key: 'B'
+          },
+          {
+            title: '有限合伙',
+            checked: false,
+            key: 'C'
+          },
+          {
+            title: '普通合伙',
+            checked: false,
+            key: 'D'
+          }
+        ],
+        5: [
+          {
+            title: '存续(在营、开业、在业)',
+            checked: false,
+            key: 'A'
+          },
+          {
+            title: '吊销',
+            checked: false,
+            key: 'B'
+          },
+          {
+            title: '注销',
+            checked: false,
+            key: 'C'
+          },
+          {
+            title: '撤销',
+            checked: false,
+            key: 'D'
+          }
+        ],
+        7: [
+          {
+            title: '全部单位类型',
+            checked: true,
+            key: ''
+          },
+          {
+            title: '采购单位',
+            checked: false,
+            key: '1'
+          },
+          {
+            title: '投标企业',
+            checked: false,
+            key: '2'
+          },
+          {
+            title: '招标代理机构',
+            checked: false,
+            key: '3'
+          },
+          {
+            title: '厂商',
+            checked: false,
+            key: '4'
+          }
+        ],
+        8: [
+          {
+            title: '全部联系方式',
+            checked: true,
+            key: ''
+          },
+          {
+            title: '固定电话',
+            checked: false,
+            key: '1'
+          },
+          {
+            title: '手机号',
+            checked: false,
+            key: '2'
+          },
+          {
+            title: '电子邮箱',
+            checked: false,
+            key: '3'
+          },
+          {
+            title: '无联系方式',
+            checked: false,
+            key: '4'
+          }
+        ]
       },
-      {
-        title: '注册地'
-      },
-      {
-        title: '注册资本'
-      },
-      {
-        title: '企业类型'
-      },
-      {
-        title: '企业状态'
-      },
-      {
-        title: '中标区域'
-      },
-      {
-        title: '单位类型'
-      },
-      {
-        title: '联系方式'
-      }
-    ],
-    statusEnum: ['存续', '吊销', '停业', '撤销'],
-    list: [
-      {
-        name: '北京剑鱼信息技术有限公司北京剑鱼信息技术有限公司北京剑鱼信息技术有限公司北京剑鱼信息技术有限公司',
-        legal: '贾新',
-        money: '1000万元',
-        address: '北京市朝阳区北四环中路华严北里健翔3号地峻峰华亭嘉园C座2011号北京市朝阳区北四环中路华严北里健翔3号地峻峰华亭嘉园C座2011号北京市朝阳区北四环中路华严北里健翔3号地峻峰华亭嘉园C座2011号',
-        status: 0,
-        checked: false
-      },
-      {
-        name: '北京剑鱼信息技术有限公司',
-        legal: '贾新',
-        money: '1000万元',
-        address: '北京市朝阳区北四环中路华严北里健翔3号地峻峰华亭嘉园C座2011号',
-        status: 1,
-        checked: true
-      },
-      {
-        name: '北京剑鱼信息技术有限公司',
-        legal: '贾新',
-        money: '1000万元',
-        address: '北京市朝阳区北四环中路华严北里健翔3号地峻峰华亭嘉园C座2011号',
-        status: 2,
-        checked: false
-      },
-      {
-        name: '北京剑鱼信息技术有限公司',
-        legal: '贾新',
-        money: '1000万元',
-        address: '北京市朝阳区北四环中路华严北里健翔3号地峻峰华亭嘉园C座2011号',
-        status: 3,
-        checked: false
+      conditionStrMap: {
+        matchType: '',
+        entArea: '',
+        entCity: '',
+        entCapital: '',
+        entType: '',
+        entStatus: '',
+        biddingArea: '',
+        entClass: '',
+        entContact: ''
       }
-    ]
+    }
+  },
+  computed: {
+    getMatchType () {
+      return this.condition1.filter(function (v) {
+        return v.checked
+      }).map(function (v) {
+        return v.key
+      }).join(',')
+    },
+    isMoreSelect () {
+      return this.activeTabIndex < 7
+    },
+    isWaitBuy () {
+      return this.entTabs[this.activeTabIndex].disabled
+    },
+
   },
   methods: {
+    getMoreListToStr (key) {
+      if (typeof this.conditionMap[key] !== "undefined" && this.conditionMap[key].length) {
+        return this.conditionMap[key].filter(function (v) {
+          return v.checked
+        }).map(function (v) {
+          return v.key
+        }).join(',')
+      }
+      return ''
+    },
+    changeConditionStrMap (i) {
+      switch (i) {
+        case 1 : {
+          this.conditionStrMap.matchType = this.getMoreListToStr(1)
+          break
+        }
+        case 4 : {
+          this.conditionStrMap.entType = this.getMoreListToStr(4)
+          break
+        }
+        case 5 : {
+          this.conditionStrMap.entStatus = this.getMoreListToStr(5)
+          break
+        }
+        case 7 : {
+          this.conditionStrMap.entClass = this.getMoreListToStr(7)
+          break
+        }
+        case 8 : {
+          this.conditionStrMap.entContact = this.getMoreListToStr(8)
+          break
+        }
+      }
+    },
+    goUpBuyPage () {
+
+    },
+    getSearchParams () {
+      var tempParams = {
+        match: this.listInfo.value,
+        pageSize: this.listInfo.pageSize,
+        pageNum: this.listInfo.pageNum
+      }
+      for (var k in this.conditionStrMap) {
+        if (this.conditionStrMap[k]) {
+          tempParams[k] = this.conditionStrMap[k]
+        }
+      }
+      return tempParams
+    },
+    onLoad () {
+      this.ajaxEntList().done(this.doFormatList.bind(this))
+    },
+    doFormatList (r) {
+      if (r && r.error_msg == '' && r.data) {
+        this.listInfo.pageNum++
+        if (this.listInfo.pageNum === 1) {
+          if (r.data.total || r.data.total === 0) {
+            this.listInfo.total = r.data.total
+            this.showUpTip = false
+          } else {
+            this.showUpTip = true
+            this.listInfo.finished = true
+          }
+        }
+
+        if (r.data.list) {
+          var _this = this
+          this.list = this.list.concat(r.data.list.map(function (v) {
+            return {
+              name: v.company_name,
+              legal: v.legal_person,
+              money: v.capital,
+              address: v.company_address,
+              _id: v.id,
+              status: _this.statusEnum.indexOf(v.company_status) || 0,
+              checked: false
+            }
+          }))
+        }
+
+        this.listInfo.loading = false
+        if (this.listInfo.total !== -1 && this.listInfo.total <= this.list.length) {
+          this.listInfo.finished = true
+        }
+      }
+    },
+    ajaxEntList() {
+      return $.ajax({
+        url: '/publicapply/enterpriseSearch/doQuery',
+        type: 'POST',
+        contentType: 'application/x-www-form-urlencoded',
+        data: this.getSearchParams(),
+        dataType: 'json'
+      })
+    },
+
+    doQueryList () {
+      this.listInfo.pageNum = 0
+      this.listInfo.total = -1
+      this.listInfo.finished = false
+      this.listInfo.loading = true
+      this.listInfo.value = $("#search-header-input").val()
+      this.list = []
+      this.onLoad()
+    },
+    resetCondition () {
+      this.resetValueForData(this.activeTabIndex)
+      this.togglePop(false)
+      this.changeConditionStrMap(this.activeTabIndex)
+      this.doQueryList()
+    },
+    submitCondition () {
+      console.log('submit', this.activeTabIndex)
+      this.changeConditionStrMap(this.activeTabIndex)
+      this.togglePop(false)
+      this.doQueryList()
+    },
+    resetValueForData (key) {
+      if (typeof this.conditionMap[key] !== "undefined") {
+        var defalutKey = this.$options.data().conditionMap[key]
+        this.$set(this.conditionMap, key, defalutKey)
+      }
+    },
     removeFixedScroll () {
       $(".app-layout-content-b").scrollTop(0)
       $(".app-layout-content-b").removeClass('ent-stop-scroll')
       $(".ent-search-list").css({height: 'unset'})
+      $(".ent-search-pop").css({height: 'unset'})
     },
     fixedScroll () {
       $(".app-layout-content-b").scrollTop(0)
       $(".app-layout-content-b").addClass('ent-stop-scroll')
       var isMaxHeight = $(".app-layout-content-b").height() - $(".tabs-nav").height() - $(".van-tabs.van-tabs--line").height()
       $(".ent-search-list").css({height: isMaxHeight})
+      $(".ent-search-pop").css({height: isMaxHeight})
     },
     selectEnt (ent) {
       console.log(ent)
+      sessionStorage.setItem('home_top_search_tab_index', $(".tabs-nav .active").index())
+      saveSearchHistory('ent', ent.name, ent._id)
+      sessionStorage.setItem('landentinfo', JSON.stringify({
+        anchor: '企业全景分析',
+        landname: ent.name
+      }))
+      SuperSearch.setSessionStorage()
+      if(!isMember){
+        location.href = "/jyapp/big/page/landingPage"
+      }else{
+        location.href = "/jyapp/big/page/ent_portrait?eId="+encodeURIComponent(ent._id)
+      }
     },
     onClickTabs (name, title) {
       console.log(name, title)
       this.togglePop(true)
     },
+    onSelectItem (item, index) {
+      if (index < 7) {
+        item.checked = !item.checked
+      } else {
+        this.conditionMap[index].forEach(function (v) {
+          v.checked = false
+        })
+        item.checked = true
+        this.submitCondition()
+      }
+    },
     togglePop (type) {
       this.showPop = type
     },
     toggleEntShow (type) {
       this.showEntSearch = type
       if (type) {
-        this.fixedScroll()
-      } else {
-        this.removeFixedScroll()
+        this.doQueryList()
       }
+      var _this = this
+      this.$nextTick(function () {
+        if (type) {
+          _this.fixedScroll()
+        } else {
+          _this.removeFixedScroll()
+        }
+      })
     }
   }
 })

+ 179 - 5
src/web/staticres/common-module/ent-search/ent-search-template.scss

@@ -1,6 +1,6 @@
 #v-ent-ent-search-group {
   display: block !important;
-  background-color: rgba(0, 0, 0, 0.05);
+  background-color: #f5f6f7;
 }
 #v-ent-ent-search-group .ent-search-item {
   margin-top: 8px;
@@ -103,7 +103,7 @@
 .ent-line-box {
   margin-top: 0.24rem;
   width: 4.22rem;
-  height: 0.02rem;
+  height: 0.01rem;
   background: rgba(0, 0, 0, 0.05);
   border-radius: 0.08rem;
 }
@@ -118,7 +118,7 @@
   margin-right: 0.32rem;
 }
 .up-button {
-  margin: 0 auto;
+  margin: 0.48rem auto;
   display: flex;
   flex-direction: column;
   align-items: center;
@@ -189,19 +189,52 @@
     line-height: 0.4rem;
     color: #5F5E64;
     padding: 0.24rem 0.38rem;
+    .disabled-tag {
+      display: none;
+      width: 0.64rem;
+      height: 0.32rem;
+      border: 0.02rem solid #FB483D;
+      box-sizing: border-box;
+      border-radius: 0.16rem;
+      font-family: PingFang SC;
+      font-style: normal;
+      font-weight: 500;
+      text-align: center;
+      font-size: 0.2rem;
+      line-height: 0.32rem;
+      color: #FB483D;
+      margin: 0 0.04rem;
+    }
+    &.disabled {
+      color: #C0C4CC !important;
+      .disabled-tag {
+        display: inline-block;
+      }
+    }
   }
   .van-tabs--line .van-tabs__wrap::after {
-    border: none;
+    border-width: 0;
+    border-bottom-width: 1px;
   }
 
   .van-tab--active {
     .ent-search-tab-item {
+      color: #2ABED1;
       .icon-triangle-up {
         opacity: 1;
       }
       .icon-triangle-down {
         opacity: 0;
       }
+      &.close {
+        color: #5F5E64;
+        .icon-triangle-up {
+          opacity: 0;
+        }
+        .icon-triangle-down {
+          opacity: 1;
+        }
+      }
     }
   }
   .ent-search-list {
@@ -212,6 +245,11 @@
     }
   }
   .jy-diy-pop {
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    width: 100%;
+    height: unset;
     .van-overlay {
       position: absolute;
     }
@@ -223,9 +261,145 @@
       background-color: #fff;
       z-index: 2;
     }
+    .popup-content {
+      max-height: 40vh;
+      overflow-y: auto;
+    }
+  }
+
+  .empty-tip-group {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    font-family: PingFang SC;
+    font-style: normal;
+    font-weight: 500;
+    font-size: 0.28rem;
+    line-height: 0.4rem;
+    color: #5F5E64;
+    .img-empty {
+      width: 3.2rem;
+      height: 3.2rem;
+      margin-bottom: 0.24rem;
+      margin-top: 1.76rem;
+    }
+  }
+
+  .wait-buy-tip-group {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    font-family: PingFang SC;
+    font-style: normal;
+    font-weight: 500;
+    padding: 0.96rem 0;
+    border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
+    h3 {
+      font-size: 0.36rem;
+      line-height: 0.52rem;
+      color: #171826;
+      margin-bottom: 0.16rem;
+    }
+    p {
+      font-size: 0.3rem;
+      line-height: 0.44rem;
+      text-align: center;
+      color: #5F5E64;
+    }
+  }
+
+  .condition-select-group {
+    padding-left: 0.32rem;
+    &.more {
+      .condition-select-item {
+        .more-icon-box {
+          position: relative;
+          width: 0.48rem;
+          height: 0.48rem;
+          .j-icon {
+            top: 0;
+            left: 0;
+            position: absolute;
+          }
+        }
+        .icon-tick-circle-fill {
+          opacity: 0;
+        }
+        .icon-tick-circle {
+          opacity: 1;
+        }
+        &.checked {
+          .icon-tick-circle-fill {
+            opacity: 1;
+          }
+          .icon-tick-circle {
+            opacity: 0;
+          }
+        }
+      }
+    }
+    .condition-select-item {
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+      justify-content: space-between;
+      padding: 0.24rem 0.32rem;
+      padding-left: 0;
+      border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
+      font-family: PingFang SC;
+      font-style: normal;
+      font-weight: 500;
+      font-size: 0.28rem;
+      line-height: 0.4rem;
+      color: #5F5E64;
+      .j-icon {
+        opacity: 0;
+        width: 0.48rem;
+        height: 0.48rem;
+        transition: all 0.2s;
+      }
+      &.checked {
+        color: #2ABED1;
+        .j-icon {
+          opacity: 1;
+        }
+      }
+    }
+  }
+
+  .pop-bottom {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    justify-content: space-between;
+    padding: 0.16rem 0.32rem;
+    > .van-button {
+      flex: 1;
+
+      font-family: PingFang SC;
+      font-style: normal;
+      font-weight: 500;
+      font-size: 0.32rem;
+      line-height: 0.48rem;
+      color: #5F5E64;
+      background: #EDEFF2;
+      border-radius: 4px;
+      &--primary {
+        color: #fff;
+        border-color: #2ABED1;
+        background-color: #2ABED1;
+      }
+
+
+      & + .van-button {
+        margin-left: 0.26rem;
+      }
+    }
   }
 }
 
 .ent-stop-scroll {
-  overflow: hidden;
+  overflow: hidden !important;
 }

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio