diff --git a/eiam-console/src/main/console-fe/src/constant.ts b/eiam-console/src/main/console-fe/src/constant.ts index c0bec3d2..37ccfcff 100644 --- a/eiam-console/src/main/console-fe/src/constant.ts +++ b/eiam-console/src/main/console-fe/src/constant.ts @@ -51,6 +51,15 @@ export enum GEO_IP_PROVIDER { DEFAULT = 'default', } + +export enum EMAIL_PROVIDER { + CUSTOMIZE = 'customize', + ALIYUN = 'aliyun', + TENCENT = 'tencent', + NET_EASE = 'netease', +} + + /** * 应用类型 */ @@ -65,12 +74,9 @@ export enum AppType { * App Protocol */ export enum AppProtocolType { - saml2 = 'saml2', oidc = 'oidc', - cas = 'cas', jwt = 'jwt', form = 'form', - oauth2 = 'oauth2', } export enum PolicyEffectType { diff --git a/eiam-console/src/main/console-fe/src/pages/setting/Message/components/MailProvider/MailProvider.tsx b/eiam-console/src/main/console-fe/src/pages/setting/Message/components/MailProvider/MailProvider.tsx index 318af229..56ed12e6 100644 --- a/eiam-console/src/main/console-fe/src/pages/setting/Message/components/MailProvider/MailProvider.tsx +++ b/eiam-console/src/main/console-fe/src/pages/setting/Message/components/MailProvider/MailProvider.tsx @@ -16,16 +16,17 @@ * along with this program. If not, see . */ import { Container } from '@/components/Container'; -import { SMS_PROVIDER } from '@/constant'; +import { EMAIL_PROVIDER } from '@/constant'; import { disableMailProvider, getMailProviderConfig, saveMailProvider } from '../../service'; import { EyeInvisibleOutlined, EyeTwoTone, WarningOutlined } from '@ant-design/icons'; import { ProCard, ProForm, + ProFormDependency, ProFormDigit, ProFormRadio, - ProFormSelect, + ProFormSegmented, ProFormSwitch, ProFormText, } from '@ant-design/pro-components'; @@ -63,12 +64,11 @@ const tailFormItemLayout = { }, }, }; -const defaultProvider = 'customize'; + export default (props: { visible: boolean }) => { const [form] = Form.useForm(); const { message, modal } = App.useApp(); const { visible } = props; - const [provider, setProvider] = useState(defaultProvider); const [loading, setLoading] = useState(false); const [enabled, setEnabled] = useState(false); const intl = useIntl(); @@ -79,12 +79,9 @@ export default (props: { visible: boolean }) => { const { success, result } = await getMailProviderConfig(); if (success && result && result.enabled) { setEnabled(result.enabled); - setProvider(result.provider); form.setFieldsValue({ ...result, }); - } else { - form.setFieldsValue({ provider: provider }); } setLoading(false); return; @@ -126,11 +123,7 @@ export default (props: { visible: boolean }) => { if (success) { setEnabled(checked); message.success(intl.formatMessage({ id: 'app.operation_success' })); - setProvider(defaultProvider); form.resetFields(); - form.setFieldsValue({ - provider: defaultProvider, - }); return; } }, @@ -148,16 +141,15 @@ export default (props: { visible: boolean }) => { { form.resetFields(); - form.setFieldsValue({ provider }); }} {...layout} layout={'horizontal'} labelAlign={'right'} submitter={{ - render: (p, dom) => { + render: (_p, dom) => { return ( {dom} @@ -194,14 +186,41 @@ export default (props: { visible: boolean }) => { } }} > - { + return [ + { + value: EMAIL_PROVIDER.CUSTOMIZE, + label: intl.formatMessage({ + id: 'pages.setting.message.mail_provider.provider.customize', + }), + }, + { + value: EMAIL_PROVIDER.ALIYUN, + label: intl.formatMessage({ + id: 'pages.setting.message.mail_provider.provider.aliyun', + }), + }, + { + value: EMAIL_PROVIDER.TENCENT, + label: intl.formatMessage({ + id: 'pages.setting.message.mail_provider.provider.tencent', + }), + }, + { + value: EMAIL_PROVIDER.NET_EASE, + label: intl.formatMessage({ + id: 'pages.setting.message.mail_provider.provider.net_ease', + }), + }, + ]; + }} fieldProps={{ - onChange: async (value: string) => { + onChange: async (value) => { setLoading(true); - setProvider(value); form.resetFields(); form.setFieldsValue({ provider: value, @@ -216,138 +235,120 @@ export default (props: { visible: boolean }) => { setLoading(false); }, }} - options={[ - { - value: 'customize', - label: intl.formatMessage({ - id: 'pages.setting.message.mail_provider.provider.customize', - }), - }, - { - value: SMS_PROVIDER.ALIYUN, - label: intl.formatMessage({ - id: 'pages.setting.message.mail_provider.provider.aliyun', - }), - }, - { - value: SMS_PROVIDER.TENCENT, - label: intl.formatMessage({ - id: 'pages.setting.message.mail_provider.provider.tencent', - }), - }, - { - value: SMS_PROVIDER.NET_EASE, - label: intl.formatMessage({ - id: 'pages.setting.message.mail_provider.provider.net_ease', - }), - }, - ]} - /> - {provider === 'customize' && ( - <> - - - - - )} - + + {({ provider }) => { + return ( + <> + {provider === EMAIL_PROVIDER.CUSTOMIZE && ( + <> + + + + + )} + + + ); + }} + . */ import { SMS_PROVIDER } from '@/constant'; -import { Language } from '../../constant'; +import { Language } from '@/pages/setting/Storage/constant'; import { disableSmsProvider, getSmsProviderConfig, @@ -33,7 +33,7 @@ import { ModalForm, ProCard, ProForm, - ProFormSelect, + ProFormSegmented, ProFormSwitch, ProFormText, } from '@ant-design/pro-components'; @@ -84,7 +84,7 @@ const TestModal = (props: { modalProps={{ onCancel: onCancel, destroyOnClose: true }} labelAlign={'left'} labelCol={{ span: 4 }} - wrapperCol={{ span: 19 }} + wrapperCol={{ span: 20 }} key={data.type} title={intl.formatMessage({ id: 'pages.setting.message.sms_provider.send_scene.modal.from' })} initialValues={{ type: data.type, name: data.name, content: data.content }} @@ -376,14 +376,14 @@ export default (props: { visible: boolean }) => { } }} > - { + onChange: async (value) => { setLoading(true); - setProvider(value); + setProvider(value as string); //清理 form.resetFields(); form.setFieldsValue({ provider: value }); @@ -394,7 +394,7 @@ export default (props: { visible: boolean }) => { form.setFieldsValue({ ...result.config }); setLanguage(result.language); //获取模板 - await fetchSmsTemplateList(result.language, value); + await fetchSmsTemplateList(result.language, value as string); result.templates?.forEach((i: { type: any; code: any }) => { editorFormRef.current?.setFieldsValue({ [i.type]: { code: i.code } }); }); @@ -402,31 +402,33 @@ export default (props: { visible: boolean }) => { //已配置和选中配置不一致,走初始化流程 if (success && result && result.provider !== value) { setLanguage(Language.ZH); - await fetchSmsTemplateList(Language.ZH, value); + await fetchSmsTemplateList(Language.ZH, value as string); } setLoading(false); }, }} - options={[ - { - value: SMS_PROVIDER.ALIYUN, - label: intl.formatMessage({ - id: 'pages.setting.message.sms_provider.provider.aliyun', - }), - }, - { - value: SMS_PROVIDER.TENCENT, - label: intl.formatMessage({ - id: 'pages.setting.message.sms_provider.provider.tencent', - }), - }, - { - value: SMS_PROVIDER.QI_NIU, - label: intl.formatMessage({ - id: 'pages.setting.message.sms_provider.provider.qi_niu', - }), - }, - ]} + request={async () => { + return [ + { + value: SMS_PROVIDER.ALIYUN, + label: intl.formatMessage({ + id: 'pages.setting.message.sms_provider.provider.aliyun', + }), + }, + { + value: SMS_PROVIDER.TENCENT, + label: intl.formatMessage({ + id: 'pages.setting.message.sms_provider.provider.tencent', + }), + }, + { + value: SMS_PROVIDER.QI_NIU, + label: intl.formatMessage({ + id: 'pages.setting.message.sms_provider.provider.qi_niu', + }), + }, + ]; + }} /> {provider === SMS_PROVIDER.ALIYUN && } {provider === SMS_PROVIDER.TENCENT && } diff --git a/eiam-console/src/main/console-fe/src/pages/setting/Message/locales/zh-CN.ts b/eiam-console/src/main/console-fe/src/pages/setting/Message/locales/zh-CN.ts index 91400a9f..1836cf33 100644 --- a/eiam-console/src/main/console-fe/src/pages/setting/Message/locales/zh-CN.ts +++ b/eiam-console/src/main/console-fe/src/pages/setting/Message/locales/zh-CN.ts @@ -78,6 +78,23 @@ export default { '请输入阿里云短信签名', 'pages.setting.message.sms_provider.provider.aliyun.sign_name.rule.0.message': '阿里云短信签名为必填项', + 'pages.setting.storage_provider.provider.s3': 'S3', + 'pages.setting.storage_provider.provider.s3.endpoint': 'S3域名', + 'pages.setting.storage_provider.provider.s3.endpoint.placeholder': '请输入 S3域名', + 'pages.setting.storage_provider.provider.s3.endpoint.rule.0.message': 'S3域名为必填项', + 'pages.setting.storage_provider.provider.s3.domain': '外链域名', + 'pages.setting.storage_provider.provider.s3.domain.placeholder': '请输入S3 外链域名', + 'pages.setting.storage_provider.provider.s3.domain.rule.0.message': 'S3 外链域名为必填项', + 'pages.setting.storage_provider.provider.s3.access_key_id.placeholder': '请输入S3 AccessKeyId', + 'pages.setting.storage_provider.provider.s3.access_key_id.rule.0.message': + 'S3 AccessKeyId为必填项', + 'pages.setting.storage_provider.provider.s3.secret_access_key.placeholder': + '请输入S3 SecretAccessKey', + 'pages.setting.storage_provider.provider.s3.secret_access_key.rule.0.message': + 'S3 SecretAccessKey为必填项', + 'pages.setting.storage_provider.provider.s3.region.placeholder': '请输入S3 Region', + 'pages.setting.storage_provider.provider.s3.bucket.placeholder': '请输入S3 Bucket', + 'pages.setting.storage_provider.provider.s3.bucket.rule.0.message': 'S3 Bucket为必填项', 'pages.setting.message.sms_provider.provider.tencent': '腾讯云', 'pages.setting.message.sms_provider.provider.tencent.region': '地域', 'pages.setting.message.sms_provider.provider.tencent.region.placeholder': '请选择地域配置',