Selaa lähdekoodia

add:finish 1.1

wangJJ 5 vuotta sitten
vanhempi
commit
1de5329ece

+ 5 - 97
src/components/commons/SearchBar.vue

@@ -49,51 +49,16 @@
   export default {
     name: 'SearchBar',
     // components:{},
-    props: ['tabArr','menuArr'],
-    data(){
+    props: ['tabArr', 'menuArr'],
+    data() {
       return {
-        searchType:'project',
+        searchType: 'project',
         searchVal: '',
         // currTab:''
       }
     },
-    computed:{
-      ...mapGetters(['getActiveTab']),
-      currTab: {
-        get() {
-          return this.getActiveTab;
-        },
-        set(){}
-      }
-     },
-    methods:{
-      ...mapActions(["setActiveTab"]),
-      handleTabClick(tab){
-        // console.log(tab);
-        this.setActiveTab(tab.name);
-        // console.log(this.getActiveTab);
-        let pathInfo =  commonData.menuData.find((item)=>{
-          return item.name === tab.name})
-        //注意: 直接写pathInfo.targetPage 会 undefined
-        console.log(pathInfo);
-        let path = pathInfo&&pathInfo.targetPage;
-        console.log(path);
-        // console.log({searchType:'项目',keyword: this.searchVal});
-        this.$router.push({path,query:{searchType:'项目',keyword: this.searchVal}});
-        this.$router.push({path,query:{keyword: this.searchVal}});
-      },
-      handleTypeClick(tab){
-        this.searchType = tab.name;
-      },
-      handleSearchData(){
-        let targetTab = this.getActiveTab;
-        let pathInfo =  commonData.menuData.find((item)=>{
-          return item.name === this.getActiveTab})
-        //注意: 直接写pathInfo.targetPage 会 undefined
-        let path = pathInfo&&pathInfo.targetPage;
-        this.$router.push({path,query:{keyword: this.searchVal}});
-      }
-    }
+
+    methods: {}
   }
 
 </script>
@@ -101,61 +66,4 @@
 
 <style>
 
-  .nav{
-    background:rgba(255,255,255,1);
-    box-shadow:0px 4px 30px 0px rgba(8,5,6,0.08);
-    padding: 0 15%;
-  }
-
-  .logo-img{
-    width: 50px;
-    height: 50px;
-    margin: 2px 23px;
-    display: block;
-  }
-  .logo-title{
-    width: 100px;
-    text-align: center;
-  }
-  .nav .el-tabs__header{
-    margin: 0 !important;
-  }
-
-  .nav .el-tabs--card>.el-tabs__header{
-    border-bottom: none !important;
-  }
-
-  .nav .el-tabs__nav-wrap::after{
-    width: 0;
-    height: 0;
-  }
-
-  /*.square-tab .el-tabs__item {*/
-  /*  font-size: 18px;*/
-  /*  margin-right: 35px;*/
-  /*}*/
-
-  .search-button{
-    background-color: rgb(0, 118, 203) !important;
-    border: none;
-    border-radius: initial;
-    padding: -1px;
-    color: white !important;
-    height: 39px;
-    margin-right: -100px;
-  }
-
-  .search-block{
-    width: 500px;
-  }
-
-  .releaseBtn{
-    background-color: rgb(0, 118, 203);
-    margin-top: 40px;
-  }
-
-  .tab-menu1 {
-    border: 1px solid #ccc;
-    width: 1px;
-  }
 </style>

+ 16 - 775
src/pages/Homepage/Homepage.vue

@@ -40,23 +40,23 @@
     <div class="home-page container">
       <el-row>
         <el-col :span="19" class="test-type-wrapper">
-          <TestMenu :testTypeList="getHomeData.testTypeList"></TestMenu>
-          <TestCard></TestCard>
+          <TestMenu :testTypeList="homeData.testTypeList"></TestMenu>
+          <TestCard :homeData="homeData"></TestCard>
         </el-col>
         <el-col :span="5"  class="homepage-right-modules">
           <LoginCard/>
-          <HotCrowd :applicationTypeRank="getHomeData.applicationTypeRank"/>
-          <HotAgency :agencyRank="getHomeData.agencyRank"/>
-          <HotUser :userRank="getHomeData.userRank"/>
-          <HotContest :competitionList="getHomeData.competitionList"/>
+          <HotCrowd :applicationTypeRank="homeData.applicationTypeRank"/>
+          <HotAgency :agencyRank="homeData.agencyRank"/>
+          <HotUser :userRank="homeData.userRank"/>
+          <HotContest :competitionList="homeData.competitionList"/>
         </el-col>
       </el-row>
       <el-row :gutter="15">
         <el-col :span="12">
-          <ResourceAndTool :resourceList="getHomeData.resourceList"></ResourceAndTool>
+          <ResourceAndTool :resourceList="homeData.resourceList"></ResourceAndTool>
         </el-col>
         <el-col :span="12">
-          <BrandCard :residentAgencyList = getHomeData.residentAgencyList></BrandCard>
+          <BrandCard :residentAgencyList = homeData.residentAgencyList></BrandCard>
         </el-col>
       </el-row>
       <InstitutionCard></InstitutionCard>
@@ -147,775 +147,19 @@
             {label: "更多", name: "findMore"},
           ],
         },
-        homeData:{
-          "testTypeList": [
-            {
-              "code": "JKCS",
-              "name": "接口测试"
-            },
-            {
-              "code": "JRXCE",
-              "name": "兼容性测试"
-            },
-            {
-              "code": "KKXCS",
-              "name": "可靠性测试"
-            },
-            {
-              "code": "WDXCS",
-              "name": "稳定性测试"
-            },
-            {
-              "code": "GNCS",
-              "name": "功能测试"
-            },
-            {
-              "code": "XNCS",
-              "name": "性能测试"
-            },
-            {
-              "code": "AQCS",
-              "name": "安全测试"
-            },
-            {
-              "code": "YYXCS",
-              "name": "易用性测试"
-            },
-            {
-              "code": "YYGGZD",
-              "name": "应用故障诊断"
-            },
-            {
-              "code": "YYLDSM",
-              "name": "应用漏洞扫描"
-            },
-            {
-              "code": "DMAQSJ",
-              "name": "代码安全审计"
-            },
-            {
-              "code": "FXPG",
-              "name": "风险评估"
-            },
-            {
-              "code": "DBCP",
-              "name": "等保测评"
-            },
-            {
-              "code": "PGPJ",
-              "name": "评估评价"
-            },
-            {
-              "code": "DZCS",
-              "name": "定制测试"
-            }
-          ],
-          "applicationTypeList": [
-            {
-              "code": "ANDROID",
-              "name": "Android APP",
-              "count": null,
-              "image": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/ApplicationType/%E5%AE%89%E5%8D%93.png",
-              "testTypeList": [
-                {
-                  "code": "GNCS",
-                  "name": "功能测试"
-                },
-                {
-                  "code": "XNCS",
-                  "name": "性能测试"
-                },
-                {
-                  "code": "AQCS",
-                  "name": "安全测试"
-                },
-                {
-                  "code": "YYXCS",
-                  "name": "易用性测试"
-                },
-                {
-                  "code": "YYGGZD",
-                  "name": "应用故障诊断"
-                },
-                {
-                  "code": "YYLDSM",
-                  "name": "应用漏洞扫描"
-                },
-                {
-                  "code": "DMAQSJ",
-                  "name": "代码安全审计"
-                },
-                {
-                  "code": "FXPG",
-                  "name": "风险评估"
-                },
-                {
-                  "code": "DBCP",
-                  "name": "等保测评"
-                },
-                {
-                  "code": "PGPJ",
-                  "name": "评估评价"
-                },
-                {
-                  "code": "DZCS",
-                  "name": "定制测试"
-                }
-              ]
-            },
-            {
-              "code": "ANDROIDaa",
-              "name": "Androidaa APP",
-              "count": null,
-              "image": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/ApplicationType/%E5%AE%89%E5%8D%93.png",
-              "testTypeList": [
-                {
-                  "code": "GNCS",
-                  "name": "功能测试"
-                },
-                {
-                  "code": "XNCS",
-                  "name": "性能测试"
-                },
-                {
-                  "code": "AQCS",
-                  "name": "安全测试"
-                },
-                {
-                  "code": "YYXCS",
-                  "name": "易用性测试"
-                },
-                {
-                  "code": "YYGGZD",
-                  "name": "应用故障诊断"
-                },
-                {
-                  "code": "YYLDSM",
-                  "name": "应用漏洞扫描"
-                },
-                {
-                  "code": "DMAQSJ",
-                  "name": "代码安全审计"
-                },
-                {
-                  "code": "FXPG",
-                  "name": "风险评估"
-                },
-                {
-                  "code": "DBCP",
-                  "name": "等保测评"
-                },
-                {
-                  "code": "PGPJ",
-                  "name": "评估评价"
-                },
-                {
-                  "code": "DZCS",
-                  "name": "定制测试"
-                }
-              ]
-            },
-            {
-              "code": "IOS",
-              "name": "IOS APP",
-              "count": null,
-              "image": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/ApplicationType/ios.png",
-              "testTypeList": [
-                {
-                  "code": "JKCS",
-                  "name": "接口测试"
-                },
-
-                {
-                  "code": "KKXCS",
-                  "name": "可靠性测试"
-                },
-                {
-                  "code": "WDXCS",
-                  "name": "稳定性测试"
-                },
-                {
-                  "code": "FXPG",
-                  "name": "风险评估"
-                },
-                {
-                  "code": "DBCP",
-                  "name": "等保测评"
-                },
-                {
-                  "code": "PGPJ",
-                  "name": "评估评价"
-                },
-                {
-                  "code": "DZCS",
-                  "name": "定制测试"
-                }
-              ]
-            },
-            {
-              "code": "WEB",
-              "name": "Web应用",
-              "count": null,
-              "image": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/ApplicationType/WEB%E5%BA%94%E7%94%A8.png",
-              "testTypeList": [
-                {
-                  "code": "JKCS",
-                  "name": "接口测试"
-                },
-                {
-                  "code": "PGPJ",
-                  "name": "评估评价"
-                },
-                {
-                  "code": "DZCS",
-                  "name": "定制测试"
-                }
-              ]
-            },
-            {
-              "code": "C/S",
-              "name": "C/S应用软件",
-              "count": null,
-              "image": null,
-              "testTypeList": [
-                {
-                  "code": "JKCS",
-                  "name": "接口测试"
-                },
-                {
-                  "code": "JRXCE",
-                  "name": "兼容性测试"
-                },
-                {
-                  "code": "KKXCS",
-                  "name": "可靠性测试"
-                },
-                {
-                  "code": "GNCS",
-                  "name": "功能测试"
-                },{
-                  "code": "GNCS",
-                  "name": "功能测试"
-                },
-                {
-                  "code": "GNCS",
-                  "name": "功能测试"
-                },
-                {
-                  "code": "XNCS",
-                  "name": "性能测试"
-                },
-                {
-                  "code": "AQCS",
-                  "name": "安全测试"
-                },
-                {
-                  "code": "YYXCS",
-                  "name": "易用性测试"
-                },
-                {
-                  "code": "YYGGZD",
-                  "name": "应用故障诊断"
-                },
-                {
-                  "code": "YYLDSM",
-                  "name": "应用漏洞扫描"
-                },
-                {
-                  "code": "DMAQSJ",
-                  "name": "代码安全审计"
-                },
-                {
-                  "code": "FXPG",
-                  "name": "风险评估"
-                },
-                {
-                  "code": "DBCP",
-                  "name": "等保测评"
-                },
-                {
-                  "code": "PGPJ",
-                  "name": "评估评价"
-                },
-                {
-                  "code": "DZCS",
-                  "name": "定制测试"
-                }
-              ]
-            },
-            {
-              "code": "FLUSHBONAD",
-              "name": "嵌入式软件",
-              "count": null,
-              "image": null,
-              "testTypeList": [
-
-                {
-                  "code": "WDXCS",
-                  "name": "稳定性测试"
-                },
-                {
-                  "code": "GNCS",
-                  "name": "功能测试"
-                },
-                {
-                  "code": "XNCS",
-                  "name": "性能测试"
-                },
-                {
-                  "code": "AQCS",
-                  "name": "安全测试"
-                },
-                {
-                  "code": "YYXCS",
-                  "name": "易用性测试"
-                },
-                {
-                  "code": "YYGGZD",
-                  "name": "应用故障诊断"
-                },
-                {
-                  "code": "FXPG",
-                  "name": "风险评估"
-                },
-                {
-                  "code": "DBCP",
-                  "name": "等保测评"
-                },
-                {
-                  "code": "PGPJ",
-                  "name": "评估评价"
-                },
-                {
-                  "code": "DZCS",
-                  "name": "定制测试"
-                }
-              ]
-            },
-            {
-              "code": "INDUSTRY",
-              "name": "工业控制软件",
-              "count": null,
-              "image": null,
-              "testTypeList": [
-                {
-                  "code": "JKCS",
-                  "name": "接口测试"
-                },
-
-                {
-                  "code": "GNCS",
-                  "name": "功能测试"
-                },
-                {
-                  "code": "XNCS",
-                  "name": "性能测试"
-                },
-                {
-                  "code": "AQCS",
-                  "name": "安全测试"
-                },
-                {
-                  "code": "YYXCS",
-                  "name": "易用性测试"
-                },
-                {
-                  "code": "YYGGZD",
-                  "name": "应用故障诊断"
-                },
-                {
-                  "code": "YYLDSM",
-                  "name": "应用漏洞扫描"
-                },
-                {
-                  "code": "DMAQSJ",
-                  "name": "代码安全审计"
-                },
-                {
-                  "code": "FXPG",
-                  "name": "风险评估"
-                },
-                {
-                  "code": "DBCP",
-                  "name": "等保测评"
-                },
-                {
-                  "code": "PGPJ",
-                  "name": "评估评价"
-                },
-                {
-                  "code": "DZCS",
-                  "name": "定制测试"
-                }
-              ]
-            },
-            {
-              "code": "TECHNOLOGY",
-              "name": "信息技术产品",
-              "count": null,
-              "image": null,
-              "testTypeList": [
-                {
-                  "code": "JKCS",
-                  "name": "接口测试"
-                },
-                {
-                  "code": "JRXCE",
-                  "name": "兼容性测试"
-                },
-                {
-                  "code": "KKXCS",
-                  "name": "可靠性测试"
-                },
-                {
-                  "code": "WDXCS",
-                  "name": "稳定性测试"
-                },
-                {
-                  "code": "GNCS",
-                  "name": "功能测试"
-                },
-                {
-                  "code": "XNCS",
-                  "name": "性能测试"
-                },
-                {
-                  "code": "AQCS",
-                  "name": "安全测试"
-                },
-                {
-                  "code": "YYXCS",
-                  "name": "易用性测试"
-                },
-                {
-                  "code": "YYGGZD",
-                  "name": "应用故障诊断"
-                },
-                {
-                  "code": "KKXCS",
-                  "name": "可靠性测试"
-                },
-                {
-                  "code": "WDXCS",
-                  "name": "稳定性测试"
-                },
-                {
-                  "code": "GNCS",
-                  "name": "功能测试"
-                },
-                {
-                  "code": "YYLDSM",
-                  "name": "应用漏洞扫描"
-                },
-                {
-                  "code": "DMAQSJ",
-                  "name": "代码安全审计"
-                },
-                {
-                  "code": "FXPG",
-                  "name": "风险评估"
-                },
-                {
-                  "code": "DBCP",
-                  "name": "等保测评"
-                },
-                {
-                  "code": "PGPJ",
-                  "name": "评估评价"
-                },
-                {
-                  "code": "DZCS",
-                  "name": "定制测试"
-                }
-              ]
-            },
-            {
-              "code": "OTHER",
-              "name": "其他",
-              "count": null,
-              "image": null,
-              "testTypeList": [
-                {
-                  "code": "JKCS",
-                  "name": "接口测试"
-                },
-                {
-                  "code": "JKCS",
-                  "name": "接口测试"
-                },
-                {
-                  "code": "JKCS",
-                  "name": "接口测试"
-                },
-                {
-                  "code": "JRXCE",
-                  "name": "兼容性测试"
-                },
-                {
-                  "code": "KKXCS",
-                  "name": "可靠性测试"
-                },
-                {
-                  "code": "WDXCS",
-                  "name": "稳定性测试"
-                },
-                {
-                  "code": "GNCS",
-                  "name": "功能测试"
-                },
-                {
-                  "code": "XNCS",
-                  "name": "性能测试"
-                },
-                {
-                  "code": "AQCS",
-                  "name": "安全测试"
-                },
-                {
-                  "code": "YYXCS",
-                  "name": "易用性测试"
-                },
-                {
-                  "code": "YYGGZD",
-                  "name": "应用故障诊断"
-                },
-                {
-                  "code": "YYLDSM",
-                  "name": "应用漏洞扫描"
-                },
-                {
-                  "code": "DMAQSJ",
-                  "name": "代码安全审计"
-                },
-                {
-                  "code": "FXPG",
-                  "name": "风险评估"
-                },
-                {
-                  "code": "DBCP",
-                  "name": "等保测评"
-                },
-                {
-                  "code": "PGPJ",
-                  "name": "评估评价"
-                },
-                {
-                  "code": "DZCS",
-                  "name": "定制测试"
-                }
-              ]
-            }
-          ],
-          "applicationTypeRank": [
-            {
-              "code": "ANDROID",
-              "name": "Android APP",
-              "count": 9,
-              "image": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/ApplicationType/%E5%AE%89%E5%8D%93.png",
-              "testTypeList": null
-            },
-            {
-              "code": "IOS",
-              "name": "IOS APP",
-              "count": 5,
-              "image": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/ApplicationType/ios.png",
-              "testTypeList": null
-            },
-            {
-              "code": "WEB",
-              "name": "Web应用",
-              "count": 3,
-              "image": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/ApplicationType/WEB%E5%BA%94%E7%94%A8.png",
-              "testTypeList": null
-            }
-          ],
-          "agencyRank": [
-            {
-              "id": 1,
-              "userId": 12,
-              "logo": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/Image/logo_20471_1566375776184.png",
-              "name": "测评机构",
-              "allTaskPrice": null,
-              "taskCount": 4
-            }
-          ],
-          "userRank": [
-            {
-              "id": 20471,
-              "name": "郭超",
-              "userName": "郭超",
-              "gender": null,
-              "email": "dazao.yi@gmail.com",
-              "mobile": null,
-              "password": "********",
-              "province": null,
-              "city": null,
-              "photoUrl": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/Image/WechatIMG3_99232_1566382744769.jpeg",
-              "allProjectPrice": null,
-              "authType": "agency",
-              "taskCount": 5,
-              "birthday": null,
-              "detailedAddress": null,
-              "personalCompetence": null,
-              "unit": null,
-              "county": null
-            },
-            {
-              "id": 99236,
-              "name": "huangyong",
-              "userName": "huangyong",
-              "gender": null,
-              "email": "huangyong@mooctest.com",
-              "mobile": "18861906033",
-              "password": "********",
-              "province": null,
-              "city": null,
-              "photoUrl": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/Image/WechatIMG3_99232_1566382744769.jpeg",
-              "allProjectPrice": null,
-              "authType": "agency",
-              "taskCount": 4,
-              "birthday": null,
-              "detailedAddress": null,
-              "personalCompetence": null,
-              "unit": null,
-              "county": null
-            },
-            {
-              "id": 99179,
-              "name": "申玉强_教师",
-              "userName": "申玉强_教师",
-              "gender": null,
-              "email": "951775089@qq.com",
-              "mobile": null,
-              "password": "********",
-              "province": null,
-              "city": null,
-              "photoUrl": "https://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/Image/timg.jpg",
-              "allProjectPrice": null,
-              "authType": "agency",
-              "taskCount": 3,
-              "birthday": null,
-              "detailedAddress": null,
-              "personalCompetence": null,
-              "unit": null,
-              "county": null
-            }
-          ],
-          "fieldList": [
-            {
-              "code": "KJFW",
-              "name": "科技服务"
-            },
-            {
-              "code": "HLWFW",
-              "name": "互联网服务"
-            },
-            {
-              "code": "JCDL",
-              "name": "集成电路"
-            },
-            {
-              "code": "GYKZ",
-              "name": "工业控制"
-            },
-            {
-              "code": "BDYY",
-              "name": "北斗应用"
-            },
-            {
-              "code": "OTHER",
-              "name": "其他"
-            }
-          ],
-          "competitionList": [
-            {
-              "id": 2,
-              "name": "2020全国大学生软件测试大赛",
-              "linkUrl": "http://www.mooctest.org/#/NoticeDetail/61",
-              "startTime": "2020-06-28T02:13:15.000+0000",
-              "image": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/Partner/mooctest.png",
-              "isDeleted": 0
-            },
-            {
-              "id": 1,
-              "name": "5月份移动众测月度赛",
-              "linkUrl": "http://www.mooctest.org/#/NoticeDetail/69",
-              "startTime": "2020-06-23T02:12:58.000+0000",
-              "image": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/Partner/mooctest.png",
-              "isDeleted": 0
-            },
-            {
-              "id": 3,
-              "name": "鲲鹏生态的表达能力评测系统众测比赛",
-              "linkUrl": "http://www.mooctest.org/#/NoticeDetail/71",
-              "startTime": "2020-06-22T02:13:55.000+0000",
-              "image": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/Partner/mooctest.png",
-              "isDeleted": 0
-            }
-          ],
-          "resourceList": [
-            {
-              "code": "ANDROID",
-              "name": "Android自动化测试工具"
-            },
-            {
-              "code": "WEB",
-              "name": "WEB自动化测试工具"
-            },
-            {
-              "code": "DEVELOPE",
-              "name": "开发者测试工具"
-            },
-            {
-              "code": "REPORT",
-              "name": "报告服务"
-            }
-          ],
-          "residentAgencyList": [
-            {
-              "id": 60,
-              "userId": 99237,
-              "logo": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/Image/7f5497ce69ba414589dc52750e9ed5c9!400x400_99222_1567075603729.jpeg",
-              "name": "慕测科技",
-              "allTaskPrice": null,
-              "taskCount": null
-            },
-            {
-              "id": 51,
-              "userId": 99233,
-              "logo": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/Image/logo_99222_1566377628139.png",
-              "name": "百度众测公司",
-              "allTaskPrice": null,
-              "taskCount": null
-            }
-          ],
-          "partnerList": [
-            {
-              "id": 1,
-              "name": "南京大学",
-              "imageUrl": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/Partner/NJULogo%20%E7%B4%AB.png"
-            },
-            {
-              "id": 2,
-              "name": "慕测科技",
-              "imageUrl": "http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/Partner/mooctest.png"
-            }
-          ]
-        },
+        homeData:{},
         currTab:'homepage'
       }
     },
     methods:{
-      ...mapActions(['setHomeData']),
       loadData(){
-         this.homeData.applicationTypeList.map((item)=>{
-           item.height = (item.testTypeList.length / 2) * 24 + 100;
-           return item;
+        Http.get('/api/common/index/info').then((res)=>{
+          this.homeData = res.data;
+          this.homeData.applicationTypeList.map((item)=>{
+            item.height = (item.testTypeList.length / 2) * 24 + 100;
+            return item;
+          })
         })
-        this.setHomeData(this.homeData);
-        // Http.get('/api/common/index/info').then((res)=>{
-        //   this.setHomeData(res.data);
-        // })
       },
       handleTabClick(tab){
         this.currTab = tab.name
@@ -943,11 +187,8 @@
 
       }
     },
-    computed:{
-      ...mapGetters(['getHomeData']),
-    },
+
     mounted() {
-      console.log(this.homeTabArr);
       this.loadData();
     }
   }

+ 3 - 13
src/pages/Homepage/TestCard.vue

@@ -1,19 +1,15 @@
 <template>
   <div class="card-waterfull">
     <el-row :gutter="10">
-<!--      <el-col :span="8"   style="margin-bottom: 15px">-->
-
-<!--      </el-col>-->
-
       <waterfall
                         :line-gap="400"
                         :min-line-gap="150"
                         :max-line-gap="220"
                         :single-max-width="300"
-        :watch="getHomeData.applicationTypeList">
+        :watch="homeData.applicationTypeList">
         <!-- each component is wrapped by a waterfall slot -->
         <waterfall-slot
-          v-for="(item, index) in getHomeData.applicationTypeList"
+          v-for="(item, index) in homeData.applicationTypeList"
           width="300"
           :height="item.height"
           :order="index"
@@ -33,10 +29,6 @@
           </el-card>
         </waterfall-slot>
       </waterfall>
-
-<!--      <div style=" ">-->
-<!--        -->
-<!--      </div>-->
     </el-row>
   </div>
 </template>
@@ -47,6 +39,7 @@
   import {mapGetters} from  'vuex'
   export default {
     name: "TestCard",
+    props:['homeData'],
     data(){
       return{
       }
@@ -55,9 +48,6 @@
       Waterfall,
       WaterfallSlot
     },
-    computed:{
-      ...mapGetters(['getHomeData'])
-    },
     mounted() {
 
     }

+ 14 - 11
src/pages/Square/Square2.0.vue

@@ -44,6 +44,16 @@
               <SquareCard :card="item"></SquareCard>
             </el-col>
           </el-row>
+          <el-pagination
+            v-if="currTab!=='squareHome'&&projectAndTaskArr&&projectAndTaskArr.length"
+            :page-size="9"
+            layout="prev, pager, next"
+            :total="totalElements"
+            :current-page = "activePage"
+            @current-change="handlePageChange"
+            class="pull-right"
+          >
+          </el-pagination>
         </el-col>
         <el-col :span="6"  class="popular-modules" style="padding-left: 15px">
           <PopularProject :hotCrowdTestProjectVOs="hotCrowdTestProjectVOs" style="margin-bottom: 15px"/>
@@ -81,6 +91,7 @@
         hotCrowdTestProjectVOs:[],
         hotCrowdTaskVOs:[],
         activePage:1,
+        totalElements:0
       }
     },
     components: {
@@ -103,15 +114,13 @@
           this.loadData();
         }else{
           this.searchType = this.currTab;
-          // let searchType = this.menuArr.find(item=>{
-          //   return item.name === this.currTab
-          // }).value;
           this.handleSearchData();
         }
       },
       handleTypeClick(tab){
         this.searchType = tab.name;
       },
+
       loadData(){
         Http.get('/api/square/list').then((res)=>{
           let crowdTestProjectVOs = res.data.crowdTestProjectVOs;
@@ -135,16 +144,10 @@
             ]
         };
         Http.post(url,params).then((res)=>{
-          console.log(res);
           this.currTab = this.searchType;
-          // if(this.searchType === 'project'){
-          //   this.currTab = 'testProject'
-          // }
-          // if(this.searchType === 'task') {
-          //   this.currTab = 'testTask'
-          // }
           this.projectAndTaskArr = res.data.content;
-          this.activePage = 1
+          this.activePage = 1;
+          this.totalElements=res.data.totalElements;
         })
       },
       handlePageChange(index){

+ 0 - 116
src/pages/Square/SquareProject.vue

@@ -1,116 +0,0 @@
-<template>
-  <div>
-    <SearchBar :tabArr="tabArr" :menuArr="menuArr"></SearchBar>
-    <div class="container">
-      <el-row>
-        <el-col :span="18" class="project-task">
-          <!--          <el-row :gutter="15" v-for="(item,index) in projectAndTaskArr" :key="index" style="margin-bottom: 10px">-->
-          <!--            <el-col :span="8" v-for="card in item" :key="card.id">-->
-          <!--              <SquareCard :card="card"></SquareCard>-->
-          <!--            </el-col>-->
-          <!--          </el-row>-->
-          <el-row :gutter="15"  style="margin-bottom: 10px">
-            <el-col :span="8" v-for="(item,index) in projectAndTaskArr" :key="index" style="margin-bottom: 15px">
-              <SquareCard :card="item"></SquareCard>
-            </el-col>
-          </el-row>
-        </el-col>
-        <el-col :span="6"  class="popular-modules" style="padding-left: 15px">
-          <PopularProject :hotCrowdTestProjectVOs="hotCrowdTestProjectVOs" style="margin-bottom: 15px"/>
-          <PopularTask :hotCrowdTaskVOs="hotCrowdTaskVOs"/>
-        </el-col>
-      </el-row>
-    </div>
-  </div>
-</template>
-
-<script>
-  import Http from '@/js/http.js'
-  import SearchBar from '../../components/commons/SearchBar'
-  import SquareCard from './SquareCard'
-  import PopularProject from './PopularProject'
-  import PopularTask from './PopularTask'
-  import { mapActions ,mapGetters} from 'vuex';
-  export default {
-    name: 'SquareProject',
-    data(){
-      return {
-        tabArr : [
-          {label:"项目",name:"project"},
-          {label:"任务",name:"task"}
-        ],
-        menuArr: [
-          {label:"首页",name:"squareHome"},
-          {label:"测试项目",name:"testProject"},
-          {label:"测试任务",name:"testTask"}
-        ],
-        projectAndTaskArr:[],
-        hotCrowdTestProjectVOs:[],
-        hotCrowdTaskVOs:[],
-        activePage:1,
-        keyword:''
-      }
-    },
-    components: {
-      SearchBar,
-      SquareCard,
-      PopularProject,
-      PopularTask
-    },
-    computed:{
-      ...mapGetters(['getActiveTab']),
-      // currTab: {
-      //   get() {
-      //     // if(this.getActiveTab === 'squareHome'){
-      //     //   this.loadData();
-      //     // }
-      //     // if(this.getActiveTab === 'testProject'){
-      //     //   this.loadTestProject();
-      //     // }
-      //     return this.getActiveTab;
-      //   },
-      //   set(){}
-      // }
-    },
-    methods:{
-
-      loadData(){
-        let url = '/api/square/project/list';
-        let params = {
-          "keyword": this.$route.query.id,
-          "activePage": this.activePage,
-          "columnFilters":
-            [
-              {
-                "field": "type",
-                "type": "项目" // 改成任务时任务查询
-              }
-            ]
-        };
-        Http.post(url,params)
-          .then(res=>{
-            console.log(res);
-          })
-        },
-    },
-    mounted() {
-      console.log('project page')
-      this.loadData();
-      this.setActiveTab('squareProject');
-    }
-  }
-</script>
-
-<style lang="less">
-  .project-task {
-    padding: 15px 0;
-    .el-card {
-      border: none;
-    }
-  }
-
-  .popular-modules {
-    padding: 15px 0 15px 15px;
-  }
-
-</style>

+ 0 - 119
src/pages/Square/SquareTask.vue

@@ -1,119 +0,0 @@
-<template>
-  <div>
-    <SearchBar :tabArr="tabArr" :menuArr="menuArr"></SearchBar>
-    <div class="container">
-      <el-row>
-        <el-col :span="18" class="project-task">
-          <!--          <el-row :gutter="15" v-for="(item,index) in projectAndTaskArr" :key="index" style="margin-bottom: 10px">-->
-          <!--            <el-col :span="8" v-for="card in item" :key="card.id">-->
-          <!--              <SquareCard :card="card"></SquareCard>-->
-          <!--            </el-col>-->
-          <!--          </el-row>-->
-          <el-row :gutter="15"  style="margin-bottom: 10px">
-            <el-col :span="8" v-for="(item,index) in projectAndTaskArr" :key="index" style="margin-bottom: 15px">
-              <SquareCard :card="item"></SquareCard>
-            </el-col>
-          </el-row>
-        </el-col>
-        <el-col :span="6"  class="popular-modules" style="padding-left: 15px">
-          <PopularProject :hotCrowdTestProjectVOs="hotCrowdTestProjectVOs" style="margin-bottom: 15px"/>
-          <PopularTask :hotCrowdTaskVOs="hotCrowdTaskVOs"/>
-        </el-col>
-      </el-row>
-    </div>
-  </div>
-</template>
-
-<script>
-  import Http from '@/js/http.js'
-  import SearchBar from '../../components/commons/SearchBar'
-  import SquareCard from './SquareCard'
-  import PopularProject from './PopularProject'
-  import PopularTask from './PopularTask'
-  import { mapActions ,mapGetters} from 'vuex';
-  export default {
-    name: 'SquareTask',
-    data(){
-      return {
-        tabArr : [
-          {label:"项目",name:"project"},
-          {label:"任务",name:"task"}
-        ],
-        menuArr: [
-          {label:"首页",name:"squareHome"},
-          {label:"测试项目",name:"testProject"},
-          {label:"测试任务",name:"testTask"}
-        ],
-        projectAndTaskArr:[],
-        hotCrowdTestProjectVOs:[],
-        hotCrowdTaskVOs:[],
-        activePage:1,
-        keyword:''
-      }
-    },
-    components: {
-      SearchBar,
-      SquareCard,
-      PopularProject,
-      PopularTask
-    },
-    computed:{
-      ...mapGetters(['getActiveTab']),
-      currTab: {
-        get() {
-          if(this.getActiveTab === 'squareHome'){
-            this.loadData();
-          }
-          if(this.getActiveTab === 'testProject'){
-            this.loadTestProject();
-          }
-          return this.getActiveTab;
-        },
-        set(){}
-      }
-    },
-    methods:{
-      ...mapActions(['setActiveTab']),
-      loadData(){
-        Http.get('/api/square/list').then((res)=>{
-          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;
-          // for(var i=0;i<projectAndTaskArr.length;i+=3){
-          //   this.projectAndTaskArr.push(projectAndTaskArr.slice(i,i+3));
-          // }
-        })
-      },
-      loadTestProject(){
-        let url = '/api/square/project/list';
-        let params = {"keyword": this.keyword,"activePage":this.activePage}
-        Http.get(url,params)
-          .then(res=>{
-            console.log(res);
-          })
-      },
-    },
-    mounted() {
-      this.loadData();
-      this.setActiveTab('squareTask');
-      this.loadTestProject();
-    }
-  }
-</script>
-
-<style lang="less">
-  .project-task {
-    padding: 15px 0;
-    .el-card {
-      border: none;
-    }
-  }
-
-  .popular-modules {
-    padding: 15px 0 15px 15px;
-  }
-
-</style>

+ 5 - 2
src/pages/Technology/Technology2.0.vue

@@ -36,7 +36,9 @@
     <div class="container" style="margin: 15px auto">
       <el-row>
         <el-col :span="18" class="project-task">
-          <TechnologyCard :techArticleList = techArticleList.content v-if="searchType=='0'"></TechnologyCard>
+          <TechnologyCard
+            :techArticleList = techArticleList.content v-if="searchType=='0'" @refreshList="loadTechnologyArticles">
+          </TechnologyCard>
           <TechnologyMG :techArticleList = techArticleList.content v-if="searchType=='1'"></TechnologyMG>
           <el-pagination
             v-if="techArticleList.content&&techArticleList.content.length"
@@ -44,6 +46,7 @@
             layout="prev, pager, next"
             :total="techArticleList.totalElements"
             @current-change="handlePageChange"
+            :current-page = activePage
             class="pull-right"
           >
           </el-pagination>
@@ -104,7 +107,7 @@
       },
       loadHotArticles(){
         Http.get('/api/technical/ranking').then((res)=>{
-          this.articleArr = res;
+          this.articleArr = res.data.technicalArticlesPage.content;
         })
       },
       loadTechnologyArticles(){

+ 0 - 109
src/pages/Technology/TechnologyArticle2.0.vue

@@ -1,109 +0,0 @@
-<template>
-  <div class="technology-container">
-    <SearchBar :menuArr="menuArr"></SearchBar>
-    <div class="container" style="margin: 15px auto">
-      <el-row>
-        <el-col :span="18" class="project-task">
-          <TechnologyCard></TechnologyCard>
-          <el-pagination
-            :page-size="10"
-            layout="prev, pager, next"
-            :total="techArticleList.totalElements"
-            @current-change="handlePageChange"
-            class="pull-right"
-          >
-          </el-pagination>
-        </el-col>
-        <el-col :span="6"  class="popular-modules">
-          <HotActicle :articleArr="articleArr"/>
-        </el-col>
-      </el-row>
-    </div>
-  </div>
-</template>
-
-<script>
-  import Http from '@/js/http.js'
-  import SearchBar from '../../components/commons/SearchBar'
-  import TechnologyCard from './TechnologyCard'
-  import HotActicle from './HotActicle'
-  import PopularProject from '../Square/PopularProject'
-  import qs from 'querystring'
-  import { mapActions } from 'vuex';
-
-  export default {
-    name: 'TechnologyArticle2.0',
-    components: {
-      SearchBar,
-      TechnologyCard,
-      PopularProject,
-      HotActicle
-    },
-    data(){
-      return {
-        activeTab:'article',
-        menuArr: [
-          {label:"技术文章",name:"article"},
-          {label:"技术专著",name:"monograph"},
-        ],
-        articleArr:[],
-        keyword:"",
-        activePage:1,
-        techArticleList:{}
-      }
-    },
-    methods:{
-      ...mapActions(['setTechArticleList','setCurrentTab']),
-      loadHotArticles(){
-        Http.get('/api/technical/ranking').then((res)=>{
-          this.articleArr = res;
-        })
-      },
-      loadTechnologyArticles(){
-        // let url=`/api/technical/articles?searchCondition={"keyword":"${this.keyword}","activePage":${this.activePage}}`;
-        // Http.get(encodeURI(url))
-        let url = '/api/technical/articles';
-        let keyword = this.$route.query.keyword ? this.$route.query.keyword :this.keyword
-        let params = {"keyword": keyword,"activePage":this.activePage}
-        Http.post(url,params)
-          .then(res=>{
-            this.techArticleList = res.data.technicalArticlespage;
-            this.setTechArticleList(this.techArticleList);
-          })
-      },
-      handlePageChange(index){
-        this.activePage = index;
-        this.loadTechnologyArticles();
-      },
-      fetchData(newVal, oldVa) {
-        console.log(oldVa)//oldVa 上一次url
-        console.log(newVal);//newVal 这一次的url
-      }
-
-    },
-    mounted() {
-      this.setCurrentTab('article');
-      console.log(this.$route.query.keyword);
-      this.loadHotArticles();
-      this.loadTechnologyArticles();
-      // this.setCurrentTab('technology');
-
-    },
-    watch: {
-      $route: "fetchData"
-    }
-    }
-</script>
-
-<style scoped lang="less">
-  .technology-container {
-    /deep/ .search-input,/deep/ .releaseBtn{
-      margin: 20px 0 0 0 !important;
-    }
-
-    .popular-modules {
-      padding-left: 15px;
-    }
-  }
-
-</style>

+ 13 - 3
src/pages/Technology/TechnologyCard.vue

@@ -2,7 +2,7 @@
   <div class="technology-card">
     <div class="card-wrapper" v-if="techArticleList&&techArticleList.length">
       <el-card  v-for="item in techArticleList" :key="item.id"  style="margin-bottom: 15px">
-        <el-row>
+        <el-row @click.native="gotoDetail(item)">
           <el-col :span="6">
             <img :src="item.photoUrl" alt="technology-img" class="pull-left technology-img">
           </el-col>
@@ -20,7 +20,7 @@
                   来源:{{item.source}}
                 </el-col>
                 <el-col :span="4" style="color: rgba(103,103,103,0.7)">
-                  {{item.creatrTime}}
+                  {{item.time_interval}}
                 </el-col>
                 <el-col :span="8">
                   <span style="color: rgba(0,117,203,1)">{{item.reading}}</span>阅读
@@ -39,9 +39,19 @@
 
 <script>
   import { mapGetters } from 'vuex';
+  import Http from '@/js/http.js'
   export default {
     name: 'TechnologyCard',
-    props:['techArticleList']
+    props:['techArticleList'],
+    methods:{
+      gotoDetail(item){
+        //增加访问量
+        Http.get(`/api/technical/updateranking/${item.id}`).then(()=>{
+          this.$emit('refreshList');
+          window.open(item.articlesUrl);
+        })
+      }
+    }
   }
 </script>
 

+ 13 - 3
src/pages/Technology/TechnologyMG.vue

@@ -2,11 +2,14 @@
   <div class="technology-card">
     <div class="card-wrapper" v-if="techArticleList&&techArticleList.length">
       <el-card  v-for="item in techArticleList" :key="item.id"  style="margin-bottom: 15px">
-        <el-row>
+        <el-row @click.native="gotoDetail(item)">
             <div class="technology-title">
               {{item.longTitle}}
             </div>
-          <div style="margin: 10px 0">
+          <div class="technology-info">
+            发表年份:{{item.publicYear}}
+          </div>
+          <div class="technology-info">
             会议:{{item.conferenceJournal}}
           </div>
             <div class="technology-info">
@@ -27,7 +30,13 @@
   import { mapGetters } from 'vuex';
   export default {
     name: 'TechnologyMG',
-    props:['techArticleList']
+    props:['techArticleList'],
+    methods:{
+      gotoDetail(item){
+        console.log('aaa');
+        item.chineseBrief ? window.open(item.chineseBrief) : null
+      }
+    }
   }
 </script>
 
@@ -49,6 +58,7 @@
         font-family:Source Han Sans CN;
         font-weight:400;
         color:rgba(0,0,0,1);
+        margin: 10px 0
       }
     }
   }

+ 0 - 98
src/pages/Technology/TechnologyMG2.0.vue

@@ -1,98 +0,0 @@
-<template>
-  <div class="technology-container">
-    <SearchBar :menuArr="menuArr"></SearchBar>
-    <div class="container" style="margin: 15px auto">
-      <el-row>
-        <el-col :span="18" class="project-task">
-          <TechnologyCard></TechnologyCard>
-          <el-pagination
-            :page-size="10"
-            layout="prev, pager, next"
-            :total="techArticleList.totalElements"
-            @current-change="handlePageChange"
-            class="pull-right"
-          >
-          </el-pagination>
-        </el-col>
-        <el-col :span="6"  class="popular-modules">
-          <HotActicle :articleArr="articleArr"/>
-        </el-col>
-      </el-row>
-    </div>
-  </div>
-</template>
-
-<script>
-  import Http from '@/js/http.js'
-  import SearchBar from '../../components/commons/SearchBar'
-  import TechnologyCard from './TechnologyCard'
-  import HotActicle from './HotActicle'
-  import PopularProject from '../Square/PopularProject'
-  import qs from 'querystring'
-  import { mapActions } from 'vuex';
-
-  export default {
-    name: 'TechnologyMG2.0',
-    components: {
-      SearchBar,
-      TechnologyCard,
-      PopularProject,
-      HotActicle
-    },
-    data(){
-      return {
-        activeTab:'article',
-        menuArr: [
-          {label:"技术文章",name:"article"},
-          {label:"技术专著",name:"monograph"},
-        ],
-        articleArr:[],
-        keyword:"",
-        activePage:1,
-        techArticleList:{}
-      }
-    },
-    methods:{
-      ...mapActions(['setTechArticleList','setCurrentTab']),
-      loadHotArticles(){
-        Http.get('/api/technical/ranking').then((res)=>{
-          this.articleArr = res;
-        })
-      },
-      loadTechnologyArticles(){
-        // let url=`/api/technical/articles?searchCondition={"keyword":"${this.keyword}","activePage":${this.activePage}}`;
-        // Http.get(encodeURI(url))
-        let url = '/api/technical/articles';
-        let params = {"keyword": this.keyword,"activePage":this.activePage}
-        Http.post(url,params)
-          .then(res=>{
-            this.techArticleList = res.data.technicalArticlespage;
-            this.setTechArticleList(this.techArticleList);
-          })
-      },
-      handlePageChange(index){
-        this.activePage = index;
-        this.loadTechnologyArticles();
-      }
-    },
-    mounted() {
-      this.loadHotArticles();
-      this.loadTechnologyArticles();
-      this.setCurrentTab('technology');
-      this.setCurrentTab('article');
-    }
-  }
-</script>
-
-<style scoped lang="less">
-  .technology-container {
-    /deep/ .search-input,/deep/ .releaseBtn{
-      margin: 20px 0 0 0 !important;
-    }
-
-    .popular-modules {
-      padding-left: 15px;
-    }
-  }
-
-</style>

+ 1 - 37
src/router/index.js

@@ -253,25 +253,7 @@ export default new Router({
       },
     },
     {
-      path: '/square/task',
-      name: 'SquareTask',
-      component: resolve => require(['@/pages/Square/SquareTask.vue'], resolve),
-      meta: {
-        title: '',
-        requireAuth: false,
-      },
-    },
-    {
-      path: '/square/project',
-      name: 'SquareProject',
-      component: resolve => require(['@/pages/Square/SquareProject.vue'], resolve),
-      meta: {
-        title: '',
-        requireAuth: false,
-      },
-    },
-    {
-      path: '/technology/',
+      path: '/technology',
       name: 'Technology',
       component: resolve => require(['@/pages/Technology/Technology2.0.vue'], resolve),
       meta: {
@@ -279,24 +261,6 @@ export default new Router({
         requireAuth: false,
       },
     },
-    {
-      path: '/technology/article',
-      name: 'TechnologyArticle2.0',
-      component: resolve => require(['@/pages/Technology/TechnologyArticle2.0.vue'], resolve),
-      meta: {
-        title: '',
-        requireAuth: false,
-      },
-    },
-    {
-      path: '/technology/monograph',
-      name: 'TechnologyMG2.0',
-      component: resolve => require(['@/pages/Technology/TechnologyMG2.0.vue'], resolve),
-      meta: {
-        title: '',
-        requireAuth: false,
-      },
-    },
   ]
 })
 const originalPush = Router.prototype.push