## UI模板
### 工程配置
* 工程地址</br>
  git@git.yonyou.com:litongf/new-template.git

* 运行配置</br>
  npm install </Br>
  npm start

* 开发/测试环境</br>
  需要首先登录workbench.yyuap.com</br>
  账号密码</br>
  hrtest888 / yonyou@123</br>
  workbench账号：15101148736 wj890801</br>
  注意不同的模板可能对应不同的租户。注意区分。

  本地环境</br>
  http://localhost:3000/

* 如何配置npm账号。仓库地址：https://www.npmjs.com/package/yyuap-template</br>
  1、执行npm addUser。</br>
  2、输入username(litongf)、password(yyuaptemplate)、email(litongf@yonyou.com)
  3、等待完成即可。

* 打包发布流程</br>
1、执行npm run build-npm进行npm打包，在dist下生成cjs文件夹。</br>
2、更改package.json中的版本号。</br>
3、执行npm publish进行发布。


### 工程目录
* 设计器 uitemplate_design
  ```
    ├── components (组件目录)
    │   ├── EventController(全局事件管理器)
    │   ├── layout(布局目录)
    │   └── view(控件目录)
    │   ├── sampleData.js(示例模板数据)
    │   ├── sampleTemplate.js(示例模板)
    │   ├── createTemplate.js(创建模板方法)
    ├── startCreate
    │   └── uiTemplate.js(UI模板入口文件)
    ├── style(样式文件)
    │   ├── Datecomponent.css
    │   ├── Form.css
    │   ├── font
    │   ├── iconfont.css
    │   ├── img
    │   ├── index.css
    │   └── layout.css
    └── util
        └── utils.js
  ```
* 组件目录详细说明
  ```
  ├── createTemplate.js
  ├── layout(布局控件存放目录)
  │   ├── ColumnPanel
  │   ├── GroupTable
  │   ├── HeadForm(生成主表)
  │   ├── Table
  │   ├── TableLayout
  │   └── index.js(调用布局组件引用这个)
  └── view (视图控件目录)
      ├── BaseFormItem(表单控件都需要引用文件，带有通用的样式)
      ├── CheckboxComponent
      ├── Datecomponent
      ├── Label
      ├── RadioBoxComponent
      ├── Reference
      ├── SelectComponent
      ├── TextArea
      ├── TextWithLabel
      └── index.js(调用视图组件引用这个)
  ```

* 注意事项
```
1、模板使用示例代码可参考demo目录。
2、部分遇到设计修改state中值不生效的问题可以尝试添加setTimeout。
3、多语言功能已经在全部视图控件中添加。根据viewModel中的mul_language进行选取语言。需要注意的是目前获取diwork语言的接口还没有确定下来，目前只是写成定值。
4、公式部分只在TextWithLabel视图组件中支持。配合设计器生成的formula的解析使用。
```

* 模板问题处理思路
```
1、当模板加在失败时，首先查看接口返回的数据结构和内容是否完整（包括componentInfo、dataSource、form、formLayout、metadatInfo、templateInfo），同时，查看console控制台，如果有错误会打印出相应的错误信息。
2、在模板某个功能控件出现bug时，应该首先判断问题是模板本身还是模板设计器配置输出的json有问题，如果是模板本身则要定位到具体的控件文件再进行问题跟踪。
3、如需要模板增加api接口则可以参照uiTemplate文件中prototype的格式进行扩展。
```







