nanjingliujinyu hace 4 meses
padre
commit
28b92ffc76

+ 7 - 0
ruoyi-ui/src/api/service/info.js

@@ -118,4 +118,11 @@ export function testService(data) {
     method: 'post',
     data:data
   });
+}
+export function testLog(query) {
+  return request({
+    url: "/service/run/log/list",
+    method: "get",
+    params: query,
+  });
 }

+ 45 - 64
ruoyi-ui/src/views/service/info/shenhe.vue

@@ -1,5 +1,5 @@
 <template>
-    <!-- 审核devkind = 'APP' -->
+    <!-- 审核devkind = 'SYS' -->
   <div style="width: 100%;;display: flex;">
     <div style="width: 15%;;background-color: #F2F6FC;max-height: 85vh;overflow: auto;">
       <div style="display: flex;padding-top: 1%;padding-top: 5%;">
@@ -112,7 +112,7 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column prop="address" label="操作" width="100">
+          <el-table-column prop="address" label="操作" width="150">
               <template #default="scope">
                   <!-- <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>
@@ -120,7 +120,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>
                   </div> -->
-                  <el-button @click="shenhe(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">审核</el-button>
+                  <div style="display: flex;">
+                    <el-button @click="shenhe(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>
           </el-table-column>
         </el-table>
@@ -181,52 +184,19 @@
             </span>
           </template>
         </el-dialog>
-        <el-dialog @close="clearAdd" v-model="dialogVisibleTest" title="" width="60%" destroy-on-close :key="tableKey">
-          <div style="display: flex;align-items: center;width: 98%;">
-            <div v-if="detailJson.rqtype==='GET'">
-              <el-tag class="ml-2" type="warning">GET</el-tag>
-            </div>
-            <div v-if="detailJson.rqtype==='POST'">
-              <el-tag class="ml-2" type="warning">POST</el-tag>
-            </div>
-            <div style="margin-left: 1%;">
-              {{ detailJson.name }}:
-            </div>
-            <div style="margin-left: 1%;">
-              {{ detailJson.url }}
-            </div>
-            <svg-icon @click="test" icon-class="startTest" style="margin-left: 1%;width: 50px;height: 25px;cursor: pointer;"/>
-          </div>
-          <div style="margin-top:2%;font-size: 18px;">
-            请求参数
-          </div>
-           <el-table 
-            style="margin-top: 1%;width: 98%;"
-            :data="tableDataCan" 
-            :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="paramCode" label="参数字段">
-                </el-table-column>
-                <el-table-column prop="paramName" label="参数名称">
-                </el-table-column>
-                <el-table-column prop="paramType" label="参数类型" width="200">
-                </el-table-column>
-                <el-table-column prop="paramValue" label="测试值">
-                  <template #default="scope">
-                      <div style="width: 100%;">
-                          <el-input placeholder="请填写" type="primary" class="noBor" v-model="scope.row.paramValue" size="mini" text style="margin-left: 0%;"></el-input>
-                      </div>
-                  </template>
-                </el-table-column>
-                <el-table-column prop="paramNote" label="参数说明" show-overflow-tooltip>
-                </el-table-column>
-            </el-table>
-            <div style="margin-top:4%;font-size: 18px;">
-              返回参数
-            </div>
-            <el-input  placeholder="" :rows="8" type="textarea" v-model="dataReturn" size="mini" text style="margin-top: 1%;width: 98%;" ></el-input>
+        <el-dialog @close="clearAdd" v-model="dialogVisibleTest" title="" width="40%" 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-radio-group v-model="radio1" style="margin-top: -0.5%;">
+                <el-radio value="1" size="large">通过</el-radio>
+                <el-radio value="2" size="large">不通过</el-radio>
+              </el-radio-group>
+            </el-form-item>
+            <el-form-item label="说明:" prop="itemNotes" style="">
+              <el-input v-model="formLev.itemNotes" style="width: 100%;" type="textarea"/>
+            </el-form-item>
+          </el-form>
+          
           <template #footer>
             <span class="dialog-footer">
             </span>
@@ -320,7 +290,6 @@ const optionsCan = ref([
   },
   
 ])
-const parMdid = ref('')
 const currentNodeKey = ref('')
 const options =  ref([
     {label:'开发中',
@@ -416,6 +385,7 @@ const rulesJi = reactive({
   cateCode: [{ required: true, message: '必填', trigger: 'blur' }],
 });
 const formRefJi = ref();
+const parMdid = ref('')
 const formAdd = ref({
   name:'',
   cateCode:'',
@@ -472,7 +442,24 @@ const filterNode = (value, data) => {
 };
 
 const copied = ref(false);
+function shenhe(row){
+  dialogVisibleTest.value = true
 
+  // var par = {
+  //     srvIds:row.srvId,
+  //     audit:'4',
+  //     devkind:'SYS'
+  //   }
+  // proxy.$modal.confirm('是否确认审核?').then(function () {
+  //   return changeSerShenhe(par).then(res=>{
+  //     if(res.code===200){
+  //       proxy.$modal.msgSuccess("已审核!");
+  //       handleNodeClick(parMdid.value)
+  //     }
+  //   })
+  // }).then(() => {
+  // }).catch(() => {});
+}
 function test(){
   var par = detailJson.value
   par.params = tableDataCan.value
@@ -549,20 +536,13 @@ function extractModelNodesDFSIterative(root) {
   }
   return result;
 }
-function shenhe(row){
-  var par = {
-      srvIds:row.srvId,
-      audit:'4',
-      devkind:'APP'
-    }
-  proxy.$modal.confirm('是否确认审核?').then(function () {
-    return changeSerShenhe(par).then(res=>{
-      if(res.code===200){
-        proxy.$modal.msgSuccess("已审核!");
-        handleNodeClick(parMdid.value)
-      }
-    })
+function delAll(){
+  proxy.$modal.confirm('是否确认删除?').then(function () {
+    return deTree(parTree.value.id);
   }).then(() => {
+    getTreeLeft();
+    proxy.$modal.msgSuccess("删除成功");
+    dialogVisibleLevel.value = false
   }).catch(() => {});
 }
 function clearFromLev(){
@@ -721,7 +701,8 @@ async function handleNodeClick(node,data,event){
 async function getTreeLeft(){
   var par = {
     params:{
-      level:'2'
+      level:'2',
+      devkind:'APP'
     }
   }
   await modelTreeSelect(par).then(res=>{

+ 45 - 37
ruoyi-ui/src/views/service/info/test.vue

@@ -1,5 +1,5 @@
 <template>
-    <!-- 测试devkind = 'APP' -->
+    <!-- 测试devkind = 'SYS' -->
   <div style="width: 100%;;display: flex;">
     <div style="width: 15%;;background-color: #F2F6FC;max-height: 85vh;overflow: auto;">
       <div style="display: flex;padding-top: 1%;padding-top: 5%;">
@@ -110,11 +110,11 @@
                 <el-tag class="ml-2" type="success">已测试</el-tag>
               </div>
               <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>
             </template>
           </el-table-column>
-          <el-table-column prop="address" label="操作" width="100">
+          <el-table-column prop="address" label="操作" width="150">
               <template #default="scope">
                   <!-- <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>
@@ -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>
                   </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>
           </el-table-column>
         </el-table>
@@ -235,26 +237,27 @@
             </span>
           </template>
         </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>
               <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>
             </span>
           </template>
@@ -319,7 +322,7 @@
 import {getCatalog} from "@/api/service/catalog";
 import { Plus,Search,Filter,Promotion,Check  } from '@element-plus/icons-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 JsonViewer from 'vue-json-viewer'
 import 'vue-json-viewer/style.css' 
@@ -337,6 +340,7 @@ const detail = ref({
   rqtype:'',
   rptype:''
 })
+const tableDataLog = ref([])
 const show1Lev = ref(true)
 const inputNode =ref('')
 const isEdit = ref(true)
@@ -436,6 +440,7 @@ const isAdd = ref(false)
 const isAddTa = ref(false)
 const treeId = ref('');
 const valueSta = ref('1');
+const parMdid = ref('')
 const example = ref('');
 const tableDataCanAdd = ref([
   {
@@ -445,7 +450,6 @@ const tableDataCanAdd = ref([
       paramNote:''
     }
 ])
-const parMdid = ref('')
 const formZu = ref({
   itemName:'',
   itemTp:'',
@@ -528,7 +532,15 @@ const filterNode = (value, data) => {
 };
 
 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(){
   var par = detailJson.value
   par.params = tableDataCan.value
@@ -626,11 +638,7 @@ function delAll(){
   }).catch(() => {});
 }
 function clearFromLev(){
-  formLev.value = {
-    itemName:'',
-    itemNo:'',
-    itemNotes:'',
-  }
+  tableDataLog.value = []
 }
 function addNextLevel(){
   dialogVisibleLevel.value = true
@@ -714,7 +722,7 @@ async function addSer(){
 function showAdd(){
   dialogVisible.value = true
 }
-async function handleNodeClick(data){
+async function handleNodeClick(node,data,event){
   // parTree.value = data.data
   // 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 = {
-    mdid:data.id
+    mdid:data.data.id
   }
-  console.log(data.id)
+  console.log(data.data.id)
   await getServiceInfo(par).then(res=>{
     if(res.data){
       tableData.value = res.data.serviceList
@@ -789,6 +796,7 @@ async function getTreeLeft(){
   await modelTreeSelect(par).then(res=>{
     par = res.data
     data.value = res.data
+    
   })
   optionsMdid.value = filterModelNodes(par)
   console.log(optionsMdid.value)
@@ -824,7 +832,7 @@ function fetchData() {
   getCatalog().then((r) => {
     parOptions.value = r.data
     cascaderOptions.value = renameTreeProperties(buildTree(r.data))
-    console.log(cascaderOptions.value)
+    console.log(parOptions.value)
   });
 }
 function buildTree(flatData, rootValue = '0') {

+ 36 - 63
ruoyi-ui/src/views/service/shenhe/index.vue

@@ -112,7 +112,7 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column prop="address" label="操作" width="100">
+          <el-table-column prop="address" label="操作" width="150">
               <template #default="scope">
                   <!-- <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>
@@ -120,7 +120,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>
                   </div> -->
-                  <el-button @click="shenhe(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">审核</el-button>
+                  <div style="display: flex;">
+                    <el-button @click="shenhe(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>
           </el-table-column>
         </el-table>
@@ -181,52 +184,19 @@
             </span>
           </template>
         </el-dialog>
-        <el-dialog @close="clearAdd" v-model="dialogVisibleTest" title="" width="60%" destroy-on-close :key="tableKey">
-          <div style="display: flex;align-items: center;width: 98%;">
-            <div v-if="detailJson.rqtype==='GET'">
-              <el-tag class="ml-2" type="warning">GET</el-tag>
-            </div>
-            <div v-if="detailJson.rqtype==='POST'">
-              <el-tag class="ml-2" type="warning">POST</el-tag>
-            </div>
-            <div style="margin-left: 1%;">
-              {{ detailJson.name }}:
-            </div>
-            <div style="margin-left: 1%;">
-              {{ detailJson.url }}
-            </div>
-            <svg-icon @click="test" icon-class="startTest" style="margin-left: 1%;width: 50px;height: 25px;cursor: pointer;"/>
-          </div>
-          <div style="margin-top:2%;font-size: 18px;">
-            请求参数
-          </div>
-           <el-table 
-            style="margin-top: 1%;width: 98%;"
-            :data="tableDataCan" 
-            :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="paramCode" label="参数字段">
-                </el-table-column>
-                <el-table-column prop="paramName" label="参数名称">
-                </el-table-column>
-                <el-table-column prop="paramType" label="参数类型" width="200">
-                </el-table-column>
-                <el-table-column prop="paramValue" label="测试值">
-                  <template #default="scope">
-                      <div style="width: 100%;">
-                          <el-input placeholder="请填写" type="primary" class="noBor" v-model="scope.row.paramValue" size="mini" text style="margin-left: 0%;"></el-input>
-                      </div>
-                  </template>
-                </el-table-column>
-                <el-table-column prop="paramNote" label="参数说明" show-overflow-tooltip>
-                </el-table-column>
-            </el-table>
-            <div style="margin-top:4%;font-size: 18px;">
-              返回参数
-            </div>
-            <el-input  placeholder="" :rows="8" type="textarea" v-model="dataReturn" size="mini" text style="margin-top: 1%;width: 98%;" ></el-input>
+        <el-dialog @close="clearAdd" v-model="dialogVisibleTest" title="" width="40%" 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-radio-group v-model="radio1" style="margin-top: -0.5%;">
+                <el-radio value="1" size="large">通过</el-radio>
+                <el-radio value="2" size="large">不通过</el-radio>
+              </el-radio-group>
+            </el-form-item>
+            <el-form-item label="说明:" prop="itemNotes" style="">
+              <el-input v-model="formLev.itemNotes" style="width: 100%;" type="textarea"/>
+            </el-form-item>
+          </el-form>
+          
           <template #footer>
             <span class="dialog-footer">
             </span>
@@ -473,20 +443,22 @@ const filterNode = (value, data) => {
 
 const copied = ref(false);
 function shenhe(row){
-  var par = {
-      srvIds:row.srvId,
-      audit:'4',
-      devkind:'SYS'
-    }
-  proxy.$modal.confirm('是否确认审核?').then(function () {
-    return changeSerShenhe(par).then(res=>{
-      if(res.code===200){
-        proxy.$modal.msgSuccess("已审核!");
-        handleNodeClick(parMdid.value)
-      }
-    })
-  }).then(() => {
-  }).catch(() => {});
+  dialogVisibleTest.value = true
+
+  // var par = {
+  //     srvIds:row.srvId,
+  //     audit:'4',
+  //     devkind:'SYS'
+  //   }
+  // proxy.$modal.confirm('是否确认审核?').then(function () {
+  //   return changeSerShenhe(par).then(res=>{
+  //     if(res.code===200){
+  //       proxy.$modal.msgSuccess("已审核!");
+  //       handleNodeClick(parMdid.value)
+  //     }
+  //   })
+  // }).then(() => {
+  // }).catch(() => {});
 }
 function test(){
   var par = detailJson.value
@@ -729,7 +701,8 @@ async function handleNodeClick(node,data,event){
 async function getTreeLeft(){
   var par = {
     params:{
-      level:'2'
+      level:'2',
+      devkind:'SYS'
     }
   }
   await modelTreeSelect(par).then(res=>{

+ 33 - 26
ruoyi-ui/src/views/service/test/index.vue

@@ -237,26 +237,27 @@
             </span>
           </template>
         </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>
               <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>
             </span>
           </template>
@@ -321,7 +322,7 @@
 import {getCatalog} from "@/api/service/catalog";
 import { Plus,Search,Filter,Promotion,Check  } from '@element-plus/icons-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 JsonViewer from 'vue-json-viewer'
 import 'vue-json-viewer/style.css' 
@@ -339,6 +340,7 @@ const detail = ref({
   rqtype:'',
   rptype:''
 })
+const tableDataLog = ref([])
 const show1Lev = ref(true)
 const inputNode =ref('')
 const isEdit = ref(true)
@@ -530,7 +532,15 @@ const filterNode = (value, data) => {
 };
 
 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(){
   var par = detailJson.value
   par.params = tableDataCan.value
@@ -628,11 +638,7 @@ function delAll(){
   }).catch(() => {});
 }
 function clearFromLev(){
-  formLev.value = {
-    itemName:'',
-    itemNo:'',
-    itemNotes:'',
-  }
+  tableDataLog.value = []
 }
 function addNextLevel(){
   dialogVisibleLevel.value = true
@@ -783,7 +789,8 @@ async function handleNodeClick(node,data,event){
 async function getTreeLeft(){
   var par = {
     params:{
-      level:'2'
+      level:'2',
+      devkind:'SYS'
     }
   }
   await modelTreeSelect(par).then(res=>{