# pkpm-types

> pkpm-types

[TOC]

### 1.组件描述

本组件为图模大师及相关项目的 types 整合包，包括 enum 和 model等，采用 Typescript 语言。

### 2.前置条件

本组件依赖 windows 上挂载的 EventBus 对象进行通讯，EventBus 对象是北京电力及标准化平台已挂载好的对象,其他项目使用前请检查。

### 3.安装组件

```bash
npm install --save @pkpm/pkpm-types --registry=http://101.40.70.165:9010/
```

### 4.参数及方法

| 参数                                                         |
| :----------------------------------------------------------- |
| **enum**                                                     |
| ExtendedAttribute、ExtendedAttributeShow、ExtendOptionValue...... |
| **model**                                                    |
| AccountSpecModel、AccountInfoModel、AccountStateModel......  |
| **sdk-model**                                                |
| AccountModel、AccountProfileModel、AccountConfigModel......  |

### 5.使用方法

直接在需要使用的地方 import 引入需要的 enum 或 model 即可。

```tsx
import {
    EnvInfoStateModel,
    EnvStateEnum,
    EnvProductEnum,
    AccountStateModel,
    UploadModelForStore,
} from '@pkpm/pkpm-types';
...
@Getter('activeAccount') public activeAccount: AccountStateModel;
@Getter('uploads') uploads: UploadModelForStore;
...
envInfo.activationState !== EnvStateEnum.ACTIVATED
```

注意：

- 从服务器直接返回的模型应存储在 sdk-model 下，若发现之前的 model 存储位置不正确，可以移动到正确的目录下。    
- sdk-model 下的 model 不应存在可选字段。
- model 下存储的 model 是各项目使用的模型，有些模型扩展自服务器返回的模型。
- 在修改模型时，要注意修改涉及的范围、是否对其他项目有影响、如果有怎么解决等问题。
- 如果不能确定某个字段修改后的影响，建议先将其标注为可选字段。

### 6.打包方式

打包

```json
"build": "webpack --config webpack.config.js"
```

切换为私库

```bash
npm config set registry http://101.40.70.165:9010/
```

发布

```bash
npm publish:npmjs
```

### 7.参考用例

标准化产品：

​		主应用共享数据

​		首页

​		登录、注册等
