huaanglimeng/components/spread-container/spread-container.wxml

83 lines
3.1 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- components/spread-container/spread-container.wxml -->
<!-- 1. 卡牌单元模板 -->
<template name="card-item">
<view class="card-slot" style="{{extraStyle}}" bindtap="handleCardTap" data-index="{{card._index}}">
<!-- 位置信息 -->
<view class="pos-info">
<text class="pos-name">{{card._posName}}</text>
<!-- <text class="pos-seq">NO.{{card._seq}}</text> -->
</view>
<!-- 翻牌场景 -->
<view class="flip-scene">
<view class="flip-card {{card._index < revealedCount ? 'flipped' : ''}}">
<!-- 背面 -->
<view class="card-face face-back">
<image class="card-image" src="/images/beimian.png" mode="aspectFit" />
</view>
<!-- 正面 -->
<view class="card-face face-front">
<image
class="card-image {{card.isReversed ? 'reversed' : ''}}"
src="{{card.image}}"
mode="aspectFit"
/>
</view>
</view>
</view>
<!-- 牌名称 (翻开后显示) -->
<text class="card-name-sm" wx:if="{{card._index < revealedCount}}">{{card.name}}</text>
</view>
</template>
<view class="spread-wrapper {{spread.layout.type === 'celtic' ? 'celtic-mode' : ''}}">
<!-- =========================================
布局 1: Grid (网格)
直接遍历 displayList无特殊定位
========================================= -->
<view class="layout-grid" wx:if="{{spread.layout.type === 'grid'}}">
<block wx:for="{{displayList}}" wx:key="_index">
<template is="card-item" data="{{card: item, revealedCount: revealedCount, extraStyle: ''}}" />
</block>
</view>
<!-- =========================================
布局 2: Celtic Cross (舞台模式 - 600x900rpx)
使用 displayList 中的 _style 进行绝对定位
========================================= -->
<view class="spread-container" wx:if="{{spread.layout.type === 'celtic'}}">
<block wx:for="{{displayList}}" wx:key="_index">
<view class="stage-card" style="{{item._style}}" bindtap="handleCardTap" data-index="{{item._index}}">
<!-- 复用 card-item 内部结构,但不使用 template 以避免 style 冲突 -->
<view class="card-slot">
<view class="pos-info">
<text class="pos-name">{{item._posName}}</text>
</view>
<view class="flip-scene">
<view class="flip-card {{item._index < revealedCount ? 'flipped' : ''}}">
<view class="card-face face-back">
<image class="card-image" src="/images/beimian.png" mode="aspectFit" />
</view>
<view class="card-face face-front">
<image
class="card-image {{item.isReversed ? 'reversed' : ''}}"
src="{{item.image}}"
mode="aspectFit"
/>
</view>
</view>
</view>
<text class="card-name-sm" wx:if="{{item._index < revealedCount}}">{{item.name}}</text>
</view>
</view>
</block>
</view>
</view>