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

广州网站建设网络镇江建设工程质量监督局网站

广州网站建设网络,镇江建设工程质量监督局网站,招聘网站对比这么做,做淘宝美工图片网站写在最前 需求#xff1a;有个表格列出了一些行数据#xff0c;每个行数据点击后会加载出对应的详细数据#xff0c;想要在点击了某一行后#xff0c;能够将该点击反应到URL中#xff0c;这样我复制这个URL发给其他人#xff0c;他们打开时也能看到同样的行数据。 url会根…写在最前 需求有个表格列出了一些行数据每个行数据点击后会加载出对应的详细数据想要在点击了某一行后能够将该点击反应到URL中这样我复制这个URL发给其他人他们打开时也能看到同样的行数据。 url会根据点击动态更新大概是这样 xxx.com?param1var1param2var2 主要版本vue3element-plus 2.3 (element-plus版本2.0就不行已踩坑issue) 实现 URL参数的动态更新与访问加载 下面封装了更新URL参数和获取URL参数的方法 // 更新URL参数 function updateURLWithParams(paramsObj: any) {// 入参检查if (typeof paramsObj ! object || paramsObj null) {console.error(Invalid input. params must be an object.);return;}// 获取当前URLconst url new URL(window.location.href);// 创建基于当前URL的不含参数的URL对象const newUrl new URL(url.origin url.pathname);// 创建新的URLSearchParamsconst params new URLSearchParams();// 添加搜索参数for (const key in paramsObj) {params.set(key, paramsObj[key]);}// 更新到新URL对象newUrl.search params.toString();// 更新到浏览器history地址栏改变window.history.pushState(, , newUrl.toString()); }// 获取URL参数 function getQueryParamsFromURL() {const urlObj new URL(window.location.href);const queryParams urlObj.searchParams;const params: { [key: string]: string } {};for (const [key, value] of queryParams.entries()) {params[key] value;}return params; } 然后在监听点击行数据的方法中调用即可。 handleRowClick(row: any, event: any, column: any) {// 加载数据的code...// 更新参数到URL这里假设把row的id放到参数里面updateURLWithParams({ row_id: row.id});}, 在初始化页面后需要根据URL中参数加载出对应的行数据。对应的代码如下 created() {// 从URL中拿到搜索参数const row_id getQueryParamsFromURL()[row_id];// 如果参数不为空遍历表格数据找到对应的行if (!!row_id) {// tableData是el-table绑定的表格数据tableRef是绑定的引用对象// el-table :datatableData reftableReffor (let index 0; index this.tableData.length; index) {if (this.tableData[index].idrow_id) {// 设置表格当前行为参数中指定的行如果表格设置了高亮则同时会高亮当前行this.$refs.tableRef.setCurrentRow(this.tableData[index]);// 然后可以加载对应的行数据// coding...break;}} } 至此已经实现了点击行数据更新URL参数访问带参的URL会选中指定的行并加载对应数据。 但是如果表格数据过多有滚动条了这时候还不能自动滚动到当前选中的行。 所以需要手动实现。 获取选中行的偏移高度并滚动到该处 el-table提供了滚动到指定位置的方法但是需要输入坐标或者偏移量。 Table 表格 | Element Plus (element-plus.org) 这里使用setScrollTop方法所以我们需要获取当前已选中行的偏移高度并设置为滚动位置代码如下 // 获取偏移高度, tableRef是table的引用对象index是行的索引 const offsetTop this.$refs.tableRef.$el.getElementsByClassName(el-table__row)[index].offsetTop; // 设置滚动位置 this.$refs.tableRef.setScrollTop(offsetTop); 结合上面找到并选中参数中指定行的代码最终实现如下 created() {// 从URL中拿到搜索参数const row_id getQueryParamsFromURL()[row_id];// 如果参数不为空遍历表格数据找到对应的行if (!!row_id) {// tableData是el-table绑定的表格数据tableRef是绑定的引用对象// el-table :datatableData reftableReffor (let index 0; index this.tableData.length; index) {if (this.tableData[index].idrow_id) {// 设置表格当前行为参数中指定的行如果表格设置了高亮则同时会高亮当前行this.$refs.tableRef.setCurrentRow(this.tableData[index]);// 获取偏移高度, tableRef是table的引用对象index是行的索引const offsetTop this.$refs.tableRef.$el.getElementsByClassName(el-table__row) [index].offsetTop;// 设置滚动位置this.$refs.tableRef.setScrollTop(offsetTop);// 然后可以加载对应的行数据// coding...break;}} } 总结 element-plus虽然很方便但有时候不能直接满足需求需要多查资料多摸索。另外本人不是专业前端这里只是记录了一次有趣的解决问题的过程如果有更优雅的解决方案欢迎分享噢。
http://www.zqtcl.cn/news/194232/

相关文章:

  • 建商城网站需要多少钱网站开发维护报价单
  • 唐山网站建设冀icp备婚纱网站页面设计
  • 做购物网站支付需要怎么做手机网站建设教程
  • 国外网站空间租用哪个好建站快车打电话
  • 自媒体网站 程序做药公司的网站前置审批
  • 简洁网站模板素材廊坊建设企业网站
  • 长沙建站找有为太极就治就网站内容如何自动关联新浪微博
  • 手机企业网站设计理念企业建设网站的步骤是什么?
  • 网站建设与管理视频网站推广的方法枫子
  • 苏州市住房和城乡建设局官方网站宠物之家网站开发
  • 建个人网站活字格能开发企业网站吗
  • php网站后台密码忘记做电子商务网站 语言
  • 网站建设策划师怎样进入国外网站
  • 建设银行商城网站浙江建站管理系统价格
  • 我想做个网站怎么做的常用的网络营销方法及效果
  • 南通专业做网站南宁网站建设mxfsem
  • 阿里巴巴电子商务网站建设目的网站专题素材
  • 浙江虎霸建设机械有限公司网站哪个网站做简历好
  • 网站做电商资质吗网站开发作品
  • 大型彩灯制作公司临清聊城网站优化
  • 网站建设灬金手指下拉十五网络运维工程师简历怎么写
  • 黄岛建设局网站动漫采集WordPress
  • 做网站现在挣钱吗wordpress 网址导航主题
  • 外贸网站什么采集wordpress主题更换logo
  • 唐山开发网站的公司长沙营销型网站设计
  • 数据库策略网站推广的有效方法有美辰网站建设
  • c 网站开发构想做网站的点子
  • 个人网站模板下载提供网站建设备案公司
  • 做网站需要会写代码6山东东营
  • 兼职刷客在哪个网站做网站搬家数据库配置