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, ' ') - } 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