@@ -47,6 +47,7 @@ const notificationInfo = ref<NotificationConf>({
4747// 各通知类型的名称字典
4848const notificationTypeNames: { [key : string ]: string } = {
4949 wechat: t (' notification.wechat.name' ),
50+ feishu: t (' notification.feishu.name' ),
5051 wechatclawbot: t (' notification.wechatclawbot.name' ),
5152 telegram: t (' notification.telegram.name' ),
5253 qqbot: t (' notification.qqbot.name' ),
@@ -417,6 +418,8 @@ const getIcon = computed(() => {
417418 return getLogoUrl (' wechat' )
418419 case ' wechatclawbot' :
419420 return getLogoUrl (' wechatclawbot' )
421+ case ' feishu' :
422+ return getLogoUrl (' feishu' )
420423 case ' telegram' :
421424 return getLogoUrl (' telegram' )
422425 case ' qqbot' :
@@ -777,6 +780,84 @@ watch(notificationInfoDialog, value => {
777780 </VCard >
778781 </VCol >
779782 </VRow >
783+ <VRow v-else-if =" notificationInfo .type == ' feishu' " >
784+ <VCol cols="12" md="6">
785+ <VTextField
786+ v-model =" notificationInfo .name "
787+ :label =" t (' notification.name' )"
788+ :placeholder =" t (' notification.name' )"
789+ :hint =" t (' notification.nameHint' )"
790+ persistent-hint
791+ prepend-inner-icon="mdi-label"
792+ />
793+ </VCol >
794+ <VCol cols="12" md="6">
795+ <VTextField
796+ v-model =" notificationInfo .config .FEISHU_APP_ID "
797+ :label =" t (' notification.feishu.appId' )"
798+ :hint =" t (' notification.feishu.appIdHint' )"
799+ persistent-hint
800+ prepend-inner-icon="mdi-application"
801+ />
802+ </VCol >
803+ <VCol cols="12" md="6">
804+ <VTextField
805+ v-model =" notificationInfo .config .FEISHU_APP_SECRET "
806+ :label =" t (' notification.feishu.appSecret' )"
807+ :hint =" t (' notification.feishu.appSecretHint' )"
808+ persistent-hint
809+ prepend-inner-icon="mdi-key"
810+ />
811+ </VCol >
812+ <VCol cols="12" md="6">
813+ <VTextField
814+ v-model =" notificationInfo .config .FEISHU_OPEN_ID "
815+ :label =" t (' notification.feishu.openId' )"
816+ :placeholder =" t (' notification.feishu.openIdPlaceholder' )"
817+ :hint =" t (' notification.feishu.openIdHint' )"
818+ persistent-hint
819+ prepend-inner-icon="mdi-account"
820+ />
821+ </VCol >
822+ <VCol cols="12" md="6">
823+ <VTextField
824+ v-model =" notificationInfo .config .FEISHU_CHAT_ID "
825+ :label =" t (' notification.feishu.chatId' )"
826+ :placeholder =" t (' notification.feishu.chatIdPlaceholder' )"
827+ :hint =" t (' notification.feishu.chatIdHint' )"
828+ persistent-hint
829+ prepend-inner-icon="mdi-chat-processing"
830+ />
831+ </VCol >
832+ <VCol cols="12" md="6">
833+ <VTextField
834+ v-model =" notificationInfo .config .FEISHU_ADMINS "
835+ :label =" t (' notification.feishu.admins' )"
836+ :placeholder =" t (' notification.feishu.adminsPlaceholder' )"
837+ :hint =" t (' notification.feishu.adminsHint' )"
838+ persistent-hint
839+ prepend-inner-icon="mdi-account-supervisor"
840+ />
841+ </VCol >
842+ <VCol cols="12" md="6">
843+ <VTextField
844+ v-model =" notificationInfo .config .FEISHU_VERIFICATION_TOKEN "
845+ :label =" t (' notification.feishu.verificationToken' )"
846+ :hint =" t (' notification.feishu.verificationTokenHint' )"
847+ persistent-hint
848+ prepend-inner-icon="mdi-shield-key"
849+ />
850+ </VCol >
851+ <VCol cols="12" md="6">
852+ <VTextField
853+ v-model =" notificationInfo .config .FEISHU_ENCRYPT_KEY "
854+ :label =" t (' notification.feishu.encryptKey' )"
855+ :hint =" t (' notification.feishu.encryptKeyHint' )"
856+ persistent-hint
857+ prepend-inner-icon="mdi-lock"
858+ />
859+ </VCol >
860+ </VRow >
780861 <VRow v-else-if =" notificationInfo .type == ' telegram' " >
781862 <VCol cols="12" md="6">
782863 <VTextField
0 commit comments