|
@@ -52,7 +52,7 @@
|
|
v-for="item in project.platform"
|
|
v-for="item in project.platform"
|
|
>{{platformType[item]}}</span>
|
|
>{{platformType[item]}}</span>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="需求描述" prop="desc">
|
|
|
|
|
|
+ <el-form-item label="需求描述">
|
|
<el-input v-if="isModifyMode" type="textarea" v-model="project.desc"></el-input>
|
|
<el-input v-if="isModifyMode" type="textarea" v-model="project.desc"></el-input>
|
|
<span v-if="!isModifyMode">{{project.desc}}</span>
|
|
<span v-if="!isModifyMode">{{project.desc}}</span>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -65,13 +65,13 @@
|
|
|
|
|
|
<el-form-item label="服务类型" prop="type">
|
|
<el-form-item label="服务类型" prop="type">
|
|
<el-checkbox-group v-if="isModifyMode" v-model="project.type">
|
|
<el-checkbox-group v-if="isModifyMode" 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="type">{{serviceType[0]}}</el-checkbox>
|
|
|
|
+ <el-checkbox label="1" name="type">{{serviceType[1]}}</el-checkbox>
|
|
|
|
+ <el-checkbox label="2" name="type">{{serviceType[2]}}</el-checkbox>
|
|
|
|
+ <el-checkbox label="3" name="type">{{serviceType[3]}}</el-checkbox>
|
|
|
|
+ <el-checkbox label="4" name="type">{{serviceType[4]}}</el-checkbox>
|
|
|
|
+ <el-checkbox label="5" name="type">{{serviceType[5]}}</el-checkbox>
|
|
|
|
+ <el-checkbox label="6" name="type">{{serviceType[6]}}</el-checkbox>
|
|
</el-checkbox-group>
|
|
</el-checkbox-group>
|
|
<span v-if="!isModifyMode" class="badge" v-for="item in project.type">{{serviceType[item]}}</span>
|
|
<span v-if="!isModifyMode" class="badge" v-for="item in project.type">{{serviceType[item]}}</span>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -104,7 +104,7 @@
|
|
<el-radio
|
|
<el-radio
|
|
:label="item"
|
|
:label="item"
|
|
name="type"
|
|
name="type"
|
|
- v-for="item,index in institutionArray"
|
|
|
|
|
|
+ v-for="(item,index) in institutionArray"
|
|
:key="index"
|
|
:key="index"
|
|
></el-radio>
|
|
></el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
@@ -235,8 +235,9 @@
|
|
<div class="create-body" v-if="!isModifyMode">
|
|
<div class="create-body" v-if="!isModifyMode">
|
|
<div class="title h2">任务列表</div>
|
|
<div class="title h2">任务列表</div>
|
|
<div class="task-list">
|
|
<div class="task-list">
|
|
- <el-table :showHeader="false" :data="task" style="width: 100%;min-height: 200px" max-height="800px">
|
|
|
|
- <el-table-column prop="name" label="任务名称" title="任务名称"></el-table-column>
|
|
|
|
|
|
+ <el-table :showHeader="true" :stripe="true" :data="task" style="width: 100%;min-height: 200px"
|
|
|
|
+ max-height="800px">
|
|
|
|
+ <el-table-column prop="title" label="任务名称" title="任务名称"></el-table-column>
|
|
<el-table-column prop="datetime" sortable label="任务截止时间"></el-table-column>
|
|
<el-table-column prop="datetime" sortable label="任务截止时间"></el-table-column>
|
|
<el-table-column prop="resource" label="任务可见性">
|
|
<el-table-column prop="resource" label="任务可见性">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
@@ -247,7 +248,7 @@
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column prop="type" label="业务类型">
|
|
<el-table-column prop="type" label="业务类型">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <div class="badge">{{serviceType[scope.row.type]}}</div>
|
|
|
|
|
|
+ <div class="badge">{{serviceType[scope.row.serviceType]}}</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
|
@@ -271,7 +272,7 @@
|
|
|
|
|
|
<div class="create-body" v-if="!isModifyMode">
|
|
<div class="create-body" v-if="!isModifyMode">
|
|
<div class="title h2">报告列表</div>
|
|
<div class="title h2">报告列表</div>
|
|
- <report-list v-bind:reports="project.reportList"/>
|
|
|
|
|
|
+ <report-list v-bind:reports="project.reportList" v-bind:taskId=null v-bind:projectId="projectId"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
@@ -296,8 +297,8 @@ export default {
|
|
data () {
|
|
data () {
|
|
var validatePass = (rule, value, callback) => {
|
|
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}$/
|
|
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.project.contactPhone) {
|
|
|
|
+ if (!reg.test(this.project.contactPhone)) {
|
|
callback(new Error('请检查手机号码'))
|
|
callback(new Error('请检查手机号码'))
|
|
} else {
|
|
} else {
|
|
callback()
|
|
callback()
|
|
@@ -418,27 +419,47 @@ export default {
|
|
return provinceName + ' / ' + cityName
|
|
return provinceName + ' / ' + cityName
|
|
},
|
|
},
|
|
init () {
|
|
init () {
|
|
- this.projectId = +this.$route.params.projectId
|
|
|
|
|
|
+ this.projectId = this.$route.params.projectId
|
|
this.loadData()
|
|
this.loadData()
|
|
this.project.platform.map(item => {
|
|
this.project.platform.map(item => {
|
|
this.platformType.push(PlatformType[item])
|
|
this.platformType.push(PlatformType[item])
|
|
})
|
|
})
|
|
},
|
|
},
|
|
submitForm (formName) {
|
|
submitForm (formName) {
|
|
- this.$refs[formName].validate(valid => {
|
|
|
|
- if (valid) {
|
|
|
|
- this.isModifyMode = false
|
|
|
|
- console.log(this.project)//pro1564487183259
|
|
|
|
- Http.put(Apis.PROJECT.UPDATE_PROJECT.replace('{projectId}', this.projectId), this.project).then((res) => {
|
|
|
|
- console.log(res)
|
|
|
|
- console.log(this.project)
|
|
|
|
- })
|
|
|
|
- //提交 project
|
|
|
|
- } else {
|
|
|
|
- console.log('error submit!!')
|
|
|
|
- return false
|
|
|
|
- }
|
|
|
|
|
|
+ this.isModifyMode = false
|
|
|
|
+ //PROJ--2019073114009
|
|
|
|
+ const newProject = {
|
|
|
|
+ userId: 3,
|
|
|
|
+ name: this.project.name,
|
|
|
|
+ type: this.project.type,
|
|
|
|
+ platform: this.project.platform,
|
|
|
|
+ desc: this.project.desc,
|
|
|
|
+ resource: this.project.resource,
|
|
|
|
+ location: this.project.location,
|
|
|
|
+ institution: this.project.institution,
|
|
|
|
+ contactName: this.project.contactName,
|
|
|
|
+ contactPhone: this.project.contactPhone,
|
|
|
|
+ doc: 'asd',
|
|
|
|
+ file: 'asd',
|
|
|
|
+ budget: this.project.budget,
|
|
|
|
+ price: this.project.price,
|
|
|
|
+ datetime: this.project.datetime,
|
|
|
|
+ usage: this.project.usage,
|
|
|
|
+ }
|
|
|
|
+ console.log(newProject)
|
|
|
|
+ Http.put(Apis.PROJECT.UPDATE_PROJECT.replace('{projectId}', 'PROJ--2019073114009'), newProject).then((res) => {
|
|
|
|
+ console.log(res)
|
|
|
|
+ console.log(this.project)
|
|
})
|
|
})
|
|
|
|
+ // this.$refs[formName].validate(valid => {
|
|
|
|
+ // if (valid) {
|
|
|
|
+ //
|
|
|
|
+ // //提交 project
|
|
|
|
+ // } else {
|
|
|
|
+ // console.log('error submit!!')
|
|
|
|
+ // return false
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
},
|
|
},
|
|
resetForm (formName) {
|
|
resetForm (formName) {
|
|
this.$refs[formName].resetFields()
|
|
this.$refs[formName].resetFields()
|
|
@@ -448,10 +469,8 @@ export default {
|
|
this.project.desc = ''
|
|
this.project.desc = ''
|
|
this.project.doc = ''
|
|
this.project.doc = ''
|
|
this.project.file = ''
|
|
this.project.file = ''
|
|
- this.project.contact = {
|
|
|
|
- name: '',
|
|
|
|
- phone: ''
|
|
|
|
- }
|
|
|
|
|
|
+ this.project.contactName = ''
|
|
|
|
+ this.project.contactPhone = ''
|
|
this.project.resource = '2'
|
|
this.project.resource = '2'
|
|
this.project.institution = ''
|
|
this.project.institution = ''
|
|
this.project.datetime = ''
|
|
this.project.datetime = ''
|
|
@@ -462,24 +481,32 @@ export default {
|
|
modifyForm () {
|
|
modifyForm () {
|
|
this.isModifyMode = true
|
|
this.isModifyMode = true
|
|
//获得update 信息
|
|
//获得update 信息
|
|
- this.loadData()
|
|
|
|
|
|
+ //this.loadData()
|
|
},
|
|
},
|
|
cancelMode (formName) {
|
|
cancelMode (formName) {
|
|
this.isModifyMode = false
|
|
this.isModifyMode = false
|
|
this.loadData()
|
|
this.loadData()
|
|
|
|
|
|
},
|
|
},
|
|
- goToTaskDetail (id) {
|
|
|
|
|
|
+ goToTaskDetail (projectId, taskId) {
|
|
this.$router.push({
|
|
this.$router.push({
|
|
name: 'Task',
|
|
name: 'Task',
|
|
- params: {projectId: this.projectId, taskId: id}
|
|
|
|
|
|
+ params: {projectId: projectId, taskId: taskId}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
createTask () {
|
|
createTask () {
|
|
this.$router.push({name: 'TaskCreate'})
|
|
this.$router.push({name: 'TaskCreate'})
|
|
},
|
|
},
|
|
createReport () {
|
|
createReport () {
|
|
- this.$router.push({name: 'ReportCreate'})
|
|
|
|
|
|
+ this.$router.push({
|
|
|
|
+ name: 'ReportCreate',
|
|
|
|
+ params: {
|
|
|
|
+ scope: 0,
|
|
|
|
+ dependencyCode: this.projectId,
|
|
|
|
+ projectId: this.projectId,
|
|
|
|
+ taskId: null,
|
|
|
|
+ }
|
|
|
|
+ })
|
|
},
|
|
},
|
|
handleDelete (index, id) {
|
|
handleDelete (index, id) {
|
|
this.task.splice(index, 1)
|
|
this.task.splice(index, 1)
|
|
@@ -502,7 +529,7 @@ export default {
|
|
handleReject (index, id) {
|
|
handleReject (index, id) {
|
|
console.log('拒绝')
|
|
console.log('拒绝')
|
|
},
|
|
},
|
|
- loadData () {//pro1564487183259
|
|
|
|
|
|
+ loadData () {//PROJ--2019073114009
|
|
Http.get(Apis.PROJECT.GET_PROJECT.replace('{projectId}', this.projectId)).then((res) => {
|
|
Http.get(Apis.PROJECT.GET_PROJECT.replace('{projectId}', this.projectId)).then((res) => {
|
|
console.log(res)
|
|
console.log(res)
|
|
this.project = res.projectDetails
|
|
this.project = res.projectDetails
|