深圳oa软件系统

咨询热线400-995-0017

您现在的位置:首页 > 聚焦泛微 > 泛微畅谈 >泛微协同办公e-cology9.0的Ecode二次开发实例说明

泛微协同办公e-cology9.0的Ecode二次开发实例说明

来源:泛微华南发布日期2020-03-05 16:44浏览:

粉丝送福利环节

手动@时光 
泛微协同办公e-cology9.0的Ecode二次开发实例说明
小编已为你搭建成功了

泛微

ecode


泛微e-cology 9.0的ecode核心是解决EC所有界面无侵入定制和扩展二次开发,采用动态注册,不直接修改源码的方案解决开发需求。除了新开发页面的之外,它还支持标准页面的修改。

ecode包含了整套前端编辑器、编译器,可以让用户无需搭建开发环境直接通过浏览器开始single page前端开发,同时采用ecode开发的内容    都是插件化,支持一键共享、复用、二次封装。

    

无侵入定制

基于泛微e-cology 9.0测试安装包的二次开发环境;基于公司内容OA搭建备份后的二次开发环境。

1、后端开发环境配置

(1)指定前端源码目录,右键src -> mark directory as -> sources root

(2)修改环境配置,file -> project structure -> project 安装和指定jdk1.8

(3)把本地demo环境拷贝到/ecology目录中,准备好resin4环境(在技术门户->产品包下载->ec9安装包下载)

目前仅支持的浏览器内核谷歌chrome,国产环境请用360

下载并覆盖ecology的ecode通用升级包(注意标准kb1907+ 默认包含ecode)

覆盖后到ecology访问地址进入ecode界面:ip:port/ecode

只要左侧菜单正常加载系统配置、默认分类,并且无报错就代表安装成功

导入最新官方参考案例,首先在右上角点击进入版本说明界面,找到案例下载地址,点击下载

下载后在ecode的导入界面,选择zip,点击导入

(4)引入e9依赖的lib,file -> project structure -> sdks /ecology/classbean、/ecology/web-inf/lib、resin4/lib

(5)配置编译后目录:file -> project structure -> modules -> paths -> use module compile output path,然后保存

[你放git项目的路径]/ecology-9-demo/ecology/classbean

(6)进行编译build->build project,之后就可以看到/ecology/classbean生成

注意要删除一个影响编译的jar,路径在/ecology/web-inf/lib/ecloudstore.jar,这个文件在新版本会直接重置成0kb,旧版本kb下要自行处理

另外需要注释掉webxml中一个过滤器,如果存在的话,此过滤器后续版本也会统一清除


(7)配置resin,Run/Debug Configurations指定resin4位置,Deployment添加/ecology路径,选择resin.xml作为配置文件

注释掉resin自带编译,如果不注释会导致无法编译jsp


修改root-directory,如果指定错误会导致404报错


(8)启动resin进入开发环境,如果没有成功部署ec环境到本地的,可以手工拷贝编译后的/ecology目录到服务器


拓展二次开发
1、新建

产生新数据

目前支持新建分类、文件夹、js、css、md

2、文件夹发布

发布成功文件夹变成橙色

作用是发布下面代码到EC,只有文件夹支持发布,文件夹选择了发布,其下面的文件会自动进行构建发布,开发者只需要编写代码,文件夹下的js和css就会分别被自动编译合并打包到一个js和css下,位置位于/cloudstore/release/${appId},此文件默认是不加载的,都是利用sdk去触发加载

3、前置加载

文件图标出现p标志

js、css支持前置加载,选择了前置加载将会在系统和组件未加载前执行,js在前置加载时可以用来进行一些底层全局事件注册,css在前置加载时可以用来做一些全局样式修改,当然也可以通过代码判断去区分作用范围,前置加载的所有脚本将会被合并到/cloudstore/dev/init.js和/cloudstore/dev/init.css

4、在线编译语法与线下编译语法差异

react可以不用引入,全局默认存在

import React from "react"; //ecode中不用写

ecode模块引入与nodejs模块化中的import、export不同,需要修改成解构赋值


  1. import {Button} from 'antd';


  2. import {WeaInput} from 'ecCom';


改为


  1. const {Button} = antd; //antd全局存在


  2. const {WeaInput} = ecCom; //ecCom全局存在


ecode本地模块引入与nodejs本地模块化中的import、export不同,需要改成ecode imp、exp

export default NewCom; //模块化导出
import NewCom from './NewCom'; //模块化导入

改为

ecodeSDK.exp(NewCom); //ecode中导出
ecodeSDK.imp(NewCom); //ecode中导入,注意导入的模块必须在同一个橙色发布文件夹以内

ecode导出模块到全局的方式,这个在nodejs中是脚手架处理成umd导出,在ecode中我们封装了对应sdk,此方案可以有效管理全局组件


  1. //NewBrowserForMeeting是对应组件名


  2. ecodeSDK.setCom('${appId}','NewBrowserForMeeting',NewBrowserForMeeting);


ecode导入全局模块需要使用异步的方法一,通常用于表单和建模的代码块扩展


  1. ecodeSDK.load({


  2.  id:'${appId}', //如果在ecode外部(比如表单)使用,${appId}需要自行获取字符串


  3.  noCss:true, //是否禁止单独加载css,通常为了减少css数量,css默认前置加载


  4.  cb:function () {


  5.      //回调的时候可以获取组件


  6.    var Com = ecodeSDK.getCom('${appId}','NewBrowserForMeeting ');


  7.    //将组件通过ReactDOM渲染到指定位置或者绑定到具体业务


  8.  }


  9. });


ecode前置加载文件中异步引入组件的方法,通常用于前置加载时扩展组件以及新页面开发


  1. const acParams = {


  2.    appId:'${appId}',


  3.    name:'NewBrowserForMeeting', //模块名称


  4.    isPage:false, //是否是路由页面


  5.    noCss:true, //是否禁止单独加载css,通常为了减少css数量,css默认前置加载


  6.    props:{} //组件参数


  7. }


  8. const Com = ecodeSDK.getAsyncCom(acParams);


5、ecode中使用组件库及工具库名称

PC端相关库


  1. const {Button} = antd;


  2. const {WeaTop} = ecCom;


  3. const {toJS} = mobx;


  4. const {Provider} = mobxReact;


MOBILE端相关库


  1. const { observer, inject } = mobxReact;


  2. const { withRouter } = ReactRouterDom;


  3. const { AtSomeone } = WeaverMobilePage;


  4. const { Button,Tools,WingBlank } = WeaverMobile;


6、文件夹和文件剪切、复制、黏贴

用来方便的对已有方案进行二次修改

文件夹剪切黏贴之后,appId将不会变化,而文件夹复制黏贴之后,将会产生新的appId


特色

不动标准功能,可以增加个性化二开

客户可以在无感知状态下

实现个性化二开

开发量小

开发周期快。

泛微华南大区总部

易用、好用的协同办公系统



【本文标签】:OA OA系统 泛微OA OA办公系统 OA办公软件 OA软件 移动OA OA平台 OA办公 协同办公OA 办公OA系统 泛微深圳.
【责任编辑】:泛微华南版权所有:http://www.hnweaver.com/ 转载请注明出处

热点新闻/ hot news

快速通道

总部-华南办事处-产品方案-客户案例-客户服务-诚聘英才-网站地图

关闭试用申请

关闭资料下载申请

扫一扫微信添加客服

试用申请

二维码 返回顶部 泛微华南大区二维码