|
|
@@ -0,0 +1,119 @@
|
|
|
+<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>
|