create.config.ts
4.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import { SMSServiceProviderEnum, SMSServiceProviderNameEnum } from '../../../enum/form';
import { SendSMSFieldsEnum, SendSMSFieldsNameEnum } from '../../../enum/formField/external';
import { FormSchema } from '/@/components/Form';
import { useI18n } from '/@/hooks/web/useI18n';
const { t } = useI18n();
export const formSchemas: FormSchema[] = [
  {
    field: SendSMSFieldsEnum.NUMBERS_TO_TEMPLATE,
    label: t(SendSMSFieldsNameEnum.NUMBERS_TO_TEMPLATE),
    component: 'Input',
    required: true,
    helpMessage:
      'Comma separated Phone Numbers, use ${metadataKey} for value from metadata, $[messageKey] for value from message body',
    componentProps: {
      placeholder: `请输入${t(SendSMSFieldsNameEnum.NUMBERS_TO_TEMPLATE)}`,
    },
  },
  {
    field: SendSMSFieldsEnum.SMS_MESSAGE_TEMPLATE,
    label: t(SendSMSFieldsNameEnum.SMS_MESSAGE_TEMPLATE),
    component: 'InputTextArea',
    required: true,
    helpMessage:
      'Hint: use ${metadataKey} for value from metadata, $[messageKey] for value from message body',
    componentProps: {
      placeholder: `请输入${t(SendSMSFieldsNameEnum.SMS_MESSAGE_TEMPLATE)}`,
    },
  },
  {
    field: SendSMSFieldsEnum.USE_SYSTEM_SMS_SETTINGS,
    label: '',
    component: 'Checkbox',
    renderComponentContent: () => ({
      default: () => t(SendSMSFieldsNameEnum.USE_SYSTEM_SMS_SETTINGS),
    }),
  },
  {
    field: SendSMSFieldsEnum.TYPE,
    label: t(SendSMSFieldsNameEnum.TYPE),
    component: 'Select',
    required: true,
    ifShow: ({ model }) => !model[SendSMSFieldsEnum.USE_SYSTEM_SMS_SETTINGS],
    componentProps: {
      options: Object.keys(SMSServiceProviderEnum).map((value) => ({
        label: SMSServiceProviderNameEnum[value],
        value,
      })),
      getPopupContainer: () => document.body,
      placeholder: `请选择${t(SendSMSFieldsNameEnum.TYPE)}`,
    },
  },
  {
    field: SendSMSFieldsEnum.NUMBER_FROM,
    label: t(SendSMSFieldsNameEnum.NUMBER_FROM),
    component: 'Input',
    required: true,
    helpMessage: `Phone Number in E.164 format/Phone Number's SID/Messaging Service SID, ex. +19995550123/PNXXX/MGXXX`,
    ifShow: ({ model }) =>
      !model[SendSMSFieldsEnum.USE_SYSTEM_SMS_SETTINGS] &&
      model[SendSMSFieldsEnum.TYPE] === SMSServiceProviderEnum.TWILIO,
    componentProps: {
      placeholder: `请输入${t(SendSMSFieldsNameEnum.NUMBER_FROM)}`,
    },
  },
  {
    field: SendSMSFieldsEnum.ACCOUNT_SID,
    label: t(SendSMSFieldsNameEnum.ACCOUNT_SID),
    component: 'Input',
    required: true,
    ifShow: ({ model }) =>
      !model[SendSMSFieldsEnum.USE_SYSTEM_SMS_SETTINGS] &&
      model[SendSMSFieldsEnum.TYPE] === SMSServiceProviderEnum.TWILIO,
    componentProps: {
      placeholder: `请选择${t(SendSMSFieldsNameEnum.ACCOUNT_SID)}`,
    },
  },
  {
    field: SendSMSFieldsEnum.ACCOUNT_TOKEN,
    label: t(SendSMSFieldsNameEnum.ACCOUNT_TOKEN),
    component: 'Input',
    required: true,
    ifShow: ({ model }) =>
      !model[SendSMSFieldsEnum.USE_SYSTEM_SMS_SETTINGS] &&
      model[SendSMSFieldsEnum.TYPE] === SMSServiceProviderEnum.TWILIO,
    componentProps: {
      placeholder: `请选择${t(SendSMSFieldsNameEnum.ACCOUNT_TOKEN)}`,
    },
  },
  {
    field: SendSMSFieldsEnum.ACCESS_KEY_ID,
    label: t(SendSMSFieldsNameEnum.ACCESS_KEY_ID),
    component: 'Input',
    required: true,
    ifShow: ({ model }) =>
      !model[SendSMSFieldsEnum.USE_SYSTEM_SMS_SETTINGS] &&
      model[SendSMSFieldsEnum.TYPE] === SMSServiceProviderEnum.AWS_SNS,
    componentProps: {
      placeholder: `请选择${t(SendSMSFieldsNameEnum.ACCESS_KEY_ID)}`,
    },
  },
  {
    field: SendSMSFieldsEnum.SECRET_ACCESS_KEY,
    label: t(SendSMSFieldsNameEnum.SECRET_ACCESS_KEY),
    component: 'InputPassword',
    required: true,
    ifShow: ({ model }) =>
      !model[SendSMSFieldsEnum.USE_SYSTEM_SMS_SETTINGS] &&
      model[SendSMSFieldsEnum.TYPE] === SMSServiceProviderEnum.AWS_SNS,
    componentProps: {
      placeholder: `请选择${t(SendSMSFieldsNameEnum.SECRET_ACCESS_KEY)}`,
    },
  },
  {
    field: SendSMSFieldsEnum.REGION,
    label: t(SendSMSFieldsNameEnum.REGION),
    component: 'InputPassword',
    required: true,
    ifShow: ({ model }) =>
      !model[SendSMSFieldsEnum.USE_SYSTEM_SMS_SETTINGS] &&
      model[SendSMSFieldsEnum.TYPE] === SMSServiceProviderEnum.AWS_SNS,
    componentProps: {
      placeholder: `请选择${t(SendSMSFieldsNameEnum.REGION)}`,
    },
  },
];