当前位置: 首页 > wzjs >正文

青岛网站制作系统北京百度推广优化排名

青岛网站制作系统,北京百度推广优化排名,投标网站怎么做,夏邑做网站table表格流体高度 1、前提 了解自定义指令、hooks 2、核心思路 通过自定义指令(new ResizeObserver)监听表格变化,然后通过hooks去更新表格高度。 3、核心代码 src/directives/resize.ts // import { debounce } from /utils;import { t…

table表格流体高度

1、前提

了解自定义指令、hooks

2、核心思路

通过自定义指令(new ResizeObserver)监听表格变化,然后通过hooks去更新表格高度。

3、核心代码

src/directives/resize.ts

// import { debounce } from '@/utils';import { type Directive } from "vue";const resizeDirective: Directive = {mounted(el, binding) {// update 要高效,否则会导致 ResizeObserver loop completed with undelivered notifications.// 这里通过 setTimeout 延迟实际更新到下个 ticklet update = (entry: ResizeObserverEntry) => {setTimeout(() => {binding.value(entry);}, 0);};if (binding.arg) {try {let delay = Number.parseInt(binding.arg);console.log(delay);// update = debounce(binding.value, delay);} catch (error) {console.log(error);}}// 创建 ResizeObserver 实例const resizeObserver = (el.__resizeObserver__ = new ResizeObserver((entries) => {// 当目标元素的大小发生变化时,执行回调函数update(entries[0]);}));// 开始监听目标元素的大小变化resizeObserver.observe(el);},unmounted(el) {el.__resizeObserver__.disconnect();},
};export default resizeDirective;

src/hooks/useTableConfig.ts

import { type TableInstance } from "element-plus";/** 获取表格的基本配置 */
export const useTableConfig = <T>(padding: number = 20) => {const tableLoading = ref<boolean>(false);const pageData = ref<T[]>([]);const total = ref<number>(0);const tableRef = ref<TableInstance | null>(null);const selectedTableIds = ref<string[]>([]);/**表格高度 */const tableFluidHeight = ref<number>(0);const tableResize = (rect: DOMRectReadOnly) => {tableFluidHeight.value = rect.height - padding * 2;};return {tableLoading,pageData,total,tableRef,selectedTableIds,tableFluidHeight,tableResize,};
};

这里padding:20的原因是

 src/components/BaseTableSearchContainer/index.vue

<template><div class="flex flex-col h-full"><slot name="search" /><div ref="centerRef" v-resize="onResize" class="flex-1 overflow-auto"><div :class="centerClass" class="p-20px bg-light-50"><slot name="table" /></div></div><div style="background: white"><slot name="pagination" /></div></div>
</template><script setup lang="ts">
import { useTemplateRef } from "vue";
defineProps({ centerClass: { type: String, default: "" } });
const emit = defineEmits(["sizeChanged"]);const centerRef = useTemplateRef<HTMLElement>("centerRef");
const onResize = (e: ResizeObserverEntry) => {// console.log("resize", e, centerRef.value, centerRef.value?.getBoundingClientRect().height);emit("sizeChanged", e.contentRect);
};
</script><style lang="scss" scoped></style>

使用:

<template><div class="app-container"><BaseTableSearchContainer @size-changed="tableResize"><template #search><TBSearchContainer :is-show-toggle="true"><template #left> </template><template #right> </template></TBSearchContainer></template><template #table><el-tableref="tableRef"v-loading="tableLoading":data="pageData"highlight-current-rowrow-key="Id"border:height="tableFluidHeight"style="text-align: center; flex: 1"@select="handleTableSelect"@select-all="handleTableSelect"></el-table></template><template #pagination><Paginationv-if="total > 0"v-model:total="total"v-model:page="queryParams.pageIndex"v-model:limit="queryParams.pageSize"@pagination="handleGetTableList"/></template></BaseTableSearchContainer></div>
</template><script setup lang="ts">
const {tableLoading,pageData,total,tableRef,tableFluidHeight,tableResize,
} = useTableConfig<MoItemPackItem>();
</script><style scoped lang="scss"></style>

http://www.dtcms.com/wzjs/251721.html

相关文章:

  • 南京网站销售百度旗下产品
  • qq登录网站怎么做b2b网站平台有哪些
  • 房地产企业网站建设网店代运营合同
  • wordpress 客户端搜索引擎优化概述
  • 服装网站建设目的网络营销电子版教材
  • jsp网站建设项目实战总结网页制作html代码
  • 所有网站排名2015年西安网站建设公司排名
  • 青岛seo网站排名优化东莞做网站推广
  • 网站建设咨询云尚网络网络营销的未来6个发展趋势
  • phicomm怎么做网站百度网址大全网址导航
  • 有人做几个蝎子养殖门户网站2022年热点营销案例
  • 深圳做的好的电子行业招聘网站长沙专业网站制作
  • 怎么在自己的网站加关键词杭州seo整站优化
  • 网站怎么做背景不变页面滑动seo关键词排名优化报价
  • 烟台网站建设公司报价百度站长工具网站提交
  • 化妆品网站开发可行性做网络推广费用
  • 做网站 服务器多少钱一年南昌seo排名优化
  • 一个网站可以做几个关键词企业网站建设需要多少钱
  • 批发网站建设app制作费用一览表
  • 房地产网站建设流程滕州seo
  • 长宁哪里有做网站优化比较好迅雷磁力链bt磁力天堂
  • 电商网站的活动怎么做seo外链发布技巧
  • 网站上的链接怎么做的网站seo服务公司
  • wordpress文章存档插件seo黑帽技术有哪些
  • 制作一个网页要多少钱石家庄百度seo
  • 什么操作系统做网站营销新闻
  • 新建网站站点的鸿科经纬教网店运营推广
  • 免费加速器永久免费版不用登录seo排名赚app多久了
  • 网站架构分类西安自动seo
  • 凡客网站规划与建设pptseo查询是什么