From 80deba0c2dcffd9e6b6f07815c7c52199309ce42 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 23 六月 2025 17:36:03 +0800
Subject: [PATCH] 2025-06-23

---
 src/views/interface/workspace/request/index.jsx |   35 +++++++++++++++++++++++------------
 1 files changed, 23 insertions(+), 12 deletions(-)

diff --git a/src/views/interface/workspace/request/index.jsx b/src/views/interface/workspace/request/index.jsx
index 33a114d..edce864 100644
--- a/src/views/interface/workspace/request/index.jsx
+++ b/src/views/interface/workspace/request/index.jsx
@@ -1,7 +1,7 @@
 import React, {Component} from 'react'
 import { fromJS } from 'immutable'
 import md5 from 'md5'
-import { Input, Select, Button, Tabs, Radio, Modal } from 'antd'
+import { Input, Select, Button, Tabs, Radio, Modal, Spin } from 'antd'
 
 import Api from '@/views/interface/api'
 import Utils from '@/utils/utils.js'
@@ -18,7 +18,8 @@
     active: 'raw',
     body: null,
     response: null,
-    status: ''
+    status: '',
+    loading: false
   }
 
   UNSAFE_componentWillMount() {
@@ -94,8 +95,9 @@
     } else if (config.active === 'raw') {
       if (config.raw) {
         try {
-          raws = JSON.parse(config.raw)
-        } catch {
+          raws = config.raw.replace(/@userid@/ig, sessionStorage.getItem('UserID') || '').replace(/@LoginUID@/ig, sessionStorage.getItem('LoginUID') || '')
+          raws = JSON.parse(raws)
+        } catch (e) {
           Modal.error({
             title: '鍙傛暟鏍煎紡閿欒锛屽繀椤讳负JSON鏍煎紡锛�'
           })
@@ -145,15 +147,18 @@
       n = JSON.stringify(n)
     }
 
+    this.setState({loading: true})
+
     if (/logon/ig.test(url)) {
       Api.dologon(url, config.method, header, n).then(res => {
         this.handleResponse(res)
       }, (err) => {
         this.handleResponse(err)
       })
-    } else if (/dostars/ig.test(url)) {
+    } else if (/dostars|exstars/ig.test(url)) {
       if (n) {
         n = JSON.parse(n)
+
         n = this.encryptParam(n)
         n = JSON.stringify(n)
       }
@@ -180,7 +185,7 @@
 
         body = body.replace(/\n/ig, '<br/>')
         body = body.replace(/\s/ig, '&nbsp;')
-      } catch {
+      } catch (e) {
         body = null
       }
     }
@@ -193,17 +198,17 @@
       body = `璇锋眰寮傚父${status === 'Network Error' ? '锛屽彲鑳藉師鍥狅細1銆佺綉缁滃紓甯革紱2銆佹帴鍙h法鍩熴��' : '锛�'}`
     }
 
-    this.setState({response: res, body, status})
+    this.setState({response: res, body, status, loading: false})
   }
 
   encryptParam (param) {
-    param.nonc = Utils.getuuid()
+    param.nonc = param.nonc || Utils.getuuid()
       
     let keys = Object.keys(param).sort()
     let values = ''
     keys.forEach(key => {
-      if (key.toLowerCase() === 'rduri') return
-      if (key.toLowerCase() === 't' || key.toLowerCase() === 'sign' || param[key] === undefined) {
+      if (key.toLowerCase() === 'rduri' || key === 't') return
+      if (key.toLowerCase() === 'sign' || param[key] === undefined) {
         delete param[key]
         return
       }
@@ -217,8 +222,12 @@
         values += key + param[key]
       }
     })
+
     param.sign = md5(values)
-    param.t = new Date().getTime()
+    param.t = param.t || new Date().getTime()
+
+    window.mkInfo(values)
+    window.mkInfo(param.sign)
 
     return param
   }
@@ -237,7 +246,7 @@
   }
 
   render () {
-    const { active, config, response, body, status } = this.state
+    const { active, config, response, body, status, loading } = this.state
 
     let hasParam = config.params.filter(item => item.selected && item.key).length > 0
     let hasHeader = config.headers.filter(item => item.selected && item.key).length
@@ -276,6 +285,7 @@
                 <Radio value={'formData'}>formData</Radio>
                 <Radio value={'raw'}>raw</Radio>
               </Radio.Group>
+              {active === 'raw' ? <span style={{float: 'right', color: '#a5a5a5', fontSize: '13px'}}>娉細浣跨敤@userid@銆丂loginuid@鏃跺皢鑷姩鏇挎崲銆�</span> : null}
             </div>
             <div className={'body-content ' + (active === 'none' ? 'show' : '')}>
               <div className="no-body">This request does not have a body</div>
@@ -297,6 +307,7 @@
             <span className="empty">Hit the Send button to get a response.</span>
           </div>}
           <div style={{paddingLeft: '3px', paddingTop: '3px'}} dangerouslySetInnerHTML={{__html: body}}></div>
+          {loading ? <div className="pending"><Spin size="large"/></div> : null}
         </div>
       </div>
     )

--
Gitblit v1.8.0