sunjh 6 年之前
父节点
当前提交
b33648ad6a
共有 5 个文件被更改,包括 563 次插入7 次删除
  1. 156 0
      src/components/authen/Authentication.vue
  2. 156 0
      src/components/cheat/AgencyAdd.vue
  3. 223 0
      src/components/cheat/ProjectAdd.vue
  4. 9 6
      src/js/api.js
  5. 19 1
      src/router/index.js

+ 156 - 0
src/components/authen/Authentication.vue

@@ -0,0 +1,156 @@
+<template>
+  <div class="create-container">
+    <div class="create-body">
+      <div class="title">测评机构认证</div>
+      <el-form :model="authentication" :rules="rules" ref="authentication" label-width="12%" class="demo-report">
+        <el-form-item label="机构名称" prop="name">
+          <el-input v-if="isModifyMode" v-model="authentication.name"></el-input>
+          <span v-if="!isModifyMode">{{authentication.name}}</span>
+        </el-form-item>
+        <el-form-item label="银行卡账户" prop="name">
+          <el-input v-if="isModifyMode" v-model="authentication.bankAccount"></el-input>
+          <span v-if="!isModifyMode">{{authentication.bankAccount}}</span>
+        </el-form-item>
+        <el-form-item label="地址" prop="name">
+          <el-input v-if="isModifyMode" v-model="authentication.address"></el-input>
+          <span v-if="!isModifyMode">{{authentication.address}}</span>
+        </el-form-item>
+        <el-form-item label="测评机构能力" prop="name">
+          <el-input v-if="isModifyMode" v-model="authentication.ability"></el-input>
+          <span v-if="!isModifyMode">{{authentication.ability}}</span>
+        </el-form-item>
+        <el-form-item label="测评机构资源" prop="name">
+          <el-input v-if="isModifyMode" v-model="authentication.resource"></el-input>
+          <span v-if="!isModifyMode">{{authentication.resource}}</span>
+        </el-form-item>
+        <el-form-item prop="file" label="头像">
+          <el-upload
+            v-if="isModifyMode"
+            drag
+            class="upload-demo"
+            action="https://jsonplaceholder.typicode.com/posts/"
+            :on-remove="handleRemove"
+            :before-remove="beforeRemove"
+            multiple
+            :limit="1"
+            :on-exceed="handleExceed"
+            :before-upload="beforeFileUpload"
+            :file-list="authentication.photo"
+          >
+            <i class="el-icon-upload"></i>
+            <div class="el-upload__text">
+              将文件拖到此处,或
+              <em>点击上传</em>
+            </div>
+            <div class="el-upload__tip" slot="tip">请上传报告文件</div>
+          </el-upload>
+          <div v-if="!isModifyMode">
+            <span v-if="authentication.photo==null">暂无文件</span>
+            <a :href="authentication.photo" v-if="authentication.photo!=null"><i class="fa fa-file-text-o"></i>
+              {{authentication.photo}}</a>
+          </div>
+        </el-form-item>
+
+        <el-form-item v-if="!isModifyMode">
+          <div class="btn btn-medium btn-info" @click="modifyInfo()">修改</div>
+          <div class="btn btn-medium" @click="cancelModify()">返回</div>
+        </el-form-item>
+        <el-form-item v-if="isModifyMode">
+          <div class="btn btn-primary btn-info" @click="submitInfo()">确认修改</div>
+          <div class="btn btn-primary" @click="cancelModify()">取消</div>
+        </el-form-item>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import Http from '../../js/http'
+import Apis from '../../js/api'
+
+export default {
+  name: 'Authentication',
+  data () {
+    return {
+      userId: 0,
+      isModifyMode: true,
+      authentication: {
+        name: '',
+        bankAccount: '',
+        address: '',
+        ability: '',
+        resource: '',
+        photo: [],
+      },
+      rules: {
+        // name: [
+        //   {required: true, message: '请输入报告名称', trigger: 'blur'}
+        //   // { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }
+        // ],
+        // abstract: [
+        //   {
+        //     required: true,
+        //     message: '请输入摘要信息',
+        //     trigger: 'change'
+        //   }
+        // ],
+        // type: [
+        //   {required: true, message: '请选择报告类型', trigger: 'change'}
+        // ],
+        // conclusion: [
+        //   {required: true, message: '请输入报告结论', trigger: 'blur'}
+        // ]
+      }
+    }
+  },
+  methods: {
+    //加载数据
+    loadData: function () {
+    },
+    modifyInfo () {
+      this.isModifyMode = true
+    },
+    submitInfo () {
+      this.isModifyMode = false
+      Http.post(Apis.USER.AGENCY_AUTHENTICATION,this.authentication).then((res) =>{
+        console.log(res)
+      })
+    },
+    cancelModify () {
+      this.isModifyMode = false
+    },
+    handleRemove (file, fileList) {
+      console.log(file, fileList)
+    },
+    handleExceed (files, fileList) {
+      this.$message.warning(
+        `当前限制选择 1 个文件,本次选择了 ${
+          files.length
+          } 个文件,共选择了 ${files.length + fileList.length} 个文件`
+      )
+    },
+    beforeRemove (file, fileList) {
+      return this.$confirm(`确定移除 ${file.name}?`)
+    },
+    beforeFileUpload () {
+    },
+  },
+  created: function () {
+  }
+}
+</script>
+
+<style scoped>
+  .el-radio {
+    margin: 10px 20px 10px 0;
+  }
+
+  .el-form-item /deep/ .el-tabs__content {
+    max-height: 120px !important;
+    overflow: auto;
+  }
+
+  .el-row {
+    margin-bottom: 10px;
+  }
+</style>

+ 156 - 0
src/components/cheat/AgencyAdd.vue

@@ -0,0 +1,156 @@
+<template>
+  <div class="create-container">
+    <div class="create-body">
+      <div class="title">添加机构</div>
+      <el-form :model="agency" :rules="rules" ref="agency" label-width="12%" class="demo-report">
+        <el-form-item label="机构名称" prop="name">
+          <el-input v-if="isModifyMode" v-model="agency.name"></el-input>
+          <span v-if="!isModifyMode">{{agency.name}}</span>
+        </el-form-item>
+        <el-form-item label="银行卡账户" prop="name">
+          <el-input v-if="isModifyMode" v-model="agency.bankAccount"></el-input>
+          <span v-if="!isModifyMode">{{agency.bankAccount}}</span>
+        </el-form-item>
+        <el-form-item label="地址" prop="name">
+          <el-input v-if="isModifyMode" v-model="agency.address"></el-input>
+          <span v-if="!isModifyMode">{{agency.address}}</span>
+        </el-form-item>
+        <el-form-item label="测评机构能力" prop="name">
+          <el-input v-if="isModifyMode" v-model="agency.ability"></el-input>
+          <span v-if="!isModifyMode">{{agency.ability}}</span>
+        </el-form-item>
+        <el-form-item label="测评机构资源" prop="name">
+          <el-input v-if="isModifyMode" v-model="agency.resource"></el-input>
+          <span v-if="!isModifyMode">{{agency.resource}}</span>
+        </el-form-item>
+        <el-form-item prop="file" label="头像">
+          <el-upload
+            v-if="isModifyMode"
+            drag
+            class="upload-demo"
+            action="https://jsonplaceholder.typicode.com/posts/"
+            :on-remove="handleRemove"
+            :before-remove="beforeRemove"
+            multiple
+            :limit="1"
+            :on-exceed="handleExceed"
+            :before-upload="beforeFileUpload"
+            :file-list="agency.photo"
+          >
+            <i class="el-icon-upload"></i>
+            <div class="el-upload__text">
+              将文件拖到此处,或
+              <em>点击上传</em>
+            </div>
+            <div class="el-upload__tip" slot="tip">请上传报告文件</div>
+          </el-upload>
+          <div v-if="!isModifyMode">
+            <span v-if="agency.photo==null">暂无文件</span>
+            <a :href="agency.photo" v-if="agency.photo!=null"><i class="fa fa-file-text-o"></i>
+              {{agency.photo}}</a>
+          </div>
+        </el-form-item>
+
+        <el-form-item v-if="!isModifyMode">
+          <div class="btn btn-medium btn-info" @click="modifyInfo()">修改</div>
+          <div class="btn btn-medium" @click="cancelModify()">返回</div>
+        </el-form-item>
+        <el-form-item v-if="isModifyMode">
+          <div class="btn btn-primary btn-info" @click="submitInfo()">确认修改</div>
+          <div class="btn btn-primary" @click="cancelModify()">取消</div>
+        </el-form-item>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import Http from '../../js/http'
+import Apis from '../../js/api'
+
+export default {
+  name: 'AgencyAdd',
+  data () {
+    return {
+      userId: 0,
+      isModifyMode: true,
+      agency: {
+        name: '',
+        bankAccount: '',
+        address: '',
+        ability: '',
+        resource: '',
+        photo: [],
+      },
+      rules: {
+        // name: [
+        //   {required: true, message: '请输入报告名称', trigger: 'blur'}
+        //   // { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }
+        // ],
+        // abstract: [
+        //   {
+        //     required: true,
+        //     message: '请输入摘要信息',
+        //     trigger: 'change'
+        //   }
+        // ],
+        // type: [
+        //   {required: true, message: '请选择报告类型', trigger: 'change'}
+        // ],
+        // conclusion: [
+        //   {required: true, message: '请输入报告结论', trigger: 'blur'}
+        // ]
+      }
+    }
+  },
+  methods: {
+    //加载数据
+    loadData: function () {
+    },
+    modifyInfo () {
+      this.isModifyMode = true
+    },
+    submitInfo () {
+      this.isModifyMode = false
+      Http.post(Apis.USER.ADD_AGENCY, this.agency).then((res) => {
+        console.log(res)
+      })
+    },
+    cancelModify () {
+      this.isModifyMode = false
+    },
+    handleRemove (file, fileList) {
+      console.log(file, fileList)
+    },
+    handleExceed (files, fileList) {
+      this.$message.warning(
+        `当前限制选择 1 个文件,本次选择了 ${
+          files.length
+          } 个文件,共选择了 ${files.length + fileList.length} 个文件`
+      )
+    },
+    beforeRemove (file, fileList) {
+      return this.$confirm(`确定移除 ${file.name}?`)
+    },
+    beforeFileUpload () {
+    },
+  },
+  created: function () {
+  }
+}
+</script>
+
+<style scoped>
+  .el-radio {
+    margin: 10px 20px 10px 0;
+  }
+
+  .el-form-item /deep/ .el-tabs__content {
+    max-height: 120px !important;
+    overflow: auto;
+  }
+
+  .el-row {
+    margin-bottom: 10px;
+  }
+</style>

+ 223 - 0
src/components/cheat/ProjectAdd.vue

@@ -0,0 +1,223 @@
+<template>
+  <div class="create-container">
+    <div class="create-body">
+      <div class="title">创建项目</div>
+      <el-form :model="project" :rules="rules" ref="project" label-width="12%" class="demo-report">
+        <el-form-item label="项目名称" prop="name">
+          <el-input v-if="isModifyMode" v-model="project.name"></el-input>
+          <span v-if="!isModifyMode">{{project.name}}</span>
+        </el-form-item>
+        <el-form-item label="项目描述" prop="name">
+          <el-input v-if="isModifyMode" v-model="project.description"></el-input>
+          <span v-if="!isModifyMode">{{project.description}}</span>
+        </el-form-item>
+        <el-form-item label="联系人姓名" prop="name">
+          <el-input v-if="isModifyMode" v-model="project.contactName"></el-input>
+          <span v-if="!isModifyMode">{{project.contactName}}</span>
+        </el-form-item>
+        <el-form-item label="联系人电话" prop="name">
+          <el-input v-if="isModifyMode" v-model="project.contactPhone"></el-input>
+          <span v-if="!isModifyMode">{{project.contactPhone}}</span>
+        </el-form-item>
+        <el-form-item label="项目定价" prop="name">
+          <el-input v-if="isModifyMode" v-model="project.price"></el-input>
+          <span v-if="!isModifyMode">{{project.resource}}</span>
+        </el-form-item>
+        <el-form-item prop="file" label="项目需求文档">
+          <el-upload
+            v-if="isModifyMode"
+            drag
+            class="upload-demo"
+            action="https://jsonplaceholder.typicode.com/posts/"
+            :on-remove="handleRemove"
+            :before-remove="beforeRemove"
+            multiple
+            :limit="1"
+            :on-exceed="handleExceed"
+            :before-upload="beforeFileUpload"
+            :file-list="project.requireDoc"
+          >
+            <i class="el-icon-upload"></i>
+            <div class="el-upload__text">
+              将文件拖到此处,或
+              <em>点击上传</em>
+            </div>
+            <div class="el-upload__tip" slot="tip">请上传报告文件</div>
+          </el-upload>
+          <div v-if="!isModifyMode">
+            <span v-if="project.file==null">暂无文件</span>
+            <a :href="project.photo" v-if="project.photo!=null"><i class="fa fa-file-text-o"></i>
+              {{project.photo}}</a>
+          </div>
+        </el-form-item>
+        <el-form-item prop="file" label="项目待测文件">
+          <el-upload
+            v-if="isModifyMode"
+            drag
+            class="upload-demo"
+            action="https://jsonplaceholder.typicode.com/posts/"
+            :on-remove="handleRemove"
+            :before-remove="beforeRemove"
+            multiple
+            :limit="1"
+            :on-exceed="handleExceed"
+            :before-upload="beforeFileUpload"
+            :file-list="project.file"
+          >
+            <i class="el-icon-upload"></i>
+            <div class="el-upload__text">
+              将文件拖到此处,或
+              <em>点击上传</em>
+            </div>
+            <div class="el-upload__tip" slot="tip">请上传报告文件</div>
+          </el-upload>
+          <div v-if="!isModifyMode">
+            <span v-if="project.file==null">暂无文件</span>
+            <a :href="project.photo" v-if="project.photo!=null"><i class="fa fa-file-text-o"></i>
+              {{project.photo}}</a>
+          </div>
+        </el-form-item>
+        <el-form-item label="项目截止时间" prop="datetime">
+          <div class="block">
+            <el-date-picker
+              v-model="project.datetime"
+              type="datetime"
+              placeholder="选择截止时间"
+              align="right"
+              :picker-options="pickerOptions"
+            ></el-date-picker>
+          </div>
+        </el-form-item>
+        <el-form-item v-if="!isModifyMode">
+          <div class="btn btn-medium btn-info" @click="modifyInfo()">修改</div>
+          <div class="btn btn-medium" @click="cancelModify()">返回</div>
+        </el-form-item>
+        <el-form-item v-if="isModifyMode">
+          <div class="btn btn-primary btn-info" @click="submitInfo()">确认提交</div>
+          <div class="btn btn-primary" @click="cancelModify()">取消</div>
+        </el-form-item>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import Http from '../../js/http'
+import Apis from '../../js/api'
+
+export default {
+  name: 'ProjectAdd',
+  data () {
+    return {
+      userId: 0,
+      isModifyMode: true,
+      project: {
+        name: '',
+        description: '',
+        contactName: '',
+        contactPhone: '',
+        platform: '',
+        type: '',
+        requireDoc: [],
+        file: [],
+        price: [],
+        datetime: ''
+      },
+      rules: {
+        // name: [
+        //   {required: true, message: '请输入报告名称', trigger: 'blur'}
+        //   // { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }
+        // ],
+        // abstract: [
+        //   {
+        //     required: true,
+        //     message: '请输入摘要信息',
+        //     trigger: 'change'
+        //   }
+        // ],
+        // type: [
+        //   {required: true, message: '请选择报告类型', trigger: 'change'}
+        // ],
+        // conclusion: [
+        //   {required: true, message: '请输入报告结论', trigger: 'blur'}
+        // ]
+      },
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: '今天',
+            onClick (picker) {
+              picker.$emit('pick', new Date())
+            }
+          },
+          {
+            text: '昨天',
+            onClick (picker) {
+              const date = new Date()
+              date.setTime(date.getTime() - 3600 * 1000 * 24)
+              picker.$emit('pick', date)
+            }
+          },
+          {
+            text: '一周前',
+            onClick (picker) {
+              const date = new Date()
+              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
+              picker.$emit('pick', date)
+            }
+          }
+        ]
+      },
+    }
+  },
+  methods: {
+    //加载数据
+    loadData: function () {
+    },
+    modifyInfo () {
+      this.isModifyMode = true
+    },
+    submitInfo () {
+      this.isModifyMode = false
+      Http.post(Apis.PROJECT.ADD_PROJECT, this.project).then((res) => {
+        console.log(res)
+      })
+    },
+    cancelModify () {
+      this.isModifyMode = false
+    },
+    handleRemove (file, fileList) {
+      console.log(file, fileList)
+    },
+    handleExceed (files, fileList) {
+      this.$message.warning(
+        `当前限制选择 1 个文件,本次选择了 ${
+          files.length
+          } 个文件,共选择了 ${files.length + fileList.length} 个文件`
+      )
+    },
+    beforeRemove (file, fileList) {
+      return this.$confirm(`确定移除 ${file.name}?`)
+    },
+    beforeFileUpload () {
+    },
+  },
+  created: function () {
+  }
+}
+</script>
+
+<style scoped>
+  .el-radio {
+    margin: 10px 20px 10px 0;
+  }
+
+  .el-form-item /deep/ .el-tabs__content {
+    max-height: 120px !important;
+    overflow: auto;
+  }
+
+  .el-row {
+    margin-bottom: 10px;
+  }
+</style>

+ 9 - 6
src/js/api.js

@@ -3,7 +3,8 @@ export default {
     GET_PROJECT: '/api/project/{projectId}/',
     CREATE_PROJECT: '/api/project/',
     UPDATE_PROJECT: '/api/project/{projectId}/',
-    DELETE_PROJECT: '/api/project/{projectId}/'
+    DELETE_PROJECT: '/api/project/{projectId}/',
+    ADD_PROJECT: '',
   },
   TASK: {
     GET_TASK: '/api/project/{projectId}/task/{taskId}/',
@@ -13,13 +14,13 @@ export default {
   },
   REPORT: {
     GET_TASK_REPORT: '/api/project/{projectId}/task/{taskId}/report/{reportId}/',
-    GET_PROJECT_REPORT:'/api/project/{projectId}/report/{reportId}/',
+    GET_PROJECT_REPORT: '/api/project/{projectId}/report/{reportId}/',
     CREATE_TASK_REPORT: '/api/project/{projectId}/task/{taskId}/report/',
-    CREATE_PROJECT_REPORT:'/api/project/{projectId}/report/',
+    CREATE_PROJECT_REPORT: '/api/project/{projectId}/report/',
     UPDATE_TASK_REPORT: '/api/project/{projectId}/task/{taskId}/report/{reportId}/',
-    UPDATE_PROJECT_REPORT:'/api/project/{projectId}/report/{reportId}/',
+    UPDATE_PROJECT_REPORT: '/api/project/{projectId}/report/{reportId}/',
     DELETE_TASK_REPORT: '/api/project/{projectId}/task/{taskId}/report/{reportId}/',
-    DELETE_PROJECT_REPORT:''
+    DELETE_PROJECT_REPORT: ''
   },
   USER: {
     ACCEPT_TASK: '',
@@ -27,7 +28,9 @@ export default {
     SUBMIT_TASK_REQUEST: '',
     SUBMIT_PROJECT_REQUEST: '',
     END_TASK: '',
-    END_PROJECT: ''
+    END_PROJECT: '',
+    AGENCY_AUTHENTICATION: '',
+    ADD_AGENCY: ''
   },
   PAGE: {
     HOME_PAGE: '/api/index/',

+ 19 - 1
src/router/index.js

@@ -13,6 +13,9 @@ import AnalyseDemand from '@/components/project/AnalyseDemand'
 
 import Report from '@/components/report/Report'
 import ReportCreate from '@/components/report/ReportCreate'
+import ProjectAdd from '@/components/cheat/ProjectAdd'
+import AgencyAdd from '@/components/cheat/AgencyAdd'
+import Authentication from '@/components/authen/Authentication'
 
 Vue.use(Router)
 
@@ -72,6 +75,21 @@ export default new Router({
       path: '/report/:reportId',
       name: 'Report',
       component: resolve => require(['@/components/report/Report.vue'], resolve),
-    }
+    },
+    {
+      path: '/addProject',
+      name: 'ProjectAdd',
+      component: resolve => require(['@/components/cheat/projectAdd.vue'], resolve),
+    },
+    {
+      path: '/addAgency',
+      name: 'AgencyAdd',
+      component: resolve => require(['@/components/cheat/AgencyAdd.vue'], resolve),
+    },
+    {
+      path: '/authentication',
+      name: 'Authentication',
+      component: resolve => require(['@/components/authen/Authentication.vue'], resolve),
+    },
   ]
 })