浏览代码

add:多人任务

wangJJ 5 年之前
父节点
当前提交
bc8897fd3d
共有 4 个文件被更改,包括 43 次插入23 次删除
  1. 1 1
      src/components/Mine.vue
  2. 26 13
      src/components/project/Project.vue
  3. 12 5
      src/components/task/Task.vue
  4. 4 4
      src/components/task/TaskCreate.vue

+ 1 - 1
src/components/Mine.vue

@@ -290,7 +290,7 @@ export default {
         xAxis: {
         xAxis: {
           type: 'category',
           type: 'category',
           boundaryGap: false,
           boundaryGap: false,
-          data: ['2019年5月', '2019年6月', '2019年7月', '2019年8月', '2019年9月', '2019年10月', '2019年11月']
+          data: ['2019年11月', '2019年12月', '2020年1月', '2020年2月', '2020年3月', '2020年4月', '2020年5月']
         },
         },
         yAxis: {
         yAxis: {
           type: 'value'
           type: 'value'

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

@@ -14,9 +14,9 @@
           <el-form :model="project" :rules="rules" ref="project" label-width="30%" class="demo-project">
           <el-form :model="project" :rules="rules" ref="project" label-width="30%" class="demo-project">
             <el-form-item label="项目名称" prop="name">
             <el-form-item label="项目名称" prop="name">
               <el-input size="small" v-if="isModifyMode" v-model="project.name"></el-input>
               <el-input size="small" v-if="isModifyMode" v-model="project.name"></el-input>
-              <span v-if="!isModifyMode">{{project.name}}</span>
+              <span v-if="!isModifyMode" style="margin-right: 5px">{{project.name}}</span>
+              <el-tag v-if="!isModifyMode" :type="project.statusVO&&project.statusVO.style">{{project.statusVO?project.statusVO.text:''}}</el-tag>
             </el-form-item>
             </el-form-item>
-
             <el-form-item size="small" label="联系人" prop="contactName">
             <el-form-item size="small" label="联系人" prop="contactName">
               <el-input v-if="isModifyMode" v-model="project.contactName" placeholder="请输入联系人姓名"></el-input>
               <el-input v-if="isModifyMode" v-model="project.contactName" placeholder="请输入联系人姓名"></el-input>
               <span v-if="!isModifyMode">{{project.contactName}}</span>
               <span v-if="!isModifyMode">{{project.contactName}}</span>
@@ -35,6 +35,9 @@
             <el-form-item v-if="!isModifyMode" size="small" label="状态" prop="status">
             <el-form-item v-if="!isModifyMode" size="small" label="状态" prop="status">
               <span v-if="!isModifyMode">{{project.status==1?'等待接收':(project.status==2?'已被接收':(project.status==3?'项目已提交':'项目已结束'))}}</span>
               <span v-if="!isModifyMode">{{project.status==1?'等待接收':(project.status==2?'已被接收':(project.status==3?'项目已提交':'项目已结束'))}}</span>
             </el-form-item>
             </el-form-item>
+            <el-form-item size="small" label="区域管理员" prop="institution" >
+              <span v-if="!isModifyMode">{{project.institution}}</span>
+            </el-form-item>
             <el-form-item label="需求描述">
             <el-form-item label="需求描述">
               <el-input style="width: 400px" autosize v-if="isModifyMode" type="textarea"
               <el-input style="width: 400px" autosize v-if="isModifyMode" type="textarea"
                         v-model="project.desc"></el-input>
                         v-model="project.desc"></el-input>
@@ -205,7 +208,8 @@
         </el-col>
         </el-col>
       </el-row>
       </el-row>
     </div>
     </div>
-    <div class="create-body" v-if="!isModifyMode">
+<!--    任务列表-->
+    <div class="create-body" v-if="!isModifyMode && showTaskList">
       <div class="title h2">任务列表</div>
       <div class="title h2">任务列表</div>
       <div class="task-list">
       <div class="task-list">
         <el-table :showHeader="true" :stripe="true" :data="task" style="width: 100%">
         <el-table :showHeader="true" :stripe="true" :data="task" style="width: 100%">
@@ -233,11 +237,11 @@
             </template>
             </template>
           </el-table-column>
           </el-table-column>
           <el-table-column align="center" label="状态">
           <el-table-column align="center" label="状态">
-
             <template slot-scope="scope">
             <template slot-scope="scope">
               <el-tag :type="scope.row.statusVO.style">{{scope.row.statusVO.text}}</el-tag>
               <el-tag :type="scope.row.statusVO.style">{{scope.row.statusVO.text}}</el-tag>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
+
           <el-table-column align="right" label="操作">
           <el-table-column align="right" label="操作">
 
 
             <template slot-scope="scope">
             <template slot-scope="scope">
@@ -258,7 +262,7 @@
     </div>
     </div>
 
 
     <div class="create-body" v-if="!isModifyMode">
     <div class="create-body" v-if="!isModifyMode">
-      <div class="title h2">报告列表</div>
+      <div class="title h2">用户报告列表</div>
       <report-list v-bind:reports="reportList" v-bind:taskId=null v-bind:projectId="projectId"/>
       <report-list v-bind:reports="reportList" v-bind:taskId=null v-bind:projectId="projectId"/>
     </div>
     </div>
   </div>
   </div>
@@ -306,6 +310,7 @@ export default {
       }
       }
     }
     }
     return {
     return {
+      showTaskList: true,
       acceptedUserList:[],
       acceptedUserList:[],
       projectId: 0,
       projectId: 0,
       user: {},
       user: {},
@@ -448,7 +453,7 @@ export default {
   },
   },
   mounted () {
   mounted () {
     this.$nextTick(() => {
     this.$nextTick(() => {
-      this.init()
+      this.init();
     })
     })
   },
   },
   watch: {
   watch: {
@@ -598,7 +603,6 @@ export default {
             this.project.usage = res.projectDetails.usage
             this.project.usage = res.projectDetails.usage
             this.project.fileUrl = res.projectDetails.file
             this.project.fileUrl = res.projectDetails.file
             this.project.requireDocUrl = res.projectDetails.doc
             this.project.requireDocUrl = res.projectDetails.doc
-
             this.task = res.taskList
             this.task = res.taskList
             this.reportList = res.reportList
             this.reportList = res.reportList
             this.isModifyMode = false
             this.isModifyMode = false
@@ -828,24 +832,33 @@ export default {
         this.project.requireDocUrl = res.projectDetails.doc
         this.project.requireDocUrl = res.projectDetails.doc
         this.project.userId = res.projectDetails.userId
         this.project.userId = res.projectDetails.userId
         this.project.status = res.projectDetails.status
         this.project.status = res.projectDetails.status
+        this.project.statusVO = res.projectDetails.statusVO
         this.task = res.taskList
         this.task = res.taskList
         this.reportList = res.reportList
         this.reportList = res.reportList
         this.projectOperationControl = res.projectOperationControl
         this.projectOperationControl = res.projectOperationControl
         this.progress = res.progress
         this.progress = res.progress
-        this.hideLoading();
+        this.hideLoading()
+        this.handleShowTaskListOrNot()
         for(var i = 0; i < this.progress.length; i++){
         for(var i = 0; i < this.progress.length; i++){
-            if(this.progress[i].value != 0){
-                this.setEcharts()
-                break
-            }
+          if(this.progress[i].value != 0){
+              this.setEcharts()
+              break
+          }
         }
         }
 
 
-
       }).catch((error) => {
       }).catch((error) => {
         this.hideLoading()
         this.hideLoading()
         notify('error', error.data)
         notify('error', error.data)
       })
       })
     },
     },
+
+    handleShowTaskListOrNot () {
+      // console.log(storageGet('user')['userVO']['id'])
+      if(storageGet('user')['userVO']['id'] === this.project.userId){
+        this.showTaskList = false
+      }
+    },
+
     locationChange (provinceId, cityId) {
     locationChange (provinceId, cityId) {
       if (provinceId || cityId) {
       if (provinceId || cityId) {
         this.project.location = {provinceCode: provinceId, cityCode: cityId}
         this.project.location = {provinceCode: provinceId, cityCode: cityId}

+ 12 - 5
src/components/task/Task.vue

@@ -7,6 +7,7 @@
         <el-form-item label="任务名称" prop="title">
         <el-form-item label="任务名称" prop="title">
           <el-input size="small" v-if="isModifyMode" v-model="task.title"></el-input>
           <el-input size="small" v-if="isModifyMode" v-model="task.title"></el-input>
           <span v-if="!isModifyMode">{{task.title}}</span>
           <span v-if="!isModifyMode">{{task.title}}</span>
+          <el-tag v-if="!isModifyMode" :type="task.statusVO&&task.statusVO.style">{{task.statusVO?task.statusVO.text:''}}</el-tag>
         </el-form-item>
         </el-form-item>
         <el-form-item label="任务描述" prop="desc">
         <el-form-item label="任务描述" prop="desc">
           <el-input autosize v-if="isModifyMode" type="textarea" v-model="task.description"></el-input>
           <el-input autosize v-if="isModifyMode" type="textarea" v-model="task.description"></el-input>
@@ -190,7 +191,7 @@
       </el-form>
       </el-form>
     </div>
     </div>
     <div class="create-body" v-if="!isModifyMode">
     <div class="create-body" v-if="!isModifyMode">
-      <div class="title h2">报告列表</div>
+      <div class="title h2">用户报告列表</div>
       <el-collapse accordion style="margin: 0 30px">
       <el-collapse accordion style="margin: 0 30px">
         <el-collapse-item v-for="(item,index) in acceptedUserList" :key="item.id">
         <el-collapse-item v-for="(item,index) in acceptedUserList" :key="item.id">
           <template slot="title">
           <template slot="title">
@@ -198,8 +199,12 @@
               <el-col :span="6">{{item.userVO.userName}}</el-col>
               <el-col :span="6">{{item.userVO.userName}}</el-col>
               <el-col :span="6">{{item.userVO.email}}</el-col>
               <el-col :span="6">{{item.userVO.email}}</el-col>
               <el-col :span="6">
               <el-col :span="6">
-                <el-tag type="success" v-if="item.crowdReportVOS">已提交报告</el-tag>
-                <el-tag type="info" v-if="!item.crowdReportVOS">未提交报告</el-tag>
+              <el-tag type="success" v-if="item.crowdReportVOS">已提交报告</el-tag>
+              <el-tag type="info" v-if="!item.crowdReportVOS">未提交报告</el-tag>
+            </el-col>
+              <el-col :span="6">
+                <el-tag type="success" v-if="item.isCommitted">已提交任务</el-tag>
+                <el-tag type="info" v-if="!item.isCommitted">未提交任务</el-tag>
               </el-col>
               </el-col>
             </el-row>
             </el-row>
           </template>
           </template>
@@ -272,7 +277,7 @@
           quotePrice: '',
           quotePrice: '',
           fixedPrice: '',
           fixedPrice: '',
           doc: [],
           doc: [],
-          requireDocUrl: '123.doc',
+          requireDocUrl: '',
           participantCount:1
           participantCount:1
         },
         },
         reportList: [],
         reportList: [],
@@ -468,6 +473,7 @@
         this.task.requireDocUrl = res.crowdTaskVO.requirementFile
         this.task.requireDocUrl = res.crowdTaskVO.requirementFile
         this.task.agencyId = res.crowdTaskVO.agencyId
         this.task.agencyId = res.crowdTaskVO.agencyId
         this.task.status = res.crowdTaskVO.status
         this.task.status = res.crowdTaskVO.status
+        this.task.statusVO = res.crowdTaskVO.statusVO
         this.taskOperationControl = res.taskOperationControl
         this.taskOperationControl = res.taskOperationControl
         this.acceptedUserList = res.acceptedUserList;
         this.acceptedUserList = res.acceptedUserList;
         this.handleFormatReport(this.acceptedUserList);
         this.handleFormatReport(this.acceptedUserList);
@@ -499,7 +505,7 @@
               type: this.task.serviceType,
               type: this.task.serviceType,
               resource: this.task.resource,
               resource: this.task.resource,
               location: this.task.location == null ? {} : getProvinceNameByProvinceCode(this.task.location.provinceCode, this.task.location.cityCode),
               location: this.task.location == null ? {} : getProvinceNameByProvinceCode(this.task.location.provinceCode, this.task.location.cityCode),
-              institution: this.task.institution.id,
+              institution: this.task.institution ? this.task.institution.id : null,
               datetime: this.task.datetime,
               datetime: this.task.datetime,
               quotePrice: this.task.quotePrice,
               quotePrice: this.task.quotePrice,
               fixedPrice: this.task.fixedPrice,
               fixedPrice: this.task.fixedPrice,
@@ -649,6 +655,7 @@
         }).then(() => {
         }).then(() => {
           this.showLoading()
           this.showLoading()
           submitTaskRequest(this.projectId, this.taskId, this.submitTaskRequestSuccess, this.submitTaskRequestFail)
           submitTaskRequest(this.projectId, this.taskId, this.submitTaskRequestSuccess, this.submitTaskRequestFail)
+          this.getTaskDetail();
         }).catch(() => {
         }).catch(() => {
 
 
         })
         })

+ 4 - 4
src/components/task/TaskCreate.vue

@@ -26,9 +26,6 @@
             </span>
             </span>
           </el-radio-group>
           </el-radio-group>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="领取人数" prop="contactPhone" v-if="task.resource !== '0'">
-          <el-input-number v-model="task.participantCount" :min="1" :max="10" label="领取人数"></el-input-number>
-        </el-form-item>
         <el-form-item label="任务可见性" prop="resource">
         <el-form-item label="任务可见性" prop="resource">
           <el-tabs :tab-position="tabPosition" v-model="task.resource" style="width: 800px">
           <el-tabs :tab-position="tabPosition" v-model="task.resource" style="width: 800px">
             <el-tab-pane :label="resourceType[0]" name="0">
             <el-tab-pane :label="resourceType[0]" name="0">
@@ -53,6 +50,9 @@
             <el-tab-pane :label="resourceType[2]" name="2"></el-tab-pane>
             <el-tab-pane :label="resourceType[2]" name="2"></el-tab-pane>
           </el-tabs>
           </el-tabs>
         </el-form-item>
         </el-form-item>
+        <el-form-item label="领取人数" prop="contactPhone" v-if="task.resource !== '0'">
+          <el-input-number v-model="task.participantCount" :min="1" :max="1000" label="领取人数"></el-input-number>
+        </el-form-item>
         <el-form-item label="需求文档" prop="doc">
         <el-form-item label="需求文档" prop="doc">
           <el-upload
           <el-upload
             drag
             drag
@@ -129,7 +129,7 @@ export default {
         quotePrice: '',
         quotePrice: '',
         fixedPrice: '',
         fixedPrice: '',
         doc: [],
         doc: [],
-        requireDocUrl: '123.doc',
+        requireDocUrl: '',
         participantCount: 1
         participantCount: 1
       },
       },
       pickerOptions: {
       pickerOptions: {