@cloud-app-dev/vidc 3.0.22 → 3.0.24
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.
- package/es/Config/interface.d.ts +2 -1
- package/es/RIO/demo.js +3 -1
- package/es/RIO/index.d.ts +32 -1
- package/es/RIO/index.js +26 -11
- package/es/ScreenPlayer/Record.js +1 -3
- package/es/ScreenPlayer/interface.d.ts +4 -1
- package/es/ScreenPlayer/useRecordList.js +48 -37
- package/es/useDrawRIO/index.d.ts +1 -0
- package/es/useDrawRIO/index.js +62 -32
- package/package.json +1 -1
package/es/Config/interface.d.ts
CHANGED
|
@@ -18,11 +18,12 @@ export type FeatureItemType = {
|
|
|
18
18
|
type: 1 | 2 | 3; //功能类型1:实际菜单,2:权限,3:虚拟分组
|
|
19
19
|
interfaceCodes: string[];
|
|
20
20
|
icon: string;
|
|
21
|
-
|
|
21
|
+
routerUrl: string;
|
|
22
22
|
sort: number;
|
|
23
23
|
children?: FeatureItemType[];
|
|
24
24
|
parentId?: string;
|
|
25
25
|
level?: number;
|
|
26
|
+
functionName?: string;
|
|
26
27
|
};
|
|
27
28
|
|
|
28
29
|
export type BSConfigType = {
|
package/es/RIO/demo.js
CHANGED
package/es/RIO/index.d.ts
CHANGED
|
@@ -2,7 +2,38 @@ import React from 'react';
|
|
|
2
2
|
import './index.less';
|
|
3
3
|
interface IRIOProps {
|
|
4
4
|
children?: React.ReactNode;
|
|
5
|
+
/**
|
|
6
|
+
* 调试模式,开启回绘制具体网格
|
|
7
|
+
*/
|
|
5
8
|
debug?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* 绘制数据变化
|
|
11
|
+
*/
|
|
12
|
+
onChange?: (rio: number[][]) => void;
|
|
13
|
+
/**
|
|
14
|
+
* 开启/关闭 标识
|
|
15
|
+
*/
|
|
16
|
+
isOpen?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* key变化回清楚画布
|
|
19
|
+
*/
|
|
20
|
+
renderKey?: React.Key;
|
|
21
|
+
/**
|
|
22
|
+
* rio共多少行
|
|
23
|
+
* @default 18
|
|
24
|
+
*/
|
|
25
|
+
row?: number;
|
|
26
|
+
/**
|
|
27
|
+
* rio 一行有多少个位置
|
|
28
|
+
* @default 32
|
|
29
|
+
*/
|
|
30
|
+
rowItems?: number;
|
|
31
|
+
}
|
|
32
|
+
declare function RIO({ children, debug, renderKey, onChange, isOpen, row, rowItems }: IRIOProps): JSX.Element;
|
|
33
|
+
declare namespace RIO {
|
|
34
|
+
var defaultProps: {
|
|
35
|
+
row: number;
|
|
36
|
+
rowItems: number;
|
|
37
|
+
};
|
|
6
38
|
}
|
|
7
|
-
declare function RIO({ children, debug }: IRIOProps): JSX.Element;
|
|
8
39
|
export default RIO;
|
package/es/RIO/index.js
CHANGED
|
@@ -1,29 +1,40 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _useUpdateEffect from "ahooks/es/useUpdateEffect";
|
|
2
2
|
import React, { useEffect, useRef } from 'react';
|
|
3
3
|
import useDrawRIO from '../useDrawRIO';
|
|
4
4
|
import "./index.css";
|
|
5
|
-
var ROW = 18;
|
|
6
|
-
var ROW_ITEMS = 32;
|
|
7
5
|
|
|
8
6
|
function RIO(_ref) {
|
|
9
7
|
var children = _ref.children,
|
|
10
|
-
debug = _ref.debug
|
|
8
|
+
debug = _ref.debug,
|
|
9
|
+
renderKey = _ref.renderKey,
|
|
10
|
+
onChange = _ref.onChange,
|
|
11
|
+
isOpen = _ref.isOpen,
|
|
12
|
+
row = _ref.row,
|
|
13
|
+
rowItems = _ref.rowItems;
|
|
11
14
|
var ref = useRef(null);
|
|
12
15
|
|
|
13
16
|
var _useDrawRIO = useDrawRIO(ref, {
|
|
14
|
-
row:
|
|
15
|
-
rowItems:
|
|
17
|
+
row: row,
|
|
18
|
+
rowItems: rowItems
|
|
16
19
|
}),
|
|
17
20
|
open = _useDrawRIO.open,
|
|
18
|
-
|
|
21
|
+
close = _useDrawRIO.close,
|
|
22
|
+
clear = _useDrawRIO.clear,
|
|
23
|
+
rio = _useDrawRIO.rio; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
19
24
|
|
|
20
|
-
_useMount(function () {
|
|
21
|
-
return open();
|
|
22
|
-
});
|
|
23
25
|
|
|
24
26
|
useEffect(function () {
|
|
25
|
-
|
|
27
|
+
return isOpen ? open() : close();
|
|
28
|
+
}, [isOpen]);
|
|
29
|
+
|
|
30
|
+
_useUpdateEffect(function () {
|
|
31
|
+
return clear();
|
|
32
|
+
}, [renderKey]);
|
|
33
|
+
|
|
34
|
+
_useUpdateEffect(function () {
|
|
35
|
+
return onChange === null || onChange === void 0 ? void 0 : onChange(rio);
|
|
26
36
|
}, [rio]);
|
|
37
|
+
|
|
27
38
|
return /*#__PURE__*/React.createElement("div", {
|
|
28
39
|
className: "rio-layout"
|
|
29
40
|
}, children, debug && /*#__PURE__*/React.createElement("div", {
|
|
@@ -44,4 +55,8 @@ function RIO(_ref) {
|
|
|
44
55
|
}));
|
|
45
56
|
}
|
|
46
57
|
|
|
58
|
+
RIO.defaultProps = {
|
|
59
|
+
row: 18,
|
|
60
|
+
rowItems: 32
|
|
61
|
+
};
|
|
47
62
|
export default RIO;
|
|
@@ -78,97 +78,105 @@ export default function useRecordList(list, queryRecord) {
|
|
|
78
78
|
|
|
79
79
|
case 7:
|
|
80
80
|
if ((_step = _iterator.n()).done) {
|
|
81
|
-
_context.next =
|
|
81
|
+
_context.next = 41;
|
|
82
82
|
break;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
dif = _step.value;
|
|
86
86
|
index = dif.idx;
|
|
87
|
-
item = list[index];
|
|
88
|
-
record = state.cidSegments[index];
|
|
87
|
+
item = list[index]; // 当前外部传入的对象
|
|
89
88
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
});
|
|
89
|
+
record = state.cidSegments[index]; //当前转换的播放对象
|
|
90
|
+
|
|
91
|
+
if (item) {
|
|
92
|
+
_context.next = 16;
|
|
93
|
+
break;
|
|
96
94
|
}
|
|
97
95
|
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
// 这里可能原来是空,也可能是外部删除
|
|
97
|
+
arr.push({
|
|
98
|
+
idx: index,
|
|
99
|
+
type: 'delete',
|
|
100
|
+
segments: []
|
|
101
|
+
});
|
|
102
|
+
_context.next = 39;
|
|
103
|
+
break;
|
|
104
|
+
|
|
105
|
+
case 16:
|
|
106
|
+
if (!(item.cid && item.date)) {
|
|
107
|
+
_context.next = 39;
|
|
100
108
|
break;
|
|
101
109
|
}
|
|
102
110
|
|
|
103
111
|
if (record) {
|
|
104
|
-
_context.next =
|
|
112
|
+
_context.next = 24;
|
|
105
113
|
break;
|
|
106
114
|
}
|
|
107
115
|
|
|
108
|
-
_context.next =
|
|
116
|
+
_context.next = 20;
|
|
109
117
|
return queryRecord({
|
|
110
118
|
cid: item.cid,
|
|
111
119
|
date: item.date,
|
|
112
120
|
recordType: item.recordType
|
|
113
121
|
});
|
|
114
122
|
|
|
115
|
-
case
|
|
123
|
+
case 20:
|
|
116
124
|
segments = _context.sent;
|
|
117
125
|
arr.push({
|
|
118
126
|
idx: index,
|
|
119
127
|
type: 'add',
|
|
120
128
|
segments: segments
|
|
121
129
|
});
|
|
122
|
-
_context.next =
|
|
130
|
+
_context.next = 39;
|
|
123
131
|
break;
|
|
124
132
|
|
|
125
|
-
case
|
|
133
|
+
case 24:
|
|
126
134
|
if (!(record.cid !== item.cid || record.recordType !== item.recordType)) {
|
|
127
|
-
_context.next =
|
|
135
|
+
_context.next = 31;
|
|
128
136
|
break;
|
|
129
137
|
}
|
|
130
138
|
|
|
131
|
-
_context.next =
|
|
139
|
+
_context.next = 27;
|
|
132
140
|
return queryRecord({
|
|
133
141
|
cid: item.cid,
|
|
134
142
|
date: item.date,
|
|
135
143
|
recordType: item.recordType
|
|
136
144
|
});
|
|
137
145
|
|
|
138
|
-
case
|
|
146
|
+
case 27:
|
|
139
147
|
_segments = _context.sent;
|
|
140
148
|
arr.push({
|
|
141
149
|
idx: index,
|
|
142
150
|
type: 'add',
|
|
143
151
|
segments: _segments
|
|
144
152
|
});
|
|
145
|
-
_context.next =
|
|
153
|
+
_context.next = 39;
|
|
146
154
|
break;
|
|
147
155
|
|
|
148
|
-
case
|
|
156
|
+
case 31:
|
|
149
157
|
if (!(record.date !== item.date)) {
|
|
150
|
-
_context.next =
|
|
158
|
+
_context.next = 38;
|
|
151
159
|
break;
|
|
152
160
|
}
|
|
153
161
|
|
|
154
|
-
_context.next =
|
|
162
|
+
_context.next = 34;
|
|
155
163
|
return queryRecord({
|
|
156
164
|
cid: item.cid,
|
|
157
165
|
date: item.date,
|
|
158
166
|
recordType: item.recordType
|
|
159
167
|
});
|
|
160
168
|
|
|
161
|
-
case
|
|
169
|
+
case 34:
|
|
162
170
|
_segments2 = _context.sent;
|
|
163
171
|
arr.push({
|
|
164
172
|
idx: index,
|
|
165
173
|
type: 'modify',
|
|
166
174
|
segments: _segments2
|
|
167
175
|
});
|
|
168
|
-
_context.next =
|
|
176
|
+
_context.next = 39;
|
|
169
177
|
break;
|
|
170
178
|
|
|
171
|
-
case
|
|
179
|
+
case 38:
|
|
172
180
|
if (Array.isArray(item.segments) && item.segments.length > 0) {
|
|
173
181
|
// 时间轴更新
|
|
174
182
|
_segments3 = item.segments;
|
|
@@ -181,28 +189,28 @@ export default function useRecordList(list, queryRecord) {
|
|
|
181
189
|
console.debug('无变化!跳过~');
|
|
182
190
|
}
|
|
183
191
|
|
|
184
|
-
case
|
|
192
|
+
case 39:
|
|
185
193
|
_context.next = 7;
|
|
186
194
|
break;
|
|
187
195
|
|
|
188
|
-
case
|
|
189
|
-
_context.next =
|
|
196
|
+
case 41:
|
|
197
|
+
_context.next = 46;
|
|
190
198
|
break;
|
|
191
199
|
|
|
192
|
-
case
|
|
193
|
-
_context.prev =
|
|
200
|
+
case 43:
|
|
201
|
+
_context.prev = 43;
|
|
194
202
|
_context.t0 = _context["catch"](5);
|
|
195
203
|
|
|
196
204
|
_iterator.e(_context.t0);
|
|
197
205
|
|
|
198
|
-
case
|
|
199
|
-
_context.prev =
|
|
206
|
+
case 46:
|
|
207
|
+
_context.prev = 46;
|
|
200
208
|
|
|
201
209
|
_iterator.f();
|
|
202
210
|
|
|
203
|
-
return _context.finish(
|
|
211
|
+
return _context.finish(46);
|
|
204
212
|
|
|
205
|
-
case
|
|
213
|
+
case 49:
|
|
206
214
|
setState(function (old) {
|
|
207
215
|
var flag = false; //标记是否更新
|
|
208
216
|
|
|
@@ -216,6 +224,7 @@ export default function useRecordList(list, queryRecord) {
|
|
|
216
224
|
|
|
217
225
|
switch (type) {
|
|
218
226
|
case 'add':
|
|
227
|
+
// 这里重置播放对象
|
|
219
228
|
flag = true;
|
|
220
229
|
var arr1 = item.segments ? [].concat(item.segments, segments) : segments;
|
|
221
230
|
arr1 = arr1.map(function (v) {
|
|
@@ -229,11 +238,13 @@ export default function useRecordList(list, queryRecord) {
|
|
|
229
238
|
break;
|
|
230
239
|
|
|
231
240
|
case 'delete':
|
|
241
|
+
// 这里一是保持无播放对象,二是删除当前播放对象
|
|
232
242
|
flag = true;
|
|
233
243
|
cidSegments[index] = undefined;
|
|
234
244
|
break;
|
|
235
245
|
|
|
236
246
|
case 'modify':
|
|
247
|
+
// 这里属于相同的播放对象,需要追加播放片断
|
|
237
248
|
flag = true;
|
|
238
249
|
cidSegments[index].date = item.date;
|
|
239
250
|
cidSegments[index].recordType = item.recordType;
|
|
@@ -260,12 +271,12 @@ export default function useRecordList(list, queryRecord) {
|
|
|
260
271
|
});
|
|
261
272
|
});
|
|
262
273
|
|
|
263
|
-
case
|
|
274
|
+
case 50:
|
|
264
275
|
case "end":
|
|
265
276
|
return _context.stop();
|
|
266
277
|
}
|
|
267
278
|
}
|
|
268
|
-
}, _callee, null, [[5,
|
|
279
|
+
}, _callee, null, [[5, 43, 46, 49]]);
|
|
269
280
|
}));
|
|
270
281
|
}, [list, listKey, prevListKey]);
|
|
271
282
|
|
package/es/useDrawRIO/index.d.ts
CHANGED
package/es/useDrawRIO/index.js
CHANGED
|
@@ -136,13 +136,18 @@ function useDrawRIO(target, _ref) {
|
|
|
136
136
|
target: target
|
|
137
137
|
});
|
|
138
138
|
|
|
139
|
-
|
|
139
|
+
var clearCanvas = function clearCanvas() {
|
|
140
140
|
var canvas = getTargetElement(target);
|
|
141
141
|
var ctx = canvas.getContext('2d'); // 重置画布
|
|
142
142
|
|
|
143
|
-
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
143
|
+
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
var drawSavaArea = function drawSavaArea(area) {
|
|
147
|
+
var canvas = getTargetElement(target);
|
|
148
|
+
var ctx = canvas.getContext('2d'); // 绘制已完成的图形
|
|
144
149
|
|
|
145
|
-
|
|
150
|
+
area.forEach(function (item) {
|
|
146
151
|
// 绘制坐标线
|
|
147
152
|
var _item = _toArray(item),
|
|
148
153
|
startPos = _item[0],
|
|
@@ -164,13 +169,17 @@ function useDrawRIO(target, _ref) {
|
|
|
164
169
|
ctx.fill();
|
|
165
170
|
ctx.stroke();
|
|
166
171
|
});
|
|
172
|
+
};
|
|
167
173
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
174
|
+
var canvasRendering = function canvasRendering(points, tempPos) {
|
|
175
|
+
if (points.length === 0) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
171
178
|
|
|
179
|
+
var canvas = getTargetElement(target);
|
|
180
|
+
var ctx = canvas.getContext('2d'); // 绘制坐标点
|
|
172
181
|
|
|
173
|
-
|
|
182
|
+
points.forEach(function (_ref8) {
|
|
174
183
|
var _ref9 = _slicedToArray(_ref8, 2),
|
|
175
184
|
x = _ref9[0],
|
|
176
185
|
y = _ref9[1];
|
|
@@ -181,9 +190,9 @@ function useDrawRIO(target, _ref) {
|
|
|
181
190
|
ctx.fill();
|
|
182
191
|
}); // 绘制坐标线
|
|
183
192
|
|
|
184
|
-
var
|
|
185
|
-
startPos =
|
|
186
|
-
pos =
|
|
193
|
+
var _points = _toArray(points),
|
|
194
|
+
startPos = _points[0],
|
|
195
|
+
pos = _points.slice(1);
|
|
187
196
|
|
|
188
197
|
ctx.beginPath();
|
|
189
198
|
ctx.moveTo.apply(ctx, _toConsumableArray(startPos));
|
|
@@ -195,9 +204,9 @@ function useDrawRIO(target, _ref) {
|
|
|
195
204
|
return ctx.lineTo(x, y);
|
|
196
205
|
});
|
|
197
206
|
|
|
198
|
-
var
|
|
199
|
-
x =
|
|
200
|
-
y =
|
|
207
|
+
var _tempPos = _slicedToArray(tempPos, 2),
|
|
208
|
+
x = _tempPos[0],
|
|
209
|
+
y = _tempPos[1];
|
|
201
210
|
|
|
202
211
|
if (typeof x === 'number' && typeof y === 'number') {
|
|
203
212
|
ctx.lineTo(x, y);
|
|
@@ -209,7 +218,14 @@ function useDrawRIO(target, _ref) {
|
|
|
209
218
|
ctx.fillStyle = 'rgba(243,45,55,0.5)';
|
|
210
219
|
ctx.fill();
|
|
211
220
|
ctx.stroke();
|
|
212
|
-
}
|
|
221
|
+
}; //绘制hook
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
useEffect(function () {
|
|
225
|
+
clearCanvas();
|
|
226
|
+
drawSavaArea(state.saveArea);
|
|
227
|
+
canvasRendering(state.pos, state.tempPos); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
228
|
+
}, [state.pos, state.saveArea, state.tempPos]);
|
|
213
229
|
var status = useMemo(function () {
|
|
214
230
|
return state.isOpen ? 'open' : 'close';
|
|
215
231
|
}, [state.isOpen]);
|
|
@@ -230,11 +246,23 @@ function useDrawRIO(target, _ref) {
|
|
|
230
246
|
});
|
|
231
247
|
};
|
|
232
248
|
|
|
249
|
+
var clear = function clear() {
|
|
250
|
+
return setState(function (old) {
|
|
251
|
+
return Object.assign(Object.assign({}, old), {
|
|
252
|
+
pos: [],
|
|
253
|
+
saveArea: [],
|
|
254
|
+
tempPos: []
|
|
255
|
+
});
|
|
256
|
+
});
|
|
257
|
+
};
|
|
258
|
+
|
|
233
259
|
var rio = useMemo(function () {
|
|
260
|
+
var rioArr = [];
|
|
234
261
|
var canvas = getTargetElement(target);
|
|
235
262
|
|
|
236
263
|
if (!canvas) {
|
|
237
|
-
|
|
264
|
+
rioArr = new Array(row).fill(new Array(rowItems).fill(0));
|
|
265
|
+
return rioArr;
|
|
238
266
|
}
|
|
239
267
|
|
|
240
268
|
var _canvas$getBoundingCl2 = canvas.getBoundingClientRect(),
|
|
@@ -242,38 +270,40 @@ function useDrawRIO(target, _ref) {
|
|
|
242
270
|
height = _canvas$getBoundingCl2.height;
|
|
243
271
|
|
|
244
272
|
var itemWidth = width / rowItems;
|
|
245
|
-
var itemHeight = height / row;
|
|
246
|
-
|
|
273
|
+
var itemHeight = height / row; // 转换当前绘制完成的区域为多边形
|
|
274
|
+
|
|
275
|
+
var areas = state.saveArea.map(function (item) {
|
|
276
|
+
return lineToPolygon(lineString(item));
|
|
277
|
+
});
|
|
247
278
|
|
|
248
279
|
for (var i = 0; i < row; i++) {
|
|
249
280
|
var arr = [];
|
|
250
281
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
var rect = lineToPolygon(lineString([[k * itemWidth, i * itemHeight], [(k + 1) * itemWidth, i * itemHeight], [(k + 1) * itemWidth, (i + 1) * itemHeight], [k * itemWidth, (i + 1) * itemHeight], [k * itemWidth, i * itemHeight]]));
|
|
255
|
-
|
|
256
|
-
for (var j = 0; j < state.saveArea.length; j++) {
|
|
257
|
-
var item = state.saveArea[j];
|
|
258
|
-
var area = lineToPolygon(lineString(item));
|
|
259
|
-
flag = !booleanDisjoint(rect, area);
|
|
282
|
+
var _loop = function _loop(k) {
|
|
283
|
+
// x表示当地的纬度,y表示当地的经度
|
|
284
|
+
var lines = lineString([[k * itemWidth, i * itemHeight], [(k + 1) * itemWidth, i * itemHeight], [(k + 1) * itemWidth, (i + 1) * itemHeight], [k * itemWidth, (i + 1) * itemHeight], [k * itemWidth, i * itemHeight]]); // 转换每格为多边形
|
|
260
285
|
|
|
261
|
-
|
|
262
|
-
break;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
286
|
+
var rect = lineToPolygon(lines); //标记当前rect 是否与绘制的图形相交
|
|
265
287
|
|
|
288
|
+
var flag = areas.findIndex(function (area) {
|
|
289
|
+
return !booleanDisjoint(rect, area);
|
|
290
|
+
}) > -1;
|
|
266
291
|
arr.push(flag ? 1 : 0);
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
for (var k = 0; k < rowItems; k++) {
|
|
295
|
+
_loop(k);
|
|
267
296
|
}
|
|
268
297
|
|
|
269
|
-
|
|
298
|
+
rioArr.push(arr);
|
|
270
299
|
}
|
|
271
300
|
|
|
272
|
-
return
|
|
301
|
+
return rioArr;
|
|
273
302
|
}, [row, rowItems, state.saveArea, target]);
|
|
274
303
|
return {
|
|
275
304
|
open: open,
|
|
276
305
|
close: close,
|
|
306
|
+
clear: clear,
|
|
277
307
|
rio: rio,
|
|
278
308
|
status: status
|
|
279
309
|
};
|