Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: enable 方法新增参数 allowCreate #88

Merged
merged 1 commit into from
Jul 13, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions docs/docs/method.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@ title: 方法
hide: true
---

| 名称 | 说明 | 类型 |
| ------------------- | -------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| enable | 开启绘制 | `() => void` |
| disable | 关闭绘制 | `() => void` |
| getData | 获取当期绘制数据 | `() => Feature[]` |
| setData | 覆盖并设置绘制数据 | `(features: Feature[]) => void` |
| clear | 清空绘制数据 | `(disable: boolean) => void` |
| show | 显示该 Draw 下所有的绘制物 | `() => void` |
| hide | 隐藏该 Draw 下所有的绘制物 | `() => void` |
| setActiveFeature | 将目标 Feature 设为激活态,可传目标 `Feature` 本身或其 `id`,传 `null` 或 `undefined` 则取消激活态 | `(feature: Feature | string | null | undefined) => void` |
| resetFeatures | 清除当前正在绘制的绘制物,同时将激活的绘制物置为普通态 | `() => void` |
| removeActiveFeature | 删除当前激活状态的绘制物 | `() => void` |
| removeFeature | 删除目标 Feature ,将目标 Feature 设为激活态,可传目标 Feature 本身或其 `properties` 中 `id` 字段 | `(feature: Feature | string) => void` |
| isEnable | 判断当前 Draw 是否在绘制状态 | `() => boolean` |
| setHelper | 设置当前绘制提示文案,建议通过配置进行自定义而非手动调用该方法 | `(content: string | Element | DocumentFragment) => boolean` |
| revertHistory | 回退至上一次保存的绘制状态 | `() => SourceData | undefined` |
| redoHistory | 重置到上一次回退 | `() => SourceData | undefined` |
| destroy | 销毁当前 Draw 实例 | `() => void` |
| 名称 | 说明 | 类型 |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| enable | 开启绘制,参数 `allowCreate` 用于控制 `enable` 之后是否支持新增绘制物,传 `false` 表示只允许编辑不允许新增,默认为 `true` | `(allowCreate: boolean = true) => void` |
| disable | 关闭绘制 | `() => void` |
| getData | 获取当期绘制数据 | `() => Feature[]` |
| setData | 覆盖并设置绘制数据 | `(features: Feature[]) => void` |
| clear | 清空绘制数据 | `(disable: boolean) => void` |
| show | 显示该 Draw 下所有的绘制物 | `() => void` |
| hide | 隐藏该 Draw 下所有的绘制物 | `() => void` |
| setActiveFeature | 将目标 Feature 设为激活态,可传目标 `Feature` 本身或其 `id`,传 `null` 或 `undefined` 则取消激活态 | `(feature: Feature | string | null | undefined) => void` |
| resetFeatures | 清除当前正在绘制的绘制物,同时将激活的绘制物置为普通态 | `() => void` |
| removeActiveFeature | 删除当前激活状态的绘制物 | `() => void` |
| removeFeature | 删除目标 Feature ,将目标 Feature 设为激活态,可传目标 Feature 本身或其 `properties` 中 `id` 字段 | `(feature: Feature | string) => void` |
| isEnable | 判断当前 Draw 是否在绘制状态 | `() => boolean` |
| setHelper | 设置当前绘制提示文案,建议通过配置进行自定义而非手动调用该方法 | `(content: string | Element | DocumentFragment) => boolean` |
| revertHistory | 回退至上一次保存的绘制状态 | `() => SourceData | undefined` |
| redoHistory | 重置到上一次回退 | `() => SourceData | undefined` |
| destroy | 销毁当前 Draw 实例 | `() => void` |
23 changes: 10 additions & 13 deletions src/mode/base-mode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ export abstract class BaseMode<
*/
protected enabled = false;

// 在 enable 时传入,用于判断当前是否支持添加操作
protected allowCreate = false;

/**
* scene相关事件管理
* @protected
Expand Down Expand Up @@ -93,7 +96,7 @@ export abstract class BaseMode<
const data = this.getData();
const { multiple, maxCount } = this.options;
const drawItem = data.find((item) => item.properties.isDraw);
if (!this.enabled) {
if (!this.enabled || !this.allowCreate) {
return false;
}
if ((multiple && maxCount <= 0) || drawItem) {
Expand Down Expand Up @@ -465,19 +468,16 @@ export abstract class BaseMode<
}

/**
* 启用Drawer
* 启用 Drawer
* @param allowCreate 是否支持添加操作
*/
enable() {
if (this.enabled) {
return;
}
this.enabled = true;
enable(allowCreate = true) {
this.allowCreate = allowCreate;
this.setHelper(this.addable ? 'draw' : null);
this.resetCursor();
this.enabled = true;
this.bindEnableEvent();
this.addCount = 0;
if (this.addable) {
this.setHelper('draw');
}
setTimeout(() => {
this.emit(DrawEvent.Enable, this);
}, 0);
Expand All @@ -487,9 +487,6 @@ export abstract class BaseMode<
* 禁用Drawer
*/
disable() {
if (!this.enabled) {
return;
}
this.resetFeatures();
this.enabled = false;
this.setCursor(null);
Expand Down