|
@@ -1,5 +1,5 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <!-- 测试devkind = 'APP' -->
|
|
|
|
|
|
|
+ <!-- 测试devkind = 'SYS' -->
|
|
|
<div style="width: 100%;;display: flex;">
|
|
<div style="width: 100%;;display: flex;">
|
|
|
<div style="width: 15%;;background-color: #F2F6FC;max-height: 85vh;overflow: auto;">
|
|
<div style="width: 15%;;background-color: #F2F6FC;max-height: 85vh;overflow: auto;">
|
|
|
<div style="display: flex;padding-top: 1%;padding-top: 5%;">
|
|
<div style="display: flex;padding-top: 1%;padding-top: 5%;">
|
|
@@ -110,11 +110,11 @@
|
|
|
<el-tag class="ml-2" type="success">已测试</el-tag>
|
|
<el-tag class="ml-2" type="success">已测试</el-tag>
|
|
|
</div>
|
|
</div>
|
|
|
<div style="text-align: center;display: flex;" v-if="scope.row.audit=='2'">
|
|
<div style="text-align: center;display: flex;" v-if="scope.row.audit=='2'">
|
|
|
- <el-tag class="ml-2" type="success">未测试</el-tag>
|
|
|
|
|
|
|
+ <el-tag class="ml-2" type="danger">未测试</el-tag>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
- <el-table-column prop="address" label="操作" width="100">
|
|
|
|
|
|
|
+ <el-table-column prop="address" label="操作" width="150">
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
<!-- <div style="display: flex;justify-content: space-between;width: 100%;">
|
|
<!-- <div style="display: flex;justify-content: space-between;width: 100%;">
|
|
|
<el-button type="danger" text size="mini" style="margin-left: -5%;" @click="handleDelete(scope.row)">注销</el-button>
|
|
<el-button type="danger" text size="mini" style="margin-left: -5%;" @click="handleDelete(scope.row)">注销</el-button>
|
|
@@ -122,8 +122,10 @@
|
|
|
<el-button @click="testSer(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">测试</el-button>
|
|
<el-button @click="testSer(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">测试</el-button>
|
|
|
<el-button @click="testSer(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">审核</el-button>
|
|
<el-button @click="testSer(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">审核</el-button>
|
|
|
</div> -->
|
|
</div> -->
|
|
|
- <el-button @click="testSer(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">测试</el-button>
|
|
|
|
|
- <!-- <el-button @click="showDe(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">查看</el-button> -->
|
|
|
|
|
|
|
+ <div style="display: flex;">
|
|
|
|
|
+ <el-button @click="testSer(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">测试</el-button>
|
|
|
|
|
+ <el-button @click="showLog(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">日志</el-button>
|
|
|
|
|
+ </div>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
@@ -235,26 +237,27 @@
|
|
|
</span>
|
|
</span>
|
|
|
</template>
|
|
</template>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
- <el-dialog @close="clearFromLev" title="添加目录" v-model="dialogVisibleLevel" width="30%" destroy-on-close :key="tableKey">
|
|
|
|
|
- <el-form size="mini" :key="tableKey" style="margin-top: 1%;width: 90%;" :model="formLev" label-position="right" ref="formRefLev" label-width="120px" :rules="rulesLev">
|
|
|
|
|
- <el-form-item label="名称:" prop="itemName" style="">
|
|
|
|
|
- <el-input v-model="formLev.itemName" style="width: 100%;"/>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="说明:" prop="itemNotes" style="">
|
|
|
|
|
- <el-input v-model="formLev.itemNotes" style="width: 100%;"/>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="排序:" prop="itemNo" style="">
|
|
|
|
|
- <el-input-number v-model="formLev.itemNo" style="width: 100%;" :min="1" :max="10000" @change="handleChange" />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-form>
|
|
|
|
|
|
|
+ <el-dialog @close="clearFromLev" title="添加目录" v-model="dialogVisibleLevel" width="50%" destroy-on-close :key="tableKey">
|
|
|
|
|
+ <el-table
|
|
|
|
|
+ style="margin-top: 1%;width: 98%;"
|
|
|
|
|
+ :data="tableDataLog"
|
|
|
|
|
+ :cell-style="{ textAlign: 'center',padding:'2px 0' }"
|
|
|
|
|
+ :header-cell-style="{ textAlign: 'center'}"
|
|
|
|
|
+ :row-style="{ height: heightAll*0.01+'px',fontSize: '16px',textAlign:'center' }"
|
|
|
|
|
+ border >
|
|
|
|
|
+ <el-table-column prop="createBy" label="测试发起人">
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column prop="runTm" label="测试时间">
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column prop="execTm" label="测试耗时" show-overflow-tooltip>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column prop="returnData" label="测试返回结果" show-overflow-tooltip>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
<template #footer>
|
|
<template #footer>
|
|
|
<span class="dialog-footer">
|
|
<span class="dialog-footer">
|
|
|
- <el-button size="mini" @click="dialogVisibleLevel = false">取消</el-button>
|
|
|
|
|
- <el-button type="primary" @click="saveAdd1Level" size="mini" v-if="show1Lev">
|
|
|
|
|
- 提交
|
|
|
|
|
- </el-button>
|
|
|
|
|
- <el-button type="primary" @click="saveAddNextLevel" size="mini" v-if="!show1Lev">
|
|
|
|
|
- 提交
|
|
|
|
|
|
|
+ <el-button type="primary" @click="dialogVisibleLevel = false" size="mini">
|
|
|
|
|
+ 确定
|
|
|
</el-button>
|
|
</el-button>
|
|
|
</span>
|
|
</span>
|
|
|
</template>
|
|
</template>
|
|
@@ -319,7 +322,7 @@
|
|
|
import {getCatalog} from "@/api/service/catalog";
|
|
import {getCatalog} from "@/api/service/catalog";
|
|
|
import { Plus,Search,Filter,Promotion,Check } from '@element-plus/icons-vue'
|
|
import { Plus,Search,Filter,Promotion,Check } from '@element-plus/icons-vue'
|
|
|
import { reactive } from 'vue'
|
|
import { reactive } from 'vue'
|
|
|
-import { modelTreeSelect,getSerDe,addService,addParam,editService,editParam,addServiceParam,delService,getTreeDe,addTree,deTree,getServiceInfo,testService } from "@/api/service/info";
|
|
|
|
|
|
|
+import { modelTreeSelect,getSerDe,addService,addServiceParam,delService,addTree,deTree,getServiceInfo,testService,testLog } from "@/api/service/info";
|
|
|
import { ref, onMounted, onUnmounted, nextTick,onBeforeMount } from 'vue';
|
|
import { ref, onMounted, onUnmounted, nextTick,onBeforeMount } from 'vue';
|
|
|
import JsonViewer from 'vue-json-viewer'
|
|
import JsonViewer from 'vue-json-viewer'
|
|
|
import 'vue-json-viewer/style.css'
|
|
import 'vue-json-viewer/style.css'
|
|
@@ -337,6 +340,7 @@ const detail = ref({
|
|
|
rqtype:'',
|
|
rqtype:'',
|
|
|
rptype:''
|
|
rptype:''
|
|
|
})
|
|
})
|
|
|
|
|
+const tableDataLog = ref([])
|
|
|
const show1Lev = ref(true)
|
|
const show1Lev = ref(true)
|
|
|
const inputNode =ref('')
|
|
const inputNode =ref('')
|
|
|
const isEdit = ref(true)
|
|
const isEdit = ref(true)
|
|
@@ -436,6 +440,7 @@ const isAdd = ref(false)
|
|
|
const isAddTa = ref(false)
|
|
const isAddTa = ref(false)
|
|
|
const treeId = ref('');
|
|
const treeId = ref('');
|
|
|
const valueSta = ref('1');
|
|
const valueSta = ref('1');
|
|
|
|
|
+const parMdid = ref('')
|
|
|
const example = ref('');
|
|
const example = ref('');
|
|
|
const tableDataCanAdd = ref([
|
|
const tableDataCanAdd = ref([
|
|
|
{
|
|
{
|
|
@@ -445,7 +450,6 @@ const tableDataCanAdd = ref([
|
|
|
paramNote:''
|
|
paramNote:''
|
|
|
}
|
|
}
|
|
|
])
|
|
])
|
|
|
-const parMdid = ref('')
|
|
|
|
|
const formZu = ref({
|
|
const formZu = ref({
|
|
|
itemName:'',
|
|
itemName:'',
|
|
|
itemTp:'',
|
|
itemTp:'',
|
|
@@ -528,7 +532,15 @@ const filterNode = (value, data) => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const copied = ref(false);
|
|
const copied = ref(false);
|
|
|
-
|
|
|
|
|
|
|
+function showLog(row){
|
|
|
|
|
+ dialogVisibleLevel.value = true
|
|
|
|
|
+ var par = {
|
|
|
|
|
+ serId:row.srvId
|
|
|
|
|
+ }
|
|
|
|
|
+ testLog(par).then(res=>{
|
|
|
|
|
+ tableDataLog.value = res.rows
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
function test(){
|
|
function test(){
|
|
|
var par = detailJson.value
|
|
var par = detailJson.value
|
|
|
par.params = tableDataCan.value
|
|
par.params = tableDataCan.value
|
|
@@ -626,11 +638,7 @@ function delAll(){
|
|
|
}).catch(() => {});
|
|
}).catch(() => {});
|
|
|
}
|
|
}
|
|
|
function clearFromLev(){
|
|
function clearFromLev(){
|
|
|
- formLev.value = {
|
|
|
|
|
- itemName:'',
|
|
|
|
|
- itemNo:'',
|
|
|
|
|
- itemNotes:'',
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ tableDataLog.value = []
|
|
|
}
|
|
}
|
|
|
function addNextLevel(){
|
|
function addNextLevel(){
|
|
|
dialogVisibleLevel.value = true
|
|
dialogVisibleLevel.value = true
|
|
@@ -714,7 +722,7 @@ async function addSer(){
|
|
|
function showAdd(){
|
|
function showAdd(){
|
|
|
dialogVisible.value = true
|
|
dialogVisible.value = true
|
|
|
}
|
|
}
|
|
|
-async function handleNodeClick(data){
|
|
|
|
|
|
|
+async function handleNodeClick(node,data,event){
|
|
|
// parTree.value = data.data
|
|
// parTree.value = data.data
|
|
|
// currentNodeKey.value = data.data.id
|
|
// currentNodeKey.value = data.data.id
|
|
|
|
|
|
|
@@ -732,12 +740,11 @@ async function handleNodeClick(data){
|
|
|
// }
|
|
// }
|
|
|
|
|
|
|
|
// })
|
|
// })
|
|
|
- console.log(data.id)
|
|
|
|
|
- parMdid.value = data.id
|
|
|
|
|
|
|
+ parMdid.value = data.data.id
|
|
|
var par = {
|
|
var par = {
|
|
|
- mdid:data.id
|
|
|
|
|
|
|
+ mdid:data.data.id
|
|
|
}
|
|
}
|
|
|
- console.log(data.id)
|
|
|
|
|
|
|
+ console.log(data.data.id)
|
|
|
await getServiceInfo(par).then(res=>{
|
|
await getServiceInfo(par).then(res=>{
|
|
|
if(res.data){
|
|
if(res.data){
|
|
|
tableData.value = res.data.serviceList
|
|
tableData.value = res.data.serviceList
|
|
@@ -789,6 +796,7 @@ async function getTreeLeft(){
|
|
|
await modelTreeSelect(par).then(res=>{
|
|
await modelTreeSelect(par).then(res=>{
|
|
|
par = res.data
|
|
par = res.data
|
|
|
data.value = res.data
|
|
data.value = res.data
|
|
|
|
|
+
|
|
|
})
|
|
})
|
|
|
optionsMdid.value = filterModelNodes(par)
|
|
optionsMdid.value = filterModelNodes(par)
|
|
|
console.log(optionsMdid.value)
|
|
console.log(optionsMdid.value)
|
|
@@ -824,7 +832,7 @@ function fetchData() {
|
|
|
getCatalog().then((r) => {
|
|
getCatalog().then((r) => {
|
|
|
parOptions.value = r.data
|
|
parOptions.value = r.data
|
|
|
cascaderOptions.value = renameTreeProperties(buildTree(r.data))
|
|
cascaderOptions.value = renameTreeProperties(buildTree(r.data))
|
|
|
- console.log(cascaderOptions.value)
|
|
|
|
|
|
|
+ console.log(parOptions.value)
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
function buildTree(flatData, rootValue = '0') {
|
|
function buildTree(flatData, rootValue = '0') {
|