特殊table的二次开发

image.png【这是设计稿】

image.png【最终基于vxe-table二开的ui】

当时看到这个设计稿的时候,开始是觉得这个表格不太好实现。至少使用element plus el-table 是不太好做

我个人认为的难点:

  • N1: 1.处这里的独占一行

  • N2:2.这个末尾的斑马类表格结构

  • N3:3.点击2 会增加3这个一行优惠含税总价,以及 点击4处的删除该行

  • N4:4:每个单元格的展示,比如有的是下拉 有的文本,有的input

=》
其实element plus 也有合并一行的options =》 :span-method =“arraySpanMethod”
传入一个函数,对于行号处理即可。 这个在文档里都有,我就仅仅解释一下。

image.png

我这里用的 vxe-table
"350" align="center" header-align="center" footer-align="left"
:edit-config="{ trigger: 'click', mode: 'row' }" footer-cell-class-name="footerCell"
 :footer-span-method="footerColspanMethod" :footer-method="footerMethod" :show-footer="true"
show-overflow ref="tableRef" max-height="400" :data="tableData">


主要配置:


》:footer-method="footerMethod"  :表示表尾数据【表尾占几行】
》:footer-span-method="footerColspanMethod":表示表尾的合并单元格

const footerMethod: VxeTablePropTypes.FooterMethod<RowVO> = () => {
  return footerMethodData.value
  
}

主要html:
这里seq 表示的 vxe-table的排序字段,设计稿中添加一行的位置是在排序这里。
 "seq" type="seq" width="70" class="h-full">
        <template #footer="{ row }">
            // 插槽中拿到的row 就是  footerMethodData.value中的每一行,
            
         template>
                

image.png

image.png

image.png

至于N3 这个地方,将数据定义为ref 响应式数据,点击的时候添加

image.png

N4: vxe-table>vxe-column下单元格数据的格式化

"suggestedPrice" title="建议售价" :edit-render="{ enabled: false }">
       <template #default="{ row }">
         <span>{{ row.suggestedPrice }}span>
       template>

这里对应每一个单元格的数据。 默认插槽可以指定单元格的展示方式。

但是对于前面两个字段,修改时是通过点击单元格触发的。遇到了两个坑
K1: 某个字段的数据不展示,如下图,字段这里其实是有数据的,但是就是不显示数据。
image.png
点击进入edit模式后才可以看到,到这里就发现了这个坑K2
image.png
这里其实是

 <vxe-column field="type" title="类别" :edit-render="sexEditRender">
    
   //对于这种设置edit-render模式的列, 里面不允许有注释之类的,否则就会看不到数据
vxe-column>

const sexEditRender = reactive({
  name: 'VxeSelect',
  props: {
    multiple: true
  },
  options: [
    { name: '女', code: '女' },
    { name: '男', code: '男' }
  ],
  optionProps: {
    label: 'name',
    value: 'code'
  }
})

K2:点击后触发的其实是整条记录的edit-render事件,一开始我因为是批量复制的vxe-column,就导致其他的vxe-column的edit-render属性都设置的一个空对象,这导致其他的单元格的数据在edit下是空白的。

如图:
image.png
image.png
宁可其他列的不设置这个edit-render属性或者 设置:edit-render={enable:true}//禁止触发edit事件都可以。

 "suggestedPrice" title="建议售价" :edit-render="{ enabled: false }">
      <template #default="{ row }">
         <span>{{ row.suggestedPrice }}span>
     template>

这样进入edit模式的话 其他字段比如 建议售价就可以看到了。

image.png

阅读全文
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=20869,转载请注明出处。
0

评论0

显示验证码
没有账号?注册  忘记密码?