File: //proc/660475/root/proc/thread-self/cwd/sh copy.html
<!DOCTYPE html>
<html lang="zh">
<head>
<!-- Google Tag Manager -->
<script>(function (w, d, s, l, i) {
w[l] = w[l] || []; w[l].push({
'gtm.start':
new Date().getTime(), event: 'gtm.js'
}); var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-M5D4B4QG');</script>
<!-- End Google Tag Manager -->
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-SDLT368P5Y"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-SDLT368P5Y');
</script>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>下個月想趁著假期和家人去水鄉江南遊玩6天,我們是從台灣出發,有哪些需要注意的嗎?另外有哪些比較推薦去的景點,去過的朋友可以分享下攻略
</title>
<meta name="description" content="探索蘇杭之美,發現中國東部的歷史古城和水鄉風光。蘇杭旅遊指南,提供旅遊景點、美食、住宿和交通信息。">
<meta name="keywords" content="蘇杭旅遊, 蘇杭景點, 上海, 蘇州, 杭州, 烏鎮">
<!-- 落地页样式 -->
<link rel="stylesheet" href="sh-static/styles.css" />
<!-- vue3 -->
<script src="js/vue.global.min.js"></script>
<!-- 电话库 -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/css/intlTelInput.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/intlTelInput.min.js"></script>
<!-- axios -->
<script src="js/axios.min.js"></script>
<!-- config.js -->
<script src="config/config.js"></script>
</head>
<body>
<div id="app">
<main>
<div class="container">
<div class="content-left">
<div class="hero">
<div class="question-container">
<div class="question-tags">
<div class="question-tag tag-blue">蘇杭旅遊攻略</div>
<div class="question-tag tag-green">精選內容</div>
</div>
<h1>
下個月想趁著假期和家人去水鄉江南遊玩6天,我們是從台灣出發,有哪些需要注意的嗎?另外有哪些比較推薦去的景點,去過的朋友可以分享下攻略
</h1>
<h2>
主要想了解蘇杭、上海有什麼好玩的,哪些美食,另外玩6天5晚大概要多少錢?包含哪些費用?
</h2>
<div class="question-meta">
<div class="questioner-info">
<img class="lazy-image avatar" data-original="sh-static/images/1.jpg" alt="提問者頭像" />
<div class="questioner-details">
<span class="name">郭郭</span>
</div>
</div>
<div class="question-stats">
<span class="views">6.4k 瀏覽</span>
<span class="dot">·</span>
<span class="answers">344 回答</span>
</div>
</div>
</div>
</div>
<article>
<div class="post-content">
<div class="article-author">
<img class="lazy-image author-avatar" data-original="sh-static/images/2.jpg" alt="作者頭像" />
<div class="author-meta">
<div class="author-name">晴天旅行日記</div>
<div class="author-title">旅遊達人</div>
</div>
</div>
<p>
我們一家人是最近剛從上海和蘇杭旅遊回來,這次旅行真的超出預期!全程人均花費不到 2000元人民幣,比我們自己預估的少了將近一半,而且全程都是 5鑽豪華酒店、包車出行,服務非常貼心。希望這篇攻略能幫到同樣想去江南遊玩的朋友們!
</p>
<p>
我們這次是透過朋友推薦,找到了<span class="guide-name-highlight">{{ guideName}}</span>導遊幫我們規劃行程。她是本地人,對沿線景點非常熟悉,而且服務特別用心,全程 24小時管家式服務,有任何問題隨時響應。如果你也想免費訂製專屬行程,可以直接加她微信諮詢:<span class="wechat-id" @click="copyWechat">{{ wechatId }}</span><button
class="view-qr-btn" @click="showQrCode = true"><img src="config/lookqr.png" alt="查看二維碼"
class="qr-icon" /></button>(👈點選複製新增好友(電話微信同號碼奧))
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P1.jpg" alt="蘇杭" />
<p><span class="bold">我們出發前也看了蘇杭必去景點,<span class="guide-name-highlight">{{
guideName}}</span>根據我們想去的景點規劃的6天路線基本上都包含了,我也把路線內容分享給你參考:
</span></p>
<p><span class="theme-color bold">
🔶第一天 全球各地--上海(贈送24小時接機入住飯店)<br>
🔶第二天 上海-->苏州·留园·寒山寺-->5A級「拈花灣·禪意小鎮」<br>
🔶第三天 无锡-->乌镇东栅一一太湖古镇(贈送漢服體驗)<br>
🔶第四天 乌镇-->杭州·西湖游船-->龙井茶园参观<br>
🔶第五天 杭州-->上海·城隍庙·外滩-->黃浦江遊船<br>
🔶第六天 上海--全球各地(贈送24小時送機)
</span></p>
<p>如果你有其他想玩的地方都可以加<span class="guide-name-highlight">{{
guideName}}</span>導遊的微信:<span class="wechat-id" @click="copyWechat">{{ wechatId }}</span><button
class="view-qr-btn" @click="showQrCode = true"><img src="config/lookqr.png" alt="查看二維碼"
class="qr-icon" /></button>(👈點選號碼復制加微信,可免費訂制遊玩方案)給你免费规划行程。
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P2.jpg" alt="蘇杭" />
<p><span class="guide-name-highlight">{{ guideName}}</span>是上海本地人,而且做導遊很多年,對熱門景點非常熟悉,好玩好吃的地方都帶我們走遍了。
6天的行程很棒,自由度也很高,可以調整路線還有景點,沒有購物行程和隱形消費。很推薦帶朋友去,可以諮詢下<span class="guide-name-highlight">{{
guideName}}</span>,免費訂製下路線行程,自己不熟悉當地,真的很難玩得盡興。大家可以直接加<span class="guide-name-highlight">{{
guideName}}</span>微信了解更詳細的諮詢。微信ID是:<span class="wechat-id" @click="copyWechat">{{ wechatId
}}</span><button class="view-qr-btn" @click="showQrCode = true"><img src="config/lookqr.png"
alt="查看二維碼" class="qr-icon" /></button>(👈點選複製新增好友,電話微信同號)。
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P3.jpg" alt="蘇杭" />
<p><span class="bold">🌟 沿線必打卡景點推薦</span></p>
<p><span class="theme-color">【烏鎮西柵】</span>千年水鄉古鎮,感受純粹的江南水鄉氣息,體驗「小橋·流水·人家」的水鄉美景,夜晚燈火尤為迷人
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P4.jpg" alt="蘇杭" />
<p><span class="theme-color">【杭州西湖】</span>遊船觀賞西湖,山與水相依,水與城想融,駐足湖畔,聽西湖故事,賞西湖山水畫卷
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P5.jpg" alt="蘇杭" />
<p><span class="theme-color">【留园】</span>到獅子林賞奇巧假山,感受江南庭園的精巧佈局,移步換景,步步皆畫
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P6.jpg" alt="蘇杭" />
<p><span class="theme-color">【寒山寺】</span>踏入寒山寺,聆聽悠悠鐘聲,感想佛教文化的深厚底蘊,張繼《楓橋夜泊》意境重現
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P7.jpg" alt="蘇杭" />
<p><span class="theme-color">【無錫拈花灣】</span>禪意小鎮,夜晚燈光秀絢麗多彩,白天古樸寧靜,是放鬆身心的絕佳之地
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P8.jpg" alt="蘇杭" />
<p><span class="theme-color">【上海外灘】</span>漫步外灘,欣賞萬國建築博覽群,對岸陸家嘴摩天樓群燈火璀璨,是上海最經典的夜景打卡地
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P9.jpg" alt="蘇杭" />
<p><span class="bold">💰 六日遊費用包含(人均不到2000元)</span></p>
<p>1. 景點門票:寒山寺、留園、烏鎮、西湖遊船、龍井茶園等全程所有景點門票<br>
2. 全程交通:7座豪華商務空調沙發專車,舒適寬敞,全程無需自駕<br>
3. 住宿餐飲:全程5鑽豪華酒店,舒適整潔;含5早4中,餐飲地道正宗<br>
4. 全程導覽:專業服務型導遊,提供24小時管家式服務,隨時解答疑問<br>
5. 接送服務:24小時貼心接機送機,全程無後顧之憂
<br><br>如果對費用細節有需要詳細了解,可以直接加<span class="guide-name-highlight">{{
guideName}}</span>導遊的微信:<span class="wechat-id" @click="copyWechat">{{ wechatId }}</span><button
class="view-qr-btn" @click="showQrCode = true"><img src="config/lookqr.png" alt="查看二維碼"
class="qr-icon" /></button>
(👈點選號碼復制加微信,可免費訂制遊玩方案),她會免費為你解答,而且還非常的詳細。
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P9.jpg" alt="蘇杭" />
<p><span class="bold">我根據這次遊玩體驗整理了一些去蘇杭遊玩的注意事項,也分享給你:</span>
</p>
<p>1️⃣七里山塘街下午5點開始亮燈,注意時間<br>
2️⃣搖櫓船是一定要建議嘗試的,晃悠悠的蕩漾在碧波之上,看著兩邊的古建築別有一番滋味<br>
3️⃣蘇幫菜口感偏甜,不要一次點多了怕吃不習慣<br>
4️⃣一定要穿舒適的平底鞋逛,有很多石板路怕磨腳<br>
5️⃣買特產建議去當地大型超市,價格透明不會被坑<br>
6️⃣對蘇杭完全不了解沒有做攻略的建議報一個本地團一起出發,有人照應路上會不那麼無聊而且安全性得到了保障
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P10.jpg" alt="蘇杭" />
<p>
這次6天5晚的上海蘇杭之行,全程只花了不到2000元人民幣,包含了所有景點的門票、酒店住宿、餐食費、包車費用以及24小時接送站服務。真的非常劃算,而且服務更好!要是你跟我一樣,想玩得開心又不想多花冤枉錢,可以考慮找<span
class="guide-name-highlight">{{ guideName}}</span>幫忙。他很專業,能根據你的時間和預算定製私家團行程,幫你省錢省心。
</p>
<p>
很多朋友去蘇杭和中國其他城市旅行都想找個靠譜服務好的導遊提前免費咨詢一下,在這裏我給<span class="guide-name-highlight">{{
guideName}}</span>打個小廣告哦,親身經驗告訴你<span class="guide-name-highlight">{{
guideName}}</span>的服務真的很好,而且價格很實惠。計劃去上海或者蘇杭遊玩的朋友可以添加<span class="guide-name-highlight">{{
guideName}}</span>的微信WeChat好友免費咨詢一下!
</p>
<p>提示:分享<span class="guide-name-highlight">{{ guideName}}</span>的微信:<span class="wechat-id"
@click="copyWechat">{{ wechatId }}</span><button class="view-qr-btn" @click="showQrCode = true"><img
src="config/lookqr.png" alt="查看二維碼" class="qr-icon" /></button>(👈點選複製新增好友(電話微信同號碼奧))
</p>
<p>也可以通過以下二維碼添加導遊微信:</p>
<p class="ewm">
<img class="lazy-image" data-original="" :data-src="guideQrcode" alt="導遊微信二維碼" />
</p>
<div class="quick-contact">
<p>
如果您沒有微信,也可以點擊下方按鈕留言,我們會盡快回覆:
</p>
<button class="message-btn" @click="openMessageForm">
快速留言
</button>
</div>
</div>
<div class="comments-section">
<h3>評論區</h3>
<div class="comment-input">
<input type="text" v-model="commentText" placeholder="說點什麼吧..." ref="commentInput" />
<button @click="handleCommentSubmit">發送</button>
</div>
<div class="comments-list">
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/3.jpg" alt="用戶頭像" />
<span class="comment-author">暖暖</span>
</div>
<p>
寫的太詳細了,已收藏
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/4.jpg" alt="用戶頭像" />
<span class="comment-author">Siwat</span>
</div>
<p>
剛好有去蘇杭旅遊的計劃,已經加了<span class="guide-name-highlight">{{ guideName}}</span>的微信,<span
class="guide-name-highlight">{{ guideName}}</span>回復的還是很詳細的
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/5.jpg" alt="用戶頭像" />
<span class="comment-author">张方</span>
</div>
<p>
酒店是4星級的嗎?
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/2.jpg" alt="用戶頭像" />
<span class="comment-author">草莓的創富日記</span>
</div>
<p>
<span class="at-color">@张方</span>
您可以根據您的住宿需求讓<span class="guide-name-highlight">{{ guideName}}</span>幫你安排哦,他那邊預訂的都是品質比較好的,這是<span
class="guide-name-highlight">{{ guideName}}</span>的微信:<span class="wechat-id"
@click="copyWechat">{{ wechatId }}</span><button class="view-qr-btn"
@click="showQrCode = true"><img src="config/lookqr.png" alt="查看二維碼"
class="qr-icon" /></button>(👈點選複製新增好友(電話微信同號碼奧))
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/6.jpg" alt="用戶頭像" />
<span class="comment-author">灯火</span>
</div>
<p>
謝謝分享,介紹的很詳細,非常有幫助
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/7.jpg" alt="用戶頭像" />
<span class="comment-author">西西</span>
</div>
<p>
想去玩5-7天,一般怎麼收費的?
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/2.jpg" alt="用戶頭像" />
<span class="comment-author">草莓的創富日記</span>
</div>
<p>
<span class="at-color">@西西</span>
要看線路行程和去蘇杭遊玩的時間哈
</p>
</div>
</div>
</div>
</div>
</article>
<article>
<div class="post-content">
<div class="article-author">
<img class="lazy-image author-avatar" data-original="sh-static/images/8.jpg" alt="作者頭像" />
<div class="author-meta">
<div class="author-name">橘子粥</div>
<div class="author-title">旅遊達人</div>
</div>
</div>
<p>我是去年10月和朋友從香港出發去蘇州和杭州玩了5天,恰逢江南秋季,我們一起看了西湖的紅楓,寒山寺的晚鐘,獅子林的怪石以及烏鎮古鎮的秋水。氣溫16-24度左右,不冷也不熱,整個行程遊玩起來非常的舒適。
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P11.jpg" alt="蘇杭" />
<p>
我們是提前在網絡上找的蘇杭本地導遊<span class="guide-name-highlight">{{
guideName}}</span>(微信:<span class="wechat-id" @click="copyWechat">{{ wechatId }}</span><button
class="view-qr-btn" @click="showQrCode = true"><img src="config/lookqr.png" alt="查看二維碼"
class="qr-icon" /></button>(👈點選複製新增好友(電話微信同號碼奧))全程陪玩,而且<span class="guide-name-highlight">{{
guideName}}</span>還根據我們的時間及需求提前為我們規劃了行程路線。費用人均是2000人民幣不到,包含5天的住宿、用餐、交通以及景點門票,不過需要自己提前訂好往返的機票。建議家庭出行或者第一次來玩的話,可以找<span
class="guide-name-highlight">{{ guideName}}</span>安排家庭小包團或者結伴遊,都是2-8人的小團,行程靈活自由。
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P12.jpg" alt="蘇杭" />
<p>我們出發前也看了蘇杭必去景點,<span class="guide-name-highlight">{{
guideName}}</span>根據我們想去的景點規劃的5天路線基本上都包含了,我也把路線內容分享給你參考:
</p>
<p>第一天🌸落地杭州,免費專車接機至飯店辦理入住
</p>
<p>第二天 🌸上午打卡西溪濕地(國家5A級景區) 下午 14:00 左右出發烏鎮西柵景區一個告別城市喧囂,來過便不曾離開的魅力水鄉(打卡烏鎮郵局 木心美術館 草木本色染坊等景點)
</p>
<p>第三天 🌸烏鎮乘車赴【南潯】,「中國湖筆之都」踏著歷經歲月的青石板,感受藏在青磚灰瓦中的歷史痕跡。
—西塘(最完美的原生態水鄉,瓦當館、紐扣館、《諜中諜3》的拍攝地,遊覽煙雨長廊—江南水鄉中獨一無二的建築)
</p>
<p>第四天🌸西塘--廣福禪寺--河坊街--船遊西湖<br>
參觀廣福禪寺,感受佛教文化傳承。後遊杭州歷史古街河坊街。再搭船遊西湖,體驗「人在畫中游」的意境,漫步在蘇提春曉,花港觀魚,南屏晚鐘,雷峰夕照,雷峰塔,三潭印月,斷橋殘雪等風光無限。
</p>
<p>第五天🌸出發前往蘇州,打卡獨具特色三面環水園林-【獅子林】中國古典私人森林建築代表之一,遊覽【寒山寺】網紅打卡地楓橋,是世界最大的紅木鐘樓寒山別院,最後漫遊【蘇州護城河】【盤門】
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P13.jpg" alt="蘇杭" />
<p>整個蘇杭旅遊行程<span class="guide-name-highlight">{{
guideName}}</span>安排的還是非常合理的,價格也划算人均不到2000元,每個景區都有充足的時間遊玩,而且<span class="guide-name-highlight">{{
guideName}}</span>也非常的有責任感也很細心。你可以根據你自身的情況叫<span class="guide-name-highlight">{{
guideName}}</span>幫你定制旅遊路線,<span class="guide-name-highlight">{{ guideName}}</span>的微信:
<span class="wechat-id" @click="copyWechat">{{ wechatId }}</span><button class="view-qr-btn"
@click="showQrCode = true"><img src="config/lookqr.png" alt="查看二維碼"
class="qr-icon" /></button>(👈點擊複製新增好友, 電話微信同號),有需要可以聯繫他哦
</p>
<p>另外這幾天的住宿,<span class="guide-name-highlight">{{
guideName}}</span>也都是為我們安排的星級飯店,在平台上都是可以查的到資訊的,我们自己體驗過了,非常的棒,環境也很好。
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P14.jpg" alt="蘇杭" />
<p>秋風起,楓葉紅,蘇杭真的是賞秋的不二之選,整理了以下這幾個秋景絕佳地,在我們的行程裡也都有,非常值得一去。
</p>
<p>【杭州·西湖】水氣並山影,蒼茫已作秋。林深喜見寺,岸靜惜移舟。<br>
花港觀魚(紅楓下的金光穿洞)→ 太子灣公園(溪邊紅楓)→ 曲院風荷(拍亭台樓閣與紅楓) → 孤山公園(平湖秋月的秋景) → 北山街 (梧桐大道)→ 集賢亭
【烏鎮】秋風淒切傷離,行客未歸時。塞外草先衰,江南雁到晚。<br>
【蘇州·拙政園】絕憐人境無車馬,信有山林在市城。 <br>
【蘇州·寒山寺】在這裡可以觀賞千年古剎下的紅楓和銀杏,還可以順便去寒山寺旁的楓橋景區,體驗夜泊楓橋的意境
</p>
<p>如果你也計劃前往蘇杭旅行,可以直接諮詢<span class="guide-name-highlight">{{
guideName}}</span>了解詳細的行程和住宿安排。微信號是:<span class="wechat-id" @click="copyWechat">{{ wechatId
}}</span><button class="view-qr-btn" @click="showQrCode = true"><img src="config/lookqr.png"
alt="查看二維碼" class="qr-icon" /></button>(👈點選複製新增好友,電話微信同號),非常值得推薦!
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P15.jpg" alt="蘇杭" />
<p>既然來了江南,肯定要嘗一下江南的特色美食,蘇杭美食以江南菜和本幫菜為主,口味偏甜,以下這幾個代表可以試一試:
</p>
<p>杭州:西湖醋魚、東坡肉、龍井蝦仁等。<br>
蘇州:松鼠桂魚、太湖三白<br>
烏鎮:當地小吃豐富多樣,可以品嚐當地特色
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P16.jpg" alt="蘇杭" />
<p>出去旅遊很多人都會關心花費的問題,以及出行方式,
另外是跟團遊、自由行還是定制遊。所以我這邊推薦<span class="guide-name-highlight">{{ guideName}}</span>,<span
class="guide-name-highlight">{{
guideName}}</span>是蘇杭本地人,對於蘇杭的景點還是非常熟悉的,規劃的行程也非常的合理。如果第一次去蘇杭旅遊不想踩坑,也不想費心做攻略,想省心和省錢又玩的開心,還是提前找<span
class="guide-name-highlight">{{ guideName}}</span>來詳細規劃下,<span class="guide-name-highlight">{{
guideName}}</span>的微信:<span class="wechat-id" @click="copyWechat">{{ wechatId }}</span><button
class="view-qr-btn" @click="showQrCode = true"><img src="config/lookqr.png" alt="查看二維碼"
class="qr-icon" /></button>(👈點擊複製新增好友,
電話微信同號)
</p>
<p>也可以通過以下二維碼添加導遊微信:</p>
<p class="ewm">
<img class="lazy-image" data-original="" :data-src="guideQrcode" alt="導遊微信二維碼" />
</p>
<div class="quick-contact">
<p>
如果您沒有微信,也可以點擊下方按鈕留言,我們會盡快回覆:
</p>
<button class="message-btn" @click="openMessageForm">
快速留言
</button>
</div>
</div>
<div class="comments-section">
<h3>評論區</h3>
<div class="comment-input">
<input type="text" v-model="commentText" placeholder="說點什麼吧..." ref="commentInput" />
<button @click="handleCommentSubmit">發送</button>
</div>
<div class="comments-list">
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/9.jpg" alt="用戶頭像" />
<span class="comment-author">新晴</span>
</div>
<p>
您好,可以推薦下當地導遊嘛?謝謝了
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/8.jpg" alt="用戶頭像" />
<span class="comment-author">橘子粥</span>
</div>
<p>
<span class="at-color">@新晴</span>
蘇杭最佳旅遊季節是春季(3-5月)和秋季(9-11月),氣候宜人且遊客相對較少。夏季較為悶熱,冬季部分地區較冷但景色獨特。建議避開五一、國慶、春節等大型假期。
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/10.jpg" alt="用戶頭像" />
<span class="comment-author">魚魚</span>
</div>
<p>
你好!杭州去蘇州的路線交通可以幫忙推薦一下嘛?
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/11.jpg" alt="用戶頭像" />
<span class="comment-author">Lumpyoo</span>
</div>
<p>
請問適合冬季去嗎
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/12.jpg" alt="用戶頭像" />
<span class="comment-author">雪山</span>
</div>
<p>
非常有幫助,正要準備去,已經加了<span class="guide-name-highlight">{{ guideName}}</span>微信,感謝分享!
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/13.jpg" alt="用戶頭像" />
<span class="comment-author">成雙</span>
</div>
<p>
你好,想請教一些問題,就是現在這個時間比較適合去蘇杭玩嗎?
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/14.jpg" alt="用戶頭像" />
<span class="comment-author">Coisini</span>
</div>
<p>
四月初,兩人,五天假期,想去蘇州和上海
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/15.jpg" alt="用戶頭像" />
<span class="comment-author">岑默</span>
</div>
<p>
兩人,四月下旬五六天。省錢好吃好玩。求推薦
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/16.jpg" alt="用戶頭像" />
<span class="comment-author">小青</span>
</div>
<p>
每天的遊玩時間是幾點到幾點,不想弄得太累
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/17.jpg" alt="用戶頭像" />
<span class="comment-author">明鏡非台</span>
</div>
<p>
整個行程看下來,西湖最漂亮,烏鎮夜景也很好看
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/18.jpg" alt="用戶頭像" />
<span class="comment-author">初五夕顏</span>
</div>
<p>
杭州一直是我想要去的地方呀
</p>
</div>
</div>
</div>
</div>
</article>
<article>
<div class="post-content">
<div class="article-author">
<img class="lazy-image author-avatar" data-original="sh-static/images/19.jpg" alt="作者頭像" />
<div class="author-meta">
<div class="author-name">素餡~</div>
<div class="author-title">旅遊達人</div>
</div>
</div>
<p>
前幾天剛帶孩子從蘇杭遊玩回來,也是朋友推薦的<span class="guide-name-highlight">{{
guideName}}</span>,全程一條龍服務,包含24小時接站,安排星級酒店、門票、餐食、交通等等,而且價格還實惠。他們的團隊在當地資源非常豐富,和大部分景區以及星級酒店都有長期合作,服務也貼心,做事很用心,我們全家對這次的旅行都非常滿意。🌸🌸🌸🌸🌸
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P17.jpg" alt="蘇杭" />
<p>
我們也是找<span class="guide-name-highlight">{{ guideName}}</span>安排的蘇杭水鄉江南之旅,從出發前半個月就開始諮詢<span
class="guide-name-highlight">{{
guideName}}</span>,感覺問題問了一堆,有時候自己都不好意思了,像路線規劃、衣物準備、住宿細節、甚至帶孩子需要注意什麼,他都一一細心回答。這樣的服務真的難得!我們玩了6天,費用不高但體驗超好,真的很省心~推薦聯繫<span
class="guide-name-highlight">{{ guideName}}</span>:<span class="wechat-id" @click="copyWechat">{{
wechatId }}</span><button class="view-qr-btn" @click="showQrCode = true"><img src="config/lookqr.png"
alt="查看二維碼" class="qr-icon" /></button>(👈點選複製新增好友(電話微信同號碼奧))
</p>
<p>他會幫你量身打造行程,導遊帶著走特別安心,而且比自己到處查資料省事太多了!
</p>
<img class="lazy-image post-img" data-original="sh-static/images/P18.jpg" alt="蘇杭" />
<p>也可以通過以下二維碼添加導遊微信:</p>
<p class="ewm">
<img class="lazy-image" data-original="" :data-src="guideQrcode" alt="導遊微信二維碼" />
</p>
<div class="quick-contact">
<p>
如果您沒有微信,也可以點擊下方按鈕留言,我們會盡快回覆:
</p>
<button class="message-btn" @click="openMessageForm">
快速留言
</button>
</div>
</div>
<div class="comments-section">
<h3>評論區</h3>
<div class="comment-input">
<input type="text" v-model="commentText" placeholder="說點什麼吧..." ref="commentInput" />
<button @click="handleCommentSubmit">發送</button>
</div>
<div class="comments-list">
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/20.jpg" alt="用戶頭像" />
<span class="comment-author">毛豆小姐</span>
</div>
<p>
我覺得旅遊就是為了放鬆,享受沿途的風景和心情,自己還要當司機、當導遊、當翻譯就太累了。<span class="guide-name-highlight">{{
guideName}}</span>真的很專業,做旅遊這麼多年,熟門熟路,安排得井井有條。我們走的是上海+蘇州+無錫+杭州線路,全程六天,每人才花兩千多一點,性價比超高,住的吃的都滿意!
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/21.jpg" alt="用戶頭像" />
<span class="comment-author">浮嶼有花07</span>
</div>
<p>
<span class="at-color">@毛豆小姐</span>
哇,這麼便宜又省事?感謝分享~我也馬上加微信問問,最近正想帶家裡人去江南賞花賞景、吃點甜食的~
</p>
</div>
</div>
<div class="comment">
<div class="comment-content">
<div class="comment-info">
<img class="lazy-image comment-avatar" data-original="sh-static/images/20.jpg" alt="用戶頭像" />
<span class="comment-author">毛豆小姐</span>
</div>
<p>
<span class="at-color">@浮嶼有花07</span>
最近春季天氣非常好,尤其是西湖的藍天白雲、景色通透,而且人潮不算多,這時候出遊不但體驗好,機票也便宜不少,趁現在去剛剛好!
</p>
</div>
</div>
</div>
<div class="message-form">
<h4>快速留言</h4>
<form class="contact-form" @submit.prevent="submitForm">
<div class="form-group">
<label for="name">您的稱呼 <span class="required">*</span></label>
<input type="text" id="name" v-model="formData.name" placeholder="請輸入您的稱呼" required />
</div>
<div class="form-group">
<label>聯繫方式 <span class="required">*</span></label>
<div class="contact-options">
<div v-for="option in contactOptions" :key="option.value" class="radio-group"
:class="{ selected: formData.contactType === option.value }"
@click="selectContact(option.value)">
<input type="radio" :id="option.value" name="contact-type" :value="option.value"
v-model="formData.contactType" required />
<label :for="option.value">{{ option.label }}</label>
</div>
</div>
</div>
<div class="form-group" v-if="isLineSelected">
<label for="contact-link" class="contact-label-with-help">
Line鏈接 <span class="required">*</span>
<button type="button" class="line-help-btn" @click="showLineHelp = true">?</button>
</label>
<input type="text" id="contact-link" v-model="formData.number" required placeholder="請輸入Line鏈接" />
<span class="error-message" v-if="phoneError">{{ phoneError }}</span>
</div>
<div class="form-group" v-else>
<label for="contact-number">聯繫號碼 <span class="required">*</span></label>
<input type="tel" id="contact-number" v-model="formData.number" required class="iti-input" />
<span class="error-message" v-if="phoneError">{{ phoneError }}</span>
</div>
<div class="form-group">
<label for="message">留言內容</label>
<textarea id="message" rows="4" v-model="formData.messageContents"
placeholder="請輸入您想諮詢的內容"></textarea>
</div>
<button type="submit" class="submit-btn" :disabled="isSubmitting">{{ isSubmitting ?
'提交中...' : '提交留言'
}}</button>
</form>
</div>
</div>
</article>
</div>
<div class="sidebar">
<div class="sticky-content">
<div class="guide-profile">
<div class="guide-avatar-wrapper">
<img class="lazy-image guide-avatar" data-original="" :data-src="guideAvatar" alt="導遊頭像" />
<span class="verified-badge">✓</span>
</div>
<h3 class="guide-name">
<span class="guide-name-highlight">{{ guideName }}</span>
<span class="guide-tag">金牌導遊</span>
</h3>
</div>
<div class="contact-section">
<img class="lazy-image qr-code" data-original="" :data-src="guideQrcode" alt="導遊微信二維碼" />
<div class="message-alternative">
<button class="message-btn" @click="openMessageForm">
快速留言
</button>
<p class="message-tip">
如果您沒有微信(WeChat),可以點擊「快速留言」留言,我們會在5分鐘內回覆您
</p>
</div>
</div>
</div>
</div>
</div>
</main>
<footer>
<p>
Copyright 2015 廈門萬裡行國際旅行社有限公司 | www.datbox.top | 版權所有 | 聯絡地址:廈門市思明區廈禾路885號頂峰光輝915-916室<br />
<a href="index.html">首頁</a> | <a href="xm.html">廈門</a> | <a href="sh.html">蘇杭</a> | <a href="cq.html">重慶</a> |
<a href="about.html">關於我們</a> | <a href="contact.html">聯係我們</a> | <a href="privacy.html">隱私政策</a>
</p>
</footer>
<div class="modal-overlay" v-if="showMessageForm" @click="showMessageForm = false"></div>
<div class="modal" v-if="showMessageForm">
<div class="modal-content">
<div class="modal-header">
<h4>快速留言</h4>
<button class="close-btn" @click="showMessageForm = false">
×
</button>
</div>
<form class="contact-form" @submit.prevent="submitForm">
<div class="form-group">
<label for="name">您的稱呼 <span class="required">*</span></label>
<input type="text" id="name" v-model="formData.name" placeholder="請輸入您的稱呼" required />
</div>
<div class="form-group">
<label>聯繫方式 <span class="required">*</span></label>
<div class="contact-options">
<div v-for="option in contactOptions" :key="option.value" class="radio-group"
:class="{ selected: formData.contactType === option.value }" @click="selectContact(option.value)">
<input type="radio" :id="option.value" name="contact-type" :value="option.value"
v-model="formData.contactType" required />
<label :for="option.value">{{ option.label }}</label>
</div>
</div>
</div>
<div class="form-group" v-if="isLineSelected">
<label for="contact-link2" class="contact-label-with-help">
Line鏈接 <span class="required">*</span>
<button type="button" class="line-help-btn" @click="showLineHelp = true">?</button>
</label>
<input type="text" id="contact-link2" v-model="formData.number" required placeholder="請輸入Line鏈接" />
<span class="error-message" v-if="phoneError">{{ phoneError }}</span>
</div>
<div class="form-group" v-else>
<label for="contact-number2">聯繫號碼 <span class="required">*</span></label>
<input type="tel" id="contact-number2" v-model="formData.number" required class="iti-input" />
<span class="error-message" v-if="phoneError">{{ phoneError }}</span>
</div>
<div class="form-group">
<label for="message">留言內容</label>
<textarea id="message" rows="4" v-model="formData.messageContents" placeholder="請輸入您想諮詢的內容"></textarea>
</div>
<button type="submit" class="submit-btn" :disabled="isSubmitting">{{ isSubmitting ? '提交中...' :
'提交留言'
}}</button>
</form>
</div>
</div>
<div class="copy-modal" v-if="showCopyModal">
<div class="copy-content">
<button class="close-btn" @click="closeCopyModal">×</button>
<div class="copy-header">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor"
class="bi bi-check-circle-fill" viewBox="0 0 16 16">
<path
d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z" />
</svg>
<h3>微信號已複製</h3>
</div>
<p>微信號:{{ wechatId }}</p>
<p>添加微信好友,詳細了解更多旅遊省錢攻略</p>
<div class="copy-footer">
<button class="secondary-btn" @click="closeCopyModal">
知道了
</button>
<button class="primary-btn" @click="openWeixin">打開微信</button>
</div>
</div>
</div>
<!-- 微信悬浮按钮弹窗 -->
<div class="wechat-modal" v-if="showWechatModal">
<div class="wechat-modal-content">
<button class="close-btn" @click="showWechatModal = false">×</button>
<div class="wechat-modal-header">
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" fill="currentColor" class="bi bi-wechat"
viewBox="0 0 16 16">
<path
d="M11.176 14.429c-2.665 0-4.826-1.8-4.826-4.018 0-2.22 2.159-4.02 4.824-4.02S16 8.191 16 10.411c0 1.21-.65 2.301-1.666 3.036a.324.324 0 0 0-.12.366l.218.81a.616.616 0 0 1 .029.117.166.166 0 0 1-.162.162.177.177 0 0 1-.092-.03l-1.057-.61a.519.519 0 0 0-.256-.074.509.509 0 0 0-.142.021 5.668 5.668 0 0 1-1.576.22ZM9.064 9.542a.647.647 0 1 0 .557-1 .645.645 0 0 0-.646.647.615.615 0 0 0 .09.353Zm3.232.001a.646.646 0 1 0 .546-1 .645.645 0 0 0-.644.644.627.627 0 0 0 .098.356Z" />
<path
d="M0 6.826c0 1.455.781 2.765 2.001 3.656a.385.385 0 0 1 .143.439l-.161.6-.1.373a.499.499 0 0 0-.032.14.192.192 0 0 0 .193.193c.039 0 .077-.01.111-.029l1.268-.733a.622.622 0 0 1 .308-.088c.058 0 .116.009.171.025a6.83 6.83 0 0 0 1.625.26 4.45 4.45 0 0 1-.177-1.251c0-2.936 2.785-5.02 5.824-5.02.05 0 .1 0 .15.002C10.587 3.429 8.392 2 5.796 2 2.596 2 0 4.16 0 6.826Zm4.632-1.555a.77.77 0 1 1-1.54 0 .77.77 0 0 1 1.54 0Zm3.875 0a.77.77 0 1 1-1.54 0 .77.77 0 0 1 1.54 0Z" />
</svg>
</div>
<div class="wechat-modal-body">
<h3>微訊號</h3>
<p>微訊號:{{ wechatId }}</p>
</div>
<div class="wechat-modal-footer">
<button class="secondary-btn" @click="copyWechatNumber">
複製微訊號
</button>
<button class="primary-btn" @click="openWeixin">打開微信</button>
</div>
</div>
</div>
<div class="qr-modal" v-if="showQrCode">
<div class="qr-modal-content">
<div class="qr-modal-header">
<div class="guide-info">
<img class="modal-guide-avatar" :src="guideAvatar" alt="導遊頭像" />
<div class="modal-guide-name">
<span class="guide-name-highlight">{{ guideName }}</span>
<span class="guide-tag">金牌導遊</span>
</div>
</div>
<button class="close-btn" @click="showQrCode = false">
×
</button>
</div>
<div class="qr-modal-body">
<img class="modal-qr-code" :src="guideQrcode" alt="導遊微信二維碼" />
</div>
<div class="qr-modal-footer">
<button class="secondary-btn" @click="saveQrCode">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-download"
viewBox="0 0 16 16">
<path
d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z" />
<path
d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z" />
</svg>
保存二維碼
</button>
<button class="primary-btn" @click="openWeixin">打開微信</button>
</div>
</div>
</div>
<div class="floating-buttons">
<button class="float-btn" @click="showWechatModal = true">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-wechat"
viewBox="0 0 16 16">
<path
d="M11.176 14.429c-2.665 0-4.826-1.8-4.826-4.018 0-2.22 2.159-4.02 4.824-4.02S16 8.191 16 10.411c0 1.21-.65 2.301-1.666 3.036a.324.324 0 0 0-.12.366l.218.81a.616.616 0 0 1 .029.117.166.166 0 0 1-.162.162.177.177 0 0 1-.092-.03l-1.057-.61a.519.519 0 0 0-.256-.074.509.509 0 0 0-.142.021 5.668 5.668 0 0 1-1.576.22ZM9.064 9.542a.647.647 0 1 0 .557-1 .645.645 0 0 0-.646.647.615.615 0 0 0 .09.353Zm3.232.001a.646.646 0 1 0 .546-1 .645.645 0 0 0-.644.644.627.627 0 0 0 .098.356Z" />
<path
d="M0 6.826c0 1.455.781 2.765 2.001 3.656a.385.385 0 0 1 .143.439l-.161.6-.1.373a.499.499 0 0 0-.032.14.192.192 0 0 0 .193.193c.039 0 .077-.01.111-.029l1.268-.733a.622.622 0 0 1 .308-.088c.058 0 .116.009.171.025a6.83 6.83 0 0 0 1.625.26 4.45 4.45 0 0 1-.177-1.251c0-2.936 2.785-5.02 5.824-5.02.05 0 .1 0 .15.002C10.587 3.429 8.392 2 5.796 2 2.596 2 0 4.16 0 6.826Zm4.632-1.555a.77.77 0 1 1-1.54 0 .77.77 0 0 1 1.54 0Zm3.875 0a.77.77 0 1 1-1.54 0 .77.77 0 0 1 1.54 0Z" />
</svg>
</button>
<button class="float-btn" @click="openMessageForm">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
class="bi bi-chat-right-dots-fill" viewBox="0 0 16 16">
<path
d="M16 2a2 2 0 0 0-2-2H2a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h9.586a1 1 0 0 1 .707.293l2.853 2.853a.5.5 0 0 0 .854-.353V2zM5 6a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm4 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 1a1 1 0 1 1 0-2 1 1 0 0 1 0 2z" />
</svg>
</button>
<button class="float-btn" v-show="showBackToTop" @click="scrollToTop">
<svg t="1735545688921" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="4288" data-spm-anchor-id="a313x.search_index.0.i1.601c3a813BwzP4" width="64" height="64">
<path
d="M832 165.76H192c-26.24 0-48 21.76-48 48s21.76 48 48 48h640c26.24 0 48-21.76 48-48s-21.76-48-48-48zM551.04 376.96A58.688 58.688 0 0 0 512 360.32c-12.8 0-29.44 7.04-38.4 16L254.08 595.84c-18.56 18.56-18.56 49.28 0 67.84s49.28 18.56 67.84 0l142.08-142.08v348.16c0 26.24 21.76 48 48 48s48-21.76 48-48V521.6l142.08 142.08c9.6 9.6 21.76 14.08 33.92 14.08s24.32-4.48 33.92-14.08c18.56-18.56 18.56-49.28 0-67.84L551.04 376.96z"
p-id="4289"></path>
</svg>
</button>
</div>
<div class="success-modal" v-if="showSuccessModal">
<div class="success-content">
<div class="success-icon">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
class="bi bi-chat-right-dots-fill" viewBox="0 0 16 16">
<path
d="M16 2a2 2 0 0 0-2-2H2a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h9.586a1 1 0 0 1 .707.293l2.853 2.853a.5.5 0 0 0 .854-.353V2zM5 6a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm4 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 1a1 1 0 1 1 0-2 1 1 0 0 1 0 2z" />
</svg>
</div>
<h3>提交成功</h3>
<p>我們會盡快與您聯繫</p>
<button class="success-btn" @click="showSuccessModal = false">
確定
</button>
</div>
</div>
<div class="alert-modal" v-if="showAlert">
<div class="alert-content">
<p>{{ alertMessage }}</p>
<button @click="showAlert = false">確定</button>
</div>
</div>
<div class="line-help-modal" v-if="showLineHelp" @click.self="showLineHelp = false">
<div class="line-help-content">
<div class="modal-header">
<h4>Line鏈接獲取示例</h4>
<button class="close-btn" @click="showLineHelp = false">×</button>
</div>
<img class="line-help-image" src="sh-static/images/line-example.jpg" alt="Line鏈接獲取示例" />
<p class="line-help-text">請在Line軟體中,點擊二維碼下方的「複製鏈接」,再將鏈接貼到此處提交。</p>
</div>
</div>
<!-- 注册弹窗 -->
<div class="comment-register-modal" v-if="showCommentRegister">
<div class="modal-content">
<div class="modal-header">
<h4>請完成註冊</h4>
<button class="close-btn" @click="showCommentRegister = false">
×
</button>
</div>
<form class="register-form" @submit.prevent="submitCommentRegister">
<div class="form-group">
<label>聯繫方式 <span class="required">*</span></label>
<div class="contact-options">
<div v-for="option in contactOptions" :key="option.value" class="radio-group"
:class="{ selected: commentRegisterData.contact === option.value }"
@click="selectCommentContact(option.value)">
<input type="radio" :id="'comment-' + option.value" name="comment-contact-type" :value="option.value"
v-model="commentRegisterData.contact" required />
<label :for="'comment-' + option.value">{{ option.label }}</label>
</div>
</div>
</div>
<div class="form-group">
<label for="comment-contact-number">聯繫號碼 <span class="required">*</span></label>
<input type="text" id="comment-contact-number" v-model="commentRegisterData.number" required />
<span class="error-message" v-if="commentPhoneError">{{ commentPhoneError }}</span>
</div>
<button type="submit" class="submit-btn">提交</button>
</form>
</div>
</div>
</div>
<script>
// 从Vue中导入所需的组合式API函數
const { createApp, ref, onMounted, nextTick, watch, computed } = Vue;
createApp({
setup() {
// 控制留言表單顯示狀態
const showMessageForm = ref(false);
// 添加节流标志
const isSubmitting = ref(false);
// 表單數據對象 (参考第一段使用 kefuData[1])
const formData = ref({
name: "",
contactType: "",
number: "",
messageContents: "",
url: window.location.href.split('?')[0],
sysAreaId: kefuData[1].address,
customerServiceId: kefuData[1].customerServiceId,
officeId: kefuData[1].office
});
// 微信號和複製相關的狀態
const wechatId = kefuData[1].weChat;
const showCopyModal = ref(false);
const showWechatModal = ref(false);
const countdown = ref(3);
// 複製微信號到剪貼板的函數
const copyWechat = async () => {
try {
await navigator.clipboard.writeText(wechatId);
showCopyModal.value = true;
} catch (err) {
alert("複製失敗,請手動複製");
}
};
// 複製固定微信號到剪貼板的函數
const copyWechatNumber = async () => {
try {
await navigator.clipboard.writeText(wechatId);
showCopyModal.value = true;
showWechatModal.value = false;
} catch (err) {
alert("複製失敗,請手動複製");
}
};
// 保存二维码到本地
const saveQrCode = () => {
const qrImg = document.querySelector('.modal-qr-code');
if (!qrImg || !qrImg.src) {
alert('無法獲取二維碼圖片');
return;
}
const link = document.createElement('a');
link.href = qrImg.src;
link.download = '導遊微信二維碼.png';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};
const closeCopyModal = () => {
showCopyModal.value = false;
};
// 打开微信
const openWeixin = () => {
// 尝试打开微信应用
window.location.href = 'weixin://';
};
const contactOptions = [
{ value: 1, label: "WeChat" },
{ value: 2, label: "Line" },
{ value: 3, label: "WhatsApp" },
{ value: 4, label: "Telephone" },
];
const showLineHelp = ref(false);
// 新增:判断是否选择了 Line (参考第一段逻辑)
const isLineSelected = computed(() => Number(formData.value.contactType) === 2);
// 電話驗證相關
const phoneError = ref("");
let iti = null;
// 初始化国际电话插件
const initIntlInput = (selector) => {
const input = document.querySelector(selector);
if (!input || isLineSelected.value) return;
iti = window.intlTelInput(input, {
utilsScript: "https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/utils.js",
preferredCountries: ["cn", "mo", "hk", "tw", "sg", "my"],
separateDialCode: true,
initialCountry: "auto",
geoIpLookup: function (success, failure) {
axios.get("https://ipinfo.io")
.then(res => success(res.data.country))
.catch(() => success("cn"));
},
});
};
const selectContact = (value) => {
formData.value.contactType = value;
phoneError.value = "";
// 如果选中Line,销毁插件
if (Number(value) === 2 && iti) {
iti.destroy();
iti = null;
}
};
// 监听 Line 选择状态,动态挂载插件
watch(isLineSelected, (isLine) => {
if (isLine) return;
nextTick(() => {
const selector = showMessageForm.value ? "#contact-number2" : "#contact-number";
initIntlInput(selector);
});
});
// 驗證電話號碼
const validatePhone = () => {
if (isLineSelected.value) {
const lineValue = (formData.value.number || "").trim();
if (!/^https?:\/\//i.test(lineValue)) {
phoneError.value = "請輸入有效的Line鏈接(需以http://或https://開頭)";
return false;
}
phoneError.value = "";
return true;
}
if (!iti) {
phoneError.value = "請輸入有效的電話號碼";
return false;
}
if (iti.isValidNumber()) {
phoneError.value = "";
return true;
} else {
switch (iti.getValidationError()) {
case 1: phoneError.value = "無效的國家代碼"; break;
case 2: phoneError.value = "號碼太短"; break;
case 3: phoneError.value = "號碼太長"; break;
default: phoneError.value = "請輸入有效的電話號碼";
}
return false;
}
};
// 提交表單
const submitForm = () => {
if (isSubmitting.value) return;
isSubmitting.value = true;
if (!validatePhone()) {
isSubmitting.value = false;
return;
}
if (!isLineSelected.value && iti) {
formData.value.number = iti.getNumber();
}
axios.post("https://api.cernty.com/promo-monitor/googleForm/add", formData.value)
.then(() => {
showSuccessModal.value = true;
formData.value = {
name: "", contactType: "", number: "", messageContents: "",
url: window.location.href.split('?')[0],
sysAreaId: kefuData[1].address,
customerServiceId: kefuData[1].customerServiceId,
officeId: kefuData[1].office
};
showMessageForm.value = false;
if (iti) iti.setNumber("");
})
.catch(err => console.error("API Error:", err))
.finally(() => isSubmitting.value = false);
};
// 導遊相關信息
const guideName = kefuData[1].name;
const guideAvatar = kefuData[1].avatar;
const guideQrcode = kefuData[1].qrcode;
const showQrCode = ref(false);
const showSuccessModal = ref(false);
const showBackToTop = ref(false);
onMounted(() => {
initIntlInput("#contact-number");
// 优化后的滚动监听
window.addEventListener("scroll", () => {
showBackToTop.value = window.scrollY > 500;
}, { passive: true });
});
const scrollToTop = () => {
window.scrollTo({ top: 0, behavior: "smooth" });
};
// 评论与注册逻辑 (保持原样并应用iti优化)
const showAlert = ref(false);
const alertMessage = ref("");
const showCommentRegister = ref(false);
const commentRegisterData = ref({ contact: "", number: "" });
const commentPhoneError = ref("");
const commentText = ref(0);
const isRegistered = ref(false);
const selectCommentContact = (value) => commentRegisterData.value.contact = value;
const handleCommentSubmit = () => {
if (!commentText.value.trim()) {
alertMessage.value = "請先輸入評論內容";
showAlert.value = true;
return;
}
if (!isRegistered.value) {
showCommentRegister.value = true;
nextTick(() => initIntlInput("#comment-contact-number"));
return;
}
alertMessage.value = "評論提交成功,等待審核";
showAlert.value = true;
commentText.value = "";
};
// 图片懒加载逻辑 (第二段特色)
const lazyLoadImages = () => {
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const img = entry.target;
const src = img.getAttribute('data-src') || img.getAttribute('data-original');
if (src) img.setAttribute('src', src);
img.classList.add('loaded');
observer.unobserve(img);
}
});
}, { threshold: 0.1 });
document.querySelectorAll('.lazy-image').forEach(img => observer.observe(img));
};
onMounted(() => {
lazyLoadImages();
window.addEventListener('resize', lazyLoadImages);
});
const openMessageForm = () => {
showMessageForm.value = true;
nextTick(() => {
if (!isLineSelected.value) initIntlInput("#contact-number2");
});
};
return {
showMessageForm, formData, contactOptions, selectContact, submitForm,
wechatId, showCopyModal, showWechatModal, countdown, copyWechat, copyWechatNumber, guideName, guideAvatar,
guideQrcode, showQrCode, showSuccessModal, scrollToTop, showBackToTop,
showAlert, alertMessage, showCommentRegister, commentRegisterData,
selectCommentContact, commentText, isRegistered, handleCommentSubmit,
phoneError, validatePhone, openMessageForm, closeCopyModal, openWeixin,
isSubmitting, saveQrCode, isLineSelected, showLineHelp, lazyLoadImages
};
},
}).mount("#app");
// 注入第一段中的滚动位置恢复逻辑
(function () {
const saveScrollPosition = () => {
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
sessionStorage.setItem('scrollPosition', scrollTop);
};
window.addEventListener('beforeunload', saveScrollPosition);
setTimeout(() => {
const savedPosition = sessionStorage.getItem('scrollPosition');
if (savedPosition) {
window.scrollTo({ top: parseInt(savedPosition, 10), behavior: 'instant' });
}
}, 800);
})();
</script>
</body>
</html>