* Example Modify the interface document module tree.

This commit is contained in:
tianshujie
2023-03-10 16:35:14 +08:00
parent ccba4f20cd
commit 2a728e1b87
6 changed files with 70 additions and 27 deletions
+1 -1
View File
@@ -28,7 +28,7 @@ class dev extends control
$this->view->tab = 'api';
$this->view->selectedModule = $module;
$this->view->apis = $module ? $this->dev->getAPIs($module) : array();
$this->view->modules = $this->dev->getModules();
$this->view->moduleTree = $this->dev->getModuleTree($module);
$this->display();
}
+5
View File
@@ -1,3 +1,8 @@
#sidebar .module-tree, #mainContent .module-content {overflow-y: auto;}
#mainContent .module-col {padding: 0;}
#mainContent .module-content {padding: 10px; padding-right: 0; margin-right: 0;}
/* module-tree. */
#moduleTree.tree ul {margin-bottom: 0;}
#menuTree > li.has-list > ul > li {padding-left: 10px;}
#menuTree > li.has-list > ul > li.has-list {padding-left: 15px;}
+29 -1
View File
@@ -1,5 +1,6 @@
$(function()
{
initModule();
setHeight();
$(window).resize(setHeight);
});
@@ -12,6 +13,33 @@ $(function()
*/
function setHeight()
{
var paneHeight = $(window).height() - 100;
var paneHeight = $(window).height() - 90;
$('#sidebar .module-tree,#mainContent .module-content').css('height', paneHeight);
}
/**
* Init module tree by zui.
*
* @access public
* @return void
*/
function initModule()
{
$('#moduleTree').tree(
{
data: moduleTree,
initialState: 'active',
itemCreator: function($li, item)
{
console.log(item);
$li.append('<a data-module="' + item.key + '" data-has-children="' + (item.children ? !!item.children.length : false) + '" href=# title="' + item.title + '">' + item.title + '</a>');
if (item.active) $li.addClass('active open in');
}
});
$('#moduleTree').on('click', 'a', function(e)
{
var target = $(e.target);
if (target.attr('data-has-children') === 'true') return;
self.location.href = createLink('dev', 'api', 'module=' + target.attr('data-module'));
})
}
+1 -1
View File
@@ -12,6 +12,6 @@ $(function()
*/
function setHeight()
{
var paneHeight = $(window).height() - 100;
var paneHeight = $(window).height() - 90;
$('#sidebar .module-tree,#mainContent .module-content').css('height', paneHeight);
}
+32
View File
@@ -1072,4 +1072,36 @@ class devModel extends model
$menu->children = array();
return $menu;
}
/**
* Get moduleT tree.
*
* @param string $currentModule
* @access public
* @return array
*/
public function getModuleTree($currentModule)
{
$moduleTree = array();
$modules = $this->getModules();
foreach($this->lang->dev->groupList as $moduleKey => $moduleName)
{
if(empty($modules[$moduleKey])) continue;
$module = new stdclass();
$module->key = $moduleKey;
$module->title = $moduleName;
$module->children = array();
foreach($modules[$moduleKey] as $objectKey => $objectName)
{
$object = new stdclass();
$object->key = $objectKey;
$object->title = zget($this->lang->dev->tableList, $objectKey, $objectKey);
$object->active = $objectKey == $currentModule ? 1 : 0;
$module->children[] = $object;
}
$moduleTree[] = $module;
}
return $moduleTree;
}
}
+2 -24
View File
@@ -1,33 +1,11 @@
<?php include 'header.html.php';?>
<?php js::set('moduleTree', $moduleTree);?>
<div id='mainContent' class='main-row'>
<div class='side-col' id='sidebar'>
<div class='cell module-tree'>
<div class="panel panel-sm with-list">
<div class='panel-heading'><i class='icon-list'></i> <strong><?php echo $lang->dev->moduleList?></strong></div>
<?php foreach($lang->dev->groupList as $group => $groupName):?>
<?php if(!empty($modules[$group])):?>
<div class='modulegroup'><?php echo $groupName?></div>
<?php foreach($modules[$group] as $module):?>
<?php
$active = ($module == $selectedModule) ? 'text-primary' : '';
$moduleName = zget($lang->dev->tableList, $module, $module);
?>
<?php echo html::a(inlink('api', "module=$module"), $moduleName, '', "class='$active'");?>
<?php endforeach;?>
<?php endif;?>
<?php endforeach;?>
<?php foreach($lang->dev->endGroupList as $group => $groupName):?>
<?php if(!empty($modules[$group])):?>
<div class='modulegroup'><?php echo $groupName?></div>
<?php foreach($modules[$group] as $module):?>
<?php
$active = ($module == $selectedModule) ? 'text-primary' : '';
$moduleName = zget($lang->dev->tableList, $module, $module);
?>
<?php echo html::a(inlink('api', "module=$module"), $moduleName, '', "class='$active'");?>
<?php endforeach;?>
<?php endif;?>
<?php endforeach;?>
<div id="moduleTree" class="menu-active-primary menu-hover-primary"></div>
</div>
</div>
</div>