import { useState, useEffect } from "react"; import { Row, Form, Input, Image, Button, Tabs, message, Switch, Checkbox, Slider, Space, Select, } from "antd"; import { appConfig, system } from "../../../api/index"; import { UploadImageButton } from "../../../compenents"; import { useSelector, useDispatch } from "react-redux"; import type { TabsProps } from "antd"; import type { CheckboxChangeEvent } from "antd/es/checkbox"; import { SystemConfigStoreInterface, saveConfigAction, } from "../../../store/system/systemConfigSlice"; import logoIcon from "../../../assets/logo.png"; const SystemConfigPage = () => { const dispatch = useDispatch(); const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [logo, setLogo] = useState(""); const [thumb, setThumb] = useState(""); const [avatar, setAvatar] = useState(""); const [tabKey, setTabKey] = useState(1); const [s3Service, setS3Service] = useState(""); const [nameChecked, setNameChecked] = useState(false); const [emailChecked, setEmailChecked] = useState(false); const [idCardchecked, setIdCardChecked] = useState(false); const memberDefaultAvatar = useSelector( (state: any) => state.systemConfig.value.memberDefaultAvatar ); useEffect(() => { getDetail(); }, [tabKey]); const getDetail = () => { appConfig.appConfig().then((res: any) => { let configData = res.data; for (let i = 0; i < configData.length; i++) { if (configData[i].key_name === "system.name") { form.setFieldsValue({ "system.name": configData[i].key_value, }); } else if (configData[i].key_name === "system.logo") { form.setFieldsValue({ "system.logo": configData[i].key_value, }); if (configData[i].key_value !== "") { setLogo(configData[i].key_value); } else { setLogo(logoIcon); } } else if (configData[i].key_name === "system.api_url") { form.setFieldsValue({ "system.api_url": configData[i].key_value, }); } else if (configData[i].key_name === "system.api_url") { form.setFieldsValue({ "system.api_url": configData[i].key_value, }); } else if (configData[i].key_name === "system.pc_url") { form.setFieldsValue({ "system.pc_url": configData[i].key_value, }); } else if (configData[i].key_name === "system.h5_url") { form.setFieldsValue({ "system.h5_url": configData[i].key_value, }); } else if (configData[i].key_name === "player.poster") { setThumb(configData[i].key_value); form.setFieldsValue({ "player.poster": configData[i].key_value, }); } else if (configData[i].key_name === "player.disabled_drag") { let value = 0; if (configData[i].key_value === "1") { value = 1; } form.setFieldsValue({ "player.disabled_drag": value, }); } else if ( configData[i].key_name === "player.is_enabled_bullet_secret" ) { let value = 0; if (configData[i].key_value === "1") { value = 1; } form.setFieldsValue({ "player.is_enabled_bullet_secret": value, }); } else if (configData[i].key_name === "player.bullet_secret_text") { if (configData[i].key_value.indexOf("{name}") != -1) { setNameChecked(true); } if (configData[i].key_value.indexOf("{email}") != -1) { setEmailChecked(true); } if (configData[i].key_value.indexOf("{idCard}") != -1) { setIdCardChecked(true); } form.setFieldsValue({ "player.bullet_secret_text": configData[i].key_value, }); } else if (configData[i].key_name === "player.bullet_secret_color") { form.setFieldsValue({ "player.bullet_secret_color": configData[i].key_value, }); } else if (configData[i].key_name === "player.bullet_secret_opacity") { let value = 0; if (configData[i].key_value !== "") { value = Number(configData[i].key_value) * 100; } form.setFieldsValue({ "player.bullet_secret_opacity": value, }); } else if (configData[i].key_name === "system.pc_index_footer_msg") { form.setFieldsValue({ "system.pc_index_footer_msg": configData[i].key_value, }); } else if (configData[i].key_name === "member.default_avatar") { if (configData[i].key_value !== "") { setAvatar(configData[i].key_value); } else { setAvatar(memberDefaultAvatar); } form.setFieldsValue({ "member.default_avatar": configData[i].key_value, }); } else if (configData[i].key_name === "s3.service") { form.setFieldsValue({ "s3.service": configData[i].key_value, }); setS3Service(configData[i].key_value); } else if (configData[i].key_name === "s3.access_key") { form.setFieldsValue({ "s3.access_key": configData[i].key_value, }); } else if (configData[i].key_name === "s3.secret_key") { form.setFieldsValue({ "s3.secret_key": configData[i].key_value, }); } else if (configData[i].key_name === "s3.bucket") { form.setFieldsValue({ "s3.bucket": configData[i].key_value, }); } else if (configData[i].key_name === "s3.region") { form.setFieldsValue({ "s3.region": configData[i].key_value, }); } else if (configData[i].key_name === "s3.endpoint") { form.setFieldsValue({ "s3.endpoint": configData[i].key_value, }); } else if (configData[i].key_name === "s3.domain") { form.setFieldsValue({ "s3.domain": configData[i].key_value, }); } else if (configData[i].key_name === "ldap.enabled") { let value = 0; if (configData[i].key_value === "1") { value = 1; } form.setFieldsValue({ "ldap.enabled": value, }); } else if (configData[i].key_name === "ldap.url") { form.setFieldsValue({ "ldap.url": configData[i].key_value, }); } else if (configData[i].key_name === "ldap.admin_user") { form.setFieldsValue({ "ldap.admin_user": configData[i].key_value, }); } else if (configData[i].key_name === "ldap.admin_pass") { form.setFieldsValue({ "ldap.admin_pass": configData[i].key_value, }); } else if (configData[i].key_name === "ldap.base_dn") { form.setFieldsValue({ "ldap.base_dn": configData[i].key_value, }); } } }); }; const onSwitchChange = (checked: boolean) => { if (checked) { form.setFieldsValue({ "player.is_enabled_bullet_secret": 1 }); } else { form.setFieldsValue({ "player.is_enabled_bullet_secret": 0 }); } }; const onDragChange = (checked: boolean) => { if (checked) { form.setFieldsValue({ "player.disabled_drag": 1 }); } else { form.setFieldsValue({ "player.disabled_drag": 0 }); } }; const addName = (e: CheckboxChangeEvent) => { var value = form.getFieldValue("player.bullet_secret_text"); if (e.target.checked) { value += "{name}"; } else { value = value.replace("{name}", ""); } form.setFieldsValue({ "player.bullet_secret_text": value, }); setNameChecked(!nameChecked); }; const addEmail = (e: CheckboxChangeEvent) => { var value = form.getFieldValue("player.bullet_secret_text"); if (e.target.checked) { value += "{email}"; } else { value = value.replace("{email}", ""); } form.setFieldsValue({ "player.bullet_secret_text": value, }); setEmailChecked(!emailChecked); }; const addIdCard = (e: CheckboxChangeEvent) => { var value = form.getFieldValue("player.bullet_secret_text"); if (e.target.checked) { value += "{idCard}"; } else { value = value.replace("{idCard}", ""); } form.setFieldsValue({ "player.bullet_secret_text": value, }); setIdCardChecked(!idCardchecked); }; const onFinish = (values: any) => { if (loading) { return; } setLoading(true); values["player.bullet_secret_opacity"] = values["player.bullet_secret_opacity"] / 100; appConfig.saveAppConfig(values).then((res: any) => { message.success("保存成功!"); setLoading(false); getDetail(); getSystemConfig(); }); }; const getSystemConfig = async () => { system.getSystemConfig().then((res: any) => { let data: SystemConfigStoreInterface = { "ldap-enabled": res.data["ldap-enabled"], systemName: res.data["system.name"], systemLogo: res.data["system.logo"], systemApiUrl: res.data["system.api_url"], systemPcUrl: res.data["system.pc_url"], systemH5Url: res.data["system.h5_url"], memberDefaultAvatar: res.data["member.default_avatar"], courseDefaultThumbs: res.data["default.course_thumbs"], departments: res.data["departments"], resourceCategories: res.data["resource_categories"], }; dispatch(saveConfigAction(data)); }); }; const onFinishFailed = (errorInfo: any) => { console.log("Failed:", errorInfo); }; const onLDAPChange = (checked: boolean) => { if (checked) { form.setFieldsValue({ "ldap.enabled": 1 }); } else { form.setFieldsValue({ "ldap.enabled": 0 }); } }; const items: TabsProps["items"] = [ { key: "1", label: `网站设置`, children: (