diff --git a/module/program/ui/browse.html.php b/module/program/ui/browse.html.php
index b9e5063eb9..17107b57ec 100644
--- a/module/program/ui/browse.html.php
+++ b/module/program/ui/browse.html.php
@@ -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' => '#'
)
)
);
diff --git a/zin/wg/modulemenu/v1.php b/zin/wg/modulemenu/v1.php
index 8c537a4f00..812b0cb921 100644
--- a/zin/wg/modulemenu/v1.php
+++ b/zin/wg/modulemenu/v1.php
@@ -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')
+ ),
+ )
+ );
}
}
diff --git a/zin/wg/programmenu/v1.php b/zin/wg/programmenu/v1.php
index eec9107fdb..eb1fc27b28 100644
--- a/zin/wg/programmenu/v1.php
+++ b/zin/wg/programmenu/v1.php
@@ -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));
- }
}