解决鸿蒙兼容问题

This commit is contained in:
icssoa
2025-08-27 19:00:26 +08:00
parent 65ff959d20
commit e0145091d3
3 changed files with 37 additions and 20 deletions

View File

@@ -93,7 +93,17 @@
<script setup lang="ts">
import { ref, computed, type PropType, nextTick } from "vue";
import { isDark, isEmpty, isMp, isNull, parseClass, parsePt, parseRpx, rpx2px } from "@/cool";
import {
isDark,
isEmpty,
isHarmony,
isMp,
isNull,
parseClass,
parsePt,
parseRpx,
rpx2px
} from "@/cool";
import type { ClSelectTriggerPassThrough } from "../cl-select-trigger/props";
import type { ClPopupPassThrough } from "../cl-popup/props";
import { t } from "@/locale";

View File

@@ -24,6 +24,7 @@
@refresherabort="onRefresherAbort"
>
<!-- 下拉刷新 -->
<!-- #ifndef APP-HARMONY -->
<view
slot="refresher"
class="cl-list-view__refresher"
@@ -49,6 +50,7 @@
<cl-text> {{ refresherText }} </cl-text>
</slot>
</view>
<!-- #endif -->
<!-- 列表 -->
<view

View File

@@ -26,7 +26,7 @@
</template>
<script lang="ts" setup>
import { isEmpty, router } from "@/cool";
import { isEmpty, isHarmony, router } from "@/cool";
import { computed, getCurrentInstance, nextTick, onMounted, reactive, ref, watch } from "vue";
import { usePage } from "../../hooks";
@@ -106,6 +106,8 @@ const stickyTop = computed(() => {
// 获取sticky元素的位置信息并更新rect
function getRect() {
nextTick(() => {
setTimeout(
() => {
uni.createSelectorQuery()
.in(proxy)
.select(".cl-sticky")
@@ -125,6 +127,9 @@ function getRect() {
// top需要减去offsetTop并加上当前滚动距离保证吸顶准确
rect.top = (node.top ?? 0) - props.offsetTop + scrollTop.value;
});
},
isHarmony() ? 300 : 0
);
});
}
@@ -156,10 +161,10 @@ defineExpose({
<style lang="scss" scoped>
.cl-sticky {
@apply relative;
@apply relative w-full;
&.is-active {
@apply fixed;
@apply fixed w-full;
}
}
</style>