etms/asset/js/cetc54/parameter/category.js

182 lines
6.5 KiB
JavaScript
Raw Normal View History

/**
* Created by jinxs on 2016.06.23.
*/
var webroot = $("#hdWebroot").val();
var rootUrl = webroot + '/dict/category/';
$(function () {
//------------------------属性------------------------------
var saveUrl = rootUrl + 'save';
var menuUrl = rootUrl + 'list';
var deleteUrl = rootUrl + 'delete';
var layout = $('#layout');
var menu = $("#ulMenu");
var grid_form = $('#grid_form');
var selectedNode;//选中的节点
var $notice;
var setting = {
data: {
simpleData: {
enable: true,
pIdKey: 'pid',
rootPid: ''
}
},
view: {
selectedMulti: false,
showLine: true
},
async: {
enable: true,
url: menuUrl,
autoParam: ["code"]
},
callback: {
onAsyncError: function (event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
alert("加载项目目录失败!" + errorThrown);
},
onAsyncSuccess: function (event, treeId, treeNode, msg) {
zTree.expandAll(true);
if (selectedNode) {
selectedNode = zTree.getNodeByParam("id", selectedNode.id, null);
zTree.selectNode(selectedNode);
}
},
onClick: function (event, treeId, treeNode) {
selectedNode = treeNode;
$('#id').val(treeNode.id);
$('#name').val(treeNode.name);
$('#pid').val(treeNode.pid);
$('#iconname').val(treeNode.iconname);
$('#code').val(treeNode.code);
var categorytype=$('#categorytype');
pNode=treeNode.getParentNode();
if(pNode!=null&&pNode.pid!=null){
categorytype.uiCombobox("setReadonly",true);
}else {
categorytype.uiCombobox("setReadonly",false);
}
categorytype.uiCombobox("setValue",treeNode.categorytype);
$('#codeRow').toggle(treeNode.getParentNode() == null);
$('#typeRow').toggle(treeNode.getParentNode() != null);
$notice.text('编辑结点[' + treeNode.name + ']');
}
}
};
var form_setting = $.extend({}, setting, {
callback: {
onAsyncError: function (event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
alert("加载项目目录失败!" + errorThrown);
},
beforeClick: function (treeId, treeNode, clickFlag) {
},
onClick: function (event, treeId, treeNode) {
$('#parent_id').uiCombo('setValue', treeNode.id).uiCombo('setText', treeNode.name).uiCombo('hidePanel');
}
}
});
//-----------------------初始化--------------------------------------
layout.uiLayout();
$.fn.zTree.init(menu, setting);
var zTree = $.fn.zTree.getZTreeObj("ulMenu");
grid_form.uiForm({
template: 'grid_form_temp',
onLoadSuccess: function () {
$notice = $("#notice");
var categorytype = $('#categorytype');
categorytype.uiCombobox({
width: 400
});
$('#typeRow').hide();
}
}).uiForm("load");
addEvents();
//-------------------------------------方法--------------------------------------------------------
function addEvents() {
//新建
$('#btnAdd').uiButton({
onClick: function () {
if(selectedNode==undefined){
showResult(false, "请选择父节点!");
return;
}
grid_form.each(function () {
this.reset();
$('#pid').val(selectedNode.id);
$('#code').val(selectedNode.code);
$('#id').val('');
if(selectedNode.pid!=null){
var categorytype = $('#categorytype');
categorytype.uiCombobox("setValue",selectedNode.categorytype);
categorytype.uiCombobox("setReadonly",true);
}
});
$("#name").focus();
$('#codeRow').hide();
$('#typeRow').show();
$notice.text('新增结点至[' + selectedNode.name + ']');
}
});
$('#btnSave').uiButton({
onClick: function () {
$('#grid_form').uiForm('submit', {
url: saveUrl,
onSubmit: function (param) {
// 返回false终止表单提交
return $('#grid_form').uiForm('validate');
},
success: function (result) {
if (result.success) {
var pNode = null;
if (selectedNode) {
pNode = selectedNode.getParentNode();
}
grid_form.uiForm('reset');
zTree.reAsyncChildNodes(pNode, 'refresh');
}
showResult(result.success, result.message);
}
});
}
});
//删除
$('#btnDelete').uiButton({
onClick: function () {
deleteData(
"确定要删除结点[" + selectedNode.name + "]及其子结点吗?",
deleteUrl,
{code: selectedNode.code},
function (result) {
if (result.success) {
grid_form.uiForm('reset');
zTree.reAsyncChildNodes(selectedNode.getParentNode(), 'refresh');
}
}
);
}
});
}
//删除
function deleteData(confirmText, url, data, callback) {
$.uiMessagebox.confirm({
title: '确认操作',
content: confirmText,
onClose: function (value) {
if (value) {
$.ajax({
type: 'post',
url: url,
data: data,
success: function (result) {
callback && callback.call(this, result);
}
});
}
}
});
}
});