当前位置: 首页 > news >正文

如何网站点击率印度网站建设多少钱

如何网站点击率,印度网站建设多少钱,给你网站你会怎么做的,交换链接营销odoo17 前端 在头像下拉 dropdown 自定义菜单 其实很简单, 我们先找到原来已经创建好的, 找到代码位置 使用 我的资料 为例 odoo-17.0\addons\hr\static\src\user_menu\my_profile.js /** odoo-module **/import { _t } from "web/core/l10n/translation"; import …

odoo17 前端 在头像下拉 dropdown 自定义菜单

其实很简单, 我们先找到原来已经创建好的, 找到代码位置

使用 我的资料 为例 odoo-17.0\addons\hr\static\src\user_menu\my_profile.js

/** @odoo-module **/import { _t } from "@web/core/l10n/translation";
import { registry } from "@web/core/registry";
import { preferencesItem } from "@web/webclient/user_menu/user_menu_items";export function hrPreferencesItem(env)  {return Object.assign({}, preferencesItem(env),{description: _t('My Profile'),});
}registry.category("user_menuitems").add('profile', hrPreferencesItem, { force: true })

可以看到这个注册类型在 user_menuitems

需要添加的也在这个类别中添加

如此操作

自定义一个模块, 继承 base, web 模块, 目录结构

└─demo│  __init__.py│  __manifest__.py├─static│  └─src│      ├─js│      │   demo_item_service.js│      │   menu_item_demo.js

一样的, 先创建 menu_item_demo.js 文件

/** @odoo-module **/
import {registry} from "@web/core/registry";
import {_t} from "@web/core/l10n/translation";export function menuItemDemo(env) {return {type: "item",  id: "menu_item_demo",  // 自定义iddescription: _t("这是新加的"),  // 页面显示的标题callback: async function () {// 点击执行回调, 需要执行的东西放这里, 我这里是打开一个dialog弹框env.services.demo_dialog.demoOpenDialog();},sequence: 51,};
}// 对应的 user_menuitems 分类, 添加自己的方法
// 返回值固定写法, 可以多参考源码中写法
// type: 目前我发现有两个可选项
// 	- item: 占完整行
// 	- Switch: 滑动开关
registry.category("user_menuitems").add("pfp", menuItemDemo);

重启刷新就展示这个菜单了

callback 方法是点击后执行, 我这使用弹窗作为展示, 调用另外文件, 也可以直接写在这

还没结束

env.services 是内部注册的服务

demo_item_service.js 服务编写

服务可以自定义的, 但是为了规范,还是跟着项目写

/** @odoo-module **/import {registry} from "@web/core/registry";
// 导入内置的dialog弹框
import {ConfirmationDialog} from "@web/core/confirmation_dialog/confirmation_dialog";export const demoItemService = {// 添加依赖dependencies: ["dialog", "ui"],// 固定写法, 初始化执行方法start(env, {dialog, ui}) {let isPaletteOpened = false;// 页面点击后执行这个方法, 根据自己需求执行内容// 可以自己创建 组件 component 然后使用function demoOpenDialog() {isPaletteOpened = true;dialog.add(ConfirmationDialog, {body: "This is a demo dialog",  // 弹出框内容title: "Demo dialog",cancel: () => {  // 取消按钮回调console.log('cancel')},confirm: () => {  // 确定按钮回调console.log('confirm')},});}// 一定要返回出去, 不然外面用不到return {demoOpenDialog,};}
}
// 注册服务类, 给定id, 后面使用
registry.category("services").add("demo_dialog", demoItemService);

到这里js已经全部写好了, 执行导出 __manifest__.py

{'name': 'Demo','version': '1.3','category': 'Hidden','description': """""",'depends': ['base', 'web'],'data': [],'assets': {'web.assets_backend': [  // js/xml导出在这'demo/static/src/**/*',  // 重点是这里导出, 别用错了],},'installable': True,'auto_install': True,'license': 'LGPL-3',
}

页面展示

这里只是做弹出框展示,如果需要更多的自己写模版, 方便自己处理后续问题

http://www.yayakq.cn/news/131247/

相关文章:

  • 国产一级a做爰片免费网站买了虚拟主机怎么建设网站
  • 国内做设备网站哪些好动漫制作专业能报名的专插本学校
  • 国外设计导航网站大全wamp 网站开发首先做什么
  • 博山网站建设yx718中山 网站关键词优化
  • 网站打模块外发加工网站源码下载
  • 广西中小型营销型网站建设公司wordpress增加下载功能
  • 河南网站开发wordpress图片自动alt
  • 襄阳网站建设品牌网站死链检查
  • 建设银行黄陂支行网站平面设计与广告设计
  • 同一个服务器可以做多个网站医院网站建设方案招标文件
  • 阿里服务器租用价格表seo建设
  • 用jquery做的书籍网站百度推广账户怎么开
  • 网站首页不被收录优惠券网站怎么做的
  • 设计师赚钱的网站梧州网站设计理念
  • 河北邢台路桥建设公司网站小程序开发教程推荐
  • 加盟做网站网站导航是什么
  • 长宁区小学网站建设在线图片生成器
  • 嘉兴网站建设电话宣城市建设银行网站
  • php网站开发外文文献电商详情页模板免费套用
  • 网站如果实现微信支付网站关闭与域名备案
  • 哈尔滨在线制作网站辽宁招投标工程信息网
  • 网站 pr培训收费网站建设
  • 网站建社石家庄服装网站建设推荐
  • 百度站长工具网站验证宣传册设计与制作合同
  • 建网站服务器用什么wordpress 添加固定字段
  • 加盟招商推广网站广州专业的网站建设
  • 网站空间商拿不回数据wordpress主题配置修改
  • 个体户做网站与公司好wordpress自定义字段面板
  • 网站建设与制作软件付费链接生成平台
  • 网站建设推销话术案例厦门网站建设企