Parcourir la source

add serviceCode

wangJJ il y a 5 ans
Parent
commit
f74ae508a2
2 fichiers modifiés avec 48 ajouts et 29 suppressions
  1. 20 7
      src/components/task/Task.vue
  2. 28 22
      src/components/task/TaskCreate.vue

+ 20 - 7
src/components/task/Task.vue

@@ -38,14 +38,16 @@
         </el-form-item>
 
         <el-form-item label="examId" prop="endPointVO.examId" style="width: 700px;"
-                      v-if="showBD&&task.endPointVO&&task.serviceType=='北斗众测'" required>
+                      v-if="showBD&&task.endPointVO&&currType.type===1"
+                      :rules="[{ required: true, message: '请输入examId', trigger: 'blur' }]">
           <el-input v-if="isModifyMode" v-model="task.endPointVO.examId" label="examId"></el-input>
           <span v-if="!isModifyMode&&showBD">{{task.endPointVO.examId}}</span>
         </el-form-item>
 
 
         <el-form-item label="caseId" prop="endPointVO.caseId" style="width: 700px;"
-                      v-if="showBD&&task.endPointVO&&task.serviceType=='北斗众测'" required>
+                      v-if="showBD&&task.endPointVO&&currType.type===1"
+                      :rules="[{ required: true, message: '请输入caseId', trigger: 'blur' }]">
           <el-input v-if="isModifyMode" v-model.number="task.endPointVO.caseId" label="caseId"></el-input>
           <span v-if="!isModifyMode&&showBD">{{task.endPointVO.caseId}}</span>
         </el-form-item>
@@ -64,7 +66,7 @@
             v-if="isModifyMode"
           >
             <el-tab-pane :label="resourceType[0]" name="0">
-              <el-radio-group v-model="task.institution">
+              <el-radio-group v-model="task.institution" @change="handleTestTypeChange">
                 <el-radio
                   :label="item"
                   name="type"
@@ -85,8 +87,11 @@
             <el-tab-pane :label="resourceType[2]" name="2"></el-tab-pane>
           </el-tabs>
         </el-form-item>
-        <el-form-item label="领取人数" prop="quotePrice" v-if="isModifyMode && task.resource!=='0'">
-          <el-input-number v-model="task.participantCount" :min="1" :max="100" label="领取人数"></el-input-number>
+        <el-form-item label="领取人数" prop="contactPhone" v-if="isModifyMode&&task.resource !== '0' && currType.type===0">
+          <el-input-number v-model="task.participantCount" :min="1" :max="1000" label="领取人数"></el-input-number>
+        </el-form-item>
+        <el-form-item label="领取人数" prop="contactPhone" v-if="isModifyMode&&task.resource !== '0' && currType.type===1">
+          <el-input-number v-model="task.participantCount" :min="2" :max="1000" label="领取人数"></el-input-number>
         </el-form-item>
         <el-form-item label="领取人数" prop="quotePrice" v-if="!isModifyMode">
           {{task.acceptedCount }}/{{ task.participantCount}}
@@ -267,6 +272,7 @@
     },
     data() {
       return {
+        currType: {},
         user: {},
         showBD: true,
         rolesPermissions: {},
@@ -407,6 +413,15 @@
       })
     },
     methods: {
+      handleTestTypeChange(val) {
+        let type = this.serviceType.filter((item) => {
+          return item.code === val;
+        });
+        this.currType = type[0] ? type[0] : {};
+        if (this.currType.type === 0) {
+          this.task.participantCount = 1
+        }
+      },
       init() {
         this.taskId = this.$route.params.taskId
         this.projectId = this.$route.params.projectId
@@ -495,9 +510,7 @@
       },
       //获取任务详情成功时回调函数
       getTaskDetailSuccess(res) {
-        console.log('获取task信息')
         this.hideLoading()
-        console.log(res.crowdTaskVO)
         this.taskId = res.crowdTaskVO.id
         this.projectId = res.crowdTaskVO.projectId
         this.task.title = res.crowdTaskVO.title

+ 28 - 22
src/components/task/TaskCreate.vue

@@ -20,7 +20,7 @@
         <!--</el-input>-->
         <!--</el-form-item>-->
         <el-form-item label="测试类型" prop="type">
-          <el-radio-group v-model="task.type">
+          <el-radio-group v-model="task.type" @change="handleTestTypeChange">
             <span v-for="(item,index) in serviceType" :key="index">
               <el-radio :label="item.code" name="type">{{item.name}}</el-radio>
             </span>
@@ -28,15 +28,13 @@
         </el-form-item>
 
 
-        <el-form-item label="examId" prop="endpoint.examId" style="width:700px;" v-if="task.type=='BDSPT'" required>
-          <el-input v-model="task.endpoint.examId" label="examId"></el-input>
-        </el-form-item>
-        <el-form-item label="caseId" prop="endpoint.caseId" style="width:700px;" v-if="task.type=='BDSPT'" required>
-          <el-input v-model="task.endpoint.caseId" label="caseId"></el-input>
+        <el-form-item label="serverCode" prop="endPoint.serverCode" style="width:700px;" v-if="currType.type==1"
+                      :rules="[{ required: true, message: '请输入serverCode', trigger: 'blur' }]">
+          <el-input v-model="task.endPoint.serverCode" label="serverCode"></el-input>
         </el-form-item>
 
 
-        <el-form-item label="任务可见性" prop="resource" style="width:700px;" v-if="task.type!=='BDSPT'">
+        <el-form-item label="任务可见性" prop="resource" style="width:700px;" v-if="currType.type==0">
           <el-tabs :tab-position="tabPosition" v-model="task.resource" style="width: 800px">
             <el-tab-pane :label="resourceType[0]" name="0">
               <el-radio-group v-model="task.institution">
@@ -61,16 +59,16 @@
           </el-tabs>
         </el-form-item>
 
-        <el-form-item label="任务可见性" prop="resource" style="width:700px;" v-if="task.type ==='BDSPT'">
+        <el-form-item label="任务可见性" prop="resource" style="width:700px;" v-if="currType.type ==1">
           <el-tabs :tab-position="tabPosition" v-model="task.resource" style="width: 800px">
             <el-tab-pane :label="resourceType[2]" name="2"></el-tab-pane>
           </el-tabs>
         </el-form-item>
 
-        <el-form-item label="领取人数" prop="contactPhone" v-if="task.resource !== '0' && task.type!=='BDSPT'">
+        <el-form-item label="领取人数" prop="contactPhone" v-if="task.resource !== '0' && currType.type===0">
           <el-input-number v-model="task.participantCount" :min="1" :max="1000" label="领取人数"></el-input-number>
         </el-form-item>
-        <el-form-item label="领取人数" prop="contactPhone" v-if="task.resource !== '0' && task.type=='BDSPT'">
+        <el-form-item label="领取人数" prop="contactPhone" v-if="task.resource !== '0' && currType.type===1">
           <el-input-number v-model="task.participantCount" :min="2" :max="1000" label="领取人数"></el-input-number>
         </el-form-item>
         <el-form-item label="需求文档" prop="doc">
@@ -131,6 +129,7 @@ export default {
   },
   data () {
     return {
+      currType:{},
       user: {},
       projectId: 0,
       institutionArray: [],
@@ -143,7 +142,7 @@ export default {
         desc: '',
         type: '',
         resource: '0', //如果是广场不用管Location和institution ,定向看institution,区域看location
-        location: {provinceCode: '3200', cityCode: '3201'},
+        // location: {provinceCode: '3200', cityCode: '3201'},
         institution: '',
         datetime: '',
         quotePrice: '',
@@ -151,9 +150,8 @@ export default {
         doc: [],
         requireDocUrl: '',
         participantCount: 1,
-        endpoint:{
-          caseId:'',
-          examId:''
+        endPoint:{
+          serverCode:'',
         }
       },
       pickerOptions: {
@@ -208,6 +206,7 @@ export default {
           {required: true},
           {
             validator: (rule, value, callback) => {
+              console.log(value)
               if (value == 0 && this.task.institution.id == null) {
                 callback(new Error('定向发布至少要选择一个测评机构'))
               } else {
@@ -216,13 +215,11 @@ export default {
             }, trigger: 'change'
           },
         ],
-        endpoint:[
+        endPoint:[
           {
             validator: (rule, value, callback) => {
-              if (this.task.type=== 'BDSPT' && this.task.endpoint.caseId === '') {
-                callback(new Error('请填写对应得caseID'))
-              } else if (this.task.type=== 'BDSPT' && this.task.endpoint.examId === ''){
-                callback(new Error('请填写对应得examID'))
+              if (this.currType.type=== 1 && this.task.endPoint.serverCode === '') {
+                callback(new Error('请填写对应得serverCode'))
               } else {
                 callback()
               }
@@ -266,6 +263,15 @@ export default {
     })
   },
   methods: {
+    handleTestTypeChange(val){
+      let type = this.serviceType.filter((item)=>{
+        return item.code === val ;
+      });
+      this.currType = type[0] ? type[0] : {};
+      if(this.currType.type === 0){
+        this.task.participantCount = 1
+      }
+    },
     init () {
       this.projectId = this.$route.params.projectId
       this.setServiceType()
@@ -297,14 +303,14 @@ export default {
             desc: this.task.desc,
             type: this.task.type,
             resource: this.task.resource,
-            location: getProvinceNameByProvinceCode(this.task.location.provinceCode, this.task.location.cityCode),
-            institution: this.task.institution.id,
+            // location: this.task.resource == '0' ? getProvinceNameByProvinceCode(this.task.location.provinceCode, this.task.location.cityCode):null,
+            institution: this.task.resource == '0' ? this.task.institution.id : null,
             datetime: this.task.datetime,
             quotePrice: this.task.quotePrice,
             fixedPrice: this.task.fixedPrice,
             requirementFile: this.task.requireDocUrl,
             participantCount: this.task.participantCount,
-            endpoint:this.task.endpoint
+            endPoint:this.task.endPoint
           }
           Http.post(Apis.TASK.CREATE_TASK.replace('{projectId}', this.projectId), newTask).then((res) => {
             console.log(res)