Browse Source

mp:优化【菜单】其它类型的处理

YunaiV 2 years ago
parent
commit
8600214532

+ 6 - 0
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/framework/mp/core/util/MpUtils.java

@@ -72,6 +72,12 @@ public class MpUtils {
                 group = ScanCodeWaitMsgButtonGroup.class;
                 validateMessage(validator, messageType, button); // 需要额外校验回复的消息格式
                 break;
+            case WxConsts.MenuButtonType.SCANCODE_PUSH: // 不用校验,直接 return 即可
+            case WxConsts.MenuButtonType.PIC_SYSPHOTO:
+            case WxConsts.MenuButtonType.PIC_PHOTO_OR_ALBUM:
+            case WxConsts.MenuButtonType.PIC_WEIXIN:
+            case WxConsts.MenuButtonType.LOCATION_SELECT:
+                return;
             default:
                 log.error("[validateButton][未知的按钮({})]", button);
                 throw new IllegalArgumentException("不支持的按钮类型:" + type);

+ 16 - 1
yudao-ui-admin/src/views/mp/components/wx-msg/main.vue

@@ -39,9 +39,24 @@
               <div v-else-if="item.type === 'event' && item.event === 'VIEW'">
                 <el-tag size="mini">点击菜单链接</el-tag>【{{ item.eventKey }}】
               </div>
-              <div v-else-if="item.type === 'event' && item.event === 'scancode_waitmsg'"> <!-- TODO 芋艿:需要测试下 -->
+              <div v-else-if="item.type === 'event' && item.event === 'scancode_waitmsg'">
                 <el-tag size="mini">扫码结果</el-tag>【{{ item.eventKey }}】
               </div>
+              <div v-else-if="item.type === 'event' && item.event === 'scancode_push'">
+                <el-tag size="mini">扫码结果</el-tag>【{{ item.eventKey }}】
+              </div>
+              <div v-else-if="item.type === 'event' && item.event === 'pic_sysphoto'">
+                <el-tag size="mini">系统拍照发图</el-tag>
+              </div>
+              <div v-else-if="item.type === 'event' && item.event === 'pic_photo_or_album'">
+                <el-tag size="mini">拍照或者相册</el-tag>
+              </div>
+              <div v-else-if="item.type === 'event' && item.event === 'pic_weixin'">
+                <el-tag size="mini">微信相册</el-tag>
+              </div>
+              <div v-else-if="item.type === 'event' && item.event === 'location_select'">
+                <el-tag size="mini">选择地理位置</el-tag>
+              </div>
               <div v-else-if="item.type === 'event'">
                 <el-tag type="danger" size="mini">未知事件类型</el-tag>
               </div>

+ 1 - 1
yudao-ui-admin/src/views/mp/menu/index.vue

@@ -438,7 +438,7 @@ export default {
         if (!item.children || item.children.length <= 0) {
           return;
         }
-        item.children = [];
+        menu.children = [];
         item.children.forEach(subItem => {
           menu.children.push(this.convertMenuForm(subItem))
         })

+ 16 - 1
yudao-ui-admin/src/views/mp/message/index.vue

@@ -63,9 +63,24 @@
           <div v-else-if="scope.row.type === 'event' && scope.row.event === 'VIEW'">
             <el-tag size="mini">点击菜单链接</el-tag>【{{ scope.row.eventKey }}】
           </div>
-          <div v-else-if="scope.row.type === 'event' && scope.row.event === 'scancode_waitmsg'"> <!-- TODO 芋艿:需要测试下 -->
+          <div v-else-if="scope.row.type === 'event' && scope.row.event === 'scancode_waitmsg'">
             <el-tag size="mini">扫码结果</el-tag>【{{ scope.row.eventKey }}】
           </div>
+          <div v-else-if="scope.row.type === 'event' && scope.row.event === 'scancode_push'">
+            <el-tag size="mini">扫码结果</el-tag>【{{ scope.row.eventKey }}】
+          </div>
+          <div v-else-if="scope.row.type === 'event' && scope.row.event === 'pic_sysphoto'">
+            <el-tag size="mini">系统拍照发图</el-tag>
+          </div>
+          <div v-else-if="scope.row.type === 'event' && scope.row.event === 'pic_photo_or_album'">
+            <el-tag size="mini">拍照或者相册</el-tag>
+          </div>
+          <div v-else-if="scope.row.type === 'event' && scope.row.event === 'pic_weixin'">
+            <el-tag size="mini">微信相册</el-tag>
+          </div>
+          <div v-else-if="scope.row.type === 'event' && scope.row.event === 'location_select'">
+            <el-tag size="mini">选择地理位置</el-tag>
+          </div>
           <div v-else-if="scope.row.type === 'event'">
             <el-tag type="danger" size="mini">未知事件类型</el-tag>
           </div>