diff --git a/frontend/apps/allin-ssl/src/views/settings/components/channel/WebhookChannelModel.tsx b/frontend/apps/allin-ssl/src/views/settings/components/channel/WebhookChannelModel.tsx
index ba85590..1e7ae1d 100644
--- a/frontend/apps/allin-ssl/src/views/settings/components/channel/WebhookChannelModel.tsx
+++ b/frontend/apps/allin-ssl/src/views/settings/components/channel/WebhookChannelModel.tsx
@@ -65,6 +65,19 @@ export default defineComponent({
 		return () => (
 			
 		)
 	},
diff --git a/frontend/apps/allin-ssl/src/views/settings/components/channel/WecomChannelModel.tsx b/frontend/apps/allin-ssl/src/views/settings/components/channel/WecomChannelModel.tsx
new file mode 100644
index 0000000..a1e29b9
--- /dev/null
+++ b/frontend/apps/allin-ssl/src/views/settings/components/channel/WecomChannelModel.tsx
@@ -0,0 +1,94 @@
+import { useForm, useModalHooks } from '@baota/naive-ui/hooks'
+import { useError } from '@baota/hooks/error'
+import { useWecomChannelFormController } from './useController'
+import { useStore } from '@settings/useStore'
+
+import type { ReportWecom, ReportType } from '@/types/setting'
+
+/**
+ * 企业微信通知渠道表单组件
+ */
+export default defineComponent({
+	name: 'WecomChannelModel',
+	props: {
+		data: {
+			type: Object as PropType
 | null>,
+			default: () => null,
+		},
+	},
+	setup(props: { data: ReportType | null }) {
+		const { handleError } = useError()
+		const { confirm } = useModalHooks()
+		const { fetchNotifyChannels } = useStore()
+		const { config, rules, wecomChannelForm, submitForm } = useWecomChannelFormController()
+
+		if (props.data) {
+			const { name, config } = props.data
+			wecomChannelForm.value = {
+				name,
+				...config,
+			}
+		}
+		// 使用表单hooks
+		const {
+			component: WecomForm,
+			example,
+			data,
+		} = useForm({
+			config,
+			defaultValue: wecomChannelForm,
+			rules,
+		})
+
+		// 关联确认按钮
+		confirm(async (close) => {
+			try {
+				const { name, ...other } = data.value
+				await example.value?.validate()
+				const res = await submitForm(
+					{
+						type: 'workwx',
+						name: name || '',
+						config: other,
+					},
+					example,
+					props.data?.id,
+				)
+
+				fetchNotifyChannels()
+				if (res) close()
+			} catch (error) {
+				handleError(error)
+			}
+		})
+
+		return () => (
+			
+		)
+	},
+})
diff --git a/frontend/apps/allin-ssl/src/views/settings/components/channel/useController.tsx b/frontend/apps/allin-ssl/src/views/settings/components/channel/useController.tsx
index 2c23a48..ca56f97 100644
--- a/frontend/apps/allin-ssl/src/views/settings/components/channel/useController.tsx
+++ b/frontend/apps/allin-ssl/src/views/settings/components/channel/useController.tsx
@@ -3,13 +3,21 @@ import { useFormHooks, useLoadingMask } from '@baota/naive-ui/hooks'
 import { useError } from '@baota/hooks/error'
 import { $t } from '@locales/index'
 import { useStore } from '@settings/useStore'
-import type { ReportMail, ReportFeishu, ReportWebhook, ReportDingtalk, AddReportParams } from '@/types/setting'
+import type {
+	ReportMail,
+	ReportFeishu,
+	ReportWebhook,
+	ReportDingtalk,
+	ReportWecom,
+	AddReportParams,
+} from '@/types/setting'
 
 const {
 	emailChannelForm,
 	feishuChannelForm,
 	webhookChannelForm,
 	dingtalkChannelForm,
+	wecomChannelForm,
 	addReportChannel,
 	updateReportChannel,
 } = useStore()
@@ -359,3 +367,100 @@ export const useDingtalkChannelFormController = () => {
 		submitForm,
 	}
 }
+
+/**
+ * 企业微信通知渠道表单控制器
+ * @function useWecomChannelFormController
+ * @description 提供企业微信通知渠道表单的配置、规则和提交方法
+ * @returns {object} 返回表单相关配置、规则和方法
+ */
+export const useWecomChannelFormController = () => {
+	const { open: openLoad, close: closeLoad } = useLoadingMask({ text: $t('t_0_1746667592819') })
+	/**
+	 * 表单验证规则
+	 * @type {FormRules}
+	 */
+	const rules: FormRules = {
+		name: {
+			required: true,
+			trigger: ['input', 'blur'],
+			message: $t('t_25_1746773349596'),
+		},
+		url: {
+			required: true,
+			trigger: ['input', 'blur'],
+			message: '请输入企业微信webhook地址',
+		},
+	}
+
+	/**
+	 * 表单配置
+	 * @type {ComputedRef}
+	 * @description 生成企业微信通知渠道表单的字段配置
+	 */
+	const config = computed(() => [
+		useFormInput($t('t_2_1745289353944'), 'name'),
+		useFormInput('企业微信WebHook地址', 'url'),
+		useFormTextarea(
+			'推送数据格式',
+			'data',
+			{
+				placeholder: `请输入企业微信推送数据格式,支持模板变量 __subject__ 和 __body__
+
+示例格式:
+{
+  "msgtype": "news",
+  "news": {
+    "articles": [
+      {
+        "title": "__subject__",
+        "description": "__body__。",
+        "url": "https://allinssl.com/",
+        "picurl": "https://allinssl.com/logo.svg"
+      }
+    ]
+  }
+}`,
+				rows: 12,
+			},
+			{ showRequireMark: false },
+		),
+	])
+
+	/**
+	 * 提交表单
+	 * @async
+	 * @function submitForm
+	 * @description 验证并提交企业微信通知渠道表单
+	 * @param {any} params - 表单参数
+	 * @param {Ref} formRef - 表单实例引用
+	 * @returns {Promise} 提交成功返回true,失败返回false
+	 */
+	const submitForm = async (
+		{ config, ...other }: AddReportParams,
+		formRef: Ref,
+		id?: number,
+	) => {
+		try {
+			openLoad()
+			if (id) {
+				await updateReportChannel({ id, config: JSON.stringify(config), ...other })
+			} else {
+				await addReportChannel({ config: JSON.stringify(config), ...other })
+			}
+			return true
+		} catch (error) {
+			handleError(error)
+			return false
+		} finally {
+			closeLoad()
+		}
+	}
+
+	return {
+		config,
+		rules,
+		wecomChannelForm,
+		submitForm,
+	}
+}
diff --git a/frontend/apps/allin-ssl/src/views/settings/components/notificationSettings.tsx b/frontend/apps/allin-ssl/src/views/settings/components/notificationSettings.tsx
index 249ecc1..87d74ef 100644
--- a/frontend/apps/allin-ssl/src/views/settings/components/notificationSettings.tsx
+++ b/frontend/apps/allin-ssl/src/views/settings/components/notificationSettings.tsx
@@ -16,6 +16,7 @@ export default defineComponent({
 			openAddFeishuChannelModal,
 			openAddWebhookChannelModal,
 			openAddDingtalkChannelModal,
+			openAddWecomChannelModal,
 			editChannelConfig,
 			testChannelConfig,
 			confirmDeleteChannel,
@@ -64,6 +65,12 @@ export default defineComponent({
 						{$t('t_1_1746676859550')}
 					
 				)
+			} else if (type === 'workwx') {
+				return (
+