<!DOCTYPE html>
|
<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
|
<head>
|
<meta charset="utf-8">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="renderer" content="webkit">
|
<meta http-equiv="Cache-Control" content="no-siteapp" />
|
<title>主页</title>
|
<link rel="shortcut icon" th:href="@{/images/favicon.ico}">
|
<!--[if lt IE 8]>
|
<meta http-equiv="refresh" content="0;ie.html" />
|
<![endif]-->
|
<link th:href="@{/plugin/bootstrap-fileinput/css/fileinput.css}"
|
media="all" rel="stylesheet" type="text/css"/>
|
<!-- 本框架基本脚本和样式 -->
|
<script type="text/javascript"
|
th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
|
<script type="text/javascript"
|
th:src="@{/js/systools/MBase.js}"></script>
|
<!-- 界面单独引入的其他样式和脚本 -->
|
<link rel="stylesheet"
|
th:href="@{/plugin/zTree/zTreeStyle/zTreeStyle.css}"
|
type="text/css">
|
<script type="text/javascript"
|
th:src="@{/plugin/zTree/jquery.ztree.core-3.5.min.js}"></script>
|
<script type="text/javascript"
|
th:src="@{/plugin/bootstrap-3.3.5/js/bootstrapSwitch.js}"></script>
|
<link rel="stylesheet" th:href="@{/plugin/bootstrap-3.3.5/css/bootstrapSwitch.css}">
|
<script type="text/javascript"
|
th:src="@{/js/function/public.js}"></script>
|
<script th:src="@{/plugin/bootstrap-fileinput/js/fileinput.js}"
|
type="text/javascript"></script>
|
<script th:src="@{/plugin/bootstrap-fileinput/js/locales/zh.js}"
|
type="text/javascript"></script>
|
<style type="text/css">
|
table tr td {
|
border: none !important;
|
}
|
|
table tr th {
|
border: none !important;
|
}
|
|
.inline{
|
display: INLINE;
|
width: 50%;
|
}
|
</style>
|
</head>
|
<body class="gray-bg">
|
<div class="wrapper wrapper-content ">
|
<div class="row">
|
<div class="col-sm-3">
|
<div class="ibox float-e-margins">
|
<div class="ibox-title">
|
<h5>属性列表</h5>
|
<div class="pull-right ">
|
<a class="f-r text-success " onclick="openForm()" matrix:btn="shopProductAttribute-addAttr"><i
|
class="fa fa-plus c-success"></i> 添加属性</a>
|
</div>
|
</div>
|
<div id="treeDemo" class="ibox-content ztree"
|
style="min-height: 400px"></div>
|
</div>
|
</div>
|
<div class="col-sm-9">
|
<div class="ibox float-e-margins">
|
<div class="ibox-title">
|
<h5>编辑属性</h5>
|
<div class="ibox-tools"></div>
|
</div>
|
<div class="ibox-content" style="min-height: 400px">
|
<form class="form-horizontal dataform " style="display: none"
|
id="dataform">
|
<input autocomplete="off" type="hidden" name="attrId" id="attrId">
|
<div class="form-group">
|
<label class="col-sm-2 control-label">父级属性</label>
|
<div class="col-sm-10">
|
<select class="form-control select2" size="1" name="parentId" style="width: 100%"
|
id="parentId">
|
</select>
|
</div>
|
</div>
|
|
<div class="form-group">
|
<label class="col-sm-2 control-label">属性名称
|
<span class="text-danger">*</span>
|
</label>
|
<div class="col-sm-10">
|
<input autocomplete="off" name="attrName" id="attrName" type="text"
|
dataType="*" class="form-control" value="" nullmsg="属性名称不能为空">
|
</div>
|
</div>
|
<div class="form-group">
|
<label class="col-sm-2 control-label">编码属性
|
<span class="text-danger">*</span>
|
</label>
|
<div class="col-sm-10">
|
<input autocomplete="off" id="attrCode" type="text" name="attrCode" class="form-control "
|
datatype="/^[0-9a-zA-Z_]{1,50}$/" errormsg="仅支持数字、字母及'_'" nullmsg="属性编码不能为空">
|
<div class="Validform_checktip"></div>
|
</div>
|
</div>
|
<div class="form-group">
|
<label class="col-sm-2 control-label">编码排序</label>
|
<div class="col-sm-10">
|
<input autocomplete="off" id="sort" type="number" name="sort" class="form-control "
|
>
|
<div class="Validform_checktip"></div>
|
</div>
|
</div>
|
<div class="form-group">
|
<label class="col-sm-2 control-label">备注</label>
|
<div class="col-sm-10">
|
<textarea id="attrMark" name="attrMark" class="form-control "></textarea>
|
<div class="Validform_checktip"></div>
|
</div>
|
</div>
|
<div class="form-group">
|
<label class="col-sm-2 control-label">图片
|
|
</label>
|
<div class="col-sm-10">
|
<input autocomplete="off" name="attrUrl" id="attrUrl"
|
class="form-control upload-input" type="text" /> <a style="width: 10%"
|
class="btn btn-primary radius upload-a">选择图片
|
</a>
|
</div>
|
<!--<div class="col-sm-5">
|
<input autocomplete="off" type="text" id="attrUrl" readonly="true" class="form-control" name="attrUrl"
|
multiple data-min-file-count="1" maxLength="250"
|
>
|
<form enctype="multipart/form-data">
|
<input autocomplete="off" id="file-zh" name="file-zh" type="file">
|
</form>
|
</div>
|
<div class="col-sm-5">
|
<img id="imageUrl" style="width: 80%"/>
|
</div>-->
|
</div>
|
<div class="form-group" id="showImgUrl">
|
<label class="col-sm-2 control-label">
|
|
</label>
|
<div class="col-sm-10">
|
<img id="imageUrl" style="width: 50%;height: 40%"/>
|
</div>
|
</div>
|
<div id="updateBtn" class="form-group" style="display: none">
|
<div class="col-sm-12 text-center">
|
<a class="btn btn-success radius" onclick="updateFunction()" matrix:btn="shopProductAttribute-save"><i class="fa fa-check"></i> 保存</a>
|
<a class="btn btn-danger radius" onclick="delFunction()" matrix:btn="shopProductAttribute-del"><i class="fa fa-close"></i> 删除</a>
|
</div>
|
</div>
|
</form>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<script type="text/javascript"
|
th:src="@{/js/systools/MJsBase.js}"></script>
|
<script type="text/javascript">
|
|
var invokeUrl = basePath + "/admin/multipleUploadFile/doUpload";
|
MUI.initImgUpload(".upload-input");
|
$(".select2").select2();
|
/*$('#file-zh').fileinput({
|
language: 'zh',
|
uploadUrl: invokeUrl,
|
allowedFileExtensions: ['jpg', 'png', 'gif'],
|
maxFileCount: 1,
|
}).on("fileuploaded", function (event, data, previewId, index) {
|
$('input[name=attrUrl]').val(data.response.path)
|
});*/
|
var dataForm = null;
|
$(function() {
|
initFunctionList();
|
dataForm = MValidform.validform("#dataform");
|
});
|
|
|
//更新功能
|
function updateFunction() {
|
var myForm = MForm.initForm({
|
invokeUrl : basePath+"/admin/shopProductAttribute/modifyShopProductAttribute",
|
afterSubmit : function() {
|
initFunctionList();
|
},
|
|
});
|
myForm.submit();
|
}
|
|
|
// 点击加载节点信息
|
function zTreeOnClick(event, treeId, treeNode) {
|
//initSeclect("#parentId");
|
$("#dataform").show();
|
$("#updateBtn").show();
|
dataForm.resetForm();
|
$.AjaxProxy({
|
p : {
|
attrId : treeNode.id
|
},
|
a : false,
|
c : true
|
})
|
.invoke(
|
basePath+"/admin/shopProductAttribute/findById",
|
function(loj) {
|
// 初始化功能基本信息1
|
initSeclect("#parentId",loj.getString(0, "parentId"));
|
$("#parentId").val(loj.getString(0, "parentId"));
|
$("#attrId").val(loj.getString(0, "attrId"));
|
$("#attrName").val(loj.getString(0, "attrName"));
|
$("#attrUrl").val(loj.getString(0, "attrUrl"));
|
$("#attrCode").val(loj.getString(0, "attrCode"));
|
$("#attrMark").val(loj.getString(0, "attrMark"));
|
$("#sort").val(loj.getString(0, "sort"));
|
if(loj.getString(0, "attrUrl") != ''){
|
$("#imageUrl").attr("src",loj.getString(0, "attrUrl"));
|
$("#showImgUrl").show();
|
}else{
|
$("#showImgUrl").hide();
|
}
|
$(".loadingbig").remove();
|
});
|
};
|
|
|
|
|
|
function initFunctionList() {
|
var zNodes = new Array();
|
$.AjaxProxy().invoke(
|
basePath+"/admin/shopProductAttribute/all",
|
function(loj) {
|
for (var i = 0; i < loj.getRowCount(); i++) {
|
zNodes[i] = createNode(loj.getString(i, "attrId"), loj.getString(i, "parentId"), loj.getString(
|
i, "attrName"));
|
}
|
initTree(zNodes);
|
});
|
}
|
|
//初始化树型控件
|
function initTree(zNodes) {
|
var setting = {
|
view : {
|
dblClickExpand : false,
|
showLine : false,
|
selectedMulti : false
|
},
|
data : {
|
simpleData : {
|
enable : true,
|
idKey : "id",
|
pIdKey : "pId",
|
rootPId : ""
|
}
|
},
|
callback : {
|
onClick : zTreeOnClick
|
}
|
};
|
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
|
}
|
|
|
|
function createNode(id, parentId, name) {
|
var o = new Object();
|
o.id = id;
|
o.pId = parentId;
|
o.name = name;
|
o.open=true;
|
|
return o;
|
}
|
|
|
function delFunction() {
|
var id = $("#attrId").val();
|
if (id != null && id != '') {
|
layer.confirm('删除属性时会删除该属性的所有子属性!', {
|
icon : 3,
|
title : '提示'
|
}, function(index) {
|
layer.close(index);
|
var id = $("#attrId").val();
|
$.AjaxProxy({
|
p : {
|
attrId : id
|
}
|
}).invoke(basePath+"/admin/shopProductAttribute/del", function(loj) {
|
layer.msg('删除成功!', {
|
icon : 1,time:1000
|
}, function(index) {
|
$("#dataform").hide();
|
$("#updateBtn").hide();
|
layer.close(index);
|
initFunctionList();
|
});
|
return false;
|
});
|
});
|
} else {
|
layer.msg("请先选中要删除的属性!");
|
}
|
}
|
|
function openForm() {
|
|
layer.open({
|
type : 2,
|
title : "添加属性",
|
anim:1,
|
maxmin : true,
|
area : [ MUI.SIZE_L, '450px' ],
|
content : [ basePath+'/admin/shopProductAttribute/editForm' ]
|
});
|
}
|
|
function initSeclect(seler,def){
|
$.AjaxProxy().invoke(basePath+"/admin/shopProductAttribute/all",
|
function(loj) {
|
$(seler).createSelectTree(
|
loj.attr("result").rows,
|
{ id : "attrId",
|
parent : "parentId",
|
value : "attrName",
|
append : false,
|
defaultValue : def,
|
defaultHtml : '<option value="0" selected="selected">一级属性</option>'
|
});
|
});
|
}
|
|
|
</script>
|
|
</body>
|
</html>
|
</html>
|