feat: 商家列表展示权益
This commit is contained in:
@@ -74,7 +74,7 @@ const MATRIX = {
|
||||
copy: ["brandDeep", "brand"],
|
||||
gift: ["white", "brandDeep", "accent"],
|
||||
home: ["ink3", "brand"],
|
||||
ticket: ["ink3", "brand", "accent", "white", "ink2"],
|
||||
ticket: ["ink3", "brand", "accent", "white", "ink2", "accentDeep"],
|
||||
user: ["ink3", "brand", "white", "ink2"],
|
||||
check: ["white", "brand"],
|
||||
close: ["ink3", "white"],
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/**
|
||||
* 内容条目卡(原 .item)
|
||||
* - 首页「精选推荐」:名称 + 简介,不显示地址
|
||||
* - 板块列表页:名称 + 简介 + 地址行
|
||||
* - 板块列表页:名称 + 简介 + 权益数徽标 + 地址行(benefit_count 缺失或为 0 时整行不渲染)
|
||||
* 等级与描述性标签(`grade` / `tags`)全站不展示 —— 字段保留在数据层,页面不渲染。
|
||||
* 图片地址一律取 item.main_image_url(只读字段,不拼路径)
|
||||
*/
|
||||
@@ -11,6 +11,7 @@ import { goDetail } from "@/utils/nav";
|
||||
const props = defineProps({
|
||||
item: { type: Object, required: true },
|
||||
showAddress: { type: Boolean, default: false },
|
||||
showBenefit: { type: Boolean, default: false },
|
||||
thumbSize: { type: Number, default: 92 },
|
||||
});
|
||||
|
||||
@@ -33,6 +34,12 @@ const onTap = () => {
|
||||
<view class="min-w-0 flex-1 flex flex-col">
|
||||
<view class="text-[13.5px] font-semibold leading-[1.35] text-ink line-clamp-2">{{ item.name }}</view>
|
||||
|
||||
<view v-if="showBenefit && item.benefit_count"
|
||||
class="self-start flex items-center gap-[3px] mt-[5px] px-[6px] py-[3px] rounded-[6px] bg-accent-soft">
|
||||
<AppIcon name="ticket" tone="accentDeep" :size="9" />
|
||||
<text class="text-hint font-semibold leading-none text-accent-deep">{{ item.benefit_count }} 项权益</text>
|
||||
</view>
|
||||
|
||||
<view v-if="item.description" class="text-hint leading-[1.5] text-ink3 mt-[5px] line-clamp-2">
|
||||
{{ item.description }}
|
||||
</view>
|
||||
|
||||
@@ -113,7 +113,7 @@ onShareAppMessage(() => ({
|
||||
<view v-for="group in groups" :id="`g-${group.id}`" :key="group.id">
|
||||
<view class="text-[16px] font-semibold mt-3 mb-[9px] text-ink">{{ group.name }}</view>
|
||||
<view v-for="(item, i) in group.items" :key="item.id" :class="i ? 'mt-[10px]' : ''">
|
||||
<ContentCard :item="item" show-address :thumb-size="100" />
|
||||
<ContentCard :item="item" show-address show-benefit />
|
||||
</view>
|
||||
</view>
|
||||
<EmptyBox v-if="!groups.length" text="该板块暂无内容" />
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
.ai-ticket.t-accent{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkY4QTNEJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMy41IDkuNmEyIDIgMCAwIDEgMi0yaDEzYTIgMiAwIDAgMSAyIDJ2MS4yYTEuNCAxLjQgMCAwIDAgMCAyLjh2MS4yYTIgMiAwIDAgMS0yIDJoLTEzYTIgMiAwIDAgMS0yLTJ2LTEuMmExLjQgMS40IDAgMCAwIDAtMi44eiIvPjxwYXRoIGQ9Ik0xMy42IDcuNnYyTTEzLjYgMTN2MiIvPjwvc3ZnPg==")}
|
||||
.ai-ticket.t-white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkZGRkZGJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMy41IDkuNmEyIDIgMCAwIDEgMi0yaDEzYTIgMiAwIDAgMSAyIDJ2MS4yYTEuNCAxLjQgMCAwIDAgMCAyLjh2MS4yYTIgMiAwIDAgMS0yIDJoLTEzYTIgMiAwIDAgMS0yLTJ2LTEuMmExLjQgMS40IDAgMCAwIDAtMi44eiIvPjxwYXRoIGQ9Ik0xMy42IDcuNnYyTTEzLjYgMTN2MiIvPjwvc3ZnPg==")}
|
||||
.ai-ticket.t-ink2{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjNkI3MjgwJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMy41IDkuNmEyIDIgMCAwIDEgMi0yaDEzYTIgMiAwIDAgMSAyIDJ2MS4yYTEuNCAxLjQgMCAwIDAgMCAyLjh2MS4yYTIgMiAwIDAgMS0yIDJoLTEzYTIgMiAwIDAgMS0yLTJ2LTEuMmExLjQgMS40IDAgMCAwIDAtMi44eiIvPjxwYXRoIGQ9Ik0xMy42IDcuNnYyTTEzLjYgMTN2MiIvPjwvc3ZnPg==")}
|
||||
.ai-ticket.t-accentDeep{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjQzk1NTBDJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMy41IDkuNmEyIDIgMCAwIDEgMi0yaDEzYTIgMiAwIDAgMSAyIDJ2MS4yYTEuNCAxLjQgMCAwIDAgMCAyLjh2MS4yYTIgMiAwIDAgMS0yIDJoLTEzYTIgMiAwIDAgMS0yLTJ2LTEuMmExLjQgMS40IDAgMCAwIDAtMi44eiIvPjxwYXRoIGQ9Ik0xMy42IDcuNnYyTTEzLjYgMTN2MiIvPjwvc3ZnPg==")}
|
||||
.ai-user.t-ink3{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjOUNBM0FGJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48Y2lyY2xlIGN4PSIxMiIgY3k9IjguMiIgcj0iMy45Ii8+PHBhdGggZD0iTTQuNiAyMC42YTcuNCA3LjQgMCAwIDEgMTQuOCAwIi8+PC9zdmc+")}
|
||||
.ai-user.t-brand{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjMDBCNTc4JyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48Y2lyY2xlIGN4PSIxMiIgY3k9IjguMiIgcj0iMy45Ii8+PHBhdGggZD0iTTQuNiAyMC42YTcuNCA3LjQgMCAwIDEgMTQuOCAwIi8+PC9zdmc+")}
|
||||
.ai-user.t-white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkZGRkZGJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48Y2lyY2xlIGN4PSIxMiIgY3k9IjguMiIgcj0iMy45Ii8+PHBhdGggZD0iTTQuNiAyMC42YTcuNCA3LjQgMCAwIDEgMTQuOCAwIi8+PC9zdmc+")}
|
||||
|
||||
Reference in New Issue
Block a user