* refactor.

This commit is contained in:
dingyongliang
2023-03-21 10:37:35 +08:00
parent 36c8c8bda4
commit 189004414e
3 changed files with 88 additions and 22 deletions
+7 -3
View File
@@ -63,7 +63,9 @@ programmenu
(
'title' => '所有项目集',
'subTitle' => '筛选项目集',
'programs' => $data
'programs' => $data,
'activeKey' => '7',
'closeLink' => '#'
)
)
);
@@ -75,9 +77,11 @@ modulemenu
array
(
'productID' => 1,
'title' => '所有分类',
'title' => '售后服务',
'moduleSettingText' => '模块设置',
'displaySettingText' => '显示设置'
'displaySettingText' => '显示设置',
'activeKey' => '4',
'closeLink' => '#'
)
)
);
+51 -5
View File
@@ -28,16 +28,62 @@ class modulemenu extends wg
return array_filter($this->modules, function($module) use($id) {return $module->parent == $id;});
}
protected function build()
private function setMenuTreeProps()
{
global $app;
$id = $this->prop('productID');
$this->setProp('productID', null);
$this->modules = $app->loadTarget('tree')->getProductStructure($id, 'story');
$moduleItems = $this->buildMenuTree(array(), 0);
$this->setProp('items', $moduleItems);
$this->setProp('activeClass', 'active');
$this->setProp('items', $this->buildMenuTree(array(), 0));
$this->setDefaultProps(array('activeClass' => 'active'));
}
return zui::modulemenu(inherit($this));
protected function build()
{
$this->setMenuTreeProps();
$activeKey = $this->prop('activeKey');
$closeBtn = null;
if(!empty($activeKey))
{
$closeBtn = a
(
set('href', $this->prop('closeLink')),
h::i
(
setClass('icon icon-close'),
)
);
}
return div
(
setClass('module-menu'),
h::header
(
span
(
setClass('module-title'),
$this->prop('title')
),
$closeBtn
),
h::main
(
zui::menutree(inherit($this))
),
div
(
setClass('setting-btns'),
a
(
setClass('btn primary'),
$this->prop('moduleSettingText')
),
a
(
setClass('btn white'),
$this->prop('displaySettingText')
),
)
);
}
}
+30 -14
View File
@@ -5,7 +5,7 @@ class programmenu extends wg
{
private $programs = array();
protected static $defineProps = array('js-render?:bool=true');
protected static $defineProps = array('js-render?:bool=true, title?:string, subTitle?:string, programs?:array, activeClass?:string, activeIcon?:string, activeKey?:string');
private function buildMenuTree($parent, $parentID)
{
@@ -26,8 +26,30 @@ class programmenu extends wg
return array_filter($this->programs, function($program) use($id) {return $program->parent == $id;});
}
private function getContainer()
private function setMenuTreeProps()
{
$this->programs = $this->prop('programs');
$this->setProp('programs', null);
$this->setProp('items', $this->buildMenuTree(array(), 0));
$this->setDefaultProps(array('activeClass' => 'active', 'activeIcon' => 'check'));
}
protected function build()
{
$this->setMenuTreeProps();
$activeKey = $this->prop('activeKey');
$closeBtn = null;
if(!empty($activeKey))
{
$closeBtn = a
(
set('href', $this->prop('closeLink')),
h::i
(
setClass('icon icon-close')
)
);
}
return div
(
setClass('program-menu'),
@@ -42,19 +64,13 @@ class programmenu extends wg
h::i(setClass('gg-chevron-down'))
),
span($this->prop('title'))
)
),
$closeBtn
),
h::main
(
zui::menutree(inherit($this))
)
);
}
protected function build()
{
$this->programs = $this->prop('programs');
$this->setProp('programs', null);
$programItems = $this->buildMenuTree(array(), 0);
$this->setProp('items', $programItems);
$this->setProp('activeClass', 'active');
$this->setProp('activeIcon', 'check');
return zui::programmenu(inherit($this));
}
}