guochao 6 سال پیش
والد
کامیت
8cabed5f2a

+ 1 - 1
src/components/Home.vue

@@ -182,7 +182,7 @@ export default {
   .btn-home-apply {
     position: absolute;
     bottom: 10%;
-    left: 20%;
+    left: 80%;
   }
 
   .home-block {

+ 7 - 7
src/components/InstitutionRank.vue

@@ -1,17 +1,17 @@
 <template>
   <div>
-    <el-table :data="tableData" :showHeader="false" border style="width: 100%">
-      <el-table-column type="index" width="50"></el-table-column>
-      <el-table-column prop="logo" width="120">
-        <template slot-scope="scope">
+    <el-table :data="tableData" :showHeader="true" border style="width: 100%">
+      <el-table-column type="index" width="50" label="排名"></el-table-column>
+      <el-table-column prop="logo" width="120" label="机构logo">
+        <template slot-scope="scope" >
           <img class="logo-img" :src="scope.row.logo==null?defaultValue.image:scope.row.logo"/>
         </template>
       </el-table-column>
-      <el-table-column prop="name">
+      <el-table-column prop="name" label="机构名称">
         <template slot-scope="scope"><span class="institution-name" style="font-size: 12px">{{scope.row.name}}</span></template>
       </el-table-column>
-      <el-table-column prop="name">
-        <template slot-scope="scope"><span class="institution-name" style="font-size: 12px">总任务金额:{{scope.row.allTaskPrice}}</span></template>
+      <el-table-column prop="name" label="积分">
+        <template slot-scope="scope"><span class="institution-name" style="font-size: 12px"><el-tag type="primary">{{scope.row.allTaskPrice}}</el-tag></span></template>
       </el-table-column>
     </el-table>
   </div>

+ 43 - 39
src/components/Mine.vue

@@ -52,10 +52,10 @@
     <!--</el-row>-->
     <!--</div>-->
     <div class="mine-body" style="text-align: center;">
-      <el-tabs  v-loading="loading" style="width: 90%;margin-left: 5%">
+      <el-tabs v-loading="loading" style="width: 90%;margin-left: 5%">
         <el-tab-pane label="未完成任务">
-          <el-row v-if="unFinishedTaskList != null && unFinishedTaskList.length != 0" type="flex" align="middle" justify="center"  style="font-size: 14px;">
-
+          <el-row v-if="unFinishedTaskList != null && unFinishedTaskList.length != 0" type="flex" align="middle"
+                  justify="center" style="font-size: 14px;">
             <el-col :span="6">任务封面</el-col>
             <el-col :span="5">任务名称</el-col>
             <el-col :span="5">任务类型</el-col>
@@ -67,7 +67,8 @@
                      v-for="(item,index1) in unFinishedTaskList" :key="index1" :task="item"/>
         </el-tab-pane>
         <el-tab-pane label="已完成任务">
-          <el-row v-if="finishedTaskList != null && finishedTaskList.length != 0" type="flex" align="middle" justify="center"  style="font-size: 14px;">
+          <el-row v-if="finishedTaskList != null && finishedTaskList.length != 0" type="flex" align="middle"
+                  justify="center" style="font-size: 14px;">
 
             <el-col :span="6">任务封面</el-col>
             <el-col :span="5">任务名称</el-col>
@@ -82,18 +83,20 @@
 
         <el-tab-pane label="我的项目">
           <span v-if="myProjects == null || myProjects.length == 0"> 暂无项目 </span>
-          <el-row v-if="myProjects != null && myProjects.length != 0" type="flex" align="middle" justify="center"  style="font-size: 14px;">
-            <el-col :span="6">项目图片</el-col>
-            <el-col :span="6">项目名称</el-col>
-            <el-col :span="6">项目平台</el-col>
-            <el-col :span="2">项目预算</el-col>
-            <el-col :span="4">操作</el-col>
+          <el-row v-if="myProjects != null && myProjects.length != 0" type="flex" align="middle" justify="center"
+                  style="font-size: 14px;">
+            <el-col :span="6" type="flex" align="middle" justify="center">项目图片</el-col>
+            <el-col :span="6" type="flex" align="middle" justify="center">项目名称</el-col>
+            <el-col :span="6" type="flex" align="middle" justify="center">项目平台</el-col>
+            <el-col :span="2" type="flex" align="middle" justify="center">项目预算</el-col>
+            <el-col :span="4" type="flex" align="middle" justify="center">操作</el-col>
           </el-row>
           <project-item v-if="myProjects != null || myProjects.length > 0"
                         v-for="(item,index3) in myProjects" :key="index3" :projectItem="item"/>
         </el-tab-pane>
         <el-tab-pane label="处理中项目">
-          <el-row v-if="handlingProjects != null && handlingProjects.length != 0" type="flex" align="middle" justify="center"  style="font-size: 14px;">
+          <el-row v-if="handlingProjects != null && handlingProjects.length != 0" type="flex" align="middle"
+                  justify="center" style="font-size: 14px;">
             <el-col :span="6">项目图片</el-col>
             <el-col :span="6">项目名称</el-col>
             <el-col :span="6">项目平台</el-col>
@@ -105,7 +108,8 @@
                         v-for="(item,index4) in handlingProjects" :key="index4" :projectItem="item"/>
         </el-tab-pane>
         <el-tab-pane label="可接收项目">
-          <el-row v-if="acceptableProjects != null && acceptableProjects.length != 0" type="flex" align="middle" justify="center"  style="font-size: 14px;">
+          <el-row v-if="acceptableProjects != null && acceptableProjects.length != 0" type="flex" align="middle"
+                  justify="center" style="font-size: 14px;">
             <el-col :span="6">项目图片</el-col>
             <el-col :span="6">项目名称</el-col>
             <el-col :span="6">项目平台</el-col>
@@ -144,7 +148,7 @@ export default {
   },
   data () {
     return {
-      loading:false,
+      loading: false,
       unFinishedTaskList: [],
       finishedTaskList: [],
       appliedProjectList: [],
@@ -209,9 +213,9 @@ export default {
         // if (res.userVO != null && res.userVO.length > 0) {
         //   this.user = res.userVO
         // }
-      }).catch((error)=>{
+      }).catch((error) => {
         this.hideLoading()
-        notify('error','加载失败:'+error.data)
+        notify('error', '加载失败:' + error.data)
       })
     },
     setUserInfo () {
@@ -232,71 +236,71 @@ export default {
           //trigger: 'axis'
         },
         legend: {
-          data:['接收项目数量','完成项目数量','接收任务数量','完成任务数量','发布项目数量']
+          data: ['接收项目数量', '完成项目数量', '接收任务数量', '完成任务数量', '发布项目数量']
         },
         grid: {
           left: '5%',
           right: '8%',
           bottom: '3%',
-          top:'10%',
+          top: '10%',
           containLabel: true
         },
         toolbox: {
           feature: {
             saveAsImage: {
-              title:'保存为图片',
-              name:'我的众测'
+              title: '保存为图片',
+              name: '我的众测'
             }
           },
-          right:'20px'
+          right: '20px'
         },
         xAxis: {
           type: 'category',
           boundaryGap: false,
-          data: ['2019年5月','2019年6月','2019年7月','2019年8月','2019年9月','2019年10月','2019年11月']
+          data: ['2019年5月', '2019年6月', '2019年7月', '2019年8月', '2019年9月', '2019年10月', '2019年11月']
         },
         yAxis: {
           type: 'value'
         },
         series: [
           {
-            name:'接收项目数量',
-            type:'line',
+            name: '接收项目数量',
+            type: 'line',
             stack: '总量',
-            data:[120, 132, 101, 134, 90, 230, 210]
+            data: [120, 132, 101, 134, 90, 230, 210]
           },
           {
-            name:'完成项目数量',
-            type:'line',
+            name: '完成项目数量',
+            type: 'line',
             stack: '总量',
-            data:[220, 182, 191, 234, 290, 330, 310]
+            data: [220, 182, 191, 234, 290, 330, 310]
           },
           {
-            name:'接收任务数量',
-            type:'line',
+            name: '接收任务数量',
+            type: 'line',
             stack: '总量',
-            data:[150, 232, 201, 154, 190, 330, 410]
+            data: [150, 232, 201, 154, 190, 330, 410]
           },
           {
-            name:'完成任务数量',
-            type:'line',
+            name: '完成任务数量',
+            type: 'line',
             stack: '总量',
-            data:[320, 332, 301, 334, 390, 330, 320]
+            data: [320, 332, 301, 334, 390, 330, 320]
           },
           {
-            name:'发布项目数量',
-            type:'line',
+            name: '发布项目数量',
+            type: 'line',
             stack: '总量',
-            data:[820, 932, 901, 934, 1290, 1330, 1320]
+            data: [820, 932, 901, 934, 1290, 1330, 1320]
           }
         ]
-      };
+      }
       myChart.setOption(option)
     },
-    showLoading(){
+    showLoading () {
       this.loading = true
     },
-    hideLoading(){
+    hideLoading () {
       this.loading = false
     }
   },

+ 6 - 6
src/components/PersonRank.vue

@@ -1,17 +1,17 @@
 <template>
   <div>
-    <el-table :data="tableData" :showHeader="false" border style="width: 100%">
-      <el-table-column type="index" width="50"></el-table-column>
-      <el-table-column prop="logo" width="70">
+    <el-table :data="tableData" showHeader="true" border style="width: 100%">
+      <el-table-column type="index" width="50" label="排名"></el-table-column>
+      <el-table-column prop="logo" width="70" label="头像">
         <template slot-scope="scope">
           <img class="user-img" :src="scope.row.logo==null?defaultValue.image:scope.row.logo"/>
         </template>
       </el-table-column>
-      <el-table-column prop="name">
+      <el-table-column prop="name" label="用户名">
         <template slot-scope="scope"><span class="institution-style" style="font-size: 12px">{{scope.row.name}}</span></template>
       </el-table-column>
-      <el-table-column prop="number">
-        <template slot-scope="scope"><span class="institution-style" style="font-size: 12px">总项目金额:{{scope.row.allProjectPrice}}</span></template>
+      <el-table-column prop="number" label="积分">
+        <template slot-scope="scope"><span class="institution-style" style="font-size: 12px"><el-tag type="primary">{{scope.row.allProjectPrice}}</el-tag></span></template>
       </el-table-column>
     </el-table>
   </div>

+ 23 - 57
src/components/cheat/AgencyAdd.vue

@@ -3,34 +3,23 @@
     <div class="create-body">
       <div class="title">添加机构</div>
       <el-form v-loading="loading" :model="agency" :rules="rules" ref="agency" label-width="12%" class="demo-report">
-        <!--<el-form-item prop="file" label="头像">-->
-        <!--<el-row class="demo-avatar demo-basic">-->
-        <!--<el-col :span="12">-->
-        <!--<div class="demo-basic&#45;&#45;circle">-->
-        <!--<div class="block">-->
-        <!--<el-avatar :size="200" src="https://www.baidu.com/img/bd_logo1.png"></el-avatar>-->
-        <!--</div>-->
-        <!--</div>-->
-        <!--</el-col>-->
-        <!--</el-row>- -->
-        <!--</el-form-item>-->
         <el-form-item label="机构名称" prop="name">
-          <el-input v-if="isModifyMode" v-model="agency.name"></el-input>
+          <el-input size="small" v-if="isModifyMode" v-model="agency.name"></el-input>
           <!--<span v-if="!isModifyMode">{{agency.name}}</span>-->
         </el-form-item>
-        <el-form-item label="机构电话" prop="mobile">
+        <el-form-item size="small" label="机构电话" prop="mobile">
           <el-input v-if="isModifyMode" v-model="agency.mobile"></el-input>
           <!--<span v-if="!isModifyMode">{{agency.name}}</span>-->
         </el-form-item>
-        <el-form-item label="机构邮箱" prop="email">
+        <el-form-item size="small" label="机构邮箱" prop="email">
           <el-input v-if="isModifyMode" v-model="agency.email"></el-input>
           <!--<span v-if="!isModifyMode">{{agency.name}}</span>-->
         </el-form-item>
-        <el-form-item label="银行卡账户" prop="bankAccount">
+        <el-form-item size="small" label="银行卡账户" prop="bankAccount">
           <el-input v-if="isModifyMode" v-model="agency.bankAccount"></el-input>
           <!--<span v-if="!isModifyMode">{{agency.bankAccount}}</span>-->
         </el-form-item>
-        <el-form-item label="地址" prop="address">
+        <el-form-item size="small" label="地址" prop="address">
           <el-input v-if="isModifyMode" v-model="agency.address"></el-input>
           <!--<span v-if="!isModifyMode">{{agency.address}}</span>-->
         </el-form-item>
@@ -45,7 +34,7 @@
         </el-form-item>
         <el-form-item label="测评机构资源" prop="resource">
           <span v-for="item in agency.evaluationAgencyResourceList" :key="item.id">
-            资源类型:&nbsp;<el-select v-model="item.type" placeholder="请选择" style="width: 15%;margin-bottom: 10px"
+            资源类型:&nbsp;<el-select size="small" v-model="item.type" placeholder="请选择" style="width: 15%;margin-bottom: 10px"
                                   :value="item.type">
               <el-option
                 v-for="item in resourceTypes"
@@ -54,49 +43,14 @@
                 :value="item">
               </el-option>
             </el-select>
-            资源名称:&nbsp;<el-input v-model="item.name" style="width: 15%"></el-input>
-            总量:&nbsp;<el-input-number :min="0" v-model="item.totalNum"></el-input-number>
-            可用数量:&nbsp;<el-input-number :min="0" :max="item.totalNum" v-model="item.availableNum"></el-input-number>
-            <el-button type="danger" icon="el-icon-delete" @click="removeAgencyResource(item.id)"></el-button>
+            资源名称:&nbsp;<el-input size="small" v-model="item.name" style="width: 15%"></el-input>
+            总量:&nbsp;<el-input-number size="small" :min="0" v-model="item.totalNum"></el-input-number>
+            可用数量:&nbsp;<el-input-number size="small" :min="0" :max="item.totalNum" v-model="item.availableNum"></el-input-number>
+            <el-button size="small" type="danger" icon="el-icon-delete" @click="removeAgencyResource(item.id)"></el-button>
             <br/>
           </span>
-          <el-button type="primary" icon="el-icon-circle-plus" plain size="small" @click="addAgencyResource">添加资源
+          <el-button  type="primary" icon="el-icon-circle-plus" plain size="mini" @click="addAgencyResource">添加资源
           </el-button>
-          <!--<div>-->
-          <!--<el-row>-->
-          <!--<el-col :span="2">-->
-          <!--<span>专家数量</span>-->
-          <!--</el-col>-->
-          <!--<el-col :span="10">-->
-          <!--共&nbsp;&nbsp;<el-input-number :min="0" v-model="agency.professionalsCount"-->
-          <!--placeholder="0"></el-input-number>&nbsp;&nbsp;人,-->
-          <!--可用&nbsp;&nbsp;<el-input-number :min="0" v-model="agency.professionalsFreeCount"-->
-          <!--placeholder="0"></el-input-number>&nbsp;&nbsp;人;-->
-          <!--</el-col>-->
-          <!--</el-row>-->
-          <!--<el-row>-->
-          <!--<el-col :span="2">-->
-          <!--<span>服务器数量</span>-->
-          <!--</el-col>-->
-          <!--<el-col :span="10">-->
-          <!--共&nbsp;&nbsp;<el-input-number :min="0" v-model="agency.serversCount" placeholder="0"></el-input-number>&nbsp;&nbsp;台,-->
-          <!--可用&nbsp;&nbsp;<el-input-number :min="0" v-model="agency.serversFreeCount"-->
-          <!--placeholder="0"></el-input-number>&nbsp;&nbsp;台;-->
-          <!--</el-col>-->
-          <!--</el-row>-->
-          <!--<el-row>-->
-          <!--<el-col :span="2">-->
-          <!--<span>专用设备数量</span>-->
-          <!--</el-col>-->
-          <!--<el-col :span="10">-->
-          <!--共&nbsp;&nbsp;<el-input-number :min="0" v-model="agency.devicesCount" placeholder="0"></el-input-number>&nbsp;&nbsp;台,-->
-          <!--可用&nbsp;&nbsp;<el-input-number :min="0" v-model="agency.devicesFreeCount"-->
-          <!--placeholder="0"></el-input-number>&nbsp;&nbsp;台。-->
-          <!--</el-col>-->
-          <!--</el-row>-->
-          <!--</div>-->
-          <!--<el-input v-if="isModifyMode" v-model="agency.resource"></el-input>-->
-          <!--<span v-if="!isModifyMode">{{agency.resource}}</span>-->
         </el-form-item>
         <el-form-item prop="file" label="机构logo">
           <el-upload
@@ -243,6 +197,18 @@ export default {
           {type: 'array', required: true, message: '请至少选择一个机构能力', trigger: 'change'}
           // { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }
         ],
+        evaluationAgencyResourceList:[
+          {
+            validator: (rule, value, callback) => {
+              console.log(value)
+              if (true) {
+                callback(new Error('定向发布至少要选择一个区域管理员'))
+              } else {
+                callback()
+              }
+            }, trigger: 'change'
+          },
+        ]
       },
       tableData: [{
         date: '2016-05-02',

+ 8 - 3
src/components/cheat/ProjectAdd.vue

@@ -48,6 +48,7 @@
               <el-upload
                 v-if="isModifyMode"
                 drag
+                style="width: 400px"
                 class="upload-demo"
                 action=""
                 :on-remove="handleRemove"
@@ -75,6 +76,7 @@
             </el-form-item>
             <el-form-item prop="file" label="项目待测文件">
               <el-upload
+                style="width: 400px"
                 v-if="isModifyMode"
                 drag
                 class="upload-demo"
@@ -125,8 +127,11 @@
         <el-tab-pane label="批量创建项目">
           <el-form :model="project" :rules="rules" ref="project" label-width="12%" class="demo-report">
             <el-form-item prop="file" label="Excel模板文件">
-              <a :href="downloadFile"><el-link :underline="false" type="primary"><i
-                class="el-icon-document"></i>下载文档</el-link></a>
+              <a :href="downloadFile">
+                <el-link :underline="false" type="primary"><i
+                  class="el-icon-document"></i>下载文档
+                </el-link>
+              </a>
             </el-form-item>
             <el-form-item type="file" prop="file" label="Excel文件">
               <el-upload
@@ -552,11 +557,11 @@ export default {
       //   })
     },
     ensureSubmitExcel () {
+      this.hideDialog()
       this.showLoading()
       Http.post(Apis.PROJECT.ADD_PROJECT_BY_EXCEL, this.projectList).then((res) => {
         notify('success', '添加成功')
         this.hideLoading()
-        this.hideDialog()
       }).catch((error) => {
         notify('error', error.data)
         this.hideLoading()

+ 31 - 18
src/components/commons/ProjectItem.vue

@@ -1,34 +1,41 @@
 <template>
   <div class="project-item-container">
     <!--<span class="col-xl-2 col-lg-3 col-md-4 col-sm-1" style="width: 150px">-->
-      <!--<img class="project-cover" src="@/assets/img/home_ban1.jpg">-->
+    <!--<img class="project-cover" src="@/assets/img/home_ban1.jpg">-->
     <!--</span>-->
     <!--<span class="project-title col-md-2 col-sm-10" style="width: 150px;font-size: 12px">{{project.name}}</span>-->
     <!--<span class="project-title col-md-2 col-sm-10" style="width: 10%;font-size: 12px">{{project.id}}</span>-->
     <!--<span class="col-md-2 col-sm-10" style="width: 10%">-->
-      <!--<span-->
-        <!--style="font-size: 10px;"-->
-        <!--v-bind:class="['badge',{ 'ios-platform': item=='IOS','android-platform': item=='ANDROID','web-platform': item=='WEB'}]"-->
-        <!--v-for="item in project.platform"-->
-      <!--&gt;{{item}}</span>-->
+    <!--<span-->
+    <!--style="font-size: 10px;"-->
+    <!--v-bind:class="['badge',{ 'ios-platform': item=='IOS','android-platform': item=='ANDROID','web-platform': item=='WEB'}]"-->
+    <!--v-for="item in project.platform"-->
+    <!--&gt;{{item}}</span>-->
     <!--</span>-->
     <!--<span class="col-md-1 col-sm-5" style="width: 10%;font-size: 12px"><div class="badge">¥{{project.budget}}</div></span>-->
     <!--<span class="project-td" style="width: 15%">-->
-      <!--<span class="btn btn-small btn-info" @click="goToProjectDetail(project.id)">查看详情</span>-->
+    <!--<span class="btn btn-small btn-info" @click="goToProjectDetail(project.id)">查看详情</span>-->
     <!--</span>-->
-    <el-row type="flex" align="middle" justify="center"  style="font-size: 14px;">
-      <el-badge :value="project.statusVO.text" class="item" :type="project.statusVO.style">
-        <el-col :span="6"><img class="project-cover" src="@/assets/img/home_ban1.jpg"></el-col>
-      </el-badge>
-      <el-col :span="6">{{project.name}}</el-col>
+    <el-row type="flex" align="middle" justify="center" style="font-size: 14px;">
+      <el-col :span="6" type="flex" align="middle" justify="center">
+        <el-badge :value="project.statusVO.text" class="item" :type="project.statusVO.style">
+          <img class="project-cover" src="@/assets/img/home_ban1.jpg">
+        </el-badge>
+      </el-col>
+      <el-col :span="6" type="flex" align="middle" justify="center">{{project.name}}</el-col>
       <!--<el-col :span="4">{{project.id}}</el-col>-->
-      <el-col :span="6">
-        <span style="font-size: 10px;" v-bind:class="['badge',{ 'ios-platform': item=='IOS','android-platform': item=='ANDROID','web-platform': item=='WEB'}]"
+      <el-col :span="6" type="flex" align="middle" justify="center">
+        <span style="font-size: 10px;"
+              v-bind:class="['badge',{ 'ios-platform': item=='IOS','android-platform': item=='ANDROID','web-platform': item=='WEB'}]"
               v-for="item in project.platform"
         >{{item}}</span>
       </el-col>
-      <el-col :span="2"><div class="badge">¥{{project.budget}}</div></el-col>
-      <el-col :span="4"><span class="btn btn-small btn-info" @click="goToProjectDetail(project.id)">查看详情</span></el-col>
+      <el-col :span="2" type="flex" align="middle" justify="center">
+        <div class="badge">¥{{project.budget}}</div>
+      </el-col>
+      <el-col :span="4" type="flex" align="middle" justify="center"><span class="btn btn-small btn-info"
+                                                                          @click="goToProjectDetail(project.id)">查看详情</span>
+      </el-col>
     </el-row>
 
 
@@ -88,7 +95,7 @@ export default {
   }
 
   .project-td {
-    padding: 15px;
+    //padding: 15px;
   }
 
   .el-row {
@@ -97,24 +104,30 @@ export default {
       margin-bottom: 0;
     }
   }
+
   .el-col {
     border-radius: 4px;
   }
+
   .bg-purple-dark {
     background: #99a9bf;
   }
+
   .bg-purple {
     background: #d3dce6;
   }
+
   .bg-purple-light {
     background: #e5e9f2;
   }
+
   .grid-content {
     border-radius: 4px;
     min-height: 36px;
   }
+
   .row-bg {
-    padding: 10px 0;
+    //padding: 10px 0;
     background-color: #f9fafc;
   }
 </style>

+ 15 - 11
src/components/commons/TaskItem.vue

@@ -1,17 +1,21 @@
 <template>
   <div class="task-item-container">
     <el-row type="flex" align="middle" justify="center" style="font-size: 14px;">
-      <el-badge :value="taskTable.statusVO.text" class="item" :type="taskTable.statusVO.style">
-        <el-col :span="6"><img class="task-cover" src="@/assets/img/home_ban1.jpg"></el-col>
-      </el-badge>
-
-      <el-col :span="5">{{taskTable.title}}</el-col>
+      <el-col :span="6" type="flex" align="middle" justify="center">
+        <el-badge :value="taskTable.statusVO.text" class="item" :type="taskTable.statusVO.style">
+          <img class="task-cover" src="@/assets/img/home_ban1.jpg">
+        </el-badge>
+      </el-col>
+      <el-col :span="5" type="flex" align="middle" justify="center">{{taskTable.title}}</el-col>
       <!--<el-col :span="4">{{project.id}}</el-col>-->
-      <el-col :span="5">{{taskTable.serviceType}}</el-col>
-      <el-col :span="4">
-        <div class="badge">¥{{taskTable.quotePrice==null?0:taskTable.quotePrice}}</div>
+      <el-col :span="5" type="flex" align="middle" justify="center">{{taskTable.serviceType}}</el-col>
+      <el-col :span="4" type="flex" align="middle" justify="center">
+        <div class="badge" type="flex" align="middle" justify="center">
+          ¥{{taskTable.quotePrice==null?0:taskTable.quotePrice}}
+        </div>
       </el-col>
-      <el-col :span="4"><span class="btn btn-medium btn-info" @click="goToTaskDetail(taskTable.projectId,taskTable.id)">查看详情</span>
+      <el-col :span="4" type="flex" align="middle" justify="center"><span class="btn btn-medium btn-info"
+                                                                          @click="goToTaskDetail(taskTable.projectId,taskTable.id)">查看详情</span>
       </el-col>
     </el-row>
   </div>
@@ -55,7 +59,7 @@ export default {
     padding-top: 10px;
     padding-bottom: 10px;
     border: 1px solid #eee;
-    margin: 15px 5px;
+    /*margin: 15px 5px;*/
     span {
       display: inline-block;
     }
@@ -72,6 +76,6 @@ export default {
   }
 
   .task-td {
-    padding: 15px;
+    /*padding: 15px;*/
   }
 </style>

+ 68 - 26
src/components/project/Project.vue

@@ -98,6 +98,7 @@
 
         <el-form-item label="需求文档" prop="doc">
           <el-upload
+            style="width: 400px"
             v-if="isModifyMode"
             drag
             class="upload-demo"
@@ -125,6 +126,7 @@
         </el-form-item>
         <el-form-item label="安装包" prop="file">
           <el-upload
+            style="width: 400px"
             v-if="isModifyMode"
             drag
             class="upload-demo"
@@ -161,7 +163,7 @@
               :picker-options="pickerOptions"
             ></el-date-picker>
           </div>
-          <span v-if="!isModifyMode">{{new Date(project.datetime)}}</span>
+          <span v-if="!isModifyMode">{{reformDate(new Date(project.datetime))}}</span>
         </el-form-item>
         <el-form-item v-if="isModifyMode">
           <div class="btn btn-small btn-info" @click="submitForm('project')">确认修改</div>
@@ -169,23 +171,28 @@
           <div class="btn btn-small" @click="cancelMode('project')">取消</div>
         </el-form-item>
         <el-form-item v-if="!isModifyMode">
-          <div v-if="projectOperationControl.confirmFinish" class="btn btn-small btn-warning-soft"
-               @click="endProject()">结束项目
-          </div>
-          <!--<div class="btn btn-small btn-info" @click="submitProjectRequest()">发布项目</div>-->
-          <div v-if="projectOperationControl.finish" class="btn btn-small btn-info" @click="submitProjectRequest()">
+
+          <el-button v-if="projectOperationControl.confirmFinish" type="success" size="mini" @click="endProject()">
+            结束项目
+          </el-button>
+          <el-button v-if="projectOperationControl.finish" type="primary" size="mini" @click="submitProjectRequest()">
             提交项目
-          </div>
-          <div v-if="projectOperationControl.receive" class="btn btn-small btn-info" @click="receiveProject()">接受项目
-          </div>
-          <div v-if="projectOperationControl.reject" class="btn btn-small btn-danger" @click="rejectProject()">拒绝项目
-          </div>
-          <div v-if="projectOperationControl.update" class="btn btn-small btn-info" @click="modifyForm()">修改项目</div>
-          <!--<div class="btn btn-medium btn-info" @click="analyseDemand()">分析需求</div>-->
-          <div v-if="projectOperationControl.createTask" class="btn btn-small btn-info" @click="createNewTask()">新建任务
-          </div>
-          <div v-if="projectOperationControl.uploadReport" class="btn btn-small btn-info" @click="createReport()">上传报告
-          </div>
+          </el-button>
+          <el-button v-if="projectOperationControl.receive" type="primary" size="mini" @click="receiveProject()">
+            接受项目
+          </el-button>
+          <el-button v-if="projectOperationControl.reject" type="danger" size="mini" @click="rejectProject()">
+            拒绝项目
+          </el-button>
+          <el-button v-if="projectOperationControl.update" type="primary" size="mini" @click="modifyForm()">
+            修改项目
+          </el-button>
+          <el-button v-if="projectOperationControl.createTask" type="primary" size="mini" @click="createNewTask()">
+            新建任务
+          </el-button>
+          <el-button v-if="projectOperationControl.uploadReport" type="primary" size="mini" @click="createReport()">
+            上传报告
+          </el-button>
         </el-form-item>
       </el-form>
     </div>
@@ -247,6 +254,7 @@ import {
   getAllInstitutions,
   getAllPlatformTypes,
   getAllServiceTypes,
+  getFormalTimeFromDate,
   getProvinceCodeByProvinceName,
   getProvinceNameByProvinceCode,
   receiveProjectRequest,
@@ -457,6 +465,7 @@ export default {
       this.setInstitutions()
       this.setUserInfo()
       this.loadData()
+      //this.reformDate(123)
       // this.project.platform.map(item => {
       //   this.platformType.push(PlatformType[item])
       // })
@@ -550,9 +559,16 @@ export default {
     },
     //接收项目
     receiveProject () {
-      this.showLoading()
-      console.log('接收项目')
-      receiveProjectRequest(this.projectId, this.user.userVO.id, this.receiveProjectSuccess, this.receiveProjectFail)
+      this.$confirm('确认接收项目?', '提示', {
+        confirmButtonText: '确认接收',
+        cancelButtonText: '取消',
+        type: 'success'
+      }).then(() => {
+        this.showLoading()
+        console.log('接收项目')
+        receiveProjectRequest(this.projectId, this.user.userVO.id, this.receiveProjectSuccess, this.receiveProjectFail)
+      }).catch(() => {
+      })
     },
     receiveProjectSuccess (res) {
       this.hideLoading()
@@ -567,8 +583,16 @@ export default {
     },
     //拒绝项目
     rejectProject () {
-      this.showLoading()
-      rejectProject(this.projectId, this.rejectProjectSuccess, this.rejectProjectFail)
+      this.$confirm('确认拒绝项目?', '提示', {
+        confirmButtonText: '确认拒绝',
+        cancelButtonText: '取消',
+        type: 'success'
+      }).then(() => {
+        this.showLoading()
+        rejectProject(this.projectId, this.rejectProjectSuccess, this.rejectProjectFail)
+      }).catch(() => {
+      })
+
     },
     rejectProjectSuccess (res) {
       this.hideLoading()
@@ -580,8 +604,15 @@ export default {
     },
     //提交项目
     submitProjectRequest () {
-      this.showLoading()
-      submitProjectRequest(this.projectId, this.submitProjectRequestSuccess, this.submitProjectRequestFail)
+      this.$confirm('确认提交项目?', '提示', {
+        confirmButtonText: '确认提交',
+        cancelButtonText: '取消',
+        type: 'success'
+      }).then(() => {
+        this.showLoading()
+        submitProjectRequest(this.projectId, this.submitProjectRequestSuccess, this.submitProjectRequestFail)
+      }).catch(() => {
+      })
     },
     submitProjectRequestSuccess (res) {
       this.hideLoading()
@@ -596,8 +627,16 @@ export default {
     },
     //结束项目
     endProject () {
-      this.showLoading()
-      ensureEndProject(this.projectId, this.endProjectSuccess, this.endProjectFail)
+      this.$confirm('确认结束项目?', '提示', {
+        confirmButtonText: '确认结束',
+        cancelButtonText: '取消',
+        type: 'success'
+      }).then(() => {
+        this.showLoading()
+        ensureEndProject(this.projectId, this.endProjectSuccess, this.endProjectFail)
+      }).catch(() => {
+      })
+
     },
     endProjectSuccess (res) {
       this.hideLoading()
@@ -796,6 +835,9 @@ export default {
     hideLoading () {
       this.loading = false
     },
+    reformDate (date) {
+      return getFormalTimeFromDate(date)
+    }
   }
 }
 </script>

+ 1 - 1
src/components/project/ProjectCreate.vue

@@ -18,7 +18,7 @@
           </el-input>
         </el-form-item>
         <el-form-item label="需求描述" prop="desc">
-          <el-input autosize type="textarea" style="width: 400px" v-model="project.desc"
+          <el-input type="textarea" style="width: 400px" v-model="project.desc"
                     placeholder="请输入对项目的描述"></el-input>
         </el-form-item>
 

+ 1 - 0
src/components/report/ProjectReport.vue

@@ -26,6 +26,7 @@
         </el-form-item>
         <el-form-item prop="file" label="报告文件">
           <el-upload
+            style="width: 400px"
             v-if="isModifyMode"
             drag
             class="upload-demo"

+ 1 - 0
src/components/report/ProjectReportCreate.vue

@@ -41,6 +41,7 @@
         <!--</el-form-item>-->
         <el-form-item prop="file" label="报告文件">
           <el-upload
+            style="width: 400px"
             drag
             class="upload-demo"
             action="https://jsonplaceholder.typicode.com/posts/"

+ 1 - 0
src/components/report/TaskReport.vue

@@ -24,6 +24,7 @@
         </el-form-item>
         <el-form-item prop="file" label="报告文件">
           <el-upload
+            style="width: 400px"
             v-if="isModifyMode"
             drag
             class="upload-demo"

+ 1 - 0
src/components/report/TaskReportCreate.vue

@@ -21,6 +21,7 @@
         </el-form-item>
         <el-form-item prop="file" label="报告文件">
           <el-upload
+            style="width: 400px"
             drag
             class="upload-demo"
             action="https://jsonplaceholder.typicode.com/posts/"

+ 108 - 21
src/components/task/Task.vue

@@ -68,6 +68,7 @@
         </el-form-item>
         <el-form-item label="需求文档" prop="doc">
           <el-upload
+            style="width: 400px"
             v-if="isModifyMode"
             drag
             class="upload-demo"
@@ -107,7 +108,7 @@
               :picker-options="pickerOptions"
             ></el-date-picker>
           </div>
-          <span v-if="!isModifyMode">{{task.datetime}}</span>
+          <span v-if="!isModifyMode">{{reformDate(new Date(task.datetime))}}</span>
         </el-form-item>
         <el-form-item v-if="isModifyMode">
           <div class="btn btn-small btn-info" @click="updateTask()">确认修改</div>
@@ -115,18 +116,69 @@
           <div class="btn btn-small" @click="cancelMode()">取消</div>
         </el-form-item>
         <el-form-item v-if="!isModifyMode">
-          <div class="btn btn-small btn-info"
-               v-if="taskOperationControl.confirmFinish"
-               @click="endTask()">确认结束
-          </div>
-          <div class="btn btn-small btn-info" v-if="taskOperationControl.finish" @click="submitTaskRequest()">结束任务
-          </div>
-          <div class="btn btn-small btn-info" v-if="taskOperationControl.receive" @click="receiveTask()">接收任务</div>
-          <div class="btn btn-small btn-danger" v-if="taskOperationControl.receive" @click="rejectTask()">拒绝任务</div>
-          <div class="btn btn-small btn-info" v-if="taskOperationControl.update" @click="modifyForm()">修改任务</div>
-          <div class="btn btn-small btn-info" v-if="taskOperationControl.uploadReport" @click="toCreateReport()">上传报告
-          </div>
-          <div class="btn btn-small" @click="toProject()">前往项目</div>
+          <el-button size="mini" @click="toProject()">项目详情</el-button>
+          <el-popover
+            placement="top-start"
+            title="确认结束?"
+            width="200"
+            trigger="hover"
+            content="测评机构已提交结束申请,请确认是否结束该任务">
+            <el-button v-if="taskOperationControl.confirmFinish" type="success" size="mini" slot="reference"
+                       @click="endTask()">确认结束
+            </el-button>
+          </el-popover>
+
+          <el-popover
+            placement="top-start"
+            title="确认提交?"
+            width="200"
+            trigger="hover"
+            content="提交任务后不可更改,等待区域管理员验收">
+            <el-button v-if="taskOperationControl.finish" type="primary" size="mini" slot="reference"
+                       @click="submitTaskRequest()">提交任务
+            </el-button>
+          </el-popover>
+
+          <el-popover
+            placement="top-start"
+            title="确认拒绝?"
+            width="200"
+            trigger="hover"
+            content="拒绝后不可再接收此任务,且该任务对您不可见">
+            <el-button v-if="taskOperationControl.reject" type="danger" size="mini" slot="reference"
+                       @click="rejectTask()">拒绝任务
+            </el-button>
+          </el-popover>
+
+          <el-popover
+            placement="top-start"
+            title="确认接收?"
+            width="200"
+            trigger="hover"
+            content="接收任务后请认真完成!">
+            <el-button v-if="taskOperationControl.receive" type="primary" size="mini" slot="reference"
+                       @click="receiveTask()">接收任务
+            </el-button>
+          </el-popover>
+
+
+          <el-button v-if="taskOperationControl.update" type="primary" size="mini" @click="modifyForm()">修改任务
+          </el-button>
+          <el-button v-if="taskOperationControl.uploadReport" type="primary" size="mini" @click="toCreateReport()">
+            上传报告
+          </el-button>
+          <!--<div class="btn btn-small btn-info"-->
+          <!--v-if="taskOperationControl.confirmFinish"-->
+          <!--@click="endTask()">确认结束-->
+          <!--</div>-->
+          <!--<div class="btn btn-small btn-info" v-if="!taskOperationControl.finish" @click="submitTaskRequest()">提交任务-->
+          <!--</div>-->
+          <!--<div class="btn btn-small btn-info" v-if="!taskOperationControl.receive" @click="receiveTask()">接收任务</div>-->
+          <!--<div class="btn btn-small btn-danger" v-if="!taskOperationControl.reject" @click="rejectTask()">拒绝任务</div>-->
+          <!--<div class="btn btn-small btn-info" v-if="taskOperationControl.update" @click="modifyForm()">修改任务</div>-->
+          <!--<div class="btn btn-small btn-info" v-if="!taskOperationControl.uploadReport" @click="toCreateReport()">上传报告-->
+          <!--</div>-->
+
         </el-form-item>
       </el-form>
     </div>
@@ -148,6 +200,7 @@ import {
   ensureEndTask,
   getAllAgencies,
   getAllServiceTypes,
+  getFormalTimeFromDate,
   getProvinceCodeByProvinceName,
   getProvinceNameByProvinceCode,
   getTask,
@@ -493,8 +546,15 @@ export default {
     },
     //接收任务
     receiveTask () {
-      this.showLoading()
-      receiveTaskRequest(this.projectId, this.taskId, this.user.userVO.id, this.receiveTaskSuccess, this.receiveTaskFail)
+      this.$confirm('确认接收任务?', '提示', {
+        confirmButtonText: '确认接收',
+        cancelButtonText: '取消',
+        type: 'success'
+      }).then(() => {
+        this.showLoading()
+        receiveTaskRequest(this.projectId, this.taskId, this.user.userVO.id, this.receiveTaskSuccess, this.receiveTaskFail)
+      }).catch(() => {
+      })
     },
     //接收任务成功时的回调函数
     receiveTaskSuccess (res) {
@@ -512,8 +572,16 @@ export default {
     },
     //拒绝任务
     rejectTask () {
-      this.showLoading()
-      rejectTask(this.projectId, this.taskId, this.rejectTaskSuccess, this.rejectTaskFail)
+      this.$confirm('确认拒绝任务?拒绝后将不能再接收该任务', '提示', {
+        confirmButtonText: '确认拒绝',
+        cancelButtonText: '取消',
+        type: 'success'
+      }).then(() => {
+        this.showLoading()
+        rejectTask(this.projectId, this.taskId, this.rejectTaskSuccess, this.rejectTaskFail)
+      }).catch(() => {
+
+      })
     },
     //拒绝任务成功时的回调函数
     rejectTaskSuccess (res) {
@@ -530,8 +598,16 @@ export default {
     },
     //提交结束任务申请
     submitTaskRequest () {
-      this.showLoading()
-      submitTaskRequest(this.projectId, this.taskId, this.submitTaskRequestSuccess, this.submitTaskRequestFail)
+      this.$confirm('确认提交任务?提交后将不能再修改', '提示', {
+        confirmButtonText: '确认提交',
+        cancelButtonText: '取消',
+        type: 'success'
+      }).then(() => {
+        this.showLoading()
+        submitTaskRequest(this.projectId, this.taskId, this.submitTaskRequestSuccess, this.submitTaskRequestFail)
+      }).catch(() => {
+
+      })
     },
     //提交结束任务申请成功时的回调函数
     submitTaskRequestSuccess (res) {
@@ -549,8 +625,16 @@ export default {
     },
     //结束任务
     endTask () {
-      this.showLoading()
-      ensureEndTask(this.projectId, this.taskId, this.endTaskSuccess, this.endTaskFail)
+      this.$confirm('确认结束任务?', '提示', {
+        confirmButtonText: '确认结束',
+        cancelButtonText: '取消',
+        type: 'success'
+      }).then(() => {
+        this.showLoading()
+        ensureEndTask(this.projectId, this.taskId, this.endTaskSuccess, this.endTaskFail)
+      }).catch(() => {
+
+      })
     },
     //结束任务成功时的回调函数
     endTaskSuccess (res) {
@@ -577,6 +661,9 @@ export default {
         }
       })
     },
+    reformDate (date) {
+      return getFormalTimeFromDate(date)
+    }
   },
 }
 //回收站

+ 1 - 0
src/components/task/TaskCreate.vue

@@ -53,6 +53,7 @@
         <el-form-item label="需求文档" prop="doc">
           <el-upload
             drag
+            style="width: 400px"
             class="upload-demo"
             action=""
             :on-remove="handleRemove"

+ 20 - 1
src/js/generalService.js

@@ -42,7 +42,7 @@ export const getAllServiceTypes = () => {
 
 //获取所有报告类型
 export const getAllReportTypes = () => {
-  const data = ['项目可行性报告', '项目测试方案', '项目测试报告', '项目缺陷报告', '项目用例报告', '其他']
+  const data = ['可行性报告', '测试方案', '测试报告', '缺陷报告', '用例报告', '其他']
   return new Promise((resolve) => {
     resolve(data)
   })
@@ -132,4 +132,23 @@ export const getGreenChannelAddProjectExcelTemplateFile = (getTemplateExcelSucce
   //   getTemplateExcelFail(error)
   // })
 }
+Date.prototype.Format = function (fmt) {
+  var o = {
+    'M+': this.getMonth() + 1, //月份
+    'd+': this.getDate(), //日
+    'h+': this.getHours(), //小时
+    'm+': this.getMinutes(), //分
+    's+': this.getSeconds(), //秒
+    'q+': Math.floor((this.getMonth() + 3) / 3), //季度
+    'S': this.getMilliseconds() //毫秒
+  }
+  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
+  for (var k in o) {
+    if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
+  }
+  return fmt
+}
+export const getFormalTimeFromDate = (date) => {
+  return date.Format("yyyy-MM-dd hh:mm:ss");
+}
 

+ 2 - 0
src/js/index.js

@@ -52,6 +52,7 @@ import {
   getAllPlatformTypes,
   getAllReportTypes,
   getAllServiceTypes,
+  getFormalTimeFromDate,
   getGreenChannelAddProjectExcelTemplateFile,
   getProvinceCodeByProvinceName,
   getProvinceNameByProvinceCode,
@@ -202,6 +203,7 @@ export {
   storageGet,
   //保存数据到本地
   storageSave,
+  getFormalTimeFromDate,
 }
 
 export const defaultValue = {

+ 0 - 0
src/js/test.js


+ 2 - 0
src/main.js

@@ -41,6 +41,7 @@ import {
   Notification,
   Option,
   Pagination,
+  Popover,
   Radio,
   RadioButton,
   RadioGroup,
@@ -164,6 +165,7 @@ Vue.use(DropdownItem)
 Vue.use(DropdownMenu)
 Vue.use(Image)
 Vue.use(Badge)
+Vue.use(Popover)
 
 Vue.prototype.$msgbox = MessageBox
 Vue.prototype.$alert = MessageBox.alert