import React, { useState } from 'react';
import { Tabs, Row, Col, Card, Divider, Input, Form, Space, Select, Modal, message, Switch, } from 'antd';
import { get } from 'oak-domain/lib/utils/lodash';
import Styles from './web.module.less';
function Ali(props) {
const [open, setModal] = useState(false);
const [smsIndex, setSmsIndex] = useState('');
const [labelType, setLabelType] = useState('');
const { sms, setValue, addItem, removeItem, cleanKey } = props;
return (
阿里云云短信配置
0)}
onEdit={(targetKey, action) => {
if (action === 'add') {
addItem('', sms.length);
}
else {
removeItem('', parseInt(targetKey, 10));
}
}} items={sms.length > 0
? sms.map((ele, idx) => ({
key: `${idx}`,
label: `短信${idx + 1}`,
children: (
<>
setValue(`${idx}.accessKeyId`, e.target.value)}/>
>
<>
setValue(`${idx}.accessKeySecret`, e.target.value)}/>
>
<>
setValue(`${idx}.endpoint`, e.target.value)}/>
>
<>
setValue(`${idx}.defaultSignName`, e.target.value)}/>
>
<>
setValue(`${idx}.defaultSignName`, e.target.value)}/>
>
{/*
0)}
onEdit={(
targetKey: any,
action: 'add' | 'remove'
) => {
if (action === 'add') {
setSmsIndex(`${idx}`);
setModal(true);
} else {
cleanKey(
`${idx}.templates`,
targetKey
);
}
}}
items={
Object.keys(
ele.templates || {}
).length > 0
? Object.keys(
ele.templates
).map((name, idx) => {
const template =
ele.templates[
name
];
return {
key: `${name}`,
label: `${name}`,
children: (
<>
setValue(
`${idx}.templates.${name}.signName`,
e
.target
.value
)
}
/>
>
<>
setValue(
`${idx}.templates.${name}.code`,
e
.target
.value
)
}
/>
>
),
};
})
: []
}
>
*/}
),
}))
: []}>
{
setModal(false);
setLabelType('');
}} onOk={() => {
if (!labelType) {
message.error({
content: '请输入标签名称',
});
return;
}
const templates = get(sms, `${smsIndex}.templates`) || {};
if (Object.keys(templates).includes(labelType)) {
message.error({
content: '已存在相同的标签名,请重新输入',
});
return;
}
setValue(`${smsIndex}.templates.${labelType}`, {});
setModal(false);
setLabelType('');
setSmsIndex('');
}} open={open} cancelText="取消" okText="确定" destroyOnClose={true}>
<>
setLabelType(e.target.value.replace(/[0-9-.]/g, ''))}/>
>
);
}
function Tencent(props) {
const [open, setModal] = useState(false);
const [smsIndex, setSmsIndex] = useState('');
const [labelType, setLabelType] = useState('');
const { sms, setValue, addItem, removeItem, cleanKey } = props;
return (
腾讯云短信配置
0)}
onEdit={(targetKey, action) => {
if (action === 'add') {
addItem('', sms.length);
}
else {
removeItem('', parseInt(targetKey, 10));
}
}} items={sms.length > 0
? sms.map((ele, idx) => ({
key: `${idx}`,
label: `短信${idx + 1}`,
children: (
<>
setValue(`${idx}.secretId`, e.target.value)}/>
>
<>
setValue(`${idx}.secretKey`, e.target.value)}/>
>
<>
setValue(`${idx}.smsSdkAppId`, e.target.value)}/>
>
<>
setValue(`${idx}.region`, e.target.value)}/>
>
<>
setValue(`${idx}.endpoint`, e.target.value)}/>
>
<>
setValue(`${idx}.defaultSignName`, e.target.value)}/>
>
0)}
onEdit={(targetKey, action) => {
if (action === 'add') {
setSmsIndex(`${idx}`);
setModal(true);
}
else {
cleanKey(`${idx}.templates`, targetKey);
}
}} items={Object.keys(ele.templates || {}).length > 0
? Object.keys(ele.templates).map((name, idx) => {
const template = ele.templates[name];
return {
key: `${name}`,
label: `${name}`,
children: (
<>
setValue(`${idx}.templates.${name}.signName`, e
.target
.value)}/>
>
<>
setValue(`${idx}.templates.${name}.code`, e
.target
.value)}/>
>
),
};
})
: []}>
),
}))
: []}>
{
setModal(false);
setLabelType('');
}} onOk={() => {
if (!labelType) {
message.error({
content: '请输入标签名称',
});
return;
}
const templates = get(sms, `${smsIndex}.templates`) || {};
if (Object.keys(templates).includes(labelType)) {
message.error({
content: '已存在相同的标签名,请重新输入',
});
return;
}
setValue(`${smsIndex}.templates.${labelType}`, {});
setModal(false);
setLabelType('');
setSmsIndex('');
}} open={open} cancelText="取消" okText="确定" destroyOnClose={true}>
<>
setLabelType(e.target.value.replace(/[0-9-.]/g, ''))}/>
>
);
}
function CTYun(props) {
const [open, setModal] = useState(false);
const [smsIndex, setSmsIndex] = useState('');
const [labelType, setLabelType] = useState('');
const { sms, setValue, addItem, removeItem, cleanKey } = props;
return (
天翼云云短信配置
0)}
onEdit={(targetKey, action) => {
if (action === 'add') {
addItem('', sms.length);
}
else {
removeItem('', parseInt(targetKey, 10));
}
}} items={sms.length > 0
? sms.map((ele, idx) => ({
key: `${idx}`,
label: `短信${idx + 1}`,
children: (
<>
setValue(`${idx}.accessKey`, e.target.value)}/>
>
<>
setValue(`${idx}.securityKey`, e.target.value)}/>
>
<>
setValue(`${idx}.endpoint`, e.target.value)}/>
>
<>
setValue(`${idx}.defaultSignName`, e.target.value)}/>
>
{/*
0)}
onEdit={(
targetKey: any,
action: 'add' | 'remove'
) => {
if (action === 'add') {
setSmsIndex(`${idx}`);
setModal(true);
} else {
cleanKey(
`${idx}.templates`,
targetKey
);
}
}}
items={
Object.keys(
ele.templates || {}
).length > 0
? Object.keys(
ele.templates
).map((name, idx) => {
const template =
ele.templates[
name
];
return {
key: `${name}`,
label: `${name}`,
children: (
<>
setValue(
`${idx}.templates.${name}.signName`,
e
.target
.value
)
}
/>
>
<>
setValue(
`${idx}.templates.${name}.code`,
e
.target
.value
)
}
/>
>
),
};
})
: []
}
>
*/}
),
}))
: []}>
{
setModal(false);
setLabelType('');
}} onOk={() => {
if (!labelType) {
message.error({
content: '请输入标签名称',
});
return;
}
const templates = get(sms, `${smsIndex}.templates`) || {};
if (Object.keys(templates).includes(labelType)) {
message.error({
content: '已存在相同的标签名,请重新输入',
});
return;
}
setValue(`${smsIndex}.templates.${labelType}`, {});
setModal(false);
setLabelType('');
setSmsIndex('');
}} open={open} cancelText="取消" okText="确定" destroyOnClose={true}>
<>
setLabelType(e.target.value.replace(/[0-9-.]/g, ''))}/>
>
);
}
export default function Sms(props) {
const { sms, setValue, removeItem, cleanKey } = props;
const { ali, tencent, ctyun } = sms;
return (
每种均可配置一个,相应的服务所使用的帐号请准确对应
短信配置
<>
setValue(`mockSend`, checked)}/>
>
<>
setValue(`defaultCodeTemplateName`, e.target.value)}/>
{
const val = e.target.value;
if (val) {
setValue(`defaultCodeDuration`, Number(val));
}
else {
setValue(`defaultCodeDuration`, val);
}
}} suffix="分钟"/>
setValue(`tencent.${path}`, value)} removeItem={(path, index) => removeItem(`tencent`, index)} addItem={(path, index) => setValue(`tencent.${index}`, {})} cleanKey={(path, key) => cleanKey(`tencent.${path}`, key)}/>
setValue(`ali.${path}`, value)} removeItem={(path, index) => removeItem(`ali`, index)} addItem={(path, index) => setValue(`ali.${index}`, {})} cleanKey={(path, key) => cleanKey(`ali.${path}`, key)}/>
setValue(`ctyun.${path}`, value)} removeItem={(path, index) => removeItem(`ctyun`, index)} addItem={(path, index) => setValue(`ctyun.${index}`, {})} cleanKey={(path, key) => cleanKey(`ctyun.${path}`, key)}/>
);
}