228 lines
10 KiB
JavaScript
228 lines
10 KiB
JavaScript
Page({
|
||
data: {
|
||
todayDate: '', // 用于存储今天的日期
|
||
// 1. 桌面上现在展示的牌 (initial: null)
|
||
currentCard: null,
|
||
isRevealed: false, // 是否已经翻牌
|
||
explanation: '', // 用于存储动态生成的解牌文案
|
||
cardBackImage: '/images/beimian.png', // 牌背图片
|
||
|
||
// 3. 前缀文案列表(随机抽取)
|
||
prefixList: [
|
||
"今天,这张牌提醒你:",
|
||
"此刻,宇宙传递的信息:",
|
||
"这张牌想告诉你:",
|
||
"请收下这份指引:"
|
||
],
|
||
|
||
// 2. 完整的 22 张大阿尔卡那牌组(包含逆位含义)
|
||
cardList: [
|
||
{
|
||
name: "0. 愚者",
|
||
keyword: "新的开始",
|
||
meaning: "放下恐惧,勇敢迈出第一步,世界充满无限可能。",
|
||
reversedMeaning: "也许有些太冲动了?停下来检查一下背包,确保安全再出发。",
|
||
image: "/images/yuzhe.png"
|
||
},
|
||
{
|
||
name: "I. 魔术师",
|
||
keyword: "创造力",
|
||
meaning: "你拥有实现目标所需的一切资源,现在是行动的时候。",
|
||
reversedMeaning: "你是否低估了自己的能力?或者在犹豫不决?相信自己,工具就在手边。",
|
||
image: "/images/moshushi.png"
|
||
},
|
||
{
|
||
name: "II. 女祭司",
|
||
keyword: "直觉",
|
||
meaning: "倾听内心的声音,答案就在你潜意识的深处。",
|
||
reversedMeaning: "暂时听不见内心的声音了吗?别急着向外寻找,先让自己静下来。",
|
||
image: "/images/nvjishi.png"
|
||
},
|
||
{
|
||
name: "III. 皇后",
|
||
keyword: "丰饶",
|
||
meaning: "享受生活的美好,去创造、去关爱,收获也是一种能力。",
|
||
reversedMeaning: "是否忽略了对自己的关爱?或者有些过度保护?给彼此一点呼吸的空间。",
|
||
image: "/images/nvhuang.png"
|
||
},
|
||
{
|
||
name: "IV. 皇帝",
|
||
keyword: "秩序",
|
||
meaning: "建立规则和结构,理性地掌控局面,承担起责任。",
|
||
reversedMeaning: "有时候太固执会让人疲惫,适度放权,弹性也是一种力量。",
|
||
image: "/images/huangdi.png"
|
||
},
|
||
{
|
||
name: "V. 教皇",
|
||
keyword: "指引",
|
||
meaning: "寻求传统智慧的帮助,或者成为他人的精神导师。",
|
||
reversedMeaning: "不必拘泥于陈规旧矩,试着打破常规,寻找适合你自己的那条路。",
|
||
image: "/images/jiaohuang.png"
|
||
},
|
||
{
|
||
name: "VI. 恋人",
|
||
keyword: "选择",
|
||
meaning: "跟随你的心,在关系中寻找和谐,做出忠于自我的决定。",
|
||
reversedMeaning: "现在的关系是否有些失衡?先爱自己,才能更好地爱别人。",
|
||
image: "/images/lianren.png"
|
||
},
|
||
{
|
||
name: "VII. 战车",
|
||
keyword: "意志",
|
||
meaning: "认准目标,克服相反的力量,胜利属于坚持到底的人。",
|
||
reversedMeaning: "感觉失去了方向控制?慢下来,重新调整导航,欲速则不达。",
|
||
image: "/images/zhanche.png"
|
||
},
|
||
{
|
||
name: "VIII. 力量",
|
||
keyword: "勇气",
|
||
meaning: "真正的力量是温柔的坚持,用耐心驯服内心的野兽。",
|
||
reversedMeaning: "不要怀疑自己的韧性,面对内心的软弱并不是坏事,那是温柔的开始。",
|
||
image: "/images/liliang.png"
|
||
},
|
||
{
|
||
name: "IX. 隐士",
|
||
keyword: "内省",
|
||
meaning: "暂时远离喧嚣,向内探索,寻找属于你自己的光。",
|
||
reversedMeaning: "`是不是一个人待太久了?试着走出洞穴,和外界建立一点连接吧。",
|
||
image: "/images/yinzhe.png"
|
||
},
|
||
{
|
||
name: "X. 命运之轮",
|
||
keyword: "转折",
|
||
meaning: "改变是永恒的,顺势而为,抓住出现在你面前的机会。",
|
||
reversedMeaning: "运气暂时不在你这边,但没关系,低谷正是蓄力反弹的好时机。",
|
||
image: "/images/mingyunzhilun.png"
|
||
},
|
||
{
|
||
name: "XI. 正义",
|
||
keyword: "因果",
|
||
meaning: "诚实面对真相,所有的决定都会带来相应的结果。",
|
||
reversedMeaning: "即使结果不尽如人意,也要问心无愧。对自己诚实,比什么都重要。",
|
||
image: "/images/zhengyi.png"
|
||
},
|
||
{
|
||
name: "XII. 倒吊人",
|
||
keyword: "换位",
|
||
meaning: "换一个角度看世界,有时候牺牲是为了更大的获得。",
|
||
reversedMeaning: "挣扎只会更累,不如彻底放松,换个角度看世界,也许心结就解开了。",
|
||
image: "/images/daodiaoren.png"
|
||
},
|
||
{
|
||
name: "XIII. 死神",
|
||
keyword: "新生",
|
||
meaning: "结束是为了新的开始,彻底告别过去,才能拥抱未来。",
|
||
reversedMeaning: "还在紧抓着过去不放吗?只有腾出双手,才能接住新的礼物。",
|
||
image: "/images/sishen.png"
|
||
},
|
||
{
|
||
name: "XIV. 节制",
|
||
keyword: "平衡",
|
||
meaning: "在极端之间寻找中庸之道,融合对立,通过耐心获得疗愈。",
|
||
reversedMeaning: "是不是有些失衡了?在这忙乱的世界里,找回你内心的节奏和中点。",
|
||
image: "/images/jiezhi.png"
|
||
},
|
||
{
|
||
name: "XV. 恶魔",
|
||
keyword: "束缚",
|
||
meaning: "觉察那些控制你的欲望或习惯,唯有觉知才能带来解脱。",
|
||
reversedMeaning: "别被眼前的诱惑蒙蔽,或者感觉被束缚。其实锁链是松的,你随时可以走。",
|
||
image: "/images/emo.png"
|
||
},
|
||
{
|
||
name: "XVI. 高塔",
|
||
keyword: "崩塌",
|
||
meaning: "不要害怕突如其来的剧变,它在摧毁虚假的根基,让你重建真实。",
|
||
reversedMeaning: "废墟中反而能看清地基。既然倒了,正好可以按照你真正想要的样子重建。",
|
||
image: "/images/ta.png"
|
||
},
|
||
{
|
||
name: "XVII. 星星",
|
||
keyword: "希望",
|
||
meaning: "黑暗之后必有星光,保持信心,未来充满治愈与灵感。",
|
||
reversedMeaning: "暂时看不见星星也没关系,它们还在那里。给自己一点信心,黎明就在前方。",
|
||
image: "/images/xingxing.png"
|
||
},
|
||
{
|
||
name: "XVIII. 月亮",
|
||
keyword: "幻象",
|
||
meaning: "直面内心的不安与迷茫,并非所有事情都如表象般真实。",
|
||
reversedMeaning: "恐惧只是长长的影子,别被它吓住。随着天亮,迷雾终会散去。",
|
||
image: "/images/yueliang.png"
|
||
},
|
||
{
|
||
name: "XIX. 太阳",
|
||
keyword: "喜悦",
|
||
meaning: "快乐、成功与活力,尽情地发光发热,享受当下的幸福。",
|
||
reversedMeaning: "乌云暂时遮住了阳光,但这只是暂时的。保持乐观,你心里的光谁也偷不走。",
|
||
image: "/images/taiyang.png"
|
||
},
|
||
{
|
||
name: "XX. 审判",
|
||
keyword: "觉醒",
|
||
meaning: "听到内心的召唤,回顾过往,做出决定,获得新生。",
|
||
reversedMeaning: "不要对他人的评价太敏感,也不要自我怀疑。如果你准备好了,就出发吧。",
|
||
image: "/images/shenpan.png"
|
||
},
|
||
{
|
||
name: "XXI. 世界",
|
||
keyword: "圆满",
|
||
meaning: "一段旅程的完美终点,成就感与整合,准备开始新的循环。",
|
||
reversedMeaning: "机遇还没完全成熟,再耐心一点点。检查一下还有什么细节没完成?",
|
||
image: "/images/shijie.png"
|
||
}
|
||
]
|
||
},
|
||
|
||
onLoad: function () {
|
||
// 获取当前日期
|
||
const now = new Date();
|
||
const year = now.getFullYear();
|
||
const month = (now.getMonth() + 1).toString().padStart(2, '0');
|
||
const day = now.getDate().toString().padStart(2, '0');
|
||
const dateStr = `${year}-${month}-${day}`;
|
||
|
||
this.setData({
|
||
todayDate: dateStr
|
||
});
|
||
|
||
console.log('塔罗牌(完整版 22 张 + 逆位文案)已经洗好了...')
|
||
},
|
||
|
||
// --- 抽一张牌 ---
|
||
// --- 抽一张牌 ---
|
||
drawCard: function () {
|
||
const allCards = this.data.cardList;
|
||
const randomIndex = Math.floor(Math.random() * allCards.length);
|
||
|
||
// 1. 复制这张牌的数据(这也是为了安全,不弄脏牌库)
|
||
// Object.assign 是这一行特殊的复制魔法
|
||
const selected = Object.assign({}, allCards[randomIndex]);
|
||
|
||
// 2. 扔硬币:50% 概率决定是否逆位 (isReversed)
|
||
selected.isReversed = Math.random() >= 0.5;
|
||
|
||
// 3. 随机选择一个前缀
|
||
const prefixes = this.data.prefixList;
|
||
const randomPrefixIndex = Math.floor(Math.random() * prefixes.length);
|
||
const selectedPrefix = prefixes[randomPrefixIndex];
|
||
|
||
// 4. 拍桌子 (先盖着牌)
|
||
this.setData({
|
||
currentCard: selected,
|
||
isRevealed: false, // 刚抽的时候是盖着的
|
||
explanation: `${selectedPrefix}${selected.isReversed ? selected.reversedMeaning : selected.meaning}`
|
||
});
|
||
|
||
console.log("抽到了:", selected.name, selected.isReversed ? "逆位" : "正位");
|
||
},
|
||
|
||
// --- 翻牌动作 ---
|
||
revealCard: function () {
|
||
if (this.data.isRevealed) return; // 如果已经翻开了,就别动了
|
||
|
||
this.setData({
|
||
isRevealed: true
|
||
});
|
||
}
|
||
}) |