From df632975ea6cdf7129b6392ffada19c5efd24de9 Mon Sep 17 00:00:00 2001 From: tsymq-live <103803861+tsymq-live@users.noreply.github.com> Date: Sat, 20 May 2023 10:54:23 +0800 Subject: [PATCH 01/25] Update form.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复谷歌翻译,翻译成英文后下拉框会多出html标签问题 --- src/modules/form.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/form.js b/src/modules/form.js index 41428288..a589e351 100644 --- a/src/modules/form.js +++ b/src/modules/form.js @@ -519,7 +519,7 @@ layui.define(['lay', 'layer', 'util'], function(exports){ var selectedIndex = select[0].selectedIndex; thatInput = input; // 当前的 select 中的 input 元素 - initValue = $(select[0].options[selectedIndex]).html(); // 重新获得初始选中值 + initValue = $(select[0].options[selectedIndex]).text(); // 重新获得初始选中值 // 如果是第一项,且文本值等于 placeholder,则清空初始值 if(selectedIndex === 0 && initValue === input.attr('placeholder')){ From 60e1ebae8cc8600244b92db17d0d9f49359a7358 Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Tue, 23 May 2023 16:57:41 +0800 Subject: [PATCH 02/25] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20treeTable=20?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E6=8A=98=E5=8F=A0=E7=8A=B6=E6=80=81=E8=AE=B0?= =?UTF-8?q?=E5=BF=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index c3bd6958..9bff8b5e 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -106,9 +106,13 @@ layui.define(['table'], function (exports) { var updateOptions = function (id, options, reload) { var that = getThisTable(id); - var thatOptionsTemp = $.extend(true, {} , that.getOptions(), options); + reload === 'reloadData' || (that.status = { // 用于记录一些状态信息 + expand: {} // 折叠状态 + }); + var thatOptionsTemp = $.extend(true, {}, that.getOptions(), options); var treeOptions = thatOptionsTemp.tree; var childrenKey = treeOptions.customName.children; + var idKey = treeOptions.customName.id; // 处理属性 delete options.hasNumberCol; delete options.hasChecboxCol; @@ -141,6 +145,10 @@ layui.define(['table'], function (exports) { if (treeOptions.data.isSimpleData && !treeOptions.async.enable) { // 异步加载和 isSimpleData 不应该一起使用 retData[dataName] = that.flatToTree(retData[dataName]); } + // 处理节点状态 + updateStatus(retData[dataName], function (item) { + item[LAY_EXPAND] = that.status.expand[item[idKey]] + }, childrenKey); if (parseDataThat.autoSort && parseDataThat.initSort && parseDataThat.initSort.type) { layui.sort(retData[dataName], parseDataThat.initSort.field, parseDataThat.initSort.type === 'desc', true) @@ -943,7 +951,7 @@ layui.define(['table'], function (exports) { }); // 根据需要处理options中的一些参数 - updateOptions(that.config.id, options, true); + updateOptions(that.config.id, options, type || true); // 对参数进行深度或浅扩展 that.config = $.extend(deep, {}, that.config, options); From 33d87d9840d9723ac7c3f0ec13f88d0b41a770eb Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Tue, 23 May 2023 17:12:12 +0800 Subject: [PATCH 03/25] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20treeTable=20?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=9B=BE=E6=A0=87=E7=9A=84=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index 9bff8b5e..f5705f6b 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -229,6 +229,7 @@ layui.define(['table'], function (exports) { name: "name", // 节点数据保存节点名称的属性名称 id: "id", // 唯一标识的属性名称 pid: "parentId", // 父节点唯一标识的属性名称 + icon: "icon", // 图标的属性名称 }, view: { indent: 14, // 层级缩进量 From 1d87009241cb1501fbd501c91100e447965142fb Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Tue, 23 May 2023 17:14:40 +0800 Subject: [PATCH 04/25] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20treeTable=20`isSimpl?= =?UTF-8?q?eData`=20=E6=A8=A1=E5=BC=8F=E6=B8=B2=E6=9F=93=E4=B9=8B=E5=90=8E?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=A1=BA=E5=BA=8F=E8=B7=9F=E5=8E=9F=E5=A7=8B?= =?UTF-8?q?=E5=B1=9E=E4=BA=8E=E4=B8=8D=E5=90=8C=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index f5705f6b..dc6f7a0e 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -279,14 +279,18 @@ layui.define(['table'], function (exports) { // 创建一个空的 nodes 对象,用于保存所有的节点 var nodes = {}; // 遍历所有节点,将其加入 nodes 对象中 + var idTemp = ''; layui.each(flatArr, function (index, item) { - nodes[item[idKey]] = $.extend({}, item); - nodes[item[idKey]][childrenKey] = []; + idTemp = idKey + item[idKey]; + nodes[idTemp] = $.extend({}, item); + nodes[idTemp][childrenKey] = []; }) // 遍历所有节点,将其父子关系加入 nodes 对象 + var pidTemp = ''; layui.each(nodes, function (index, item) { - if (item[pIdKey] && nodes[item[pIdKey]]) { - nodes[item[pIdKey]][childrenKey].push(item); + pidTemp = idKey + item[pIdKey]; + if (pidTemp && nodes[pidTemp]) { + nodes[pidTemp][childrenKey].push(item); } }) // 返回顶层节点 From 504b6c78fe04be1025e2717c78cb18799bebe225 Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Tue, 23 May 2023 17:23:09 +0800 Subject: [PATCH 05/25] =?UTF-8?q?=E4=BC=98=E5=8C=96=20treeTable=20`checkSt?= =?UTF-8?q?atus`=20=E6=96=B0=E5=A2=9E=E7=AC=AC=E4=BA=8C=E4=B8=AA=E5=8F=82?= =?UTF-8?q?=E6=95=B0=20includeHalfCheck=20=E6=94=AF=E6=8C=81=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=9A=84=E9=80=89=E4=B8=AD=E8=8A=82=E7=82=B9=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=8C=85=E6=8B=AC=E5=8D=8A=E9=80=89=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E7=9A=84=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index dc6f7a0e..c821b7ce 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -1290,19 +1290,20 @@ layui.define(['table'], function (exports) { } // 获取表格选中状态 - treeTable.checkStatus = function (id) { + treeTable.checkStatus = function (id, includeHalfCheck) { var that = getThisTable(id); - if(!that) return; + if (!that) return; + var checkName = table.config.checkName; // 需要区分单双选 var tableData = treeTable.getData(id, true); var checkedData = tableData.filter(function (value, index, array) { - return value[table.config.checkName]; + return value[checkName] || (includeHalfCheck && value[LAY_CHECKBOX_HALF]); }); var isAll = true; layui.each(table.cache[id], function (i1, item1) { - if (!item1[table.config.checkName]) { + if (!item1[checkName]) { isAll = false; return true; } From 2d7b9c020ee1eb20be770cd462e658de1df2ebc7 Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Tue, 23 May 2023 18:08:35 +0800 Subject: [PATCH 06/25] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20treeTable=20?= =?UTF-8?q?=E5=B1=95=E5=BC=80=E5=85=A8=E9=83=A8=E8=8A=82=E7=82=B9=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E6=97=B6=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index c821b7ce..f0b21c79 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -474,9 +474,15 @@ layui.define(['table'], function (exports) { flexIconElem.html(trExpand ? treeOptions.view.flexIconOpen : treeOptions.view.flexIconClose) trData[isParentKey] && flexIconElem.css('visibility', 'visible'); // 处理节点图标 - treeOptions.view.showIcon && trsElem.find('.layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)') + treeOptions.view.showIcon && trsElem + .find('.layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)') .html(trExpand ? treeOptions.view.iconOpen : treeOptions.view.iconClose); + treeTableThat.status.expand[trData[customName.id]] = trData[LAY_EXPAND] = trExpand; + if (retValue === null) { + return retValue; + } + var childNodes = trData[customName.children] || []; // 处理子节点展示与否 if (trExpand) { @@ -485,7 +491,6 @@ layui.define(['table'], function (exports) { trsElem.nextAll(childNodes.map(function (value, index, array) { return 'tr[lay-data-index="' + value[LAY_DATA_INDEX] + '"]' }).join(',')).removeClass(HIDE); - trData[LAY_EXPAND] = trExpand; layui.each(childNodes, function (i1, item1) { if (!item1[isParentKey]) { return; From cc78de54c17cb1dca9f980f5207368e76e8d307c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Tue, 23 May 2023 23:38:18 +0800 Subject: [PATCH 07/25] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20Gitee=20issue=20?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E8=8C=83=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitee/ISSUE_TEMPLATE/bug.yml | 39 +++++++++++++++++++++++++++++++ .gitee/ISSUE_TEMPLATE/feature.yml | 19 +++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 .gitee/ISSUE_TEMPLATE/bug.yml create mode 100644 .gitee/ISSUE_TEMPLATE/feature.yml diff --git a/.gitee/ISSUE_TEMPLATE/bug.yml b/.gitee/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 00000000..0ca7497a --- /dev/null +++ b/.gitee/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,39 @@ +name: 问题反馈 +description: 使用 Layui 过程中遇到的 Bug、异常或其他困惑。😇 - +title: "" +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + 在提出问题之前,请确保: + - 您已查看官方使用文档:**https://layui.dev** ,但没有找到相关解决方案。 + - 您已在 Issues 中搜索过类似的问题,但没有找到相关解决方案。 + - type: input + attributes: + label: 版本号 + description: 请提供您所使用的 Layui 版本号 + validations: + required: true + - type: textarea + attributes: + label: 问题描述 + description: 请提供尽可能详细的问题描述和具体操作步骤等信息,以便我们也能够更轻松地将问题复现。 + validations: + required: true + - type: textarea + attributes: + label: 业务代码 + description: 提供与该问题对应的业务代码片段,以便我们更好地排查问题。 + validations: + required: true + - type: textarea + attributes: + label: 其他补充 + description: 如截图等补充信息。 + - type: checkboxes + attributes: + label: 友好承诺 + options: + - label: 我承诺将本着相互尊重、理解和友善的态度进行交流,共同维护好 Layui 来之不易的良好的社区氛围。 + required: true \ No newline at end of file diff --git a/.gitee/ISSUE_TEMPLATE/feature.yml b/.gitee/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 00000000..e94a2f65 --- /dev/null +++ b/.gitee/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,19 @@ +name: 功能建议 +description: 对 Layui 提出您的宝贵建议。😄 - +title: "[建议]: " +labels: ["enhancement"] +body: + - type: textarea + id: related-problem + attributes: + label: 建议内容 + description: 阐述提出该建议的出发点。 + validations: + required: false + - type: textarea + id: desired-solution + attributes: + label: 解决方案 + description: 您希望看到什么样的解决方案? + validations: + required: true \ No newline at end of file From b1625067a25c4bb59f3e5b682a93ff76930d53a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Wed, 24 May 2023 10:10:51 +0800 Subject: [PATCH 08/25] =?UTF-8?q?=E7=A7=BB=E9=99=A4=20Gitee=20Issue=20?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E8=8C=83=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitee/ISSUE_TEMPLATE/bug.yml | 39 ------------------------------- .gitee/ISSUE_TEMPLATE/feature.yml | 19 --------------- 2 files changed, 58 deletions(-) delete mode 100644 .gitee/ISSUE_TEMPLATE/bug.yml delete mode 100644 .gitee/ISSUE_TEMPLATE/feature.yml diff --git a/.gitee/ISSUE_TEMPLATE/bug.yml b/.gitee/ISSUE_TEMPLATE/bug.yml deleted file mode 100644 index 0ca7497a..00000000 --- a/.gitee/ISSUE_TEMPLATE/bug.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: 问题反馈 -description: 使用 Layui 过程中遇到的 Bug、异常或其他困惑。😇 - -title: "" -labels: ["bug"] -body: - - type: markdown - attributes: - value: | - 在提出问题之前,请确保: - - 您已查看官方使用文档:**https://layui.dev** ,但没有找到相关解决方案。 - - 您已在 Issues 中搜索过类似的问题,但没有找到相关解决方案。 - - type: input - attributes: - label: 版本号 - description: 请提供您所使用的 Layui 版本号 - validations: - required: true - - type: textarea - attributes: - label: 问题描述 - description: 请提供尽可能详细的问题描述和具体操作步骤等信息,以便我们也能够更轻松地将问题复现。 - validations: - required: true - - type: textarea - attributes: - label: 业务代码 - description: 提供与该问题对应的业务代码片段,以便我们更好地排查问题。 - validations: - required: true - - type: textarea - attributes: - label: 其他补充 - description: 如截图等补充信息。 - - type: checkboxes - attributes: - label: 友好承诺 - options: - - label: 我承诺将本着相互尊重、理解和友善的态度进行交流,共同维护好 Layui 来之不易的良好的社区氛围。 - required: true \ No newline at end of file diff --git a/.gitee/ISSUE_TEMPLATE/feature.yml b/.gitee/ISSUE_TEMPLATE/feature.yml deleted file mode 100644 index e94a2f65..00000000 --- a/.gitee/ISSUE_TEMPLATE/feature.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: 功能建议 -description: 对 Layui 提出您的宝贵建议。😄 - -title: "[建议]: " -labels: ["enhancement"] -body: - - type: textarea - id: related-problem - attributes: - label: 建议内容 - description: 阐述提出该建议的出发点。 - validations: - required: false - - type: textarea - id: desired-solution - attributes: - label: 解决方案 - description: 您希望看到什么样的解决方案? - validations: - required: true \ No newline at end of file From 1b31ba87fc35e58fb7712c5dd73b4c9aa240118a Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Wed, 24 May 2023 14:52:47 +0800 Subject: [PATCH 09/25] =?UTF-8?q?=E4=BC=98=E5=8C=96=20treeTable=20?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E6=8E=92=E5=BA=8F=E5=92=8C=E8=A7=86=E5=9B=BE?= =?UTF-8?q?=E5=86=85=E8=A1=A8=E5=8D=95=E5=88=9D=E5=A7=8B=E5=8C=96=E7=9A=84?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 51 ++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index f0b21c79..0484b448 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -10,7 +10,6 @@ layui.define(['table'], function (exports) { var form = layui.form; var table = layui.table; var hint = layui.hint(); - var timer = {}; // 记录定时器 index // api var treeTable = { @@ -427,7 +426,9 @@ layui.define(['table'], function (exports) { var debounceFn = (function () { var fn = {}; return function (tableId, func, wait) { - fn[tableId] = fn[tableId] || layui.debounce(func, wait); + if (!fn[tableId]) { + fn[tableId] = layui.debounce(func, wait); + } return fn[tableId]; } })() @@ -667,13 +668,15 @@ layui.define(['table'], function (exports) { }).join(',')).addClass(HIDE); } } - debounceFn(tableId, function () { + + + debounceFn('resize-' + tableId, function () { treeTable.resize(tableId); - }, 25)(); + }, 0)(); if (callbackFlag && trData[LAY_ASYNC_STATUS] !== 'loading') { var onExpand = treeOptions.callback.onExpand; - layui.type(onExpand) === 'function' && onExpand(tableId, trData, expandFlag); + layui.type(onExpand) === 'function' && onExpand(tableId, trData, trExpand); } return retValue; @@ -908,14 +911,18 @@ layui.define(['table'], function (exports) { }); // 当前层的数据看看是否需要展开 - sonSign !== false && layui.each(dataExpand, function (index, item) { - var trDefaultExpand = tableViewElem.find('tr[lay-data-index="' + index + '"]'); - trDefaultExpand.find('.layui-table-tree-flexIcon').html(treeOptionsView.flexIconOpen); - expandNode({trElem: trDefaultExpand.first()}, true); - }); - - options.hasNumberCol && that.formatNumber(tableId); - form.render(null, tableFilterId); + if (sonSign !== false && dataExpand) { + layui.each(dataExpand, function (index, item) { + var trDefaultExpand = tableViewElem.find('tr[lay-data-index="' + index + '"]'); + trDefaultExpand.find('.layui-table-tree-flexIcon').html(treeOptionsView.flexIconOpen); + expandNode({trElem: trDefaultExpand.first()}, true); + }); + } else { + debounceFn('renderTreeTable-' + tableId, function () { + options.hasNumberCol && formatNumber(that); + form.render(null, tableFilterId); + }, 0)(); + } } var formatNumber = function (that) { @@ -923,24 +930,18 @@ layui.define(['table'], function (exports) { var tableViewElem = options.elem.next(); var num = 0; + var trMain = tableViewElem.find('.layui-table-main tbody tr'); + var trFixedL = tableViewElem.find('.layui-table-fixed-l tbody tr'); + var trFixedR = tableViewElem.find('.layui-table-fixed-r tbody tr'); layui.each(that.treeToFlat(table.cache[options.id]), function (i1, item1) { - if (layui.isArray(item1)) { - return; - } var itemData = that.getNodeDataByIndex(item1[LAY_DATA_INDEX]); itemData['LAY_NUM'] = ++num; - tableViewElem.find('tr[lay-data-index="' + item1[LAY_DATA_INDEX] + '"] .laytable-cell-numbers').html(itemData['LAY_NUM']); + trMain.eq(i1).find('.laytable-cell-numbers').html(num); + trFixedL.eq(i1).find('.laytable-cell-numbers').html(num); + trFixedR.eq(i1).find('.laytable-cell-numbers').html(num); }) } - Class.prototype.formatNumber = function (id) { - var that = this; - clearTimeout(id); - timer[id] = setTimeout(function () { - formatNumber(that); - }, 10) - } - // 树表渲染 Class.prototype.render = function (type) { var that = this; From 394f34efce5bf8fca1de3eafb986ac985b094024 Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Wed, 24 May 2023 15:02:34 +0800 Subject: [PATCH 10/25] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20treeTable=20?= =?UTF-8?q?=E6=8A=98=E5=8F=A0=E5=8F=B6=E5=AD=90=E8=8A=82=E7=82=B9=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E6=8A=98=E5=8F=A0=E5=9B=BE=E6=A0=87=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=8F=98=E5=8C=96=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index 0484b448..636eab6a 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -453,9 +453,6 @@ layui.define(['table'], function (exports) { var isToggle = layui.type(expandFlag) !== 'boolean'; var trExpand = isToggle ? !trData[LAY_EXPAND] : expandFlag; var retValue = trData[isParentKey] ? trExpand : null; - if (retValue === null) { - return retValue; - } if (callbackFlag && trExpand != trData[LAY_EXPAND] && (!trData[LAY_ASYNC_STATUS] || trData[LAY_ASYNC_STATUS] === 'local')) { var beforeExpand = treeOptions.callback.beforeExpand; @@ -580,7 +577,6 @@ layui.define(['table'], function (exports) { }); return retValue; } - trData[LAY_EXPAND] = trExpand; trExpanded = trData[LAY_HAS_EXPANDED] = true; if (childNodes.length) { // 判断是否需要排序 @@ -646,7 +642,6 @@ layui.define(['table'], function (exports) { } } } else { - trData[LAY_EXPAND] = trExpand; // 关闭 if (sonSign && !isToggle) { // 非状态切换的情况下 layui.each(childNodes, function (i1, item1) { @@ -740,7 +735,9 @@ layui.define(['table'], function (exports) { tableView.find('.layui-table-box tbody tr[data-level!="0"]').addClass(HIDE); tableView.find('.layui-table-tree-flexIcon').html(treeOptions.view.flexIconClose); - treeOptions.view.showIcon && tableView.find('.layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)').html(treeOptions.view.iconClose); + treeOptions.view.showIcon && tableView + .find('.layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)') + .html(treeOptions.view.iconClose); } else { var tableDataFlat = treeTable.getData(id, true); // 展开所有 From 5b54593d840fb6e101a770bea46dc14ae4d541a5 Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Wed, 24 May 2023 16:46:56 +0800 Subject: [PATCH 11/25] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20treeTable=20`expandA?= =?UTF-8?q?ll`=20=E5=B1=95=E5=BC=80=E8=8A=82=E7=82=B9=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E5=87=BA=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index 636eab6a..15d362a8 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -784,15 +784,20 @@ layui.define(['table'], function (exports) { tableView.find('tbody tr[data-level!="0"]').removeClass(HIDE); // 处理节点的图标 tableView.find('.layui-table-tree-flexIcon').html(treeOptions.view.flexIconOpen); - treeOptions.view.showIcon && tableView.find('.layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)').html(treeOptions.view.iconOpen); + treeOptions.view.showIcon && tableView + .find('.layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)') + .html(treeOptions.view.iconOpen); } else { - // 如果有未打开过的父节点,将内容全部生成 + // 如果有未打开过的父节点,将 tr 内容全部重新生成 that.updateStatus(null, function (d) { if (d[isParentKey]) { d[LAY_EXPAND] = true; d[LAY_HAS_EXPANDED] = true; } - }); // {LAY_EXPAND: true, LAY_HAS_EXPANDED: true}); + }); + if (options.initSort && options.initSort.type && (!options.url || options.autoSort)) { + return treeTable.sort(id); + } var trAll = table.getTrHtml(id, tableDataFlat); var trAllObj = { @@ -800,23 +805,17 @@ layui.define(['table'], function (exports) { trs_fixed: $(trAll.trs_fixed.join('')), trs_fixed_r: $(trAll.trs_fixed_r.join('')) } + var props; layui.each(tableDataFlat, function (dataIndex, dataItem) { var dataLevel = dataItem[LAY_DATA_INDEX].split('-').length - 1; - trAllObj.trs.eq(dataIndex).attr({ + props = { 'data-index': dataItem[LAY_DATA_INDEX], 'lay-data-index': dataItem[LAY_DATA_INDEX], 'data-level': dataLevel - }) - trAllObj.trs_fixed.eq(dataIndex).attr({ - 'data-index': dataItem[LAY_DATA_INDEX], - 'lay-data-index': dataItem[LAY_DATA_INDEX], - 'data-level': dataLevel - }) - trAllObj.trs_fixed_r.eq(dataIndex).attr({ - 'data-index': dataItem[LAY_DATA_INDEX], - 'lay-data-index': dataItem[LAY_DATA_INDEX], - 'data-level': dataLevel - }) + }; + trAllObj.trs.eq(dataIndex).attr(props) + trAllObj.trs_fixed.eq(dataIndex).attr(props) + trAllObj.trs_fixed_r.eq(dataIndex).attr(props) }) layui.each(['main', 'fixed-l', 'fixed-r'], function (i, item) { tableView.find('.layui-table-' + item + ' tbody').html(trAllObj[['trs', 'trs_fixed', 'trs_fixed_r'][i]]); From cdd8934d6dfdd06bed16e61e6ea1ddc45bec8074 Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Wed, 24 May 2023 16:52:57 +0800 Subject: [PATCH 12/25] =?UTF-8?q?=E4=BC=98=E5=8C=96=20treeTable=20?= =?UTF-8?q?=E6=A0=91=E8=A1=A8=E8=8A=82=E7=82=B9=E6=B8=B2=E6=9F=93=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 45 +++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index 15d362a8..27492c5e 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -623,9 +623,7 @@ layui.define(['table'], function (exports) { tableViewElem.find(ELEM_FIXR).find('tbody tr[lay-data-index="' + dataIndex + '"]').after(str2Obj.trs_fixed_r); // 初始化新增的节点中的内容 - layui.each(str2Obj, function (key, item) { - treeTableThat.renderTreeTable(item, dataLevelNew); - }) + treeTableThat.renderTreeTable(str2Obj.trs, dataLevelNew); if (sonSign && !isToggle) { // 非状态切换的情况下 // 级联展开/关闭子节点 @@ -830,7 +828,7 @@ layui.define(['table'], function (exports) { var that = this; var options = that.getOptions(); var tableViewElem = options.elem.next(); - tableViewElem.addClass(TABLE_TREE); + !tableViewElem.hasClass(TABLE_TREE) && tableViewElem.addClass(TABLE_TREE); var tableId = options.id; var treeOptions = options.tree || {}; var treeOptionsData = treeOptions.data || {}; @@ -853,7 +851,7 @@ layui.define(['table'], function (exports) { }) } - var dataExpand = {}; // 记录需要展开的数据 + var dataExpand = null; // 记录需要展开的数据 var nameKey = customName.name; var indent = treeOptionsView.indent || 14; layui.each(tableView.find('td[data-field="' + nameKey + '"]'), function (index, item) { @@ -863,21 +861,26 @@ layui.define(['table'], function (exports) { if (itemCell.hasClass('layui-table-tree-item')) { return; } - itemCell.addClass('layui-table-tree-item'); var trIndex = trElem.attr('lay-data-index'); if (!trIndex) { // 排除在统计行中的节点 return; } + trElem = tableViewElem.find('tr[lay-data-index="' + trIndex + '"]'); var trData = treeTableThat.getNodeDataByIndex(trIndex); + if (trData[LAY_EXPAND]) { // 需要展开 + dataExpand = dataExpand || {}; dataExpand[trIndex] = true; } + if (trData[LAY_CHECKBOX_HALF]) { + trElem.find('input[type="checkbox"][name="layTableCheckbox"]').prop('indeterminate', true); + } - var tableCellElem = item.find('div.layui-table-cell'); - var htmlTemp = tableCellElem.html(); - - var flexIconElem = item.find('div.layui-table-cell') + var htmlTemp = itemCell.html(); + itemCell = trElem.find('td[data-field="' + nameKey + '"]>div.layui-table-cell'); + itemCell.addClass('layui-table-tree-item'); + var flexIconElem = itemCell .html(['
' + - (trData.icon || treeOptionsView.icon || + (trData[customName.icon] || treeOptionsView.icon || (trData[isParentKey] ? (trData[LAY_EXPAND] ? treeOptionsView.iconOpen : treeOptionsView.iconClose) : treeOptionsView.iconLeaf) || @@ -1204,22 +1207,16 @@ layui.define(['table'], function (exports) { trs_fixed_r: $(newNodesHtml.trs_fixed_r.join('')) } + var attrs = {}; layui.each(newNodes, function (newNodeIndex, newNodeItem) { - newNodesHtmlObj.trs.eq(newNodeIndex).attr({ + attrs = { 'data-index': newNodeItem[LAY_DATA_INDEX], 'lay-data-index': newNodeItem[LAY_DATA_INDEX], 'data-level': '0' - }) - newNodesHtmlObj.trs_fixed.eq(newNodeIndex).attr({ - 'data-index': newNodeItem[LAY_DATA_INDEX], - 'lay-data-index': newNodeItem[LAY_DATA_INDEX], - 'data-level': '0' - }) - newNodesHtmlObj.trs_fixed_r.eq(newNodeIndex).attr({ - 'data-index': newNodeItem[LAY_DATA_INDEX], - 'lay-data-index': newNodeItem[LAY_DATA_INDEX], - 'data-level': '0' - }) + }; + newNodesHtmlObj.trs.eq(newNodeIndex).attr(attrs) + newNodesHtmlObj.trs_fixed.eq(newNodeIndex).attr(attrs) + newNodesHtmlObj.trs_fixed_r.eq(newNodeIndex).attr(attrs) }) var trIndexPrev = parseInt(newNodes[0][LAY_DATA_INDEX]) - 1; var tableViewElemMAIN = tableViewElem.find(ELEM_MAIN); From 3772c6f1e8106bcce46c0b8f476a996ec7061416 Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Wed, 24 May 2023 16:55:21 +0800 Subject: [PATCH 13/25] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20treeTable=20?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E9=80=89=E4=B8=AD=E7=8A=B6=E6=80=81=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index 27492c5e..928b73e2 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -1125,7 +1125,7 @@ layui.define(['table'], function (exports) { var indexArr = []; delNode = that.getNodeDataByIndex(layui.type(node) === 'string' ? node : node[LAY_DATA_INDEX], false, 'delete'); var nodeP = that.getNodeDataByIndex(delNode[LAY_PARENT_INDEX]); - that.updateCheckStatus(nodeP, true); + that.updateCheckStatus(nodeP); var delNodesFlat = that.treeToFlat([delNode], delNode[treeOptions.customName.pid], delNode[LAY_PARENT_INDEX]); layui.each(delNodesFlat, function (i2, item2) { indexArr.push('tr[lay-data-index="' + item2[LAY_DATA_INDEX] + '"]'); @@ -1148,7 +1148,7 @@ layui.define(['table'], function (exports) { layui.each(table.cache[id], function (i4, item4) { tableView.find('tr[data-level="0"][lay-data-index="' + item4[LAY_DATA_INDEX] + '"]').attr('data-index', i4); }) - options.hasNumberCol && that.formatNumber(id); + options.hasNumberCol && formatNumber(that); } /** @@ -1279,7 +1279,7 @@ layui.define(['table'], function (exports) { parentNode[LAY_ASYNC_STATUS] = 'local'; // 转为本地数据,应该规定异步加载子节点的时候addNodes的规则 expandNode({trElem: tableViewElem.find('tr[lay-data-index="' + parentIndex + '"]')}, true) } - that.updateCheckStatus(parentNode, true); + that.updateCheckStatus(parentNode); treeTable.resize(id); if (focus) { // 滚动到第一个新增的节点 @@ -1415,7 +1415,7 @@ layui.define(['table'], function (exports) { // 如有必要更新父节点们的状态 if (dataP) { - var trsP = that.updateParentCheckStatus(dataP, checked); + var trsP = that.updateParentCheckStatus(dataP, layui.type(checked) === 'boolean' ? checked : null); layui.each(trsP, function (indexP, itemP) { form.render(tableView.find('tr[lay-data-index="' + itemP[LAY_DATA_INDEX] + '"] input[name="layTableCheckbox"]:not(:disabled)').prop({ checked: itemP[checkName], @@ -1455,7 +1455,7 @@ layui.define(['table'], function (exports) { var dataRet = []; dataP[LAY_CHECKBOX_HALF] = false; // 先设置为非半选,是否为半选又下面逻辑判断 - if (checked) { + if (checked === true) { // 为真需要判断子节点的情况 if (!dataP[childrenKey].length) { checked = false; @@ -1468,7 +1468,7 @@ layui.define(['table'], function (exports) { } }); } - } else { + } else if (checked === false) { // 判断是否为半选 layui.each(dataP[childrenKey], function (index, item) { if (item[checkName] || item[LAY_CHECKBOX_HALF]) { // 只要有一个子节点为选中或者半选状态 @@ -1476,6 +1476,17 @@ layui.define(['table'], function (exports) { return true; } }); + } else { + // 状态不确定的情况下根据子节点的信息 + checked = false; + var checkedNum = 0; + layui.each(dataP[childrenKey], function (index, item) { + if (item[checkName]) { + checkedNum++; + } + }); + checked = dataP[childrenKey].length ? dataP[childrenKey].length === checkedNum : dataP[checkName]; // 如果没有子节点保留原来的状态; + dataP[LAY_CHECKBOX_HALF] = checked ? false : checkedNum > 0; } dataP[checkName] = checked; dataRet.push($.extend({}, dataP)); @@ -1585,13 +1596,13 @@ layui.define(['table'], function (exports) { } }) - /** * 设置行选中状态 * @param {String} id 树表id - * @param {Object|String} index 节点下标 - * @param {Boolean} checked 选中或取消 - * @param {Boolean} [callbackFlag] 是否触发事件回调 + * @param {Object} opts + * @param {Object|String} opts.index 节点下标 + * @param {Boolean} opts.checked 选中或取消 + * @param {Boolean} [opts.callbackFlag] 是否触发事件回调 * */ treeTable.setRowChecked = function (id, opts) { var that = getThisTable(id); From 5a6122b4d96ebc50e322bc019cf26ff5125a8d6d Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Thu, 25 May 2023 10:49:14 +0800 Subject: [PATCH 14/25] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20treeTable=20`reAsync?= =?UTF-8?q?`=20=E9=87=8D=E6=96=B0=E5=8A=A0=E8=BD=BD=E5=AD=90=E8=8A=82?= =?UTF-8?q?=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index 928b73e2..11fca3e2 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -1662,6 +1662,41 @@ layui.define(['table'], function (exports) { return isSimpleData ? getThisTable(id).treeToFlat(tableData) : tableData; } + /** + * 重新加载子节点 + * @param {String} id 表格id + * @param {String} dataIndex 父节点的dataIndex + * */ + treeTable.reAsync = function (id, dataIndex) { + var that = getThisTable(id); + if (!that) { + return; + } + + var options = that.getOptions(); + var treeOptions = options.tree; + if (!treeOptions.async || !treeOptions.async.enable) { + return; + } + var dataP = that.getNodeDataByIndex(dataIndex); + if (!dataP) { + return; + } + dataP[LAY_HAS_EXPANDED] = false; + dataP[LAY_EXPAND] = false; + dataP[LAY_ASYNC_STATUS] = false; + layui.each(that.treeToFlat(dataP[treeOptions.customName.children]).reverse(), function (i1, item1) { + treeTable.removeNode(id, item1[LAY_DATA_INDEX]); + }) + // 重新展开 + treeTable.expandNode(id, { + index: dataIndex, + expandFlag: true, + callbackFlag: true, + }) + } + + // 记录所有实例 thisTreeTable.that = {}; // 记录所有实例对象 // thisTreeTable.config = {}; // 记录所有实例配置项 From ccdcdcd4dca2846c8bdf8c671ea46e5d3a717eb2 Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Thu, 25 May 2023 16:29:13 +0800 Subject: [PATCH 15/25] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20treeTable=20`async`?= =?UTF-8?q?=20=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=AD=90=E8=8A=82=E7=82=B9=E7=9A=84=E6=96=B9=E6=B3=95?= =?UTF-8?q?=20`format`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index 11fca3e2..ab606398 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -516,9 +516,24 @@ layui.define(['table'], function (exports) { } else { var asyncSetting = treeOptions.async || {}; var asyncUrl = asyncSetting.url || options.url; - // 提供一个能支持用户在获取子数据转换调用的回调,这样让子节点数据获取更加灵活 todo - if (asyncSetting.enable && trData[isParentKey] && asyncUrl && !trData[LAY_ASYNC_STATUS]) { + if (asyncSetting.enable && trData[isParentKey] && !trData[LAY_ASYNC_STATUS]) { trData[LAY_ASYNC_STATUS] = 'loading'; + flexIconElem.html(''); + + // 异步获取子节点数据成功之后处理方法 + var asyncSuccessFn = function (data) { + trData[LAY_ASYNC_STATUS] = 'success'; + trData[customName.children] = data; + treeTableThat.initData(trData[customName.children], trData[LAY_DATA_INDEX]) + expandNode(treeNode, true, isToggle ? false : sonSign, focus, callbackFlag); + } + + var format = asyncSetting.format; // 自定义数据返回方法 + if (layui.type(format) === 'function') { + format(trData, options, asyncSuccessFn); + return retValue; + } + var params = {}; // 参数 var data = $.extend(params, asyncSetting.where || options.where); @@ -540,8 +555,6 @@ layui.define(['table'], function (exports) { var asyncParseData = asyncSetting.parseData || options.parseData; var asyncResponse = asyncSetting.response || options.response; - // that.loading(); - flexIconElem.html('') $.ajax({ type: asyncType || 'get', url: asyncUrl, @@ -551,7 +564,6 @@ layui.define(['table'], function (exports) { jsonpCallback: asyncJsonpCallback, headers: asyncHeaders || {}, success: function (res) { - trData[LAY_ASYNC_STATUS] = 'success'; // 若有数据解析的回调,则获得其返回的数据 if (typeof asyncParseData === 'function') { res = asyncParseData.call(options, res) || res; @@ -563,10 +575,8 @@ layui.define(['table'], function (exports) { flexIconElem.html(''); // 事件 } else { - trData[customName.children] = res[asyncResponse.dataName]; - treeTableThat.initData(trData[customName.children], trData[LAY_DATA_INDEX]) // 正常返回 - expandNode(treeNode, true, isToggle ? false : sonSign, focus, callbackFlag); + asyncSuccessFn(res[asyncResponse.dataName]); } }, error: function (e, msg) { From fcfe5c2fed67630fee9f9cc7872f1bbb6b056251 Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Thu, 25 May 2023 18:12:32 +0800 Subject: [PATCH 16/25] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20treeTable=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20getNodeById=20=E5=92=8C=20getNodesByFilter?= =?UTF-8?q?=20=E6=96=B9=E6=B3=95=E9=80=9A=E8=BF=87=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E8=BF=94=E5=9B=9E=E8=8A=82=E7=82=B9=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 122 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 118 insertions(+), 4 deletions(-) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index ab606398..0a699de8 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -331,6 +331,79 @@ layui.define(['table'], function (exports) { return flat; } + // 通过当前行数据返回 treeNode 信息 + Class.prototype.getTreeNode = function (data) { + var that = this; + if (!data) { + return hint.error('找不到节点数据'); + } + var options = that.getOptions(); + var treeOptions = options.tree; + var tableId = options.id; + var customName = treeOptions.customName; + + var treeNode = { + data: data, + dataIndex: data[LAY_DATA_INDEX], + getParentNode: function () { + return that.getNodeByIndex(data[LAY_PARENT_INDEX]) + }, + } + // 带上一些常用的方法 + + return treeNode; + } + + // 通过 index 返回节点信息 + Class.prototype.getNodeByIndex = function (index) { + var that = this; + var treeNodeData = that.getNodeDataByIndex(index); + if (!treeNodeData) { + return hint.error('找不到节点数据'); + } + var options = that.getOptions(); + var treeOptions = options.tree; + var customName = treeOptions.customName; + var parentKey = customName.parent; + var tableId = options.id; + + var treeNode = { + data: treeNodeData, + dataIndex: treeNodeData[LAY_DATA_INDEX], + getParentNode: function () { + return that.getNodeByIndex(treeNodeData[LAY_PARENT_INDEX]) + } + }; + + treeNode.dataIndex = index; + return treeNode; + } + + // 通过 id 获取节点信息 + Class.prototype.getNodeById = function (id) { + var that = this; + var options = that.getOptions(); + var treeOptions = options.tree; + var customName = treeOptions.customName; + var idKey = customName.id; + + // 通过 id 拿到数据的 dataIndex + var dataIndex = ''; + var tableDataFlat = treeTable.getData(options.id, true); + layui.each(tableDataFlat, function (i1, item1) { + if (item1[idKey] === id) { + dataIndex = item1[LAY_DATA_INDEX]; + return true; + } + }) + if (!dataIndex) { + return; + } + + // 用index + return that.getNodeByIndex(dataIndex); + } + // 通过index获取节点数据 Class.prototype.getNodeDataByIndex = function (index, clone, newValue) { var that = this; @@ -356,9 +429,6 @@ layui.define(['table'], function (exports) { // 删除 if (tableCache) { // 同步cache - // tableCache.splice(tableCache.findIndex(function (value) { - // return value[LAY_DATA_INDEX] === index; - // }), 1); layui.each(tableCache, function (i1, item1) { if (item1[LAY_DATA_INDEX] === index) { tableCache.splice(i1, 1); @@ -1664,12 +1734,15 @@ layui.define(['table'], function (exports) { * @return {Array} 表格数据 * */ treeTable.getData = function (id, isSimpleData) { + var that = getThisTable(id); + if (!that) return; + var tableData = []; layui.each($.extend(true, [], table.cache[id] || []), function (index, item) { // 遍历排除掉临时的数据 tableData.push(item); }) - return isSimpleData ? getThisTable(id).treeToFlat(tableData) : tableData; + return isSimpleData ? that.treeToFlat(tableData) : tableData; } /** @@ -1706,6 +1779,47 @@ layui.define(['table'], function (exports) { }) } + /** + * 通过数据id获取节点对象 + * */ + treeTable.getNodeById = function (id, dataId) { + var that = getThisTable(id); + if (!that) return; + + return that.getNodeById(dataId); + } + + /** + * 根据自定义规则搜索节点数据 + * @param {String} id 树表id + * @param {Function} filter 自定义过滤器函数 + * @param {Object} [opts] + * @param {Boolean} [opts.isSingle] 是否只找到第一个 + * @param {Object} [opts.parentNode] 在指定在某个父节点下的子节点中搜索 + * @return {Object} 节点对象 + * */ + treeTable.getNodesByFilter = function (id, filter, opts) { + var that = getThisTable(id); + if (!that) return; + var options = that.getOptions(); + + opts = opts || {}; + var isSingle = opts.isSingle; + var parentNode = opts.parentNode; + var dataP = parentNode && parentNode.data; + // dataP = dataP || table.cache[id]; + var nodes = that.treeToFlat(dataP ? (dataP[options.tree.customName.children] || []) : table.cache[id]).filter(filter); + var nodesResult = []; + layui.each(nodes, function (i1, item1) { + nodesResult.push(that.getNodeByIndex(item1[LAY_DATA_INDEX])); + if (isSingle) { + return true; + } + }); + + return nodesResult; + } + // 记录所有实例 thisTreeTable.that = {}; // 记录所有实例对象 From 8e873dde1dfa365ab419524a16f76eef98b0764f Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <285584806@qq.com> Date: Fri, 26 May 2023 13:43:21 +0800 Subject: [PATCH 17/25] =?UTF-8?q?=E5=AE=8C=E5=96=84=20treeTable=20?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=8A=82=E7=82=B9=E6=96=B9=E6=B3=95=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=9A=84=E8=8A=82=E7=82=B9=E5=AF=B9=E8=B1=A1=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=87=A0=E4=B8=AA=E5=B8=B8?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E8=8A=82=E7=82=B9=E6=96=B9=E6=B3=95=E6=96=B9?= =?UTF-8?q?=E4=BE=BF=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/treeTable.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/modules/treeTable.js b/src/modules/treeTable.js index 0a699de8..92a90c84 100644 --- a/src/modules/treeTable.js +++ b/src/modules/treeTable.js @@ -372,6 +372,22 @@ layui.define(['table'], function (exports) { dataIndex: treeNodeData[LAY_DATA_INDEX], getParentNode: function () { return that.getNodeByIndex(treeNodeData[LAY_PARENT_INDEX]) + }, + update: function (data) { + return treeTable.updateNode(tableId, index, data) + }, + remove: function () { + return treeTable.removeNode(tableId, index) + }, + expand: function (opts) { + return treeTable.expandNode(tableId, $.extend({}, opts, { + index: index + })) + }, + setChecked: function (opts) { + return treeTable.setRowChecked(tableId, $.extend({}, opts, { + index: index + })) } }; From c5e1288810187fceff77b6980270f644ef40dc16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Sat, 27 May 2023 00:15:57 +0800 Subject: [PATCH 18/25] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20Gitee=20Issue=20?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitee/ISSUE_TEMPLATE/bug.yml | 39 +++++++++++++++++++++++++++++++ .gitee/ISSUE_TEMPLATE/feature.yml | 19 +++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 .gitee/ISSUE_TEMPLATE/bug.yml create mode 100644 .gitee/ISSUE_TEMPLATE/feature.yml diff --git a/.gitee/ISSUE_TEMPLATE/bug.yml b/.gitee/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 00000000..aec89d59 --- /dev/null +++ b/.gitee/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,39 @@ +name: 问题反馈 +description: 使用 Layui 过程中遇到的 Bug、异常或其他困惑。😇 - +title: "" +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + 在反馈问题之前,请确保: + - 您已查看官方使用文档:**https://layui.dev** ,但没有找到相关解决方案。 + - 您已在 Issues 中搜索过类似的问题,但没有找到相关解决方案。 + - type: input + attributes: + label: 版本号 + placeholder: 请提供您所使用的 Layui 版本号 + validations: + required: true + - type: textarea + attributes: + label: 问题描述 + placeholder: 请提供尽可能详细的问题描述和具体操作步骤等信息,以便我们也能够更轻松地将问题复现。 + validations: + required: true + - type: textarea + attributes: + label: 业务代码 + placeholder: 提供与该问题对应的业务代码片段,以便我们更好地排查问题。 + validations: + required: true + - type: textarea + attributes: + label: 其他补充 + placeholder: 如截图等补充信息。 + - type: checkboxes + attributes: + label: 友好承诺 + options: + - label: 我承诺将本着相互尊重、理解和友善的态度进行交流,共同维护好 Layui 来之不易的良好的社区氛围。 + required: true \ No newline at end of file diff --git a/.gitee/ISSUE_TEMPLATE/feature.yml b/.gitee/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 00000000..d4218b7f --- /dev/null +++ b/.gitee/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,19 @@ +name: 功能建议 +description: 对 Layui 提出您的宝贵建议。😄 - +title: "" +labels: ["enhancement"] +body: + - type: textarea + id: related-problem + attributes: + label: 建议内容 + description: 阐述提出该建议的出发点。 + validations: + required: true + - type: textarea + id: desired-solution + attributes: + label: 解决方案 + description: 您希望看到什么样的解决方案? + validations: + required: true \ No newline at end of file From 13618b8b6632e84513cc8fb60d9b6c38712dcb5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Sat, 27 May 2023 00:17:15 +0800 Subject: [PATCH 19/25] =?UTF-8?q?=E7=A7=BB=E9=99=A4=20Gitee=20Issue=20?= =?UTF-8?q?=E7=A9=BA=E7=99=BD=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitee/ISSUE_TEMPLATE.zh-CN.md | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 .gitee/ISSUE_TEMPLATE.zh-CN.md diff --git a/.gitee/ISSUE_TEMPLATE.zh-CN.md b/.gitee/ISSUE_TEMPLATE.zh-CN.md deleted file mode 100644 index ee038b38..00000000 --- a/.gitee/ISSUE_TEMPLATE.zh-CN.md +++ /dev/null @@ -1,12 +0,0 @@ -### 说明 - -- 版本: 在此处填写您所使用的 Layui 版本号(必填) -- 描述: 在此处填写详细的问题描述和具体的操作步骤(必填) - -### 代码 - -在此处填写与本次 Issue 相关的业务代码(可选) - -### 补充 - -在此处提供其他补充,如截图等信息(可选) \ No newline at end of file From edd8c251d8452326ee60d9116e78dbdc6fe34a88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Sat, 27 May 2023 00:21:58 +0800 Subject: [PATCH 20/25] =?UTF-8?q?Revert=20"=E6=B7=BB=E5=8A=A0=20Gitee=20Is?= =?UTF-8?q?sue=20=E8=A1=A8=E5=8D=95=E6=A8=A1=E6=9D=BF"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitee/ISSUE_TEMPLATE.zh-CN.md | 12 ++++++++++ .gitee/ISSUE_TEMPLATE/bug.yml | 39 ------------------------------- .gitee/ISSUE_TEMPLATE/feature.yml | 19 --------------- 3 files changed, 12 insertions(+), 58 deletions(-) create mode 100644 .gitee/ISSUE_TEMPLATE.zh-CN.md delete mode 100644 .gitee/ISSUE_TEMPLATE/bug.yml delete mode 100644 .gitee/ISSUE_TEMPLATE/feature.yml diff --git a/.gitee/ISSUE_TEMPLATE.zh-CN.md b/.gitee/ISSUE_TEMPLATE.zh-CN.md new file mode 100644 index 00000000..ee038b38 --- /dev/null +++ b/.gitee/ISSUE_TEMPLATE.zh-CN.md @@ -0,0 +1,12 @@ +### 说明 + +- 版本: 在此处填写您所使用的 Layui 版本号(必填) +- 描述: 在此处填写详细的问题描述和具体的操作步骤(必填) + +### 代码 + +在此处填写与本次 Issue 相关的业务代码(可选) + +### 补充 + +在此处提供其他补充,如截图等信息(可选) \ No newline at end of file diff --git a/.gitee/ISSUE_TEMPLATE/bug.yml b/.gitee/ISSUE_TEMPLATE/bug.yml deleted file mode 100644 index aec89d59..00000000 --- a/.gitee/ISSUE_TEMPLATE/bug.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: 问题反馈 -description: 使用 Layui 过程中遇到的 Bug、异常或其他困惑。😇 - -title: "" -labels: ["bug"] -body: - - type: markdown - attributes: - value: | - 在反馈问题之前,请确保: - - 您已查看官方使用文档:**https://layui.dev** ,但没有找到相关解决方案。 - - 您已在 Issues 中搜索过类似的问题,但没有找到相关解决方案。 - - type: input - attributes: - label: 版本号 - placeholder: 请提供您所使用的 Layui 版本号 - validations: - required: true - - type: textarea - attributes: - label: 问题描述 - placeholder: 请提供尽可能详细的问题描述和具体操作步骤等信息,以便我们也能够更轻松地将问题复现。 - validations: - required: true - - type: textarea - attributes: - label: 业务代码 - placeholder: 提供与该问题对应的业务代码片段,以便我们更好地排查问题。 - validations: - required: true - - type: textarea - attributes: - label: 其他补充 - placeholder: 如截图等补充信息。 - - type: checkboxes - attributes: - label: 友好承诺 - options: - - label: 我承诺将本着相互尊重、理解和友善的态度进行交流,共同维护好 Layui 来之不易的良好的社区氛围。 - required: true \ No newline at end of file diff --git a/.gitee/ISSUE_TEMPLATE/feature.yml b/.gitee/ISSUE_TEMPLATE/feature.yml deleted file mode 100644 index d4218b7f..00000000 --- a/.gitee/ISSUE_TEMPLATE/feature.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: 功能建议 -description: 对 Layui 提出您的宝贵建议。😄 - -title: "" -labels: ["enhancement"] -body: - - type: textarea - id: related-problem - attributes: - label: 建议内容 - description: 阐述提出该建议的出发点。 - validations: - required: true - - type: textarea - id: desired-solution - attributes: - label: 解决方案 - description: 您希望看到什么样的解决方案? - validations: - required: true \ No newline at end of file From a4ae4871ca4a88f8a5643637feab4533d168e160 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Sat, 27 May 2023 00:25:38 +0800 Subject: [PATCH 21/25] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20Gitee=20issue=20=20?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitee/ISSUE_TEMPLATE/ISSUE_TEMPLATE.zh-CN.md | 0 .gitee/ISSUE_TEMPLATE/bug.yml | 39 +++++++++++++++++++ .gitee/ISSUE_TEMPLATE/feature.yml | 19 +++++++++ 3 files changed, 58 insertions(+) create mode 100644 .gitee/ISSUE_TEMPLATE/ISSUE_TEMPLATE.zh-CN.md create mode 100644 .gitee/ISSUE_TEMPLATE/bug.yml create mode 100644 .gitee/ISSUE_TEMPLATE/feature.yml diff --git a/.gitee/ISSUE_TEMPLATE/ISSUE_TEMPLATE.zh-CN.md b/.gitee/ISSUE_TEMPLATE/ISSUE_TEMPLATE.zh-CN.md new file mode 100644 index 00000000..e69de29b diff --git a/.gitee/ISSUE_TEMPLATE/bug.yml b/.gitee/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 00000000..aec89d59 --- /dev/null +++ b/.gitee/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,39 @@ +name: 问题反馈 +description: 使用 Layui 过程中遇到的 Bug、异常或其他困惑。😇 - +title: "" +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + 在反馈问题之前,请确保: + - 您已查看官方使用文档:**https://layui.dev** ,但没有找到相关解决方案。 + - 您已在 Issues 中搜索过类似的问题,但没有找到相关解决方案。 + - type: input + attributes: + label: 版本号 + placeholder: 请提供您所使用的 Layui 版本号 + validations: + required: true + - type: textarea + attributes: + label: 问题描述 + placeholder: 请提供尽可能详细的问题描述和具体操作步骤等信息,以便我们也能够更轻松地将问题复现。 + validations: + required: true + - type: textarea + attributes: + label: 业务代码 + placeholder: 提供与该问题对应的业务代码片段,以便我们更好地排查问题。 + validations: + required: true + - type: textarea + attributes: + label: 其他补充 + placeholder: 如截图等补充信息。 + - type: checkboxes + attributes: + label: 友好承诺 + options: + - label: 我承诺将本着相互尊重、理解和友善的态度进行交流,共同维护好 Layui 来之不易的良好的社区氛围。 + required: true \ No newline at end of file diff --git a/.gitee/ISSUE_TEMPLATE/feature.yml b/.gitee/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 00000000..d4218b7f --- /dev/null +++ b/.gitee/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,19 @@ +name: 功能建议 +description: 对 Layui 提出您的宝贵建议。😄 - +title: "" +labels: ["enhancement"] +body: + - type: textarea + id: related-problem + attributes: + label: 建议内容 + description: 阐述提出该建议的出发点。 + validations: + required: true + - type: textarea + id: desired-solution + attributes: + label: 解决方案 + description: 您希望看到什么样的解决方案? + validations: + required: true \ No newline at end of file From cbfbc11dd8c0134c70c74cfe34142267bca5d001 Mon Sep 17 00:00:00 2001 From: sunxiaobin89 <470459819@qq.com> Date: Sun, 28 May 2023 12:39:19 +0800 Subject: [PATCH 22/25] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20table=20`setRowCheck?= =?UTF-8?q?ed`=20=E6=96=B9=E6=B3=95=E6=97=A0=E6=B3=95=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84=E4=BA=8B=E4=BB=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/table.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/modules/table.js b/src/modules/table.js index 1712f5d7..62844c8d 100644 --- a/src/modules/table.js +++ b/src/modules/table.js @@ -1459,9 +1459,6 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){ tr.addClass(ELEM_CLICK).siblings('tr').removeClass(ELEM_CLICK); } - // 仅设置样式状态 - if(opts.selectedStyle || selectedStyle) return; - // 同步数据选中属性值 var thisData = table.cache[that.key]; @@ -1475,13 +1472,28 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){ }); // 若存在复选框或单选框,则标注选中样式 - tr.find('input[lay-type="'+ ({ + var checkedElem = tr.find('input[lay-type="'+ ({ radio: 'layTableRadio', checkbox: 'layTableCheckbox' }[opts.type] || 'checkbox') +'"]').prop('checked', opts.checked); that.syncCheckAll(); that.renderForm(opts.type); + + // 仅设置样式状态 + if(opts.selectedStyle || selectedStyle) return; + + layui.event.call( + checkedElem[0], + MOD_NAME, opts.type + '('+ options.elem.attr('lay-filter') +')', + that.commonMember.call(checkedElem[0], { + checked: opts.checked, + type: opts.index === 'all' ? 'all' : 'one', + getCol: function(){ // 获取当前列的表头配置信息 + return that.col(checkedElem.closest('td').data('key')); + } + }) + ); }; // 数据排序 From ab220729242af3586658a52ad04e2e9b7501b1d4 Mon Sep 17 00:00:00 2001 From: sight <1453017105@qq.com> Date: Sun, 28 May 2023 14:22:07 +0800 Subject: [PATCH 23/25] =?UTF-8?q?=E4=BC=98=E5=8C=96=20table=20=E6=89=93?= =?UTF-8?q?=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/table.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/modules/table.js b/src/modules/table.js index 1712f5d7..845e4bab 100644 --- a/src/modules/table.js +++ b/src/modules/table.js @@ -1904,8 +1904,14 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){ printWin.document.write(style + html.prop('outerHTML')); printWin.document.close(); - printWin.print(); - printWin.close(); + + if(layui.device('edg').edg){ + printWin.onafterprint = printWin.close; + printWin.print(); + }else{ + printWin.print(); + printWin.close(); + } break; } From 09f3c2c9fc0c68da2de507d68da764029d8a4499 Mon Sep 17 00:00:00 2001 From: sight <1453017105@qq.com> Date: Sun, 28 May 2023 20:02:54 +0800 Subject: [PATCH 24/25] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20laydate=20=E8=BE=85?= =?UTF-8?q?=E5=8A=A9=E8=89=B2=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/laydate.js | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/modules/laydate.js b/src/modules/laydate.js index 6c431bd5..30f9f4cc 100644 --- a/src/modules/laydate.js +++ b/src/modules/laydate.js @@ -657,17 +657,30 @@ }); options.showBottom && elem.appendChild(divFooter); - //生成自定义主题 + // 生成自定义主题 var style = lay.elem('style'); var styleText = []; var colorTheme; + var isPrimaryColor = true; lay.each(options.theme, function (index, theme) { - if(/^#/.test(theme)){ + // 主色 + if(isPrimaryColor && /^#/.test(theme)){ colorTheme = true; + isPrimaryColor = false; styleText.push([ - '#{{id}} .layui-laydate-header{background-color:{{theme}};}' - ,'#{{id}} li.layui-this,#{{id}} td.layui-this>div{background-color:{{theme}} !important;}' - ,options.theme.indexOf('circle') !== -1 ? '' : '#{{id}} .layui-this{background-color:{{theme}} !important;}' + '#{{id}} .layui-laydate-header{background-color:{{theme}};}', + '#{{id}} li.layui-this,#{{id}} td.layui-this>div{background-color:{{theme}} !important;}', + options.theme.indexOf('circle') !== -1 ? '' : '#{{id}} .layui-this{background-color:{{theme}} !important;}', + '#{{id}} .laydate-day-now{color:{{theme}} !important;}', + '#{{id}} .laydate-day-now:after{border-color:{{theme}} !important;}', + ].join('').replace(/{{id}}/g, that.elemID).replace(/{{theme}}/g, theme)); + return; + } + // 第二个自定义颜色作为辅色 + if(!isPrimaryColor && /^#/.test(theme)){ + styleText.push([ + '#{{id}} .laydate-selected>div{background-color:{{theme}} !important;}', + '#{{id}} .laydate-selected:hover>div{background-color:{{theme}} !important;}', ].join('').replace(/{{id}}/g, that.elemID).replace(/{{theme}}/g, theme)); } }); From b4b25c4a525607957efb3cf20983970303c60dc1 Mon Sep 17 00:00:00 2001 From: sight <1453017105@qq.com> Date: Sun, 28 May 2023 22:57:56 +0800 Subject: [PATCH 25/25] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=8D=E5=BF=85?= =?UTF-8?q?=E8=A6=81=E7=9A=84=E9=80=97=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/laydate.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/laydate.js b/src/modules/laydate.js index 30f9f4cc..0725bfb2 100644 --- a/src/modules/laydate.js +++ b/src/modules/laydate.js @@ -672,7 +672,7 @@ '#{{id}} li.layui-this,#{{id}} td.layui-this>div{background-color:{{theme}} !important;}', options.theme.indexOf('circle') !== -1 ? '' : '#{{id}} .layui-this{background-color:{{theme}} !important;}', '#{{id}} .laydate-day-now{color:{{theme}} !important;}', - '#{{id}} .laydate-day-now:after{border-color:{{theme}} !important;}', + '#{{id}} .laydate-day-now:after{border-color:{{theme}} !important;}' ].join('').replace(/{{id}}/g, that.elemID).replace(/{{theme}}/g, theme)); return; } @@ -680,7 +680,7 @@ if(!isPrimaryColor && /^#/.test(theme)){ styleText.push([ '#{{id}} .laydate-selected>div{background-color:{{theme}} !important;}', - '#{{id}} .laydate-selected:hover>div{background-color:{{theme}} !important;}', + '#{{id}} .laydate-selected:hover>div{background-color:{{theme}} !important;}' ].join('').replace(/{{id}}/g, that.elemID).replace(/{{theme}}/g, theme)); } });