日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

antd vue table跨行合并單元格,并且自定義內容實例

瀏覽:16日期:2022-11-10 10:05:06

ant-design-vue版本:~1.3.8

需求:表格實現跨行合并,并且在合并完的單元格中顯示圖片

效果圖:

antd vue table跨行合并單元格,并且自定義內容實例

源碼:

export default { data() { return { pic95: require(’@/assets/produit/95.png’), pic99: require(’@/assets/produit/99.png’), varTable: {cloumns: [ { title: ’置信度’, dataIndex: ’confidence ’, class: ’confidence’, customRender: (value, row, index) => { let obj = { children: ’’, attrs: {} } if (index === 0) { obj = {children: <div class='risk-pic'><img src={this.pic95} /></div>,attrs: { rowSpan: 4 } } } if (index === 4) {obj = {children: <div class='risk-pic'><img src={this.pic99} /></div>,attrs: { rowSpan: 4 }} } if ([1, 2, 3, 5, 6, 7].indexOf(index) !== -1) { obj.attrs.colSpan = 0 } return obj } }, { title: ’天數’, dataIndex: ’window_length’, width: ’25%’, customRender: (text) => text + ’日’ }, { title: ’VaR(萬元)’, dataIndex: ’var’, width: ’25%’ }, { title: ’VaR/凈資產’, dataIndex: ’var_rate’, width: ’25%’, customRender: (text) => fmtRatio(text, 2) }],data: [ {window_length: 1, var: 151.69, var_rate: 0.01858}, {window_length: 5, var: 298.94, var_rate: 0.03661}, {window_length: 10, var: 416.70, var_rate: 0.05104}, {window_length: 20, var: 576.04, var_rate: 0.07055}, {window_length: 1, var: 370.64, var_rate: 0.045398}, {window_length: 5, var: 463.33, var_rate: 0.056751}, {window_length: 10, var: 632.91, var_rate: 0.077523}, {window_length: 20, var: 1233.95, var_rate: 0.15114}] } } }, methods:{ // 百分數設置 fmtRatio(val, index, def) { // index默認值為2 var index = arguments[1] ? arguments[1] : 2 if (val == null || isNaN(val) || typeof (val) === ’string’ && val === ’’) {return def || ’--’ } var ratio = (val * 100).toFixed(index) return ratio + ’%’ } }}

導入圖片的方式還有

import pic95 from ’@/assets/produit/95.png’

import pic99 from ’@/assets/produit/99.png’

如果有問題,歡迎提出,一起交流~~!

補充知識:ant-design vue table 可選列、自定義列實現

實現ant-design for vue 自定義列實現。點擊按鈕,彈窗顯示所有列的checkbox,選擇checkbox,確定即可實現自定義列。先上代碼

<script>/** * 該組件為實現table可選列。 * 具體操作見下方注釋。 * 全部集成原a-table功能,使用方式與原a-table完全相同,擴展增加了可選列功能 * 該組件已注冊至全局,使用方式只需將a-table變?yōu)閦yx-table即可,等等一系列原寫法不變,即可增加該功能. * 采用rander函數模式寫,為了實現a-table中slot可動態(tài)。 */export default { name: ’Table’, data () { return { modalVisible: false, // 彈窗 columns: [], // 表格的列,根據條件來操作該字段 selectList: [], // 已選擇的列 temporarySelectData: [], // 暫時選擇的列,點擊checkbox暫存到該字段,點確定同步到selectList checkboxList: []// checkbox的list,也做總數據來使用 } }, mounted () { /** * 掛載后,將原columns復制到本頁columns,checkboxList * 將selectList賦值全選狀態(tài) */ this.columns = this.deepClone(this.$attrs.columns) this.checkboxList = this.deepClone(this.$attrs.columns) this.selectList = this.columns.map(ele => ele.dataIndex) }, methods: { /** * 打開modal,將checkbox默認值或者是選擇值(暫存)重新賦值 */ handelOpenSelect () { this.temporarySelectData = this.deepClone(this.selectList) this.modalVisible = true }, /** * 點擊確定,將暫存值賦值(temporarySelectData)給已選擇的列(selectList) * 將列(columns)根據已選擇的列(selectList)篩選出來 */ handleOk () { this.selectList = this.deepClone(this.temporarySelectData) this.modalVisible = false this.columns = this.checkboxList.filter(ele => this.selectList.includes(ele.dataIndex)) }, handleCancel () { this.modalVisible = false }, handelChange (e) { this.temporarySelectData = this.deepClone(e) }, deepClone (target) { let result if (typeof target === ’object’) { if (Array.isArray(target)) { result = [] for (const i in target) { result.push(this.deepClone(target[i])) } } else if (target === null) { result = null } else if (target.constructor === RegExp) { result = target } else { result = {} for (const i in target) { result[i] = this.deepClone(target[i]) } } } else { result = target } return result } }, render () { const props = { ...this.$attrs, ...this.$props, ...{ columns: this.columns } } const on = { ...this.$listeners } const slots = Object.keys(this.$slots).map(slot => { return ( <template slot={slot}>{ this.$slots[slot] }</template> ) }) const table = ( <a-table props={props} scopedSlots={ this.$scopedSlots } on={on} ref='zyxTable'> {slots} </a-table> ) const changeDiv = ( <a-button size='small' onClick={this.handelOpenSelect}>列</a-button> ) const checkboxArr = [] for (let i = 0; i < this.checkboxList.length; i++) { checkboxArr.push(<a-col span={8}><a-checkbox value={this.checkboxList[i].dataIndex}>{this.checkboxList[i].title}</a-checkbox></a-col>) } const modal = ( <a-modal visible={this.modalVisible} onOk={this.handleOk} onCancel={this.handleCancel}> <a-checkbox-group value={this.temporarySelectData} onChange={this.handelChange}> <a-row> {checkboxArr} </a-row> </a-checkbox-group> </a-modal> ) return ( <div class='zyx-table'> { table } { changeDiv } { modal } </div> ) }}</script><style lang='less' scoped>.zyx-table{ position: relative; margin-top: 20px; .select-columns{ position: absolute; right: 0; top: -30px; }}.ant-row{ width: 100%; .ant-col-8{ margin-bottom: 10px; }}.ant-checkbox-group{ width: 100%;}</style>

該組件二次封裝了a-table,集成原a-table所有方法

使用方法,在全局注冊該組件,將原a-table替換為zyx-table即可實現。

將原標簽替換為rander函數,是為了實現slot動態(tài)傳入的效果。

有疑問或者更好的建議,歡迎光臨思密達。github傳送門

以上這篇antd vue table跨行合并單元格,并且自定義內容實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人自拍av| 国产欧美日韩一级| 电影亚洲精品噜噜在线观看| 欧美激情福利| 欧美精品二区| 国产精品网在线观看| 国产乱码精品一区二区三区四区| 日韩精品一区二区三区免费视频 | 成人在线视频区| 91视频一区| 激情久久久久久久| 不卡中文字幕| 亚洲人www| 国产精品男女| 国产精品玖玖玖在线资源| 九九九精品视频| 欧美gv在线| 午夜一级在线看亚洲| 日韩精品一级| 国产亚洲一区二区三区啪| 欧美激情亚洲| 成人免费电影网址| 免播放器亚洲| 国产麻豆一区二区三区| 国产高潮在线| 午夜亚洲精品| 国产亚洲字幕| 不卡福利视频| 免费视频久久| 日韩久久99| 高清av一区| 宅男噜噜噜66国产日韩在线观看| 91在线成人| 中文字幕在线看片| 久久午夜精品| 久久精品伊人| 精品在线91| 91精品国产经典在线观看| 国产精品蜜芽在线观看| 羞羞答答国产精品www一本| 国产精品视频一区二区三区四蜜臂| 国产va免费精品观看精品视频| 亚洲福利国产| 亚洲精品进入| 美女免费视频一区| 在线日韩中文| 国产精品亚洲人成在99www| 99久久久久国产精品| 91欧美极品| 99精品国产一区二区三区| 亚洲精品日韩久久| 国产91在线播放精品| 亚洲主播在线| 高清av一区| 一区二区日韩免费看| 久久久久黄色| 麻豆精品91| 国产精品二区不卡| 婷婷亚洲精品| 精品国模一区二区三区| 日韩精品视频中文字幕| 九九色在线视频| 日韩综合小视频| 成人羞羞视频在线看网址| 亚洲v天堂v手机在线| 亚洲播播91| 国产女人18毛片水真多18精品| 91精品电影| 国产精品xx| 国产一区 二区| 国产视频一区在线观看一区免费| 精品亚洲成人| 亚洲欧美日本国产| 欧美不卡视频| 蜜桃久久久久| 日韩中文字幕视频网| 久久久久美女| 成人污污视频| 国产精品亚洲欧美一级在线| 中文亚洲免费| 成人福利av| 国产精品午夜av| 中文字幕日本一区二区| 久久久久国产精品一区二区| 久久中文精品| 国产午夜久久av| 亚洲精品少妇| 9国产精品视频| 欧洲在线一区| 欧美黑人做爰爽爽爽| 亚洲三级网站| 日韩天堂av| 亚洲午夜av| 精品日韩视频| 国产精品久久观看| 国产精品hd| 奇米777国产一区国产二区| 久久av在线| 国产亚洲精品v| 久久精品高清| 99精品视频在线观看免费播放| 91青青国产在线观看精品| 国产欧美一区二区三区精品观看| 蜜桃久久精品一区二区| 成人久久久久| 精品国产免费人成网站| 精品国产a一区二区三区v免费| 国产精品中文字幕亚洲欧美| 日韩有吗在线观看| 一区二区精彩视频| 久热精品在线| 久久先锋影音| 久久国产66| 日韩中文字幕亚洲一区二区va在线| 欧美aa国产视频| 久久视频国产| 亚洲五月婷婷| 伊人久久亚洲美女图片| 黑丝一区二区三区| 激情久久婷婷| 自拍日韩欧美| 男人天堂欧美日韩| 日韩精品一级中文字幕精品视频免费观看 | 在线免费观看亚洲| 国产精品日韩久久久| 免费久久久久久久久| 91成人网在线观看| 免费日韩av片| 亚洲精品激情| 国产一精品一av一免费爽爽| 国产视频一区二| 欧美91在线| 综合日韩av| 国产综合精品| 另类国产ts人妖高潮视频| 一本综合精品| 久久国内精品自在自线400部| 国产美女亚洲精品7777| 欧美亚洲tv| 久久精品免费看| 日韩福利一区| 欧美日韩激情| 中文字幕成人| 国产精品久一| 亚洲精品福利电影| 欧美精品羞羞答答| 天堂va蜜桃一区二区三区| 亚洲精品三级| 国产精品99精品一区二区三区∴ | 欧美日韩中文| 国产精品毛片视频| 久久精品国产99国产| 9999国产精品| 欧美 日韩 国产精品免费观看| 蜜桃伊人久久| 国产欧美另类| 深夜福利视频一区二区| 亚洲国产专区校园欧美| 亚洲视频国产精品| 国产乱码精品一区二区三区四区| www.51av欧美视频| 国产亚洲精品自拍| 国产乱子精品一区二区在线观看 | 色综合狠狠操| 欧美日韩四区| 国产精品中文字幕制服诱惑| 激情亚洲影院在线观看| 日韩精品一区第一页| 国产免费播放一区二区| 激情黄产视频在线免费观看| 在线视频精品| 国产精品亲子伦av一区二区三区| 丝袜诱惑一区二区| 在线观看亚洲精品福利片| 麻豆国产精品| 国产视频一区免费看| 国产精品香蕉| 欧美日韩国产在线观看网站| 视频在线观看一区| 精品国产欧美日韩一区二区三区| 国内激情久久| 国产日韩一区二区三免费高清| 91精品一区二区三区综合在线爱| 日韩在线电影| 人人精品亚洲| 国产亚洲电影| 91精品1区| 久久中文字幕导航| 日韩精品一级二级| av中文资源在线资源免费观看| 男女激情视频一区| 97精品一区| 日本强好片久久久久久aaa| 天堂а√在线最新版中文在线| 亚洲精品乱码久久久久久蜜桃麻豆| 日韩av有码| 日韩中文字幕视频网| 婷婷国产精品| 国产一区二区三区四区五区传媒 | 在线一区视频|