|
@@ -75,13 +75,13 @@
|
|
|
<el-table-column label="状态" class-name="status-col" width="100">
|
|
|
<template slot-scope="{row}">
|
|
|
<el-tag :type="row.methodStatus | statusFilter">
|
|
|
- {{ row.methodStatus }}
|
|
|
+ {{ statusMappings.get(row.methodStatus) }}
|
|
|
</el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="更新时间" width="150px" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <span>{{ scope.row.updateTime }}</span>
|
|
|
+ <span>{{ scope.row.updateTimeStr }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column v-if="showReviewer" label="备注" width="110px" align="center">
|
|
@@ -104,7 +104,7 @@
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<pagination v-show="total>0" :total="total" :page.sync="listQuery.curIndex" :limit.sync="listQuery.pageSize" @pagination="getList" />
|
|
|
- <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="65%" @open="updateEnvChannel(serviceData.envChannel)">
|
|
|
+ <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="65%" @open="dialogOpenInit()">
|
|
|
<el-form ref="serviceDataForm" :rules="serviceDataRules" :model="serviceData" label-position="left" label-width="120px" style="width: 500px; margin-left:80px;">
|
|
|
<el-form-item label="服务名称" prop="customName">
|
|
|
<el-input v-model="serviceData.customName" />
|
|
@@ -132,7 +132,7 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="消费者设置" prop="consumerIds">
|
|
|
<el-select v-model="serviceData.consumerIds" class="filter-item" multiple placeholder="消费者">
|
|
|
- <el-option v-for="item in calendarTypeOptions" :key="item.key" :label="item.display_name" :value="item.key" />
|
|
|
+ <el-option v-for="item in consumerSelections" :key="item.key" :label="item.display_name" :value="item.key" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="方法名" prop="methodName">
|
|
@@ -150,10 +150,10 @@
|
|
|
<el-rate v-model="temp.importance" :colors="['#99A9BF', '#F7BA2A', '#FF9900']" :max="3" style="margin-top:8px;" />
|
|
|
</el-form-item> -->
|
|
|
<el-form-item label="方法参数" prop="methodParamsTypes">
|
|
|
- <el-input v-model="serviceData.methodParamsTypes" :autosize="{ minRows: 2, maxRows: 4}" type="textarea" placeholder="方法参数" />
|
|
|
+ <el-input v-model="serviceData.methodParamsTypes" :autosize="{ minRows: 2, maxRows: 8}" type="textarea" placeholder="方法参数" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="方法返回值" prop="returnDataStructure">
|
|
|
- <el-input v-model="serviceData.returnDataStructure" :autosize="{ minRows: 2, maxRows: 4}" type="textarea" placeholder="方法返回值" />
|
|
|
+ <el-input v-model="serviceData.returnDataStructure" :autosize="{ minRows: 2, maxRows: 8}" type="textarea" placeholder="方法返回值" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
@@ -186,7 +186,7 @@
|
|
|
</style>
|
|
|
|
|
|
<script>
|
|
|
-import { fetchEnvInfo, fetchServiceById, fetchServiceList, createService, updateService } from '@/api/article'
|
|
|
+import { fetchEnvInfo, fetchServiceById, fetchServiceList, fetchConsumerList, createService, updateService } from '@/api/article'
|
|
|
import waves from '@/directive/waves' // waves directive
|
|
|
import { parseTime } from '@/utils'
|
|
|
import Pagination from '@/components/Pagination' // secondary package based on el-pagination
|
|
@@ -204,6 +204,7 @@ const envTypeSelections = [
|
|
|
]
|
|
|
|
|
|
var envSelections = []
|
|
|
+var consumerSelections = []
|
|
|
|
|
|
const protocols = [
|
|
|
{ key: 'dubbo', display_name: 'dubbo' },
|
|
@@ -225,9 +226,9 @@ export default {
|
|
|
filters: {
|
|
|
statusFilter(status) {
|
|
|
const statusMap = {
|
|
|
- published: 'success',
|
|
|
+ 1: 'success',
|
|
|
draft: 'info',
|
|
|
- deleted: 'danger'
|
|
|
+ 0: 'danger'
|
|
|
}
|
|
|
return statusMap[status]
|
|
|
},
|
|
@@ -241,22 +242,24 @@ export default {
|
|
|
list: null,
|
|
|
total: 0,
|
|
|
listLoading: true,
|
|
|
+ statusMappings: new Map([[1, '已开启'], [0, '未开启']]),
|
|
|
listQuery: {
|
|
|
curIndex: 1,
|
|
|
pageSize: 20,
|
|
|
customName: '',
|
|
|
- interfaceName: ''
|
|
|
+ interfaceName: '',
|
|
|
// page: 1,
|
|
|
// limit: 20,
|
|
|
// importance: undefined,
|
|
|
// title: undefined,
|
|
|
// type: undefined,
|
|
|
- // sort: '+id'
|
|
|
+ sort: '+id'
|
|
|
},
|
|
|
importanceOptions: [1, 2, 3],
|
|
|
calendarTypeOptions,
|
|
|
envTypeSelections,
|
|
|
envSelections,
|
|
|
+ consumerSelections,
|
|
|
protocols,
|
|
|
sortOptions: [{ label: 'ID Ascending', key: '+id' }, { label: 'ID Descending', key: '-id' }],
|
|
|
statusOptions: ['published', 'draft', 'deleted'],
|
|
@@ -283,10 +286,11 @@ export default {
|
|
|
methodParamsTypes: '',
|
|
|
returnDataStructure: '',
|
|
|
methodStatus: 1,
|
|
|
- consumerIds: '[]',
|
|
|
+ consumerIds: [],
|
|
|
remark: '',
|
|
|
updator: ''
|
|
|
},
|
|
|
+ // ConsumerIdsStr: this.serviceData.consumerIds.replace('[', '').replace(']', '').split(',').map(Number),
|
|
|
serviceDataExt: {
|
|
|
id: 0,
|
|
|
bizLine: 0,
|
|
@@ -308,9 +312,9 @@ export default {
|
|
|
serviceVersion: [{ required: true, message: '服务版本不能为空', trigger: 'change' }],
|
|
|
protocol: [{ required: true, message: '请选择协议类型', trigger: 'change' }],
|
|
|
consumerIds: [{ required: false, message: '请选择消费者设置', trigger: 'change' }],
|
|
|
- methodName: [{ required: true, message: '方法名称不能为空', trigger: 'change' }],
|
|
|
- methodParamsTypes: [{ required: true, message: '方法参数不能为空', trigger: 'change' }],
|
|
|
- returnDataStructure: [{ required: true, message: '方法返回值不能为空', trigger: 'change' }]
|
|
|
+ methodName: [{ required: true, message: '方法名称不能为空', trigger: 'change' }]
|
|
|
+ // methodParamsTypes: [{ required: true, message: '方法参数不能为空', trigger: 'change' }],
|
|
|
+ // returnDataStructure: [{ required: true, message: '方法返回值不能为空', trigger: 'change' }]
|
|
|
},
|
|
|
downloadLoading: false
|
|
|
}
|
|
@@ -322,8 +326,9 @@ export default {
|
|
|
getList() {
|
|
|
this.listLoading = true
|
|
|
fetchServiceList(this.listQuery).then(response => {
|
|
|
- this.list = response.data
|
|
|
- this.total = response.data.length
|
|
|
+ console.log(this.listQuery)
|
|
|
+ this.list = response.data.mockMethodList
|
|
|
+ this.total = response.data.total
|
|
|
// Just to simulate the time of the request
|
|
|
this.listLoading = false
|
|
|
// setTimeout(() => {
|
|
@@ -344,6 +349,21 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ getConsumers() {
|
|
|
+ this.consumerSelections = []
|
|
|
+ fetchConsumerList().then(response => {
|
|
|
+ for (var sel of response.data) {
|
|
|
+ var consumerSel = {}
|
|
|
+ consumerSel.key = sel.dubboConsumerId
|
|
|
+ consumerSel.display_name = sel.customizeName
|
|
|
+ this.consumerSelections.push(consumerSel)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ dialogOpenInit() {
|
|
|
+ this.updateEnvChannel(this.serviceData.envChannel)
|
|
|
+ this.getConsumers()
|
|
|
+ },
|
|
|
handleFilter() {
|
|
|
// this.listQuery.page = 1
|
|
|
this.getList()
|
|
@@ -380,10 +400,10 @@ export default {
|
|
|
envChannel: 1,
|
|
|
envId: 0,
|
|
|
methodName: '',
|
|
|
- methodParamsTypes: '',
|
|
|
+ methodParamsTypes: '[]',
|
|
|
returnDataStructure: '',
|
|
|
methodStatus: 1,
|
|
|
- consumerIds: '[]',
|
|
|
+ consumerIds: [],
|
|
|
remark: '',
|
|
|
updator: ''
|
|
|
}
|
|
@@ -402,30 +422,43 @@ export default {
|
|
|
// this.serviceData.id = parseInt(Math.random() * 100) + 1024 // mock a id
|
|
|
// this.temp.author = 'vue-element-admin'
|
|
|
delete this.serviceData.id
|
|
|
- createService(this.serviceData).then(() => {
|
|
|
- this.list.unshift(this.serviceData)
|
|
|
- this.dialogFormVisible = false
|
|
|
- this.$notify({
|
|
|
- title: 'Success',
|
|
|
- message: 'Created Successfully',
|
|
|
- type: 'success',
|
|
|
- duration: 2000
|
|
|
- })
|
|
|
+ this.serviceData.consumerIds = '[' + this.serviceData.consumerIds.toString() + ']'
|
|
|
+ createService(this.serviceData).then(response => {
|
|
|
+ // this.list.unshift(this.serviceData)
|
|
|
+ if (response.code === 200) {
|
|
|
+ this.dialogFormVisible = false
|
|
|
+ this.getList()
|
|
|
+ this.$notify({
|
|
|
+ title: 'Success',
|
|
|
+ message: 'Created Successfully',
|
|
|
+ type: 'success',
|
|
|
+ duration: 2000
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.$notify({
|
|
|
+ title: 'Failed',
|
|
|
+ message: 'Created Failed',
|
|
|
+ type: 'danger',
|
|
|
+ duration: 2000
|
|
|
+ })
|
|
|
+ }
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
handleUpdate(row) {
|
|
|
- var query_data = { id: row.id }
|
|
|
- fetchServiceById(query_data).then(response => {
|
|
|
- var row_data = response.data
|
|
|
+ var queryData = { id: row.id }
|
|
|
+ fetchServiceById(queryData).then(response => {
|
|
|
+ console.log(response)
|
|
|
+ var rowData = response.data.mockMethodList
|
|
|
// this.serviceData.timestamp = new Date(this.temp.timestamp)
|
|
|
// console.log(this.serviceData)
|
|
|
// console.log(row_data[0])
|
|
|
- this.serviceData = Object.assign({}, row_data[0])
|
|
|
+ this.serviceData = Object.assign({}, rowData[0])
|
|
|
this.serviceDataExt.id = row.id
|
|
|
this.serviceDataExt.bizLine = row.bizLine
|
|
|
this.serviceDataExt.bizModuleId = row.bizModuleId
|
|
|
+ this.serviceData.consumerIds = this.serviceData.consumerIds.split('[')[1].split(']')[0].split(',')
|
|
|
// console.log(this.serviceData)
|
|
|
// this.serviceData.timestamp = new Date(this.temp.timestamp)
|
|
|
this.dialogStatus = 'update'
|
|
@@ -466,15 +499,24 @@ export default {
|
|
|
remark: this.serviceData.remark,
|
|
|
updator: ''
|
|
|
}
|
|
|
- updateService(tempData).then(() => {
|
|
|
- this.getList()
|
|
|
- this.dialogFormVisible = false
|
|
|
- this.$notify({
|
|
|
- title: 'Success',
|
|
|
- message: 'Update Successfully',
|
|
|
- type: 'success',
|
|
|
- duration: 2000
|
|
|
- })
|
|
|
+ updateService(tempData).then(response => {
|
|
|
+ if (response.code === 200) {
|
|
|
+ this.dialogFormVisible = false
|
|
|
+ this.getList()
|
|
|
+ this.$notify({
|
|
|
+ title: 'Success',
|
|
|
+ message: 'Update Successfully',
|
|
|
+ type: 'success',
|
|
|
+ duration: 2000
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.$notify({
|
|
|
+ title: 'Failed',
|
|
|
+ message: 'Update Failed',
|
|
|
+ type: 'danger',
|
|
|
+ duration: 2000
|
|
|
+ })
|
|
|
+ }
|
|
|
})
|
|
|
}
|
|
|
})
|