sunjh 6 anos atrás
pai
commit
5bad38261c

+ 9 - 1
config/index.js

@@ -10,7 +10,15 @@ module.exports = {
     // Paths
     assetsSubDirectory: 'static',
     assetsPublicPath: '/',
-    proxyTable: {},
+    proxyTable: {// config/index.js  文件
+      '/api': {
+        target: 'http://localhost:8080/', // 设置你调用的接口域名和端口号
+        changeOrigin: true,     // 跨域
+        pathRewrite: {
+          '^/api': '/'
+        }
+      },
+    },
 
     // Various Dev Server settings
     host: 'localhost', // can be overwritten by process.env.HOST

+ 3 - 1
package.json

@@ -17,7 +17,9 @@
     "mockjs": "^1.0.1-beta3",
     "vue": "^2.5.2",
     "vue-router": "^3.0.1",
-    "vuex": "^3.1.1"
+    "vuex": "^3.1.1",
+    "qs": "latest",
+    "Qs": "latest"
   },
   "devDependencies": {
     "autoprefixer": "^7.1.2",

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

@@ -501,7 +501,7 @@ export default {
       console.log('拒绝')
     },
     loadData () {//.replace('{projectId}','PROJECT_1')
-      Http.get(Apis.PAGE.PROJECT_DETAIL_PAGE).then((res) => {
+      Http.get(Apis.PAGE.PROJECT_DETAIL_PAGE.replace('{projectId}','PROJECT_1')).then((res) => {
         console.log(res)
         this.project = res.projectDetails
         this.task = res.taskList

+ 35 - 28
src/components/project/ProjectCreate.vue

@@ -43,13 +43,13 @@
         </el-form-item>
         <el-form-item label="服务类型" prop="type">
           <el-checkbox-group v-model="project.type">
-            <el-checkbox label="接口测试" name="type"></el-checkbox>
-            <el-checkbox label="安全漏洞扫描" name="type"></el-checkbox>
-            <el-checkbox label="风险评估服务" name="type"></el-checkbox>
-            <el-checkbox label="源代码安全审计服务" name="type"></el-checkbox>
-            <el-checkbox label="功能测试服务" name="type"></el-checkbox>
-            <el-checkbox label="性能测试" name="type"></el-checkbox>
-            <el-checkbox label="功能和易用性测试" name="type"></el-checkbox>
+            <el-checkbox label="0" name="0">接口测试</el-checkbox>
+            <el-checkbox label="1" name="1">安全漏洞扫描</el-checkbox>
+            <el-checkbox label="2" name="2">风险评估服务</el-checkbox>
+            <el-checkbox label="3" name="3">源代码安全审计服务</el-checkbox>
+            <el-checkbox label="4" name="4">功能测试服务</el-checkbox>
+            <el-checkbox label="5" name="5">性能测试</el-checkbox>
+            <el-checkbox label="6" name="6">功能和易用性测试</el-checkbox>
           </el-checkbox-group>
         </el-form-item>
         <el-form-item label="用途" prop="usage">
@@ -66,7 +66,7 @@
             v-model="project.resource"
             style="max-height: 200px;"
           >
-            <el-tab-pane label="定向" name="定向">
+            <el-tab-pane :label="resourceType[0]" name="0">
               <el-radio-group v-model="project.institution">
                 <el-radio
                   :label="item"
@@ -76,7 +76,7 @@
                 ></el-radio>
               </el-radio-group>
             </el-tab-pane>
-            <el-tab-pane label="区域" name="区域">
+            <el-tab-pane :label="resourceType[1]" name="1">
               <provincecity
                 ref="addFormProvince"
                 @selectChange="locationChange"
@@ -84,7 +84,7 @@
                 :cityCode="project.location.cityCode"
               ></provincecity>
             </el-tab-pane>
-            <el-tab-pane label="广场" name="广场"></el-tab-pane>
+            <el-tab-pane :label="resourceType[2]" name="2"></el-tab-pane>
           </el-tabs>
         </el-form-item>
         <el-form-item label="需求文档" prop="doc">
@@ -130,7 +130,7 @@
           </div>
         </el-form-item>
         <el-form-item>
-          <div class="btn btn-medium btn-info" @click="submitForm('project')">立即申请</div>
+          <div class="btn btn-medium btn-info" v-on:click="submitForm()">立即申请</div>
           <div class="btn btn-medium" @click="resetForm('project')">重置</div>
         </el-form-item>
       </el-form>
@@ -145,7 +145,8 @@ import Http from '@/js/http.js'
 import Apis from '@/js/api.js'
 import provincecity from '@/components/commons/ProvinceCity'
 import provinceCityJSON from '@/constants/provinceCity.json'
-
+import ServiceType from '@/constants/enum/service-type'
+import ResourceType from '@/constants/enum/resource-type'
 export default {
   name: 'ProjectCreate',
   components: {
@@ -154,8 +155,8 @@ export default {
   data () {
     var validatePass = (rule, value, callback) => {
       var reg = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/
-      if (value.phone) {
-        if (!reg.test(value.phone)) {
+      if (this.contactPhone) {
+        if (!reg.test(this.contactPhone)) {
           callback(new Error('请检查手机号码'))
         } else {
           callback()
@@ -166,6 +167,8 @@ export default {
       tabPosition: 'top',
       institutionArray: Enum.institution,
       platformType: [],
+      serviceType:ServiceType,
+      resourceType:ResourceType,
       project: {
         name: '',
         contactName: '',
@@ -173,8 +176,8 @@ export default {
         type: [],
         platform: [],
         desc: '',
-        doc: '',
-        file: '',
+        doc: '123',
+        file: '123',
         resource: '0',
         location: {provinceCode: '3200', cityCode: '3201'},
         institution: '',
@@ -295,19 +298,23 @@ export default {
         this.platformType.push(PlatformType[item])
       })
     },
-    submitForm (formName) {
-      this.$refs[formName].validate(valid => {
-        if (valid) {
-          console.log(this.project)
-          Http.post(Apis.PROJECT.CREATE_PROJECT_SUBMIT, this.project).then((res) => {
-            console.log(res)
-          })
-          //提交 project
-        } else {
-          console.log('error submit!!')
-          return false
-        }
+    submitForm () {
+      console.log(this.project)
+      Http.posts(Apis.PROJECT.CREATE_PROJECT_SUBMIT, this.project).then((res) => {
+        console.log(res.status)
       })
+      // this.$refs[formName].validate(valid => {
+      //   if (valid) {
+      //     console.log(this.project)
+      //     Http.post(Apis.PROJECT.CREATE_PROJECT_SUBMIT, this.project).then((res) => {
+      //       console.log(res)
+      //     })
+      //     //提交 project
+      //   } else {
+      //     console.log('error submit!!')
+      //     return false
+      //   }
+      // })
     },
     resetForm (formName) {
       this.$refs[formName].resetFields()

+ 1 - 1
src/js/api.js

@@ -1,6 +1,6 @@
 export default {
   PROJECT: {
-    CREATE_PROJECT_SUBMIT: '/api/project/',
+    CREATE_PROJECT_SUBMIT: '/api/project',
     UPDATE_PROJECT_SUBMIT: '/api/project/',
     CREATE_ANALYSE_DEMAND_SUBMIT: '/api/project/analyseDemand/',
   },

+ 15 - 14
src/js/http.js

@@ -1,20 +1,21 @@
 import axios from 'axios'
+import qs from 'Qs'
 
 const TIME_OUT_MS = 60 * 1000 // 默认请求超时时间
 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
 
-// 请求拦截器
-axios.interceptors.request.use(function (config) {
-  return config
-}, function (error) {
-  return Promise.reject(error)
-})
-// 响应拦截器
-axios.interceptors.response.use(function (response) {
-  return response
-}, function (error) {
-  return Promise.reject(error)
-})
+// // 请求拦截器
+// axios.interceptors.request.use(function (config) {
+//   return config
+// }, function (error) {
+//   return Promise.reject(error)
+// })
+// // 响应拦截器
+// axios.interceptors.response.use(function (response) {
+//   return response
+// }, function (error) {
+//   return Promise.reject(error)
+// })
 
 /*
  * @param response 返回数据列表
@@ -61,9 +62,9 @@ function handleParams (data) {
 }
 
 export default {
-  post (url, data) {
+  posts (url, data) {
     return new Promise((resolve, reject) => {
-      axios.post(url, data).then(
+      axios.post(url, qs.stringify(data)).then(
         (result) => {
           resolve(result)
         }

+ 1 - 1
src/main.js

@@ -13,7 +13,7 @@ import {
   Checkbox, CheckboxButton, CheckboxGroup, DatePicker, TimeSelect, TimePicker, Switch, Select,
   Option, Upload, Tabs, TabPane, Collapse, CollapseItem, MessageBox, Message, Notification,
 } from 'element-ui'
-require('./mock.js')
+// require('./mock.js')
 Vue.use(Carousel)
 Vue.use(CarouselItem)
 Vue.use(Row)