9.6 笔记
知识点整理
知识点1
使用场景
INFO
代码
知识点2
使用场景
INFO
代码
项目整理
场景1:antdPro选中行操作
描述
INFO
在antdPro
中不使用rowSection
来进行选中行操作,并且希望选中行以后,并且希望高亮显示
思路
- 对于不设置筛选和批量选择功能,我们可以设置
rowSelection={false}
来进行操作,但是这也就带来了,如果你想要操作行数据,就需要自己写方法 - 我们使用
onRow
来设置对行操作,这样我们就可以很容易的获取到,选中行的信息,但是如给他添加高亮呢 - 错误方法
- 因为
onCLick(event)
可以直接获取到event
事件,所以我们可不可以event.style.className = ""
- 问题:这样的话,设置的样式没办法消除,高亮会一直展示着
- 因为
- 一般方法
- 我们可以设置
rowClassName
,然后对选中行进行设置样式 - 我们就需要做一个匹配,让判断当前的行是不是选中行,如果是的话,那么才可以添加高亮
- 但是因为
**antd**
对**table**
的**hover**
添加了一个**background**
,这会使得,我们添加高亮的时候很慢,我的方法是,直接将**antd**
的悬停效果干掉
- 我们可以设置
- 重要,假如你对表格左右侧固定,那么就需要设置固定的背景色为透明值
代码
jsx
<ProTable
cardBordered
columns={ThreeCodeBindingTableColumns}
// rowKey的作用是指定表格行的key,可以是字符串或一个函数
rowKey="itemSn"
toolBarRender={() => [
<div className="ThreeCodeBinding__btn--box" key={1}>
<Button type="primary">新增三码信息</Button>
<Button type="primary">加减枪信息</Button>
<Button type="primary">修改SIM卡号</Button>
</div>,
]}
// 不展示多选框
rowSelection={false}
// 不展示弹框
tableAlertRender={false}
pagination={{
size: "small",
}}
// 请求数据
// request={getCopyPrintData}
// mock数据,先直接先dataSource
dataSource={mockThreeCodeBindingTableData}
onRow={(record) => {
return {
// 点击行
onClick: (event) => {
setSelectedRow(record);
// 为这一行添加样式
setSelectedRowKeys(record.itemSn);
},
};
}}
// 为选中行添加样式
rowClassName={(record) => {
return record.itemSn === selectedRowKeys ? "ThreeCodeBinding__table--selected" : "";
}}
/>
less
.ThreeCodeBinding__table--selected {
background: #f0830219;
}
// 去掉表格的hover效果
.ant-table-tbody>tr:hover:not(.ant-table-expanded-row)>td,
.ant-table-row-hover,
.ant-table-row-hover>td {
background-color: transparent !important;
}
参考链接:
Antd 修改 Table 悬浮颜色、表头背景色_antd 表头颜色_逍康的博客-CSDN博客
antd table 行点击事件以及高亮显示选中行的背景颜色_嚣张.miner的博客-CSDN博客
场景2:antd的form设置label的大小
描述
INFO
需要设置label的大小,但是发现form
只有labelCol
并没有labelWidth
思路
代码
jsx
<ProForm
layout="horizontal"
// 取消掉label后面的冒号
colon={false}
// 设置label大小
labelCol={{ style: { width: 100 } }}
>
<ProFormText
width="sm"
name={"itemSn"}
label="产品SN"
placeholder={"请输入"}
required
/>
<ProFormText
width="sm"
name="itemCode"
label="机种料号"
placeholder="默认值"
disabled
/>
</ProForm>
场景三:对于form不需要展示底部的按钮
描述
INFO
当有些时候,form需要和其他组件一起使用,这时候我们并不希望展示出下面的按钮,但是如果使用样式来display:none
的话,很可能会导致其他样式也造成改变
思路
- 记住一个
ProForm
身上的方法,他就是专门用来处理底部的按钮
- 然后我们就可以设置
submmitter
jsx
<ProForm
layout="horizontal"
colon={false}
// 设置label大小
labelCol={{ style: { width: 100 } }}
className="ThreeCodeBinding__add--form"
formRef={formRef}
submitter={{
// 不展示默认的提交按钮
render: false,
}}
>
</ProForm>
参考链接
Ant Design ProForm 高级表单 去掉重置和提交按钮和搜索框_ant的proformlist 的去掉自带的复制按钮_w Emil的博客-CSDN博客