|
@@ -12,7 +12,7 @@
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="21">
|
|
|
- <el-form-item label="前置条件" prop="caseCondition">
|
|
|
+ <el-form-item label="前置条件">
|
|
|
<el-input v-model="caseData.caseCondition" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -20,20 +20,20 @@
|
|
|
<el-row>
|
|
|
<el-col :span="21">
|
|
|
<div style="white-space:nowrap; display:flex;">
|
|
|
- <el-form-item label="所属项目" prop="projectName" style="flex:1"><el-input v-model="caseData.projectName" clearable placeholder="请输入" /></el-form-item>
|
|
|
- <el-form-item label="所属需求" prop="taskName" style="flex:1; margin-left: 2%;"><el-input v-model="caseData.taskName" clearable placeholder="请输入" /></el-form-item>
|
|
|
+ <el-form-item label="所属项目" style="flex:1"><el-input v-model="caseData.projectName" clearable placeholder="请输入" /></el-form-item>
|
|
|
+ <el-form-item label="所属需求" style="flex:1; margin-left: 2%;"><el-input v-model="caseData.taskName" clearable placeholder="请输入" /></el-form-item>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="21">
|
|
|
<div style="white-space:nowrap; display:flex;">
|
|
|
- <el-form-item label="用例优先级" prop="casePriority" style="flex:1">
|
|
|
+ <el-form-item label="用例优先级" style="flex:1">
|
|
|
<el-select v-model="caseData.casePriority" clearable placeholder="请选择" style="width: 100%">
|
|
|
<el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="API" prop="api" style="flex:1; margin-left: 2%;"><el-input v-model="caseData.api" clearable placeholder="请输入" /></el-form-item>
|
|
|
+ <el-form-item label="API" style="flex:1; margin-left: 2%;"><el-input v-model="caseData.api" clearable placeholder="请输入" /></el-form-item>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -51,6 +51,21 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
+ <div v-show="btn_show" align="center" class="cla">
|
|
|
+ <el-table v-show="btn_show" :data="uptataKey" fit style="width: 90%;">
|
|
|
+ <el-table-column label="" min-width="150">
|
|
|
+ <template slot-scope="scope">{{ scope.row.name }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="" min-width="300">
|
|
|
+ <template slot-scope="scope"><a :href="scope.row.url" style="color:blue;">{{ scope.row.url }}</a></template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column fixed="right" label="" width="50" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button class="deleteSty" @click="deleteURL(scope.row)"> x </el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
</el-header>
|
|
|
<el-main style="background:#ffffff;height:auto; width:94%;margin: 0 3% 3% 3%; font-size:14px;border-radius:8px;">
|
|
|
<!-- 新增 -->
|
|
@@ -70,7 +85,7 @@
|
|
|
</el-form>
|
|
|
<el-row>
|
|
|
<el-col :span="22" style="text-align:right; ">
|
|
|
- <el-button :disabled="dis" type="primary" @click="caseCreateCase(caseData)">保 存</el-button>
|
|
|
+ <el-button :disabled="dis" type="primary" @click=" title_Name === '新增' ? caseCreateCase(caseData) : caseQueryCase(caseData)">保 存</el-button>
|
|
|
<el-button style="margin:9% 0 0 4%;" @click="$router.go(-1)">取 消</el-button>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -81,7 +96,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { createCaseData } from '@/api/caseProject.js'
|
|
|
+import { createCaseData, queryCasesData, updateCaseData } from '@/api/caseProject.js'
|
|
|
|
|
|
export default {
|
|
|
data() {
|
|
@@ -92,16 +107,13 @@ export default {
|
|
|
startId: '',
|
|
|
caseData: {},
|
|
|
dis: false,
|
|
|
+ btn_show: false,
|
|
|
id: '',
|
|
|
- arry: [],
|
|
|
arr: [],
|
|
|
+ uptataKey: [],
|
|
|
+ title_Name: '',
|
|
|
createFormData: {
|
|
|
- title: [{ required: true, message: '用例名称不能为空', trigger: 'change' }],
|
|
|
- caseCondition: [{ required: true, message: '前置条件不能为空', trigger: 'change' }],
|
|
|
- projectName: [{ required: true, message: '所属项目不能为空', trigger: 'change' }],
|
|
|
- taskName: [{ required: true, message: '所属需求不能为空', trigger: 'change' }],
|
|
|
- api: [{ required: true, message: 'API不能为空', trigger: 'change' }],
|
|
|
- casePriority: [{ required: true, message: '用例优先级不能为空', trigger: 'change' }]
|
|
|
+ title: [{ required: true, message: '用例名称不能为空', trigger: 'change' }]
|
|
|
},
|
|
|
priorityStrings: [{ name: 'p0', value: 0 }, { name: 'p1', value: 1 }, { name: 'p2', value: 2 }, { name: 'p3', value: 3 }]
|
|
|
}
|
|
@@ -113,20 +125,42 @@ export default {
|
|
|
// 初始化
|
|
|
initCode() {
|
|
|
if (this.$route.query.data) {
|
|
|
+ this.title_Name = '新增'
|
|
|
+ this.$set(this.caseData, 'casePriority', 3)
|
|
|
this.startId = this.$route.query.data
|
|
|
if (this.$refs['caseData'] !== undefined) {
|
|
|
this.$refs['caseData'].resetFields()
|
|
|
}
|
|
|
}
|
|
|
+ if (this.$route.query.id) {
|
|
|
+ this.title_Name = '编辑'
|
|
|
+ this.url = window.location.href // 获取url中"?"符后的字串
|
|
|
+ this.caseFolderId = this.url.split('&caseFolderId=')
|
|
|
+ console.log(this.caseFolderId)
|
|
|
+ this.id = this.caseFolderId[0].split('?id=')
|
|
|
+ console.log(this.id)
|
|
|
+ queryCasesData({ caseFolderId: this.caseFolderId[1] }).then(res => {
|
|
|
+ for (var el of res.data.list) {
|
|
|
+ if (el.id === Number(this.id[1])) {
|
|
|
+ this.caseData = el
|
|
|
+ if (this.caseData.accessory !== '') {
|
|
|
+ this.btn_show = true
|
|
|
+ console.log(typeof (this.caseData.accessory))
|
|
|
+ var obj = JSON.parse(this.caseData.accessory.split('{}'))
|
|
|
+ for (var a of obj) {
|
|
|
+ this.uptataKey.push(a)
|
|
|
+ }
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
|
|
|
// 图片上传成功的回调
|
|
|
handleAvatarSuccess(response, file, fileList) {
|
|
|
- var obj_data = {}
|
|
|
this.arr.push({ name: file.name, url: 'http:' + file.response.url })
|
|
|
- obj_data.accessory = JSON.stringify(this.arr)
|
|
|
- this.arry.push(obj_data)
|
|
|
- console.log(this.arry)
|
|
|
this.dis = false
|
|
|
},
|
|
|
|
|
@@ -145,23 +179,52 @@ export default {
|
|
|
this.data.splice(e, 1)
|
|
|
},
|
|
|
|
|
|
+ // 图片上传成功的回调(编辑)
|
|
|
+ constractSuccUpload(response, file, fileList) {
|
|
|
+ this.dis = false
|
|
|
+ const fileUrl = { name: file.name, url: 'http:' + file.response.url }
|
|
|
+ this.uptataKey.push(fileUrl)
|
|
|
+ },
|
|
|
+
|
|
|
+ // 删除附件(编辑)
|
|
|
+ deleteURL(vel) {
|
|
|
+ for (var i = 0; i < this.uptataKey.length; i++) {
|
|
|
+ if (this.uptataKey[i].name === vel.name) {
|
|
|
+ this.uptataKey.splice(i, 1)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // 编辑_数据
|
|
|
+ caseQueryCase(vel) {
|
|
|
+ console.log('编辑' + JSON.stringify(vel))
|
|
|
+ this.caseData = vel
|
|
|
+ this.caseData.accessory = JSON.stringify(this.uptataKey)
|
|
|
+ updateCaseData(this.caseData).then(res => {
|
|
|
+ this.$message({ type: 'success', message: res.msg, duration: 1000 })
|
|
|
+ this.$router.go('-1')
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
// 新建Data
|
|
|
caseCreateCase(vel) {
|
|
|
+ console.log('新增' + JSON.stringify(vel))
|
|
|
this.$refs['caseData'].validate((valid) => {
|
|
|
if (valid) {
|
|
|
this.caseData = vel
|
|
|
- this.accessory =
|
|
|
- this.caseData.caseInfos = this.data
|
|
|
+ this.caseData.accessory = JSON.stringify(this.arr)
|
|
|
+ this.caseData.description = JSON.stringify(this.data)
|
|
|
this.caseData.creator = this.userNames
|
|
|
this.caseData.modifier = this.userNames
|
|
|
this.caseData.caseFolderId = this.startId
|
|
|
this.caseData.bizId = this.bizJson
|
|
|
+ console.log(this.caseData)
|
|
|
createCaseData(this.caseData).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
this.$message({ type: 'success', message: res.msg, duration: 1000 })
|
|
|
this.$router.go('-1')
|
|
|
} else {
|
|
|
- this.$notify({ title: '提示', message: res.msg, duration: 1000 })
|
|
|
+ this.$message({ type: 'error', message: res.msg, duration: 1000 })
|
|
|
}
|
|
|
})
|
|
|
}
|
|
@@ -173,20 +236,28 @@ export default {
|
|
|
|
|
|
<style>
|
|
|
.bgColorSz {
|
|
|
- width: 100%;
|
|
|
- height: 96vh;
|
|
|
- background: #F2F3F6;
|
|
|
- font-size: 0.9rem;
|
|
|
- display: flex;
|
|
|
- justify-content: center;
|
|
|
- align-items: center;
|
|
|
- }
|
|
|
- .upload .avatar-uploader-icon {
|
|
|
- font-size: 14px;
|
|
|
- color: #8c939d;
|
|
|
- line-height: 178px;
|
|
|
- text-align: center;
|
|
|
+ width: 100%;
|
|
|
+ height: 96vh;
|
|
|
+ background: #F2F3F6;
|
|
|
+ font-size: 0.9rem;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
}
|
|
|
+
|
|
|
+.cla .el-table td {
|
|
|
+ padding:0px;
|
|
|
+}
|
|
|
+.deleteSty {
|
|
|
+ cursor: pointer;
|
|
|
+ border: none;
|
|
|
+}
|
|
|
+.upload .avatar-uploader-icon {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #8c939d;
|
|
|
+ line-height: 178px;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
/* .upload .el-upload-dragger {
|
|
|
width: 43em;
|
|
|
} */
|