8、cap4表单

8、cap4表单

1、cap4常见报错

常见报错:

错误:FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

解析:node内存不足

解决:运行setx NODE_OPTIONS --max_old_space_size=10240后关闭cmd再重新打开

错误rror loading PostCSS config: Loading PostCSS Plugin failed: Unknown browser query > 1%

解析:browserlist相关,暂未查询到具体原因

解决:删除.browserslistrc中的内容后正常。

错误:vue-style-loader!css-loader?{"minimize":false,"sourceMap":false}!.解析:sass找不到

解决:cd到node_module中,运行npm rebuild node-sass,再cd回工程中,运行npm update。

错误:These dependencies were not found:

*core-js/modules/es.array.concat.js in ./node_modules/cache-loader/dist/cjs.js??ref--12-0

解析:core-js组件异常

解决:删除node-moduls中的core-js、core-js-compat、core-util-js。然后cd到工程中npm i core-js --save

错误:编译form-mobile时报错 m_unflow

解析:新版本oa,依赖yarn

解决:cap-front目录 执行npm i -g yarn 再执行yarn install --ignore-engines

错误:Error occurred while trying to proxy request

解析:跨域错误

解决:配置proxy,增加secure: false 以及 https:true

错误:启动成功后,页面访问404

解析:访问源ip不通过。

解决:配置proxy,增加changeOrigin:true

2、工程及运行调试​

macro:toc

1 表单设计态 form-design 

     工程:cap-front/form-design    

     表单设计:form-design\src,启动命令是npm run dev ,打包命令npm run buildSeeyon

     操作设置:form-design\others\src\authDesign,启动命令是npm run devo ,打包命令npm run buildo

     业务列表设置:cap-core

     运行调试:

   (1)安装依赖(在form-design层级运行npm i)

   (2)代理服务器

            cap-front\form-design\bin\common-dev.js

            target:代理目标地址

            Cookie:将登录后的代理地址的Cookie复制替换

            然后运行

            运行后,将代理地址的设计器页面url  index.html后的复制下来,放到运行本地工程的地址后就可以调试了

表单设计

​​

操作设置   authDesign.html?

2、表单运行态:pc_form

     工程:cap-front/pc_form

     表单设计:pc_form\src,启动命令是npm run dev ,打包命令npm run buildSeeyon

     操作设置:pc_form\others\src\authDesign,启动命令是npm run devo ,打包命令npm run buildo

     业务列表设置:cap-core

     运行调试:

   (1)安装依赖(在pc_form层级运行npm i)

   (2)代理服务器:同设计态

3、模块

 

控件
(/components/ctrl_area)

布局
(ctrl_area\laylouts_list.vue)

添加布局:
- 在layouts_list.vue设置布局添加布局元素、设置基本参数。
- 在design_area里面添加布局元素文件。
- 在design_area/pc.vue、design_area/mb.vue引入布局元素文件。
- 在design_area/pc-dnd-mixin.js、design_area/mb-dnd-mixin.js里面编写插入相关逻辑(canDrop函数里面判断是否能插入),realDrop为插入逻辑。
- 在design_area\common-drop-mixin.js连添加布局初始属性,以及在dragExchangeRowPos函数添加位置调换逻辑

控件
(ctrl_area\ctrls_list.vue)

- 控件数据都是后端返回,重要的转换在ctrl_area\ctrlSource.js。typeToCtrlTypes变量添加类型到组件的映射,一般不用改。在这里面几个函数把控件类、按钮类分类并转换为页面使用的渲染数据

数据域
(ctrl_area\data_source.vue)

- 关键点在data_source.vue的toJSON方法,点击保存的时候,就是在这里生成所有的数据。
- 所有数据都是在数据域data_source.vue里面。进来就初始化数据。选中数据之后,将选中项存入vuex,触发其他模块(视图、组件属性)更新.

视图
(/components/design_area)

- 视图组件基本配置参数:cap-front\form-design\src\config\widget.js
- lib/unrendered-view-helper.js里面生成展示视图的fieldNames(如:field0001,field0008)
- 一些公共拖拽判定在design_area/pc-dnd-mixin.js、design_area/mb-dnd-mixin.js

设置
(/components/setting_area)

表单属性
(setting_area\form_setting.vue)

- 在form_setting.vue里面,实现跟组件属性差不多,情况还没那么多。form_setting文件夹下是表单设计器的所有弹窗

组件属性
(setting_area\ctrl_setting)

- 常用的是ctrl_setting_normal.vue。
- 配置属性分成attr(绑定在dom节点上的)和prop(用来配置运行态展示方式的)
添加配置属性方法:
- 搜索之前代码,按照之前代码形式在computed里面添加字段以及get、set方法。
- attr:this.activeCtrl.setAttr
- prop:除了this.activeCtrl.setProp之外,还需要在ctrls\base-mixin.js的props添加该字段

公共

- 通过widget-id获取组件实例:components/registry
- 通过组件name获取组件实例:lib\common_vms.js

 

4、cap-front工程

cap-front 外层yarn install 报错

解决方案:切换node版本为12.19.0  然后执行yarn install --ignore-engines

LICENSED UNDER CC BY-NC-SA 4.0