Просмотр исходного кода

feat: 阿里云语音模板变量

feat:阿里云语音模板变量
hear 3 лет назад
Родитель
Сommit
a399ceab20

+ 1 - 3
src/pages/notice/Template/Detail/doc/AliyunSms.tsx

@@ -26,9 +26,7 @@ const AliyunSms = () => {
         <h2> 4、签名</h2>
         <div> 用于短信内容签名信息显示,需在阿里云短信进行配置。</div>
         <h2> 5、变量属性</h2>
-        <div>
-          阿里云短信模板可支持变量,当前阿里云的接口可获取模板内容,但不能自动提取其中的变量,所以需要在当前页面手动设置与阿里云短信模板中一样的变量,否则会导致发送异常。
-        </div>
+        <div>需要在当前页面手动设置与阿里云短信模板中一样的变量,否则会导致发送异常。</div>
       </div>
     </div>
   );

+ 10 - 6
src/pages/notice/Template/Detail/doc/AliyunVoice.tsx

@@ -18,19 +18,23 @@ const AliyunVoice = () => {
       <div>
         <h2>1、绑定配置</h2>
         <div> 使用固定的通知配置发送此通知模板</div>
-        <h2> 2、模板ID</h2>
+        <h2>2、类型</h2>
+        <div> 阿里云语音通知类型,当类型为验证码类型时可配置变量。</div>
+        <h2> 3、模板ID</h2>
         <div> 阿里云语音对每一条语音通知分配的唯一ID标识</div>
-        <h2> 3、被叫号码</h2>
+        <h2> 4、被叫号码</h2>
         <div> 当前仅支持国内手机号,此处若不填,则在模板调试和配置告警通知时手动填写。</div>
         <div>若您使用的语音通知文件为公共模式外呼,则该参数值不填。</div>
         <div>若您使用的语音通知文件为专属模式外呼,则必须传入已购买的号码,仅支持一个号码。</div>
-        <h2> 4、被叫显号</h2>
+        <h2> 5、被叫显号</h2>
         <div> 用户呼叫号码显示,必须是在阿里云购买的号码。</div>
-        <h2> 5、播放次数</h2>
+        <h2> 6、播放次数</h2>
         <div> 最多可播放3次</div>
-        <h2> 6、变量属性</h2>
+        <h2> 7、模板内容</h2>
         <div>
-          阿里云语音模板可支持变量,但当前阿里云未提供相关语音模板内容接口,所以需要在当前页面手动设置与阿里云模板中一样的变量,否则会导致发送异常。
+          仅当通知类型为验证码类型时可进行配置,变量标识需要阿里云模板中的标识一致,支持填写带变量的动态模板。
+          变量填写规范示例:${'{name}'}
+          。填写动态参数后,可对变量的名称、类型、格式进行配置,以便告警通知是填写。
         </div>
       </div>
     </div>

+ 48 - 1
src/pages/notice/Template/Detail/index.tsx

@@ -139,6 +139,12 @@ const Detail = observer(() => {
                   '变量格式:${name};\n 示例:尊敬的${name},${time}有设备触发告警,请注意处理',
               };
             }
+            // if (id === 'voice') {
+            //   const type = field.query('template.*.templateType').value();
+            //   console.log(type,'111111')
+            //   field.hidden = false
+            //   field.disabled = false
+            // }
           });
           onFieldValueChange('provider', (field, form1) => {
             const value = field.value;
@@ -409,6 +415,16 @@ const Detail = observer(() => {
               //   break;
             }
           });
+          onFieldValueChange('template.templateType', (field, form1) => {
+            const value = (field as Field).value;
+            // console.log(value,'11111')
+            if (value === 'tts') {
+              form1.setFieldState('template.message', (state1) => {
+                state1.disabled = false;
+                state1.hidden = false;
+              });
+            }
+          });
         },
       }),
     [id],
@@ -996,6 +1012,23 @@ const Detail = observer(() => {
                 'x-visible': id === 'voice',
                 type: 'void',
                 properties: {
+                  templateType: {
+                    title: '类型',
+                    required: true,
+                    'x-component': 'Select',
+                    'x-decorator': 'FormItem',
+                    'x-decorator-props': {
+                      tooltip: '语音验证码类型可配置变量,并且只支持数字和英文字母',
+                    },
+
+                    'x-component-props': {
+                      placeholder: '请选择类型',
+                    },
+                    enum: [
+                      { label: '语音通知', value: 'voice' },
+                      { label: '语音验证码', value: 'tts' },
+                    ],
+                  },
                   layout: {
                     type: 'void',
                     'x-decorator': 'FormGrid',
@@ -1004,7 +1037,7 @@ const Detail = observer(() => {
                       minColumns: 2,
                     },
                     properties: {
-                      ttsCode: {
+                      templateCode: {
                         title: '模版ID',
                         'x-component': 'Input',
                         'x-decorator': 'FormItem',
@@ -1017,6 +1050,20 @@ const Detail = observer(() => {
                           placeholder: '请输入模版ID',
                         },
                       },
+                      ttsCode: {
+                        title: '模版ID',
+                        'x-component': 'Input',
+                        'x-decorator': 'FormItem',
+                        'x-hidden': true,
+                        'x-reactions': {
+                          dependencies: ['.templateCode'],
+                          fulfill: {
+                            state: {
+                              value: '{{$deps[0]}}',
+                            },
+                          },
+                        },
+                      },
                       calledNumber: {
                         title: '被叫号码',
                         'x-component': 'Input',