|
|
@@ -90,6 +90,11 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="name" label="服务名称" width="200">
|
|
|
</el-table-column>
|
|
|
+ <el-table-column prop="status" label="状态" width="170">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-switch @change="changejobStatus(scope.row)" v-model="scope.row.state"/>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="type" label="接口类型" width="200">
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="url" label="接口地址" show-overflow-tooltip/>
|
|
|
@@ -113,7 +118,7 @@
|
|
|
<template #default="scope">
|
|
|
<div style="display: flex;justify-content: space-between;width: 100%;">
|
|
|
<el-button @click="showDe(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">查看</el-button>
|
|
|
- <el-button type="danger" text size="mini" style="margin-left: -5%;" @click="delSer(scope.row)">注销</el-button>
|
|
|
+ <el-button type="danger" text size="mini" style="margin-left: -5%;" @click="delSer(scope.row)">删除</el-button>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
@@ -158,12 +163,12 @@
|
|
|
<el-col :span="10">
|
|
|
<el-form-item label="接口地址:" prop="url">
|
|
|
<el-input v-model="formAdd.url" style="width: 100%;" class="input-with-select">
|
|
|
- <template #prepend>
|
|
|
+ <!-- <template #prepend>
|
|
|
<el-select v-model="formAdd.proxyPath" placeholder="Select" style="width: 115px;">
|
|
|
<el-option v-for="item in gatewayRouters" :key="item.id" :label="item.serviceName"
|
|
|
:value="item.predicates"/>
|
|
|
</el-select>
|
|
|
- </template>
|
|
|
+ </template> -->
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -277,7 +282,7 @@
|
|
|
:header-cell-style="{ textAlign: 'center'}"
|
|
|
:row-style="{ height: heightAll*0.01+'px',fontSize: '16px',textAlign:'center' }"
|
|
|
border>
|
|
|
- <el-table-column prop="itemName" label="参数字段">
|
|
|
+ <el-table-column prop="itemName" label="参数字段(必填)">
|
|
|
<template #default="scope">
|
|
|
<div style="width: 100%;">
|
|
|
<el-input placeholder="请填写参数编码" type="primary" class="noBor" v-model="scope.row.paramCode"
|
|
|
@@ -285,7 +290,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="itemName" label="参数名称">
|
|
|
+ <el-table-column prop="itemName" label="参数名称(必填)">
|
|
|
<template #default="scope">
|
|
|
<div style="width: 100%;">
|
|
|
<el-input placeholder="请填写参数名称" type="primary" class="noBor" v-model="scope.row.paramName"
|
|
|
@@ -293,7 +298,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="itemName" label="参数类型" width="200">
|
|
|
+ <el-table-column prop="itemName" label="参数类型(必填)" width="200">
|
|
|
<template #default="scope">
|
|
|
<div style="width: 100%;">
|
|
|
<el-select
|
|
|
@@ -413,7 +418,7 @@
|
|
|
:header-cell-style="{ textAlign: 'center'}"
|
|
|
:row-style="{ height: heightAll*0.01+'px',fontSize: '16px',textAlign:'center' }"
|
|
|
border>
|
|
|
- <el-table-column prop="itemName" label="参数字段">
|
|
|
+ <el-table-column prop="itemName" label="参数字段(必填)">
|
|
|
<template #default="scope">
|
|
|
<div style="width: 100%;">
|
|
|
<el-input placeholder="请填写参数编码" type="primary" class="noBor" v-model="scope.row.paramCode"
|
|
|
@@ -421,7 +426,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="itemName" label="参数名称">
|
|
|
+ <el-table-column prop="itemName" label="参数名称(必填)">
|
|
|
<template #default="scope">
|
|
|
<div style="width: 100%;">
|
|
|
<el-input placeholder="请填写参数名称" type="primary" class="noBor" v-model="scope.row.paramName"
|
|
|
@@ -429,7 +434,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="itemName" label="参数类型" width="200">
|
|
|
+ <el-table-column prop="itemName" label="参数类型(必填)" width="200">
|
|
|
<template #default="scope">
|
|
|
<div style="width: 100%;">
|
|
|
<el-select
|
|
|
@@ -487,7 +492,7 @@
|
|
|
:key="tableKey">
|
|
|
<div style="overflow: auto;height: 80vh;">
|
|
|
<div style="display: flex;margin-top: 1%;">
|
|
|
- <!-- <el-button type="primary" @click="saveEditService" style="margin-left: 80%;z-index: 1000;" :disabled="isEdit">
|
|
|
+ <!-- <el-button type="primary" @click="edSer" style="margin-left: 80%;z-index: 1000;" :disabled="isEdit">
|
|
|
提交
|
|
|
</el-button>
|
|
|
<el-button type="danger" @click="delSer" style="margin-left: 1%;z-index: 1000;" :disabled="isEdit">删除</el-button> -->
|
|
|
@@ -785,7 +790,7 @@
|
|
|
<template #footer>
|
|
|
<span class="dialog-footer">
|
|
|
<el-button size="mini" @click="dialogVisibleSerDe = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="saveEditService" size="mini">
|
|
|
+ <el-button type="primary" @click="edSer" size="mini">
|
|
|
确定
|
|
|
</el-button>
|
|
|
</span>
|
|
|
@@ -809,7 +814,8 @@ import {
|
|
|
getServiceReturn,
|
|
|
modelTreeSelect,
|
|
|
postReturnlist,
|
|
|
- getServiceInfo
|
|
|
+ getServiceInfo,
|
|
|
+ serState
|
|
|
} from "@/api/service/info";
|
|
|
import 'vue-json-viewer/style.css'
|
|
|
import {cloneDeep} from 'lodash'
|
|
|
@@ -884,12 +890,6 @@ const dataJsonXiang = ref()
|
|
|
const parTree = ref({})
|
|
|
const valueKet = ref(0)
|
|
|
const tableDataCan = ref([
|
|
|
- {
|
|
|
- paramName: '',
|
|
|
- paramCode: '',
|
|
|
- paramType: '',
|
|
|
- paramNote: ''
|
|
|
- }
|
|
|
])
|
|
|
const optionsMdid = ref([])
|
|
|
const optionsRqtype = ref([
|
|
|
@@ -1019,9 +1019,7 @@ const rulesLev = reactive({
|
|
|
itemName: [{required: true, message: '必填', trigger: 'blur'}],
|
|
|
});
|
|
|
const gatewayRouters = ref([])
|
|
|
-getGatewayRouters().then(res => {
|
|
|
- gatewayRouters.value = res.data
|
|
|
-})
|
|
|
+
|
|
|
const formRefLev = ref();
|
|
|
const cascaderOptions = ref([])
|
|
|
const props1 = ref({
|
|
|
@@ -1042,7 +1040,25 @@ const copied = ref(false);
|
|
|
async function delNode() {
|
|
|
removeNodeById(dataTreeReturn.value, parTreeId.value)
|
|
|
}
|
|
|
-
|
|
|
+function getGate(){
|
|
|
+ getGatewayRouters().then(res => {
|
|
|
+ gatewayRouters.value = res.data
|
|
|
+ })
|
|
|
+}
|
|
|
+function changejobStatus(row){
|
|
|
+ var par = {
|
|
|
+ state: row.state===true?'1':'0',
|
|
|
+ srvId: row.srvId
|
|
|
+ }
|
|
|
+ serState(par).then(res=>{
|
|
|
+ if(res.code==200){
|
|
|
+ proxy.$message({
|
|
|
+ message: '状态修改成功',
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
function removeNodeById(tree, targetId) {
|
|
|
// 检查树是否为空
|
|
|
if (!tree || !Array.isArray(tree) || tree.length === 0) {
|
|
|
@@ -1305,7 +1321,10 @@ async function delSer(row) {
|
|
|
proxy.$modal.confirm('是否确认删除?').then(function () {
|
|
|
return delService(row.srvId);
|
|
|
}).then(() => {
|
|
|
- getTreeLeft();
|
|
|
+ var par1 = {
|
|
|
+ data:{id:parMdid.value}
|
|
|
+ }
|
|
|
+ handleNodeClick(null,par1,null)
|
|
|
proxy.$modal.msgSuccess("删除成功");
|
|
|
}).catch(() => {
|
|
|
});
|
|
|
@@ -1338,7 +1357,7 @@ function getParamName(paramCode) {
|
|
|
return nameMap[paramCode] || '';
|
|
|
}
|
|
|
|
|
|
-async function saveEditService() {
|
|
|
+async function edSer() {
|
|
|
var valid
|
|
|
await formRefJi.value.validate((valid1) => {
|
|
|
valid = valid1
|
|
|
@@ -1348,7 +1367,6 @@ async function saveEditService() {
|
|
|
var par = formJi.value
|
|
|
par.example = example.value
|
|
|
par.rpcontent = dataJsonXiang.value
|
|
|
- par.cateCode = par.cateCode[0]
|
|
|
var validTable = true
|
|
|
for (const item of tableDataCan.value) {
|
|
|
if (item.paramCode.length === 0 || item.paramName.length === 0 || item.paramType.length === 0) {
|
|
|
@@ -1361,25 +1379,60 @@ async function saveEditService() {
|
|
|
await editService(par).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
var parCan = tableDataCan.value
|
|
|
- parCan.forEach(item => {
|
|
|
- item.srvId = parId.value
|
|
|
- });
|
|
|
- addServiceParam(parCan).then(res1 => {
|
|
|
- if (res1.code === 200) {
|
|
|
- proxy.$modal.msgSuccess("修改成功");
|
|
|
- getTreeLeft()
|
|
|
+ if(parCan.length>0){
|
|
|
+ var parRule = true
|
|
|
+ parCan.forEach(item => {
|
|
|
+ item.srvId = parId.value
|
|
|
+ if(item.paramCode&&item.paramType&&item.paramName){
|
|
|
+ item.parRule = true
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ item.parRule = false
|
|
|
+ }
|
|
|
+ });
|
|
|
+ parCan.forEach((item, index) => {
|
|
|
+ if(item.parRule===false){
|
|
|
+ parRule = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if(parRule){
|
|
|
+ addServiceParam(parCan).then(res1 => {
|
|
|
+ if (res1.code === 200) {
|
|
|
+ proxy.$modal.msgSuccess("修改成功");
|
|
|
+ dialogVisible.value = false
|
|
|
+ dialogVisibleSerDe.value = false
|
|
|
+ var par1 = {
|
|
|
+ data:{id:parMdid.value}
|
|
|
+ }
|
|
|
+ handleNodeClick(null,par1,null)
|
|
|
+ getTreeLeft()
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
- })
|
|
|
+ else{
|
|
|
+ proxy.$modal.msgError("请填写必填项!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ dialogVisible.value = false
|
|
|
+ dialogVisibleSerDe.value = false
|
|
|
+ var par1 = {
|
|
|
+ data:{id:parMdid.value}
|
|
|
+ }
|
|
|
+ handleNodeClick(null,par1,null)
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
})
|
|
|
var par = JSON.parse(JSON.stringify(dataTreeReturn.value))
|
|
|
var par1 = flattenTreeWithArrayIndex(par)
|
|
|
- postReturnlist(par1).then(res => {
|
|
|
- if (res.code === 200) {
|
|
|
- proxy.$modal.msgSuccess("新增成功");
|
|
|
- getTreeLeft()
|
|
|
- }
|
|
|
- })
|
|
|
+
|
|
|
+ // postReturnlist(par1).then(res => {
|
|
|
+ // if (res.code === 200) {
|
|
|
+ // proxy.$modal.msgSuccess("新增成功");
|
|
|
+ // getTreeLeft()
|
|
|
+ // }
|
|
|
+ // })
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1446,30 +1499,58 @@ async function addSer() {
|
|
|
var par = formAdd.value
|
|
|
par.example = exampleAdd.value
|
|
|
par.rpcontent = JsonAdd.value
|
|
|
- par.cateCode = par.cateCode[0]
|
|
|
console.log(par)
|
|
|
await addService(par).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
var parCan = tableDataCanAdd.value
|
|
|
if (parCan.length !== 0) {
|
|
|
+ var parRule = true
|
|
|
parCan.forEach((item, index) => {
|
|
|
item.srvId = res.data.srvId
|
|
|
if (item.paramName === '') {
|
|
|
parCan.splice(index, 1)
|
|
|
}
|
|
|
+ if(item.paramCode&&item.paramType&&item.paramName){
|
|
|
+ item.parRule = true
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ item.parRule = false
|
|
|
+ }
|
|
|
});
|
|
|
- addServiceParam(parCan).then(res1 => {
|
|
|
- if (res1.code === 200) {
|
|
|
- proxy.$modal.msgSuccess("新增成功");
|
|
|
- getTreeLeft()
|
|
|
+ parCan.forEach((item, index) => {
|
|
|
+ if(item.parRule===false){
|
|
|
+ parRule = false
|
|
|
}
|
|
|
})
|
|
|
+ if(parRule){
|
|
|
+ addServiceParam(parCan).then(res1 => {
|
|
|
+ if (res1.code === 200) {
|
|
|
+ proxy.$modal.msgSuccess("新增成功");
|
|
|
+ dialogVisible.value = false
|
|
|
+ dialogVisibleSerDe.value = false
|
|
|
+ var par1 = {
|
|
|
+ data:{id:parMdid.value}
|
|
|
+ }
|
|
|
+ handleNodeClick(null,par1,null)
|
|
|
+ getTreeLeft()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ proxy.$modal.msgError("请填写必填项!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ dialogVisible.value = false
|
|
|
+ dialogVisibleSerDe.value = false
|
|
|
+ var par1 = {
|
|
|
+ data:{id:parMdid.value}
|
|
|
+ }
|
|
|
+ handleNodeClick(null,par1,null)
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
})
|
|
|
|
|
|
-
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -1517,11 +1598,12 @@ async function showDe(row) {
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
+const parMdid = ref('')
|
|
|
async function handleNodeClick(node,data,event){
|
|
|
var par = {
|
|
|
mdid:data.data.id
|
|
|
}
|
|
|
-
|
|
|
+ parMdid.value = data.data.id
|
|
|
await getServiceInfo(par).then(res=>{
|
|
|
if(res.data){
|
|
|
tableDataSer.value = res.data.serviceList
|
|
|
@@ -1529,6 +1611,14 @@ async function handleNodeClick(node,data,event){
|
|
|
tableDataSer.value.forEach(item => {
|
|
|
item.modelName = res.data.name;
|
|
|
});
|
|
|
+ tableDataSer.value.forEach(item=>{
|
|
|
+ if(item.state==='0'||item.state===null){
|
|
|
+ item.state = false
|
|
|
+ }
|
|
|
+ if(item.state==='1'){
|
|
|
+ item.state = true
|
|
|
+ }
|
|
|
+ })
|
|
|
})
|
|
|
parOptions.value.forEach(option => {
|
|
|
option.label = option.cateName;
|
|
|
@@ -1792,11 +1882,17 @@ async function getTreeLeft() {
|
|
|
devkind:'APP'
|
|
|
}
|
|
|
}
|
|
|
+ var firstMdid
|
|
|
await modelTreeSelect(par).then(res => {
|
|
|
par = res.data
|
|
|
data.value = res.data
|
|
|
+ firstMdid = res.data[0].children[0].id
|
|
|
})
|
|
|
optionsMdid.value = filterModelNodes(par)
|
|
|
+ var par1 = {
|
|
|
+ data:{id:firstMdid}
|
|
|
+ }
|
|
|
+ handleNodeClick(null,par1,null)
|
|
|
}
|
|
|
|
|
|
function renameTreeProperties(tree) {
|
|
|
@@ -1895,9 +1991,11 @@ async function getAllSer() {
|
|
|
});
|
|
|
})
|
|
|
}
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
- getAllSer()
|
|
|
+ // getAllSer()
|
|
|
fetchData()
|
|
|
+ getGate()
|
|
|
getTreeLeft()
|
|
|
});
|
|
|
|