123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822 |
- Namespace.register("U.UF.E");
- U.UF.E.table = function (range) {
- var _p,
- _inputo,
- _inputt,
- _frag = $$("frag"),
- _table = U.UF.E.table;
- _table._range = range;
- _p = $$("p", { "style": { "cssText": "text-align: left;font-weight: bold;padding: 10px 0 0 15px;" }, "innerHTML": "表格尺寸: " }, _frag);
- _p = $$("p", { "style": { "cssText": "text-align: left;margin-top: 15px;font-size: 14px;padding-left: 30px;" }, "innerHTML": "列数: " }, _frag);
- _inputo = $$("input", { "type": "number", "style": { "cssText": "width: 80px;margin-left: 65px;" }, "min": "1" }, _p);
- _p = $$("p", { "style": { "cssText": "text-align: left;padding-left: 30px;margin-top: 15px;font-size: 14px;margin-bottom: 22px;" }, "innerHTML": "行数: " }, _frag);
- _inputt = $$("input", { "type": "number", "style": { "cssText": "width: 80px;margin-left: 65px;" }, "min": "1" }, _p);
-
- U.UF.UI.confirm(_frag, function () {
- var _row = _inputo.value;
- var _col = _inputt.value;
- if (_row >= 1 && _col >= 1) {
- _table.addTable(_row, _col);
- }
- });
- U.selectEl(document).unbind('mousedown', U.UF.E.table.removeFocus);
- U.selectEl(document).bind('mousedown', U.UF.E.table.removeFocus);
- };
- U.UF.E.table.load = function (tableel) {
- var _table = U.UF.E.table;
- var _tableEl = tableel;
- if (_tableEl.features) return;
- _tableEl.features = true;
- var _pelDiv = _tableEl.parentNode;
- var _allTd = _tableEl.querySelectorAll("td");
- _allTd.forEach(function (v) {
- U.selectEl(v).rmAttr("width");
- var _value = U.selectEl(v).css("display");
- if (_value === "none") {
- v.remove();
- }
- });
- _pelDiv.style.cssText = "overflow-y:hidden;padding-bottom:5px;padding-right:7px;";
- _tableEl.style.cssText = _tableEl.style.cssText + "border-spacing: 0;border-collapse: collapse;position: relative;";
- _tableEl.contentEditable = "false";
- _table.tableOver(_tableEl);
- var _trList = _tableEl.querySelectorAll("tr");
- var _tdList = U.selectEl(_tableEl).find("td");
-
- for (var i = 0; i < _tdList.length; i++) {
- var _tdCopy = _tdList[i];
- _tdCopy.contentEditable = "true";
- _tdCopy.style.cssText += ";outline:0;box-sizing:border-box;position:relative;padding:0px;border:2px solid #333;"
- var _tdWidth = _tdCopy.clientWidth;
- _tdCopy.style.width = _tdWidth + "px";
- _table.loadCell(_tdCopy);
- var _colRule = $$("div", { "style": { "outline": "0", "zIndex": "1", "position": "absolute", "top": 0, "right": 0, "cursor": "col-resize", "width": "3px", "height": "100%" }, "tabindex": "0", "contenteditable": "false", "className": "U_MD_O_W_Table_colRule", "inline": true }, _tdCopy);
- _table.colExpanding(_colRule);
- _table.dragCheckd(_tdCopy);
- _table.rightClick(_tableEl);
- }
-
- for (var i = 0; i < _trList.length; i++) {
- var _trEl = _trList[i];
- _trEl.style.cssText += ";position:relative;overflow:hidden;";
- var _rowRule = $$("div", { "style": { "outline": "0", "zIndex": "1", "position": "absolute", "left": 0, "margin-top": _trEl.clientHeight + "px", cursor: "row-resize", height: "3px", width: "100%" }, tabindex: "0", "contenteditable": "false", "className": "U_MD_O_W_Table_rowRule", "inline": true }, _trEl);
- _table.rowExpanding(_rowRule);
- };
- }
- U.UF.E.table.loadCell = function (tdEl) {
- var _table = U.UF.E.table;
- var _tableEl = _table.parentSelect(tdEl, "table");
- var _colSpan = tdEl.colSpan - 1;
- var _rowSpan = tdEl.rowSpan - 1;
- if (_colSpan >= 1) {
- for (var i = 0; i < _colSpan; i++) {
- var _newTd = $$("td");
- _newTd.style.display = "none";
- _table.After(tdEl, _newTd);
- }
- }
- if (_rowSpan >= 1) {
- var _tdIndex = _table.index(tdEl);
- var _trIndex = _table.index(tdEl.parentNode);
- var _trList = _tableEl.querySelectorAll("tr");
- for (var i = 1; i <= _rowSpan; i++) {
- var _tdList = _trList[_trIndex + i].querySelectorAll("td");
- var _td = _tdList[_tdIndex - 1];
- for (var j = 0; j <= _colSpan; j++) {
- var _newTd = $$("td");
- _newTd.style.display = "none";
- _table.After(_td, _newTd);
- }
- }
- }
- }
- U.UF.E.table.addTable = function (row, col) {
- var i, j, _tr, _td,
- _frag = $$("frag"),
- _pel = U.UF.E.table.createTablePel(),
- _table = $$("table", { style: { cssText: "border-spacing: 0;border-collapse: collapse;width: 100%;position: relative;table-layout:fixed;"} }, _pel),
- _tbody = $$("tbody", {}, _table),
- _width = Math.max(Math.floor(_table.clientWidth / col), 50)
- ;
-
-
- for (i = 0; i < row; i++) {
- _tr = $$("tr", {}, _frag);
- for (j = 0; j < col; j++) {
- _td = $$("td", { style: { width: _width + "px" }, "innerHTML": "<br />" }, _tr);
- }
- }
- _tbody.appendChild(_frag);
- U.UF.E.table.load(_table);
- };
- U.UF.E.table.createTablePel = function () {
- var _table = U.UF.E.table;
-
- var _range = U.UF.E.table._range,
- _div = U.UF.E.getLineElement(_range.startContainer);
- if (_div.textContent !== "") {
- var _div = U.selectEl("#" + U.UF.E.key.addLine(_range).addLine)[0];
- }
-
- _div.style.cssText = "overflow-y:hidden;padding-bottom:5px;padding-right:7px;width:90%";
- U.UF.E.key.addLine(_range);
- _table.placeCaretAtEnd(_div);
- return _div;
- };
- U.UF.E.table.firstLinePeak = function (tableEl) {
- U.selectEl(tableEl).find(".U_UF_E_Table_peak").css("height", 0);
- U.selectEl(tableEl).find(".U_UF_E_Table_peak").removeClass("U_UF_E_Table_peak");
- var _height = tableEl.clientHeight;
- var _colRuleList = tableEl.querySelectorAll("tr")[0].querySelectorAll(".U_MD_O_W_Table_colRule");
- for (var i = 0, len = _colRuleList.length; i < len; i++) {
- var _colRule = _colRuleList[i];
- _colRule.style.height = _height + "px";
- U.selectEl(_colRule).addClass("U_UF_E_Table_peak");
- }
- };
- U.UF.E.table.tableOver = function (table) {
- U.selectEl(table).bind('mouseover', function () {
- this.over = true;
- });
- U.selectEl(table).bind('mouseout', function () {
- this.over = false;
- });
- };
- U.UF.E.table.colExpanding = function (colrule) {
- var _div = colrule;
- U.selectEl(_div).bind({
- 'mousedown': function (e) {
- U.selectEl("#U_UF_EL_rightmenu")[0] && U.selectEl("#U_UF_EL_rightmenu")[0].remove();
- U.UF.EV.stopBubble(e);
- this.style.backgroundColor = "#8cb3e0";
- var _table = U.UF.E.table;
- var _this = this;
- var _tdEl = this.parentNode;
- var _tableEl = _table.parentSelect(this, "table");
- var _tableElWidth = _tableEl.clientWidth;
- var _trList = _tableEl.querySelectorAll("tr");
- var _tdElIndex = _table.index(_tdEl);
- var _dis,
- _disX;
- var _oMouseX = e.pageX;
- var _oX = parseInt(this.style.right);
- var expandingMove = function (e) {
- U.UF.EV.stopDefault(e);
- var _mouseX = e.pageX;
- _dis = _mouseX - _oMouseX;
- _disX = _dis + _oX;
- U.selectEl(_this).css("right", -_disX + "px");
- };
- var expandingUp = function () {
- _this.style.backgroundColor = "";
- var _child;
- for (var i = 0, len = _trList.length; i < len; i++) {
- var _colTdEl = U.selectEl("td", _trList[i])[_tdElIndex];
- _colTdEl.style.width = _colTdEl.offsetWidth + _disX + "px";
- var _colRule = _colTdEl.querySelectorAll('.U_MD_O_W_Table_colRule');
- U.selectEl(_colRule).css("right", "0px");
- _child = U.selectEl("div", _trList[i]);
- _child[_child.length - 1].style.marginTop = _trList[i].offsetHeight + "px";
- }
- U.selectEl(document).unbind('mousemove', expandingMove);
- U.selectEl(document).unbind('mouseup', expandingUp);
- };
- U.selectEl(document).bind('mousemove', expandingMove);
- U.selectEl(document).bind('mouseup', expandingUp)
- },
- 'dblclick': function (e) {
- U.UF.EV.stopBubble(e);
- },
- 'mousemove': function (e) {
- U.UF.EV.stopBubble(e);
- U.UF.EV.stopDefault(e);
- }
- });
- };
- U.UF.E.table.rowExpanding = function (rowrule) {
- var _div = rowrule;
- U.selectEl(_div).bind({
- 'mousedown': function (e) {
- U.selectEl("#U_UF_EL_rightmenu")[0] && U.selectEl("#U_UF_EL_rightmenu")[0].remove();
- this.style.backgroundColor = "#8cb3e0";
- U.UF.EV.stopBubble(e);
- var _oMouseY = e.pageY;
- var _this = this;
- var _oY = parseInt(this.style.marginTop);
- var _trEl = this.parentNode;
- var expandingMove = function (e) {
- U.UF.EV.stopDefault(e);
- var _mouseY = e.pageY;
- var _dis = _mouseY - _oMouseY + _oY;
- _dis = Math.max(30, _dis);
- _trEl.style.height = _dis + "px";
- var clienHeight = _trEl.clientHeight;
- _dis = Math.max(clienHeight, _dis);
- _trEl.style.height = _dis + "px";
- U.selectEl(_this).css("margin-top", _dis + "px");
- };
- var expandingUp = function () {
- var _table = U.UF.E.table;
- var _tableEl = _table.parentSelect(_this, "table");
- _table.firstLinePeak(_tableEl);
- _this.style.backgroundColor = "";
- U.selectEl(document).unbind('mousemove', expandingMove);
- U.selectEl(document).unbind('mouseup', expandingUp);
- };
- U.selectEl(document).bind('mousemove', expandingMove);
- U.selectEl(document).bind('mouseup', expandingUp)
- },
- 'mousemove': function (e) {
- U.UF.EV.stopBubble(e);
- U.UF.EV.stopDefault(e);
- }
- });
- };
- U.UF.E.table.createTextArea = function (parent, text) {
- var _textArea = $$("textarea", { className: "U_UF_E_Table_tdText", value: text || "", contenteditable: "true", inline: true }, parent);
- U.selectEl(_textArea).bind('mousedown', function (e) {
- U.selectEl("#U_UF_EL_rightmenu")[0] && U.selectEl("#U_UF_EL_rightmenu")[0].remove();
- });
- var autoHeight = function (el) {
- el.nodeType === 1 ? "" : el = el.target;
- el.scrollHeight ? el.style.height = el.scrollHeight + "px" : "";
- var _rowRuleList = U.selectEl(".U_MD_O_W_Table_rowRule");
- for (var i = 0, len = _rowRuleList.length; i < len; i++) {
- var _trPel = _rowRuleList[i].parentNode;
- _trPel.style.height = _trPel.clientHeight;
- U.selectEl(_rowRuleList[i]).css("margin-top", _trPel.clientHeight + "px");
- }
- };
- autoHeight(_textArea);
- U.selectEl(_textArea).bind('keydown', autoHeight);
- U.selectEl(_textArea).bind('keyup', autoHeight);
- U.selectEl(_textArea).bind('blur', function () {
- var _textla = U.selectEl(".U_UF_E_Table_tdText");
- var _tdEl = U.selectEl(".U_UF_E_Table_tdText")[0].parentNode;
- _tdEl.innerText = _textla[0].value;
- _textla.remove();
- });
- }
- U.UF.E.table.dragCheckd = function (td) {
- var _tdEl = td;
- U.selectEl(_tdEl).bind('mousedown', function (e) {
- U.UF.EV.stopBubble(e);
- U.selectEl("#U_UF_EL_rightmenu")[0] && U.selectEl("#U_UF_EL_rightmenu")[0].remove();
- if (e.button != 2) {
- var _table = U.UF.E.table;
-
- U.selectEl(".U_UF_E_Table_tdCheckd").removeClass("U_UF_E_Table_tdCheckd");
- U.selectEl(".U_UF_E_Table_tdCurrent").removeClass("U_UF_E_Table_tdCurrent");
-
- U.selectEl(this).addClass("U_UF_E_Table_tdCurrent");
- var _start = this;
- var _startX = _table.index(_start);
- var _startY = _table.index(this.parentNode);
- var _checkFlag = true;
- var _tableEl = _table.parentSelect(this, "table");
-
- var _drapMove = function (e) {
- var tagEl = e.path.filter(_filter)[0];
- if (tagEl) {
- U.UF.EV.stopBubble(e);
- if (!(_tableEl.over) || (tagEl === _start && _checkFlag)) return;
- _checkFlag = false;
- var _endX = _table.index(tagEl);
- var _endY = _table.index(tagEl.parentNode);
- U.selectEl(".U_UF_E_Table_tdCheckd").removeClass("U_UF_E_Table_tdCheckd");
- _table.tdAddClass(tagEl.parentNode, _startX, _startY, _endX, _endY);
- }
- };
- var _dragUp = function () {
- U.selectEl(document).unbind('mousemove', _drapMove);
- U.selectEl(document).unbind('mouseup', _dragUp);
- _checkFlag = true;
- };
- var _filter = function (el) {
- return el.nodeName && el.nodeName === "TD"
- }
- U.selectEl(document).bind('mousemove', _drapMove);
- U.selectEl(document).bind('mouseup', _dragUp);
- }
- });
- };
- U.UF.E.table.rightClick = function (tableEl) {
- var _table = U.UF.E.table;
- var leftAddCol = {
- innerHTML: '左侧添加列',
- onclick: function () {
- _table.addColumn("left");
- U.selectEl("#U_UF_EL_rightmenu")[0] && U.selectEl("#U_UF_EL_rightmenu")[0].remove();
- },
- onmousedown: function (e) {
- U.UF.EV.stopBubble(e);
- }
- };
- var rightAddCol = {
- innerHTML: '右侧添加列',
- onclick: function () {
- _table.addColumn("right");
- U.selectEl("#U_UF_EL_rightmenu")[0] && U.selectEl("#U_UF_EL_rightmenu")[0].remove();
- },
- onmousedown: function (e) {
- U.UF.EV.stopBubble(e);
- }
- };
- var upAddLine = {
- innerHTML: '向上添加行',
- onclick: function () {
- _table.addTr("up");
- U.selectEl("#U_UF_EL_rightmenu")[0] && U.selectEl("#U_UF_EL_rightmenu")[0].remove();
- },
- onmousedown: function (e) {
- U.UF.EV.stopBubble(e);
- }
- };
- var downAddLine = {
- innerHTML: '向下添加行',
- onclick: function () {
- _table.addTr("down");
- U.selectEl("#U_UF_EL_rightmenu")[0] && U.selectEl("#U_UF_EL_rightmenu")[0].remove();
- },
- onmousedown: function (e) {
- U.UF.EV.stopBubble(e);
- }
- };
- var removeCol = {
- innerHTML: '删除列',
- onclick: function () {
- _table.removeColumn();
- U.selectEl("#U_UF_EL_rightmenu")[0] && U.selectEl("#U_UF_EL_rightmenu")[0].remove();
- },
- onmousedown: function (e) {
- U.UF.EV.stopBubble(e);
- }
- };
- var removeLine = {
- innerHTML: '删除行',
- onclick: function () {
- _table.removeTr();
- U.selectEl("#U_UF_EL_rightmenu")[0] && U.selectEl("#U_UF_EL_rightmenu")[0].remove();
- },
- onmousedown: function (e) {
- U.UF.EV.stopBubble(e);
- }
- };
- var mergeCells = {
- innerHTML: '合并单元格',
- onclick: function () {
- _table.mergeCells();
- U.selectEl("#U_UF_EL_rightmenu")[0] && U.selectEl("#U_UF_EL_rightmenu")[0].remove();
- },
- onmousedown: function (e) {
- U.UF.EV.stopBubble(e);
- }
- };
- var _arr = [leftAddCol, rightAddCol, upAddLine, downAddLine, removeCol, removeLine, mergeCells];
- U.selectEl(tableEl).bind('contextmenu', function (e) {
- U.UF.EV.stopBubble(e);
- U.UF.EV.stopDefault();
- U.UF.EL.rightMenu(_arr, tableEl);
- U.selectEl("#U_UF_EL_rightmenu").bind('contextmenu', function (e) {
- U.UF.EV.stopBubble(e);
- });
- });
- U.selectEl(tableEl).bind('mousedown', function (e) {
- U.selectEl("#U_UF_EL_rightmenu")[0] && U.selectEl("#U_UF_EL_rightmenu")[0].remove();
- });
- };
- U.UF.E.table.addColumn = function (direction) {
- var _table = U.UF.E.table;
- var tdList = U.selectEl(".U_UF_E_Table_tdCheckd");
- if (!tdList[0]) {
- if ($(".U_UF_E_Table_tdCurrent")[0]) {
- tdList = U.selectEl(".U_UF_E_Table_tdCurrent");
- } else {
- return;
- }
- }
- var _tdEl;
- if (direction === "left") {
- _tdEl = tdList[0];
- } else if (direction === "right") {
- _tdEl = tdList[tdList.length - 1];
- }
- _table.insertTd(_tdEl, direction);
- };
- U.UF.E.table.insertTd = function (td, direction) {
- var _table = U.UF.E.table;
- var _tdEl = td,
- _index = _table.index(_tdEl),
- _dir = direction;
- var _tableEl = _table.parentSelect(_tdEl, 'table');
- var _trList = U.selectEl(_tableEl).find("tr");
- var _tableElWidth = _tableEl.offsetWidth;
- for (var i = 0, len = _trList.length; i < len; i++) {
- var _currentColumn = U.selectEl(_trList[i]).find("td")[_index];
- var _tdElClone = _tdEl.cloneNode();
- if (_dir === "left") {
- _table.Before(_currentColumn, _tdElClone);
- }
- else if (_dir === "right") {
- _table.After(_currentColumn, _tdElClone);
- }
- var _colRule = $$("div", { style: { position: "absolute", top: 0, left: "-7px", "margin-left": _tdElClone.style.width, cursor: "col-resize", width: "7px" }, className: "U_MD_O_W_Table_colRule", inline: true }, _tdElClone);
- _table.colExpanding(_colRule);
- _table.createTextArea(_tdElClone);
- _table.dragCheckd(_tdElClone);
- U.selectEl(_tdElClone).removeClass("U_UF_E_Table_tdCheckd");
- U.selectEl(_tdElClone).removeClass("U_UF_E_Table_tdCurrent");
- }
- _tableEl.style.width = _tableElWidth + _tdEl.offsetWidth + "px";
- _table.firstLinePeak(_tableEl);
- };
- U.UF.E.table.addTr = function (direction) {
- var _table = U.UF.E.table;
- var tdList = U.selectEl(".U_UF_E_Table_tdCheckd");
- if (!tdList[0]) {
- if ($(".U_UF_E_Table_tdCurrent")[0]) {
- tdList = U.selectEl(".U_UF_E_Table_tdCurrent");
- } else {
- return;
- }
- }
- var _trEl, _trElClone;
- if (direction === "up") {
- _trEl = tdList[0].parentNode;
- _trElClone = _table.cloneTr(_trEl);
- _table.Before(_trEl, _trElClone);
- } else if (direction === "down") {
- _trEl = tdList[tdList.length - 1].parentNode;
- _trElClone = _table.cloneTr(_trEl);
- _table.After(_trEl, _trElClone);
- }
- var _tableEl = _table.parentSelect(tdList[0], 'table');
- _table.firstLinePeak(_tableEl);
- };
- U.UF.E.table.removeTr = function () {
- var _table = U.UF.E.table;
- var tdList = U.selectEl(".U_UF_E_Table_tdCheckd");
- if (!tdList[0]) {
- if ($(".U_UF_E_Table_tdCurrent")[0]) {
- tdList = U.selectEl(".U_UF_E_Table_tdCurrent");
- } else {
- return;
- }
- }
- var start = _table.index(tdList[0].parentNode);
- var end = _table.index(tdList[tdList.length - 1].parentNode);
- var _tableEl = _table.parentSelect(tdList[0], "table");
- var _parentDiv = _table.parentSelect(_tableEl, "div");
- var _trList = U.selectEl(_tableEl).find("tr");
- for (var i = start; i <= end; i++) {
- _trList[i].remove();
- }
- if (!(_tableEl.querySelectorAll("tr").length)) {
- _parentDiv.remove();
- return
- }
- _table.firstLinePeak(_tableEl);
- };
- U.UF.E.table.cloneTr = function (tr) {
- var _table = U.UF.E.table;
- var _trNodes = tr.cloneNode(true);
- var _trClone = tr.cloneNode();
- var _cloneTd = U.selectEl(_trNodes).find("td");
- for (var i = 0, len = _cloneTd.length; i < len; i++) {
- var _td = _cloneTd[i].cloneNode();
- U.selectEl(_td).rmAttr("rowspan");
- _trClone.appendChild(_td);
- var _colRule = $$("div", { style: { position: "absolute", top: 0, left: "-7px", "margin-left": _td.style.width, cursor: "col-resize", width: "7px" }, className: "U_MD_O_W_Table_colRule", inline: true }, _td);
- _table.colExpanding(_colRule);
-
- _table.createTextArea(_td);
- _table.dragCheckd(_td);
- }
- var _rowRule = $$("div", { style: { position: "absolute", zIndex: "1", left: 0, "margin-top": "30px", cursor: "row-resize", height: "3px", width: "100%" }, className: "U_MD_O_W_Table_rowRule", inline: true }, _trClone);
- _table.rowExpanding(_rowRule);
- U.selectEl(_trClone).find(".U_UF_E_Table_tdCheckd").removeClass("U_UF_E_Table_tdCheckd");
- U.selectEl(_trClone).find(".U_UF_E_Table_tdCurrent").removeClass("U_UF_E_Table_tdCurrent");
- return _trClone;
- };
- U.UF.E.table.mergeCells = function () {
- var _table = U.UF.E.table;
- var _tdList = U.selectEl(".U_UF_E_Table_tdCheckd");
- if (_tdList.length <= 1) return;
- var _x1 = _table.index(_tdList[0]);
- var _y1 = _table.index(_tdList[0].parentNode);
- var _x2 = _table.index(_tdList[_tdList.length - 1]);
- var _y2 = _table.index(_tdList[_tdList.length - 1].parentNode);
- var _tableEl = _table.parentSelect(_tdList[0], "table");
- var _trList = _tableEl.querySelectorAll("tr");
- var _text = "";
- var allWidth = 0;
- for (var i = _y1; i <= _y2; i++) {
- var _trAllTd = _trList[i].querySelectorAll("td");
- for (var j = _x1; j <= _x2; j++) {
- var _tdEl = _trAllTd[j];
- _text += _tdEl.innerText;
- if (i === _y1) {
- allWidth += _tdEl.offsetWidth;
- }
- if (i === _y1 && j === _x1) continue;
- U.selectEl(_tdEl).css("display", "none");
- }
- }
- var _textNode = document.createTextNode(_text);
- var _firstNode = _table.getFirstText(_tdList[0]);
- _firstNode ? _firstNode.remove() : "";
- _tdList[0].appendChild(_textNode);
- _tdList[0].style.width = allWidth + "px";
- var _col = U.selectEl(_tdList[0]).attr("colspan");
- _col <= _x2 - _x1 + 1 ? U.selectEl(_tdList[0]).attr("colspan", _x2 - _x1 + 1) : "";
- U.selectEl(_tdList[0]).attr("rowspan", _y2 - _y1 + 1);
- U.selectEl(_tdList[0].querySelector(".U_MD_O_W_Table_colRule")).css("margin-left", allWidth + 'px');
- _table.firstLinePeak(_tableEl);
- };
- U.UF.E.table.removeColumn = function () {
- var _table = U.UF.E.table
- var tdList = U.selectEl(".U_UF_E_Table_tdCheckd");
- if (!tdList[0]) {
- if ($(".U_UF_E_Table_tdCurrent")[0]) {
- tdList = U.selectEl(".U_UF_E_Table_tdCurrent");
- } else {
- return;
- }
- }
- var _start = _table.index(tdList[0]);
- var _end = _table.index(tdList[tdList.length - 1]);
- var _tableEl = _table.parentSelect(tdList[0], 'table');
- var _trList = U.selectEl(_tableEl).find("tr");
- var _widthSum = 0;
- for (var i = 0, len = _trList.length; i < len; i++) {
- var _tdList = U.selectEl(_trList[i]).find("td");
- for (var j = _start; j <= _end; j++) {
- i === 0 ? _widthSum += _tdList[j].offsetWidth : "";
- _tdList[j].remove();
- }
- }
- _tableEl.style.width = _tableEl.offsetWidth - _widthSum + "px";
- var _tdLen = _tableEl.querySelectorAll("td").length;
- if (!_tdLen) {
- var _parentDiv = _table.parentSelect(_tableEl, "div");
- _parentDiv.remove();
- return
- }
- _table.firstLinePeak(_tableEl);
- };
- U.UF.E.table.removeFocus = function () {
- U.selectEl(".U_UF_E_Table_tdCheckd").removeClass("U_UF_E_Table_tdCheckd");
- U.selectEl(".U_UF_E_Table_tdCurrent").removeClass("U_UF_E_Table_tdCurrent");
- return;
- var _textArea = U.selectEl(".U_UF_E_Table_tdText")[0],
- _pel;
- _textArea ? _pel = _textArea.parentNode : "";
- if (_pel) {
- var _textNode = document.createTextNode(_textArea.value);
- _pel.appendChild(_textNode);
- _textArea.remove();
- }
- var _rowRuleList = U.selectEl(".U_MD_O_W_Table_rowRule");
- for (var i = 0, len = _rowRuleList.length; i < len; i++) {
- var _trEl = _rowRuleList[i].parentNode;
- _trEl.style.height = _trEl.clientHeight;
- U.selectEl(_rowRuleList[i]).css("margin-top", _trEl.clientHeight + "px");
- }
- };
- U.UF.E.table.tdAddClass = function (tr, x1, y1, x2, y2) {
- var _trList = tr.parentNode.querySelectorAll("tr");
- var _x1 = Math.min(x1, x2);
- var _x2 = Math.max(x1, x2);
- var _y1 = Math.min(y1, y2);
- var _y2 = Math.max(y1, y2);
- for (var i = _y1; i <= _y2; i++) {
- var _tdList = _trList[i].querySelectorAll("td");
- for (var j = _x1; j <= _x2; j++) {
- U.selectEl(_tdList[j]).addClass("U_UF_E_Table_tdCheckd");
- }
- }
- }
- U.UF.E.table.index = function (el) {
- var _el = el;
- var _name = _el.nodeName;
- var _list = _el.parentNode.querySelectorAll(_name);
- for (var i = 0, len = _list.length; i < len; i++) {
- if (_list[i] === _el) {
- return i;
- }
- }
- };
- U.UF.E.table.getFirstText = function (td) {
- var _child = td.childNodes;
- for (var i = 0, len = _child.length; i < len; i++) {
- if (_child[i].nodeType === 3) {
- return _child[i];
- }
- }
- return false;
- }
- U.UF.E.table.parentSelect = function (el, type) {
- var _this = el;
- var type = type.toUpperCase();
- if (_this.tagName === type) return _this;
- var parent = _this.parentNode;
- while (parent.tagName !== type) {
- parent = parent.parentNode;
- }
- return parent;
- };
- U.UF.E.table.Before = function (el, newEl) {
- var _this = el;
- var parentEl = _this.parentNode;
- parentEl.insertBefore(newEl, _this);
- };
- U.UF.E.table.After = function (el, newEl) {
- var _this = el;
- if (_this && _this.parentNode) {
- var parentEl = _this.parentNode;
- var child = parentEl.childNodes;
- var last = child[child.length - 1] || parentEl.lastChild;
- if (last === _this) {
- parentEl.appendChild(newEl);
- } else {
- parentEl.insertBefore(newEl, _this.nextSibling);
- }
- return newEl;
- }
- };
- U.UF.E.table.placeCaretAtEnd = function (el) {
- if (el.collapse) {
- var range = el;
- range.collapse(false);
- var sel = window.getSelection();
- sel.removeAllRanges();
- sel.addRange(range);
- return;
- }
- if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") {
- el.focus && el.focus();
- var range = document.createRange();
- range.selectNodeContents(el);
- range.collapse(false);
- var sel = window.getSelection();
- sel.removeAllRanges();
- sel.addRange(range);
- } else if (typeof document.body.createTextRange != "undefined") {
- var textRange = document.body.createTextRange();
- textRange.moveToElementText(el);
- textRange.collapse(false);
- textRange.select();
- }
- };
|