Sfoglia il codice sorgente

慕测排行榜logo变成配置项,并通过权限控制显示我的众测中的导出任务、可接收项目、处理中项目,修正更多热门任务界面的布局

郭超 4 anni fa
parent
commit
533febcee0

+ 1 - 1
src/App.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="body-content">
-    <home-slice v-if="showSlice && this.$env === 'private'"/>
+    <home-slice v-if="this.$env === 'private'"/>
     <home-slice-online v-else/>
     <header-container/>
     <div class="container-wrapper">

+ 9 - 9
src/components/Mine.vue

@@ -14,11 +14,11 @@
         <div class="project-statistics-card-title">我的项目数</div>
         <div class="project-statistics-card-number">{{ statisticData.myProjectCount || 0 }}</div>
       </el-card>
-      <el-card shadow="hover" v-if="showCreateData" class="project-statistics-card">
+      <el-card shadow="hover" v-if="showCreateData && (rolesPermissions.isRegionManager || rolesPermissions.isSystemAdministrator)" class="project-statistics-card">
         <div class="project-statistics-card-title">处理中项目数</div>
         <div class="project-statistics-card-number">{{ statisticData.handlingProjectCount || 0 }}</div>
       </el-card>
-      <el-card shadow="hover" v-if="showCreateData" class="project-statistics-card">
+      <el-card shadow="hover" v-if="showCreateData && (rolesPermissions.isRegionManager || rolesPermissions.isSystemAdministrator)"  class="project-statistics-card">
         <div class="project-statistics-card-title">可接收项目数</div>
         <div class="project-statistics-card-number">{{ statisticData.acceptableProjectCount || 0 }}</div>
       </el-card>
@@ -82,9 +82,9 @@
         </el-tab-pane>
         <el-tab-pane name="handlingProject">
           <span slot="label">
-            <el-badge v-if="processProjectNoticeCount>0" :value="processProjectNoticeCount" class="item"
+            <el-badge v-if="processProjectNoticeCount>0  && (rolesPermissions.isRegionManager || rolesPermissions.isSystemAdministrator)" :value="processProjectNoticeCount" class="item"
                       style="margin-top: 10px;margin-bottom: 25px; font-size: 16px;">处理中项目</el-badge>
-            <el-badge v-if="processProjectNoticeCount==null || processProjectNoticeCount==0" class="item"
+            <el-badge v-if="(processProjectNoticeCount==null || processProjectNoticeCount==0) && (rolesPermissions.isRegionManager || rolesPermissions.isSystemAdministrator)" class="item"
                       style="margin-top: 10px;margin-bottom: 25px; font-size: 16px;">处理中项目</el-badge>
           </span>
           <el-row v-if="handlingProjects != null && handlingProjects.length != 0" type="flex" align="middle"
@@ -102,9 +102,9 @@
         </el-tab-pane>
         <el-tab-pane name="acceptableProject">
           <span slot="label">
-            <el-badge v-if="acceptableProjectNoticeCount>0" :value="acceptableProjectNoticeCount" class="item"
+            <el-badge  v-if="acceptableProjectNoticeCount>0 && (rolesPermissions.isRegionManager || rolesPermissions.isSystemAdministrator)" :value="acceptableProjectNoticeCount" class="item"
                       style="margin-top: 10px;margin-bottom: 25px; font-size: 16px;">可接收项目</el-badge>
-            <el-badge v-if="acceptableProjectNoticeCount==null || acceptableProjectNoticeCount==0" class="item"
+            <el-badge  v-if="(acceptableProjectNoticeCount==null || acceptableProjectNoticeCount==0) && (rolesPermissions.isRegionManager || rolesPermissions.isSystemAdministrator)" class="item"
                       style="margin-top: 10px;margin-bottom: 25px; font-size: 16px;">可接收项目</el-badge>
           </span>
           <el-row v-if="acceptableProjects != null && acceptableProjects.length != 0" type="flex" align="middle"
@@ -122,7 +122,7 @@
         </el-tab-pane>
       </el-tabs>
 
-      <el-button type="primary" size='mini' class="input-task-btn" @click="showImportTaskModal = true">导入任务</el-button>
+      <el-button type="primary" size='mini' class="input-task-btn" v-if="rolesPermissions.isRegionManager || rolesPermissions.isSystemAdministrator" @click="showImportTaskModal = true">导入任务</el-button>
       <el-dialog
         title="上传任务资源包"
         :visible.sync="showImportTaskModal"
@@ -281,13 +281,13 @@ export default {
       formData.append('file', param.file)
       Http.upload(Apis.FILE.TASK_IMPORT, formData, config).then((res) => {
         this.hideLoading()
-        notify('success', '导入任务成功')
+        notify('success', '任务导入成功')
         this.taskJson.push(res.data)
         this.showImportTaskModal = false;
         this.loadData()
       }).catch((error) => {
         this.hideLoading()
-        notify('error', '导入任务失败:' + error.data)
+        notify('error', '任务导入失败:' + error.data)
       })
     },
 

+ 4 - 4
src/components/commons/Header2.0.vue

@@ -62,10 +62,10 @@
               </router-link>
             </li>
 
-<!--            <span v-if="isLogin&&(rolesPermissions.isSystemAdministrator || rolesPermissions.isRegionManager)">&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;</span>-->
-<!--            <li v-if="isLogin&&(rolesPermissions.isSystemAdministrator || rolesPermissions.isRegionManager)">-->
-<!--              <a :href="manage_url" v-if="manage_url">后台管理</a>-->
-<!--            </li>-->
+            <span v-if="isLogin&&(rolesPermissions.isSystemAdministrator || rolesPermissions.isRegionManager)">&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;</span>
+            <li v-if="isLogin&&(rolesPermissions.isSystemAdministrator || rolesPermissions.isRegionManager)">
+              <a :href="manage_url" v-if="manage_url" target="_blank">后台管理</a>
+            </li>
           </ul>
         </div>
     </div>

+ 6 - 4
src/pages/DetailPage/CrowdDetail.vue

@@ -4,10 +4,7 @@
       <!--搜索框-->
       <el-row class="container search-nav" style="padding: 30px 0 20px 0" :gutter="40">
         <el-col :span="5">
-          <div class="pull-left to-mooctest-ranking" @click="handleLogoClick">
-            <!--            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>-->
-            <!--            <span class="logo-title">{{ logoTitle }}</span>-->
-          </div>
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
         <el-col :span="15">
           <div class="search-nav-input">
@@ -85,6 +82,8 @@
       return {
         logoTitle:CONFIG.logoTitle,
         logo_transparent:CONFIG.logo_transparent,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
         user: {},
         loading: false,
         isLogin: false,
@@ -115,6 +114,9 @@
         this.getCrowdProject();
         this.hideLoading();
       },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
       getCrowdProject() {
         let params = {
           "keyword": this.searchVal,//搜索关键字

+ 199 - 206
src/pages/Homepage/Homepage.vue

@@ -4,17 +4,11 @@
       <!--搜索框-->
       <el-row class="container search-nav" style="padding: 30px 0 20px 0" :gutter="40">
         <el-col :span="5">
-          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' +logo_transparent+ ')'}" @click="handleLogoClick">
-<!--            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>-->
-<!--            <span class="logo-title">{{ logoTitle }}</span>-->
+          <div class="pull-left">
+            <img class="logo-img" :src="logo_background" :to="'/home'"/>
+            <span class="logo-title">{{ logoTitle }}</span>
           </div>
         </el-col>
-<!--        <el-col :span="5">-->
-<!--          <div class="pull-left logo-block" @click="handleLogoClick">-->
-<!--            <img class="logo-img" :src="logo_transparent"/>-->
-<!--            <div class="logo-title">{{ logoTitle }}</div>-->
-<!--          </div>-->
-<!--        </el-col>-->
 
         <el-col :span="15">
           <div class="search-nav-input">
@@ -56,16 +50,16 @@
           <RankingCard></RankingCard>
           <TestCard :applicationTypeList="homeData.applicationTypeList" v-if="HOME_DISPLAY.test_card && homeData.applicationTypeList"></TestCard>
           <el-row style="margin-top: 10px" v-if="HOME_DISPLAY.resource_and_tool">
-            <ResourceAndTool :resourceList="homeDataNoCache.toolList && homeDataNoCache.toolList"></ResourceAndTool>
+            <ResourceAndTool :resourceList="homeData.toolList && homeData.toolList"></ResourceAndTool>
           </el-row>
           <el-row>
             <BrandCard :residentAgencyList="homeData.residentAgencyList" v-if="HOME_DISPLAY.brand_card && homeData.residentAgencyList"></BrandCard>
           </el-row>
         </el-col>
-
         <el-col :span="5" class="homepage-right-modules">
           <LoginCard v-if="HOME_DISPLAY.login_card"/>
-          <PopularTask :hotCrowdTaskVOs="homeData.taskList" v-if="HOME_DISPLAY.hot_task"/>
+          <PopularProject :hotCrowdTestProjectVOs="homeDataNoCache.projectList" v-if="HOME_DISPLAY.hot_project"/>
+          <PopularTask :hotCrowdTaskVOs="homeDataNoCache.taskList" v-if="HOME_DISPLAY.hot_task"/>
           <HotCrowd :applicationTypeRank="homeDataNoCache.applicationTypeRank" v-if="HOME_DISPLAY.hot_crowd"/>
           <HotAgency :agencyRank="homeDataNoCache.agencyRank" v-if="HOME_DISPLAY.hot_agency"/>
           <HotUser :userRank="homeDataNoCache.userRank" v-if="HOME_DISPLAY.hot_user"/>
@@ -78,226 +72,225 @@
 </template>
 
 <script>
-// import commonData from '../../constants/tabMenu'
-import SearchBar from '../../components/commons/SearchBar'
-import TestMenu from './TestMenu'
-import LoginCard from './LoginCard'
-import BrandCard from './BrandCard'
-import ResourceAndTool from './ResourceAndTool'
-import TestCard from './TestCard'
-import InstitutionCard from './InstitutionCard'
-import HotCrowd from './HotCrowd'
-import HotAgency from './HotAgency'
-import HotUser from './HotUser'
-import RankingCard from './RankingCard'
-import HotContest from './HotContest'
-import PopularTask from '../Square/PopularTask'
-import PopularProject from '../Square/PopularProject'
-import Http from '@/js/http.js'
-import {mapGetters} from 'vuex'
-import Waterfall from 'vue-waterfall/lib/waterfall'
-import WaterfallSlot from 'vue-waterfall/lib/waterfall-slot'
-import {getAllFields, storageGet} from '@/js/index.js'
-import {notify} from "../../constants";
-import Apis from '@/js/api'
-import {CONFIG} from "../../config";
+  // import commonData from '../../constants/tabMenu'
+  import SearchBar from '../../components/commons/SearchBar'
+  import TestMenu from './TestMenu'
+  import LoginCard from './LoginCard'
+  import BrandCard from './BrandCard'
+  import ResourceAndTool from './ResourceAndTool'
+  import TestCard from './TestCard'
+  import InstitutionCard from './InstitutionCard'
+  import HotCrowd from './HotCrowd'
+  import HotAgency from './HotAgency'
+  import HotUser from './HotUser'
+  import RankingCard from './RankingCard'
+  import HotContest from './HotContest'
+  import PopularTask from '../Square/PopularTask'
+  import PopularProject from '../Square/PopularProject'
+  import Http from '@/js/http.js'
+  import {mapGetters} from 'vuex'
+  import Waterfall from 'vue-waterfall/lib/waterfall'
+  import WaterfallSlot from 'vue-waterfall/lib/waterfall-slot'
+  import {getAllFields, storageGet} from '@/js/index.js'
+  import {notify} from "../../constants";
+  import Apis from '@/js/api'
+  import {CONFIG} from "../../config";
 
-// console.log(commonData);
-export default {
-  name: 'Homepage',
-  components: {
-    HotCrowd,
-    HotContest,
-    HotUser,
-    HotAgency,
-    PopularTask,
-    InstitutionCard,
-    SearchBar,
-    TestMenu,
-    PopularProject,
-    LoginCard,
-    RankingCard,
-    TestCard,
-    BrandCard,
-    ResourceAndTool,
-    Waterfall,
-    WaterfallSlot
-    // vueWaterfallEasy
-  },
-  data() {
-    return {
-      logoTitle:CONFIG.logoTitle,
-      HOME_DISPLAY:CONFIG.HOME_DISPLAY,
-      logo_transparent:CONFIG.logo_transparent,
-      background_image: CONFIG.background_image,
-      user: {},
-      isLogin: false,
-      searchType: CONFIG.home_searchType,
-      searchTypeArr: CONFIG.home_searchTypeArr,
-      searchVal: '',
-      homeTabArr: {
-        menuArr1: CONFIG.home_homeTabArr_left,
-        menuArr2: [{code: '', name: ''}],
-        menuArr3: CONFIG.home_homeTabArr_right
-      },
-      homeData: {},
-      homeDataNoCache: {},
-      currTab: CONFIG.home_homeTabArr_default
-    }
-  },
-  computed: {
-    ...mapGetters(['getUserInfo'])
-  },
-  methods: {
-    loadData() {
-      this.showLoading();
-      if (storageGet('user') != null) {
-        this.isLogin = true;
-      }
-      this.setFields();
-      let p1 = new Promise((resolve, reject) => {
-        Http.get('/api/common/index/info/cache').then((res) => {
-          this.homeData = res.data;
-          // this.homeData.applicationTypeList.map((item)=>{
-          //   item.height = (item.testTypeList.length / 2) * 24 + 100;
-          //   return item;
-          // })
-          resolve(res.data);
-        }).catch((error) => {
-          notify('error', error.data)
-          reject(error)
-        })
-      });
-      let p2 = new Promise((resolve, reject) => {
-        Http.get('/api/common/index/info/nocache').then((res) => {
-          this.homeDataNoCache = res.data;
-          resolve(res.data);
-        }).catch((error) => {
-          notify('error', error.data)
-          reject(error)
-        })
-      });
-      Promise.all([p1, p2]).then((result) => {
-        this.hideLoading();
-      }).catch((error) => {
-        notify('error', error.data)
-      })
-    },
-    setFields() {
-      getAllFields().then((res) => {
-        this.homeTabArr.menuArr2 = res
-      })
+  // console.log(commonData);
+  export default {
+    name: 'Homepage',
+    components: {
+      HotCrowd,
+      HotContest,
+      HotUser,
+      HotAgency,
+      PopularTask,
+      InstitutionCard,
+      SearchBar,
+      TestMenu,
+      PopularProject,
+      LoginCard,
+      RankingCard,
+      TestCard,
+      BrandCard,
+      ResourceAndTool,
+      Waterfall,
+      WaterfallSlot
+      // vueWaterfallEasy
     },
-    checkLogin() {
-      this.checkCreateProjectAuth();
+    data() {
+      return {
+        logoTitle:CONFIG.logoTitle,
+        HOME_DISPLAY:CONFIG.HOME_DISPLAY,
+        logo_transparent:CONFIG.logo_transparent,
+        background_image: CONFIG.background_image,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        logo_background: CONFIG.logo_background,
+        user: {},
+        isLogin: false,
+        searchType: CONFIG.home_searchType,
+        searchTypeArr: CONFIG.home_searchTypeArr,
+        searchVal: '',
+        homeTabArr: {
+          menuArr1: CONFIG.home_homeTabArr_left,
+          menuArr2: [{code: '', name: ''}],
+          menuArr3: CONFIG.home_homeTabArr_right
+        },
+        homeData: {},
+        homeDataNoCache: {},
+        currTab: CONFIG.home_homeTabArr_default
+      }
     },
-    handleLogoClick(){
-      location.reload();
+    computed: {
+      ...mapGetters(['getUserInfo'])
     },
-    checkCreateProjectAuth() {
-      if (!this.isLogin) {
-        notify('warning', '请登录后访问');
-      } else if (this.isLogin) {
-        Http.get(Apis.USER.IS_PART.replace('{userId}', this.user.id)).then((res) => {
-          this.$router.push('/project/create');
+    methods: {
+      loadData() {
+        this.showLoading();
+        if (storageGet('user') != null) {
+          this.isLogin = true;
+        }
+        this.setFields();
+        let p1 = new Promise((resolve, reject) => {
+          Http.get('/api/common/index/info/cache').then((res) => {
+            this.homeData = res.data;
+            // this.homeData.applicationTypeList.map((item)=>{
+            //   item.height = (item.testTypeList.length / 2) * 24 + 100;
+            //   return item;
+            // })
+            resolve(res.data);
+          }).catch((error) => {
+            notify('error', error.data)
+            reject(error)
+          })
+        });
+        let p2 = new Promise((resolve, reject) => {
+          Http.get('/api/common/index/info/nocache').then((res) => {
+            this.homeDataNoCache = res.data;
+            resolve(res.data);
+          }).catch((error) => {
+            notify('error', error.data)
+            reject(error)
+          })
+        });
+        Promise.all([p1, p2]).then((result) => {
+          this.hideLoading();
         }).catch((error) => {
-          notify('error', error)
+          notify('error', error.data)
         })
-      }
-    },
-    handleTabClick(tab) {
-      this.currTab = tab.name;
-      // console.log(this.currTab +  "  "  + tab.index +  "  "  + tab.name );
-      for (let i = 0; i < this.homeTabArr.menuArr3.length; i++) {
-        if (this.currTab === this.homeTabArr.menuArr3[i].name) {
-          this.$router.push(this.homeTabArr.menuArr3[i].linkTo);
+      },
+      setFields() {
+        getAllFields().then((res) => {
+          this.homeTabArr.menuArr2 = res
+        })
+      },
+      checkLogin() {
+        this.checkCreateProjectAuth();
+      },
+      checkCreateProjectAuth() {
+        if (!this.isLogin) {
+          notify('warning', '请登录后访问');
+        } else if (this.isLogin) {
+          Http.get(Apis.USER.IS_PART.replace('{userId}', this.user.id)).then((res) => {
+            this.$router.push('/project/create');
+          }).catch((error) => {
+            notify('error', error)
+          })
+        }
+      },
+      handleTabClick(tab) {
+        this.currTab = tab.name;
+        // console.log(this.currTab +  "  "  + tab.index +  "  "  + tab.name );
+        for (let i = 0; i < this.homeTabArr.menuArr3.length; i++) {
+          if (this.currTab === this.homeTabArr.menuArr3[i].name) {
+            this.$router.push(this.homeTabArr.menuArr3[i].linkTo);
+          }
         }
-      }
 
-      for (let i = 0; i < this.homeTabArr.menuArr2.length; i++) {
-        if (this.currTab === this.homeTabArr.menuArr2[i].code) {
-          this.$router.push('/field/detail');
+        for (let i = 0; i < this.homeTabArr.menuArr2.length; i++) {
+          if (this.currTab === this.homeTabArr.menuArr2[i].code) {
+            this.$router.push('/field/detail');
+          }
         }
+        this.$router.push(this.homeTabArr.menuArr1[Number(tab.index)] && this.homeTabArr.menuArr1[Number(tab.index)].linkTo);
+      },
+      handleTypeClick(tab, e) {
+        this.searchType = tab.name;
+        // e.target.style.backgroundColor = $color-primary
+        this.$refs.searchInput.focus()
+      },
+      handleSearchData() {
+        if (this.searchType == 0) {
+          this.$router.push({
+            name: 'Square',
+            params: {searchVal: this.searchVal, searchType: "project", currTab: "project"}
+          });
+        } else if (this.searchType == 1) {
+          this.$router.push({name: 'AgencyList', params: {searchVal: this.searchVal}});
+        } else if (this.searchType == 2) {
+          this.$router.push({name: 'ResourceList', params: {searchVal: this.searchVal}});
+        } else if (this.searchType == 3) {
+          this.$router.push({name: 'ExpertList', params: {searchVal: this.searchVal}});
+        }
+      },
+      showLoading() {
+        this.loading = true
+      },
+      hideLoading() {
+        this.loading = false
+      },
+      setUserInfo() {
+        this.user = storageGet('user') && storageGet('user').userVO;
       }
-      this.$router.push(this.homeTabArr.menuArr1[Number(tab.index)] && this.homeTabArr.menuArr1[Number(tab.index)].linkTo);
-    },
-    handleTypeClick(tab, e) {
-      this.searchType = tab.name;
-      // e.target.style.backgroundColor = $color-primary
-      this.$refs.searchInput.focus()
-    },
-    handleSearchData() {
-      if (this.searchType == 0) {
-        this.$router.push({
-          name: 'Square',
-          params: {searchVal: this.searchVal, searchType: "project", currTab: "project"}
-        });
-      } else if (this.searchType == 1) {
-        this.$router.push({name: 'AgencyList', params: {searchVal: this.searchVal}});
-      } else if (this.searchType == 2) {
-        this.$router.push({name: 'ResourceList', params: {searchVal: this.searchVal}});
-      } else if (this.searchType == 3) {
-        this.$router.push({name: 'ExpertList', params: {searchVal: this.searchVal}});
-      }
-    },
-    showLoading() {
-      this.loading = true
-    },
-    hideLoading() {
-      this.loading = false
     },
-    setUserInfo() {
-      this.user = storageGet('user') && storageGet('user').userVO;
-    }
-  },
-  mounted() {
-    this.setUserInfo();
-    this.loadData();
-  },
-  watch: {
-    getUserInfo(val) {
+    mounted() {
       this.setUserInfo();
       this.loadData();
+    },
+    watch: {
+      getUserInfo(val) {
+        this.setUserInfo();
+        this.loadData();
+      }
     }
   }
-}
 </script>
 
 <style lang="scss">
-@import "../../style/search-nav.scss";
+  @import "../../style/search-nav.scss";
 
-.home-wrapper {
-  /deep/ .square-tab .el-tabs__item {
-    font-size: 16px !important;
-    margin-right: 0px !important;
-  }
-
-  /deep/ .login-card .popular-list {
-    padding: 0 10px !important;
-  }
-
-  .home-page {
-    padding: 15px 0;
-  }
+  .home-wrapper {
+    /deep/ .square-tab .el-tabs__item {
+      font-size: 16px !important;
+      margin-right: 0px !important;
+    }
 
-  .test-type-wrapper {
-    padding-right: 15px;
-    margin-bottom: 15px;
-  }
+    /deep/ .login-card .popular-list {
+      padding: 0 10px !important;
+    }
 
-  .homepage-right-modules {
-    .login-card .el-card__body {
-      padding: 10px !important;
+    .home-page {
+      padding: 15px 0;
     }
 
-    .popular-card .el-card__header {
-      padding: 10px !important;
+    .test-type-wrapper {
+      padding-right: 15px;
+      margin-bottom: 15px;
     }
 
-    .popular-card .el-card__body {
-      padding: 10px !important;
+    .homepage-right-modules {
+      .login-card .el-card__body {
+        padding: 10px !important;
+      }
+
+      .popular-card .el-card__header {
+        padding: 10px !important;
+      }
+
+      .popular-card .el-card__body {
+        padding: 10px !important;
+      }
     }
   }
-}
 
 </style>

+ 211 - 205
src/pages/Homepage/HomepagePrivate.vue

@@ -2,15 +2,12 @@
   <div class="home-wrapper">
     <div class="nav" stype="height:500px">
       <!--搜索框-->
-      <el-row class="search-nav" style="padding: 30px 0 20px 0">
-        <el-col :span="6">
-          <div class="pull-left" @click="handleLogoClick">
-            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>
-            <span class="logo-title">{{ logoTitle }}</span>
-          </div>
+      <el-row class="container search-nav" style="padding: 30px 0 20px 0" :gutter="40">
+        <el-col :span="5">
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
-        <el-col :span="12">
-          <div class="search-nav">
+        <el-col :span="15">
+          <div class="search-nav-input">
             <div id="search-block ">
               <el-tabs v-model="searchType" type="card" @tab-click="handleTypeClick">
                 <el-tab-pane v-for="item in searchTypeArr" v-if="item.value!=='all'" :label="item.name"
@@ -25,27 +22,29 @@
           </div>
 
         </el-col>
-        <el-col :span="6">
+        <el-col :span="4">
           <el-button type="primary pull-right" class="releaseBtn" @click="checkLogin()">免费发布众测需求</el-button>
         </el-col>
       </el-row>
       <!--TabNav-->
-      <el-tabs v-model="currTab" @tab-click="handleTabClick" class="square-tab">
+      <el-tabs v-model="currTab" @tab-click="handleTabClick" class="container square-tab">
         <el-tab-pane v-for="item in homeTabArr.menuArr1" :label="item.label" :name="item.name"
-                     :key="item.name"></el-tab-pane>
+                     :key="item.name" style="font-size: 18px"></el-tab-pane>
         <el-tab-pane v-for="item in homeTabArr.menuArr2" :label="item.name" :name="item.code"
-                     :key="item.code"></el-tab-pane>
+                     :key="item.code" style="font-size: 18px"></el-tab-pane>
         <el-tab-pane v-for="item in homeTabArr.menuArr3" :label="item.label" :name="item.name"
-                     :key="item.name"></el-tab-pane>
+                     :key="item.name" style="font-size: 18px"></el-tab-pane>
       </el-tabs>
       <div>
       </div>
     </div>
 
-    <div class="home-page container">
+    <div class="container home-page ">
       <el-row :gutter="15">
         <el-col :span="5" class="homepage-right-modules">
           <LoginCard v-if="HOME_DISPLAY.login_card"/>
+          <PopularProject :hotCrowdTestProjectVOs="homeDataNoCache.projectList" v-if="HOME_DISPLAY.hot_project"/>
+          <PopularTask :hotCrowdTaskVOs="homeDataNoCache.taskList" v-if="HOME_DISPLAY.hot_task"/>
           <HotCrowd :applicationTypeRank="homeDataNoCache.applicationTypeRank" v-if="HOME_DISPLAY.hot_crowd"/>
           <HotAgency :agencyRank="homeDataNoCache.agencyRank" v-if="HOME_DISPLAY.hot_agency"/>
           <HotUser :userRank="homeDataNoCache.userRank" v-if="HOME_DISPLAY.hot_user"/>
@@ -53,12 +52,13 @@
         </el-col>
         <el-col :span="19" class="test-type-wrapper">
           <TestMenu :testTypeList="homeData.testTypeList" v-if="HOME_DISPLAY.test_menu && homeData.testTypeList"></TestMenu>
+          <RankingCard></RankingCard>
           <TestCard :applicationTypeList="homeData.applicationTypeList" v-if="HOME_DISPLAY.test_card && homeData.applicationTypeList"></TestCard>
           <el-row style="margin-top: 10px" v-if="HOME_DISPLAY.resource_and_tool">
-            <ResourceAndTool :resourceList="homeDataNoCache.toolList && homeDataNoCache.toolList"></ResourceAndTool>
+            <ResourceAndTool :resourceList="homeData.toolList && homeData.toolList"></ResourceAndTool>
           </el-row>
           <el-row>
-            <BrandCard :residentAgencyList=homeData.residentAgencyList v-if="HOME_DISPLAY.brand_card && homeData.residentAgencyList"></BrandCard>
+            <BrandCard :residentAgencyList="homeData.residentAgencyList" v-if="HOME_DISPLAY.brand_card && homeData.residentAgencyList"></BrandCard>
           </el-row>
         </el-col>
       </el-row>
@@ -68,221 +68,227 @@
 </template>
 
 <script>
-// import commonData from '../../constants/tabMenu'
-import SearchBar from '../../components/commons/SearchBar'
-import TestMenu from './TestMenu'
-import LoginCard from './LoginCard'
-import BrandCard from './BrandCard'
-import ResourceAndTool from './ResourceAndTool'
-import TestCard from './TestCard'
-import InstitutionCard from './InstitutionCard'
-import HotCrowd from './HotCrowd'
-import HotAgency from './HotAgency'
-import HotUser from './HotUser'
-import HotContest from './HotContest'
-import PopularProject from '../Square/PopularProject'
-import Http from '@/js/http.js'
-import {mapGetters} from 'vuex'
-import Waterfall from 'vue-waterfall/lib/waterfall'
-import WaterfallSlot from 'vue-waterfall/lib/waterfall-slot'
-import {getAllFields, storageGet} from '@/js/index.js'
-import {notify} from "../../constants";
-import Apis from '@/js/api'
-import {CONFIG} from "../../config";
+  // import commonData from '../../constants/tabMenu'
+  import SearchBar from '../../components/commons/SearchBar'
+  import TestMenu from './TestMenu'
+  import LoginCard from './LoginCard'
+  import BrandCard from './BrandCard'
+  import ResourceAndTool from './ResourceAndTool'
+  import TestCard from './TestCard'
+  import InstitutionCard from './InstitutionCard'
+  import HotCrowd from './HotCrowd'
+  import HotAgency from './HotAgency'
+  import HotUser from './HotUser'
+  import RankingCard from './RankingCard'
+  import HotContest from './HotContest'
+  import PopularTask from '../Square/PopularTask'
+  import PopularProject from '../Square/PopularProject'
+  import Http from '@/js/http.js'
+  import {mapGetters} from 'vuex'
+  import Waterfall from 'vue-waterfall/lib/waterfall'
+  import WaterfallSlot from 'vue-waterfall/lib/waterfall-slot'
+  import {getAllFields, storageGet} from '@/js/index.js'
+  import {notify} from "../../constants";
+  import Apis from '@/js/api'
+  import {CONFIG} from "../../config";
 
-// console.log(commonData);
-export default {
-  name: 'Homepage',
-  components: {
-    HotCrowd,
-    HotContest,
-    HotUser,
-    HotAgency,
-    InstitutionCard,
-    SearchBar,
-    TestMenu,
-    PopularProject,
-    LoginCard,
-    TestCard,
-    BrandCard,
-    ResourceAndTool,
-    Waterfall,
-    WaterfallSlot
-    // vueWaterfallEasy
-  },
-  data() {
-    return {
-      logoTitle:CONFIG.logoTitle,
-      HOME_DISPLAY:CONFIG.HOME_DISPLAY,
-      logo_transparent:CONFIG.logo_transparent,
-      user: {},
-      isLogin: false,
-      searchType: CONFIG.home_searchType,
-      searchTypeArr: CONFIG.home_searchTypeArr,
-      searchVal: '',
-      homeTabArr: {
-        menuArr1: CONFIG.home_homeTabArr_left,
-        menuArr2: [{code: '', name: ''}],
-        menuArr3: CONFIG.home_homeTabArr_right
-      },
-      homeData: {},
-      homeDataNoCache: {},
-      currTab: CONFIG.home_homeTabArr_default
-    }
-  },
-  computed: {
-    ...mapGetters(['getUserInfo'])
-  },
-  methods: {
-    loadData() {
-      this.showLoading();
-      if (storageGet('user') != null) {
-        this.isLogin = true;
-      }
-      this.setFields();
-      let p1 = new Promise((resolve, reject) => {
-        Http.get('/api/common/index/info/cache').then((res) => {
-          this.homeData = res.data;
-          // this.homeData.applicationTypeList.map((item)=>{
-          //   item.height = (item.testTypeList.length / 2) * 24 + 100;
-          //   return item;
-          // })
-          resolve(res.data);
-        }).catch((error) => {
-          notify('error', error.data)
-          reject(error)
-        })
-      });
-      let p2 = new Promise((resolve, reject) => {
-        Http.get('/api/common/index/info/nocache').then((res) => {
-          this.homeDataNoCache = res.data;
-          resolve(res.data);
-        }).catch((error) => {
-          notify('error', error.data)
-          reject(error)
-        })
-      });
-      Promise.all([p1, p2]).then((result) => {
-        this.hideLoading();
-      }).catch((error) => {
-        notify('error', error.data)
-      })
-    },
-    setFields() {
-      getAllFields().then((res) => {
-        this.homeTabArr.menuArr2 = res
-      })
+  export default {
+    name: 'Homepage',
+    components: {
+      HotCrowd,
+      HotContest,
+      HotUser,
+      HotAgency,
+      PopularTask,
+      InstitutionCard,
+      SearchBar,
+      TestMenu,
+      PopularProject,
+      LoginCard,
+      RankingCard,
+      TestCard,
+      BrandCard,
+      ResourceAndTool,
+      Waterfall,
+      WaterfallSlot
+      // vueWaterfallEasy
     },
-    checkLogin() {
-      this.checkCreateProjectAuth();
+    data() {
+      return {
+        logoTitle:CONFIG.logoTitle,
+        HOME_DISPLAY:CONFIG.HOME_DISPLAY,
+        logo_transparent:CONFIG.logo_transparent,
+        background_image: CONFIG.background_image,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
+        user: {},
+        isLogin: false,
+        searchType: CONFIG.home_searchType,
+        searchTypeArr: CONFIG.home_searchTypeArr,
+        searchVal: '',
+        homeTabArr: {
+          menuArr1: CONFIG.home_homeTabArr_left,
+          menuArr2: [{code: '', name: ''}],
+          menuArr3: CONFIG.home_homeTabArr_right
+        },
+        homeData: {},
+        homeDataNoCache: {},
+        currTab: CONFIG.home_homeTabArr_default
+      }
     },
-    handleLogoClick(){
-      location.reload();
+    computed: {
+      ...mapGetters(['getUserInfo'])
     },
-    checkCreateProjectAuth() {
-      if (!this.isLogin) {
-        notify('warning', '请登录后访问');
-      } else if (this.isLogin) {
-        Http.get(Apis.USER.IS_PART.replace('{userId}', this.user.id)).then((res) => {
-          this.$router.push('/project/create');
+    methods: {
+      loadData() {
+        this.showLoading();
+        if (storageGet('user') != null) {
+          this.isLogin = true;
+        }
+        this.setFields();
+        let p1 = new Promise((resolve, reject) => {
+          Http.get('/api/common/index/info/cache').then((res) => {
+            this.homeData = res.data;
+            // this.homeData.applicationTypeList.map((item)=>{
+            //   item.height = (item.testTypeList.length / 2) * 24 + 100;
+            //   return item;
+            // })
+            resolve(res.data);
+          }).catch((error) => {
+            notify('error', error.data)
+            reject(error)
+          })
+        });
+        let p2 = new Promise((resolve, reject) => {
+          Http.get('/api/common/index/info/nocache').then((res) => {
+            this.homeDataNoCache = res.data;
+            resolve(res.data);
+          }).catch((error) => {
+            notify('error', error.data)
+            reject(error)
+          })
+        });
+        Promise.all([p1, p2]).then((result) => {
+          this.hideLoading();
         }).catch((error) => {
-          notify('error', error)
+          notify('error', error.data)
         })
-      }
-    },
-    handleTabClick(tab) {
-      this.currTab = tab.name;
-      // console.log(this.currTab +  "  "  + tab.index +  "  "  + tab.name );
-      for (let i = 0; i < this.homeTabArr.menuArr3.length; i++) {
-        if (this.currTab === this.homeTabArr.menuArr3[i].name) {
-          this.$router.push(this.homeTabArr.menuArr3[i].linkTo);
+      },
+      setFields() {
+        getAllFields().then((res) => {
+          this.homeTabArr.menuArr2 = res
+        })
+      },
+      checkLogin() {
+        this.checkCreateProjectAuth();
+      },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
+      checkCreateProjectAuth() {
+        if (!this.isLogin) {
+          notify('warning', '请登录后访问');
+        } else if (this.isLogin) {
+          Http.get(Apis.USER.IS_PART.replace('{userId}', this.user.id)).then((res) => {
+            this.$router.push('/project/create');
+          }).catch((error) => {
+            notify('error', error)
+          })
+        }
+      },
+      handleTabClick(tab) {
+        this.currTab = tab.name;
+        // console.log(this.currTab +  "  "  + tab.index +  "  "  + tab.name );
+        for (let i = 0; i < this.homeTabArr.menuArr3.length; i++) {
+          if (this.currTab === this.homeTabArr.menuArr3[i].name) {
+            this.$router.push(this.homeTabArr.menuArr3[i].linkTo);
+          }
         }
-      }
 
-      for (let i = 0; i < this.homeTabArr.menuArr2.length; i++) {
-        if (this.currTab === this.homeTabArr.menuArr2[i].code) {
-          this.$router.push('/field/detail');
+        for (let i = 0; i < this.homeTabArr.menuArr2.length; i++) {
+          if (this.currTab === this.homeTabArr.menuArr2[i].code) {
+            this.$router.push('/field/detail');
+          }
         }
+        this.$router.push(this.homeTabArr.menuArr1[Number(tab.index)] && this.homeTabArr.menuArr1[Number(tab.index)].linkTo);
+      },
+      handleTypeClick(tab, e) {
+        this.searchType = tab.name;
+        // e.target.style.backgroundColor = $color-primary
+        this.$refs.searchInput.focus()
+      },
+      handleSearchData() {
+        if (this.searchType == 0) {
+          this.$router.push({
+            name: 'Square',
+            params: {searchVal: this.searchVal, searchType: "project", currTab: "project"}
+          });
+        } else if (this.searchType == 1) {
+          this.$router.push({name: 'AgencyList', params: {searchVal: this.searchVal}});
+        } else if (this.searchType == 2) {
+          this.$router.push({name: 'ResourceList', params: {searchVal: this.searchVal}});
+        } else if (this.searchType == 3) {
+          this.$router.push({name: 'ExpertList', params: {searchVal: this.searchVal}});
+        }
+      },
+      showLoading() {
+        this.loading = true
+      },
+      hideLoading() {
+        this.loading = false
+      },
+      setUserInfo() {
+        this.user = storageGet('user') && storageGet('user').userVO;
       }
-      this.$router.push(this.homeTabArr.menuArr1[Number(tab.index)] && this.homeTabArr.menuArr1[Number(tab.index)].linkTo);
-    },
-    handleTypeClick(tab, e) {
-      this.searchType = tab.name;
-      // e.target.style.backgroundColor = $color-primary
-      this.$refs.searchInput.focus()
-    },
-    handleSearchData() {
-      if (this.searchType == 0) {
-        this.$router.push({
-          name: 'Square',
-          params: {searchVal: this.searchVal, searchType: "project", currTab: "project"}
-        });
-      } else if (this.searchType == 1) {
-        this.$router.push({name: 'AgencyList', params: {searchVal: this.searchVal}});
-      } else if (this.searchType == 2) {
-        this.$router.push({name: 'ResourceList', params: {searchVal: this.searchVal}});
-      } else if (this.searchType == 3) {
-        this.$router.push({name: 'ExpertList', params: {searchVal: this.searchVal}});
-      }
-    },
-    showLoading() {
-      this.loading = true
-    },
-    hideLoading() {
-      this.loading = false
     },
-    setUserInfo() {
-      this.user = storageGet('user') && storageGet('user').userVO;
-    }
-  },
-  mounted() {
-    this.setUserInfo();
-    this.loadData();
-  },
-  watch: {
-    getUserInfo(val) {
+    mounted() {
       this.setUserInfo();
       this.loadData();
+    },
+    watch: {
+      getUserInfo(val) {
+        this.setUserInfo();
+        this.loadData();
+      }
     }
   }
-}
 </script>
 
 <style lang="scss">
-@import "../../style/search-nav.scss";
+  @import "../../style/search-nav.scss";
 
-.home-wrapper {
-  /deep/ .square-tab .el-tabs__item {
-    font-size: 16px !important;
-    margin-right: 0px !important;
-  }
-
-  /deep/ .login-card .popular-list {
-    padding: 0 10px !important;
-  }
-
-  .home-page {
-    padding: 15px 0;
-  }
+  .home-wrapper {
+    /deep/ .square-tab .el-tabs__item {
+      font-size: 16px !important;
+      margin-right: 0px !important;
+    }
 
-  .test-type-wrapper {
-    padding-right: 15px;
-    margin-bottom: 15px;
-  }
+    /deep/ .login-card .popular-list {
+      padding: 0 10px !important;
+    }
 
-  .homepage-right-modules {
-    .login-card .el-card__body {
-      padding: 10px !important;
+    .home-page {
+      padding: 15px 0;
     }
 
-    .popular-card .el-card__header {
-      padding: 10px !important;
+    .test-type-wrapper {
+      padding-right: 15px;
+      margin-bottom: 15px;
     }
 
-    .popular-card .el-card__body {
-      padding: 10px !important;
+    .homepage-right-modules {
+      .login-card .el-card__body {
+        padding: 10px !important;
+      }
+
+      .popular-card .el-card__header {
+        padding: 10px !important;
+      }
+
+      .popular-card .el-card__body {
+        padding: 10px !important;
+      }
     }
   }
-}
 
 </style>

+ 7 - 6
src/pages/HomepageSearch/AgencyList.vue

@@ -1,14 +1,10 @@
 <template>
   <div class="home-wrapper">
-    <!--    <TopSearch :searchVal="searchVal" :searchType="searchType" :searchTypeArr="searchTypeArr"/>-->
     <div class="nav" stype="height:500px">
       <!--搜索框-->
-      <el-row class="container search-nav" style="padding: 30px 0 20px 0" :gutter="40">
+      <el-row class="search-nav" style="padding: 30px 0 20px 0" :gutter="40">
         <el-col :span="5">
-          <div class="pull-left to-mooctest-ranking" @click="handleLogoClick">
-            <!--            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>-->
-            <!--            <span class="logo-title">{{ logoTitle }}</span>-->
-          </div>
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
         <el-col :span="15">
           <div class="search-nav-input">
@@ -105,6 +101,8 @@
       return {
         logoTitle:CONFIG.logoTitle,
         logo_transparent:CONFIG.logo_transparent,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
         user: {},
         isLogin: false,
         loading: false,
@@ -147,6 +145,9 @@
         this.handleSearchData();
         this.hideLoading();
       },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
 
       showLoading() {
         this.loading = true

+ 6 - 4
src/pages/HomepageSearch/AgencyResidentList.vue

@@ -5,10 +5,7 @@
       <!--搜索框-->
       <el-row class="container search-nav" style="padding: 30px 0 20px 0" :gutter="40">
         <el-col :span="5">
-          <div class="pull-left to-mooctest-ranking" @click="handleLogoClick">
-            <!--            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>-->
-            <!--            <span class="logo-title">{{ logoTitle }}</span>-->
-          </div>
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
         <el-col :span="15">
           <div class="search-nav-input">
@@ -100,6 +97,8 @@
       return {
         logoTitle:CONFIG.logoTitle,
         logo_transparent:CONFIG.logo_transparent,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
         user: {},
         isLogin: false,
         searchType: '0',
@@ -138,6 +137,9 @@
           this.totalElements = res.data.totalElements;
         })
       },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
       checkLogin() {
         this.checkCreateProjectAuth();
       },

+ 6 - 4
src/pages/HomepageSearch/CompetitionList.vue

@@ -5,10 +5,7 @@
       <!--搜索框-->
       <el-row class="container search-nav" style="padding: 30px 0 20px 0" :gutter="40">
         <el-col :span="5">
-          <div class="pull-left to-mooctest-ranking" @click="handleLogoClick">
-            <!--            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>-->
-            <!--            <span class="logo-title">{{ logoTitle }}</span>-->
-          </div>
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
         <el-col :span="15">
           <div class="search-nav-input">
@@ -98,6 +95,8 @@
       return {
         logoTitle:CONFIG.logoTitle,
         logo_transparent:CONFIG.logo_transparent,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
         user: {},
         isLogin: false,
         loading: false,
@@ -137,6 +136,9 @@
           this.totalElements = res.data.totalElements;
         })
       },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
       checkLogin() {
         this.checkCreateProjectAuth();
       },

+ 6 - 4
src/pages/HomepageSearch/CrowdList.vue

@@ -5,10 +5,7 @@
       <!--搜索框-->
       <el-row class="container search-nav" style="padding: 30px 0 20px 0" :gutter="40">
         <el-col :span="5">
-          <div class="pull-left to-mooctest-ranking" @click="handleLogoClick">
-            <!--            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>-->
-            <!--            <span class="logo-title">{{ logoTitle }}</span>-->
-          </div>
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
         <el-col :span="15">
           <div class="search-nav-input">
@@ -96,6 +93,8 @@
       return {
         logoTitle:CONFIG.logoTitle,
         logo_transparent:CONFIG.logo_transparent,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
         user: {},
         isLogin: false,
         loading: false,
@@ -134,6 +133,9 @@
           this.totalElements = res.data.totalElements;
         })
       },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
       checkLogin() {
         this.checkCreateProjectAuth();
       },

+ 6 - 4
src/pages/HomepageSearch/ExpertList.vue

@@ -5,10 +5,7 @@
       <!--搜索框-->
       <el-row class="container search-nav" style="padding: 30px 0 20px 0" :gutter="40">
         <el-col :span="5">
-          <div class="pull-left to-mooctest-ranking" @click="handleLogoClick">
-            <!--            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>-->
-            <!--            <span class="logo-title">{{ logoTitle }}</span>-->
-          </div>
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
         <el-col :span="15">
           <div class="search-nav-input">
@@ -73,6 +70,8 @@
       return {
         logoTitle:CONFIG.logoTitle,
         logo_transparent:CONFIG.logo_transparent,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
         user: {},
         isLogin: false,
         loading: false,
@@ -112,6 +111,9 @@
         this.searchVal = this.$route.params.searchVal;
         this.handleSearchData();
       },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
       showLoading() {
         this.loading = true
       },

+ 6 - 4
src/pages/HomepageSearch/ResourceList.vue

@@ -5,10 +5,7 @@
       <!--搜索框-->
       <el-row class="container search-nav" style="padding: 30px 0 20px 0" :gutter="40">
         <el-col :span="5">
-          <div class="pull-left to-mooctest-ranking" @click="handleLogoClick">
-            <!--            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>-->
-            <!--            <span class="logo-title">{{ logoTitle }}</span>-->
-          </div>
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
         <el-col :span="15">
           <div class="search-nav-input">
@@ -108,6 +105,8 @@
       return {
         logoTitle:CONFIG.logoTitle,
         logo_transparent:CONFIG.logo_transparent,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
         user: {},
         isLogin: false,
         loading: false,
@@ -147,6 +146,9 @@
         this.searchVal = this.$route.params.searchVal;
         this.handleSearchData();
       },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
       checkLogin() {
         this.checkCreateProjectAuth();
       },

+ 6 - 4
src/pages/HomepageSearch/UserList.vue

@@ -5,10 +5,7 @@
       <!--搜索框-->
       <el-row class="container search-nav" style="padding: 30px 0 20px 0" :gutter="40">
         <el-col :span="5">
-          <div class="pull-left to-mooctest-ranking" @click="handleLogoClick">
-            <!--            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>-->
-            <!--            <span class="logo-title">{{ logoTitle }}</span>-->
-          </div>
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
         <el-col :span="15">
           <div class="search-nav-input">
@@ -110,6 +107,8 @@
         user: {},
         isLogin: false,
         logo_transparent:CONFIG.logo_transparent,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
         id: 0,
         // searchVal: '',
         searchType: '0',
@@ -148,6 +147,9 @@
           this.totalElements = res.data.totalElements;
         })
       },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
       checkLogin() {
         this.checkCreateProjectAuth();
       },

+ 13 - 12
src/pages/Square/PopularProjectAndTaskList.vue

@@ -1,16 +1,13 @@
 <template>
-  <div>
+  <div class="home-wrapper">
     <div class="nav" stype="height:500px">
       <!--搜索框-->
-      <el-row class="search-nav" style="padding: 30px 0 20px 0">
-        <el-col :span="6">
-          <div class="pull-left" @click="gotoHome" style="cursor: pointer">
-            <img class="logo-img" :src="logo_transparent"/>
-            <span class="logo-title">{{logoTitle}}</span>
-          </div>
+      <el-row class="container search-nav" style="padding: 30px 0 20px 0" :gutter="40">
+        <el-col :span="5">
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
-        <el-col :span="12">
-          <div class="search-nav">
+        <el-col :span="15">
+          <div class="search-nav-input">
             <div id="search-block " class="">
               <el-tabs v-model="searchType" type="card" @tab-click="handleTypeClick">
                 <el-tab-pane v-for="item in tabArr" :label="item.label" :name="item.name"
@@ -24,12 +21,11 @@
             </div>
           </div>
         </el-col>
-        <el-col :span="6">
+        <el-col :span="4">
           <el-button type="primary pull-right" class="releaseBtn" @click="checkLogin()">免费发布众测需求</el-button>
         </el-col>
       </el-row>
-      <!--TabNav-->
-      <el-tabs v-model="currTab" @tab-click="handleTabClick" class="square-tab">
+      <el-tabs v-model="currTab" @tab-click="handleTabClick" class="container square-tab">
         <el-tab-pane v-for="item in menuArr" :name="item.name" :key="item.name">
           <span slot="label" style="font-size: 18px">{{item.label}}</span>
         </el-tab-pane>
@@ -113,6 +109,8 @@
       return {
         logoTitle:CONFIG.logoTitle,
         logo_transparent:CONFIG.logo_transparent,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
         loading: false,
         isLogin: false,
         searchType: 'project',
@@ -157,6 +155,9 @@
         }
         this.hideLoading();
       },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
       getHotProject() {
         this.showLoading();
         let params = {

+ 8 - 19
src/pages/Square/Square2.0.vue

@@ -4,10 +4,7 @@
       <!--搜索框-->
       <el-row class="container search-nav" style="padding: 30px 0 20px 0">
         <el-col :span="5">
-          <div class="pull-left to-mooctest-ranking" @click="handleLogoClick">
-<!--            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>-->
-<!--              <span class="logo-title">{{ logoTitle }}</span>-->
-          </div>
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
         <el-col :span="15">
           <div class="search-nav-input">
@@ -84,6 +81,8 @@
         logo_transparent:CONFIG.logo_transparent,
         SQUARE_DISPLAY:CONFIG.SQUARE_DISPLAY,
         logo_transparent:CONFIG.logo_transparent,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
         user: {},
         isLogin: false,
         searchType:CONFIG.square_searchType,
@@ -108,12 +107,12 @@
     computed:{
     },
     methods:{
-      handleLogoClick(){
-        window.open('http://47.98.174.59:8200/#/');
-      },
       gotoHome(){
         this.$router.push('/home');
       },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
       handleTabClick(tab){
         this.currTab = tab.name
         this.activePage = 1;
@@ -145,9 +144,6 @@
             this.isLogin = true;
         }
 
-        // this.projectAndTaskArr = this.$route.params.projectAndTaskArr;
-        // this.type = this.$route.params.type;
-
         // 从首页项目搜索框跳转过来
         this.currTab = this.$route.params.currTab;
         if(this.currTab === "project"){
@@ -157,12 +153,6 @@
             this.handleTabClickSearch();
         }
 
-        // // 从热门项目和任务跳转过来
-        // else if(this.type == 1){
-        //     console.log("type " + this.type);
-        //     this.getHotData();
-        // }
-
         // 正常点击众测广场跳转过来
         else{
             this.searchVal = this.$route.params.searchVal;
@@ -177,14 +167,13 @@
               let crowdTestProjectVOs = res.data.crowdTestProjectVOs;
               let crowdTestTaskVOS = res.data.crowdTestTaskVOS;
               let projectAndTaskArr = crowdTestProjectVOs.concat(crowdTestTaskVOS);
-              this.hotCrowdTestProjectVOs = res.data.hotCrowdTestProjectVOs;
-              this.hotCrowdTaskVOs = res.data.hotCrowdTaskVOs;
               this.projectAndTaskArr = projectAndTaskArr;
           })
+          this.getHotData();
       },
 
       getHotData(){
-          Http.get('/api/square/list').then((res)=>{
+          Http.get('/api/square/hotTaskAndProject').then((res)=>{
               this.hotCrowdTestProjectVOs = res.data.hotCrowdTestProjectVOs;
               this.hotCrowdTaskVOs = res.data.hotCrowdTaskVOs;
           })

+ 7 - 8
src/pages/Technology/Technology2.0.vue

@@ -4,10 +4,7 @@
       <!--搜索框-->
       <el-row class="container search-nav" style="padding: 30px 0 20px 0">
         <el-col :span="5">
-          <div class="pull-left to-mooctest-ranking" @click="handleLogoClick">
-<!--            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>-->
-<!--            <span class="logo-title">{{ logoTitle }}</span>-->
-          </div>
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
         <el-col :span="15">
           <div class="search-nav-input">
@@ -96,7 +93,8 @@
         logoTitle:CONFIG.logoTitle,
         logo_transparent:CONFIG.logo_transparent,
         TECHNOLOGY_DISPLAY:CONFIG.TECHNOLOGY_DISPLAY,
-        logo_transparent:CONFIG.logo_transparent,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
         loading: false,
         isLogin: false,
         searchVal: '',
@@ -109,9 +107,6 @@
       }
     },
     methods:{
-      handleLogoClick(){
-        window.open('http://47.98.174.59:8200/#/');
-      },
       loadData(){
           if (storageGet('user') != null) {
               this.isLogin = true;
@@ -131,6 +126,9 @@
           })
         }
       },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
 
       //显示页面加载画面
       showLoading() {
@@ -212,6 +210,7 @@
   @import "../../style/search-nav.scss";
 
   .technology-container {
+    width: 100%;
     /deep/ .search-input,/deep/ .releaseBtn{
       margin: 20px 0 0 0 !important;
     }

+ 6 - 4
src/pages/Technology/TechnologyMore.vue

@@ -4,10 +4,7 @@
       <!--搜索框-->
       <el-row class="container search-nav" style="padding: 30px 0 20px 0" :gutter="40">
         <el-col :span="5">
-          <div class="pull-left to-mooctest-ranking" @click="handleLogoClick">
-            <!--            <img class="logo-img" :src="logo_transparent" :to="'/home'"/>-->
-            <!--            <span class="logo-title">{{ logoTitle }}</span>-->
-          </div>
+          <div class="pull-left to-mooctest-ranking" :style="{backgroundImage: 'url(' + mooctest_rank_logo_url + ')'}"  @click="handleLogoClick"></div>
         </el-col>
         <el-col :span="15">
           <div class="search-nav-input">
@@ -81,6 +78,8 @@
       return {
         logoTitle:CONFIG.logoTitle,
         logo_transparent:CONFIG.logo_transparent,
+        mooctest_rank_url: CONFIG.mooctest_rank_url,
+        mooctest_rank_logo_url: CONFIG.mooctest_rank_logo_url,
         loading: false,
         isLogin: false,
         searchVal: '',
@@ -104,6 +103,9 @@
               this.isLogin = true;
           }
       },
+      handleLogoClick(){
+        window.open(this.mooctest_rank_url, "_blank");
+      },
       checkLogin() {
         this.checkCreateProjectAuth();
       },

+ 3 - 1
src/router/index.js

@@ -34,7 +34,9 @@ export default new Router({
     {
       path: '/home',
       name: 'Home',
-      component: resolve => require(['@/pages/Homepage/Homepage'], resolve),
+      component: resolve => {
+        return $env === 'private' ? require(['@/pages/Homepage/HomepagePrivate'],resolve) : require(['@/pages/Homepage/Homepage'], resolve)
+      },
       meta: {
         title: '',
         requireAuth: false,