|
@@ -1,11 +1,8 @@
|
|
|
-/* eslint-disable vue/no-parsing-error */
|
|
|
-/* eslint-disable vue/no-parsing-error */
|
|
|
-/* eslint-disable no-unused-vars */
|
|
|
<template style="height=0px;improtanent">
|
|
|
<div class="app-container">
|
|
|
<el-header style="height: auto;!improtant">
|
|
|
<div class="filter-container" style="padding-bottom: 20px;!improtant">
|
|
|
- <el-input v-model="listQuery.id" placeholder="接口id" style="width: 80px;" class="filter-item" @keyup.enter.native="handleFilter" />
|
|
|
+ <el-input v-model="listQuery.id" placeholder="接口ID" style="width: 80px;" class="filter-item" @keyup.enter.native="handleFilter" />
|
|
|
<el-input v-model="listQuery.customName" placeholder="接口名称" style="width: 150px;" class="filter-item" @keyup.enter.native="handleFilter" />
|
|
|
<el-input v-model="listQuery.url" placeholder="url" style="width: 200px;" class="filter-item" @keyup.enter.native="handleFilter" />
|
|
|
|
|
@@ -13,7 +10,7 @@
|
|
|
<el-option v-for="item in envMethod" :key="item.str" :label="item.str" :value="item.str" />
|
|
|
</el-select>
|
|
|
|
|
|
- <el-select v-model="listQuery.returnDataTypeStr" placeholder="data类型" style="width: 100px;" class="filter-item" filterable clearable @change="getDataType(listQuery.returnDataType)">
|
|
|
+ <el-select v-model="listQuery.returnDataTypeStr" placeholder="返回值data类型" style="width: 200px;" class="filter-item" filterable clearable @change="getDataType(listQuery.returnDataType)">
|
|
|
<el-option v-for="item in envSelectDataType" :key="item.code" :label="item.msg" :value="item.code" />
|
|
|
</el-select>
|
|
|
|
|
@@ -21,7 +18,7 @@
|
|
|
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
|
|
|
- <el-input v-model="listQuery.actualUrl" placeholder="真实服务URL" style="width: 200px;" class="filter-item" @keyup.enter.native="handleFilter" />
|
|
|
+ <el-input v-model="listQuery.actualUrl" placeholder="真实服务URL" style="width: 100px;" class="filter-item" @keyup.enter.native="handleFilter" />
|
|
|
<el-input v-model="listQuery.creator" placeholder="创建人" style="width: 100px;" class="filter-item" @keyup.enter.native="handleFilter" />
|
|
|
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">
|
|
|
搜索
|
|
@@ -45,29 +42,34 @@
|
|
|
:header-cell-style="styleObj"
|
|
|
@sort-change="sortChange"
|
|
|
>
|
|
|
- <el-table-column label="接口id" prop="id" sortable align="center" min-width="50">
|
|
|
+ <el-table-column label="接口ID" prop="id" sortable align="center" min-width="50">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{ scope.row.id }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="接口名称" min-width="150px" align="center">
|
|
|
+ <el-table-column label="名称" min-width="150px" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{ scope.row.customName }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="url" min-width="220px" align="center">
|
|
|
+ <el-table-column label="url" min-width="180px" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{ scope.row.url }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column label="mockURL" min-width="180px" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.mockUrl }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="method" min-min-width="60px">
|
|
|
<template slot-scope="{row}">
|
|
|
<span>{{ row.method }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="data类型" min-width="110px" align="center">
|
|
|
+ <el-table-column label="返回值data类型" min-width="110px" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <span>{{ scope.row.returnDataType }}</span>
|
|
|
+ <span>{{ scope.row.returnDataTypeStr }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="状态" class-name="status-col" min-width="100">
|
|
@@ -92,6 +94,11 @@
|
|
|
<span>{{ scope.row.updateTimeStr }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column v-if="showReviewer" label="备注" min-width="110px" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span style="color:red;">{{ scope.row.remark }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="操作" align="center" min-width="370px" class-name="small-padding fixed-width" fixed="right">
|
|
|
<template slot-scope="{row}">
|
|
|
<el-button type="primary" size="mini" @click="handleCheck(row)">
|
|
@@ -109,7 +116,7 @@
|
|
|
<el-button v-if="row.status!=0" size="mini" type="danger" @click="handleModifyStatus(row, 0)">
|
|
|
关闭
|
|
|
</el-button>
|
|
|
- <el-button type="primary" size="mini" @click="redirectTo(row.id, row.customName)">
|
|
|
+ <el-button type="primary" size="mini" @click="redirectTo(row.id, row.customName, methodProtocol)">
|
|
|
规则 >>
|
|
|
</el-button>
|
|
|
</template>
|
|
@@ -125,9 +132,11 @@
|
|
|
<el-input v-model="serviceData.url" :disabled="shouldShow" placeholder="url" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="method" prop="method">
|
|
|
- <el-input v-model="serviceData.method" :disabled="shouldShow" placeholder="method" />
|
|
|
+ <el-select v-model="serviceData.method" :disabled="shouldShow" class="filter-item" filterable clearable placeholder="method">
|
|
|
+ <el-option v-for="item in envMethod" :key="item.str" :label="item.str" :value="item.str" />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="data类型" prop="returnDataType">
|
|
|
+ <el-form-item label="返回值data类型" prop="returnDataType">
|
|
|
<el-select v-model="serviceData.returnDataType" :disabled="shouldShow" class="filter-item" filterable clearable placeholder="data类型">
|
|
|
<el-option v-for="item in envSelectDataType" :key="item.code" :label="item.msg" :value="item.code" />
|
|
|
</el-select>
|
|
@@ -135,9 +144,9 @@
|
|
|
<el-form-item label="真实服务url" prop="actualUrl">
|
|
|
<el-input v-model="serviceData.actualUrl" :disabled="shouldShow" placeholder="真实服务url" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="创建人" prop="creator">
|
|
|
+ <!-- <el-form-item label="创建人" prop="creator">
|
|
|
<el-input v-model="serviceData.creator" :disabled="shouldShow" placeholder="创建人" />
|
|
|
- </el-form-item>
|
|
|
+ </el-form-item> -->
|
|
|
</el-form>
|
|
|
<span class="showBtn" @mouseover="explain" @mouseout="explain">配置指南</span>
|
|
|
<div v-if="showexplain" class="showInfo">
|
|
@@ -211,7 +220,7 @@ export default {
|
|
|
listLoading: true,
|
|
|
statusMaps: new Map([[1, '已开启'], [0, '未开启']]),
|
|
|
statusOperateMap: new Map([[1, '开启'], [0, '关闭']]),
|
|
|
- options: [{ value: '0', label: '未开启' }, { value: '1', label: '已开启' }, { value: '', label: '全部显示' }],
|
|
|
+ options: [{ value: '', label: '全部显示' }, { value: '1', label: '已开启' }, { value: '0', label: '未开启' }],
|
|
|
listQuery: {
|
|
|
customName: '',
|
|
|
method: '',
|
|
@@ -220,6 +229,7 @@ export default {
|
|
|
status: null,
|
|
|
actualUrl: '',
|
|
|
creator: '',
|
|
|
+ mockUrl: '',
|
|
|
returnDataTypeStr: '',
|
|
|
curIndex: 1,
|
|
|
pageSize: 20,
|
|
@@ -229,6 +239,7 @@ export default {
|
|
|
importanceOptions: [1, 2, 3],
|
|
|
envSelectDataType: '',
|
|
|
envSelections,
|
|
|
+ methodProtocol: 'http',
|
|
|
consumerSelections,
|
|
|
sortOptions: [{ label: 'ID Ascending', key: '+id' }, { label: 'ID Descending', key: '-id' }],
|
|
|
statusOptions: ['published', 'draft', 'deleted'],
|
|
@@ -239,6 +250,7 @@ export default {
|
|
|
importance: 1,
|
|
|
actualUrl: '',
|
|
|
creator: '',
|
|
|
+ mockUrl: '',
|
|
|
timestamp: new Date(),
|
|
|
title: '',
|
|
|
type: '',
|
|
@@ -249,6 +261,7 @@ export default {
|
|
|
url: '',
|
|
|
method: '',
|
|
|
returnDataTypeStr: '',
|
|
|
+ mockUrl: '',
|
|
|
returnDataType: '',
|
|
|
envChannel: 1,
|
|
|
id: '',
|
|
@@ -263,7 +276,7 @@ export default {
|
|
|
dialogStatus: '',
|
|
|
textMap: {
|
|
|
update: '编辑',
|
|
|
- create: '新增服务'
|
|
|
+ create: '新增接口'
|
|
|
},
|
|
|
dialogPvVisible: false,
|
|
|
pvData: [],
|
|
@@ -285,7 +298,6 @@ export default {
|
|
|
getList() {
|
|
|
this.listLoading = true
|
|
|
fetchServiceList(this.listQuery).then(response => {
|
|
|
- // console.log(this.listQuery)
|
|
|
this.list = response.data.mockMethodList
|
|
|
this.total = response.data.total
|
|
|
this.listLoading = false
|
|
@@ -381,6 +393,7 @@ export default {
|
|
|
url: '',
|
|
|
method: '',
|
|
|
returnDataTypeStr: '',
|
|
|
+ mockUrl: '',
|
|
|
returnDataType: '',
|
|
|
envChannel: 1,
|
|
|
id: '',
|
|
@@ -412,8 +425,8 @@ export default {
|
|
|
this.serviceData.actualUrl
|
|
|
this.serviceData.creator
|
|
|
this.serviceData.returnDataTypeStr
|
|
|
+ this.serviceData.mockUrl
|
|
|
createService(this.serviceData).then(response => {
|
|
|
- console.log('sdcscdfs', this.serviceData)
|
|
|
if (response.code === 200) {
|
|
|
this.dialogFormVisible = false
|
|
|
this.getList()
|
|
@@ -442,32 +455,35 @@ export default {
|
|
|
url: row.url,
|
|
|
customName: row.customName,
|
|
|
returnDataType: row.returnDataType,
|
|
|
- // status: row.status,
|
|
|
actualUrl: row.actualUrl,
|
|
|
creator: row.creator,
|
|
|
method: row.method,
|
|
|
- returnDataTypeStr: row.returnDataTypeStr
|
|
|
+ returnDataTypeStr: row.returnDataTypeStr,
|
|
|
+ mockUrl: row.mockUrl
|
|
|
}
|
|
|
+ var rowList = row
|
|
|
this.shouldShow = false
|
|
|
updateService(queryData).then(response => {
|
|
|
- console.log(queryData)
|
|
|
- var rowData = response.data.mockMethodList
|
|
|
- this.serviceData = Object.assign({}, rowData[0])
|
|
|
- this.serviceData.id = row.id
|
|
|
- this.serviceData.url = row.url
|
|
|
- this.serviceData.customName = row.customName
|
|
|
- this.serviceData.returnDataType = row.returnDataType
|
|
|
- this.serviceData.status = row.status
|
|
|
- this.serviceData.actualUrl = row.actualUrl
|
|
|
- this.serviceData.creator = row.creator
|
|
|
- this.serviceData.method = row.method
|
|
|
- this.serviceData.returnDataTypeStr = row.returnDataTypeStr
|
|
|
- this.dialogStatus = 'update'
|
|
|
- this.dialogFormVisible = true
|
|
|
- this.showSubmitBtn = false
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$refs['serviceDataForms'].clearValidate()
|
|
|
- })
|
|
|
+ // var rowData = response.data.mockMethodList
|
|
|
+ // this.serviceData = Object.assign({}, rowData)
|
|
|
+ if (response.data) {
|
|
|
+ this.serviceData.id = rowList.id
|
|
|
+ this.serviceData.url = rowList.url
|
|
|
+ this.serviceData.customName = rowList.customName
|
|
|
+ this.serviceData.returnDataType = rowList.returnDataType
|
|
|
+ this.serviceData.status = rowList.status
|
|
|
+ this.serviceData.actualUrl = rowList.actualUrl
|
|
|
+ this.serviceData.creator = rowList.creator
|
|
|
+ this.serviceData.method = rowList.method
|
|
|
+ this.serviceData.returnDataTypeStr = rowList.returnDataTypeStr
|
|
|
+ this.serviceData.mockUrl = rowList.mockUrl
|
|
|
+ this.dialogStatus = 'update'
|
|
|
+ this.dialogFormVisible = true
|
|
|
+ this.showSubmitBtn = true
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs['serviceDataForms'].clearValidate()
|
|
|
+ })
|
|
|
+ }
|
|
|
})
|
|
|
},
|
|
|
// 查看
|
|
@@ -486,6 +502,7 @@ export default {
|
|
|
this.serviceData.creator = row.creator
|
|
|
this.serviceData.method = row.method
|
|
|
this.serviceData.returnDataTypeStr = row.returnDataTypeStr
|
|
|
+ this.serviceData.mockUrl = row.mockUrl
|
|
|
this.dialogStatus = 'update'
|
|
|
this.dialogFormVisible = true
|
|
|
this.showSubmitBtn = false
|
|
@@ -497,10 +514,10 @@ export default {
|
|
|
// 复制
|
|
|
handleCopy(row) {
|
|
|
var queryData = { id: row.id }
|
|
|
- this.shouldShow = true
|
|
|
+ this.shouldShow = false
|
|
|
changeCopy(queryData.id).then(response => {
|
|
|
- var rowData = response.data.mockMethodList
|
|
|
- this.serviceData = Object.assign({}, rowData)
|
|
|
+ // var rowData = response.data.mockMethodList
|
|
|
+ // this.serviceData = Object.assign({}, rowData)
|
|
|
this.serviceData.url = row.url
|
|
|
this.serviceData.customName = row.customName
|
|
|
this.serviceData.returnDataType = row.returnDataType
|
|
@@ -509,6 +526,7 @@ export default {
|
|
|
this.serviceData.creator = row.creator
|
|
|
this.serviceData.method = row.method
|
|
|
this.serviceData.returnDataTypeStr = row.returnDataTypeStr
|
|
|
+ this.serviceData.mockUrl = row.mockUrl
|
|
|
this.dialogStatus = 'create'
|
|
|
this.dialogFormVisible = true
|
|
|
this.showSubmitBtn = true
|
|
@@ -519,10 +537,9 @@ export default {
|
|
|
},
|
|
|
updateData() {
|
|
|
this.$refs['serviceDataForms'].validate((valid) => {
|
|
|
- console.log(this.serviceData)
|
|
|
if (valid) {
|
|
|
const tempData = {
|
|
|
- id: this.serviceDataExt.id,
|
|
|
+ id: this.serviceData.id,
|
|
|
customName: this.serviceData.customName,
|
|
|
url: this.serviceData.url,
|
|
|
envChannel: this.serviceData.envChannel,
|
|
@@ -530,7 +547,8 @@ export default {
|
|
|
actualUrl: this.serviceData.actualUrl,
|
|
|
status: this.serviceData.status,
|
|
|
creator: this.serviceData.creator,
|
|
|
- returnDataTypeStr: this.serviceData.returnDataTypeStr
|
|
|
+ returnDataTypeStr: this.serviceData.returnDataTypeStr,
|
|
|
+ mockUrl: this.serviceData.mockUrl
|
|
|
}
|
|
|
updateService(tempData).then(response => {
|
|
|
if (response.code === 200) {
|
|
@@ -563,12 +581,13 @@ export default {
|
|
|
}
|
|
|
}))
|
|
|
},
|
|
|
- redirectTo(id, customName) {
|
|
|
- console.log(id, customName)
|
|
|
+ redirectTo(id, mehtodName, methodProtocol) {
|
|
|
+ console.log(methodProtocol)
|
|
|
this.$router.push({
|
|
|
path: `/mock/httpmock/${id}`,
|
|
|
query: {
|
|
|
- customName: customName
|
|
|
+ mehtodName: mehtodName,
|
|
|
+ methodProtocol: methodProtocol
|
|
|
}
|
|
|
})
|
|
|
}
|