


So realisieren Sie die automatische Zusammenführung von Laui-Datentabellen (Code)
Der Inhalt dieses Artikels befasst sich mit der Realisierung der automatischen Zusammenführung (Code) von Laui-Datentabellen. Ich hoffe, dass er für Sie hilfreich ist.
Anforderungsbeschreibung:
In der Datentabelle gibt es zum Anzeigen von Daten gemäß einer bestimmten Kategorie mehrere unterteilte verschachtelte Unterteilungen unter der Kategorie, z. B. Spitznamen für Provinzen und Städte, Provinzen. Es gibt mehrere Städte darunter, mehrere Bezirke unterhalb der Stadt und Spitznamen unter den Bezirken. Eine zeilenübergreifende Zusammenführung ist erforderlich, und die Betriebsschaltflächen befinden sich in Kategorien (d. h. die Betriebsschaltflächen müssen nach Kategorien zusammengeführt werden).
Anforderungsanalyse:
Mit Ausnahme der Operationsspalte wird die linke Spalte als Grundeinheit für die zeilenübergreifende Zusammenführung verwendet. Die aktuelle Anzahl der zusammengeführten Zellen
Die Operationsspalte kann eine beliebige Spalte als Basiseinheit auswählen (dies muss verbessert werden). Originalseite:var execRowspan = function(fieldName,index,flag){ // 1为不冻结的情况,左侧列为冻结的情况 let fixedNode = index=="1"?$(".layui-table-body")[index - 1]:(index=="3"?$(".layui-table-fixed-r"):$(".layui-table-fixed-l")); // 左侧导航栏不冻结的情况 let child = $(fixedNode).find("td"); let childFilterArr = []; // 获取data-field属性为fieldName的td for(let i = 0; i < child.length; i++){ if(child[i].getAttribute("data-field") == fieldName){ childFilterArr.push(child[i]); } } // 获取td的个数和种类 let childFilterTextObj = {}; for(let i = 0; i < childFilterArr.length; i++){ let childText = flag?childFilterArr[i].innerHTML:childFilterArr[i].textContent; if(childFilterTextObj[childText] == undefined){ childFilterTextObj[childText] = 1; }else{ let num = childFilterTextObj[childText]; childFilterTextObj[childText] = num*1 + 1; } } let canRowspan = true; let maxNum = 9999; for(let i = 0; i < childFilterArr.length; i++){ maxNum = $(childFilterArr[i]).prev().attr("rowspan")&&fieldName!="8"?$(childFilterArr[i]).prev().attr("rowspan"):maxNum; let key = flag?childFilterArr[i].innerHTML:childFilterArr[i].textContent; let tdNum = childFilterTextObj[key]; let curNum = maxNum<tdNum?maxNum:tdNum; let nextKey; for(let j =1;j<curNum&&(i+j<childFilterArr.length);j++){ nextKey = flag?childFilterArr[i+j].innerHTML:childFilterArr[i+j].textContent; if(key!=nextKey&&curNum>1){ canRowspan = true; curNum = j; } } if(canRowspan){ childFilterArr[i].setAttribute("rowspan",curNum); if($(childFilterArr[i]).find("p.rowspan").length>0){//设置td内的p.rowspan高度适应合并后的高度 $(childFilterArr[i]).find("p.rowspan").parent("p.layui-table-cell").addClass("rowspanParent"); $(childFilterArr[i]).find("p.layui-table-cell")[0].style.height= curNum*38-10 +"px"; } canRowspan = false; }else{ childFilterArr[i].style.display = "none"; } if(maxNum){ maxNum--; } if(--childFilterTextObj[key]==0||maxNum==0||(nextKey!=undefined&&key!=nextKey)){ canRowspan = true; } } } //合并数据表格行 var layuiRowspan = function(fieldNameTmp,index,flag){ let fieldName = []; if(typeof fieldNameTmp == "string"){ fieldName.push(fieldNameTmp); }else{ fieldName = fieldName.concat(fieldNameTmp); } for(let i = 0;i<fieldName.length;i++){ execRowspan(fieldName[i],index,flag); } }
<p class="box"> <table class="layui-table" id="test" lay-data="{page:true,limit:50}" lay-filter="test"> <thead> <tr> <th lay-data="{field:'province', width:200}">省</th> <th lay-data="{field:'city', width:200}">市</th> <th lay-data="{field:'zone', width:200}">区</th> <th lay-data="{field:'username', width:200}">昵称</th> <th lay-data="{field:'joinTime', width:150}">加入时间</th> <th lay-data="{field:'sign', minWidth: 180}">签名</th> <th lay-data="{field:'8',align:'right'}">基本操作</th> </tr> </thead> <tbody> <tr> <td>浙江</td> <td>杭州</td> <td>西湖区</td> <td>贤心1</td> <td>2016-11-28</td> <td>人生就像是一场修行 A</td> <td> <p class="layui-btn-group" style="overflow:visible;"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">按钮1</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">按钮2</a> </p> </td> </tr> <tr> <td>浙江</td> <td>这个</td> <td>西湖区</td> <td>贤心2</td> <td>2016-11-29</td> <td>人生就像是一场修行 B</td> <td> <p class="layui-btn-group" style="overflow:visible;"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">按钮1</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">按钮2</a> </p> </td> </tr> <tr> <td>浙江</td> <td>丽水</td> <td>莲都区</td> <td>贤心3</td> <td>2016-11-30</td> <td>人生就像是一场修行 C</td> <td> <p class="layui-btn-group" style="overflow:visible;"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">按钮1</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">按钮2</a> </p> </td> </tr> <tr> <td>浙江</td> <td>丽水</td> <td>莲都区</td> <td>贤心3</td> <td>2016-19-30</td> <td>人生就像是一场修行 C</td> <td> <p class="layui-btn-group" style="overflow:visible;"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">按钮1</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">按钮2</a> </p> </td> </tr> <tr> <td>浙江</td> <td>位置</td> <td>莲都区</td> <td>贤心3</td> <td>2016-11-30</td> <td>人生就像是一场修行 C</td> <td> <p class="layui-btn-group" style="overflow:visible;"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">按钮1</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">按钮2</a> </p> </td> </tr> <tr> <td>湖北</td> <td>位置</td> <td>莲都区</td> <td>贤心3</td> <td>2016-11-30</td> <td>人生就像是一场修行 C</td> <td> <p class="layui-btn-group" style="overflow:visible;"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">按钮1</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">按钮2</a> </p> </td> </tr> <tr> <td>湖北</td> <td>这个</td> <td>1区</td> <td>贤心3</td> <td>2016-11-30</td> <td>人生就像是一场修行 C</td> <td> <p class="layui-btn-group" style="overflow:visible;"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">按钮1</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">按钮2</a> </p> </td> </tr> <tr> <td>湖北</td> <td>这个</td> <td>1区</td> <td>贤心3</td> <td>2016-11-30</td> <td>人生就像是一场修行 C</td> <td> <p class="layui-btn-group" style="overflow:visible;"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">按钮1</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">按钮2</a> </p> </td> </tr> <tr> <td>湖北</td> <td>这个</td> <td>1区</td> <td>贤心3</td> <td>2016-11-30</td> <td>人生就像是一场修行 B</td> <td> <p class="layui-btn-group" style="overflow:visible;"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">按钮1</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">按钮2</a> </p> </td> </tr> <tr> <td>湖北</td> <td>这个</td> <td>1区</td> <td>贤心</td> <td>2016-11-30</td> <td>人生就像是一场修行 B</td> <td> <p class="layui-btn-group" style="overflow:visible;"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">按钮1</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">按钮2</a> </p> </td> </tr> <tr> <td>湖北</td> <td>这个</td> <td>1区</td> <td>贤心</td> <td>2016-11-30</td> <td>人生就像是一场修行 C</td> <td> <p class="layui-btn-group" style="overflow:visible;"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">按钮1</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">按钮2</a> </p> </td> </tr> <tr> <td>湖北</td> <td>这个</td> <td>1区</td> <td>贤心</td> <td>2016-11-30</td> <td>人生就像是一场修行 D</td> <td> <p class="layui-btn-group" style="overflow:visible;"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">按钮1</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">按钮2</a> </p> </td> </tr> </tbody> </table> </p>
layui.use('table', function(){ var table = layui.table; table.init('test',{done:function(res,curr,count){ layuiRowspan('province',1); layuiRowspan(['city','zone','username','joinTime','sign'],1);//支持数组 layuiRowspan("8",1,true); } });})
layui zur Implementierung dynamischer und statischer Datentabellen-Paging
Das obige ist der detaillierte Inhalt vonSo realisieren Sie die automatische Zusammenführung von Laui-Datentabellen (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Layui bietet eine Vielzahl von Methoden zum Abrufen von Formulardaten, einschließlich des direkten Abrufens aller Felddaten des Formulars, des Abrufens des Werts eines einzelnen Formularelements, der Verwendung der formAPI.getVal()-Methode zum Abrufen des angegebenen Feldwerts, der Serialisierung der Formulardaten usw Wenn Sie es als AJAX-Anforderungsparameter verwenden und das Formularübermittlungsereignis abhören, werden Daten abgerufen.

Schritte zur Sprungeinstellung der Layui-Anmeldeseite: Sprungcode hinzufügen: Fügen Sie im Anmeldeformular ein Beurteilungsereignis hinzu, klicken Sie auf die Schaltfläche „Senden“ und springen Sie nach erfolgreicher Anmeldung über window.location.href zur angegebenen Seite. Ändern Sie die Formularkonfiguration: Fügen Sie dem Formularelement von „lay-filter="login" ein verstecktes Eingabefeld mit dem Namen „redirect“ und dem Wert der Zielseitenadresse hinzu.

Ein adaptives Layout kann mithilfe der Responsive-Layout-Funktion des Laui-Frameworks erreicht werden. Die Schritte umfassen: Referenzieren des Laui-Frameworks. Definieren Sie einen adaptiven Layout-Container und legen Sie die Klasse „layui-container“ fest. Verwenden Sie reaktionsfähige Haltepunkte (xs/sm/md/lg), um Elemente unter bestimmten Haltepunkten auszublenden. Geben Sie die Elementbreite mithilfe des Rastersystems (layui-col-) an. Abstand über Offset erzeugen (layui-offset-). Verwenden Sie reaktionsfähige Dienstprogramme (layui-invisible/show/block/inline), um die Sichtbarkeit von Elementen und deren Darstellung zu steuern.

Führen Sie zum Ausführen von Laui die folgenden Schritte aus: 1. Laui-Skript importieren; 3. Laui-Komponenten verwenden; 5. Skriptkompatibilität sicherstellen; Mit diesen Schritten können Sie Webanwendungen mit der Leistungsfähigkeit von Laui erstellen.

Frage: Was ist besser, Laui oder ElementUI? Antwort: Das hängt von den Projektanforderungen ab. Layui ist umfassender, anpassbarer und eignet sich für große Projekte, während ElementUI leichter, schöner und benutzerfreundlicher ist. Die spezifischen Gründe für die Auswahl sind wie folgt: Wählen Sie Laui: Bietet ein breiteres Spektrum an Funktionen und Modulen, die ein hohes Maß an Anpassung des Erscheinungsbilds und Verhaltens der Komponenten ermöglichen. Geeignet für Großprojekte, die ein breites Spektrum an Funktionen und Skalierbarkeit erfordern ElementUI: Kleinere Größe und schnellere Ladegeschwindigkeit. Komponenten folgen den Prinzipien des Materialdesigns, bieten eine große Anzahl vorgefertigter Komponenten und reduzieren so die Entwicklungskomplexität und -zeit

Der Unterschied zwischen Laui und Vue spiegelt sich hauptsächlich in Funktionen und Anliegen wider. Layui konzentriert sich auf die schnelle Entwicklung von UI-Elementen und stellt vorgefertigte Komponenten zur Vereinfachung der Seitenkonstruktion bereit. Vue ist ein Full-Stack-Framework, das sich auf Datenbindung, Komponentenentwicklung und Statusverwaltung konzentriert und sich besser für die Erstellung komplexer Anwendungen eignet. Layui ist leicht zu erlernen und eignet sich zum schnellen Erstellen von Seiten; Vue hat eine steile Lernkurve, hilft aber beim Erstellen skalierbarer und leicht zu wartender Anwendungen. Abhängig von den Projektanforderungen und dem Kenntnisstand des Entwicklers kann das passende Framework ausgewählt werden.

Laui und Vue sind Front-End-Frameworks. Laui ist eine leichtgewichtige Bibliothek, die UI-Komponenten und -Tools bereitstellt. Vue ist ein umfassendes Framework, das UI-Komponenten, Statusverwaltung, Datenbindung, Routing und andere Funktionen bereitstellt. Laui basiert auf einer modularen Architektur und Vue basiert auf einer Komponentenarchitektur. Laui hat ein kleineres Ökosystem, Vue hat ein großes und aktives Ökosystem. Die Lernkurve von Laui ist niedrig und die Lernkurve von Vue ist steil. Laui eignet sich für kleine Projekte und die schnelle Entwicklung von UI-Komponenten, während Vue für große Projekte und Szenarien geeignet ist, die umfangreiche Funktionen erfordern.

Das Laui-Framework ist ein JavaScript-basiertes Front-End-Framework, das eine Reihe benutzerfreundlicher UI-Komponenten und Tools bereitstellt, um Entwicklern beim schnellen Erstellen reaktionsfähiger Webanwendungen zu helfen. Zu seinen Funktionen gehören: modular, leichtgewichtig, reaktionsschnell und mit vollständiger Dokumentation und Community-Unterstützung. Laui wird häufig bei der Entwicklung von Management-Backend-Systemen, E-Commerce-Websites und mobilen Anwendungen eingesetzt. Die Vorteile sind eine schnelle Inbetriebnahme, eine verbesserte Effizienz und eine einfache Wartung. Die Nachteile sind eine schlechte Anpassung und langsame Technologieaktualisierungen.
