diff --git a/sh_backmate_theme_adv_enterprise/static/src/js/calculator.js b/sh_backmate_theme_adv_enterprise/static/src/js/calculator.js index 72183c910..170916b13 100644 --- a/sh_backmate_theme_adv_enterprise/static/src/js/calculator.js +++ b/sh_backmate_theme_adv_enterprise/static/src/js/calculator.js @@ -10,77 +10,75 @@ import { useService } from "@web/core/utils/hooks"; import { session } from "@web/session"; export class CalculaterSh extends Component { - static template = "CalculatorTemplate"; + static template = "CalculatorTemplate"; - setup() { - this.orm = useService("orm"); - this.search_sh_enable_calculator_mode() + setup() { + this.orm = useService("orm"); + this.search_sh_enable_calculator_mode() + } + + search_sh_enable_calculator_mode() { + this.sh_enable_calculator_mode = session.sh_enable_calculator_mode + } + + onClickCalculator() { + if($('.calculator').length > 0){ + $(".sh_calc_results").html(""); + }else{ + // render template + var qweb_data = ` + +
+
+

0

+
+
+
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+
+
` + $(".sh_calc_results").html(qweb_data); } - - search_sh_enable_calculator_mode() { - this.sh_enable_calculator_mode = session.sh_enable_calculator_mode + if($('.sh_calc_util').hasClass('active')){ + $('.sh_calc_util').removeClass('active') + }else{ + $('.sh_calc_util').addClass('active') + } + // close other popup + $('.sh_user_language_list_cls').css("display","none") + $('.sh_wqm_quick_menu_submenu_list_cls').css("display","none") + $('.todo_layout').removeClass("sh_theme_model"); } - - onClickCalculator() { - if($('.calculator').length > 0){ - $(".sh_calc_results").html(""); - }else{ - // render template - var qweb_data = ' -
-
-

0

-
-
-
-
- - - - -
-
- - - - -
-
- - - - -
-
- - - - -
-
- - - - -
-
-
-
' - $(".sh_calc_results").html(qweb_data); - } - - if($('.sh_calc_util').hasClass('active')){ - $('.sh_calc_util').removeClass('active') - }else{ - $('.sh_calc_util').addClass('active') - } - - // close other popup - $('.sh_user_language_list_cls').css("display","none") - $('.sh_wqm_quick_menu_submenu_list_cls').css("display","none") - $('.todo_layout').removeClass("sh_theme_model"); - } - } registry.category("systray").add("sh_entmate_theme.calculater_sh", { Component: CalculaterSh }, { sequence: 25 }); diff --git a/sh_backmate_theme_adv_enterprise/static/src/js/navbar.js b/sh_backmate_theme_adv_enterprise/static/src/js/navbar.js index 81517eb1b..ad11cb7b1 100644 --- a/sh_backmate_theme_adv_enterprise/static/src/js/navbar.js +++ b/sh_backmate_theme_adv_enterprise/static/src/js/navbar.js @@ -374,62 +374,76 @@ patch(NavBar.prototype, { getXmlID(app_id) { return this.menuService.getMenuAsTree(app_id).xmlid; }, - OnClickDropdown(ev){ - /*close pop-ups*/ - $('.backmate_theme_layout').removeClass("sh_theme_model"); - $('.todo_layout').removeClass("sh_theme_model"); - $('.todo').removeClass('todo_active'); - $('.sh_calc_util').removeClass("active") - $(".sh_calc_results").html(""); - $('.sh_wqm_quick_menu_submenu_list_cls').css("display","none") - $('.o_user_bookmark_menu').removeClass('bookmark_active') - $('.sh_search_results').css("display", "none"); - if (!$(ev.currentTarget).next().hasClass('show_ul')) { - $(ev.currentTarget).next('.dropdown-menu-right').first().slideDown('slow'); + /** + * 处理点击下拉菜单事件 + * + * @param {Event} ev - 触发事件的对象 + */ + OnClickDropdown(ev) { + // 1. 关闭弹出窗口 + $('.backmate_theme_layout').removeClass("sh_theme_model"); + $('.todo_layout').removeClass("sh_theme_model"); + $('.todo').removeClass('todo_active'); + $('.sh_calc_util').removeClass("active"); + $(".sh_calc_results").html(""); // 清空计算结果 + $('.sh_wqm_quick_menu_submenu_list_cls').css("display", "none"); + $('.o_user_bookmark_menu').removeClass('bookmark_active'); + $('.sh_search_results').css("display", "none"); + // 2. 切换子菜单显示状态 + // 检查当前菜单项的下一个兄弟元素是否有 'show_ul' 类 + if (!$(ev.currentTarget).next().hasClass('show_ul')) { + // 如果没有展开子菜单,则展开当前菜单 + $(ev.currentTarget).next('.dropdown-menu-right').first().slideDown('slow'); - $(ev.currentTarget).parents('.dropdown-menu').first().find('.show_ul').slideUp(600) - $(ev.currentTarget).parents('.dropdown-menu').first().find('.show_ul').css("display", "none !important") - $(ev.currentTarget).parents('.dropdown-menu').first().find('.show_ul').removeClass('show_ul'); + // 隐藏其他已经展开的子菜单 + $(ev.currentTarget).parents('.dropdown-menu').first().find('.show_ul').slideUp(600); // 收起其他子菜单 + $(ev.currentTarget).parents('.dropdown-menu').first().find('.show_ul').css("display", "none !important"); // 强制隐藏 + $(ev.currentTarget).parents('.dropdown-menu').first().find('.show_ul').removeClass('show_ul'); // 移除 'show_ul' 类 + // 3. 根据当前父元素的不同,调整子菜单的样式 + if ($(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').length === 1) { + // 如果当前菜单的父元素是 '.dropdown-header',则给它添加样式 + $(ev.currentTarget).parents('.dropdown-menu').first().find('.sh_sub_dropdown').removeClass('sh_sub_dropdown'); + $(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').children('.dropdown-item').addClass('sh_sub_dropdown'); + } else if ($(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').length > 1) { + // 如果当前菜单的父元素是 '.dropdown-header',则给它添加样式 + $(ev.currentTarget).parents('.dropdown-menu').first().find('.sh_sub_dropdown').removeClass('sh_sub_dropdown'); + $(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').children('.dropdown-item').addClass('sh_sub_dropdown'); + } else { + // 否则,调整其他菜单项的样式 + $(ev.currentTarget).parents('.dropdown-menu').first().find('.sh_dropdown').removeClass('sh_dropdown'); + $(ev.currentTarget).parents('.dropdown-menu').first().find('.active').removeClass('active'); + $(ev.currentTarget).parents('.dropdown-menu').first().find('.sh_sub_dropdown').removeClass('sh_sub_dropdown'); + $(ev.currentTarget).next('.dropdown-menu').parents('.sh_dropdown_div').children('.dropdown-item').addClass('sh_dropdown'); + $(ev.currentTarget).next('.dropdown-menu').parents('.sh_dropdown_div').children('.dropdown-item').addClass('active'); + } + } - if ($(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').length == 1) { - $(ev.currentTarget).parents('.dropdown-menu').first().find('.sh_sub_dropdown').removeClass('sh_sub_dropdown'); - $(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').children('.dropdown-item').addClass('sh_sub_dropdown'); + // 4. 如果子菜单已经展开,则隐藏它 + if ($(ev.currentTarget).next().hasClass('show_ul')) { + // 如果当前子菜单已经展开,则收起它 + $(ev.currentTarget).next('.dropdown-menu-right').first().slideUp(600); + // 移除展开时的样式 + if ($(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').length === 1) { + $(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').children('.dropdown-item').removeClass('sh_sub_dropdown'); + } else if ($(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').length > 1) { + $(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').first().children('.dropdown-item').removeClass('sh_sub_dropdown'); + $(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').last().removeClass('sh_sub_dropdown'); + } else { + $(ev.currentTarget).next('.dropdown-menu').parents('.sh_dropdown_div').children('span').removeClass('sh_dropdown'); + $(ev.currentTarget).next('.dropdown-menu').parents('.sh_dropdown_div').children('span').removeClass('active'); + } + } - } else { - $(ev.currentTarget).parents('.dropdown-menu').first().find('.sh_dropdown').removeClass('sh_dropdown'); - $(ev.currentTarget).parents('.dropdown-menu').first().find('.active').removeClass('active'); - - $(ev.currentTarget).parents('.dropdown-menu').first().find('.sh_sub_dropdown').removeClass('sh_sub_dropdown'); - $(ev.currentTarget).next('.dropdown-menu').parents('.sh_dropdown_div').children('.dropdown-item').addClass('sh_dropdown'); - $(ev.currentTarget).next('.dropdown-menu').parents('.sh_dropdown_div').children('.dropdown-item').addClass('active'); - } - } - - if ($(ev.currentTarget).next().hasClass('show_ul')) { - $(ev.currentTarget).next('.dropdown-menu-right').first().slideUp(600); - - if ($(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').length == 1) { - $(ev.currentTarget).next('.dropdown-menu').parents('.dropdown-header').children('.dropdown-item').removeClass('sh_sub_dropdown'); - } else { - - $(ev.currentTarget).next('.dropdown-menu').parents('.sh_dropdown_div').children('span').removeClass('sh_dropdown'); - $(ev.currentTarget).next('.dropdown-menu').parents('.sh_dropdown_div').children('span').removeClass('active'); - } - } - - var $subMenu = $(ev.currentTarget).next('.dropdown-menu'); - $subMenu.toggleClass('show_ul'); - + // 5. 切换当前子菜单的状态 + var $subMenu = $(ev.currentTarget).next('.dropdown-menu'); + $subMenu.toggleClass('show_ul'); // 切换子菜单的显示状态 }, - currentMenuAppSections(app_id) { - return ( - (this.menuService.getMenuAsTree(app_id).childrenTree) || - [] - ); + currentMenuAppSections(app_id) { + return ((this.menuService.getMenuAsTree(app_id).childrenTree) || []); }, getThemeStyle(ev) { diff --git a/sh_backmate_theme_adv_enterprise/static/src/scss/sidebar/collapsed.scss b/sh_backmate_theme_adv_enterprise/static/src/scss/sidebar/collapsed.scss index e93e95f22..edc31b2c1 100644 --- a/sh_backmate_theme_adv_enterprise/static/src/scss/sidebar/collapsed.scss +++ b/sh_backmate_theme_adv_enterprise/static/src/scss/sidebar/collapsed.scss @@ -560,6 +560,7 @@ width: 260px !important; } } + .o-dropdown--menu.dropdown-menu.d-block { width: 70px !important; min-width: 70px !important; diff --git a/sh_backmate_theme_adv_enterprise/static/src/xml/menu.xml b/sh_backmate_theme_adv_enterprise/static/src/xml/menu.xml index cbbdfc966..21868ded8 100644 --- a/sh_backmate_theme_adv_enterprise/static/src/xml/menu.xml +++ b/sh_backmate_theme_adv_enterprise/static/src/xml/menu.xml @@ -1,234 +1,159 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + - + + + + + + + + + + + + + - -
+ +
- - - + + + + - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+
+ + + +
+ - - -
- - @@ -259,21 +184,16 @@