前端根据后端信息动态拼接html
1.表结构
sys_name varchar 列名
sys_title varchar 列的中文名
sys_group varchar 配置分组
sys_type varchar 文本框的类型
sys_value text 列的值
sys_options text 列的可选值
sys_tips varchar 该条记录的提示
2.html写法
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('系统配置列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="nav nav-tabs" id="summaryContent_li" style="padding: 0px 15px;"></div>
<div class="tab-content" id="summaryContent_div" style="padding: 0px 15px;"></div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "shop/adminConfigSet";
initLoadli();
$('#myTab a').click(function (e) {
e.preventDefault();
$(this).tab('show');
})
var checkboxId='';
//通过点击tab来获取对应的配置分组信息
$(document).on('click', '.nav-tabs1', function() {
$(this).addClass('active').siblings().removeClass('active');
var _id = $(this).attr('data-id');
$('.tabs-contents').find('#'+_id).addClass('active').siblings().removeClass('active');
if(_id!=null&&_id.length>0){
initLoad(_id);
}else{
initLoad("base");
}
})
//循环出对应tab
function initLoadli() {
$.ajax({
type:"post",
dataType:"text",
data:{"group":null},
url:prefix+'/querySysGroup',//目标地址
success:function(data){
if(data.length>0){
var dictType=data.split(";");
var tableLiContent = "";
tableLiContent +='<ul class="nav nav-tabs" id="myTab">';
for (var i=0;i<dictType.length;i++) {
var typeDic=dictType[i].split(':');
if(tableLiContent!=""){
tableLiContent +='<li class="nav-tabs1" data-id="'+typeDic[1]+'"><a href="#'+typeDic[1]+'">'+typeDic[0]+'</a></li>';
}else{
tableLiContent +='<li class="active nav-tabs1" data-id="'+typeDic[1]+'"><a href="#'+typeDic[1]+'">'+typeDic[0]+'</a></li>';
}
}
tableLiContent +='</ul>';
$("#summaryContent_li").html(tableLiContent);
initLoad("base");
}
},
})
}
//查询出对应配置分组下面的数据,通过判断获取到值的类型以及值来拼接出html代码
function initLoad(str) {
var base=str;
$.ajax({
type:"post",
dataType:"text",
data:{"group":base},
url:prefix+'/listAdminConfig',//目标地址
success:function(data){
var listData=$.parseJSON(data);//解析json字符串
if(listData.length>0){
var tableContent = "";
$.each(listData,function(idx,item){ //循环对象取值
tableContent +='<div class="form-group">';
tableContent +='<label class="col-sm-3 control-label">'+item.title+':</label>';
if("image"==item.type){
var url=item.name;
tableContent +='<div class="col-sm-8">';
tableContent +='<img style="width:120px;height:120px" src="'+item.value+'" id ="'+"img"+item.name+'">';
tableContent +='<input name="'+item.name+'" class="form-control" type="file" onchange="uploadFile(\''+url+'\',\''+item.group+'\')">';
tableContent +='<input id="'+item.name+'" name="'+item.name+'" class="form-control" type="hidden">';
tableContent +='<div class="help-block">'+item.tips+'</div>';
tableContent +='</div>';
}else if ("textarea"==item.type || "ueditor"==item.type || "array"==item.type){
tableContent +='<div class="col-sm-8">';
tableContent +='<textarea name="'+item.name+'" style="margin: 0px; width: 571px; height: 139px;">'+item.value+'</textarea>';
tableContent +='<div class="help-block">'+item.tips+'</div>';
tableContent +='</div>';
}else if ("radio"==item.type){
var arr = item.options.split(';');
var arr1='';
var temp = '';
for (var i=0;i<arr.length;i++) {
arr1=arr[i].split(':');
var cheType=item.value.indexOf(arr1[0])>=0?true:false;
var itemName=item.name;
if (cheType){
temp += '<input type="radio" id="'+item.name+arr1[0]+'" name="'+item.name+1+'" th:value="'+item.value+'" checked="'+cheType+'" onclick="getradio(\''+itemName+'\',\''+arr1[0]+'\')">'+arr1[1]+'</input>';
}else{
temp += '<input type="radio" id="'+item.name+arr1[0]+'" name="'+item.name+1+'" th:value="'+item.value+'" onclick="getradio(\''+itemName+'\',\''+arr1[0]+'\')">'+arr1[1]+'</input>';
}
}
tableContent +='<div class="col-sm-8">';
tableContent +='<div class="radio-box" >';
tableContent +='<input type="hidden" name="'+item.name+'" id="'+item.name+'">';
tableContent +=temp;
tableContent +='</div>';
tableContent +='<div class="help-block">'+item.tips+'</div>';
tableContent +='</div>';
}else if ("checkbox"==item.type){
var arr = item.options.split(';');
var arr1='';
var temp = '';
for (var i=0;i<arr.length;i++) {
arr1=arr[i].split(':');
var cheType=item.value.indexOf(arr1[0])>=0?true:false;
var itemName=item.name;
if (cheType){
temp += '<input type="checkbox" id="'+item.name+arr1[0]+'" name="'+item.name+1+'" th:value="'+item.value+'" checked="'+cheType+'" onclick="getItemName(\''+itemName+'\',\''+arr1[0]+'\',\''+item.options+'\',\''+i+'\')">'+arr1[1]+'</input>';
}else{
temp += '<input type="checkbox" id="'+item.name+arr1[0]+'" name="'+item.name+1+'" th:value="'+item.value+'" onclick="getItemName(\''+itemName+'\',\''+arr1[0]+'\',\''+item.options+'\',\''+i+'\')">'+arr1[1]+'</input>';
}
}
tableContent +='<div class="col-sm-8">';
tableContent +='<div class="radio-box" >';
tableContent +='<input type="hidden" name="'+item.name+'" id="'+item.name+'">';
tableContent +=temp;
tableContent +='</div>';
tableContent +='<div class="help-block">'+item.tips+'</div>';
tableContent +='</div>';
}else if ("switch"==item.type){
tableContent +='<div class="col-sm-8">';
tableContent +='<input name="'+item.name+'" value="'+item.value+'" class="form-control" type="'+item.type+'">';
tableContent +='<div class="help-block">'+item.tips+'</div>';
tableContent +='</div>';
}else{
tableContent +='<div class="col-sm-8">';
tableContent +='<input name="'+item.name+'" value="'+item.value+'" class="form-control" type="'+item.type+'">';
tableContent +='<div class="help-block">'+item.tips+'</div>';
tableContent +='</div>';
}
tableContent +='</div>';
});
var tableDivContent = "";
tableDivContent = '<div class="tab-content">';
//设置tab中的提交
if(base=="base"){
tableDivContent +='<div class="tab-pane active" id="'+base+'" value="'+base+'">';
tableDivContent +='<form class="form-horizontal m" id="form-adminConfig-add-'+base+'">';
tableDivContent += tableContent;
tableDivContent +='<div style="text-align:center; ">';
tableDivContent +='<button type="button" onclick="updateSubmit(\''+base+'\')">提交</button>';
tableDivContent +='</div>';
tableDivContent +='</form>';
tableDivContent +='</div>';
}else{
tableDivContent +='<div class="tab-pane active" id="'+base+'" value="'+base+'">';
tableDivContent +='<form class="form-horizontal m" id="form-adminConfig-add-'+base+'">';
tableDivContent += tableContent;
tableDivContent +='<div style="text-align:center; ">';
tableDivContent +='<button type="button" onclick="updateSubmit(\''+base+'\')">提交</button>';
tableDivContent +='</div>';
tableDivContent +='</form>';
tableDivContent +='</div>';
}
tableDivContent +='</div>'
$("#summaryContent_div").html(tableDivContent);
}
},
})
}
//
function updateSubmit(str) {
var formStr=$('#form-adminConfig-add-'+str).serialize();
formStr = decodeURIComponent(formStr,true);//对serialize后的参数值进行一次解码,防止中文乱码
$.ajax({
type:"post",
dataType:"text",
url:prefix+'/updateAdminConfig',//目标地址
data:formStr,
async:true,
success:function(data) {
if(data==1){
initLoad(str)
$.modal.alert("提交成功");
}else{
$.modal.alert("提交失败");
}
}
});
}
//多选框
function getItemName(itemName,str,options,itemNameId) {
checkboxId='';
var strName=document.getElementsByName(itemName+"1");
if(options.length>2){
var strOptions=options.split(";");
for(i=0;i<strName.length;i++){
if(strName[i].checked==true){
if(strOptions[i].length>0){
if(checkboxId!=''){
checkboxId+=","+strOptions[i].split(":")[0];
}else{
checkboxId=strOptions[i].split(":")[0];
}
}
}
}
document.getElementById(itemName).value=checkboxId;
}
}
//单选框
function getradio(itemName,str) {
document.getElementById(itemName).value=str;
}
function uploadFile(filePath,itemGroup) {
var fordata="form-adminConfig-add"+itemGroup;
var formData =new FormData($("#fordata")[0]);
if ($("input[name='" + filePath + "']")[0].files[0] == null) {
$.modal.alertWarning("请先选择文件路径");
return false;
}
formData.append('file', $("input[name='" + filePath + "']")[0].files[0]);
$.ajax({
url: ctx + "common/upload",
type: 'post',
cache: false,
data: formData,
processData: false,
contentType: false,
dataType: "json",
success: function (result) {
if (result.code == web_status.SUCCESS) {
document.getElementById(filePath).value=result.id;
document.getElementById("img"+filePath).value=result.url;
$("#url img").attr("src",result.fileName)
$("#pic").val(result.fileName)
}
$("#url").val(result.msg);
}
});
}
</script>
</body>
版权声明:本文为qq_35228658原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。