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

照片网站模板seo多久可以学会

照片网站模板,seo多久可以学会,网站 短链接怎么做,零基础学前端要多久才能成手一、入库查询,实现表格列宽设置本地持久化 MaterialInQuery.vue 在原有代码基础上,增加【设置表格列宽,组合式函数 hook】相关的增量代码 特点: 1、导入设置表格列宽,组合式函数 hook、表格扩展实例类型、表格列配…

一、入库查询,实现表格列宽设置本地持久化

MaterialInQuery.vue

在原有代码基础上,增加【设置表格列宽,组合式函数 hook】相关的增量代码

特点:

1、导入设置表格列宽,组合式函数 hook、表格扩展实例类型、表格列配置接口

2、const 表格实例对象、表格列配置列表

3、const 设置表格列宽,使用 ref 定义,const setTableColumnWidth = ref<any>(null);

4、onMounted、nextTick、将 useSetTableColumnWidth(...) 赋值给设置表格列宽

5、加载表格列宽 loadColumnWidth

6、el-table 设置 ref="tableRef"、@header-dragend="setTableColumnWidth?.saveColumnWidth"

7、拖动列宽变化时,自动触发@header-dragend,保存表格列宽到本地存储空间

<script setup lang="ts" name="MaterialInQuery">......import { useSetTableColumnWidth } from "@/hooks/useSetTableColumnWidth";
import type { ElTableExtendedInstance, IColumnConfig } from "@/interface";......// 表格实例对象
const tableRef = ref<ElTableExtendedInstance | null>(null);
// 表格列配置列表
const columnConfigs = ref<IColumnConfig[]>([{ prop: "rkNo", label: "入库编号", width: 120 },{ prop: "jzDatetime", label: "记账时间", width: 165 },{ prop: "supplier", label: "供应厂商", width: 300 },{ prop: "total", label: "入库总额", width: 120 },{ prop: "remark", label: "备注信息", width: 250 }
]);
// 设置表格列宽,使用 ref 定义,先用 null 占位,然后在 onMounted 中,等待表格渲染完毕,再赋值 useTableColumnWidth 组合式函数 hook
const setTableColumnWidth = ref<any>(null);......onMounted(async () => {// 等待表格渲染完成await nextTick();// 对应 const setTableColumnWidth = ref<any>(null);if (tableRef.value) {setTableColumnWidth.value = useSetTableColumnWidth(tableRef, columnConfigs, ref("MaterialInQuery_rkMaster"));}// 加载表格列宽setTableColumnWidth.value?.loadColumnWidth();
});
</script><template>......<el-tableref="tableRef"......@header-dragend="setTableColumnWidth?.saveColumnWidth">......</template>

二、出库查询,实现表格列宽设置本地持久化

MaterialOutQuery.vue

在原有代码基础上,增加【设置表格列宽,组合式函数 hook】相关的增量代码

特点:

1、导入设置表格列宽,组合式函数 hook、表格扩展实例类型、表格列配置接口

2、const 表格实例对象、表格列配置列表

3、const 设置表格列宽,使用 computed 定义组合式函数 hook

4、onMounted、nextTick

5、加载表格列宽 loadColumnWidth

6、el-table 设置 ref="tableRef"、@header-dragend="setTableColumnWidth?.saveColumnWidth"

7、拖动列宽变化时,自动触发@header-dragend,保存表格列宽到本地存储空间

<script setup lang="ts" name="MaterialOutQuery">......import { useSetTableColumnWidth } from "@/hooks/useSetTableColumnWidth";
import type { ElTableExtendedInstance, IColumnConfig } from "@/interface";......// 表格实例对象
const tableRef = ref<ElTableExtendedInstance | null>(null);
// 表格列配置列表
const columnConfigs = ref<IColumnConfig[]>([{ prop: "ckNo", label: "出库编号", width: 120 },{ prop: "jzDatetime", label: "记账时间", width: 165 },{ prop: "llDeptId", label: "领取部门", width: 300 },{ prop: "total", label: "出库总额", width: 120 },{ prop: "remark", label: "备注信息", width: 250 }
]);
// 设置表格列宽,使用 computed 定义组合式函数 hook,并且自动处理 null 情况
const setTableColumnWidth = computed(() => {return tableRef.value ? useSetTableColumnWidth(tableRef, columnConfigs, ref("MaterialOutQuery_ckMaster")) : null;
});......onMounted(async () => {// 等待表格渲染完成await nextTick();// 加载表格列宽setTableColumnWidth.value?.loadColumnWidth();
});
</script><template>......<el-tableref="tableRef"......@header-dragend="setTableColumnWidth?.saveColumnWidth">......</template>

 【设置表格列宽,组合式函数 hook】useSetTableColumnWidth.ts

import type { ElTableExtendedInstance, IColumnConfig } from "@/interface";
import { type TableColumnCtx } from "element-plus";
import { type Ref } from "vue";/*** 设置表格列宽,组合式函数 hook* @param tableRef 表格实例对象* @param tableColumnConfigs 表格列配置列表* @param tableName 表格名称,名称前面加上路由前缀避免标识符重复,如:Reagent_reagent* @returns*/
export const useSetTableColumnWidth = (tableRef: Ref<ElTableExtendedInstance | null>,tableColumnConfigs: Ref<IColumnConfig[]>,tableName: Ref<string>
) => {// 加载表格列宽const loadColumnWidth = () => {let columns = tableRef.value?.store.states.columns.value;if (!columns || !Array.isArray(columns)) return;for (let column of columns) {let prop = column.property;if (prop) {// 从本地存储中获取列宽let storageColWidth = localStorage.getItem(`${tableName.value}_${prop}_colWidth`);if (storageColWidth) {column.width = parseInt(storageColWidth) > 0 ? parseInt(storageColWidth) : column.width;} else {// 从表格列配置列表中获取列宽let configColWidth = tableColumnConfigs.value.find((item) => item.prop === prop)?.width;if (configColWidth) {column.width = configColWidth;}}}}};// 存储表格列宽const saveColumnWidth = (newWidth: number, oldWidth: number, column: TableColumnCtx<any>, event: MouseEvent) => {let prop = column.property;if (prop) {localStorage.setItem(`${tableName.value}_${prop}_colWidth`, newWidth.toString());}};// 重置列宽const resetColumnWidth = () => {let columns = tableRef.value?.store.states.columns.value;if (!columns || !Array.isArray(columns)) return;for (let column of columns) {let prop = column.property;if (prop) {// 删除本地存储的列宽数据localStorage.removeItem(`${tableName.value}_${prop}_colWidth`);// 从表格列配置列表中获取列宽let configColWidth = tableColumnConfigs.value.find((item) => item.prop === prop)?.width;if (configColWidth) {column.width = configColWidth;}}}};return {loadColumnWidth,saveColumnWidth,resetColumnWidth};
};

数据类型定义 interface/index.ts

import { ElTable } from "element-plus";// ElTable 扩展实例类型,包含内部 store 属性
export type ElTableExtendedInstance = InstanceType<typeof ElTable> & {store: {states: {columns: {property?: string;// 其他列属性...}[];};};
};// 表格列配置接口
export interface IColumnConfig {prop: string;label: string;width: number;[key: string]: any; // 允许其他属性
}

http://www.hengruixuexiao.com/news/42649.html

相关文章:

  • 高端手机网站设计产品推广策划
  • 局网站建设管理制度2022年免费云服务器
  • 网站是否被k推广方案的推广内容怎么写
  • 做网站需要去哪里备案优化外包服务公司
  • 自己做鞋子网站网站优化的方法有哪些
  • 深圳建设工程交易网站官网建网站教学
  • 婚纱网站设计图友情链接的网站有哪些
  • 上海奉贤做网站seo人员培训
  • 一句话介绍网站开发网络营销手段有哪四种
  • 广州做网站哪间公司好网站流量分析的指标有哪些
  • 做外链等于网站更新么推广普通话手抄报模板
  • 做网站 需求怎么写谷歌排名规则
  • 网站建设必须要虚拟主机吗产品宣传推广策划
  • 柳州企业网站制作哪家好app香港账号
  • 网页制作与设计的内容站长工具seo综合查询怎么用
  • 医学网站建设方案国外搜索引擎大全不屏蔽
  • 安微建设厅网站查架子工真假百度关键词代做排名
  • 政府单位门户网站开发文档谷歌浏览器安卓版下载
  • 百度云服务器一年多少钱如何优化网络环境
  • 做网站必须要虚拟主机吗怎么优化整站
  • 南阳建网站企业有哪些百度广告位价格表
  • 我在日本做动画视频网站独立网站和平台网站
  • 洛阳万悦网站建设如何提高网站的搜索排名
  • 购物网站开发案例教程成人技能培训机构
  • 专业网站制作需要多少钱东莞seo培训
  • 导航网站制作 zhihu打广告去哪个平台
  • wordpress的登录密码青岛网站seo公司
  • 秦皇岛手机网站看b站二十四小时直播间
  • 夏天做啥网站能致富seo实战
  • 芜湖做网站设计的公司重庆电子商务网站seo