chore
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -159,7 +159,10 @@
|
||||
<!-- 商品推荐 -->
|
||||
<diy-goods-recommend :value="item"></diy-goods-recommend>
|
||||
</template>
|
||||
|
||||
<template v-if="item.componentName == 'DiyRecommendCode'">
|
||||
<!-- 自定义推荐码组件 -->
|
||||
<diy-recommend-code :value="item"></diy-recommend-code>
|
||||
</template>
|
||||
<template v-if="item.componentName == 'GoodsBrand'">
|
||||
<!-- 商品品牌 -->
|
||||
<diy-goods-brand :value="item"></diy-goods-brand>
|
||||
@@ -261,22 +264,6 @@
|
||||
<diy-channel-list :value="item"></diy-channel-list>
|
||||
</template>
|
||||
|
||||
<!-- ✅ 我的邀请码 / 推荐码(商家 DIY 自由放置:
|
||||
1) 严格匹配:后端注册的 5 个常见名字
|
||||
2) 宽松匹配:componentName 包含 Recommend / Invite 关键字(不区分大小写)—— 解决后端注册名和前端数组不一致导致的"加了组件但页面不显示"问题
|
||||
后端只要把组件注册成任意含 Recommend 或 Invite 关键字的名字就能渲染出来,避免前端硬编码数组漏匹配 -->
|
||||
<template v-if="(function(cn){
|
||||
if (!cn) return false;
|
||||
var s = String(cn).toLowerCase();
|
||||
// 严格匹配
|
||||
if (['MyInviteCode','RecommendCode','Recommend','InviteCode','RecommendCodeDiy'].indexOf(cn) !== -1) return true;
|
||||
// 宽松匹配:含 recommend / invite 关键字
|
||||
if (s.indexOf('recommend') !== -1 || s.indexOf('invite') !== -1) return true;
|
||||
return false;
|
||||
})(item.componentName)">
|
||||
<components-recommend-diy :value="item"></components-recommend-diy>
|
||||
</template>
|
||||
|
||||
<!-- 自定义扩展组件 -->
|
||||
<diy-comp-extend :value="item"></diy-comp-extend>
|
||||
</view>
|
||||
@@ -286,15 +273,9 @@
|
||||
<script>
|
||||
// 组件组展示
|
||||
import DiyMinx from './minx.js'
|
||||
// ✅ 显式 import 我的邀请码 DIY 组件(同级文件,相对路径引入,不依赖 @ 别名)
|
||||
import ComponentsRecommendDiy from './components-recommend-diy.vue'
|
||||
|
||||
export default {
|
||||
name: 'diy-group',
|
||||
components: {
|
||||
// ✅ 显式注册:避免 easycom 没配置此目录时导致 "Unknown custom element"
|
||||
ComponentsRecommendDiy
|
||||
},
|
||||
props: {
|
||||
diyData: {
|
||||
type: Object
|
||||
@@ -358,21 +339,6 @@ export default {
|
||||
? JSON.parse(this.$store.state.diyGroupShowModule)
|
||||
: null;
|
||||
|
||||
// ✅ 调试日志:showModuleData 白名单如果存在,会严格过滤,推荐码组件没加进白名单就会被过滤掉 → 控制台能直接看到
|
||||
try {
|
||||
if (showModuleData && showModuleData.length) {
|
||||
console.log('[DIY-GROUP][diyDataArray] showModuleData 白名单 = ', JSON.stringify(showModuleData));
|
||||
var hasRecommendInWhite = false;
|
||||
showModuleData.forEach(function(n){
|
||||
var s = String(n || '').toLowerCase();
|
||||
if (s.indexOf('recommend') !== -1 || s.indexOf('invite') !== -1) hasRecommendInWhite = true;
|
||||
});
|
||||
if (!hasRecommendInWhite) {
|
||||
console.warn('[DIY-GROUP][diyDataArray] ⚠️ 白名单 showModuleData 里没有推荐码/邀请码组件名,组件会被过滤掉不显示!请在后台 DIY 编辑器里的"显示模块"中勾选上该组件');
|
||||
}
|
||||
}
|
||||
} catch (e) {}
|
||||
|
||||
if (!showModuleData || !showModuleData.length) {
|
||||
return this.processedData || [];
|
||||
}
|
||||
@@ -381,25 +347,9 @@ export default {
|
||||
return [];
|
||||
}
|
||||
|
||||
// ✅ 关键修复:白名单过滤时,对推荐码组件也做宽松匹配(白名单里是 RecommendCode 但后端是 Recommend 也能过)
|
||||
// 之前严格 includes(item.componentName) 会漏掉大小写/命名不一致的情况
|
||||
var recKeys = ['myinvitecode','recommendcode','recommend','invitecode','recommendcodediy'];
|
||||
return (this.processedData || []).filter(item => {
|
||||
// 1) 严格命中白名单
|
||||
if (showModuleData.includes(item.componentName)) return true;
|
||||
// 2) 推荐码组件宽松命中:item 是推荐码类型 && 白名单里有任意推荐码关键字
|
||||
var itemName = String(item.componentName || '').toLowerCase();
|
||||
var isRecommendItem = (recKeys.indexOf(itemName) !== -1) || itemName.indexOf('recommend') !== -1 || itemName.indexOf('invite') !== -1;
|
||||
if (isRecommendItem) {
|
||||
var whiteHasRecommend = false;
|
||||
showModuleData.forEach(function(n){
|
||||
var s = String(n || '').toLowerCase();
|
||||
if (recKeys.indexOf(s) !== -1 || s.indexOf('recommend') !== -1 || s.indexOf('invite') !== -1) whiteHasRecommend = true;
|
||||
});
|
||||
if (whiteHasRecommend) return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
return (this.processedData || []).filter(item =>
|
||||
showModuleData.includes(item.componentName)
|
||||
);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -416,25 +366,7 @@ export default {
|
||||
this.processedData = [];
|
||||
return;
|
||||
}
|
||||
|
||||
// ✅ 调试日志:后台保存组件后,用户在控制台能看到 ALL componentName 列表
|
||||
// 方便定位:"后端加了组件但前端不显示" → 要么 componentName 没匹配,要么 showModuleData 过滤掉了
|
||||
try {
|
||||
const names = this.diyGlobalData.value.map(function(it){ return it && it.componentName ? it.componentName : '(no name)'; });
|
||||
console.log('[DIY-GROUP][processData] 所有DIY组件名列表 = ', JSON.stringify(names));
|
||||
// 进一步打印哪些是推荐码相关的
|
||||
var matched = [];
|
||||
var recommendKeys = ['myinvitecode','recommendcode','recommend','invitecode','recommendcodediy','recommend','invite'];
|
||||
this.diyGlobalData.value.forEach(function(it, idx){
|
||||
if (!it || !it.componentName) return;
|
||||
var s = String(it.componentName).toLowerCase();
|
||||
if (recommendKeys.indexOf(s) !== -1 || s.indexOf('recommend') !== -1 || s.indexOf('invite') !== -1) {
|
||||
matched.push('idx=' + idx + ', name=' + it.componentName);
|
||||
}
|
||||
});
|
||||
if (matched.length) console.log('[DIY-GROUP][processData] 命中推荐码/邀请码组件 = ', matched.join('; '));
|
||||
} catch (e) {}
|
||||
|
||||
|
||||
this.processedData = this.diyGlobalData.value.map((item, index) => {
|
||||
const newItem = this.$util.deepClone(item);
|
||||
|
||||
|
||||
17
components-diy/diy-recommend-code.vue
Normal file
17
components-diy/diy-recommend-code.vue
Normal file
@@ -0,0 +1,17 @@
|
||||
<template>
|
||||
<view data-component-name="diy-recommend-code">
|
||||
23q43214321432143243324
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// 图标展示
|
||||
import DiyMinx from './minx.js'
|
||||
export default {
|
||||
name: 'diy-recommend-code',
|
||||
mixins: [DiyMinx],
|
||||
computed: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -51,6 +51,7 @@
|
||||
"diy-pintuan": "view",
|
||||
"diy-presale": "view",
|
||||
"diy-quick-nav": "view",
|
||||
"diy-recommend-code": "view",
|
||||
"diy-rich-text": "view",
|
||||
"diy-rubik-cube": "view",
|
||||
"diy-search": "view",
|
||||
@@ -1294,6 +1295,7 @@
|
||||
"diy-pintuan": "view",
|
||||
"diy-presale": "view",
|
||||
"diy-quick-nav": "view",
|
||||
"diy-recommend-code": "view",
|
||||
"diy-rich-text": "view",
|
||||
"diy-rubik-cube": "view",
|
||||
"diy-search": "view",
|
||||
|
||||
Reference in New Issue
Block a user