diff --git a/build/Table.css b/build/Table.css
index 8129de7..1f299d9 100644
--- a/build/Table.css
+++ b/build/Table.css
@@ -153,6 +153,13 @@
.u-loading.u-loading-line.u-loading-line-warning > div {
background-color: #ff9800; }
+.u-loading.u-loading-custom > div {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%); }
+
@keyframes line-scale {
0% {
-webkit-transform: scaley(1);
@@ -337,10 +344,10 @@
content: "."; }
.u-table-row-expanded:after, .u-table-expanded-row-expanded:after {
content: "\e639";
- font-family: "uf" !important; }
+ font-family: "uf"; }
.u-table-row-collapsed:after, .u-table-expanded-row-collapsed:after {
content: "\e61c";
- font-family: "uf" !important; }
+ font-family: "uf"; }
.u-table-row.selected {
background: #FFF7E7; }
.u-table tr.u-table-expanded-row {
diff --git a/build/Table.js b/build/Table.js
index 4b1c5c7..743b813 100644
--- a/build/Table.js
+++ b/build/Table.js
@@ -324,9 +324,9 @@ var Table = function (_Component) {
_utils.EventUtil.addHandler(this.contentTable, 'focus', this.onFocus);
setTimeout(this.resetScrollX, 300);
//含有纵向滚动条
- if (this.props.scroll.y) {
- this.scrollbarWidth = (0, _utils.measureScrollbar)();
- }
+ // if(this.props.scroll.y){
+ this.scrollbarWidth = (0, _utils.measureScrollbar)();
+ // }
//后续也放在recevice里面
if (!this.props.originWidth) {
this.computeTableWidth();
diff --git a/build/TableHeader.js b/build/TableHeader.js
index c2b12e5..9404273 100644
--- a/build/TableHeader.js
+++ b/build/TableHeader.js
@@ -77,7 +77,8 @@ var TableHeader = function (_Component) {
targetEvent = _utils.Event.getTarget(event);
var _this$props = _this.props,
clsPrefix = _this$props.clsPrefix,
- contentTable = _this$props.contentTable;
+ contentTable = _this$props.contentTable,
+ lastShowIndex = _this$props.lastShowIndex;
var currentElement = _this.getOnLineObject(targetEvent);
if (!currentElement) return;
@@ -95,6 +96,14 @@ var TableHeader = function (_Component) {
_this.drag.oldWidth = parseInt(currentObj.style.width);
_this.drag.minWidth = currentObj.style.minWidth != "" ? parseInt(currentObj.style.minWidth) : defaultWidth;
_this.drag.tableWidth = parseInt(_this.table.table.style.width ? _this.table.table.style.width : _this.table.table.scrollWidth);
+ // console.log(" ----- ",this.drag);
+ if (!_this.tableOldWidth) {
+ _this.tableOldWidth = _this.drag.tableWidth; //this.getTableWidth();
+ // console.log(" this.tableOldWidth--- ",this.tableOldWidth);
+ }
+ if (!_this.lastColumWidth) {
+ _this.lastColumWidth = parseInt(_this.table.cols[lastShowIndex].style.width);
+ }
} else if (type != 'online' && _this.props.draggable) {
// if (!this.props.draggable || targetEvent.nodeName.toUpperCase() != "TH") return;
if (!_this.props.draggable) return;
@@ -110,6 +119,16 @@ var TableHeader = function (_Component) {
}
};
+ _this.getTableWidth = function () {
+ var tableWidth = 0,
+ offWidth = 0; //this.table.cols.length;
+ for (var index = 0; index < _this.table.cols.length; index++) {
+ var da = _this.table.cols[index];
+ tableWidth += parseInt(da.style.width);
+ }
+ return tableWidth - offWidth;
+ };
+
_this.getTargetToTh = function (targetEvent) {
var th = targetEvent;
if (targetEvent.nodeName.toUpperCase() != "TH") {
@@ -127,7 +146,8 @@ var TableHeader = function (_Component) {
contentDomWidth = _this$props2.contentDomWidth,
scrollbarWidth = _this$props2.scrollbarWidth,
contentTable = _this$props2.contentTable,
- headerScroll = _this$props2.headerScroll;
+ headerScroll = _this$props2.headerScroll,
+ lastShowIndex = _this$props2.lastShowIndex;
_utils.Event.stopPropagation(e);
var event = _utils.Event.getEvent(e);
@@ -136,8 +156,7 @@ var TableHeader = function (_Component) {
var currentCols = _this.table.cols[_this.drag.currIndex];
var diff = event.x - _this.drag.oldLeft;
var newWidth = _this.drag.oldWidth + diff;
- _this.drag.newWidth = newWidth;
-
+ _this.drag.newWidth = newWidth > 0 ? newWidth : _this.minWidth;
// if(newWidth > this.drag.minWidth){
if (newWidth > _this.minWidth) {
currentCols.style.width = newWidth + 'px';
@@ -145,14 +164,23 @@ var TableHeader = function (_Component) {
if (_this.fixedTable.cols) {
_this.fixedTable.cols[_this.drag.currIndex].style.width = newWidth + "px";
}
- var newTableWidth = _this.drag.tableWidth + diff + 'px';
- _this.table.table.style.width = newTableWidth; //改变table的width
- if (_this.table.innerTableBody) {
- //TODO 后续需要处理此处
- _this.table.innerTableBody.style.width = newTableWidth;
- }
- var showScroll = contentDomWidth - (_this.drag.tableWidth + diff) - scrollbarWidth;
+ // const newTableWidth = this.drag.tableWidth + diff;// +'px';
+ // this.table.table.style.width = newTableWidth+'px';;//改变table的width
+ // if(this.table.innerTableBody){//TODO 后续需要处理此处
+ // this.table.innerTableBody.style.width = newTableWidth+'px';
+
+ // }
+
+ var newDiff = parseInt(currentCols.style.minWidth) - parseInt(currentCols.style.width);
+ if (newDiff > 0) {
+ //缩小
+ var lastWidth = _this.lastColumWidth + newDiff;
+ _this.table.cols[lastShowIndex].style.width = lastWidth + "px"; //同步表头
+ _this.table.tableBodyCols[lastShowIndex].style.width = lastWidth + "px"; //同步表体
+ }
+
+ var showScroll = contentDomWidth - (_this.drag.tableWidth + diff) - scrollbarWidth;
//表头滚动条处理
if (headerScroll) {
if (showScroll < 0) {
@@ -181,6 +209,8 @@ var TableHeader = function (_Component) {
_this.optTableScroll(_this.table.fixedRightBodyTable, { x: 'auto' });
}
}
+ } else {
+ _this.drag.newWidth = _this.minWidth;
}
} else if (_this.props.draggable && _this.drag.option == "draggable") {
// console.log(" --onTrMouseMove--draggable- ",this.drag.option);
@@ -277,7 +307,7 @@ var TableHeader = function (_Component) {
if (!currentIndex || parseInt(currentIndex) === _this.drag.currIndex) return;
if (target.nodeName.toUpperCase() === "TH") {
// target.style.border = "2px dashed rgba(5,0,0,0.25)";
- target.setAttribute("style", "border:2px dashed rgba(5,0,0,0.25)");
+ target.setAttribute("style", "border-right:2px dashed rgba(5,0,0,0.25)");
// target.style.backgroundColor = 'rgb(235, 236, 240)';
}
};
@@ -440,6 +470,7 @@ var TableHeader = function (_Component) {
_this.table = null;
_this._thead = null; //当前对象
_this.event = false; //避免多次绑定问题
+ _this.lastColumWidth = null; //非固定列最后一列的初始化宽度
return _this;
}
@@ -484,6 +515,7 @@ var TableHeader = function (_Component) {
table.cols = tableDome.getElementsByTagName("col");
table.ths = tableDome.getElementsByTagName("th");
table.tr = tableDome.getElementsByTagName("tr");
+ table.tableBodyCols = contentTable.querySelector('.u-table-scroll .u-table-body').getElementsByTagName("col");
}
table.fixedLeftHeaderTable = contentTable.querySelector('.u-table-fixed-left .u-table-header');
diff --git a/build/lib/bigData.js b/build/lib/bigData.js
index c0c1b24..005ed41 100644
--- a/build/lib/bigData.js
+++ b/build/lib/bigData.js
@@ -84,6 +84,8 @@ function bigData(Table) {
_this.endIndex = _this.currentIndex + _this.loadCount; //数据结束位置
}
if (nextProps.data !== props.data) {
+ _this.cachedRowHeight = []; //缓存每行的高度
+ _this.cachedRowParentIndex = [];
_this.computeCachedRowParentIndex(nextProps.data);
if (nextProps.data.length > 0) {
_this.endIndex = _this.currentIndex - nextProps.loadBuffer + _this.loadCount; //数据结束位置
diff --git a/build/lib/singleSelect.js b/build/lib/singleSelect.js
index 0e8a046..a34e5a9 100644
--- a/build/lib/singleSelect.js
+++ b/build/lib/singleSelect.js
@@ -73,7 +73,7 @@ function singleSelect(Table, Radio) {
onChange: function onChange(value) {
return _this.onRadioChange(value, record, index);
},
- style: { width: '16px', height: '16px', display: 'block', marginLeft: '4px' } },
+ style: { width: '14px', height: '14px', display: 'block', marginLeft: '4px' } },
_react2["default"].createElement(Radio, { value: index })
);
}
@@ -117,8 +117,7 @@ function singleSelect(Table, Radio) {
return _react2["default"].createElement(Table, _extends({}, this.props, {
columns: this.getDefaultColumns(columns),
- data: data,
- height: 40 }));
+ data: data }));
};
return SingleSelect;
diff --git a/build/lib/sum.js b/build/lib/sum.js
index 5987695..d4c452f 100644
--- a/build/lib/sum.js
+++ b/build/lib/sum.js
@@ -106,9 +106,9 @@ function sum(Table) {
return _this;
}
- /**
- * 获取当前的表格类型。
- *
+ /**
+ * 获取当前的表格类型。
+ *
*/
diff --git a/build/lib/util.js b/build/lib/util.js
index 9ea2e19..8d6a331 100644
--- a/build/lib/util.js
+++ b/build/lib/util.js
@@ -1,7 +1,7 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
- value: true
+ value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
@@ -9,71 +9,71 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
exports.sortBy = sortBy;
exports.compare = compare;
exports.ObjectAssign = ObjectAssign;
-/*
-* 快速排序,按某个属性,或按“获取排序依据的函数”,来排序.
-* @method soryBy
-* @static
-* @param {array} arr 待处理数组
-* @param {string|function} prop 排序依据属性,获取
-* @param {boolean} desc 降序
-* @return {array} 返回排序后的新数组
+/*
+* 快速排序,按某个属性,或按“获取排序依据的函数”,来排序.
+* @method soryBy
+* @static
+* @param {array} arr 待处理数组
+* @param {string|function} prop 排序依据属性,获取
+* @param {boolean} desc 降序
+* @return {array} 返回排序后的新数组
*/
function sortBy(arr, prop, desc) {
- var props = [],
- ret = [],
- i = 0,
- len = arr.length;
- if (typeof prop == 'string') {
- for (; i < len; i++) {
- var oI = arr[i];
- (props[i] = new String(oI && oI[prop] || ''))._obj = oI;
- }
- } else if (typeof prop == 'function') {
- for (; i < len; i++) {
- var _oI = arr[i];
- (props[i] = new String(_oI && prop(_oI) || ''))._obj = _oI;
- }
- } else {
- throw '参数类型错误';
+ var props = [],
+ ret = [],
+ i = 0,
+ len = arr.length;
+ if (typeof prop == 'string') {
+ for (; i < len; i++) {
+ var oI = arr[i];
+ (props[i] = new String(oI && oI[prop] || ''))._obj = oI;
}
- props.sort();
- for (i = 0; i < len; i++) {
- ret[i] = props[i]._obj;
+ } else if (typeof prop == 'function') {
+ for (; i < len; i++) {
+ var _oI = arr[i];
+ (props[i] = new String(_oI && prop(_oI) || ''))._obj = _oI;
}
- if (desc) ret.reverse();
- return ret;
+ } else {
+ throw '参数类型错误';
+ }
+ props.sort();
+ for (i = 0; i < len; i++) {
+ ret[i] = props[i]._obj;
+ }
+ if (desc) ret.reverse();
+ return ret;
};
-/**
- * 数组对象排序
- * console.log(arr.sort(compare('age')))
- * @param {} property
+/**
+ * 数组对象排序
+ * console.log(arr.sort(compare('age')))
+ * @param {} property
*/
function compare(property) {
- return function (a, b) {
- var value1 = a[property];
- var value2 = b[property];
- return value1 - value2;
- };
+ return function (a, b) {
+ var value1 = a[property];
+ var value2 = b[property];
+ return value1 - value2;
+ };
}
-/**
- * 简单数组数据对象拷贝
- * @param {*} obj 要拷贝的对象
+/**
+ * 简单数组数据对象拷贝
+ * @param {*} obj 要拷贝的对象
*/
function ObjectAssign(obj) {
- var b = obj instanceof Array;
- var tagObj = b ? [] : {};
- if (b) {
- //数组
- obj.forEach(function (da) {
- var _da = {};
- _extends(_da, da);
- tagObj.push(_da);
- });
- } else {
- _extends(tagObj, obj);
- }
- return tagObj;
+ var b = obj instanceof Array;
+ var tagObj = b ? [] : {};
+ if (b) {
+ //数组
+ obj.forEach(function (da) {
+ var _da = {};
+ _extends(_da, da);
+ tagObj.push(_da);
+ });
+ } else {
+ _extends(tagObj, obj);
+ }
+ return tagObj;
}
\ No newline at end of file
diff --git a/build/render/CheckboxRender.js b/build/render/CheckboxRender.js
index 8473356..1e4ba25 100644
--- a/build/render/CheckboxRender.js
+++ b/build/render/CheckboxRender.js
@@ -19,11 +19,11 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
-/**
- * 渲染checkbox
- * @param Checkbox
- * @param Icon
- * @returns {CheckboxRender}
+/**
+ * 渲染checkbox
+ * @param Checkbox
+ * @param Icon
+ * @returns {CheckboxRender}
*/
function renderCheckbox(Checkbox, Icon) {
return function (_Component) {
diff --git a/build/render/InputRender.js b/build/render/InputRender.js
index 04c7002..68f898d 100644
--- a/build/render/InputRender.js
+++ b/build/render/InputRender.js
@@ -28,12 +28,12 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
-/**
- * 渲染输入框
- * @param Form
- * @param Input
- * @param Icon
- * @returns {InputRender}
+/**
+ * 渲染输入框
+ * @param Form
+ * @param Input
+ * @param Icon
+ * @returns {InputRender}
*/
function renderInput(Form, Input, Icon) {
var _class, _temp2;
diff --git a/build/render/SelectRender.js b/build/render/SelectRender.js
index a1d55db..d72159b 100644
--- a/build/render/SelectRender.js
+++ b/build/render/SelectRender.js
@@ -26,11 +26,11 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
-/**
- * 渲染下拉框
- * @param Select
- * @param Icon
- * @returns {SelectRender}
+/**
+ * 渲染下拉框
+ * @param Select
+ * @param Icon
+ * @returns {SelectRender}
*/
function renderSelect(Select, Icon) {
var _class, _temp2;
diff --git a/demo/demolist/Demo1001.js b/demo/demolist/Demo1001.js
index 70409b1..6981dab 100644
--- a/demo/demolist/Demo1001.js
+++ b/demo/demolist/Demo1001.js
@@ -36,14 +36,21 @@ const columns = [
title: "联系人",
dataIndex: "d",
key: "d",
+ width: 500,
+ },
+ {
+ title: "操作",
+ dataIndex: "e",
+ key: "e",
width: 200,
+ fixed: 'right',
}
];
const data = [
- { a: "NU0391001", b: "2019-03-01", c: 'xx供应商',d:'Tom', key: "2" },
- { a: "NU0391002", b: "2018-11-02", c: 'yy供应商',d:'Jack', key: "1" },
- { a: "NU0391003", b: "2019-05-03", c: 'zz供应商',d:'Jane', key: "3" }
+ { a: "NU0391001", b: "2019-03-01", c: 'xx供应商',d:'Tom',e:'...', key: "2" },
+ { a: "NU0391002", b: "2018-11-02", c: 'yy供应商',d:'Jack',e:'...', key: "1" },
+ { a: "NU0391003", b: "2019-05-03", c: 'zz供应商',d:'Jane',e:'...', key: "3" }
];
const DragColumnTable = dragColumn(Table);
diff --git a/demo/index.js b/demo/index.js
index 7bd9a54..f4529b5 100644
--- a/demo/index.js
+++ b/demo/index.js
@@ -8,7 +8,7 @@ import Button from '../src';
-var Demo0101 = require("./demolist/Demo0101");var Demo0102 = require("./demolist/Demo0102");var Demo0103 = require("./demolist/Demo0103");var Demo0104 = require("./demolist/Demo0104");var Demo0105 = require("./demolist/Demo0105");var Demo0106 = require("./demolist/Demo0106");var Demo0107 = require("./demolist/Demo0107");var Demo0201 = require("./demolist/Demo0201");var Demo0202 = require("./demolist/Demo0202");var Demo0301 = require("./demolist/Demo0301");var Demo0302 = require("./demolist/Demo0302");var Demo0402 = require("./demolist/Demo0402");var Demo0404 = require("./demolist/Demo0404");var Demo0405 = require("./demolist/Demo0405");var Demo0501 = require("./demolist/Demo0501");var Demo0502 = require("./demolist/Demo0502");var Demo0503 = require("./demolist/Demo0503");var Demo0505 = require("./demolist/Demo0505");var Demo0601 = require("./demolist/Demo0601");var Demo0602 = require("./demolist/Demo0602");var Demo0603 = require("./demolist/Demo0603");var Demo0701 = require("./demolist/Demo0701");var Demo0702 = require("./demolist/Demo0702");var Demo0802 = require("./demolist/Demo0802");var Demo0901 = require("./demolist/Demo0901");var Demo0902 = require("./demolist/Demo0902");var Demo0903 = require("./demolist/Demo0903");var Demo1001 = require("./demolist/Demo1001");var Demo1002 = require("./demolist/Demo1002");var Demo1101 = require("./demolist/Demo1101");var Demo1102 = require("./demolist/Demo1102");var Demo1103 = require("./demolist/Demo1103");var Demo1105 = require("./demolist/Demo1105");var Demo1106 = require("./demolist/Demo1106");var Demo1107 = require("./demolist/Demo1107");var Demo1108 = require("./demolist/Demo1108");var Demo1201 = require("./demolist/Demo1201");var Demo1301 = require("./demolist/Demo1301");var Demo1302 = require("./demolist/Demo1302");var Demo1401 = require("./demolist/Demo1401");var Demo1402 = require("./demolist/Demo1402");var Demo1403 = require("./demolist/Demo1403");var Demo1404 = require("./demolist/Demo1404");var Demo1601 = require("./demolist/Demo1601");var DemoArray = [{"example":
{ title }
\n{ desc }
\n 查看源码 \n\n { code }
\n
\n {!!scss_code ?\n { scss_code }
\n
: null }\n