ant-design vue 表单使用v-decorator后点击label 输入框聚焦问题解决方案

ant-design vue 表单使用v-decorator后点击label 输入框聚焦问题解决方案

最近项目有个需求如下图:
在这里插入图片描述
表单筛选 一般是label + 输入框,这个是label是个下拉框,必有值,输入框选了值,label下拉框就得传值
但公司的这个筛选表单是基于ant-design vue封装的一个组件,正常使用是没问题,但现在来了个相对不太正常的需求,而封装的组件没有对label做过插槽处理

<!-- 未修改前代码-->
<a-form-item 
   class="form-item" 
   :label="item.label"
   >
   <component
     :is="'Base' + item.type"
     v-decorator="[
       `${item.key}`,
       {
         initialValue: `${item.props.defaultValue || ''}`,
         rules: item.rules || []
       }
     ]"
     v-bind="item.props" 
     @change="(evt) => watchItem(evt, item.watchMethod, item)"
     @focus="item.props.focus ? item.props.focus() : ''"
   />

 </a-form-item>

这个时候就要改动封装的组件了

<!-- 修改后代码-->
<a-form-item 
  :class="{'form-item': true, [`${item.labelSolt}_style`]: item.labelSolt}"
  :colon="item.colon === false? item.colon : true"
  id="index"
  >
  <template #label>
    <span>
      <slot :name="item.labelSolt" v-if="item.labelSolt">
        {{item.label}}
      </slot>
      <span v-else>
        {{item.label}}
      </span>
    </span>
  </template>
  <component
    :is="'Base' + item.type"
    v-decorator="[
      `${item.key}`,
      {
        initialValue: `${item.props.defaultValue || ''}`,
        rules: item.rules || []
      }
    ]"
    v-bind="item.props" 
    @change="(evt) => watchItem(evt, item.watchMethod, item)"
    @focus="item.props.focus ? item.props.focus() : ''"
  />

</a-form-item>

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值