From 5c92ec83033441f6a9973710942601104517dc98 Mon Sep 17 00:00:00 2001
From: xingyu <xingyu4j@vip.qq.com>
Date: Sat, 12 Aug 2023 17:19:02 +0800
Subject: [PATCH] perf: sms test

---
 .../system/mail/template/template.data.ts     |  3 +--
 .../system/sms/template/smsTemplate.data.ts   | 21 +++++++++++++++----
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/views/system/mail/template/template.data.ts b/src/views/system/mail/template/template.data.ts
index ca6038e..0da5a3a 100644
--- a/src/views/system/mail/template/template.data.ts
+++ b/src/views/system/mail/template/template.data.ts
@@ -170,9 +170,8 @@ export const formSchema: FormSchema[] = [
 ]
 
 // 发送邮件
-
 // 这里加上前缀 防止和表单其他字段重名
-export const keyPrefix = 'key$-'
+const keyPrefix = 'key$-'
 export const baseSendSchemas: FormSchema[] = [
   {
     field: 'code',
diff --git a/src/views/system/sms/template/smsTemplate.data.ts b/src/views/system/sms/template/smsTemplate.data.ts
index a49063b..27ab3e0 100644
--- a/src/views/system/sms/template/smsTemplate.data.ts
+++ b/src/views/system/sms/template/smsTemplate.data.ts
@@ -1,3 +1,5 @@
+import { h } from 'vue'
+import { ScrollContainer } from '@/components/Container'
 import type { BasicColumn, FormSchema } from '@/components/Table'
 import { useRender } from '@/components/Table'
 import { DICT_TYPE, getDictOptions } from '@/utils/dict'
@@ -171,6 +173,8 @@ export const formSchema: FormSchema[] = [
 ]
 
 // 发送短信
+// 这里加上前缀 防止和表单其他字段重名
+const keyPrefix = 'key$-'
 export const baseSendSchemas: FormSchema[] = [
   {
     field: 'content',
@@ -178,10 +182,19 @@ export const baseSendSchemas: FormSchema[] = [
     label: '模板内容 ',
     required: false,
     defaultValue: '',
-    componentProps: {
-      options: {
-        readonly: true,
-      },
+    render({ model }) {
+      let content: string = model.content
+      Object.keys(model).forEach((key) => {
+        if (!key.startsWith(keyPrefix))
+          return
+
+        const realKey = key.split(keyPrefix)[1]
+        content = content.replace(`{${realKey}}`, model[key])
+      })
+      return h(ScrollContainer, {
+        innerHTML: content,
+        style: { border: '1px solid #e8e8e8', borderRadius: '4px', padding: '10px' },
+      })
     },
   },
   {