ant design vue 组件库使用问题汇总

主要介绍了 ant design vue 1.x 版本使用时的一些问题以及解决方式,例如 ant design label 标签左右对齐显示、ant design table 操作栏高度不对齐问题、ant-table 自定义表格内容处理等等

因为这个是旧项目的维护,项目使用的是 ant design vue 1.x 版本,比较古早了。

1. ant design label 标签左右对齐显示

问题描述:label 标签的文字可能是 2 为、3 位或 4 位,需要对齐的话,中间需要加空格

问题解决:使用\xa0\xa0进行填充

html 复制代码
<a-form-item label="截止时间"></a-form-item>
<a-form-item :label="`图\xa0\xa0\xa0\xa0\xa0\xa0\xa0书`"</a-form-item>

优化后的效果如下所示:

1.1 文字两端对齐

项目中这种需求还是挺常见的,需要将文字两端对齐,中间间距空着,而文字的数量不是一样的

html 复制代码
<div class="wrap">
  <div class="txt">雪天</div>
  <div class="txt">下雪天</div>
  <div class="txt">下暴雪天</div>
</div>

<style>
  .wrap .txt {
    width: 100px;
    text-align: justify; // 元素内的文本内容两端对齐,即文本会均匀分布在元素的宽度内。
    text-align-last: justify; // 兼容旧版本的IE浏览器,它会使元素内的文本内容的最后一行也两端对齐
  }
</style>

2. ant design table 操作栏高度不对齐问题

问题描述:使用 ant-table 组件时,操作栏的高度和其他栏的高度不一致,导致错位显示了。

问题分析:表格中有一栏"封面"的内容是自定义的,高度没有固定,根据数据来显示图片内容;表格渲染时,可能还没数据,导致操作栏高度无法确定,使用了默认的高度。

问题解决:固定栏目高度,保证一致性,以保持操作栏和表格内容在同一行对齐。

html 复制代码
// 修改前:没有确定内容高度
<div slot="coverTemplate" slot-scope="{ data }">
  <img
    :src="data.cover_image_url"
    style="width: 40px;"
    v-viewImage="[data.cover_image_url]"
  />
</div>

// 修改后:确定内容高度,保证渲染一致
<div slot="coverTemplate" slot-scope="{ data }" style="height:56px;">
  <img
    v-if="data.cover_image_url"
    :src="data.cover_image_url"
    style="width: 40px;height:56px;"
    v-viewImage="[data.cover_image_url]"
  />
</div>

表格操作栏错位效果如下:

3. ant-table 自定义表格内容

  1. 使用customRender实现
js 复制代码
const tableColumns = [
  {
    title: "首页展示",
    dataIndex: "show_home",
    // 生成复杂数据的渲染函数,参数分别为当前行的值,当前行数据,行索引
    customRender: (text, record, index) => {
      return text === 1 ? "是" : "否";
    },
    width: 150,
  },
];
  1. 使用scopedSlots实现
js 复制代码
// 定义数据
const tableColumns = [
  {
    title: "首页展示",
    dataIndex: "show_home",
    // 插槽形式处理
    scopedSlots: {
      customRender: "showTmp",
    },
    width: 150,
  },
];
html 复制代码
// 使用插槽实现
<div slot="showTmp" slot-scope="{ text, record }">
  // 自定义开关按钮,效果如下图所示:
  <a-switch
    :disabled="record.status"
    :checked="text === 1"
    checked-children="是"
    un-checked-children="否"
    @change="(checked) => onShowHomeChange(record, checked)"
  />
</div>

4. 生成空白gif动画

之前在介绍 electron 打包项目时,需要生成空白的 gif 替换过渡动画,如下为详细代码:

js 复制代码
// 创建一个尺寸为 1x1 像素的画布
const canvas = document.createElement("canvas");
canvas.width = 1;
canvas.height = 1;
const context = canvas.getContext("2d");

// 绘制一张完全透明的图片
context.clearRect(0, 0, 1, 1);

// 将画布内容保存为 GIF 格式的图片文件
canvas.toBlob((blob) => {
  const url = URL.createObjectURL(blob);
  const link = document.createElement("a");
  link.href = url;
  link.download = "blank.gif";
  link.click();
  URL.revokeObjectURL(url);
});
相关推荐
其实防守也摸鱼20 分钟前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全
朱涛的自习室1 小时前
212 个需求、22 万行代码:Agent 接管开源项目的 19 天
android·前端·人工智能
aZhe的全栈知识分享1 小时前
AI 还原 Figma 效果总达不到预期?先别急着让它写代码
前端·后端·面试
review445431 小时前
Codex Hooks 入门实战:生命周期事件、matcher 与5分钟跑通一个钩子
前端·agent·vibecoding
函数小陈1 小时前
阿里云部署DSH与RAM完成运维
前端·后端
用户499335025071 小时前
JS 作用域劫持的死穴:动态 this 穿透,以及 AST 怎么救
前端
IT_陈寒2 小时前
React的setState真是个演员,你以为它同步其实在装睡
前端·人工智能·后端
孟健4 小时前
Claude Code 同需求写两版对比:装不装 frontend-design 差多远?
前端·ai编程·claude
梦de天空一米16886 小时前
【一个重复id让游戏卡在62%,聊聊配置表检查】
前端
ryn483986 小时前
01 一个功能模块,怎么分层才不乱
前端·ai编程·claude