// 原始数据 var formData = [ { "id": 1, "name": "site_name", "group": "basic", "title": "站点名称", "tip": "请填写站点名称", "type": "string", "value": "YFCMF-TP6", "content": "", "rule": "required", "extend": "", "setting": "" }, { "id": 2, "name": "beian", "group": "basic", "title": "备案号", "tip": "", "type": "string", "value": "", "content": "", "rule": "", "extend": "", "setting": "" }, { "id": 3, "name": "site_description", "group": "basic", "title": "站点描述", "tip": "请填写站点描述", "type": "textarea", "value": "这是一个基于TP6的CMS系统", "content": "", "rule": "", "extend": "", "setting": "" }, { "id": 4, "name": "site_status", "group": "advanced", "title": "站点状态", "tip": "选择站点是否开启", "type": "select", "value": "1", "content": "开启,关闭,维护中", "rule": "required", "extend": "", "setting": "" }, { "id": 5, "name": "allow_comment", "group": "advanced", "title": "允许评论", "tip": "是否允许访客评论", "type": "radio", "value": "1", "content": "是,否", "rule": "", "extend": "", "setting": "" }, { "id": 6, "name": "features", "group": "advanced", "title": "功能模块", "tip": "选择启用的功能模块", "type": "checkbox", "value": "文章,评论", "content": "文章,评论,用户,统计", "rule": "", "extend": "", "setting": "" }, { "id": 7, "name": "max_upload_size", "group": "upload", "title": "最大上传大小", "tip": "单位:MB", "type": "number", "value": "10", "content": "", "rule": "required", "extend": "", "setting": "" }, { "id": 8, "name": "upload_date", "group": "upload", "title": "上传日期限制", "tip": "选择可上传文件的日期范围", "type": "date", "value": "2024-01-01", "content": "", "rule": "", "extend": "", "setting": "" } ]; // 处理数据:按group分组 function processData(data) { var groups = {}; var groupNames = []; // 收集所有分组 data.forEach(function (item) { if (!groups[item.group]) { groups[item.group] = []; groupNames.push(item.group); } groups[item.group].push(item); }); return { groups: groupNames, data: groups }; } // 初始化Layui layui.define(['laytpl', 'form', 'element', 'laydate', 'http'], function (exports) { var laytpl = layui.laytpl; var form = layui.form; var element = layui.element; var laydate = layui.laydate; var http = layui.http; http.get('index').then(respon => { let respona = processData(respon.data); var getTpl = document.getElementById('formTpl').innerHTML; var view = document.getElementById('formView'); laytpl(getTpl).render(respona, function (html) { view.innerHTML = html; // 重新渲染表单元素 form.render(); element.render('tab'); // 初始化日期选择器 formData.forEach(function (item) { if (item.type === 'date') { laydate.render({ elem: '#date-' + item.id, format: 'yyyy-MM-dd' }); } }); // 监听表单提交 form.on('submit', function (data) { console.log('表单提交数据:', data.field); http.post('update', data.field).then(respon => { console.log(respon) }); layer.msg('表单提交成功!已输出到控制台'); return false; }); }); }) // 处理数据 var processedData = processData(formData); // 渲染模板 exports('configure', {}); });