nanjingliujinyu 4 miesięcy temu
rodzic
commit
6deae26d7a

+ 2 - 2
ruoyi-ui/src/views/register/modelData/dataJi.vue

@@ -989,7 +989,7 @@ function testSql(){
   else{
     var par = {
       dsCode:dsCodeSql.value,
-      sql:codeSQl.value
+      sql:codeSQl.value 
     }
     dataJisql(par).then(res=>{
       if(res.code===200){
@@ -1000,7 +1000,7 @@ function testSql(){
   }
   
 }
-function download(){
+function download(){ 
   var url = window.location.host + downLink.value
   console.log(url)
   const link = document.createElement('a');

+ 80 - 11
ruoyi-ui/src/views/service/info/test.vue

@@ -79,6 +79,11 @@
             </template>
           </el-table-column>
           <el-table-column prop="name" label="服务名称"  width="200">
+            <template #default="scope">
+              <div style="color: #409EFF;cursor: pointer;" @click="showDe(scope.row)">
+                {{scope.row.name}}
+              </div>
+            </template>
           </el-table-column>
           <el-table-column prop="type" label="接口类型"  width="200">
           </el-table-column>
@@ -254,6 +259,59 @@
             </span>
           </template>
         </el-dialog>
+        <el-dialog  v-model="dialogVisibleDe" title="" width="50%" @close="" destroy-on-close class="custom-dialog-bg">
+          <el-form size="mini" :key="tableKey" style="margin-top:1%;width: 100%;" :model="formJi" label-position="right"
+                 ref="formRefJi" label-width="120px" :rules="rulesJi">
+            <el-row :gutter="48">
+              <el-col :span="10">
+                <el-form-item label="服务名称:" prop="name" style="">
+                  {{formJi.name}}
+                </el-form-item>
+              </el-col>
+              <el-col :span="10">
+                <el-form-item label="接口类型:" prop="" style="">
+                  <div style="display: flex;width: 100%;justify-content: space-between;">
+                    {{formJi.type}}
+                  </div>
+
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row :gutter="48">
+              <el-col :span="20">
+                <el-form-item label="接口地址:" prop="url" style="">
+                  {{formJi.url}}
+                </el-form-item>
+              </el-col>
+              <el-col :span="10">
+                <el-form-item label="请求方式:" prop="" style="">
+                  {{formJi.rqtype}}
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row :gutter="48">
+              <el-col :span="10">
+                <el-form-item label="响应类型:" prop="" style="display: flex; align-items: center;">
+                  {{formJi.rptype}}
+                </el-form-item>
+              </el-col>
+              <el-col :span="10">
+                <el-form-item label="服务分类:" prop="cateCode" style="">
+                  {{formJi.cateCode}}
+                  <!-- <el-cascader :disabled="isEdit" v-model="formJi.cateCode" :options="cascaderOptions" clearable
+                              style="width: 100%;"></el-cascader> -->
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row :gutter="48">
+              <el-col :span="13">
+                <el-form-item label="服务说明:">
+                  {{formJi.intro}}
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </el-dialog>
     </div>
   </div>
 </template>
@@ -273,6 +331,7 @@ const { proxy } = getCurrentInstance();
 const JsonAdd= ref(JSON.stringify({ data: "初始值1" }))
 const exampleAdd = ref('')
 const dialogVisibleLevel = ref(false)
+const dialogVisibleDe = ref(false)
 const detail = ref({
   name:'',
   rqtype:'',
@@ -492,12 +551,22 @@ function testSer(row){
 function showDe(row){
   getSerDe(row.srvId).then(res=>{
     if(res.code===200){
-      detailJson.value = res.data.ptService
-      dialogVisible.value = true
-      detailJson.value.cateCode = row.cateCode
-      detailJson.value.rptype = row.rptype
-      tableDataCan.value = res.data.list
-      dataJsonXiang.value = res.data.ptService.rpcontent
+      dialogVisibleDe.value = true
+      parOptions.value.forEach(item=>{
+        if(res.data.ptService.cateCode === item.cateCode){
+          res.data.ptService.cateCode = item.cateName
+        }
+      })
+      if(res.data.ptService.rptype === '1'){
+        res.data.ptService.rptype = 'JSON'
+      }
+      if(res.data.ptService.rptype === '2'){
+        res.data.ptService.rptype = 'XML'
+      }
+      if(res.data.ptService.rptype === '3'){
+        res.data.ptService.rptype = 'HTML'
+      }
+      formJi.value = res.data.ptService
     }
   })
 }
@@ -663,11 +732,12 @@ async function handleNodeClick(data){
   //   }
     
   // })
-  parMdid.value = data.data.id
+  console.log(data.id)
+  parMdid.value = data.id
   var par = {
-    mdid:data.data.id
+    mdid:data.id
   }
-  console.log(data.data.id)
+  console.log(data.id)
   await getServiceInfo(par).then(res=>{
     if(res.data){
       tableData.value = res.data.serviceList
@@ -713,13 +783,12 @@ async function getTreeLeft(){
   var par = {
     params:{
       level:'2',
-      devkind : 'SYS'
+      devkind:'APP'
     }
   }
   await modelTreeSelect(par).then(res=>{
     par = res.data
     data.value = res.data
-    
   })
   optionsMdid.value = filterModelNodes(par)
   console.log(optionsMdid.value)

+ 81 - 9
ruoyi-ui/src/views/service/test/index.vue

@@ -79,6 +79,11 @@
             </template>
           </el-table-column>
           <el-table-column prop="name" label="服务名称"  width="200">
+            <template #default="scope">
+              <div style="color: #409EFF;cursor: pointer;" @click="showDe(scope.row)">
+                {{scope.row.name}}
+              </div>
+            </template>
           </el-table-column>
           <el-table-column prop="type" label="接口类型"  width="200">
           </el-table-column>
@@ -109,7 +114,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>
@@ -117,7 +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>
+                  <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>
@@ -253,6 +261,59 @@
             </span>
           </template>
         </el-dialog>
+        <el-dialog  v-model="dialogVisibleDe" title="" width="50%" @close="" destroy-on-close class="custom-dialog-bg">
+          <el-form size="mini" :key="tableKey" style="margin-top:1%;width: 100%;" :model="formJi" label-position="right"
+                 ref="formRefJi" label-width="120px" :rules="rulesJi">
+            <el-row :gutter="48">
+              <el-col :span="10">
+                <el-form-item label="服务名称:" prop="name" style="">
+                  {{formJi.name}}
+                </el-form-item>
+              </el-col>
+              <el-col :span="10">
+                <el-form-item label="接口类型:" prop="" style="">
+                  <div style="display: flex;width: 100%;justify-content: space-between;">
+                    {{formJi.type}}
+                  </div>
+
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row :gutter="48">
+              <el-col :span="20">
+                <el-form-item label="接口地址:" prop="url" style="">
+                  {{formJi.url}}
+                </el-form-item>
+              </el-col>
+              <el-col :span="10">
+                <el-form-item label="请求方式:" prop="" style="">
+                  {{formJi.rqtype}}
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row :gutter="48">
+              <el-col :span="10">
+                <el-form-item label="响应类型:" prop="" style="display: flex; align-items: center;">
+                  {{formJi.rptype}}
+                </el-form-item>
+              </el-col>
+              <el-col :span="10">
+                <el-form-item label="服务分类:" prop="cateCode" style="">
+                  {{formJi.cateCode}}
+                  <!-- <el-cascader :disabled="isEdit" v-model="formJi.cateCode" :options="cascaderOptions" clearable
+                              style="width: 100%;"></el-cascader> -->
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row :gutter="48">
+              <el-col :span="13">
+                <el-form-item label="服务说明:">
+                  {{formJi.intro}}
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </el-dialog>
     </div>
   </div>
 </template>
@@ -272,6 +333,7 @@ const { proxy } = getCurrentInstance();
 const JsonAdd= ref(JSON.stringify({ data: "初始值1" }))
 const exampleAdd = ref('')
 const dialogVisibleLevel = ref(false)
+const dialogVisibleDe = ref(false)
 const detail = ref({
   name:'',
   rqtype:'',
@@ -491,12 +553,22 @@ function testSer(row){
 function showDe(row){
   getSerDe(row.srvId).then(res=>{
     if(res.code===200){
-      detailJson.value = res.data.ptService
-      dialogVisible.value = true
-      detailJson.value.cateCode = row.cateCode
-      detailJson.value.rptype = row.rptype
-      tableDataCan.value = res.data.list
-      dataJsonXiang.value = res.data.ptService.rpcontent
+      dialogVisibleDe.value = true
+      parOptions.value.forEach(item=>{
+        if(res.data.ptService.cateCode === item.cateCode){
+          res.data.ptService.cateCode = item.cateName
+        }
+      })
+      if(res.data.ptService.rptype === '1'){
+        res.data.ptService.rptype = 'JSON'
+      }
+      if(res.data.ptService.rptype === '2'){
+        res.data.ptService.rptype = 'XML'
+      }
+      if(res.data.ptService.rptype === '3'){
+        res.data.ptService.rptype = 'HTML'
+      }
+      formJi.value = res.data.ptService
     }
   })
 }
@@ -753,7 +825,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') {

+ 49 - 7
ruoyi-ui/src/views/standardization/modeling/index.vue

@@ -167,7 +167,7 @@
       </div>
       </div>
     </div>
-    <div v-if="nodeEnd" style="height: 82vh;overflow-y: auto;width: 25vw;position: absolute;float: right;z-index: 1000;right: 1%;top:6%;border: 0.1px solid #dedfe0;border-radius: 6px;background-color: white;">
+    <div v-show="nodeEnd" style="height: 82vh;overflow-y: auto;width: 25vw;position: absolute;float: right;z-index: 1000;right: 1%;top:6%;border: 0.1px solid #dedfe0;border-radius: 6px;background-color: white;">
       <div style="display: flex;margin-left: 3%;margin-top: 3%;align-items: center;justify-content: space-between;width: 95%;">
         <el-tag class="ml-2" style="" type="warning">结束节点</el-tag>
         <el-icon @click="saveEndNode" style="margin-left: auto;cursor: pointer;"><Close /></el-icon>
@@ -677,6 +677,7 @@ import { Controls } from '@vue-flow/controls'
 import '@vue-flow/controls/dist/style.css'
 import '@vue-flow/core/dist/theme-default.css';
 import { Plus,Search } from '@element-plus/icons-vue'
+import { toRaw, isReactive, isProxy } from 'vue';
 import DynamicMap from '@/components/DynamicMap/index.vue'
 import {Promotion} from '@element-plus/icons-vue'
 import { onMounted, ref,onBeforeUnmount } from 'vue'
@@ -692,6 +693,7 @@ import { useStore } from 'vuex';
 import {Handle, Position} from '@vue-flow/core'
 import { computed } from 'vue';
 import { modelTreeSelect } from "@/api/service/info";
+// import { toRaw, isReactive, isProxy } from 'vue';
 const {
   snapToGrid,
   addEdges,
@@ -940,8 +942,9 @@ const handleSelectChange = (selectedValue) => {
     scope.row.paramValue = newValue; // 同步更新绑定值[10](@ref)
   }
 };
-function addEnd(){
-  tableDataCanEnd.value.push([])
+async function addEnd(){
+  tableDataCanEnd.value.push({})
+  await nextTick();
 }
 function delEnd(index){
   tableDataCanEnd.value.splice(index,1)
@@ -1025,12 +1028,17 @@ function startTest(){
 }
 function saveStartNode(){
   nodeStart.value = false
+  
 }
 function saveEndNode(){
   nodeEnd.value = false
+  var par = tableDataCanEnd.value
+  const node = findNode('2')
+  node.data.data = par
+  console.log(nodes)
 }
 function addStart(){
-  tableDataCanStart.value.push([])
+  tableDataCanStart.value.push({})
 }
 function delCanStart(index){
   tableDataCanStart.value.splice(index,1)
@@ -1076,7 +1084,6 @@ function saveNode(){
   })
   nodeDeSer.value = false
   const node = findNode(parNodeid.value)
- 
   node.data.data = par
   // updateNode(node.id, { data: { ...node.data, ...par } });
   // updateNodeInternals(node.id);
@@ -1155,6 +1162,22 @@ async function getTreeLeft(){
     dataTree.value = res.data
   })
 }
+function deepToRaw(obj) {
+  // 如果是数组,遍历每个元素并递归处理
+  if (Array.isArray(obj)) {
+    return obj.map(item => deepToRaw(item));
+  }
+  // 如果是对象且可能是响应式代理,获取其原始对象并递归处理其属性
+  else if (obj !== null && typeof obj === 'object' && (isProxy(obj) || isReactive(obj))) {
+    const rawObj = toRaw(obj);
+    return Object.fromEntries(
+      Object.entries(rawObj).map(([key, value]) => [key, deepToRaw(value)])
+    );
+  }
+  // 如果是普通对象,直接返回
+  return obj;
+}
+
 function saveFlow(){
   var parFlow = toRaw(toObject())
   parFlow.nodes.forEach(item => {
@@ -1163,9 +1186,15 @@ function saveFlow(){
     }
     if(item.id==='2'){
       item.type='endNode'
+      item.data.parameters = tableDataCanEnd.value;
+      // item.data.parameters.splice(0, 0, ...tableDataCanEnd.value);   
+      console.log(item)     
+      // item.data.parameters.splice(0, item.data.parameters.length, ...tableDataCanEnd.value);
+      // item.data.parameters = JSON.parse(JSON.stringify(item.data.parameters))
     }
   });
-  console.log(parFlow)
+  
+  // console.log(JSON.parse(JSON.stringify(parFlow)))
   if(isAdd.value){
     const count = computed(() => store.getters.id)
     var par = {
@@ -1278,12 +1307,21 @@ onNodeClick(({event, node}) => {
       parShu.forEach(item1=>{
         var count = index+1
         var par = {
-          ref:count.toString() + ':' + item1,
+          ref:item.data.id + '.' + item1,
           name:item.data.label + ':' + item1
         }
         optionsCan.value.push(par)
       })
     }
+    if(tableDataCanStart.value.length>0){
+      tableDataCanStart.value.forEach(item=>{
+        var par = {
+          ref:item.value,
+          name:item.name
+        }
+        optionsCan.value.push(par)
+      })
+    }
   })
   console.log(optionsCan.value)
   if(node.data.label==='结束'){
@@ -1291,6 +1329,7 @@ onNodeClick(({event, node}) => {
   }
   if(node.data.label==='开始'){
     nodeStart.value = true
+
   }
   if(node.data.nodeType==='SERVICE'){
     getSerDe(node.data.id).then(res=>{
@@ -1445,6 +1484,9 @@ function getList() {
       console.log(a)
       a.nodes.forEach(item=>{
         item.type = 'special'
+        if(item.id==='2'&&item.data){
+          tableDataCanEnd.value = item.data.parameters
+        }
       })
       nodes.value = a.nodes
       edges.value = a.edges