etms/asset/js/cetc54/module/module.js
liyuchen c24bea2687 Initial commit: JCDP 教育培训管理系统 v54
- 系统管理模块(用户/角色/组织/权限/日志)
- 教育培训计划管理模块
- 教育培训实施模块
- 考试管理模块
- 调研问卷管理模块
- 外派培训管理模块
- 年度培训总结模块
- 学习资源管理模块
- 任职资格管理模块
- 即时通讯模块
- APP 版本管理
- 统计分析模块(FineReport)
- 代码审查标准和报告(CODE_REVIEW_GUIDE.md, CODE_REVIEW_REPORT.md)
- 项目开发指南(PROJECT_GUIDE.md)
2026-04-16 16:41:34 +08:00

357 lines
12 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Created by jinxs on 2016.06.23.
*/
var webroot = $("#hdWebroot").val();
var rootUrl = webroot + '/module/module/';
var deleteUrl = rootUrl + 'delete';//删除地址
var pageTreeBaseUrl = rootUrl + 'getCActionTreeJson';
$(function () {
//------------------------属性-------------------------------------
var listUrl = rootUrl + 'list';//分页数据地址
var saveUrl = rootUrl + 'save';//保存添加数据地址
var loadFormUrl = rootUrl + 'get/';//加载表单数据地址
var menuUrl = rootUrl + 'getModuleList';
var controllerList = rootUrl + 'controllerList';
var updateModuleUrl=rootUrl+'updateAllModule';
var dialogSize = {width: 540, height: '80%'};//弹出窗口大小
var dialog = $('#dialog');
var layout = $('#layout');
var menu = $("#ulMenu");
var pageTree = $("#pageTree");
var grid = $('#grid');
var grid_form = $('#grid_form');
var cbIsShowAll = $('#cbIsShowAll');
var btnUpdateModule=$('#btnUpdateModule');
var selectedNode;//选中的节点
var op = '';//用于表单中树的操作
var setting = {
data: {
simpleData: {
enable: true,
pIdKey: 'parent_id',
rootPid: 'root'
}
},
view: {
selectedMulti: false,
showLine: true
},
async: {
enable: true,
url: menuUrl
},
callback: {
onAsyncError: function (event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
alert("加载模块目录失败!" + errorThrown);
},
onAsyncSuccess: function (event, treeId, treeNode, msg) {
zTree.expandAll(true);
if (selectedNode && selectedNode != null) {
var node = zTree.getNodeByParam("id", selectedNode.id);
zTree.selectNode(node);
}else {
selectedNode=zTree.getNodeByTId('root_1');
zTree.selectNode(selectedNode);
}
selectLeftModuleNode();
},
onClick: function (event, treeId, treeNode) {
selectedNode = zTree.getSelectedNodes()[0];
selectLeftModuleNode();
}
}
};
var form_setting = $.extend({}, setting, {
callback: {
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");
loadControllerList();
initGrid();
initForm();
addEvents();
//-------------------------------------方法--------------------------------------------------------
function selectLeftModuleNode(){
grid.uiGrid('loadData', {
url: listUrl,
queryParams: {
pid: selectedNode.id,
cascade_id: selectedNode.cascade_id,
iscascade: cbIsShowAll.is(':checked')
},
pageIndex: 1
});
}
function initGrid() {
//初始化搜索框
$('#searchbox').uiSearchbox({
prompt: '模块名称',
searcher: function (v) {
grid.uiGrid('loadData', {queryParams: {key: $.trim(v)}, pageIndex: 1});
}
});
//初始化grid
grid.uiGrid({
defaultSortField:'cascade_id'
});
}
function initForm() {
dialog.uiDialog({
width: dialogSize.width,
height: dialogSize.height,
onOpen: function () {
var dialogP = $('#dialog').uiDialog('getUserParam');
op = dialogP.action;
var id = dialogP.id;
switch (op) {
case 'view':
case 'edit':
grid_form.uiForm('load', grid.uiGrid('selectedData')[0]);
break;
case 'add':
grid_form.uiForm('load');
break;
default :
break;
}
},
buttons: [
{
id: 'btnOK',
label: '保存',
style: 'button_submit',
icons: {left: 'icon_submit'},
disabled: false,
onClick: function () {
$('#grid_form').uiForm('submit', {
url: saveUrl,
onSubmit: function (param) {
param.id = $('#hdID').val();
param.parent_name = $('#parent_id').uiCombo('getText');
var parentid = $('#parent_id').uiCombo('getValue');
if (parentid == param.id) {
showResult(false, '上级菜单不允许选择当前菜单');
return false;
}
var isValid = $('#grid_form').uiForm('validate');
return isValid; // 返回false终止表单提交
},
success: function (result) {
if (result.success) {
zTree.reAsyncChildNodes(null, 'refresh');
dialog.uiDialog('close');
}
showResult(result.success, result.message);
}
});
return false;
}
},
{
id: 'btnCancel',
label: '关闭',
icons: {left: 'icon_cancel'},
disabled: false,
style: 'button_cancel',
onClick: function () {
dialog.uiDialog('close');
}
}
]
});
grid_form.uiForm({
template: 'grid_form_temp',
onLoadSuccess: function () {
var me = $(this);
$('#is_auto_expand').uiCombobox();
$('#status').uiCombobox();
$('#display').uiCombobox();
$('#moduletype').uiCombobox();
$('#parent_id').uiCombo();
$('#name').uiCombo();
$.fn.zTree.init($('#pn_tree'), form_setting, zTree.getNodes());
$.fn.zTree.getZTreeObj("pn_tree").expandAll(true);
$('#parent_id').uiCombo('panel').html($('#pn_tree').show());
$('#name_panel').removeClass('hide-away').appendTo($('#name').uiCombo('panel'));
switch (op) {
case 'view':
parentTree_view();
me.uiForm('setReadonly', true);
break;
case 'edit':
parentTree_view();
break;
case 'add':
parentTree_add();
me.uiForm('setReadonly', false);
break;
default :
break;
}
function parentTree_add() {
if (selectedNode && selectedNode != null) {
$('#parent_id').uiCombo('setValue', selectedNode.id).uiCombo('setText', selectedNode.name);
}
}
function parentTree_view() {
var data = grid.uiGrid('selectedData')[0];
$('#parent_id').uiCombo('setValue', data.parent_id).uiCombo('setText', data.parent_name);
$('#name').uiCombo('setValue', data.name).uiCombo('setText', data.name);
}
}
});
}
function addEvents() {
//新建
$('#btn1').bind('click', function () {
dialog.uiDialog('setUserParam', {action: 'add', id: 0});
dialog.uiDialog('button', 'btnOK').show();
dialog.uiDialog('open');
dialog.uiDialog('title').html('新增功能模块').show();
});
//删除
$('#btn2').bind('click', function () {
var ids = grid.uiGrid('selectedData', 'id');
if (ids.length == 0) {
showResult(false, '请选择要删除的行!', 'alert');
} else {
deleteRow(ids);
}
});
cbIsShowAll.bind('click', function () {
var selectedNode = zTree.getSelectedNodes()[0];
if (selectedNode) {
grid.uiGrid('loadData', {
url: listUrl,
queryParams: {
pid: selectedNode.id,
cascade_id: selectedNode.cascade_id,
iscascade: cbIsShowAll.is(':checked')
},
pageIndex: 1
});
}
});
btnUpdateModule.bind('click', function () {
$.ajax({
type: 'post',
url: updateModuleUrl
});
});
}
function loadControllerList() {
$.ajax({
type: 'post',
url: controllerList,
showLoading:false,
success: function (result) {
$('#grid_controller').uiGrid({
localData: result.data
});
},
error: function () {
showResult(false, '获取Action列表失败', 'error');
return false;
}
});
}
});
//查看
function viewRow(id, title) {
var dialog = $('#dialog');
title = '-' + title || '';
dialog.uiDialog('setUserParam', {action: 'view', id: id});
dialog.uiDialog('open');
dialog.uiDialog('button', 'btnOK').hide();
dialog.uiDialog('title').html('查看' + title);
}
//编辑
function editRow(id,title) {
var dialog = $('#dialog');
dialog.uiDialog('setUserParam', {action: 'edit', id: id});
dialog.uiDialog('button', 'btnOK').show();
dialog.uiDialog('open');
dialog.uiDialog('title').html('编辑-'+title).show();
}
// 删除
function deleteRow(id) {
deleteData("此操作将其子节点一起删除,确定删除吗?", deleteUrl, {ids: id}, function (result) {
if (result.success) {
$.fn.zTree.getZTreeObj("ulMenu").reAsyncChildNodes(null, 'refresh');
}
});
}
//选择action
var pageTree_setting = {
data: {
simpleData: {
enable: true,
pIdKey: 'parent_id',
}
},
view: {
selectedMulti: false,
showLine: true
},
async: {
enable: true,
url: pageTreeBaseUrl
},
callback: {
onAsyncError: function (event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
alert("加载模块页面与数据信息失败!" + errorThrown);
},
onAsyncSuccess: function (event, treeId, treeNode, msg) {
var tree = $.fn.zTree.getZTreeObj("pageTree");
tree.expandAll(true);
}
}
};
function selectRow(displayName, url) {
$('#name').uiCombo('setValue', displayName).uiCombo('setText', displayName).uiCombo('hidePanel');
$('#href').val(url);
$('#moduletype').uiCombobox('setValue',1);
$('#divPageTree').show();
pageTree_setting.async.otherParam = {path: url};
$.fn.zTree.init($('#pageTree'), pageTree_setting);
}
//删除
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);
}
});
}
}
});
}