UNPKG

yw-common-list

Version:

基于vxe-table封装的自定义可配置表格

263 lines (222 loc) 7.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _table = require("../../table"); var _column = require("../../column"); var _conf = _interopRequireDefault(require("../../v-x-e-table/src/conf")); var _format = require("./format"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var _default2 = { name: 'aCommonList', inheritAttrs: false, // mixins: [tableEventMixins], data: function data() { return {}; }, props: { tableOption: { type: Object, default: function _default() { return _conf.default.table; } }, tableData: { type: Array, default: function _default() { return []; } }, columns: { type: Array, required: true, default: function _default() { return []; } }, loading: { type: Boolean, default: false }, // 表格的key tableKey: { type: String } }, methods: { // 初始化表格行插槽 initSlots: function initSlots(column, h) { var $scopedSlots = this.$scopedSlots; var _header = "".concat(column.field, "Header"); var scopedSlots = {}; if ($scopedSlots[_header]) { scopedSlots = _objectSpread({ header: function header(props) { if (!$scopedSlots[_header]) return; return h('div', $scopedSlots[_header](props)); } }, scopedSlots); } return scopedSlots || {}; }, // 渲染表格行 renderColumns: function renderColumns(h) { var _this = this; var _this$$props = this.$props, columns = _this$$props.columns, tableOption = _this$$props.tableOption; var renderCol = []; var $scopedSlots = this.$scopedSlots; columns.map(function (column) { var _column$data; // showOverflow: true,默认超出隐藏,鼠标悬浮tooltip显示 var attrs = _objectSpread(_objectSpread({ showOverflow: true }, column), {}, { sortable: column.whetherSort === '1' }); // 设置字典取值 if (((_column$data = column.data) === null || _column$data === void 0 ? void 0 : _column$data.dictType) > 0) { attrs.field = "".concat(column.field, "_dictText"); } // 设置锁定 var lock = column.columnLock; if (lock) { switch (lock) { case 'left': case 'right': attrs.fixed = lock; break; } } // 设置对齐方式 var align = column.columnDataAlign || tableOption.columnTitleAlign || 'left'; if (align) { switch (align) { case 'left': case 'right': attrs.align = align; break; default: attrs.align = 'center'; } } var type = column.columnAttributes; var scopedSlots = _this.initSlots(column, h); switch (type) { case '-3': // checkbox列 attrs.type = 'checkbox'; break; case '-2': // 自定义列 if ($scopedSlots[column.field]) { scopedSlots = _objectSpread({ default: function _default(props) { // console.log('ac-default', props) return h('div', $scopedSlots[column.field](props)); } }, scopedSlots); } break; case '-1': // 只传值不显示 break; case '0': // 只显示 break; case '1': // 即传值又显示 break; case '2': // AD全名变简名 break; case '3': // 只显示时间的日期部分 attrs.formatter = _format.formatDateDay; break; case '4': // 既不显示也不传值 break; case '5': // 只显示时间的秒之前的部分 attrs.formatter = _format.formatDateHours; break; } var showColumnsType = ['-3', '-2', '0', '1', '2', '3', '5']; if (_this.isNotEmptyNumber(type)) { if (showColumnsType.indexOf(type) !== -1) { renderCol.push(h(_column.Column, { attrs: attrs, scopedSlots: scopedSlots })); } } else { renderCol.push(h(_column.Column, { attrs: attrs, scopedSlots: scopedSlots })); } }); return renderCol; }, // 判断不为空数字 isNotEmptyNumber: function isNotEmptyNumber(str) { return str !== '' && str !== null && typeof str !== 'undefined'; }, // 初始化表格事件 initEvent: function initEvent() {// const eventData = { ...this.eventData } // const events = {} // for (const event in eventData) { // events[event] = (data) => this.$emit(event, data) // } // return events } }, render: function render(h) { var _this$$props2 = this.$props, tableOption = _this$$props2.tableOption, loading = _this$$props2.loading, tableData = _this$$props2.tableData; var sortConfig = { remote: true, trigger: 'cell' }; var ref = this.tableKey; var columnConfig = { resizable: true }; var $scopedSlots = this.$scopedSlots; // const events = this.initEvent() var tooltipConfig = { enterable: true }; var rowConfig = { isCurrent: true, isHover: true }; // 设置行高 if (tableOption.rowHeight) rowConfig.height = tableOption.rowHeight; tableOption.height = tableOption.tableHeight || 'auto'; return h('div', { class: 'a-common-list' }, [h(_table.Table, { ref: ref, attrs: _objectSpread(_objectSpread(_objectSpread({}, this.$attrs), tableOption), {}, { loading: loading, data: tableData, menuConfig: {}, tooltipConfig: tooltipConfig, rowConfig: rowConfig, columnConfig: columnConfig, sortConfig: sortConfig }), scopedSlots: { header: function header(props) { return h('div', $scopedSlots.tableHeader(props)); } }, on: this.$listeners }, this.renderColumns(h))]); } }; exports.default = _default2;