diff --git a/scripts/check-long-text-guide-detail-routes.mjs b/scripts/check-long-text-guide-detail-routes.mjs
index cd77377..c3a8ac5 100644
--- a/scripts/check-long-text-guide-detail-routes.mjs
+++ b/scripts/check-long-text-guide-detail-routes.mjs
@@ -13,9 +13,10 @@ const rootDir = path.resolve(dirname, "..");
const expectedRoutes = {
longTextCard: "/pages/ChatModule/LongTextGuideCardPreview/guide",
- longTextCardSnap: "/pages/ChatModule/LongTextGuideCardPreview/poi",
+ longTextCardScenicSpot: "/pages/ChatModule/LongTextGuideCardPreview/poi",
longTextCardRoute: "/pages/ChatModule/LongTextGuideCardPreview/route",
- longTextCardScenicSpot: "/pages/ChatModule/LongTextGuideCardPreview/photo",
+ longTextCardSnap: "/pages/ChatModule/LongTextGuideCardPreview/photo",
+ longTextCardFullDoc: "/pages/ChatModule/LongTextGuideCardPreview/fullDoc",
};
assert.deepEqual(DETAIL_ROUTE_BY_TYPE, expectedRoutes);
@@ -38,4 +39,3 @@ for (const route of Object.values(expectedRoutes)) {
`Route is not registered in src/pages.json: ${route}`,
);
}
-
diff --git a/src/model/ChatModel.js b/src/model/ChatModel.js
index 37a4483..4d9746d 100644
--- a/src/model/ChatModel.js
+++ b/src/model/ChatModel.js
@@ -56,8 +56,10 @@ export const CompName = {
longTextCardSnap: "longTextCardSnap",
longTextCardRoute: "longTextCardRoute",
longTextCardScenicSpot: "longTextCardScenicSpot",
+ longTextCardFullDoc: "longTextCardFullDoc",
// 生成合成图片
aigcPhotoGeneratorCard: "aigcPhotoGeneratorCard",
+ videoCard: "videoCard",
};
/// 发送的指令类型
diff --git a/src/pages.json b/src/pages.json
index 58b6d31..33c208b 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -68,6 +68,12 @@
"navigationStyle": "custom"
}
},
+ {
+ "path": "pages/ChatModule/LongTextGuideCardPreview/fullDoc",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
{
"path": "pages/ChatMain/NoticeMessage/detail",
"style": {
diff --git a/src/pages/ChatMain/ChatMainList/index.vue b/src/pages/ChatMain/ChatMainList/index.vue
index fa93094..1850de0 100644
--- a/src/pages/ChatMain/ChatMainList/index.vue
+++ b/src/pages/ChatMain/ChatMainList/index.vue
@@ -959,7 +959,8 @@ const isLongTextCard = (componentName) => {
componentName === CompName.longTextCard ||
componentName === CompName.longTextCardSnap ||
componentName === CompName.longTextCardRoute ||
- componentName === CompName.longTextCardScenicSpot
+ componentName === CompName.longTextCardScenicSpot ||
+ componentName === CompName.longTextCardFullDoc
);
};
diff --git a/src/pages/ChatModule/LongTextGuideCardPreview/detailRoutes.mjs b/src/pages/ChatModule/LongTextGuideCardPreview/detailRoutes.mjs
index bb992d4..ceb9416 100644
--- a/src/pages/ChatModule/LongTextGuideCardPreview/detailRoutes.mjs
+++ b/src/pages/ChatModule/LongTextGuideCardPreview/detailRoutes.mjs
@@ -3,9 +3,9 @@ export const DETAIL_ROUTE_BY_TYPE = {
longTextCardScenicSpot: "/pages/ChatModule/LongTextGuideCardPreview/poi",
longTextCardRoute: "/pages/ChatModule/LongTextGuideCardPreview/route",
longTextCardSnap: "/pages/ChatModule/LongTextGuideCardPreview/photo",
+ longTextCardFullDoc: "/pages/ChatModule/LongTextGuideCardPreview/fullDoc",
};
export const getLongTextGuideDetailRoute = (type) => {
return DETAIL_ROUTE_BY_TYPE[type] || "";
};
-
diff --git a/src/pages/ChatModule/LongTextGuideCardPreview/fullDoc.vue b/src/pages/ChatModule/LongTextGuideCardPreview/fullDoc.vue
new file mode 100644
index 0000000..788d06f
--- /dev/null
+++ b/src/pages/ChatModule/LongTextGuideCardPreview/fullDoc.vue
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+ 第一次来小七孔,别犹豫,直接锁死
+ 东门进、西门出
+ 这条线。
+
+
+
+ 这是景区最完整的打法,全程顺着响水河往下游走,不用爬坡回头,把最精华的水景一次看个够。从古朴的石桥热身,一路走到碧蓝的卧龙潭收尾,节奏刚刚好。
+
+
+
+ 小七孔全景
+ 演示占位图
+
+
+ 这几个地方不能错过
+
+ 这条线上景点很密,但下面这几个是真正的“灵魂”,到了千万别急着赶路。
+
+
+
+
+ {{ spot.index }} {{ spot.name }}
+ {{ spot.desc }}
+
+
+ {{ spot.name }}
+ 演示占位图
+
+
+
+ 一天大概这样分
+
+ 上午(约 3 小时):东门进,先走古桥、看跌水与拉雅瀑布
+ 中午(约 1 小时):在驿站歇脚吃饭,避开正午晒
+ 下午(约 3 小时):水上森林、鸳鸯湖划船、卧龙潭收尾
+ 机动(约 1 小时):留点空给拍照、发呆、临时想多待的地方
+ 全程顺水而下约一天,体力一般也扛得住
+
+
+ 只有半天怎么办
+
+ 时间紧就走精华:古桥 + 水上森林 + 卧龙潭,约 3-4 小时
+ 舍掉的部分别可惜,留个念想,下次再来
+
+
+ 小七的话
+
+ 第一次来,不用追着打卡。挑两三个最想看的地方多待一会儿,比每个点都匆匆走过要值得多。具体某个点怎么玩,点开对应的攻略,我再细细跟你说。
+
+
+
+
+ 必看景点 · 按游玩顺序
+
+
+
+ {{ index + 1 }}
+
+ {{ spot.name }}
+ {{ spot.tag }}
+
+
+
+ ↓
+
+
+
+ 套票推荐
+
+
+
+ 小七孔全景
+
+
+ 小七孔畅玩套票
+ 门票 + 观光车 + 2 项体验,第一次来最省心
+
+ ¥130
+ ¥175
+
+
+
+
+
+
+ 继续追问
+
+
+ {{ question }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/ChatModule/LongTextGuideCardPreview/index.vue b/src/pages/ChatModule/LongTextGuideCardPreview/index.vue
index 3a1b376..e69e6cc 100644
--- a/src/pages/ChatModule/LongTextGuideCardPreview/index.vue
+++ b/src/pages/ChatModule/LongTextGuideCardPreview/index.vue
@@ -70,6 +70,16 @@ const longTextCardSnap = {
footer: "点击查看完整攻略",
}
+const longTextCardFullDoc = {
+ type: 'longTextCardFullDoc',
+ badge: "初游攻略",
+ badgeTone: "amber",
+ title: "第一次来小七孔,照着这条线走就对了",
+ summary: "第一次来,别犹豫,直接锁死「东门进、西门出」这条线…",
+ footer: "点击查看完整攻略",
+}
+
+
const item = computed(() => {
switch (props.componentName) {
case 'longTextCard':
@@ -80,6 +90,8 @@ const item = computed(() => {
return longTextCardRoute;
case 'longTextCardScenicSpot':
return longTextCardScenicSpot;
+ case 'longTextCardFullDoc':
+ return longTextCardFullDoc;
default:
return longTextCard;
}
diff --git a/src/pages/ChatModule/LongTextGuideCardPreview/styles/detail.scss b/src/pages/ChatModule/LongTextGuideCardPreview/styles/detail.scss
index 1764faa..76c91e0 100644
--- a/src/pages/ChatModule/LongTextGuideCardPreview/styles/detail.scss
+++ b/src/pages/ChatModule/LongTextGuideCardPreview/styles/detail.scss
@@ -528,3 +528,185 @@
.aigc-button {
background: linear-gradient(135deg, #8b5cf6, #6366f1);
}
+
+.overview-image-card {
+ display: flex;
+ height: 160px;
+ margin: 4px 0 16px;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ border-radius: 14px;
+ color: #fff;
+ background: linear-gradient(135deg, #1d9e75, #0f6e56);
+ font-size: 22px;
+ font-weight: 900;
+ line-height: 28px;
+ text-align: center;
+}
+
+.overview-image-card.is-green-blue {
+ background: linear-gradient(135deg, #1d9e75, #185fa5);
+}
+
+.overview-image-card.is-stone {
+ background: linear-gradient(135deg, #888780, #5f5e5a);
+}
+
+.overview-image-card.is-green {
+ background: linear-gradient(135deg, #1d9e75, #0f6e56);
+}
+
+.overview-image-card.is-forest {
+ background: linear-gradient(135deg, #639922, #3b6d11);
+}
+
+.overview-image-subtitle {
+ margin-top: 8px;
+ color: rgba(255, 255, 255, 0.72);
+ font-size: 12px;
+ font-weight: 700;
+ line-height: 18px;
+}
+
+.overview-spots-wrap {
+ padding: 0 16px;
+}
+
+.overview-spot-card {
+ display: flex;
+ padding: 12px 14px;
+ align-items: center;
+ gap: 12px;
+ border: 1px solid #d8ebe0;
+ border-radius: 14px;
+ background: #f1f8f4;
+}
+
+.overview-spot-index {
+ width: 22px;
+ height: 22px;
+ flex-shrink: 0;
+ border-radius: 50%;
+ color: #fff;
+ background: #0f6e56;
+ font-size: 11px;
+ font-weight: 900;
+ line-height: 22px;
+ text-align: center;
+}
+
+.overview-spot-main {
+ flex: 1;
+ min-width: 0;
+}
+
+.overview-spot-name {
+ color: #1e293b;
+ font-size: 14px;
+ font-weight: 900;
+ line-height: 20px;
+}
+
+.overview-spot-tag {
+ margin-top: 2px;
+ color: #5f8a76;
+ font-size: 11px;
+ font-weight: 700;
+ line-height: 16px;
+}
+
+.overview-spot-arrow {
+ padding: 3px 0;
+ color: #5dcaa5;
+ font-size: 16px;
+ font-weight: 900;
+ line-height: 18px;
+ text-align: center;
+}
+
+.overview-combo-card {
+ margin: 0 16px 12px;
+ overflow: hidden;
+ border: 1px solid #fde68a;
+ border-radius: 18px;
+ background: #fff;
+}
+
+.overview-combo-body {
+ display: flex;
+ gap: 12px;
+ padding: 12px;
+}
+
+.overview-combo-cover {
+ display: flex;
+ width: 78px;
+ height: 78px;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: center;
+ border-radius: 12px;
+ color: #fff;
+ background: linear-gradient(135deg, #1d9e75, #185fa5);
+ font-size: 12px;
+ font-weight: 900;
+ line-height: 16px;
+ text-align: center;
+}
+
+.overview-combo-info {
+ flex: 1;
+ min-width: 0;
+}
+
+.overview-combo-name {
+ color: #1e293b;
+ font-size: 14px;
+ font-weight: 900;
+ line-height: 20px;
+}
+
+.overview-combo-desc {
+ margin: 3px 0 6px;
+ color: #94a3b8;
+ font-size: 11px;
+ font-weight: 700;
+ line-height: 17px;
+}
+
+.overview-combo-price {
+ color: #f43f5e;
+ font-size: 22px;
+ font-weight: 900;
+ line-height: 28px;
+}
+
+.overview-combo-currency {
+ font-size: 12px;
+}
+
+.overview-combo-original {
+ margin-left: 4px;
+ color: #cbd5e1;
+ font-size: 11px;
+ font-weight: 700;
+ text-decoration: line-through;
+}
+
+.overview-combo-button {
+ width: 100%;
+ height: 40px;
+ padding: 0;
+ border: 0;
+ border-radius: 0;
+ color: #451a03;
+ background: #fbbf24;
+ font-size: 13px;
+ font-weight: 900;
+ line-height: 40px;
+}
+
+.overview-combo-button::after {
+ border: 0;
+}
diff --git a/src/pages/ChatModule/LongTextGuideCardPreview/长文本收纳组件_5类演示.html b/src/pages/ChatModule/LongTextGuideCardPreview/长文本收纳组件_5类演示.html
new file mode 100644
index 0000000..17fb509
--- /dev/null
+++ b/src/pages/ChatModule/LongTextGuideCardPreview/长文本收纳组件_5类演示.html
@@ -0,0 +1,775 @@
+
+
+
+
+
+长文本收纳组件 · 4 类演示
+
+
+
+
+
+
+
+
+
+
+ 演示
+ 长文本收纳组件 · 4 类
+
+
+ 点击卡片 = 折叠态展开为完整内容。
+ 展开后下半部分是「行动条」,挂载真实可点击的组件。
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 漂流攻略
+ 长文本-攻略组件
+
+
下水之前,先听小七唠两句
+
+
+
+
+
+
+
+
+
+ 景点故事
+ 长文本-景点组件
+
+
小七孔古桥 · 走了三百年的石拱
+
+
+
+
+
+
+
+
+
+ 路线指引
+ 长文本-路线组件
+
+
漂完卧龙潭,顺道去鸳鸯湖
+
+
+
+
+
+
+
+
+
+ 拍照攻略
+ 长文本-拍照组件
+
+
鸳鸯湖玻璃船,这样拍才不亏
+
+
+
+
+
+
+
+
+
+ 初游攻略
+ 长文本-攻略组件 · 发散模式
+
+
第一次来小七孔,这篇先看
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![大图]()
+
+
+
+
+
+
+
+