123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- export default {
- name: 'ElDescriptionsRow',
- props: {
- row: {
- type: Array
- }
- },
- inject: ['elDescriptions'],
- render(h) {
- const { elDescriptions } = this;
- const row = (this.row || []).map(item => {
- return {
- ...item,
- label: item.slots.label || item.props.label,
- ...['labelClassName', 'contentClassName', 'labelStyle', 'contentStyle'].reduce((res, key) => {
- res[key] = item.props[key] || elDescriptions[key];
- return res;
- }, {})
- };
- });
- if (elDescriptions.direction === 'vertical') {
- return (
- <tbody>
- <tr class="el-descriptions-row">
- {
- row.map(item => {
- return (
- <th
- class={{
- 'el-descriptions-item__cell': true,
- 'el-descriptions-item__label': true,
- 'has-colon': elDescriptions.border ? false : elDescriptions.colon,
- 'is-bordered-label': elDescriptions.border,
- [item.labelClassName]: true
- }}
- style={item.labelStyle}
- colSpan={item.props.span}
- >{item.label}</th>
- );
- })
- }
- </tr>
- <tr class="el-descriptions-row">
- {
- row.map(item =>{
- return (
- <td
- class={['el-descriptions-item__cell', 'el-descriptions-item__content', item.contentClassName]}
- style={item.contentStyle}
- colSpan={item.props.span}
- >{item.slots.default}</td>
- );
- })
- }
- </tr>
- </tbody>
- );
- }
- if (elDescriptions.border) {
- return (
- <tbody>
- <tr class="el-descriptions-row">
- {
- row.map(item=> {
- return ([
- <th
- class={{
- 'el-descriptions-item__cell': true,
- 'el-descriptions-item__label': true,
- 'is-bordered-label': elDescriptions.border,
- [item.labelClassName]: true
- }}
- style={item.labelStyle}
- colSpan="1"
- >{item.label}</th>,
- <td
- class={['el-descriptions-item__cell', 'el-descriptions-item__content', item.contentClassName]}
- style={item.contentStyle}
- colSpan={item.props.span * 2 - 1}
- >{item.slots.default}</td>
- ]);
- })
- }
- </tr>
- </tbody>
- );
- }
- return (
- <tbody>
- <tr class="el-descriptions-row">
- {
- row.map(item=> {
- return (
- <td class="el-descriptions-item el-descriptions-item__cell" colSpan={item.props.span}>
- <div class="el-descriptions-item__container">
- <span
- class={{
- 'el-descriptions-item__label': true,
- 'has-colon': elDescriptions.colon,
- [item.labelClassName]: true
- }}
- style={item.labelStyle}
- >{item.label}</span>
- <span
- class={['el-descriptions-item__content', item.contentClassName]}
- style={item.contentStyle}
- >{item.slots.default}</span>
- </div>
- </td>);
- })
- }
- </tr>
- </tbody>
- );
- }
- };
|