clickgo 5.12.1 → 5.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1925,6 +1925,61 @@ ECharts 配置选项。
1925
1925
 
1926
1926
  是否显示框选矩形(拖拽空白区域来多选对象的虚线选框),默认为 `true`。
1927
1927
 
1928
+ #### mode
1929
+
1930
+ `''` | `'pan'` | `'zoom'` | `'marquee'`
1931
+
1932
+ 画布交互模式,默认为 `''`(正常模式)。`'pan'` 为平移模式(类似 PS 按住空格键),开启后所有对象不响应事件,拖拽任意位置将平移整个画布 viewport。`'zoom'` 为拖拽缩放模式(类似 PS Z 键),开启后所有对象不响应事件,在画布任意位置按住鼠标并左右拖动即可缩放:向右拖动放大,向左拖动缩小,鼠标按下的点在缩放过程中保持位置不动(锁定点缩放)。`'marquee'` 为选区模式(类似 PS 选框工具),开启后所有对象不响应事件,在画布任意位置按住鼠标并拖动来绘制矩形选区虚线框,释放后根据 `marqueeCompose` 模式将新选区与已有选区进行组合。
1933
+
1934
+ #### marqueeCompose
1935
+
1936
+ `'replace'` | `'add'` | `'subtract'` | `'intersect'`
1937
+
1938
+ 选区组合模式,默认为 `'replace'`,仅在 `mode` 为 `'marquee'` 时有效。
1939
+
1940
+ - `'replace'` — 新选区替换已有选区
1941
+ - `'add'` — 新选区与已有选区合并
1942
+ - `'subtract'` — 从已有选区中减去新选区覆盖的区域
1943
+ - `'intersect'` — 仅保留已有选区与新选区的交集部分
1944
+
1945
+ 在 `'replace'` 模式下,若鼠标在已有选区内按下则进入移动选区状态(拖拽可移动整个选区);在选区外按下则创建新选区并替换旧选区。
1946
+
1947
+ #### zoomMin
1948
+
1949
+ `number` | `string`
1950
+
1951
+ 画布最小缩放倍数,默认为 `0.01`(即 1%)。
1952
+
1953
+ #### zoomMax
1954
+
1955
+ `number` | `string`
1956
+
1957
+ 画布最大缩放倍数,默认为 `100`(即 10000%)。
1958
+
1959
+ #### artboardWidth
1960
+
1961
+ `number` | `string`
1962
+
1963
+ 画板宽度(像素),默认为 `0`(不启用画板)。与 `artboardHeight` 同时设置时生效:画布扩展为铺满整个控件,中间显示指定尺寸的白色画板,四周为灰色背景。此模式下控制点与拖拽响应在整个控件范围内有效,对象移到画板外时控制点依然可见。
1964
+
1965
+ #### artboardHeight
1966
+
1967
+ `number` | `string`
1968
+
1969
+ 画板高度(像素),默认为 `0`(不启用画板)。
1970
+
1971
+ #### artboardBg
1972
+
1973
+ `string`
1974
+
1975
+ 画板外背景色,支持任意 CSS 颜色字符串,默认为 `#7a7a7a`。空字符串表示透明,可以透过到 HTML 背景层。仅在启用画板模式(`artboardWidth` 和 `artboardHeight` 同时非 0)时有效。
1976
+
1977
+ #### artboardFill
1978
+
1979
+ `string`
1980
+
1981
+ 画板内填充色,支持任意 CSS 颜色字符串,默认为 `#ffffff`(白色)。空字符串表示画板内容透明,可以透过到 HTML 背景层。仅在启用画板模式时有效。
1982
+
1928
1983
  ### 事件
1929
1984
 
1930
1985
  #### init
@@ -1939,9 +1994,108 @@ ECharts 配置选项。
1939
1994
 
1940
1995
  激活图层变更时触发(仅 `autoLayer` 为 `true` 时)。`event.detail.prev` 为变更前的图层 name,`event.detail.next` 为变更后的图层 name,取消选中时为空字符串。多选状态下 `event.detail.next` 同样为空字符串。
1941
1996
 
1997
+ #### marqueechange
1998
+
1999
+ `() => void`
2000
+
2001
+ 选区变更时触发,包括创建新选区、移动选区、组合选区、清除选区等所有导致选区矩形列表发生变化的操作。可在此事件中读取 `access.marquee` 获取最新的选区数据。
2002
+
2003
+ ### 属性
2004
+
2005
+ #### access.canvas
2006
+
2007
+ `fabric.Canvas | undefined`
2008
+
2009
+ fabric.js Canvas 对象,在 `init` 事件触发后可用。可通过此对象调用所有 fabric.js 原生 API,如添加/移除对象、获取图层列表、设置视图变换等。
2010
+
2011
+ #### access.artboard
2012
+
2013
+ `{ left: number; top: number; width: number; height: number; } | null`
2014
+
2015
+ 当前画板在 canvas 中的位置与尺寸。启用画板模式时(`artboardWidth` 和 `artboardHeight` 同时非 0)此值为对象,包含:
2016
+ - `left` — 画板左上角在 canvas 中的 x 坐标
2017
+ - `top` — 画板左上角在 canvas 中的 y 坐标
2018
+ - `width` — 画板宽度
2019
+ - `height` — 画板高度
2020
+
2021
+ 未启用画板模式时为 `null`。用户可据此计算对象相对于画板的坐标(如 `objLeft - access.artboard.left`)。
2022
+
2023
+ #### access.marquee
2024
+
2025
+ `Array<{ x: number; y: number; width: number; height: number; }>`
2026
+
2027
+ 当前选区矩形列表(canvas 内部坐标系),无选区时为空数组。每个矩形包含:
2028
+ - `x` — 矩形左上角在 canvas 中的 x 坐标
2029
+ - `y` — 矩形左上角在 canvas 中的 y 坐标
2030
+ - `width` — 矩形宽度
2031
+ - `height` — 矩形高度
2032
+
2033
+ 使用 `subtract` 或 `add` 组合模式时,列表中可能包含多个矩形。
2034
+
1942
2035
  ### 方法
1943
2036
 
1944
-
2037
+ #### zoomActual
2038
+
2039
+ 恢复画布为实际像素(1:1,即缩放倍数为 1),同时将画板(或 canvas 原点)居中显示。
2040
+
2041
+ #### zoomFit
2042
+
2043
+ 将画布缩放到恰好完整显示画板(有画板模式时)或 canvas(无画板时)的最大比例,同时居中显示。等同于「适应屏幕」。
2044
+
2045
+ #### zoomIn
2046
+
2047
+ 以画布中心为锁定点放大,每次放大 1.25 倍。
2048
+
2049
+ #### zoomOut
2050
+
2051
+ 以画布中心为锁定点缩小,每次缩小为原来的 1/1.25。
2052
+
2053
+ #### zoomTo
2054
+
2055
+ ```typescript
2056
+ zoomTo(zoom: number, screenX?: number, screenY?: number): void
2057
+ ```
2058
+
2059
+ 将画布缩放到指定倍数,以 `(screenX, screenY)` 为锁定点(canvas 元素内的屏幕坐标),内部调用 fabric 原生 `zoomToPoint`。缩放结果受 `zoomMin` / `zoomMax` 限制。
2060
+
2061
+ **参数**:
2062
+ - `zoom` — 目标缩放倍数
2063
+ - `screenX` — 锁定点在 canvas 元素内的屏幕 x 坐标,默认 `0`
2064
+ - `screenY` — 锁定点在 canvas 元素内的屏幕 y 坐标,默认 `0`
2065
+
2066
+ #### clearMarquee
2067
+
2068
+ 清除所有选区并触发 `marqueechange` 事件。切换 `mode` 不会自动清除选区,需用户手动调用此方法。
2069
+
2070
+ #### getMarqueeRect
2071
+
2072
+ ```typescript
2073
+ getMarqueeRect(): { x: number; y: number; width: number; height: number; } | null
2074
+ ```
2075
+
2076
+ 获取所有选区的外接矩形(canvas 内部坐标)。如果存在多个选区矩形(`add`/`subtract` 模式产生),返回包含所有矩形的最小外接矩形。无选区时返回 `null`。
2077
+
2078
+ #### getMarqueeObjects
2079
+
2080
+ ```typescript
2081
+ getMarqueeObjects(): fabric.FabricObject[]
2082
+ ```
2083
+
2084
+ 获取与选区有交集的 fabric 对象列表(排除内部画板矩形)。通过对象的包围盒与选区矩形进行交集判断。
2085
+
2086
+ #### setMarqueeRect
2087
+
2088
+ ```typescript
2089
+ setMarqueeRect(x: number, y: number, width: number, height: number): void
2090
+ ```
2091
+
2092
+ 以编程方式设置选区为单个矩形(canvas 内部坐标),替换现有选区并触发 `marqueechange` 事件。
2093
+
2094
+ **参数**:
2095
+ - `x` — 矩形左上角 x
2096
+ - `y` — 矩形左上角 y
2097
+ - `width` — 矩形宽度
2098
+ - `height` — 矩形高度
1945
2099
 
1946
2100
  ### 插槽
1947
2101
 
@@ -1965,8 +2119,96 @@ ECharts 配置选项。
1965
2119
 
1966
2120
  <!-- 关闭框选矩形 -->
1967
2121
  <fabric :selector="false" @init="init"></fabric>
2122
+
2123
+ <!-- 启用画板模式:控件铺满容器,中间显示 800×600 的白色画板,四周灰色 -->
2124
+ <fabric :artboard-width="800" :artboard-height="600" @init="init"></fabric>
2125
+
2126
+ <!-- 自定义画板模式颜色 -->
2127
+ <fabric :artboard-width="800" :artboard-height="600" :artboard-bg="'#cccccc'" :artboard-fill="'#eeeeee'" @init="init"></fabric>
2128
+
2129
+ <!-- 透明画板:透过到背景 -->
2130
+ <fabric :artboard-width="800" :artboard-height="600" :artboard-bg="''" :artboard-fill="''" @init="init"></fabric>
2131
+
2132
+ <!-- 开启平移模式(类似 PS 空格键) -->
2133
+ <fabric mode="pan" @init="init"></fabric>
2134
+
2135
+ <!-- 开启拖拽缩放模式(类似 PS Z 键) -->
2136
+ <fabric mode="zoom" @init="init"></fabric>
2137
+
2138
+ <!-- 开启选区模式(类似 PS 选框工具) -->
2139
+ <fabric mode="marquee" @init="init" @marqueechange="onMarqueeChange"></fabric>
2140
+
2141
+ <!-- 选区叠加模式 -->
2142
+ <fabric mode="marquee" marquee-compose="add" @init="init"></fabric>
2143
+
2144
+ <!-- 选区减去模式 -->
2145
+ <fabric mode="marquee" marquee-compose="subtract" @init="init"></fabric>
1968
2146
  ```
1969
2147
 
2148
+ **使用缩放功能**:
2149
+ ```typescript
2150
+ // 实际像素(1:1),画板居中
2151
+ this.refs.fabric.zoomActual();
2152
+
2153
+ // 适应屏幕,画板居中
2154
+ this.refs.fabric.zoomFit();
2155
+
2156
+ // 放大一级(以画布中心为锁定点)
2157
+ this.refs.fabric.zoomIn();
2158
+
2159
+ // 缩小一级(以画布中心为锁定点)
2160
+ this.refs.fabric.zoomOut();
2161
+
2162
+ // 自定义缩放到 2 倍,以指定点为锁定点
2163
+ this.refs.fabric.zoomTo(2, 400, 300);
2164
+ ```
2165
+
2166
+ **使用选区功能**:
2167
+ ```typescript
2168
+ // 清除所有选区
2169
+ this.refs.fabric.clearMarquee();
2170
+
2171
+ // 以编程方式设置选区
2172
+ this.refs.fabric.setMarqueeRect(100, 100, 200, 150);
2173
+
2174
+ // 获取选区外接矩形
2175
+ const rect = this.refs.fabric.getMarqueeRect();
2176
+ if (rect) {
2177
+ console.log(`选区: (${rect.x}, ${rect.y}) ${rect.width}×${rect.height}`);
2178
+ }
2179
+
2180
+ // 获取选区内的对象
2181
+ const objs = this.refs.fabric.getMarqueeObjects();
2182
+ console.log(`选区内有 ${objs.length} 个对象`);
2183
+ ```
2184
+
2185
+ **在 TypeScript 中使用画板和 canvas API**:
2186
+ ```typescript
2187
+ public init(canvas: fabric.Canvas): void {
2188
+ // canvas 为 fabric.Canvas 对象
2189
+ // 可调用任何 fabric.js 原生 API
2190
+ canvas.add(new fabric.Circle({
2191
+ left: 100,
2192
+ top: 100,
2193
+ radius: 50,
2194
+ fill: '#ff0000'
2195
+ }));
2196
+
2197
+ // 访问画板位置信息
2198
+ if (this.access.artboard) {
2199
+ console.log(`画板位置: (${this.access.artboard.left}, ${this.access.artboard.top})`);
2200
+ console.log(`画板尺寸: ${this.access.artboard.width} × ${this.access.artboard.height}`);
2201
+
2202
+ // 计算对象相对于画板的坐标
2203
+ const allObjs = canvas.getObjects();
2204
+ allObjs.forEach(obj => {
2205
+ const relX = obj.left - this.access.artboard.left;
2206
+ const relY = obj.top - this.access.artboard.top;
2207
+ console.log(`对象在画板中的相对位置: (${relX}, ${relY})`);
2208
+ });
2209
+ }
2210
+ }
2211
+
1970
2212
 
1971
2213
  ## file
1972
2214
  ---
@@ -4200,7 +4442,7 @@ CSS 样式字符串。
4200
4442
 
4201
4443
  `string`
4202
4444
 
4203
- 快捷键提示文本。
4445
+ 快捷键提示文本,以 `+` 分隔各键名,如 `Ctrl+Alt+T`、`Ctrl+Shift+S`。支持的修饰键:`Ctrl`、`Alt`、`Shift`、`Meta`,在 macOS 上会自动替换为对应符号(`⌘` `⌥` `⇧`)。若只传单个键名(如 `T`),则自动前置 `Ctrl`/`⌘`。
4204
4446
 
4205
4447
  #### type
4206
4448
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clickgo",
3
- "version": "5.12.1",
3
+ "version": "5.12.3",
4
4
  "description": "Background interface, software interface, mobile phone APP interface operation library.",
5
5
  "type": "module",
6
6
  "keywords": [