sunjh 6 anni fa
parent
commit
8df0340d35

+ 2 - 2
src/components/project/Project.vue

@@ -429,7 +429,7 @@ export default {
         if (valid) {
           this.isModifyMode = false
           console.log(this.project)
-          Http.put(Apis.PROJECT, this.project).then((res) => {
+          Http.put(Apis.PROJECT.UPDATE_PROJECT.replace('{projectId}', 'pro1564487183259'), this.project).then((res) => {
             console.log(res)
             console.log(this.project)
           })
@@ -503,7 +503,7 @@ export default {
       console.log('拒绝')
     },
     loadData () {
-      Http.get(Apis.PROJECT + 'PROJECT_1').then((res) => {
+      Http.get(Apis.PROJECT.GET_PROJECT.replace('{projectId}', 'pro1564487183259')).then((res) => {
         console.log(res)
         this.project = res.projectDetails
         this.task = res.taskList

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

@@ -302,7 +302,7 @@ export default {
     submitForm (formName) {
       this.$refs[formName].validate(valid => {
         if (valid) {
-          Http.post(Apis.PROJECT, this.project).then((res) => {
+          Http.post(Apis.PROJECT.CREATE_PROJECT, this.project).then((res) => {
             console.log(res.status)
           })
           //提交 project

+ 3 - 3
src/components/report/ReportList.vue

@@ -17,9 +17,9 @@
       </el-table-column>
       <el-table-column prop="file" sortable label="报告文件">
         <template slot-scope="scope">
-          <span v-if="scope.row.file.length==0">暂无文件</span>
-          <a :href="scope.row.file[0].url" v-if="scope.row.file.length>0" target="_blank"><i
-            class="fa fa-file-text-o"></i> {{scope.row.file[0].name}}</a>
+          <span v-if="scope.row.content==null">暂无文件</span>
+          <a :href="scope.row.content" v-if="scope.row.content!=0" target="_blank"><i
+            class="fa fa-file-text-o"></i> {{scope.row.content}}</a>
         </template>
       </el-table-column>
       <el-table-column align="right" label="操作">

+ 47 - 36
src/components/task/Task.vue

@@ -12,23 +12,23 @@
           <el-input v-if="isModifyMode" type="textarea" v-model="task.description"></el-input>
           <span v-if="!isModifyMode">{{task.description}}</span>
         </el-form-item>
-        <el-form-item label="任务报价" prop="price">
-          <el-input v-if="isModifyMode" v-model="task.price"></el-input>
-          <span v-if="!isModifyMode">{{task.price}}</span>
+        <el-form-item label="任务报价" prop="quotePrice">
+          <el-input v-if="isModifyMode" v-model="task.quotePrice"></el-input>
+          <span v-if="!isModifyMode">{{task.quotePrice}}</span>
         </el-form-item>
-        <el-form-item label="任务定价" prop="budget">
-          <el-input v-if="isModifyMode" v-model="task.budget"></el-input>
-          <span v-if="!isModifyMode">{{task.budget}}</span>
+        <el-form-item label="任务定价" prop="fixedPrice">
+          <el-input v-if="isModifyMode" v-model="task.fixedPrice"></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">
-            <el-radio :label="serviceType[0]" name="type"></el-radio>
-            <el-radio :label="serviceType[1]" name="type"></el-radio>
-            <el-radio :label="serviceType[2]" name="type"></el-radio>
-            <el-radio :label="serviceType[3]" name="type"></el-radio>
-            <el-radio :label="serviceType[4]" name="type"></el-radio>
-            <el-radio :label="serviceType[5]" name="type"></el-radio>
-            <el-radio :label="serviceType[6]" name="type"></el-radio>
+            <el-radio :label="0" name="type">{{serviceType[0]}}</el-radio>
+            <el-radio :label="1" name="type">{{serviceType[1]}}</el-radio>
+            <el-radio :label="2" name="type">{{serviceType[2]}}</el-radio>
+            <el-radio :label="3" name="type">{{serviceType[3]}}</el-radio>
+            <el-radio :label="4" name="type">{{serviceType[4]}}</el-radio>
+            <el-radio :label="5" name="type">{{serviceType[5]}}</el-radio>
+            <el-radio :label="6" name="type">{{serviceType[6]}}</el-radio>
           </el-radio-group>
           <span class="badge" v-if="!isModifyMode">{{serviceType[task.serviceType]}}</span>
         </el-form-item>
@@ -152,24 +152,24 @@ export default {
         ]
       },
       rules: {
-        name: [
-          {required: true, message: '请输入任务名称', trigger: 'blur'}
-          // { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }
-        ],
-        datetime: [
-          {
-            type: 'date',
-            required: true,
-            message: '请选择截止时间',
-            trigger: 'change'
-          }
-        ],
+        // name: [
+        //   {required: true, message: '请输入任务名称', trigger: 'blur'}
+        //   // { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }
+        // ],
+        // datetime: [
+        //   {
+        //     type: 'date',
+        //     required: true,
+        //     message: '请选择截止时间',
+        //     trigger: 'change'
+        //   }
+        // ],
         type: [
           {required: true, message: '请选择业务类型', trigger: 'change'}
         ],
-        desc: [{required: true, message: '请填写任务描述', trigger: 'blur'}],
-        price: [{required: true, message: '请填写任务报价', trigger: 'blur'}],
-        budget: [{required: true, message: '请填写任务定价', trigger: 'blur'}]
+        //desc: [{required: true, message: '请填写任务描述', trigger: 'blur'}],
+        quotePrice: [{required: true, message: '请填写任务报价', trigger: 'blur'}],
+        //fixedPrice: [{required: true, message: '请填写任务定价', trigger: 'blur'}]
       }
     }
   },
@@ -222,12 +222,23 @@ export default {
       return provinceName + ' / ' + cityName
     },
     submitForm (formName) {
+      console.log(this.task)
       this.$refs[formName].validate(valid => {
         if (valid) {
           this.isModifyMode = false
+          const newTask = {
+            name: this.task.title,
+            desc: this.task.description,
+            type: this.task.serviceType,
+            resource: this.task.resource,
+            location: this.task.location,
+            institution:this.task.institution,
+            datetime:this.task.datetime,
+            quotePrice: this.task.quotePrice,
+            fixedPrice: this.task.fixedPrice
+          }
           //修改TASK
-          Http.put(Apis.TASK, this.task).then((res) => {
-            console.log(this.task)
+          Http.put(Apis.TASK.UPDATE_TASK.replace('{projectId}', 'pro1564487183259').replace('{taskId}', 'pro1564487183259_task1564487274060'), newTask).then((res) => {
             console.log(res)
           })
           //提交 task
@@ -242,15 +253,15 @@ export default {
     },
     modifyForm () {
       this.isModifyMode = true
-
+      this.loadData()
     },
     resetForm (formName) {
       this.$refs.addFormProvince.resetProviceCity()
       this.$refs[formName].resetFields()
       this.task.name = ''
       this.task.desc = ''
-      this.task.price = ''
-      this.task.budget = ''
+      this.task.quotePrice = ''
+      this.task.fixedPrice = ''
       this.task.type = ''
       this.task.resource = '2'; //如果是广场不用管Location和institution ,定向看institution,区域看location
       (this.task.location = {provinceCode: '', cityCode: ''}),
@@ -276,9 +287,9 @@ export default {
     },
     loadData () {
       //replace('{taskId}', this.taskId)
-      Http.get(Apis.TASK + '0').then((res) => {
-        this.task = res.task
-        this.reportList = res.reportList
+      Http.get(Apis.TASK.GET_TASK.replace('{projectId}', 'pro1564487183259').replace('{taskId}', 'pro1564487183259_task1564487274060')).then((res) => {
+        this.task = res.crowdTaskVO
+        this.reportList = res.crowdReportVOList
         console.log(this.task)
       })
     },

+ 39 - 24
src/components/task/TaskCreate.vue

@@ -9,21 +9,21 @@
         <el-form-item label="任务描述" prop="desc">
           <el-input type="textarea" v-model="task.desc"></el-input>
         </el-form-item>
-        <el-form-item label="任务报价" prop="price">
-          <el-input v-model="task.price"></el-input>
+        <el-form-item label="任务报价" prop="quotePrice">
+          <el-input v-model="task.quotePrice"></el-input>
         </el-form-item>
-        <el-form-item label="任务定价" prop="budget">
-          <el-input v-model="task.budget"></el-input>
+        <el-form-item label="任务定价" prop="fixedPrice">
+          <el-input v-model="task.fixedPrice"></el-input>
         </el-form-item>
         <el-form-item label="业务类型" prop="type">
           <el-radio-group v-model="task.type">
-            <el-radio label="接口测试" name="type"></el-radio>
-            <el-radio label="安全漏洞扫描" name="type"></el-radio>
-            <el-radio label="风险评估服务" name="type"></el-radio>
-            <el-radio label="源代码安全审计服务" name="type"></el-radio>
-            <el-radio label="功能测试服务" name="type"></el-radio>
-            <el-radio label="性能测试" name="type"></el-radio>
-            <el-radio label="功能和易用性测试" name="type"></el-radio>
+            <el-radio label="0" name="type">{{serviceType[0]}}</el-radio>
+            <el-radio label="1" name="type">{{serviceType[1]}}</el-radio>
+            <el-radio label="2" name="type">{{serviceType[2]}}</el-radio>
+            <el-radio label="3" name="type">{{serviceType[3]}}</el-radio>
+            <el-radio label="4" name="type">{{serviceType[4]}}</el-radio>
+            <el-radio label="5" name="type">{{serviceType[5]}}</el-radio>
+            <el-radio label="6" name="type">{{serviceType[6]}}</el-radio>
           </el-radio-group>
         </el-form-item>
         <el-form-item label="任务可见性" prop="resource">
@@ -78,6 +78,7 @@ import provinceCityJSON from '@/constants/provinceCity.json'
 import Http from '@/js/http.js'
 import Apis from '@/js/api.js'
 import ResourceType from '@/constants/enum/resource-type.js'
+import ServiceType from '@/constants/enum/service-type'
 
 export default {
   name: 'Task',
@@ -90,6 +91,7 @@ export default {
       institutionArray: Enum.institution,
       tabPosition: 'top',
       resourceType: ResourceType,
+      serviceType: ServiceType,
       task: {
         name: '',
         desc: '',
@@ -142,8 +144,8 @@ export default {
           {required: true, message: '请选择业务类型', trigger: 'change'}
         ],
         desc: [{required: true, message: '请填写任务描述', trigger: 'blur'}],
-        price: [{required: true, message: '请填写任务报价', trigger: 'blur'}],
-        budget: [{required: true, message: '请填写任务定价', trigger: 'blur'}]
+        quotePrice: [{required: true, message: '请填写任务报价', trigger: 'blur'}],
+        fixedPrice: [{required: true, message: '请填写任务定价', trigger: 'blur'}]
       }
     }
   },
@@ -194,18 +196,31 @@ export default {
       return provinceName + ' / ' + cityName
     },
     submitForm (formName) {
-      this.$refs[formName].validate(valid => {
-        if (valid) {
-          Http.post(Apis.TASK, this.task).then((res) => {
-            console.log(this.task)
-            console.log(res)
-          })
-          //提交 task
-        } else {
-          console.log('error submit!!')
-          return false
-        }
+      Http.post(Apis.TASK.CREATE_TASK.replace('{projectId}', 'pro1564487183259'), this.task).then((res) => {
+        console.log(res)
       })
+      // this.$refs[formName].validate(valid => {
+      //   if (valid) {
+      //     const newTask = {
+      //       name: this.task.title,
+      //       desc: this.task.description,
+      //       type: this.task.serviceType,
+      //       resource: this.task.resource,
+      //       location: this.task.location,
+      //       institution:this.task.institution,
+      //       datetime:this.task.datetime,
+      //       quotePrice: this.task.quotePrice,
+      //       fixedPrice: this.task.fixedPrice
+      //     }
+      //     Http.post(Apis.TASK.CREATE_TASK.replace('{projectId}', 'PROJECT_1'), this.task).then((res) => {
+      //       console.log(res)
+      //     })
+      //     //提交 task
+      //   } else {
+      //     console.log('error submit!!')
+      //     return false
+      //   }
+      // })
     },
     resetForm (formName) {
       this.$refs.addFormProvince.resetProviceCity()

+ 2 - 2
src/constants/enum/index.js

@@ -3,11 +3,11 @@ export default {
         "华东","华北","华中","华南","西南","西北","东北"
     ],
     institution:[
-        "慕测","上软","拓思","4","5","6","7","8","9","10",
+        "1","2","3","4","5","6","7","8","9","10",
         "11","12","13","14","15","16","17","18","19","20",
         "21","22","23","24","25","26","27","28","29","30",
         "31","32","33","34","35","36","37","38","39","40",
         "41","42","43","44","45","46","47","48","49","50",
         "51","52","53","54","55","56","57","58","59","60"
     ]
-}
+}

+ 18 - 3
src/js/api.js

@@ -1,7 +1,22 @@
 export default {
-  PROJECT: '/api/project/',
-  TASK: '/api/task/',
-  REPORT: '/api/report/',
+  PROJECT: {
+    GET_PROJECT: '/api/project/{projectId}/',
+    CREATE_PROJECT: '/api/project/',
+    UPDATE_PROJECT: '/api/project/{projectId}/',
+    DELETE_PROJECT: '/api/project/{projectId}/'
+  },
+  TASK: {
+    GET_TASK: '/api/project/{projectId}/task/{taskId}/',
+    CREATE_TASK: '/api/project/{projectId}/task/',
+    UPDATE_TASK: '/api/project/{projectId}/task/{taskId}/',
+    DELETE_TASK: '/api/project/{projectId}/task/{taskId}/'
+  },
+  REPORT: {
+    GET_REPORT: '/api/report/{reportId}/',
+    CREATE_REPORT: '/api/report/',
+    UPDATE_REPORT: '/api/report/{reportId}/',
+    DELETE_REPORT: '/api/report/{reportId}/'
+  },
   USER: {},
   PAGE: {
     HOME_PAGE: '/api/page/home/',

+ 3 - 3
src/js/http.js

@@ -58,13 +58,13 @@ function handleUrl (url) {
  * @return
  */
 function handleParams (data) {
-  return data
+  return JSON.parse(JSON.stringify(data))
 }
 
 export default {
   post (url, data) {
     return new Promise((resolve, reject) => {
-      axios.post(url, qs.stringify(data)).then(
+      axios.post(url, handleParams(data)).then(
         (result) => {
           resolve(result)
         }
@@ -89,7 +89,7 @@ export default {
   },
   put (url, data) {
     return new Promise((resolve, reject) => {
-      axios.put(url, qs.stringify(data)).then(
+      axios.put(url, JSON.parse(JSON.stringify(data))).then(
         (result) => {
           resolve(result)
         }

+ 10 - 12
src/router/index.js

@@ -14,8 +14,6 @@ import AnalyseDemand from '@/components/project/AnalyseDemand'
 import Report from '@/components/report/Report'
 import ReportCreate from '@/components/report/ReportCreate'
 
-
-
 Vue.use(Router)
 
 export default new Router({
@@ -28,52 +26,52 @@ export default new Router({
     {
       path: '/home',
       name: 'Home',
-      component: Home
+      component: resolve => require(['@/components/Home.vue'], resolve),
     },
     {
       path: '/square',
       name: 'Square',
-      component: Square
+      component: resolve => require(['@/components/Square.vue'], resolve),
     },
     {
       path: '/mine',
       name: 'Mine',
-      component: Mine
+      component: resolve => require(['@/components/Mine.vue'], resolve),
     },
     {
       path: '/project/create',
       name: 'ProjectCreate',
-      component: ProjectCreate
+      component: resolve => require(['@/components/project/ProjectCreate.vue'], resolve),
     },
     {
       path: '/project/:projectId',
       name: 'Project',
-      component: Project
+      component: resolve => require(['@/components/project/Project.vue'], resolve),
     },
     {
       path: '/project/:projectId/task/create',
       name: 'TaskCreate',
-      component: TaskCreate
+      component: resolve => require(['@/components/task/TaskCreate.vue'], resolve),
     },
     {
       path: '/project/:projectId/task/:taskId',
       name: 'Task',
-      component: Task
+      component: resolve => require(['@/components/task/Task.vue'], resolve),
     },
     {
       path: '/project/:projectId/analyse',
       name: 'AnalyseDemand',
-      component: AnalyseDemand
+      component: resolve => require(['@/components/project/AnalyseDemand.vue'], resolve),
     },
     {
       path: '/report/create',
       name: 'ReportCreate',
-      component: ReportCreate
+      component: resolve => require(['@/components/report/ReportCreate.vue'], resolve),
     },
     {
       path: '/report/:reportId',
       name: 'Report',
-      component: Report
+      component: resolve => require(['@/components/report/Report.vue'], resolve),
     }
   ]
 })