美文网首页Odoo收藏
【odoo 10.0】使用baiduMap

【odoo 10.0】使用baiduMap

作者: battle_ | 来源:发表于2017-03-18 19:08 被阅读479次

页面中通过iframe将map嵌入

  • 创建map页面
    创建xml文件,然后在manifest中声明xml
    使用template标签,直接写一个maphtml页面,如图:


    xml

    没想到template还能这样直接塞整个页面进行渲染
    这样页面内容使用起来就和普通的html一样了,但是还是可以使用t标签来控制dom显示和获取controller传递过来的变量

  • 创建controller渲染页面


    controller

    页面渲染通过request.render("moudleName.templateId",val),val可以向模板传递参数

  • 页面内引用该map
    我是通过qweb+widget进行引用的,注册widget,然后qweb中有iframe标签,通过iframe嵌入map
    在widget的js方法中可以动态设置iframe的src进行传递一些参数给controller,controller中就可以做很多事情了


    map

demo源码

https://github.com/btredback/baidumap_odoo

直接通过URL就可以展示map,嵌入odoo内,可通过widget qweb-iframe进行。

相关文章

网友评论

  • Latlng:odoo.define("inspection.test", function(require) {

    var core = require("web.core");
    var Widget = require("web.Widget");

    var HomePage = Widget.extend({
    start: function() {
    // 百度地图 API 功能
    var map = new BMap.Map("all_map"); // 创建 Map 实例
    map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 初始化地图,设置中心点坐标和地图级别
    map.addControl(new BMap.MapTypeControl()); //添加地图类型控件
    map.setCurrentCity("北京"); // 设置地图显示的城市 此项是必须设置的
    map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放

    this.$el.append("<div id='all_map'></div>");

    // this.$el.append('<iframe src="http://121.42.136.94/admin/api/show_map_yinhuan&quot; frameBorder="0" width="100%" height="100%"></iframe>')
    },
    });

    core.action_registry.add("homepage", HomePage);

    });

    <template id="assets_backend" name="petstore_assets" inherit_id="web.assets_backend">
    <xpath expr="." position="inside">
    <link rel="stylesheet" href="/inspection/static/src/css/height.css"/>
    <script t-attf-src="http://api.map.baidu.com/api?v=2.0&amp;ak=O4FGtHyKUFMzdpUfeMARCeEvVl7lv6xd"></script>
    <script type="text/javascript" src="/inspection/static/src/js/test.js"></script>
    </xpath>
    </template>

    这是我写的百度地图的例子,为什么我点击 menuitem 的时候总是提示我未定义,请问这样写有什么错误吗
    battle_:@Latlng 没遇到过,注册成功了么,前端没有报错么。
    Latlng:@battle_ 我现在是直接绑定他原有的一个 div ,这样是可以的,但是他预留的那个没用到。想用,给他写了个 id,但这个 id 不能用。还有就是如果不在 debug 模式下系统或提示你 找不到 client action,这个该怎么解决呢?
    battle_:什么未定义。看下浏览器console有没有报错。我开始这样加载baidu的js一直失败,才换的直接render个html。你这样在页面append地图容器之前就在绑定容器了,找不到容器?试试在绑定前渲染div。
  • 晶鑫复印机耗材批发:可以直接下载源码安装使用吗?
    battle_:只是个测试demo,仅仅通过url显示baidu地图,具体需求具体去写widget之类的。

本文标题:【odoo 10.0】使用baiduMap

本文链接:https://www.haomeiwen.com/subject/qycpnttx.html