前言:
适用于绩效GO、团队绩效、面试GO、天天荐轻应用复杂的二开功能,经确认需要申请源码的情况。
源码申请流程:
参考以下步骤:
1. mbos开发步骤
1.1 扩展开发
找到对应版本要扩展的轻应用,点击拓展开发(以下以绩效GO为例),如图:
1.2 修改EID
如图,将文件路径中得EID(企业号)修改为客户自己的EID(企业号):
1.3 替换JS文件
替换的文件,js如图,先删除再本地上传即可,按需替换,哪个有修改替换哪个,认准文件路径,不要误删其他应用文件:
1.4 替换CSS文件
先删除再本地上传即可,按需替换,哪个有修改替换哪个,认准文件路径,不要误删其他应用文件:
1.5 修改随机数
修改下替换文件后的随机数,目的清缓存
1.6 接口调试
点击保存,即可预览,调试窗口打开,调试接口,如图:
1.7 服务端函数
(旧服务端函数)如果新增开发接口,或传参修改,需同步添加或修改服务端函数,格式参照已写好的,需注意,服务端函数参数数量、顺序要与js代码中方法的参数数量、顺序保持一致,否则会导致溢出报错:
(新服务端函数)整个应用只需写一个服务端函数即可,后台新增接口也不需要重新定义服务端函数了,如图:
代码如下:
var easNames = JavaImporter();
easNames.importPackage(Packages.com.kingdee.shr.base.syssetting.app.osf);
easNames.importPackage(Packages.com.kingdee.shr.base.syssetting.web.json);
with(easNames){
var ctx = context.getBosContext();
var methodName = context.getParamAsString(0);
var args = context.getParamAsString(1);
// var params = JSONUtils.convertJsonToObject(args); // 8611版本不支持,换种写法
var params = JSON.parse(args);
var result= OSFAppUtil.callService(ctx,methodName,params);
context.setResult(result);
}
调用示例:
1.8 图片上传
如需上传图片,选择控件—点击图片(如图1)。然后选中左侧大纲中img标识,点击右侧上传图片(如图2)。最后删除图片控件(如图3):
注意:操作后都要点击右上角保存按钮。
2. 源码说明
轻应用开发,用的vue框架,需要了解相关语法和插件。
2.1 开发环境准备
拿到源码,确认是否具备开发环境,需要安装nodeJs、npm。可参考
https://segmentfault.com/a/1190000011275993
2.2 版本查看
可在根目录下的package.json中查看框架、组件的版本。
2.3 命令行语句
启动命令行,打开到项目目录,执行相应命令。cnpm install --安装组件,cnpm run dev --启动环境,就可以调试页面代码了,cnpm run build --构建。
2.4 需要修改的.vue文件
主要修改的是views目录下的.vue文件,首页一般都是home.vue文件,如图:
其他页面可根据地址栏中参数确定,如图:
某些页面会引用一些自定义组件:
2.5 需要修改的静态资源文件
静态资源文件在static路径下,按需修改。
2.6 修改图片路径
有上传图片的话,需要修改图片路径,在src/assets/scss/下的common.scss文件,搜索4000148,改为客户的EID,文件路径修改为当前扩展开发的路径:
2.7 构建后的文件路径
构建成功后,在mbos中上传时,需要替换的文件在目录dist/static/下的js、css文件夹。
如果修改了.vue文件,简单修改只替换app.PERF.css、app.PERF.js即可,如果新引入组件、组件版本更新等,manifest.PERF.js、vendor.PERF.js也要一起替换。
多语言版本词条有修改的话,替换zh_cn.js文件。
其他js、css文件,有修改才替换。
2.8 模拟数据
便于本地开发、调试,支持内置模拟数据。
绩效GO、团队绩效,模拟数据在db.json文件内:
面试GO、天天荐,模拟数据在build目录下的data.json文件内: