hookehuyr

✨ feat(书籍详情页): 展开搜索简介功能优化调整

1 import moment from 'moment'; 1 import moment from 'moment';
2 +import { ref, nextTick } from 'vue'
2 3
3 // 格式化时间 4 // 格式化时间
4 const formatDate = (date) => { 5 const formatDate = (date) => {
...@@ -24,7 +25,7 @@ const wxInfo = () => { ...@@ -24,7 +25,7 @@ const wxInfo = () => {
24 */ 25 */
25 const hasEllipsis = (id) => { 26 const hasEllipsis = (id) => {
26 let oDiv = document.getElementById(id); 27 let oDiv = document.getElementById(id);
27 - let flag = false 28 + let flag = ref(false); // 关键,接收值必须都可监听
28 if (oDiv.scrollHeight > oDiv.clientHeight) { 29 if (oDiv.scrollHeight > oDiv.clientHeight) {
29 flag = true 30 flag = true
30 } 31 }
......
...@@ -9,10 +9,10 @@ ...@@ -9,10 +9,10 @@
9 <p class="book-post">{{ bookInfo.name }}</p> 9 <p class="book-post">{{ bookInfo.name }}</p>
10 <div id="book-intro" :class="{ 'van-multi-ellipsis--l3': isToggle }">{{ bookInfo.note }}</div> 10 <div id="book-intro" :class="{ 'van-multi-ellipsis--l3': isToggle }">{{ bookInfo.note }}</div>
11 <div v-if="hasToggle"> 11 <div v-if="hasToggle">
12 - <div v-if="isToggle" @click="onToggle(false)" class="book-toggle-icon">展开&nbsp; 12 + <div v-if="isToggle" @click="isToggle = false" class="book-toggle-icon">展开&nbsp;
13 <van-icon style="vertical-align: middle;" size="0.9rem" :name="icon_down" /> 13 <van-icon style="vertical-align: middle;" size="0.9rem" :name="icon_down" />
14 </div> 14 </div>
15 - <div v-else @click="onToggle(true)" class="book-toggle-icon">折叠&nbsp; 15 + <div v-else @click="isToggle = true" class="book-toggle-icon">折叠&nbsp;
16 <van-icon style="vertical-align: middle;" size="0.9rem" :name="icon_up" /> 16 <van-icon style="vertical-align: middle;" size="0.9rem" :name="icon_up" />
17 </div> 17 </div>
18 </div> 18 </div>
...@@ -116,7 +116,7 @@ ...@@ -116,7 +116,7 @@
116 </template> 116 </template>
117 117
118 <script setup> 118 <script setup>
119 -import { ref, nextTick, onActivated, onMounted, onUpdated } from 'vue' 119 +import { ref, onActivated, nextTick } from 'vue'
120 import { useRoute, useRouter, onBeforeRouteLeave } from 'vue-router' 120 import { useRoute, useRouter, onBeforeRouteLeave } from 'vue-router'
121 121
122 import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, hasEllipsis } from '@/utils/generatePackage.js' 122 import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, hasEllipsis } from '@/utils/generatePackage.js'
...@@ -137,24 +137,9 @@ const { donateItem } = useDefaultPerf($route.query.id); ...@@ -137,24 +137,9 @@ const { donateItem } = useDefaultPerf($route.query.id);
137 const hasToggle = ref(false); // 判断是否有展开文字,默认没有 137 const hasToggle = ref(false); // 判断是否有展开文字,默认没有
138 const isToggle = ref(true); // 判断展开状态,默认展开 138 const isToggle = ref(true); // 判断展开状态,默认展开
139 139
140 -/** 140 +nextTick(() => {
141 - * 展开/折叠
142 - * @param {*} v
143 - */
144 -const onToggle = (v) => {
145 - isToggle.value = v
146 -}
147 -
148 -// DOM操作需要等待执行
149 -setTimeout(() => {
150 // 判断是否显示简介的展开图标 141 // 判断是否显示简介的展开图标
151 - // nextTick(() => {
152 - // hasToggle.value = hasEllipsis('book-intro');
153 - // })
154 hasToggle.value = hasEllipsis('book-intro'); 142 hasToggle.value = hasEllipsis('book-intro');
155 -}, 500);
156 -onUpdated(() => {
157 - // hasToggle.value = hasEllipsis('book-intro');
158 }) 143 })
159 144
160 /** 145 /**
......