From 4922677215fb3e9a772d38be1aa2f10687b83fcb Mon Sep 17 00:00:00 2001 From: Zhuym Date: Tue, 28 Jan 2025 17:31:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0label.json=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=9F=A5=E8=AF=A2=E5=8F=82=E6=95=B0=E5=92=8C=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E6=A0=BC=E5=BC=8F=E4=BB=A5=E6=94=AF=E6=8C=81=E6=96=B0?= =?UTF-8?q?=E7=9A=84API=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/label.json | 7 +- favicon.png | Bin 0 -> 20617 bytes index.html | 399 ++++++++++++++++++++++++++++++++-------------- 3 files changed, 286 insertions(+), 120 deletions(-) create mode 100644 favicon.png diff --git a/config/label.json b/config/label.json index 0bdcad9..e9f9195 100644 --- a/config/label.json +++ b/config/label.json @@ -8,10 +8,11 @@ }, "endpoint": "/qr", "method": "GET", + "queryParams": ["qrcode"], "fields": [ { "id": "qrcode", - "label": "二维码内容", + "label": "SGWCMAID0000...", "type": "text", "required": true } @@ -26,6 +27,7 @@ }, "endpoint": "/ticket", "method": "GET", + "queryParams": ["userid"], "fields": [ { "id": "userid", @@ -44,6 +46,7 @@ }, "endpoint": "/mapstock", "method": "GET", + "queryParams": ["userid"], "fields": [ { "id": "userid", @@ -62,6 +65,7 @@ }, "endpoint": "/unlock", "method": "GET", + "queryParams": ["userid"], "fields": [ { "id": "userid", @@ -80,6 +84,7 @@ }, "endpoint": "/music", "method": "POST", + "requestFormat": "json", "fields": [ { "id": "userId", diff --git a/favicon.png b/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8b6ba7ab7d5eb204ca21c785d585813d7d75b081 GIT binary patch literal 20617 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 ZAMCww`OU=0WR>hOu1-HV-rwQN`47~c$VC7E literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 163274a..7a8f114 100644 --- a/index.html +++ b/index.html @@ -1,35 +1,11 @@ - - - - - - - - - - - - - - - TsumugiBoshi|纺星 - - - - + - + @@ -39,16 +15,15 @@ - - + + @@ -248,7 +266,8 @@ Alert, Menu, IconButton, - Link + Link, + Collapse } = MaterialUI; // 创建主题 @@ -262,9 +281,16 @@ ]; // 通用表单组件 - const DynamicForm = ({ formConfig, onSubmit }) => { + const DynamicForm = React.forwardRef(({ formConfig, onSubmit }, ref) => { const [formData, setFormData] = React.useState({}); + // 暴露更新表单数据的方法给父组件 + React.useImperativeHandle(ref, () => ({ + updateField: (fieldId, value) => { + handleChange(fieldId, value); + } + })); + const handleChange = (fieldId, value) => { const keys = fieldId.split('.'); setFormData(prev => { @@ -340,7 +366,7 @@ ); - }; + }); function App() { const [tabValue, setTabValue] = React.useState(0); @@ -372,6 +398,11 @@ const [snackbarOpen, setSnackbarOpen] = React.useState(false); const [snackbarMessage, setSnackbarMessage] = React.useState(''); const [menuAnchorEl, setMenuAnchorEl] = React.useState(null); + const [logs, setLogs] = React.useState( + JSON.parse(localStorage.getItem('apiLogs') || '[]') + ); + const [isLogExpanded, setIsLogExpanded] = React.useState(false); + const formRefs = React.useRef({}); // Cookie操作函数 function setCookie(name, value, days) { @@ -390,19 +421,76 @@ if (userId) setCookie('userId', userId, 7); }, [userId]); - const handleApiCall = async (endpoint, method = 'GET', body = null) => { + const saveLog = (endpoint, request, response) => { + const newLog = { + timestamp: Date.now(), + endpoint, + request, + response, + date: new Date().toLocaleString() + }; + + const updatedLogs = [newLog, ...logs].slice(0, 50); // 只保留最近50条记录 + setLogs(updatedLogs); + localStorage.setItem('apiLogs', JSON.stringify(updatedLogs)); + }; + + const handleApiCall = async (endpoint, method = 'GET', formData = null, config) => { try { const options = { method, headers: { 'Content-Type': 'application/json' } }; - if (body) options.body = JSON.stringify(body); + + let url = `${apiBase}${endpoint}`; - const res = await fetch(`${apiBase}${endpoint}`, options); + // 处理GET请求参数 + if (method === 'GET' && config.queryParams) { + const params = new URLSearchParams(); + config.queryParams.forEach(param => { + if (formData[param]) params.append(param, formData[param]); + }); + url += `?${params.toString()}`; + } + + // 处理POST请求体 + if (method === 'POST') { + if (config.requestFormat === 'json') { + options.body = JSON.stringify(formData); + } + } + + const res = await fetch(url, options); const data = await res.json(); setResponse(JSON.stringify(data, null, 2)); + + // 保存日志 + saveLog(endpoint, formData, data); + + // 处理登录响应 + if (config.endpoint === '/qr' && data.userId) { + setUserId(data.userId.toString()); + setCookie('userId', data.userId.toString(), 7); + + // 遍历所有表单配置,更新包含userid/userId字段的表单 + Object.entries(formConfigs).forEach(([key, formConfig]) => { + const userIdField = formConfig.fields.find( + field => field.id.toLowerCase().includes('userid') + ); + if (userIdField && formRefs.current[key]) { + formRefs.current[key].updateField(userIdField.id, data.userId.toString()); + } + }); + } + + // 根据状态设置提示消息 + setSnackbarMessage(data.info || '操作成功'); + setSnackbarOpen(true); + } catch (error) { setResponse(`Error: ${error.message}`); + setSnackbarMessage(`错误: ${error.message}`); + setSnackbarOpen(true); } }; @@ -468,7 +556,7 @@ )) ); - setSnackbarMessage('后端URL已删除'); + setSnackbarMessage('后端已删除'); setSnackbarOpen(true); }; @@ -558,11 +646,13 @@ tabValue === config.tab.index && ( formRefs.current[key] = el} formConfig={config} onSubmit={(data) => handleApiCall( config.endpoint, config.method, - config.method === 'POST' ? data : null + data, + config )} /> ) @@ -585,7 +675,7 @@ )} - {/* 后端选择器 */} + {/* 移动后端选择器到底部 */} 后端设置 @@ -642,7 +732,78 @@ + + {/* 日志卡片 */} + +
setIsLogExpanded(!isLogExpanded)} + > + + 📝 API调用日志 + + + + {isLogExpanded ? 'expand_less' : 'expand_more'} + + +
+ +
+ {logs.map((log, index) => ( +
+ + {log.date} - {log.endpoint} + + + 请求: {JSON.stringify(log.request, null, 2)} + + + 响应: {JSON.stringify(log.response, null, 2)} + +
+ ))} +
+
+
+ + {/* 添加自定义后端的对话框 */} + + 添加自定义后端 + + setNewBackend(prev => ({...prev, label: e.target.value}))} + /> + setNewBackend(prev => ({...prev, value: e.target.value}))} + /> + + + + + + + + {/* 提示消息 */} + + + {snackbarMessage} + + ); }