feat(diy-card): 默认操作删除+恢复(2.19.2) — normalizeActDeleted + acts 双重过滤 + 透传
This commit is contained in:
@@ -396,6 +396,20 @@ export function normalizeActVis(vis) {
|
||||
return out;
|
||||
}
|
||||
|
||||
/**
|
||||
* 默认动作删除(2.19.2): actDeleted = { type: 0|1 }, 1=已删除(C端不渲染, 面板行隐藏,
|
||||
* 经「恢复」chips 找回)。与 actVis(眼睛临时隐藏)独立 —— 删除与隐藏 C 端均不渲染。
|
||||
* 缺键/非法 = 未删除(0), 历史配置无此字段 → 零变化
|
||||
*/
|
||||
export function normalizeActDeleted(deleted) {
|
||||
const src = deleted && typeof deleted === 'object' ? deleted : {};
|
||||
const out = {};
|
||||
ACT_TYPES.forEach(t => {
|
||||
out[t] = String(src[t]) === '1' ? 1 : 0;
|
||||
});
|
||||
return out;
|
||||
}
|
||||
|
||||
/**
|
||||
* 默认动作文案(2.19): actLabels = { type: string }, 空/缺 = 内置默认
|
||||
* 历史配置无此字段 → 全默认, 渲染零变化
|
||||
|
||||
@@ -192,7 +192,7 @@ import {
|
||||
WAP_LINE_ICONS, svgLineIconBg,
|
||||
ACT_GRID_PRESETS, ACT_GRID_PRESET_FALLBACK, hexToRgba,
|
||||
// 2.19: 显隐/文案/自定义动作归一化 + 素材图标库(与后端 CardIconLibrary 同源)
|
||||
normalizeActVis, normalizeActLabels, normalizeCustomActs, normalizeActOrder, libIconBg,
|
||||
normalizeActVis, normalizeActDeleted, normalizeActLabels, normalizeCustomActs, normalizeActOrder, libIconBg,
|
||||
} from './diy-card-common.js';
|
||||
|
||||
export default {
|
||||
@@ -388,6 +388,7 @@ export default {
|
||||
acts() {
|
||||
const raw = this.card && Array.isArray(this.card.acts) ? this.card.acts : [];
|
||||
const vis = normalizeActVis(this.c.actVis);
|
||||
const del = normalizeActDeleted(this.c.actDeleted);
|
||||
const labels = normalizeActLabels(this.c.actLabels);
|
||||
const icons = this.c.actIcons && typeof this.c.actIcons === 'object' ? this.c.actIcons : {};
|
||||
const order = normalizeActOrder(this.c.actOrder);
|
||||
@@ -409,12 +410,12 @@ export default {
|
||||
});
|
||||
const out = [];
|
||||
order.forEach(t => {
|
||||
if (byType[t] && vis[t] !== 0) out.push(merge(byType[t]));
|
||||
if (byType[t] && vis[t] !== 0 && del[t] !== 1) out.push(merge(byType[t]));
|
||||
});
|
||||
raw.forEach(a => {
|
||||
if (!a || !a.type) return;
|
||||
const t = String(a.type);
|
||||
if (order.indexOf(t) >= 0 || vis[t] === 0) return;
|
||||
if (order.indexOf(t) >= 0 || vis[t] === 0 || del[t] === 1) return;
|
||||
out.push(merge(a));
|
||||
});
|
||||
normalizeCustomActs(this.c.customActs).forEach(ca => {
|
||||
|
||||
@@ -123,6 +123,7 @@ export default {
|
||||
qrImage: v.qrImage,
|
||||
// 2.19: 默认动作显隐/文案 + 自定义动作(基件 acts computed 合成)
|
||||
actVis: v.actVis,
|
||||
actDeleted: v.actDeleted,
|
||||
actLabels: v.actLabels,
|
||||
actOrder: v.actOrder,
|
||||
customActs: v.customActs,
|
||||
|
||||
@@ -86,6 +86,7 @@ export default {
|
||||
qrImage: v.qrImage,
|
||||
// 2.19: 默认动作显隐/文案 + 自定义动作(基件 acts computed 合成)
|
||||
actVis: v.actVis,
|
||||
actDeleted: v.actDeleted,
|
||||
actLabels: v.actLabels,
|
||||
actOrder: v.actOrder,
|
||||
customActs: v.customActs,
|
||||
|
||||
Reference in New Issue
Block a user