- plan-card 仍用 {{plan.emoji}} 文本渲染,导致创建计划后显示 person-standing 等字面量
- 改为 require iconName 计算 icon,wxml 使用 <fc-icon> 渲染
- 同步清理 badge/emoji 的字体样式
38 lines
942 B
JavaScript
38 lines
942 B
JavaScript
// 计划卡片:复用官方计划(CollectionDef)与我自己的计划(PlanSummary)。
|
|
// props:
|
|
// plan: { id|slug, emoji, color, name, description, count|exerciseCount, cover? }
|
|
// target: 点击跳转的完整 url
|
|
const { iconName } = require('../../utils/icon-name.js');
|
|
|
|
Component({
|
|
properties: {
|
|
plan: { type: Object, value: {} },
|
|
target: { type: String, value: '' }
|
|
},
|
|
data: {
|
|
count: 0,
|
|
cover: '',
|
|
hasCover: false,
|
|
color: '#D9B36C',
|
|
icon: 'folder-open'
|
|
},
|
|
observers: {
|
|
plan: function (plan) {
|
|
plan = plan || {};
|
|
this.setData({
|
|
count: plan.count || plan.exerciseCount || 0,
|
|
cover: plan.cover || '',
|
|
hasCover: !!(plan.cover),
|
|
color: plan.color || '#D9B36C',
|
|
icon: iconName(plan.emoji, 'folder-open')
|
|
});
|
|
}
|
|
},
|
|
methods: {
|
|
onTap() {
|
|
const url = this.data.target;
|
|
if (url) wx.navigateTo({ url });
|
|
}
|
|
}
|
|
});
|