UNPKG

@c78/node-red-contrib-wecom-group-chat-bot

Version:
104 lines (93 loc) 4.97 kB
<script type="text/html" data-template-name="wecom-text"> <div class="form-row"> <label for="node-input-name"><i class="fa fa-tag"></i> 名称</label> <input type="text" id="node-input-name" placeholder="节点名称"> </div> <div class="form-row"> <label for="node-input-server"><i class="fa fa-cog"></i> 机器人配置</label> <input type="text" id="node-input-server"> </div> <div class="form-row"> <label for="node-input-msgType"><i class="fa fa-comment"></i> 消息类型</label> <select id="node-input-msgType"> <option value="text">文本消息</option> <option value="markdown">Markdown</option> <option value="markdown_v2">Markdown V2</option> </select> </div> <div class="form-row"> <label for="node-input-mentionedList"><i class="fa fa-at"></i> 提醒userid</label> <input type="text" id="node-input-mentionedList" placeholder="提醒的成员userid,多个用逗号分隔, 留空由mentioned_list输入"> </div> <div class="form-row"> <label for="node-input-mentionedMobileList"><i class="fa fa-mobile"></i> 提醒手机</label> <input type="text" id="node-input-mentionedMobileList" placeholder="提醒的成员手机号,多个用逗号分隔,留空由mentioned_mobile_list输入"> </div> </script> <script type="text/markdown" data-help-name="wecom-text"> 企业微信文本消息节点 ### 配置项 - **名称**:节点名称 - **机器人配置**:选择企业微信机器人配置节点 - **消息类型**:选择要发送的消息类型 - 文本消息:支持发送普通文本,可以@群成员 - Markdown:支持发送 Markdown 格式的消息,支持在 content 中使用 `<@userid>` 扩展语法来@群成员 - Markdown V2:支持发送 Markdown V2 格式的消息,提供更丰富的格式选项(不支持@群成员功能) - **提醒userid**:要提醒的用户ID列表,用逗号分隔(仅文本消息类型可用) - **提醒手机**:要提醒的手机号列表,用逗号分隔(仅文本消息类型可用) ### 输入 : msg.payload (string) : 要发送的消息内容(必需) : *msg.msgType* (string) : 动态覆盖配置的消息类型(可选,支持:text、markdown、markdown_v2) : *msg.mentioned_list* (array) : 动态提醒的用户ID列表(可选,仅文本消息类型有效) : *msg.mentioned_mobile_list* (array) : 动态提醒的手机号列表(可选,仅文本消息类型有效) ### 输出 : msg.payload (object) : 成功时输出原始消息,失败时包含错误信息 : msg.payload.error (boolean) : true 表示发生错误 : msg.payload.message (string) : 错误信息 : msg.payload.originalPayload (string) : 原始消息内容 ### 注意事项 - 提醒功能(@群成员)在文本消息类型下通过配置的提醒列表实现 - Markdown 类型支持在 content 中使用 `<@userid>` 扩展语法来@群成员 - Markdown V2 类型不支持@群成员功能 - 可以通过 `msg.msgType` 动态覆盖配置的消息类型 - 如果提醒列表留空,将使用前一个节点的 `msg.mentioned_list` 和 `msg.mentioned_mobile_list` - 即使发送失败,节点也会继续输出消息流,错误信息会包含在 payload 中 </script> <script type="text/javascript"> RED.nodes.registerType('wecom-text', { category: '企业微信', color: '#27B4F1', defaults: { name: { value: "" }, server: { value: "", type: "wecom-config", required: true }, msgType: { value: "text" }, mentionedList: { value: "" }, mentionedMobileList: { value: "" } }, inputs: 1, outputs: 1, icon: "font-awesome/fa-commenting-o", label: function() { return this.name || "企业微信文本"; }, oneditprepare: function() { // 初始化时检查消息类型 var msgType = $("#node-input-msgType").val(); if (msgType !== 'text') { $("#node-input-mentionedList").closest('.form-row').hide(); $("#node-input-mentionedMobileList").closest('.form-row').hide(); } // 监听消息类型变化 $("#node-input-msgType").change(function() { var selectedType = $(this).val(); if (selectedType === 'text') { $("#node-input-mentionedList").closest('.form-row').show(); $("#node-input-mentionedMobileList").closest('.form-row').show(); } else { $("#node-input-mentionedList").closest('.form-row').hide(); $("#node-input-mentionedMobileList").closest('.form-row').hide(); } }); } }); </script>