Showing
2 changed files
with
6 additions
and
20 deletions
| 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">展开 | 12 | + <div v-if="isToggle" @click="isToggle = false" class="book-toggle-icon">展开 |
| 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">折叠 | 15 | + <div v-else @click="isToggle = true" class="book-toggle-icon">折叠 |
| 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 | /** | ... | ... |
-
Please register or login to post a comment