泛微e-cology 9.0的ecode核心是解决EC所有界面无侵入定制和扩展二次开发,采用动态注册,不直接修改源码的方案解决开发需求。除了新开发页面的之外,它还支持标准页面的修改。
ecode包含了整套前端编辑器、编译器,可以让用户无需搭建开发环境直接通过浏览器开始single page前端开发,同时采用ecode开发的内容 都是插件化,支持一键共享、复用、二次封装。
基于泛微e-cology 9.0测试安装包的二次开发环境;基于公司内容OA搭建备份后的二次开发环境。
1、后端开发环境配置
目前仅支持的浏览器内核谷歌chrome,国产环境请用360
下载并覆盖ecology的ecode通用升级包(注意标准kb1907+ 默认包含ecode)
覆盖后到ecology访问地址进入ecode界面:ip:port/ecode
只要左侧菜单正常加载系统配置、默认分类,并且无报错就代表安装成功
导入最新官方参考案例,首先在右上角点击进入版本说明界面,找到案例下载地址,点击下载
下载后在ecode的导入界面,选择zip,点击导入
[你放git项目的路径]/ecology-9-demo/ecology/classbean
注意要删除一个影响编译的jar,路径在/ecology/web-inf/lib/ecloudstore.jar,这个文件在新版本会直接重置成0kb,旧版本kb下要自行处理
另外需要注释掉webxml中一个过滤器,如果存在的话,此过滤器后续版本也会统一清除
注释掉resin自带编译,如果不注释会导致无法编译jsp
修改root-directory,如果指定错误会导致404报错
产生新数据
目前支持新建分类、文件夹、js、css、md
发布成功文件夹变成橙色
作用是发布下面代码到EC,只有文件夹支持发布,文件夹选择了发布,其下面的文件会自动进行构建发布,开发者只需要编写代码,文件夹下的js和css就会分别被自动编译合并打包到一个js和css下,位置位于/cloudstore/release/${appId},此文件默认是不加载的,都是利用sdk去触发加载
文件图标出现p标志
js、css支持前置加载,选择了前置加载将会在系统和组件未加载前执行,js在前置加载时可以用来进行一些底层全局事件注册,css在前置加载时可以用来做一些全局样式修改,当然也可以通过代码判断去区分作用范围,前置加载的所有脚本将会被合并到/cloudstore/dev/init.js和/cloudstore/dev/init.css
react可以不用引入,全局默认存在
import React from "react"; //ecode中不用写
ecode模块引入与nodejs模块化中的import、export不同,需要修改成解构赋值
import {Button} from 'antd';
import {WeaInput} from 'ecCom';
改为
const {Button} = antd; //antd全局存在
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,此方案可以有效管理全局组件
//NewBrowserForMeeting是对应组件名
ecodeSDK.setCom('${appId}','NewBrowserForMeeting',NewBrowserForMeeting);
ecode导入全局模块需要使用异步的方法一,通常用于表单和建模的代码块扩展
ecodeSDK.load({
id:'${appId}', //如果在ecode外部(比如表单)使用,${appId}需要自行获取字符串
noCss:true, //是否禁止单独加载css,通常为了减少css数量,css默认前置加载
cb:function () {
//回调的时候可以获取组件
var Com = ecodeSDK.getCom('${appId}','NewBrowserForMeeting ');
//将组件通过ReactDOM渲染到指定位置或者绑定到具体业务
}
});
ecode前置加载文件中异步引入组件的方法,通常用于前置加载时扩展组件以及新页面开发
const acParams = {
appId:'${appId}',
name:'NewBrowserForMeeting', //模块名称
isPage:false, //是否是路由页面
noCss:true, //是否禁止单独加载css,通常为了减少css数量,css默认前置加载
props:{} //组件参数
}
const Com = ecodeSDK.getAsyncCom(acParams);
PC端相关库
const {Button} = antd;
const {WeaTop} = ecCom;
const {toJS} = mobx;
const {Provider} = mobxReact;
MOBILE端相关库
const { observer, inject } = mobxReact;
const { withRouter } = ReactRouterDom;
const { AtSomeone } = WeaverMobilePage;
const { Button,Tools,WingBlank } = WeaverMobile;
用来方便的对已有方案进行二次修改
文件夹剪切黏贴之后,appId将不会变化,而文件夹复制黏贴之后,将会产生新的appId
客户可以在无感知状态下
实现个性化二开
开发量小
开发周期快。
易用、好用的协同办公系统
近期,个别不法人员盗用我公司名义进行网上推广,销售未有服务,严重损害了我公司名誉。我公司对于上述恶劣欺诈行为特别声明如下:
1.我公司唯一网站为www.hnweaver.com,唯一总机号码为0755-83144692。此外的任何网站或电话(包括手机号码等)均属假冒,与我公司无关。
2.我公司主要从事软件、实施服务、售后服务等领域的产品销售与服务,其他未经授权恶意复制我公司网站内容均非我司授权,请大家提高警惕,谨防受骗!
3.任何盗用我公司名义进行销售的行为均为侵权,我司已向公安部经济犯罪信息举报中心、中国互联网违法和不良信息举报中心进行了举报,并将保留追究其法律责任的权利。
4.以上声明内容的最终解释权归泛微华南官方网站所有。
特此声明!
版权所有,未经许可,禁止复制、链接或建立镜像。