聊聊今天开发中遇到的一个两个组件不兼容的问题

场景回现

在一个表格里面有一个字段:它是一个状态字典-使用状态(一共有四个字段:①未使用,②已使用,③已用完,④停用)。我们需要实现在表格里可以编辑这个字段,改变它的状态。

原来实现

因为我们公司这个项目使用的是vxe-table组件,而在使用状态字段单元格中,我用了一个element-plus里面的DictSelect组件,导致这两个组件不兼容,致使不能选择。

...
{
    title: "使用状态",
     dataKey: "PJ_STATUS",
     align: 'center',
     cellRenderer: (props) => {
         return TableSelectDict("select.pjgl.pj_status", props.cellData)
     },
     slots: {
         edit: (params) => {
             return [
                 <DictSelect
                     ref={setRef('PJ_STATUS')}
                     v-model={params.row[params.column.field]}
                     {...{
                         onChange: (e) => {
                             console.log("1111111111")
                             console.log("e => ", e)
                         }
                     }}
                     data={[
                         {label: "未使用", value: "0"},
                         {label: "已使用", value: "1"},
                         {label: "已用完", value: "2"},
                         {label: "停用", value: "3"},
                     ]}
                 />
             ]
         }
     },

在这里插入图片描述

原因

那是因为当点击的时候,去选择下拉框的时候,鼠标已经离开了vxe-table对应行数据,所以选择不会生效。

修改代码

我们将修改使用状态的组件改成vxe-table提供的下拉框就好了。
vxe-table官网:https://vxetable.cn/v4/#/table/module/select

对应组件
在这里插入图片描述

...
slots: {
    edit: (params) => {
         return [
             <VxeSelect size={transformFontSize(configStore.fontSize)} v-model={params.row[params.column.field]}>
             <VxeOption key="0" value="0" label="未使用"></VxeOption>
             <VxeOption key="1" value="1" label="已使用"></VxeOption>
             <VxeOption key="2" value="2" label="已用完"></VxeOption>
             <VxeOption key="3" value="3" label="停用"></VxeOption>
         </VxeSelect>
         ]
     }
 },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值