DrawingSetting.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import React, { useEffect, useState } from 'react';
  2. import { Card, Spin } from '@douyinfe/semi-ui';
  3. import SettingsDrawing from '../../pages/Setting/Drawing/SettingsDrawing.js';
  4. import { API, showError } from '../../helpers';
  5. const DrawingSetting = () => {
  6. let [inputs, setInputs] = useState({
  7. /* 绘图设置 */
  8. DrawingEnabled: false,
  9. MjNotifyEnabled: false,
  10. MjAccountFilterEnabled: false,
  11. MjForwardUrlEnabled: false,
  12. MjModeClearEnabled: false,
  13. MjActionCheckSuccessEnabled: false,
  14. });
  15. let [loading, setLoading] = useState(false);
  16. const getOptions = async () => {
  17. const res = await API.get('/api/option/');
  18. const { success, message, data } = res.data;
  19. if (success) {
  20. let newInputs = {};
  21. data.forEach((item) => {
  22. if (item.key.endsWith('Enabled')) {
  23. newInputs[item.key] = item.value === 'true' ? true : false;
  24. } else {
  25. newInputs[item.key] = item.value;
  26. }
  27. });
  28. setInputs(newInputs);
  29. } else {
  30. showError(message);
  31. }
  32. };
  33. async function onRefresh() {
  34. try {
  35. setLoading(true);
  36. await getOptions();
  37. } catch (error) {
  38. showError('刷新失败');
  39. } finally {
  40. setLoading(false);
  41. }
  42. }
  43. useEffect(() => {
  44. onRefresh();
  45. }, []);
  46. return (
  47. <>
  48. <Spin spinning={loading} size='large'>
  49. {/* 绘图设置 */}
  50. <Card style={{ marginTop: '10px' }}>
  51. <SettingsDrawing options={inputs} refresh={onRefresh} />
  52. </Card>
  53. </Spin>
  54. </>
  55. );
  56. };
  57. export default DrawingSetting;