2021SC@SDUSC amis-低代码前端框架代码分析十三

2021SC@SDUSC amis-低代码前端框架代码分析十三

代码分析

table view.js
用于表格类型的展现效果,界面可定制化能力更强
可指定表格的行列数及宽高,颜色,部分行列可合并,用户可自行定制

class TableView extends react_1.default.Component {
      constructor(props) {
          super(props);
      }
      renderTd(td, colIndex, rowIndex) {
          const { border, borderColor, render, style } = this.props;
          const key = `td-${colIndex}`;
          let styleBorder;
          if (border) {
              styleBorder = `1px solid ${borderColor}`;
          }
          return (react_1.default.createElement("td", { style: Object.assign({ border: styleBorder, color: td.color, fontWeight: td.bold ? 'bold' : 'normal', background: td.background, padding: td.padding || defaultPadding, width: td.width || 'auto', textAlign: td.align || 'left', verticalAlign: td.valign || 'center' }, style), align: td.align, valign: td.valign, rowSpan: td.rowspan, colSpan: td.colspan, key: key }, this.renderTdBody(td.body)));
      }
      renderTdBody(body) {
          const { render } = this.props;
          return render('td', body || '');
      }
      renderTds(tds, rowIndex) {
          return tds.map((td, colIndex) => this.renderTd(td, colIndex, rowIndex));
      }
      renderTr(tr, rowIndex) {
          const key = `tr-${rowIndex}`;
          return (react_1.default.createElement("tr", { style: Object.assign({ height: tr.height, background: tr.background }, tr.style), key: key }, this.renderTds(tr.tds || [], rowIndex)));
      }
      renderTrs(trs) {
          const tr = trs.map((tr, rowIndex) => this.renderTr(tr, rowIndex));
          return tr;
      }
      renderCols() {
          const { cols } = this.props;
          if (cols) {
              const colsElement = cols.map(col => {
                  return react_1.default.createElement("col", { span: col.span, style: col.style });
              });
              return react_1.default.createElement("colgroup", null, colsElement);
          }
          return null;
      }
      renderCaption() {
          if (this.props.caption) {
              return (react_1.default.createElement("caption", { style: {
                      captionSide: this.props.captionSide === 'bottom' ? 'bottom' : 'top'
                  } }, this.props.caption));
          }
          return null;
      }
      render() {
          const { width, border, borderColor, trs, classnames: cx, className } = this.props;
          let styleBorder;
          if (border) {
              styleBorder = `1px solid ${borderColor}`;
          }
          return (react_1.default.createElement("table", { className: cx('TableView', className), style: { width: width, border: styleBorder, borderCollapse: 'collapse' } },
              this.renderCaption(),
              this.renderCols(),
              react_1.default.createElement("tbody", null, this.renderTrs(trs))));
      }
  }

总结

可定制化使tableview可控性更强了,可按照用户喜好自行设定,有利于用户开发前端。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值