From 173e05c13a484382a675a97843b8ac8fbe6f5a67 Mon Sep 17 00:00:00 2001 From: "DESKTOP-RQ919RC\\Pc" <1300399510@qq.com> Date: Mon, 19 May 2025 19:00:09 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E7=BB=84=E4=BB=B6):=20=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E5=86=97=E4=BD=99=E4=BB=A3=E7=A0=81=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=A0=B7=E5=BC=8F=E5=92=8C=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除`imageWatch.vue`中的冗余变量`index`,优化`apartmentDetail.css`和`apartmentDetail.less`中的样式,增加`cursor: pointer`和`align-items: flex-start`等属性。在`user.vue`中移除调试日志并优化数据处理逻辑。在`apartment-item.vue`中恢复并优化点评展示功能。在`apartmentDetail.vue`中重构点评展示逻辑,增加点评类型切换功能,并优化数据加载和展示逻辑。 --- src/assets/styles/apartmentDetail.css | 3 + src/assets/styles/apartmentDetail.less | 3 + src/components/detail/imageWatch.vue | 1 - src/components/public/apartment-item.vue | 10 +- src/views/apartmentDetail.vue | 187 +++++++++++++++++------ src/views/user.vue | 5 +- 6 files changed, 156 insertions(+), 53 deletions(-) diff --git a/src/assets/styles/apartmentDetail.css b/src/assets/styles/apartmentDetail.css index f5a1d5a..6aad4c0 100644 --- a/src/assets/styles/apartmentDetail.css +++ b/src/assets/styles/apartmentDetail.css @@ -550,6 +550,7 @@ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.11764706); padding: 24px 30px 28px; margin-bottom: 20px; + cursor: pointer; } .content .details-box .details-left .remark .head { justify-content: space-between; @@ -604,6 +605,7 @@ background-color: #f6f6f6; border-radius: 8px; padding-left: 20px; + align-items: flex-start; } .content .details-box .details-left .remark .inspect .left { padding: 18px 0; @@ -626,6 +628,7 @@ color: #50e3c2; font-size: 13px; height: 20px; + line-height: 20px; background-color: rgba(246, 246, 246, 0); border: 1px solid #50e3c2; border-radius: 30px; diff --git a/src/assets/styles/apartmentDetail.less b/src/assets/styles/apartmentDetail.less index 41199be..c2b514f 100644 --- a/src/assets/styles/apartmentDetail.less +++ b/src/assets/styles/apartmentDetail.less @@ -709,6 +709,7 @@ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.117647058823529); padding: 24px 30px 28px; margin-bottom: 20px; + cursor: pointer; .head { justify-content: space-between; @@ -773,6 +774,7 @@ background-color: rgba(246, 246, 246, 1); border-radius: 8px; padding-left: 20px; + align-items: flex-start; .left { padding: 18px 0; @@ -801,6 +803,7 @@ color: #50e3c2; font-size: 13px; height: 20px; + line-height: 20px; background-color: rgba(246, 246, 246, 0); border: 1px solid rgba(80, 227, 194, 1); border-radius: 30px; diff --git a/src/components/detail/imageWatch.vue b/src/components/detail/imageWatch.vue index a800c96..bba3ea6 100644 --- a/src/components/detail/imageWatch.vue +++ b/src/components/detail/imageWatch.vue @@ -20,7 +20,6 @@ - {{ index }}
{{ `${imageTab + 1}/${list.length}` }}
diff --git a/src/components/public/apartment-item.vue b/src/components/public/apartment-item.vue index b2f0784..f5275a6 100644 --- a/src/components/public/apartment-item.vue +++ b/src/components/public/apartment-item.vue @@ -10,13 +10,13 @@
{{ item.title }}
- +
{{ item.comment.content }}
+
diff --git a/src/views/apartmentDetail.vue b/src/views/apartmentDetail.vue index 6f76154..1040ae1 100644 --- a/src/views/apartmentDetail.vue +++ b/src/views/apartmentDetail.vue @@ -161,45 +161,47 @@
-
+
寄托实地考察
- 2 + {{ spotSum }}
- -
寄托方同学
- + +
{{ spotObj.nickname }}
+
-
交通和生活都非常便利,交通和生活都非常便利,交通和生活都非常便利,房间整洁完善,拎包入住没问题!周围五百米内,超市…
+
{{ spotObj.content }}
- +
-
+
寄托回访
- 3 + {{ returnSum }}
-
-
- -
寄托方同学
-
已入住
+
@@ -620,35 +622,40 @@
-->
-
全部 4
-
寄托实地考察 2
-
寄托回访 2
+
全部 {{ spotSum + returnSum }}
+
寄托实地考察 {{ spotSum }}
+
寄托回访 {{ returnSum }}
-
- -
-
- - - 寄托实地考察 -
-
- 寄托方同学 -
已入住
- -
-
2025.3.15
-
交通和生活都非常便利,房间整洁完善,拎包入住没问题!周围五百米内,超市、购物广场及娱乐设施应有尽有。步行至地铁口仅需3分钟! 所有房间都有大窗,基本都朝南,每个房间阳光都很充足,窗外是公园。所有房间可以看到绿树,公园,很开阔,不压抑。真是非常难得的窗景! 客服小COCO24小时在线,每日提供清洁服务,妥妥的生活无忧!
-
-
- - +
@@ -907,11 +914,9 @@ const init = () => { handleNavData(); getFacilitiesHeight(); getDetailsHeight(); - getLikeList(); getMapDistance(); - - if (!data.info.promotionalactivities) navTab.value = "inspectEle"; + getComment(); }); if (data.withsameapartments > 0) dualBrandData(); @@ -1080,8 +1085,17 @@ let navList = ref([]); let navTab = ref("specialEle"); +// 初始化 判断 navTab 值 +const initNavTab = () => { + if (info.value.promotionalactivities) navTab.value = "specialEle"; + else if (spotSum.value > 0) navTab.value = "inspectEle"; + else if (returnSum.value > 0) navTab.value = "followEle"; + else navTab.value = "roomEle"; +}; + // 处理 navList 数据 const handleNavData = () => { + navList.value = []; navconfig.forEach((element) => { if (eval(element["value"]).value) navList.value.push(element); }); @@ -1419,8 +1433,6 @@ const openMap = () => { }; const roomCollect = (id, index) => { - console.log(id, index); - proxy.$post("https://api.gter.net/v1/apartment/roomCollection", { id }).then((res) => { if (res.code != 200) return; const data = res.data; @@ -1430,6 +1442,93 @@ const roomCollect = (id, index) => { }; let isInspectPop = ref(false); +let spotObj = ref({}); +let spotSum = ref(0); +let returnSum = ref(0); +let remarkList = ref([]); +let remarkTypeid = ref(0); // 0 全部 1 考察 2 回访 + +const getComment = () => { + proxy + .$post("https://api.gter.net/v1/apartment/comment", { token }) + .then((res) => { + if (res.code != 200) return; + let data = res.data || []; + let spot = null; // 实地考察 + let sSum = 0; + let rSum = 0; + data.forEach((element) => { + element.date = formatDate(element.created_at); + + // 合并视频和图片资源 + element.sources = [ + ...(element.attachment.videos || []).map((video) => ({ + type: "videos", + thumbnail: video.cover, + poster: video.cover, + videourl: video.url, + })), + ...(element.attachment.images || []).map((image) => ({ + type: "attachment", + imageurl: image.url, + thumbnail: image.cover, + })), + ]; + + // 分类统计 + element.typeid === 1 ? ((spot = element), sSum++) : rSum++; + }); + + spotObj.value = spot; + remarkList.value = data; + spotSum.value = sSum; + returnSum.value = rSum; + + nextTick(() => { + handleNavData(); + initNavTab(); + }); + }) + .catch((err) => { + initNavTab(); + }); +}; + +const formatDate = (dateStr) => { + const date = new Date(dateStr); + const year = date.getFullYear(); + const month = date.getMonth() + 1; // 月份从 0 开始 + const day = date.getDate(); + + // 移除前导零(如果需要) + return `${year}.${month}.${day}`; +}; + +const openInspectPop = () => { + isInspectPop.value = true; +}; + +const previewImg = (index, i) => { + const list = remarkList.value || []; + // const url = e.currentTarget.dataset.url; + + // if (url) { + // list.forEach((element, indexi) => { + // (element.sources || []).forEach((element, indexii) => { + // if (url == element.poster) { + // index = indexi; + // i = indexii; + // } + // }); + // }); + // } + + const sources = list[index].sources || []; + cloaseImageShow(sources, i, "inspect"); +}; + +// 切换点评 +const cutRemarkType = (value) => (remarkTypeid.value = value);