VForm 2 数据表格表格列编辑 动态渲染函数怎么使用

[复制链接]
查看: 3690   回复: 9     已解决

1

主题

1

回帖

2万

积分

论坛元老

Rank: 8Rank: 8

积分
25628
2023-3-17 13:22:15   显示全部楼层   阅读模式  

请问 VForm 2 数据表格 表格列编辑 动态渲染函数怎么使用?
1、比如按条件 动态渲染修改 表格内的字体颜色 或填充颜色,怎样实现
2、是否在表格内支持插槽方式,怎样能实现
justin1024已获得悬赏 200 威望

最佳答案

表格列只能通过动态渲染函数,可以参考一下这段代码 详细h函数的使用可以网上搜一下,这个是vue的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册账号

x
回复

使用道具 举报

5

主题

19

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
18999
2023-3-17 13:39:01   显示全部楼层  
本帖最后由 justin1024 于 2023-3-17 13:49 编辑

表格列只能通过动态渲染函数,可以参考一下这段代码
  1. const {row, column, dataTableRef} = params
  2. // 可以进一步通过dataTableRef获取v-form-render的引用,dataTableRef.getFormRef()。如果表格处在弹窗里,需要使用dataTableRef.getFormRef().getTopFormRef()
  3. let cellValue = row[column.prop] || ''
  4. let updateValue = (newValue) => {
  5.   row.xxx = newValue
  6. }

  7. return h('el-input', {
  8.   props: {
  9.     value: cellValue,
  10.     ... 其他属性
  11.   },
  12.   on: {
  13.     input: updateValue
  14.   }
  15. })
复制代码



详细h函数的使用可以网上搜一下,这个是vue的


点评

很棒  发表于 2023-3-30 08:53
回复

使用道具 举报

7

主题

237

回帖

27万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
273291
2023-3-17 13:50:11   显示全部楼层  
下面是一段示例代码(适合Vue2 + VForm2),将一列的单元格内容渲染为input输入框:
---------------------------------------------------
  1. let {row, column} = params
  2. let cellValue = row[column.prop] || ''
  3. let updateValue = (newValue) => {
  4.   row.name = newValue
  5. }

  6. return h('el-input', {
  7.   props: {
  8.     value: cellValue
  9.   },
  10.   on: {
  11.     input: updateValue
  12.   }
  13. })
复制代码




回复

使用道具 举报

1

主题

1

回帖

2万

积分

论坛元老

Rank: 8Rank: 8

积分
25628
TOCOOL (楼主)
2023-3-17 14:24:57   显示全部楼层  
justin1024 发表于 2023-3-17 13:39
表格列只能通过动态渲染函数,可以参考一下这段代码

请问能动态渲染修改 表格内的字体颜色 或填充颜色吗?
回复

使用道具 举报

5

主题

19

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
18999
2023-3-17 14:51:20   显示全部楼层  
TOCOOL 发表于 2023-3-17 14:24
请问能动态渲染修改 表格内的字体颜色 或填充颜色吗?

表格内的字体颜色,可以从写class

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册账号

x
回复

使用道具 举报

7

主题

237

回帖

27万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
273291
2023-3-17 14:55:28   显示全部楼层  
TOCOOL 发表于 2023-3-17 14:24
请问能动态渲染修改 表格内的字体颜色 或填充颜色吗?

再送你一段代码吧,价值5块(将单元格的文字显示为红色,适合vue2):
------------------------
  1. const {row, column} = params
  2. const cellValue = row[column.prop] || ''

  3. return h('div', {style: {color: 'red'}}, cellValue)
复制代码

数据表格自定义render的使用,请详细参考vue官方文档:
Vue2文档:
https://v2.cn.vuejs.org/v2/guide/render-function.html


Vue3文档:
https://cn.vuejs.org/guide/extras/render-function.html


回复

使用道具 举报

7

主题

237

回帖

27万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
273291
2023-3-29 14:45:15   显示全部楼层  
以下代码将某一列渲染为el-input输入框,适用于VForm3(vue3):
------------------
  1. let {row, column} = params
  2. let cellValue = row[column.prop] || ''

  3. return h(components.ElInput, {
  4.     modelValue: cellValue,
  5.     onInput(val) {
  6.       //console.info('aaaa', val)
  7.       row.name = val
  8.     }
  9.   }
  10. )
复制代码




回复

使用道具 举报

5

主题

19

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
18999
2023-3-30 11:12:48   显示全部楼层  
h函数的例子, 可以先根据条件判定显示的样式,然后设置在style里
h('div', { id: 'app' }, [
  h('h1', { class: 'title' }, 'Hello, world!'),
  h('p', {
    style: {
      backgroundColor: 'blue',
      color: 'white'
    }
  }, 'This is a paragraph.')
]);
回复

使用道具 举报

5

主题

19

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
18999
2023-3-30 11:14:17   显示全部楼层  
目前表格内是不支持插槽的
回复

使用道具 举报

您需要登录后才可以回帖   登录 注册账号

高级模式