소스 검색

调整任务发布方式为两种

sunjh 6 년 전
부모
커밋
9c110a36fe
5개의 변경된 파일99개의 추가작업 그리고 73개의 파일을 삭제
  1. 24 20
      src/components/project/Project.vue
  2. 17 15
      src/components/project/ProjectCreate.vue
  3. 10 4
      src/components/report/Report.vue
  4. 34 19
      src/components/task/Task.vue
  5. 14 15
      src/components/task/TaskCreate.vue

+ 24 - 20
src/components/project/Project.vue

@@ -49,6 +49,24 @@
         <!--</el-row>-->
         <!--</div>-->
         <!--</el-form-item>-->
+
+        <el-form-item label="预算" prop="budget">
+          <el-input v-if="isModifyMode" type="number" v-model="project.budget">
+            ¥
+            <template slot="append"></template>
+          </el-input>
+          <span v-if="!isModifyMode">{{project.budget}}¥</span>
+        </el-form-item>
+        <el-form-item label="需求描述">
+          <el-input v-if="isModifyMode" type="textarea" v-model="project.desc"></el-input>
+          <span v-if="!isModifyMode">{{project.desc}}</span>
+        </el-form-item>
+        <!--<el-form-item label="价格" prop="price">-->
+        <!--<el-input v-if="isModifyMode" type="number" v-model="project.price">-->
+        <!--<template slot="append">¥</template>-->
+        <!--</el-input>-->
+        <!--<span v-if="!isModifyMode">{{project.price}}¥</span>-->
+        <!--</el-form-item>-->
         <el-form-item label="平台" prop="platform">
           <el-checkbox-group v-if="isModifyMode" v-model="project.platform">
             <span v-for="(item,index) in platforms" :key="index">
@@ -61,17 +79,6 @@
             v-for="item in project.platform"
           >{{item}}</span>
         </el-form-item>
-        <el-form-item label="需求描述">
-          <el-input v-if="isModifyMode" type="textarea" v-model="project.desc"></el-input>
-          <span v-if="!isModifyMode">{{project.desc}}</span>
-        </el-form-item>
-        <el-form-item label="价格" prop="price">
-          <el-input v-if="isModifyMode" type="number" v-model="project.price">
-            <template slot="append">¥</template>
-          </el-input>
-          <span v-if="!isModifyMode">{{project.price}}¥</span>
-        </el-form-item>
-
         <el-form-item label="服务类型" prop="type">
           <el-checkbox-group v-if="isModifyMode" v-model="project.type">
             <span v-for="(item,index) in serviceType" :key="index">
@@ -85,13 +92,7 @@
         <!--<span v-if="!isModifyMode">{{project.usage}}</span>-->
         <!--</el-form-item>-->
 
-        <el-form-item label="预算" prop="budget">
-          <el-input v-if="isModifyMode" type="number" v-model="project.budget">
-            ¥
-            <template slot="append"></template>
-          </el-input>
-          <span v-if="!isModifyMode">{{project.budget}}¥</span>
-        </el-form-item>
+
         <el-form-item label="项目可见性" prop="resource">
           <div v-if="!isModifyMode">
             <div v-if="project.resource=='1'">{{updateLocation(project.location)}}</div>
@@ -183,10 +184,11 @@
           <div class="btn btn-medium" @click="cancelMode('project')">取消</div>
         </el-form-item>
         <el-form-item v-if="!isModifyMode">
+          <div class="btn btn-medium btn-info" @click="submitProjectRequest()">结束项目</div>
           <div class="btn btn-medium btn-info" @click="submitProjectRequest()">发布项目</div>
           <div class="btn btn-medium btn-info" @click="submitProjectRequest()">提交项目</div>
           <div class="btn btn-medium btn-info" @click="applyProject()">接受项目</div>
-          <div class="btn btn-medium btn-info" @click="modifyForm()">修改</div>
+          <div class="btn btn-medium btn-info" @click="modifyForm()">修改项目</div>
           <!--<div class="btn btn-medium btn-info" @click="analyseDemand()">分析需求</div>-->
           <div class="btn btn-medium btn-info" @click="createTask()">新建任务</div>
           <div class="btn btn-medium btn-info" @click="createReport()">上传报告</div>
@@ -300,6 +302,7 @@ export default {
         price: '',
         datetime: '',
         usage: '',
+        status: ''
       },
       task: [],
       reportList: [],
@@ -615,7 +618,8 @@ export default {
         this.project.usage = res.projectDetails.usage
         this.project.fileUrl = res.projectDetails.file
         this.project.requireDocUrl = res.projectDetails.doc
-
+        this.project.userId = res.projectDetails.userId
+        this.project.status = res.projectDetails.status
         this.task = res.taskList
         this.reportList = res.reportList
         this.hideLoading()

+ 17 - 15
src/components/project/ProjectCreate.vue

@@ -12,6 +12,20 @@
         <el-form-item label="手机号" prop="contactPhone">
           <el-input v-model="project.contactPhone" placeholder="请输入联系人电话"></el-input>
         </el-form-item>
+        <el-form-item label="预算" prop="budget">
+          <el-input type="number" v-model="project.budget">
+            <template slot="append">¥</template>
+          </el-input>
+        </el-form-item>
+        <el-form-item label="需求描述" prop="desc">
+          <el-input type="textarea" style="width: 400px" v-model="project.desc"></el-input>
+        </el-form-item>
+
+        <!--<el-form-item label="价格" prop="price">-->
+        <!--<el-input type="number" v-model="project.price">-->
+        <!--<template slot="append">¥</template>-->
+        <!--</el-input>-->
+        <!--</el-form-item>-->
         <el-form-item label="平台" prop="platform">
           <el-checkbox-group v-model="project.platform">
             <span v-for="(item,index) in platforms" :key="index">
@@ -19,14 +33,6 @@
             </span>
           </el-checkbox-group>
         </el-form-item>
-        <el-form-item label="需求描述" prop="desc">
-          <el-input type="textarea" style="width: 400px" v-model="project.desc"></el-input>
-        </el-form-item>
-        <el-form-item label="价格" prop="price">
-          <el-input type="number" v-model="project.price">
-            <template slot="append">¥</template>
-          </el-input>
-        </el-form-item>
         <el-form-item label="服务类型" prop="type">
           <el-checkbox-group v-model="project.type">
             <span v-for="(item,index) in serviceType" :key="index">
@@ -34,11 +40,7 @@
             </span>
           </el-checkbox-group>
         </el-form-item>
-        <el-form-item label="预算" prop="budget">
-          <el-input type="number" v-model="project.budget">
-            <template slot="append">¥</template>
-          </el-input>
-        </el-form-item>
+
         <el-form-item label="项目可见性" prop="resource">
           <el-tabs
             :tab-position="tabPosition"
@@ -483,10 +485,10 @@ export default {
         }
       })
     },
-    showLoading(){
+    showLoading () {
       this.loading = true
     },
-    hideLoading(){
+    hideLoading () {
       this.loading = false
     }
   }

+ 10 - 4
src/components/report/Report.vue

@@ -150,6 +150,7 @@ export default {
       this.isModifyMode = true
     },
     submitForm (formName) {
+      this.showLoading()
       const newReport = {
         name: this.report.name,
         scope: this.taskId == null ? 0 : 1,
@@ -165,15 +166,19 @@ export default {
         Http.put(Apis.REPORT.UPDATE_PROJECT_REPORT.replace('{projectId}', this.projectId).replace('{reportId}', this.reportId), newReport).then((res) => {
           console.log(res)
           notify('success', '修改成功')
+          this.hideLoading()
           this.isModifyMode = false
         }).catch((error) => {
+          this.hideLoading()
           notify('error', error.data)
         })
       } else {
         Http.put(Apis.REPORT.UPDATE_TASK_REPORT.replace('{projectId}', this.projectId).replace('{taskId}', this.taskId).replace('{reportId}', this.reportId), newReport).then((res) => {
           console.log(res)
+          this.hideLoading()
           this.isModifyMode = false
         }).catch((error) => {
+          this.hideLoading()
           notify('error', error.data)
         })
       }
@@ -241,10 +246,6 @@ export default {
       //pro1564487183259_task1564487274060
       //pro1564487183259pro1564487183259_task1564487274060_rep1564488510500
       this.showLoading()
-      console.log('start')
-      console.log(this.projectId)
-      console.log(this.taskId)
-      console.log('end')
       if (this.taskId == null) {
         Http.get(Apis.REPORT.GET_PROJECT_REPORT.replace('{projectId}', this.projectId).replace('{reportId}', this.reportId)).then((res) => {
           this.report.name = res.crowdReportVO.name
@@ -282,6 +283,7 @@ export default {
       }
     },
     uploadReportFile (param) {
+      this.showLoading()
       const formData = new FormData()
       let config = {
         //添加请求头
@@ -292,6 +294,10 @@ export default {
         console.log('上传成功')
         this.report.fileUrl = res.data
         console.log(res)
+        this.hideLoading()
+      }).catch((error) => {
+        this.hideLoading()
+        notify('error', '文件上传失败:' + error.data)
       })
     },
     setReportType () {

+ 34 - 19
src/components/task/Task.vue

@@ -16,14 +16,14 @@
           <el-input type="number" v-if="isModifyMode" v-model="task.quotePrice">
             <template slot="append">¥</template>
           </el-input>
-          <span v-if="!isModifyMode">{{task.quotePrice}}</span>
-        </el-form-item>
-        <el-form-item type="number" label="任务定价" prop="fixedPrice">
-          <el-input v-if="isModifyMode" v-model="task.fixedPrice">
-            <template slot="append">¥</template>
-          </el-input>
-          <span v-if="!isModifyMode">{{task.fixedPrice}}</span>
+          <span v-if="!isModifyMode">{{task.quotePrice}}¥</span>
         </el-form-item>
+        <!--<el-form-item type="number" label="任务定价" prop="fixedPrice">-->
+        <!--<el-input v-if="isModifyMode" v-model="task.fixedPrice">-->
+        <!--<template slot="append">¥</template>-->
+        <!--</el-input>-->
+        <!--<span v-if="!isModifyMode">{{task.fixedPrice}}</span>-->
+        <!--</el-form-item>-->
         <el-form-item label="业务类型" prop="serviceType">
           <el-radio-group v-if="isModifyMode" v-model="task.serviceType">
             <span v-for="(item,index) in serviceType" :key="index">
@@ -34,7 +34,7 @@
         </el-form-item>
         <el-form-item label="任务可见性" prop="resource">
           <div v-if="!isModifyMode">
-            <div v-if="task.resource=='1'">{{updateLocation(task.location)}}</div>
+            <!--<div v-if="task.resource=='1'">{{updateLocation(task.location)}}</div>-->
             <div v-if="task.resource=='0'">{{task.institution}}</div>
             <div v-if="task.resource=='2'">{{resourceType[task.resource]}}</div>
           </div>
@@ -55,14 +55,14 @@
                 </el-radio>
               </el-radio-group>
             </el-tab-pane>
-            <el-tab-pane :label="resourceType[1]" name="1">
-              <provincecity
-                ref="addFormProvince"
-                @selectChange="locationChange"
-                :provinceCode="task.location == null ||task.location.provinceCode==null?'3200':task.location.provinceCode"
-                :cityCode="task.location == null ||task.location.cityCode==null?'3201':task.location.cityCode"
-              ></provincecity>
-            </el-tab-pane>
+            <!--<el-tab-pane :label="resourceType[1]" name="1">-->
+            <!--<provincecity-->
+            <!--ref="addFormProvince"-->
+            <!--@selectChange="locationChange"-->
+            <!--:provinceCode="task.location == null ||task.location.provinceCode==null?'3200':task.location.provinceCode"-->
+            <!--:cityCode="task.location == null ||task.location.cityCode==null?'3201':task.location.cityCode"-->
+            <!--&gt;</provincecity>-->
+            <!--</el-tab-pane>-->
             <el-tab-pane :label="resourceType[2]" name="2"></el-tab-pane>
           </el-tabs>
         </el-form-item>
@@ -168,9 +168,11 @@ export default {
       taskId: '',
       projectId: '',
       task: {
+        agencyId: '',
+        status: '',
         name: '',
         desc: '',
-        type: '',
+        serviceType: '',
         resource: '',
         location: {},
         institution: {},
@@ -233,6 +235,9 @@ export default {
     institutionArray (val) {
       this.institutionArray = val
     },
+    serviceType (val) {
+      this.serviceType = val
+    },
     // 'task.institution' () {
     //   if (this.task.institution) {
     //     //this.$refs.addFormProvince.resetProviceCity()
@@ -293,7 +298,7 @@ export default {
         desc: this.task.description,
         type: this.task.serviceType,
         resource: this.task.resource,
-        location: 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,
         datetime: this.task.datetime,
         quotePrice: this.task.quotePrice,
@@ -301,6 +306,7 @@ export default {
         requirementFile: this.task.requireDocUrl
       }
       //修改TASK
+      console.log(newTask)
       Http.put(Apis.TASK.UPDATE_TASK.replace('{projectId}', this.projectId).replace('{taskId}', this.taskId), newTask).then((res) => {
         this.isModifyMode = false
         console.log(res)
@@ -310,7 +316,10 @@ export default {
         this.task.description = res.crowdTaskVO.description
         this.task.serviceType = res.crowdTaskVO.serviceType
         this.task.resource = res.crowdTaskVO.resource
-        this.task.location = getProvinceCodeByProvinceName(res.crowdTaskVO.location.provinceCode, res.crowdTaskVO.location.cityCode)
+        this.task.location = res.crowdTaskVO.location == null ? {
+          provinceCode: 3200,
+          cityCode: 3201
+        } : getProvinceCodeByProvinceName(res.crowdTaskVO.location.provinceCode, res.crowdTaskVO.location.cityCode)
         this.task.institution = res.crowdTaskVO.institution
         this.task.datetime = new Date(res.crowdTaskVO.datetime)
         this.task.quotePrice = res.crowdTaskVO.quotePrice
@@ -320,6 +329,10 @@ export default {
 
         this.reportList = res.crowdReportVOList
         this.hideLoading()
+        notify('success', '修改成功')
+      }).catch((error) => {
+        notify('error', '修改失败:' + error.data)
+        this.hideLoading()
       })
       // this.$refs[formName].validate(valid => {
       //   if (valid) {
@@ -410,6 +423,8 @@ export default {
         this.task.fixedPrice = res.crowdTaskVO.fixedPrice
         this.task.doc = []
         this.task.requireDocUrl = res.crowdTaskVO.requirementFile
+        this.task.agencyId = res.crowdTaskVO.agencyId
+        this.task.status = res.crowdTaskVO.status
 
         this.reportList = res.crowdReportVOList
         this.hideLoading()

+ 14 - 15
src/components/task/TaskCreate.vue

@@ -14,11 +14,11 @@
             <template slot="append">¥</template>
           </el-input>
         </el-form-item>
-        <el-form-item type="number" label="任务定价" prop="fixedPrice">
-          <el-input v-model="task.fixedPrice">
-            <template slot="append">¥</template>
-          </el-input>
-        </el-form-item>
+        <!--<el-form-item type="number" label="任务定价" prop="fixedPrice">-->
+        <!--<el-input v-model="task.fixedPrice">-->
+        <!--<template slot="append">¥</template>-->
+        <!--</el-input>-->
+        <!--</el-form-item>-->
         <el-form-item label="业务类型" prop="type">
           <el-radio-group v-model="task.type">
             <span v-for="(item,index) in serviceType" :key="index">
@@ -39,14 +39,14 @@
                 </el-radio>
               </el-radio-group>
             </el-tab-pane>
-            <el-tab-pane :label="resourceType[1]" name="1">
-              <provincecity
-                ref="addFormProvince"
-                @selectChange="locationChange"
-                :provinceCode="task.location.provinceCode"
-                :cityCode="task.location.cityCode"
-              ></provincecity>
-            </el-tab-pane>
+            <!--<el-tab-pane :label="resourceType[1]" name="1">-->
+            <!--<provincecity-->
+            <!--ref="addFormProvince"-->
+            <!--@selectChange="locationChange"-->
+            <!--:provinceCode="task.location.provinceCode"-->
+            <!--:cityCode="task.location.cityCode"-->
+            <!--&gt;</provincecity>-->
+            <!--</el-tab-pane>-->
             <el-tab-pane :label="resourceType[2]" name="2"></el-tab-pane>
           </el-tabs>
         </el-form-item>
@@ -170,8 +170,7 @@ export default {
           {required: true, message: '请选择业务类型', trigger: 'change'}
         ],
         desc: [{required: true, message: '请填写任务描述', trigger: 'blur'}],
-        quotePrice: [{required: true, message: '请填写任务报价', trigger: 'blur'}],
-        fixedPrice: [{required: true, message: '请填写任务定价', trigger: 'blur'}]
+        quotePrice: [{required: true, message: '请填写任务报价', trigger: 'blur'}]
       }
     }
   },