Merge pull request #1226 from layui/2.x

release v2.8.0-rc.16
pull/1228/head
贤心 2023-04-21 10:45:41 +08:00 committed by GitHub
commit 34a10e2e4d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 293 additions and 135 deletions

View File

@ -1,23 +1,23 @@
# 🍀 提 issue 的正确方式
# 🍀 提 Issue 的正确方式
## 标题
为了保持 issues 区域版面整洁可读, **创建 issue 时标题应尽量言简意赅** (一句话概括问题)
为了保持 Issues 区域版面整洁可读, 创建 Issue 时,**标题应尽量言简意赅** (一句话概括问题)
## 说明
创建 Issue 时,**[请按照文本框中的文字模板规范填写(点击查看示例)](https://foruda.gitee.com/images/1660197253451887123/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE.png)** ,尽量将您所遇到的问题描述详细,如:
创建 Issue 时,**[内容请按照文本框中的文字模板规范填写(点击查看示例)](https://foruda.gitee.com/images/1660197253451887123/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE.png)**,尽量将您所遇到的问题描述详细,如:
- **版本:** 提供所使用的 Layui 版本号。
- **描述:** 提供尽可能详细的问题描述和具体操作步骤等信息,以便我们也能够更轻松地将问题复现。
- **代码:** 提供与问题对应的业务代码,以便我们更好排查。
- **补充:** 如若必要,还可以提供其他补充,如截图等信息。
按照模板规范填写的初衷,是为了减少大家不必要的时间消耗,还望遵循并理解
> 按照模板规范填写的初衷,是为了减少大家不必要的时间消耗,还望遵循并理解
> **若 issue 未遵循模板规范,可能将无法获得相关回答,敬请知晓**
> 若 issue 是建议/分享/讨论性质的 ,则可以自由发挥
- **若 Issue 未遵循模板规范,可能将无法获得相关回答,敬请知晓**
- 若 issue 是建议/分享/讨论性质的 ,则可以自由发挥
## 对接
- 在 issue 交流过程中,若问题已经得到解决,或 issue 并非项目相关的问题,请及时将状态设置为 「已完成」
- 在 Issue 交流过程中,若问题已经得到解决,或 Issue 并非项目相关的问题,请及时将状态设置为 「已完成」
- 大家本着相互尊重、理解和友善的态度进行交流,共同维护好 Layui 来之不易的良好社区氛围。谢谢 :sparkling_heart:

View File

@ -1,14 +1,14 @@
# Layui 《免责声明》
> 任何用户在使用由 Layui 技术开发团队以下简称「本团队」研发的系列开源界面组件库以下简称「Layui 开源界面组件库」)前,请您仔细阅读并透彻理解本声明。您可以选择不使用 Layui 开源界面组件库,若您一旦使用 Layui 开源界面组件库,您的使用行为即被视为对本声明全部内容的认可和接受。
> 任何用户在使用由 Layui 技术开发团队以下简称「本团队」研发的系列开源界面组件库以下简称「Layui」请您仔细阅读并透彻理解本声明。您可以选择不使用 Layui ,若您一旦使用 Layui ,您的使用行为即被视为对本声明全部内容的认可和接受。
1. Layui 开源界面组件库是一款开源免费的 Web UI 纯静态主题,主要用于更高效地开发网页界面。且 Layui 开源界面组件库并不具备「互联网接入、网络数据存储、通讯传输以及窃取用户隐私」中的任何一项与用户数据等信息相关的动态功能Layui 开源界面组件库仅是 UI 组件或素材类的本地资源。
2. Layui 开源界面组件库仅属于 Web 前端的 UI 组件库,并不涉及任何后台程序代码;其尊重并保护所有用户的个人隐私权,不窃取任何用户计算机中的信息。更不具备用户数据存储等网络传输功能。
3. 您承诺秉着合法、合理的原则使用 Layui 开源界面组件库,不利用 Layui 开源界面组件库进行任何违法、侵害他人合法利益等恶意的行为,亦不将 Layui 开源界面组件库运用于任何违反我国法律法规的 Web 平台。
4. 任何单位或个人因下载使用 Layui 开源界面组件库而产生的任何意外、疏忽、合约毁坏、诽谤、版权或知识产权侵犯及其造成的损失 (包括但不限于直接、间接、附带或衍生的损失等),本团队不承担任何法律责任。
5. 用户明确并同意本声明条款列举的全部内容,对使用 Layui 开源界面组件库可能存在的风险和相关后果将完全由用户自行承担,本团队不承担任何法律责任。
6. 任何单位或个人在阅读本免责声明后应在《MIT 开源许可证》所允许的范围内进行合法的发布、传播和使用 Layui 开源界面组件库等行为,若违反本免责声明条款或违反法律法规所造成的法律责任(包括但不限于民事赔偿和刑事责任),由违约者自行承担。
7. 本团队对 Layui 开源界面组件库拥有知识产权(包括但不限于商标权、专利权、著作权、商业秘密等),上述产品均受到相关法律法规的保护。
8. 任何单位或个人不得在未经本团队书面授权的情况下对 Layui 开源界面组件库本身申请相关的知识产权。
1. Layui 是一款开源免费的 Web UI 纯静态主题,主要用于更高效地开发网页界面。且 Layui 并不具备「互联网接入、网络数据存储、通讯传输以及窃取用户隐私」中的任何一项与用户数据等信息相关的动态功能Layui 仅是 UI 组件或素材类的本地资源。
2. Layui 仅属于 Web 前端的 UI 组件库,并不涉及任何后台程序代码;其尊重并保护所有用户的个人隐私权,不窃取任何用户计算机中的信息。更不具备用户数据存储等网络传输功能。
3. 您承诺秉着合法、合理的原则使用 Layui ,不利用 Layui 进行任何违法、侵害他人合法利益等恶意的行为,亦不将 Layui 运用于任何违反我国法律法规的 Web 平台。
4. 任何单位或个人因下载使用 Layui 而产生的任何意外、疏忽、合约毁坏、诽谤、版权或知识产权侵犯及其造成的损失 (包括但不限于直接、间接、附带或衍生的损失等),本团队不承担任何法律责任。
5. 用户明确并同意本声明条款列举的全部内容,对使用 Layui 可能存在的风险和相关后果将完全由用户自行承担,本团队不承担任何法律责任。
6. 任何单位或个人在阅读本免责声明后应在《MIT 开源许可证》所允许的范围内进行合法的发布、传播和使用 Layui 等行为,若违反本免责声明条款或违反法律法规所造成的法律责任(包括但不限于民事赔偿和刑事责任),由违约者自行承担。
7. 本团队对 Layui 拥有知识产权(包括但不限于商标权、专利权、著作权、商业秘密等),上述产品均受到相关法律法规的保护。
8. 任何单位或个人不得在未经本团队书面授权的情况下对 Layui 本身申请相关的知识产权。
9. 如果本声明的任何部分被认为无效或不可执行,则该部分将被解释为反映本团队的初衷,其余部分仍具有完全效力。不可执行的部分声明,并不构成我们放弃执行该声明的权利。
10. 本团队有权随时对本声明条款及附件内容进行单方面的变更,并以消息推送、网页公告等方式予以公布,公布后立即自动生效,无需另行单独通知;若您在本声明内容公告变更后继续使用的,表示您已充分阅读、理解并接受修改后的声明内容。

2
dist/css/layui.css vendored

File diff suppressed because one or more lines are too long

BIN
dist/font/iconfont.eot vendored

Binary file not shown.

View File

@ -14,7 +14,15 @@
/>
<missing-glyph />
<glyph glyph-name="github" unicode="&#59047;" d="M512 852.11428587c258.43809493 0 468.11428587-209.67619093 468.11428587-468.11428587 0-206.63344747-134.07573333-382.17630507-319.99512427-444.35748587-23.7568-4.2520384-32.29988587 10.37653333-32.29988587 22.54750507 0 15.25272427 0.62415253 65.80906667 0.62415254 128.6144 0 43.88571413-14.62857173 71.9335616-31.67573334 86.56213333 104.23344747 11.58582827 213.92822827 51.21950507 213.92822934 231.0144 0 51.21950507-18.29546667 92.6476192-48.13775254 125.57165654 4.87619093 12.2099808 20.7140576 59.7235808-4.87619093 124.32335253-39.00952427 12.2099808-128.6144-48.13775253-128.6144-48.13775253a440.02742827 440.02742827 0 0 1-234.0571424 0S305.4055616 670.4859424 266.3960384 658.2759616c-25.59024747-64.59977173-9.7523808-112.1523808-4.87619093-124.32335253-29.88129493-32.9240384-48.13775253-74.35215253-48.13775254-125.57165654 0-179.20975253 109.1096384-219.42857173 213.34308587-231.0144-13.41927573-12.2099808-25.59024747-32.9240384-29.88129493-62.76632426-26.83855253-12.2099808-95.1052192-32.9240384-135.9091808 39.00952426-25.59024747 44.50986667-71.9335616 48.13775253-71.93356267 48.13775254-45.7191616 0.62415253-3.0427424-28.63299093-3.0427424-28.63299094 30.4664384-14.0044192 51.80464747-68.26666667 51.80464747-68.26666666 27.42369493-83.51939093 157.8715424-55.4715424 157.87154346-55.4715424 0-39.00952427 0.62415253-75.56144747 0.62415147-87.1472768 0-12.2099808-8.54308587-26.83855253-32.2998848-22.547504C178.03946667 1.8627050699999472 43.96373333 177.40556160000006 43.96373333 384.03900907c0 258.43809493 209.67619093 468.11428587 468.11428587 468.11428586zM221.2620192 179.82415253c1.20929493 2.4576-0.62415253 5.5003424-4.2520384 7.2947808-3.66689493 1.20929493-6.7096384 0.62415253-7.91893333-1.20929493-1.20929493-2.4576 0.62415253-5.5003424 4.2520384-7.2947808 3.0427424-1.83344747 6.7096384-1.20929493 7.91893333 1.20929493z m18.88060907-20.75306666c2.4576 1.83344747 1.83344747 6.08548587-1.20929494 9.7523808-3.0427424 3.0427424-7.2947808 4.2520384-9.7523808 1.83344746-2.4576-1.83344747-1.83344747-6.08548587 1.20929494-9.7523808 3.0427424-3.0427424 7.2947808-4.2520384 9.7523808-1.83344746z m18.29546666-27.42369494c3.0427424 2.4576 3.0427424 7.2947808 0 11.58582827-2.4576 4.2520384-7.2947808 6.08548587-10.37653333 3.66689493-3.0427424-1.83344747-3.0427424-6.7096384 0-10.96167573s7.91893333-6.08548587 10.37653333-4.2520384z m25.59024747-25.59024853c2.4576 2.4576 1.20929493 7.91893333-2.4576 11.58582933-4.2520384 4.2520384-9.7523808 4.87619093-12.2099808 1.83344747-3.0427424-2.4576-1.83344747-7.91893333 2.4576-11.58582827 4.2520384-4.2520384 9.7523808-4.87619093 12.2099808-1.83344853z m34.75748587-15.2527232c1.20929493 3.66689493-2.4576 7.91893333-7.91893334 9.7523808-4.87619093 1.20929493-10.37653333-0.62415253-11.58582826-4.2520384s2.4576-7.91893333 7.91893333-9.12822827c4.87619093-1.83344747 10.37653333 0 11.58582827 3.66689494z m38.38537173-3.04274347c0 4.2520384-4.87619093 7.2947808-10.37653333 6.7096384-5.5003424 0-9.7523808-3.0427424-9.7523808-6.7096384 0-4.2520384 4.2520384-7.2947808 10.37653333-6.70963733 5.5003424 0 9.7523808 3.0427424 9.7523808 6.70963733z m35.34262827 6.08548587c-0.62415253 3.66689493-5.5003424 6.08548587-10.96167574 5.50034347-5.5003424-1.20929493-9.12822827-4.87619093-8.54308586-9.12822934 0.62415253-3.66689493 5.5003424-6.08548587 10.96167573-4.87618986s9.12822827 4.87619093 8.54308587 8.54308586z" horiz-adv-x="1024" />
<glyph glyph-name="leaf" unicode="&#59137;" d="M1017.948269 886.876437c-4.863707 5.785251-12.031275 9.113051-19.557222 9.113051l-26.110427 0c-258.032454 0.102394-461.847374 0.153591-611.905533-35.735447-80.635142-19.301237-142.992985-48.432282-190.606116-89.031436-51.401703-43.82456-86.420393-101.216302-107.155144-175.554223-13.77197-49.353826-20.222782-138.487656 6.96278-227.160714 10.034595-32.766026 25.700852-63.688963 46.589193-92.103251-62.255449-97.530124-116.063407-225.983185-116.063407-378.805977 0-14.130349 11.468109-25.598458 25.598458-25.598458s25.598458 11.468109 25.598458 25.598458c0 235.761795 139.665185 410.650458 222.91137 493.845446 59.7468 59.7468 127.275532 110.175762 195.367429 145.808815 63.381781 33.175601 123.947732 51.4529 170.536925 51.4529 14.130349 0 25.598458 11.468109 25.598458 25.598458s-11.468109 25.598458-25.598458 25.598458c-55.497456 0-122.667809-19.813206-194.241097-57.340545-72.597226-38.039308-144.477695-91.591282-207.80828-154.973063-26.72479-26.72479-58.876453-62.357843-90.823328-105.977615-12.389654 19.506025-22.014674 40.189579-28.619076 61.794677-25.598458 83.553366-16.178225 164.034917-6.604402 198.388047 73.211589 262.384191 351.313233 263.049751 855.858835 262.896161-60.156376-321.926204-172.328817-530.29765-333.599101-619.533873-149.597387-82.785412-297.966048-37.629733-354.845821-14.335136-11.980078 4.914904-24.06255 10.95614-35.786644 17.91892-12.133669 7.218765-27.851122 3.225406-35.069887-8.908263s-3.225406-27.851122 8.908263-35.069887c13.925561-8.2939 28.260697-15.461468 42.595834-21.349114 31.844481-13.004017 83.143791-29.694211 146.679163-35.172281 14.027955-1.228726 27.902319-1.791892 41.674289-1.791892 75.208269 0 145.860012 18.072511 210.675307 53.910352 82.375837 45.565255 153.641943 119.749585 211.904033 220.351524 68.296685 118.00889 119.698388 274.51786 152.720399 465.175173 1.279923 7.423553-0.767954 15.051893-5.631661 20.837145z" horiz-adv-x="1025" />
<glyph glyph-name="folder" unicode="&#60094;" d="M970.666667 682.666667H542.173333L429.793333 795.046667A52.986667 52.986667 0 0 1 392.08 810.666667H96a53.393333 53.393333 0 0 1-53.333333-53.333334v-704a53.393333 53.393333 0 0 1 53.333333-53.333333h874.666667a53.393333 53.393333 0 0 1 53.333333 53.333333V629.333333a53.393333 53.393333 0 0 1-53.333333 53.333334zM96 768h296.08a10.573333 10.573333 0 0 0 7.54-3.126667L481.826667 682.666667H96a53.546667 53.546667 0 0 1-10.666667-1.073334V757.333333a10.666667 10.666667 0 0 0 10.666667 10.666667z m885.333333-714.666667a10.666667 10.666667 0 0 0-10.666666-10.666666H96a10.666667 10.666667 0 0 0-10.666667 10.666666V629.333333a10.666667 10.666667 0 0 0 10.666667 10.666667h874.666667a10.666667 10.666667 0 0 0 10.666666-10.666667z" horiz-adv-x="1024" />
<glyph glyph-name="folder-open" unicode="&#60097;" d="M1003.153333 491.04a52.933333 52.933333 0 0 1-42.38 20.96H896V629.333333a53.393333 53.393333 0 0 1-53.333333 53.333334H461.253333a10.573333 10.573333 0 0 0-7.54 3.126666L344.46 795.046667A52.986667 52.986667 0 0 1 306.746667 810.666667H53.333333a53.393333 53.393333 0 0 1-53.333333-53.333334v-704a53.393333 53.393333 0 0 1 53.333333-53.333333h796.893334a53.453333 53.453333 0 0 1 51.453333 39.333333l110.546667 405.333334a52.953333 52.953333 0 0 1-9.073334 46.373333zM53.333333 768h253.413334a10.573333 10.573333 0 0 0 7.54-3.126667l109.253333-109.253333A52.986667 52.986667 0 0 1 461.253333 640H842.666667a10.666667 10.666667 0 0 0 10.666666-10.666667v-117.333333H173.773333a53.453333 53.453333 0 0 1-51.453333-39.333333L42.666667 180.633333V757.333333a10.666667 10.666667 0 0 0 10.666666 10.666667z m917.726667-312.14l-110.546667-405.333333a10.666667 10.666667 0 0 0-10.286666-7.86H63.226667a10.666667 10.666667 0 0 0-10.286667 13.473333l110.546667 405.333333A10.666667 10.666667 0 0 0 173.773333 469.333333h787a10.666667 10.666667 0 0 0 10.286667-13.473333z" horiz-adv-x="1024" />
<glyph glyph-name="gitee" unicode="&#59035;" d="M512-128C229.222-128 0 101.222 0 384S229.222 896 512 896s512-229.222 512-512-229.222-512-512-512z m259.149 568.883h-290.74a25.293 25.293 0 0 1-25.292-25.293l-0.026-63.206c0-13.952 11.315-25.293 25.267-25.293h177.024c13.978 0 25.293-11.315 25.293-25.267v-12.646a75.853 75.853 0 0 0-75.853-75.853h-240.23a25.293 25.293 0 0 0-25.267 25.293V478.797a75.853 75.853 0 0 0 75.827 75.853h353.946a25.293 25.293 0 0 1 25.267 25.292l0.077 63.207a25.293 25.293 0 0 1-25.268 25.293H417.152a189.62 189.62 0 0 1-189.62-189.645V124.85c0-13.977 11.316-25.293 25.294-25.293h372.94a170.65 170.65 0 0 1 170.65 170.65V415.616a25.293 25.293 0 0 1-25.293 25.267z" horiz-adv-x="1024" />
<glyph glyph-name="github" unicode="&#59047;" d="M512 883.32190493c275.66730126 0 499.32190493-223.65460366 499.32190493-499.32190493 0-220.40901063-143.01411555-407.65472541-341.32813256-473.98131826-25.34058667-4.53550763-34.45321159 11.06830222-34.45321159 24.05067207 0 16.26957255 0.6657627 70.19633778 0.66576271 137.18869334 0 46.81142841-15.60380985 76.72913237-33.7874489 92.33294222 111.18234397 12.35821682 228.19011015 54.63413874 228.1901113 246.41536 0 54.63413874-19.51516445 98.82412715-51.34693604 133.9431003 5.20127033 13.02397952 22.09499477 63.70515285-5.20127033 132.61157604-41.61015922 13.02397952-137.18869333-51.34693603-137.18869333-51.34693604a469.36259015 469.36259015 0 0 1-249.6609519 0S291.63259904 689.58500523 250.02244096 676.56102571c-27.29626397-68.90642318-10.40253952-119.62920619-5.20127033-132.61157604-31.87338126-35.11897429-51.34693603-79.3089627-51.34693604-133.9431003 0-191.15706937 116.38361429-234.05714318 227.56595826-246.41536-14.31389411-13.02397952-27.29626397-35.11897429-31.87338126-66.95074588-28.62778937-13.02397952-101.44556715-35.11897429-144.96979285 41.61015921-27.29626397 47.47719111-76.72913237 51.34693603-76.72913351 51.34693604-48.76710571 0.6657627-3.24559189-30.54185699-3.2455919-30.541857 32.49753429-14.93804715 55.25829063-72.81777778 55.25829064-72.81777777 29.25194126-89.08735033 168.39631189-59.16964523 168.39631302-59.16964523 0-41.61015922 0.6657627-80.5988773 0.66576157-92.95709525 0-13.02397952-9.11262493-28.62778937-34.45321045-24.05067094C155.77543111-23.61311459000001 12.76131555 163.63259903999995 12.76131555 384.04160967c0 275.66730126 223.65460366 499.32190493 499.32190493 499.32190492zM201.87948715 166.21242937c1.28991459 2.62144-0.6657627 5.86703189-4.53550763 7.78109952-3.91135459 1.28991459-7.15694763 0.6657627-8.44686222-1.2899146-1.28991459-2.62144 0.6657627-5.86703189 4.53550763-7.78109952 3.24559189-1.9556773 7.15694763-1.28991459 8.44686222 1.2899146z m20.13931634-22.13660444c2.62144 1.9556773 1.9556773 6.49118493-1.2899146 10.40253952-3.24559189 3.24559189-7.78109952 4.53550763-10.40253952 1.95567729-2.62144-1.9556773-1.9556773-6.49118493 1.2899146-10.40253952 3.24559189-3.24559189 7.78109952-4.53550763 10.40253952-1.95567729z m19.51516444-29.25194127c3.24559189 2.62144 3.24559189 7.78109952 0 12.35821682-2.62144 4.53550763-7.78109952 6.49118493-11.06830222 3.91135459-3.24559189-1.9556773-3.24559189-7.15694763 0-11.69245411s8.44686222-6.49118493 11.06830222-4.53550763z m27.29626396-27.2962651c2.62144 2.62144 1.28991459 8.44686222-2.62144 12.35821795-4.53550763 4.53550763-10.40253952 5.20127033-13.02397952 1.9556773-3.24559189-2.62144-1.9556773-8.44686222 2.62144-12.35821682 4.53550763-4.53550763 10.40253952-5.20127033 13.02397952-1.95567843z m37.0746516-16.26957141c1.28991459 3.91135459-2.62144 8.44686222-8.44686223 10.40253952-5.20127033 1.28991459-11.06830222-0.6657627-12.35821681-4.53550763s2.62144-8.44686222 8.44686222-9.73677682c5.20127033-1.9556773 11.06830222 0 12.35821682 3.9113546z m40.94439651-3.24559304c0 4.53550763-5.20127033 7.78109952-11.06830222 7.15694763-5.86703189 0-10.40253952-3.24559189-10.40253952-7.15694763 0-4.53550763 4.53550763-7.78109952 11.06830222-7.15694648 5.86703189 0 10.40253952 3.24559189 10.40253952 7.15694648z m37.69880349 6.49118493c-0.6657627 3.91135459-5.86703189 6.49118493-11.69245412 5.86703303-5.86703189-1.28991459-9.73677682-5.20127033-9.11262492-9.73677796 0.6657627-3.91135459 5.86703189-6.49118493 11.69245411-5.20126918s9.73677682 5.20127033 9.11262493 9.11262492z" horiz-adv-x="1024" />
<glyph glyph-name="disabled" unicode="&#59084;" d="M509.20496914 834c-245.9627332 0-447.20496914-201.24223594-447.20496914-447.20496914s201.24223594-447.20496914 447.20496914-447.20496914 447.20496914 201.24223594 447.20496914 447.20496914-201.24223594 447.20496914-447.20496914 447.20496914zM509.20496914-10.09937930000001C291.19254628-10.09937930000001 112.31055898 168.78260888 112.31055898 386.79503086c0 95.03105625 33.54037295 184.4720499 95.03105625 257.14285752l553.41614883-553.41614883C693.67701904 23.440993649999996 604.23602451-10.09937930000001 509.20496914-10.09937930000001z m296.27329131 134.16149092l-559.00621055 553.41614883C319.14285752 738.96894375 408.58385117 778.0993793 509.20496914 778.0993793c218.01242197 0 396.89441016-178.8819873 396.89441016-396.89441016 0-95.03105625-39.13043467-190.06211162-100.62111885-257.14285752z" horiz-adv-x="1024" />

Before

Width:  |  Height:  |  Size: 316 KiB

After

Width:  |  Height:  |  Size: 321 KiB

BIN
dist/font/iconfont.ttf vendored

Binary file not shown.

Binary file not shown.

Binary file not shown.

2
dist/layui.js vendored

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -1,14 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>文档中转页</title>
</head>
<body>
<script>
setTimeout(function(){
location.href = 'https://layui.gitee.io/v2';
});
</script>
</body>

File diff suppressed because one or more lines are too long

93
examples/treeTable.html Normal file
View File

@ -0,0 +1,93 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>树形表格 - layui</title>
<link rel="stylesheet" href="../src/css/layui.css">
<style>
body {padding: 32px;}
</style>
</head>
<body>
<table class="layui-hide" id="test"></table>
<script src="../src/layui.js"></script>
<script>
layui.use(['treeTable'], function(){
var treeTable = layui.treeTable;
// 渲染
treeTable.render({
elem: '#test',
url: './json/treeTable/demo-1.json',
maxHeight: 'full-32',
cols: [[
{type: 'numbers', fixed: 'left'},
{field: 'id', title: 'ID', width: 145, sort: true, fixed: 'left', totalRow: '合计:'},
{field: 'name', title: '用户名', width: 180, fixed: 'left'},
{field: 'experience', title: '积分', width: 90, sort: true},
{field: 'sex', title: '性别', width: 80, sort: true},
{field: 'score', title: '评分', width: 80, sort: true},
{field: 'city', title: '城市', width: 150},
{field: 'description', title: '描述', minWidth: 200},
{field: 'createTime', title: '创建时间', width: 170},
]],
page: true
});
});
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Mock.js/1.0.0/mock-min.js"></script>
<script>
// 生成模拟数据
const createData = () => {
// 生成随机 ID 函数
const createId = (() => {
let nextId = 1
return () => nextId++
})()
// 生成节点函数
const createNode = (parentId = null, level = 0) => {
const id = createId()
const children = level < 3 ? Mock.mock({
'array|0-5': [
createNode.bind(null, id, level + 1)
]
}).array : []
return {
id,
name: `User-${id}`,
type: Mock.mock('@d6'),
status: Mock.Random.d4(),
score: Mock.Random.d100(),
experience: Mock.Random.integer(1000, 99999),
sex: Mock.Random.cword('男女', 1),
city: Mock.Random.city(),
description: '-',
createTime: Mock.mock('@datetime'),
parentId,
children,
isParent: !!children.length
}
}
// 生成树
const rootNodes = Mock.mock({
'array|10-20': [
createNode
]
}).array
const getTreeData = function (nodes) {
let result = []
nodes.forEach(node => {
result.push({...node, parentId: null, children: getTreeData(node.children)});
})
return result
};
return getTreeData(rootNodes);
};
</script>
</body>
</html>

View File

@ -1,6 +1,6 @@
{
"name": "layui",
"version": "2.8.0-rc.15",
"version": "2.8.0-rc.16",
"description": "Classic modular Front-End UI library",
"main": "dist/layui.js",
"license": "MIT",

View File

@ -65,6 +65,10 @@ a cite{font-style: normal; *cursor:pointer;}
}
/* font-class */
.layui-icon-leaf:before{content: "\e701";}
.layui-icon-folder:before{content: "\eabe";}
.layui-icon-folder-open:before{content: "\eac1";}
.layui-icon-gitee:before{content: "\e69b";}
.layui-icon-github:before{content:"\e6a7"}
.layui-icon-disabled:before{content:"\e6cc"}
.layui-icon-moon:before{content:"\e6c2"}
@ -266,7 +270,7 @@ a cite{font-style: normal; *cursor:pointer;}
/* 后台框架大布局 */
.layui-layout-body{overflow-x: hidden;}
.layui-layout-admin .layui-header{position: fixed; top: 0; left: 0; right: 0; background-color: #23262E;}
.layui-layout-admin .layui-header{position: fixed; top: 0; left: 0; right: 0; background-color: #23292e;}
.layui-layout-admin .layui-side{top: 60px; width: 200px; overflow-x: hidden;}
.layui-layout-admin .layui-body{position: absolute; top: 60px; padding-bottom: 44px;}
.layui-layout-admin .layui-main{width: auto; margin: 0 15px;}
@ -575,9 +579,10 @@ a cite{font-style: normal; *cursor:pointer;}
.layui-bg-red{background-color: #ff5722 !important; color: #fff!important;} /*赤*/
.layui-bg-orange{background-color: #ffb800!important; color: #fff!important;} /*橙*/
.layui-bg-green{background-color: #16baaa!important; color: #fff!important;} /*绿*/
.layui-bg-cyan{background-color: #2f4056!important; color: #fff!important;} /*青*/
.layui-bg-cyan{background-color: #2f4056!important; color: #fff!important;} /*青*/
.layui-bg-blue{background-color: #1e9fff!important; color: #fff!important;} /*蓝*/
.layui-bg-black{background-color: #393d49!important; color: #fff!important;} /*深*/
.layui-bg-purple{background-color: #a233c6!important; color: #fff!important;} /*紫*/
.layui-bg-black{background-color: #2f363c!important; color: #fff!important;} /*深*/
.layui-bg-gray{background-color: #fafafa!important; color: #5F5F5F!important;} /*浅*/
/* 边框 */
@ -605,7 +610,8 @@ a cite{font-style: normal; *cursor:pointer;}
.layui-border-green{border-width: 1px; border-style: solid; border-color: #16baaa!important; color: #16baaa!important;}
.layui-border-cyan{border-width: 1px; border-style: solid; border-color: #2f4056!important; color: #2f4056!important;}
.layui-border-blue{border-width: 1px; border-style: solid; border-color: #1e9fff!important; color: #1e9fff!important;}
.layui-border-black{border-width: 1px; border-style: solid; border-color: #393d49!important; color: #393d49!important;}
.layui-border-purple{border-width: 1px; border-style: solid; border-color: #a233c6!important; color: #a233c6!important;}
.layui-border-black{border-width: 1px; border-style: solid; border-color: #2f363c!important; color: #2f363c!important;}
/* 背景边框 */
.layui-timeline-item:before{background-color: #eee;}
@ -655,10 +661,11 @@ a cite{font-style: normal; *cursor:pointer;}
.layui-font-red{color: #ff5722 !important;} /*赤*/
.layui-font-orange{color: #ffb800!important;} /*橙*/
.layui-font-green{color: #16baaa!important;} /*绿*/
.layui-font-cyan{color: #2f4056!important;} /*青*/
.layui-font-cyan{color: #2f4056!important;} /*青*/
.layui-font-blue{color: #01AAED!important;} /*蓝*/
.layui-font-black{color: #000!important;} /*黑*/
.layui-font-gray{color: #c2c2c2!important;} /*灰*/
.layui-font-purple{color: #a233c6 !important;} /*紫*/
.layui-font-black{color: #000!important;} /*深*/
.layui-font-gray{color: #c2c2c2!important;} /*浅*/
@ -1189,7 +1196,7 @@ body .layui-table-tips .layui-layer-content{background: none; padding: 0; box-sh
.layui-dropdown-shade{top: 0; left: 0; width: 100%; height: 100%; _height: expression(document.body.offsetHeight+"px"); position: fixed; _position: absolute; pointer-events: auto;}
/** 导航菜单 **/
.layui-nav{position: relative; padding: 0 15px; background-color: #393d49; color: #fff; border-radius: 2px; font-size: 0; box-sizing: border-box;}
.layui-nav{position: relative; padding: 0 15px; background-color: #2f363c; color: #fff; border-radius: 2px; font-size: 0; box-sizing: border-box;}
.layui-nav *{font-size: 14px;}
.layui-nav .layui-nav-item{position: relative; display: inline-block; *display: inline; *zoom: 1; margin-top: 0; list-style: none; vertical-align: middle; line-height: 60px;}
.layui-nav .layui-nav-item a{display: block; padding: 0 20px; color: #fff; color: rgba(255,255,255,.7); transition: all .3s; -webkit-transition: all .3s;}

Binary file not shown.

View File

@ -14,7 +14,15 @@
/>
<missing-glyph />
<glyph glyph-name="github" unicode="&#59047;" d="M512 852.11428587c258.43809493 0 468.11428587-209.67619093 468.11428587-468.11428587 0-206.63344747-134.07573333-382.17630507-319.99512427-444.35748587-23.7568-4.2520384-32.29988587 10.37653333-32.29988587 22.54750507 0 15.25272427 0.62415253 65.80906667 0.62415254 128.6144 0 43.88571413-14.62857173 71.9335616-31.67573334 86.56213333 104.23344747 11.58582827 213.92822827 51.21950507 213.92822934 231.0144 0 51.21950507-18.29546667 92.6476192-48.13775254 125.57165654 4.87619093 12.2099808 20.7140576 59.7235808-4.87619093 124.32335253-39.00952427 12.2099808-128.6144-48.13775253-128.6144-48.13775253a440.02742827 440.02742827 0 0 1-234.0571424 0S305.4055616 670.4859424 266.3960384 658.2759616c-25.59024747-64.59977173-9.7523808-112.1523808-4.87619093-124.32335253-29.88129493-32.9240384-48.13775253-74.35215253-48.13775254-125.57165654 0-179.20975253 109.1096384-219.42857173 213.34308587-231.0144-13.41927573-12.2099808-25.59024747-32.9240384-29.88129493-62.76632426-26.83855253-12.2099808-95.1052192-32.9240384-135.9091808 39.00952426-25.59024747 44.50986667-71.9335616 48.13775253-71.93356267 48.13775254-45.7191616 0.62415253-3.0427424-28.63299093-3.0427424-28.63299094 30.4664384-14.0044192 51.80464747-68.26666667 51.80464747-68.26666666 27.42369493-83.51939093 157.8715424-55.4715424 157.87154346-55.4715424 0-39.00952427 0.62415253-75.56144747 0.62415147-87.1472768 0-12.2099808-8.54308587-26.83855253-32.2998848-22.547504C178.03946667 1.8627050699999472 43.96373333 177.40556160000006 43.96373333 384.03900907c0 258.43809493 209.67619093 468.11428587 468.11428587 468.11428586zM221.2620192 179.82415253c1.20929493 2.4576-0.62415253 5.5003424-4.2520384 7.2947808-3.66689493 1.20929493-6.7096384 0.62415253-7.91893333-1.20929493-1.20929493-2.4576 0.62415253-5.5003424 4.2520384-7.2947808 3.0427424-1.83344747 6.7096384-1.20929493 7.91893333 1.20929493z m18.88060907-20.75306666c2.4576 1.83344747 1.83344747 6.08548587-1.20929494 9.7523808-3.0427424 3.0427424-7.2947808 4.2520384-9.7523808 1.83344746-2.4576-1.83344747-1.83344747-6.08548587 1.20929494-9.7523808 3.0427424-3.0427424 7.2947808-4.2520384 9.7523808-1.83344746z m18.29546666-27.42369494c3.0427424 2.4576 3.0427424 7.2947808 0 11.58582827-2.4576 4.2520384-7.2947808 6.08548587-10.37653333 3.66689493-3.0427424-1.83344747-3.0427424-6.7096384 0-10.96167573s7.91893333-6.08548587 10.37653333-4.2520384z m25.59024747-25.59024853c2.4576 2.4576 1.20929493 7.91893333-2.4576 11.58582933-4.2520384 4.2520384-9.7523808 4.87619093-12.2099808 1.83344747-3.0427424-2.4576-1.83344747-7.91893333 2.4576-11.58582827 4.2520384-4.2520384 9.7523808-4.87619093 12.2099808-1.83344853z m34.75748587-15.2527232c1.20929493 3.66689493-2.4576 7.91893333-7.91893334 9.7523808-4.87619093 1.20929493-10.37653333-0.62415253-11.58582826-4.2520384s2.4576-7.91893333 7.91893333-9.12822827c4.87619093-1.83344747 10.37653333 0 11.58582827 3.66689494z m38.38537173-3.04274347c0 4.2520384-4.87619093 7.2947808-10.37653333 6.7096384-5.5003424 0-9.7523808-3.0427424-9.7523808-6.7096384 0-4.2520384 4.2520384-7.2947808 10.37653333-6.70963733 5.5003424 0 9.7523808 3.0427424 9.7523808 6.70963733z m35.34262827 6.08548587c-0.62415253 3.66689493-5.5003424 6.08548587-10.96167574 5.50034347-5.5003424-1.20929493-9.12822827-4.87619093-8.54308586-9.12822934 0.62415253-3.66689493 5.5003424-6.08548587 10.96167573-4.87618986s9.12822827 4.87619093 8.54308587 8.54308586z" horiz-adv-x="1024" />
<glyph glyph-name="leaf" unicode="&#59137;" d="M1017.948269 886.876437c-4.863707 5.785251-12.031275 9.113051-19.557222 9.113051l-26.110427 0c-258.032454 0.102394-461.847374 0.153591-611.905533-35.735447-80.635142-19.301237-142.992985-48.432282-190.606116-89.031436-51.401703-43.82456-86.420393-101.216302-107.155144-175.554223-13.77197-49.353826-20.222782-138.487656 6.96278-227.160714 10.034595-32.766026 25.700852-63.688963 46.589193-92.103251-62.255449-97.530124-116.063407-225.983185-116.063407-378.805977 0-14.130349 11.468109-25.598458 25.598458-25.598458s25.598458 11.468109 25.598458 25.598458c0 235.761795 139.665185 410.650458 222.91137 493.845446 59.7468 59.7468 127.275532 110.175762 195.367429 145.808815 63.381781 33.175601 123.947732 51.4529 170.536925 51.4529 14.130349 0 25.598458 11.468109 25.598458 25.598458s-11.468109 25.598458-25.598458 25.598458c-55.497456 0-122.667809-19.813206-194.241097-57.340545-72.597226-38.039308-144.477695-91.591282-207.80828-154.973063-26.72479-26.72479-58.876453-62.357843-90.823328-105.977615-12.389654 19.506025-22.014674 40.189579-28.619076 61.794677-25.598458 83.553366-16.178225 164.034917-6.604402 198.388047 73.211589 262.384191 351.313233 263.049751 855.858835 262.896161-60.156376-321.926204-172.328817-530.29765-333.599101-619.533873-149.597387-82.785412-297.966048-37.629733-354.845821-14.335136-11.980078 4.914904-24.06255 10.95614-35.786644 17.91892-12.133669 7.218765-27.851122 3.225406-35.069887-8.908263s-3.225406-27.851122 8.908263-35.069887c13.925561-8.2939 28.260697-15.461468 42.595834-21.349114 31.844481-13.004017 83.143791-29.694211 146.679163-35.172281 14.027955-1.228726 27.902319-1.791892 41.674289-1.791892 75.208269 0 145.860012 18.072511 210.675307 53.910352 82.375837 45.565255 153.641943 119.749585 211.904033 220.351524 68.296685 118.00889 119.698388 274.51786 152.720399 465.175173 1.279923 7.423553-0.767954 15.051893-5.631661 20.837145z" horiz-adv-x="1025" />
<glyph glyph-name="folder" unicode="&#60094;" d="M970.666667 682.666667H542.173333L429.793333 795.046667A52.986667 52.986667 0 0 1 392.08 810.666667H96a53.393333 53.393333 0 0 1-53.333333-53.333334v-704a53.393333 53.393333 0 0 1 53.333333-53.333333h874.666667a53.393333 53.393333 0 0 1 53.333333 53.333333V629.333333a53.393333 53.393333 0 0 1-53.333333 53.333334zM96 768h296.08a10.573333 10.573333 0 0 0 7.54-3.126667L481.826667 682.666667H96a53.546667 53.546667 0 0 1-10.666667-1.073334V757.333333a10.666667 10.666667 0 0 0 10.666667 10.666667z m885.333333-714.666667a10.666667 10.666667 0 0 0-10.666666-10.666666H96a10.666667 10.666667 0 0 0-10.666667 10.666666V629.333333a10.666667 10.666667 0 0 0 10.666667 10.666667h874.666667a10.666667 10.666667 0 0 0 10.666666-10.666667z" horiz-adv-x="1024" />
<glyph glyph-name="folder-open" unicode="&#60097;" d="M1003.153333 491.04a52.933333 52.933333 0 0 1-42.38 20.96H896V629.333333a53.393333 53.393333 0 0 1-53.333333 53.333334H461.253333a10.573333 10.573333 0 0 0-7.54 3.126666L344.46 795.046667A52.986667 52.986667 0 0 1 306.746667 810.666667H53.333333a53.393333 53.393333 0 0 1-53.333333-53.333334v-704a53.393333 53.393333 0 0 1 53.333333-53.333333h796.893334a53.453333 53.453333 0 0 1 51.453333 39.333333l110.546667 405.333334a52.953333 52.953333 0 0 1-9.073334 46.373333zM53.333333 768h253.413334a10.573333 10.573333 0 0 0 7.54-3.126667l109.253333-109.253333A52.986667 52.986667 0 0 1 461.253333 640H842.666667a10.666667 10.666667 0 0 0 10.666666-10.666667v-117.333333H173.773333a53.453333 53.453333 0 0 1-51.453333-39.333333L42.666667 180.633333V757.333333a10.666667 10.666667 0 0 0 10.666666 10.666667z m917.726667-312.14l-110.546667-405.333333a10.666667 10.666667 0 0 0-10.286666-7.86H63.226667a10.666667 10.666667 0 0 0-10.286667 13.473333l110.546667 405.333333A10.666667 10.666667 0 0 0 173.773333 469.333333h787a10.666667 10.666667 0 0 0 10.286667-13.473333z" horiz-adv-x="1024" />
<glyph glyph-name="gitee" unicode="&#59035;" d="M512-128C229.222-128 0 101.222 0 384S229.222 896 512 896s512-229.222 512-512-229.222-512-512-512z m259.149 568.883h-290.74a25.293 25.293 0 0 1-25.292-25.293l-0.026-63.206c0-13.952 11.315-25.293 25.267-25.293h177.024c13.978 0 25.293-11.315 25.293-25.267v-12.646a75.853 75.853 0 0 0-75.853-75.853h-240.23a25.293 25.293 0 0 0-25.267 25.293V478.797a75.853 75.853 0 0 0 75.827 75.853h353.946a25.293 25.293 0 0 1 25.267 25.292l0.077 63.207a25.293 25.293 0 0 1-25.268 25.293H417.152a189.62 189.62 0 0 1-189.62-189.645V124.85c0-13.977 11.316-25.293 25.294-25.293h372.94a170.65 170.65 0 0 1 170.65 170.65V415.616a25.293 25.293 0 0 1-25.293 25.267z" horiz-adv-x="1024" />
<glyph glyph-name="github" unicode="&#59047;" d="M512 883.32190493c275.66730126 0 499.32190493-223.65460366 499.32190493-499.32190493 0-220.40901063-143.01411555-407.65472541-341.32813256-473.98131826-25.34058667-4.53550763-34.45321159 11.06830222-34.45321159 24.05067207 0 16.26957255 0.6657627 70.19633778 0.66576271 137.18869334 0 46.81142841-15.60380985 76.72913237-33.7874489 92.33294222 111.18234397 12.35821682 228.19011015 54.63413874 228.1901113 246.41536 0 54.63413874-19.51516445 98.82412715-51.34693604 133.9431003 5.20127033 13.02397952 22.09499477 63.70515285-5.20127033 132.61157604-41.61015922 13.02397952-137.18869333-51.34693603-137.18869333-51.34693604a469.36259015 469.36259015 0 0 1-249.6609519 0S291.63259904 689.58500523 250.02244096 676.56102571c-27.29626397-68.90642318-10.40253952-119.62920619-5.20127033-132.61157604-31.87338126-35.11897429-51.34693603-79.3089627-51.34693604-133.9431003 0-191.15706937 116.38361429-234.05714318 227.56595826-246.41536-14.31389411-13.02397952-27.29626397-35.11897429-31.87338126-66.95074588-28.62778937-13.02397952-101.44556715-35.11897429-144.96979285 41.61015921-27.29626397 47.47719111-76.72913237 51.34693603-76.72913351 51.34693604-48.76710571 0.6657627-3.24559189-30.54185699-3.2455919-30.541857 32.49753429-14.93804715 55.25829063-72.81777778 55.25829064-72.81777777 29.25194126-89.08735033 168.39631189-59.16964523 168.39631302-59.16964523 0-41.61015922 0.6657627-80.5988773 0.66576157-92.95709525 0-13.02397952-9.11262493-28.62778937-34.45321045-24.05067094C155.77543111-23.61311459000001 12.76131555 163.63259903999995 12.76131555 384.04160967c0 275.66730126 223.65460366 499.32190493 499.32190493 499.32190492zM201.87948715 166.21242937c1.28991459 2.62144-0.6657627 5.86703189-4.53550763 7.78109952-3.91135459 1.28991459-7.15694763 0.6657627-8.44686222-1.2899146-1.28991459-2.62144 0.6657627-5.86703189 4.53550763-7.78109952 3.24559189-1.9556773 7.15694763-1.28991459 8.44686222 1.2899146z m20.13931634-22.13660444c2.62144 1.9556773 1.9556773 6.49118493-1.2899146 10.40253952-3.24559189 3.24559189-7.78109952 4.53550763-10.40253952 1.95567729-2.62144-1.9556773-1.9556773-6.49118493 1.2899146-10.40253952 3.24559189-3.24559189 7.78109952-4.53550763 10.40253952-1.95567729z m19.51516444-29.25194127c3.24559189 2.62144 3.24559189 7.78109952 0 12.35821682-2.62144 4.53550763-7.78109952 6.49118493-11.06830222 3.91135459-3.24559189-1.9556773-3.24559189-7.15694763 0-11.69245411s8.44686222-6.49118493 11.06830222-4.53550763z m27.29626396-27.2962651c2.62144 2.62144 1.28991459 8.44686222-2.62144 12.35821795-4.53550763 4.53550763-10.40253952 5.20127033-13.02397952 1.9556773-3.24559189-2.62144-1.9556773-8.44686222 2.62144-12.35821682 4.53550763-4.53550763 10.40253952-5.20127033 13.02397952-1.95567843z m37.0746516-16.26957141c1.28991459 3.91135459-2.62144 8.44686222-8.44686223 10.40253952-5.20127033 1.28991459-11.06830222-0.6657627-12.35821681-4.53550763s2.62144-8.44686222 8.44686222-9.73677682c5.20127033-1.9556773 11.06830222 0 12.35821682 3.9113546z m40.94439651-3.24559304c0 4.53550763-5.20127033 7.78109952-11.06830222 7.15694763-5.86703189 0-10.40253952-3.24559189-10.40253952-7.15694763 0-4.53550763 4.53550763-7.78109952 11.06830222-7.15694648 5.86703189 0 10.40253952 3.24559189 10.40253952 7.15694648z m37.69880349 6.49118493c-0.6657627 3.91135459-5.86703189 6.49118493-11.69245412 5.86703303-5.86703189-1.28991459-9.73677682-5.20127033-9.11262492-9.73677796 0.6657627-3.91135459 5.86703189-6.49118493 11.69245411-5.20126918s9.73677682 5.20127033 9.11262493 9.11262492z" horiz-adv-x="1024" />
<glyph glyph-name="disabled" unicode="&#59084;" d="M509.20496914 834c-245.9627332 0-447.20496914-201.24223594-447.20496914-447.20496914s201.24223594-447.20496914 447.20496914-447.20496914 447.20496914 201.24223594 447.20496914 447.20496914-201.24223594 447.20496914-447.20496914 447.20496914zM509.20496914-10.09937930000001C291.19254628-10.09937930000001 112.31055898 168.78260888 112.31055898 386.79503086c0 95.03105625 33.54037295 184.4720499 95.03105625 257.14285752l553.41614883-553.41614883C693.67701904 23.440993649999996 604.23602451-10.09937930000001 509.20496914-10.09937930000001z m296.27329131 134.16149092l-559.00621055 553.41614883C319.14285752 738.96894375 408.58385117 778.0993793 509.20496914 778.0993793c218.01242197 0 396.89441016-178.8819873 396.89441016-396.89441016 0-95.03105625-39.13043467-190.06211162-100.62111885-257.14285752z" horiz-adv-x="1024" />

Before

Width:  |  Height:  |  Size: 316 KiB

After

Width:  |  Height:  |  Size: 321 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -15,7 +15,7 @@
}
,Layui = function(){
this.v = '2.8.0-rc.15'; // Layui 版本号
this.v = '2.8.0-rc.16'; // Layui 版本号
}
//识别预先可能定义的指定全局对象

View File

@ -537,11 +537,14 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
}
};
//初始化列参数
// 初始化列参数
layui.each(options.cols, function(i1, item1){
if (i1) return true;
layui.each(item1, function(i2, item2){
initChildCols(i1, item1, i2, item2);
if (i1) {
delete item2.HAS_PARENT; // 去掉临时的计数排除标识,避免有新字段插入的时候重新计算被跳过导致下标出错的问题
} else {
initChildCols(i1, item1, i2, item2); // 只解析顶层节点由递归完成解析
}
});
});
@ -811,20 +814,13 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
if(that.autoColNums > 0 && patchNums >= -colNums && patchNums <= colNums){
var getEndTh = function(th){
var field, thRet;
th = th || that.layHeader.eq(0).find('thead th:last-child')
layui.each(th, function (thIndex, thElem) {
thElem = $(thElem);
if (!thElem.children('.'+ELEM_GROUP).length) { // 排除合并表头
field = thElem.attr('data-field');
thRet = thElem;
}
})
var field;
th = th || that.layHeader.eq(0).find('thead > tr:first-child > th:last-child')
field = th.data('field');
if(!field && th.prev()[0]){
return getEndTh(th.prev())
}
return thRet
return th;
};
var th = getEndTh();
var key = th.data('key');

View File

@ -5,70 +5,77 @@
layui.define(['laytpl', 'form'], function(exports){
"use strict";
var $ = layui.$
,laytpl = layui.laytpl
,form = layui.form
var $ = layui.$;
var laytpl = layui.laytpl;
var form = layui.form;
//模块名
,MOD_NAME = 'transfer'
// 模块名
var MOD_NAME = 'transfer';
//外部接口
,transfer = {
config: {}
,index: layui[MOD_NAME] ? (layui[MOD_NAME].index + 10000) : 0
// 外部接口
var transfer = {
config: {},
index: layui[MOD_NAME] ? (layui[MOD_NAME].index + 10000) : 0,
//设置全局项
,set: function(options){
// 设置全局项
set: function(options){
var that = this;
that.config = $.extend({}, that.config, options);
return that;
}
},
//事件
,on: function(events, callback){
// 事件
on: function(events, callback){
return layui.onevent.call(this, MOD_NAME, events, callback);
}
}
};
//操作当前实例
,thisModule = function(){
var that = this
,options = that.config
,id = options.id || that.index;
// 操作当前实例
var thisModule = function(){
var that = this;
var options = that.config;
var id = options.id || that.index;
thisModule.that[id] = that; //记录当前实例对象
thisModule.config[id] = options; //记录当前实例配置项
thisModule.that[id] = that; // 记录当前实例对象
thisModule.config[id] = options; // 记录当前实例配置项
return {
config: options
//重置实例
,reload: function(options){
config: options,
// 重置实例
reload: function(options){
that.reload.call(that, options);
}
//获取右侧数据
,getData: function(){
},
// 获取右侧数据
getData: function(){
return that.getData.call(that);
}
}
}
};
//获取当前实例配置项
,getThisModuleConfig = function(id){
// 获取当前实例配置项
var getThisModuleConfig = function(id){
var config = thisModule.config[id];
if(!config) hint.error('The ID option was not found in the '+ MOD_NAME +' instance');
return config || null;
}
return; config || null;
};
//字符常量
,ELEM = 'layui-transfer', HIDE = 'layui-hide', DISABLED = 'layui-btn-disabled', NONE = 'layui-none'
,ELEM_BOX = 'layui-transfer-box', ELEM_HEADER = 'layui-transfer-header', ELEM_SEARCH = 'layui-transfer-search', ELEM_ACTIVE = 'layui-transfer-active', ELEM_DATA = 'layui-transfer-data'
// 字符常量
var ELEM = 'layui-transfer';
var HIDE = 'layui-hide';
var DISABLED = 'layui-btn-disabled';
var NONE = 'layui-none';
var ELEM_BOX = 'layui-transfer-box';
var ELEM_HEADER = 'layui-transfer-header';
var ELEM_SEARCH = 'layui-transfer-search';
var ELEM_ACTIVE = 'layui-transfer-active';
var ELEM_DATA = 'layui-transfer-data';
//穿梭框模板
,TPL_BOX = function(obj){
// 穿梭框模板
var TPL_BOX = function(obj){
obj = obj || {};
return ['<div class="layui-transfer-box" data-index="'+ obj.index +'">'
,'<div class="layui-transfer-header">'
,'<input type="checkbox" name="'+ obj.checkAllName +'" lay-filter="layTransferCheckbox" lay-type="all" lay-skin="primary" title="{{ d.data.title['+ obj.index +'] || \'list'+ (obj.index + 1) +'\' }}">'
,'<input type="checkbox" name="'+ obj.checkAllName +'" lay-filter="layTransferCheckbox" lay-type="all" lay-skin="primary" title="{{= d.data.title['+ obj.index +'] || \'list'+ (obj.index + 1) +'\' }}">'
,'</div>'
,'{{# if(d.data.showSearch){ }}'
,'<div class="layui-transfer-search">'
@ -78,10 +85,10 @@ layui.define(['laytpl', 'form'], function(exports){
,'{{# } }}'
,'<ul class="layui-transfer-data"></ul>'
,'</div>'].join('');
}
};
//主模板
,TPL_MAIN = ['<div class="layui-transfer layui-form layui-border-box" lay-filter="LAY-transfer-{{ d.index }}">'
// 主模板
var TPL_MAIN = ['<div class="layui-transfer layui-form layui-border-box" lay-filter="LAY-transfer-{{= d.index }}">'
,TPL_BOX({
index: 0
,checkAllName: 'layTransferLeftCheckAll'
@ -98,10 +105,10 @@ layui.define(['laytpl', 'form'], function(exports){
index: 1
,checkAllName: 'layTransferRightCheckAll'
})
,'</div>'].join('')
,'</div>'].join('');
//构造器
,Class = function(options){
// 构造器
var Class = function(options){
var that = this;
that.index = ++transfer.index;
that.config = $.extend({}, that.config, transfer.config, options);
@ -110,16 +117,16 @@ layui.define(['laytpl', 'form'], function(exports){
//默认配置
Class.prototype.config = {
title: ['列表一', '列表二']
,width: 200
,height: 360
,data: [] //数据源
,value: [] //选中的数据
,showSearch: false //是否开启搜索
,id: '' //唯一索引,默认自增 index
,text: {
none: '无数据'
,searchNone: '无匹配数据'
title: ['列表一', '列表二'],
width: 200,
height: 360,
data: [], // 数据源
value: [], // 选中的数据
showSearch: false, // 是否开启搜索
id: '', // 唯一索引,默认自增 index
text: {
none: '无数据',
searchNone: '无匹配数据'
}
};
@ -132,11 +139,14 @@ layui.define(['laytpl', 'form'], function(exports){
//渲染
Class.prototype.render = function(){
var that = this
,options = that.config;
var that = this;
var options = that.config;
//解析模板
var thisElem = that.elem = $(laytpl(TPL_MAIN).render({
var thisElem = that.elem = $(laytpl(TPL_MAIN, {
open: '{{', // 标签符前缀
close: '}}' // 标签符后缀
}).render({
data: options
,index: that.index //索引
}));

View File

@ -201,9 +201,9 @@ layui.define(['table'], function (exports) {
flexIconOpen: '<i class="layui-icon layui-icon-triangle-d"></i>', // 打开时候的折叠图标
showIcon: true, // 是否显示图标(节点类型图标)
icon: '', // 节点图标,如果设置了这个属性或者数据中有这个字段信息,不管打开还是关闭都以这个图标的值为准
iconClose: '<i class="layui-icon layui-icon-file"></i>', // 打开时候的图标
iconOpen: '<i class="layui-icon layui-icon-layer"></i>', // 关闭时候的图标
iconLeaf: '<i class="layui-icon layui-icon-star"></i>', // 叶子节点的图标
iconClose: '<i class="layui-icon layui-icon-folder-open"></i>', // 打开时候的图标
iconOpen: '<i class="layui-icon layui-icon-folder"></i>', // 关闭时候的图标
iconLeaf: '<i class="layui-icon layui-icon-leaf"></i>', // 叶子节点的图标
showFlexIconIfNotParent: false, // 当节点不是父节点的时候是否显示折叠图标
dblClickExpand: true, // 双击节点时,是否自动展开父节点的标识
},
@ -352,6 +352,7 @@ layui.define(['table'], function (exports) {
treeTable.getNodeDataByIndex = function (id, index) {
var that = getThisTable(id);
if(!that) return;
return that.getNodeDataByIndex(index, true);
}
@ -604,23 +605,32 @@ layui.define(['table'], function (exports) {
return retValue;
}
treeTable.expandNode = function (id, index, expandFlag, sonSign, callbackFlag) {
treeTable.expandNode = function (id, opts) {
var that = getThisTable(id);
if(!that) return;
opts = opts || {};
var index = opts.index;
var expandFlag = opts.expandFlag;
var sonSign = opts.sonSign;
var callbackFlag = opts.callbackFlag;
var options = that.getOptions();
var tableViewElem = options.elem.next();
return expandNode({trElem: tableViewElem.find('tr[lay-data-index="' + index + '"]').first()}, expandFlag, sonSign, null, callbackFlag)
}
};
// 目前还有性能问题特别是在data模式需要优化暂时不能使用 todo
treeTable.expandAll = function (id, expandFlag) {
if (layui.type(expandFlag) !== 'boolean') {
return hint.error('expandAll的展开状态参数只接收true/false')
}
// 调用expandNode一个个去处理会有性能问题重新实现该方法
// layui.each(table.cache[id], function (i1, item1) {
// treeTable.expandNode(id, item1['LAY_DATA_INDEX'], expandFlag, true);
// })
var that = getThisTable(id);
if(!that) return;
var options = that.getOptions();
var treeOptions = options.tree;
var tableView = options.elem.next();
@ -638,8 +648,8 @@ layui.define(['table'], function (exports) {
treeTable.resize();
} else {
console.log('目前暂时不支持展开全部');
return;
return hint.error('暂不支持展开全部');
// 展开所有
if (treeOptions.async.enable) {
// 存在异步加载
@ -773,6 +783,8 @@ layui.define(['table'], function (exports) {
* */
treeTable.formatNumber = function (id) {
var that = getThisTable(id);
if(!that) return;
var options = that.getOptions();
var tableViewElem = options.elem.next();
@ -866,6 +878,8 @@ layui.define(['table'], function (exports) {
treeTable.sort = function (id) {
var that = getThisTable(id);
if(!that) return;
var options = that.getOptions();
var initSort = options.initSort;
@ -908,13 +922,18 @@ layui.define(['table'], function (exports) {
// 处理setRowChecked
obj.setRowChecked = function (checked) {
treeTable.checkNode(tableId, trData, checked);
treeTable.checkNode(tableId, {
node: trData,
checked: checked
});
}
}
// 更新数据
treeTable.updateNode = function (id, index, newNode) {
var that = getThisTable(id);
if(!that) return;
var options = that.getOptions();
var treeOptions = options.tree;
var tableView = options.elem.next();
@ -942,6 +961,8 @@ layui.define(['table'], function (exports) {
// 删除数据
treeTable.removeNode = function (id, node) {
var that = getThisTable(id);
if(!that) return;
var options = that.getOptions();
var treeOptions = options.tree;
var tableView = options.elem.next();
@ -984,12 +1005,21 @@ layui.define(['table'], function (exports) {
* @param {Boolean} focus 新增的节点单个或者多个
* @return {Array} 新增的节点
* */
treeTable.addNodes = function (id, parentIndex, index, newNodes, focus) {
treeTable.addNodes = function (id, opts) {
var that = getThisTable(id);
if(!that) return;
var options = that.getOptions();
var treeOptions = options.tree;
var tableViewElem = options.elem.next();
opts = opts || {};
var parentIndex = opts.parentIndex;
var index = opts.index;
var newNodes = opts.newNodes;
var focus = opts.focus;
parentIndex = layui.type(parentIndex) === 'number' ? parentIndex.toString() : parentIndex;
var parentNode = parentIndex ? that.getNodeDataByIndex(parentIndex) : null;
index = layui.type(index) === 'number' ? index : -1;
@ -1108,8 +1138,10 @@ layui.define(['table'], function (exports) {
return newNodes;
}
// 获取表格选中状态
treeTable.checkStatus = function (id) {
var that = getThisTable(id);
if(!that) return;
// 需要区分单双选
var tableData = treeTable.getData(id, true);
@ -1398,11 +1430,19 @@ layui.define(['table'], function (exports) {
* @param {Boolean} checked 选中或取消
* @param {Boolean} [callbackFlag] 是否触发事件回调
* */
treeTable.checkNode = function (id, node, checked, callbackFlag) {
treeTable.checkNode = function (id, opts) {
var that = getThisTable(id);
if(!that) return;
var options = that.getOptions();
var tableView = options.elem.next();
opts = opts || {};
var node = opts.node;
var checked = opts.checked;
var callbackFlag = opts.callbackFlag;
var dataIndex = layui.type(node) === 'string' ? node : node[LAY_DATA_INDEX];
// 判断是否在当前页面中
var nodeData = that.getNodeDataByIndex(dataIndex);
@ -1414,7 +1454,10 @@ layui.define(['table'], function (exports) {
var trElem = tableView.find('tr[lay-data-index="' + dataIndex + '"]');
if (!trElem.length) {
// 如果还没有展开没有渲染的要先渲染出来
treeTable.expandNode(id, nodeData[LAY_PARENT_INDEX], true);
treeTable.expandNode(id, {
index: nodeData[LAY_PARENT_INDEX],
expandFlag: true
});
trElem = tableView.find('tr[lay-data-index="' + dataIndex + '"]');
}
checkNode.call(that, trElem, checked, callbackFlag);
@ -1422,6 +1465,8 @@ layui.define(['table'], function (exports) {
treeTable.checkAllNodes = function (id, checked) {
var that = getThisTable(id);
if(!that) return;
var options = that.getOptions();
var tableView = options.elem.next();
@ -1443,14 +1488,14 @@ layui.define(['table'], function (exports) {
return simpleData ? getThisTable(id).treeToFlat(tableData) : tableData;
}
//记录所有实例
thisTreeTable.that = {}; //记录所有实例对象
// thisTreeTable.config = {}; //记录所有实例配置项
// 记录所有实例
thisTreeTable.that = {}; // 记录所有实例对象
// thisTreeTable.config = {}; // 记录所有实例配置项
// 重载
treeTable.reload = function (id, options, deep, type) {
deep = deep !== false; // 默认采用深拷贝
var config = getThisTableConfig(id); //获取当前实例配置项
var config = getThisTableConfig(id); // 获取当前实例配置项
if (!config) return;
var that = getThisTable(id);