cnhis-design-vue 3.1.38-beta.1 → 3.1.38-beta.2
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/README.md +123 -123
- package/es/components/fabric-chart/src/hooks/useBirthProcess.js +126 -46
- package/es/components/fabric-chart/src/hooks/useCenter.js +7 -10
- package/es/components/fabric-chart/src/hooks/useTemperatureChart.js +1 -1
- package/es/components/info-header/index.d.ts +9 -0
- package/es/components/info-header/src/InfoHeader.vue.d.ts +9 -0
- package/es/components/info-header/src/InfoHeader.vue.js +21 -6
- package/es/shared/assets/img/failure.js +1 -1
- package/es/shared/assets/img/failure.png.js +1 -1
- package/es/shared/assets/img/icon-asc.js +1 -1
- package/es/shared/assets/img/icon-desc.js +1 -1
- package/es/shared/assets/img/no-permission.js +1 -1
- package/es/shared/assets/img/no-permission.png.js +1 -1
- package/es/shared/assets/img/nodata.js +1 -1
- package/es/shared/assets/img/nodata.png.js +1 -1
- package/es/shared/assets/img/notfound.js +1 -1
- package/es/shared/assets/img/notfound.png.js +1 -1
- package/es/shared/assets/img/qr.js +1 -1
- package/es/shared/assets/img/qr.png.js +1 -1
- package/es/shared/assets/img/success.js +1 -1
- package/es/shared/assets/img/success.png.js +1 -1
- package/es/shared/assets/img/video.js +1 -1
- package/es/shared/assets/img/video.png.js +1 -1
- package/es/shared/assets/img/video_default_cover.js +1 -1
- package/es/shared/assets/img/video_default_cover.png.js +1 -1
- package/es/shared/assets/img/video_hover.js +1 -1
- package/es/shared/assets/img/video_play_hover.js +1 -1
- package/es/shared/assets/img/xb_big.js +1 -1
- package/es/shared/assets/img/xb_big.png.js +1 -1
- package/es/shared/assets/img/xb_small.js +1 -1
- package/es/shared/assets/img/xb_small.png.js +1 -1
- package/package.json +2 -2
- package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
- package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +0 -1
- package/es/components/bpmn-workflow/types/ModelingModule.d.ts +0 -1
- package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +0 -1
- package/es/components/fabric-chart/src/utils/index.d.ts +0 -6823
- package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +0 -86
- package/es/shared/utils/tapable/index.d.ts +0 -139
package/README.md
CHANGED
|
@@ -1,123 +1,123 @@
|
|
|
1
|
-
# 安装
|
|
2
|
-
|
|
3
|
-
```shell
|
|
4
|
-
npm i cnhis-design-vue@[版本号]
|
|
5
|
-
# or
|
|
6
|
-
yarn add cnhis-design-vue@[版本号] #推荐
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
## 1.全局引入
|
|
10
|
-
|
|
11
|
-
```typescript
|
|
12
|
-
// main.ts
|
|
13
|
-
import { createApp } from 'vue';
|
|
14
|
-
import App from './App.vue';
|
|
15
|
-
import 'cnhis-design-vue/es/packages/index.css';
|
|
16
|
-
import cui from 'cnhis-design-vue';
|
|
17
|
-
|
|
18
|
-
const app = createApp(App);
|
|
19
|
-
app.use(cui).mount('#app');
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## 2. 按需引入
|
|
23
|
-
|
|
24
|
-
组件现在支持了自动按需引入, 但是样式文件需要额外的处理
|
|
25
|
-
|
|
26
|
-
### 2.1 样式处理方式 1(按需引入样式)
|
|
27
|
-
|
|
28
|
-
```shell
|
|
29
|
-
# 安装自动导入样式的插件
|
|
30
|
-
npm i -d vite-plugin-style-import
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
```typescript
|
|
34
|
-
// vite.config.ts
|
|
35
|
-
import { defineConfig } from 'vite';
|
|
36
|
-
import { createStyleImportPlugin } from 'vite-plugin-style-import';
|
|
37
|
-
|
|
38
|
-
export default defineConfig({
|
|
39
|
-
plugins: [
|
|
40
|
-
// ...otherPlugins
|
|
41
|
-
createStyleImportPlugin({
|
|
42
|
-
libs: [
|
|
43
|
-
{
|
|
44
|
-
libraryName: 'cnhis-design-vue',
|
|
45
|
-
esModule: true,
|
|
46
|
-
ensureStyleFile: true,
|
|
47
|
-
resolveStyle: name => {
|
|
48
|
-
return `cnhis-design-vue/es/components/${ name.slice(2) }/style/index.css`;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
]
|
|
52
|
-
})
|
|
53
|
-
]
|
|
54
|
-
});
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### 2.2 样式处理方式 2(全局引入样式)
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
// main.ts
|
|
61
|
-
import 'cnhis-design-vue/es/components/index.css';
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## 3. 注意
|
|
65
|
-
|
|
66
|
-
由于 vxe-table 目前的引入方式是由组件 install 触发的,所以如果需要使用 c-grid/c-big-table 组件,需要全局注册二者任意一个
|
|
67
|
-
|
|
68
|
-
```typescript
|
|
69
|
-
// main.ts
|
|
70
|
-
import { createApp } from 'vue';
|
|
71
|
-
import App from './App.vue';
|
|
72
|
-
|
|
73
|
-
import { CGrid } from 'cnhis-design-vue';
|
|
74
|
-
// 或者
|
|
75
|
-
import { CBigTable } from 'cnhis-design-vue';
|
|
76
|
-
|
|
77
|
-
const app = createApp(App);
|
|
78
|
-
app.use(CGrid);
|
|
79
|
-
// 或者
|
|
80
|
-
app.use(CBigTable);
|
|
81
|
-
app.mount('#app');
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## 4.FAQ
|
|
85
|
-
|
|
86
|
-
### 4.1 项目打包后样式丢失
|
|
87
|
-
|
|
88
|
-
> 处理方法, 将 cnhis-design-vue 从 vendor 包中移除
|
|
89
|
-
|
|
90
|
-
```typescript
|
|
91
|
-
// vite.config.ts
|
|
92
|
-
import { defineConfig } from 'vite';
|
|
93
|
-
|
|
94
|
-
export default defineConfig({
|
|
95
|
-
rollupOptions: {
|
|
96
|
-
// ..otherOptions
|
|
97
|
-
output: {
|
|
98
|
-
dir: './dist',
|
|
99
|
-
manualChunks(id: string) {
|
|
100
|
-
if (id.includes('node_modules') && !id.includes('cnhis-design-vue')) {
|
|
101
|
-
return 'vendor';
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### 4.2 找不到文件
|
|
110
|
-
|
|
111
|
-
> 由于组件库输出文件类型由 js 修改成了 mjs, 如果配置了 resolve 属性的项目, 需要将 mjs 文件类型添加至 extensions 中
|
|
112
|
-
|
|
113
|
-
```javascript
|
|
114
|
-
// vite.config.ts
|
|
115
|
-
const config = {
|
|
116
|
-
// ...otherOptions
|
|
117
|
-
resolve: {
|
|
118
|
-
// ...otherOptions
|
|
119
|
-
// 如果没有配置, 则不用考虑
|
|
120
|
-
extensions: ['.js', '.ts', '.vue', '.json', '.mjs']
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
```
|
|
1
|
+
# 安装
|
|
2
|
+
|
|
3
|
+
```shell
|
|
4
|
+
npm i cnhis-design-vue@[版本号]
|
|
5
|
+
# or
|
|
6
|
+
yarn add cnhis-design-vue@[版本号] #推荐
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## 1.全局引入
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
// main.ts
|
|
13
|
+
import { createApp } from 'vue';
|
|
14
|
+
import App from './App.vue';
|
|
15
|
+
import 'cnhis-design-vue/es/packages/index.css';
|
|
16
|
+
import cui from 'cnhis-design-vue';
|
|
17
|
+
|
|
18
|
+
const app = createApp(App);
|
|
19
|
+
app.use(cui).mount('#app');
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 2. 按需引入
|
|
23
|
+
|
|
24
|
+
组件现在支持了自动按需引入, 但是样式文件需要额外的处理
|
|
25
|
+
|
|
26
|
+
### 2.1 样式处理方式 1(按需引入样式)
|
|
27
|
+
|
|
28
|
+
```shell
|
|
29
|
+
# 安装自动导入样式的插件
|
|
30
|
+
npm i -d vite-plugin-style-import
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
// vite.config.ts
|
|
35
|
+
import { defineConfig } from 'vite';
|
|
36
|
+
import { createStyleImportPlugin } from 'vite-plugin-style-import';
|
|
37
|
+
|
|
38
|
+
export default defineConfig({
|
|
39
|
+
plugins: [
|
|
40
|
+
// ...otherPlugins
|
|
41
|
+
createStyleImportPlugin({
|
|
42
|
+
libs: [
|
|
43
|
+
{
|
|
44
|
+
libraryName: 'cnhis-design-vue',
|
|
45
|
+
esModule: true,
|
|
46
|
+
ensureStyleFile: true,
|
|
47
|
+
resolveStyle: name => {
|
|
48
|
+
return `cnhis-design-vue/es/components/${ name.slice(2) }/style/index.css`;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
})
|
|
53
|
+
]
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 2.2 样式处理方式 2(全局引入样式)
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
// main.ts
|
|
61
|
+
import 'cnhis-design-vue/es/components/index.css';
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## 3. 注意
|
|
65
|
+
|
|
66
|
+
由于 vxe-table 目前的引入方式是由组件 install 触发的,所以如果需要使用 c-grid/c-big-table 组件,需要全局注册二者任意一个
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
// main.ts
|
|
70
|
+
import { createApp } from 'vue';
|
|
71
|
+
import App from './App.vue';
|
|
72
|
+
|
|
73
|
+
import { CGrid } from 'cnhis-design-vue';
|
|
74
|
+
// 或者
|
|
75
|
+
import { CBigTable } from 'cnhis-design-vue';
|
|
76
|
+
|
|
77
|
+
const app = createApp(App);
|
|
78
|
+
app.use(CGrid);
|
|
79
|
+
// 或者
|
|
80
|
+
app.use(CBigTable);
|
|
81
|
+
app.mount('#app');
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## 4.FAQ
|
|
85
|
+
|
|
86
|
+
### 4.1 项目打包后样式丢失
|
|
87
|
+
|
|
88
|
+
> 处理方法, 将 cnhis-design-vue 从 vendor 包中移除
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
// vite.config.ts
|
|
92
|
+
import { defineConfig } from 'vite';
|
|
93
|
+
|
|
94
|
+
export default defineConfig({
|
|
95
|
+
rollupOptions: {
|
|
96
|
+
// ..otherOptions
|
|
97
|
+
output: {
|
|
98
|
+
dir: './dist',
|
|
99
|
+
manualChunks(id: string) {
|
|
100
|
+
if (id.includes('node_modules') && !id.includes('cnhis-design-vue')) {
|
|
101
|
+
return 'vendor';
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 4.2 找不到文件
|
|
110
|
+
|
|
111
|
+
> 由于组件库输出文件类型由 js 修改成了 mjs, 如果配置了 resolve 属性的项目, 需要将 mjs 文件类型添加至 extensions 中
|
|
112
|
+
|
|
113
|
+
```javascript
|
|
114
|
+
// vite.config.ts
|
|
115
|
+
const config = {
|
|
116
|
+
// ...otherOptions
|
|
117
|
+
resolve: {
|
|
118
|
+
// ...otherOptions
|
|
119
|
+
// 如果没有配置, 则不用考虑
|
|
120
|
+
extensions: ['.js', '.ts', '.vue', '.json', '.mjs']
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useBirthProcessCumputedPoint } from './useCumputedPoint.js';
|
|
2
2
|
import useGrid from './useGrid.js';
|
|
3
|
-
import { drawLine,
|
|
3
|
+
import { drawLine, drawArrow, drawText, defaultTextStyle, drawPoint, defaultRectStyle } from './useDraw.js';
|
|
4
4
|
import { fabric } from '../utils/index.js';
|
|
5
5
|
import { getIndex, isEffectiveNode } from '../utils/utils.js';
|
|
6
6
|
import { cloneDeep } from 'lodash-es';
|
|
@@ -48,6 +48,7 @@ function useBirthProcess(canvas, propItems, emits, pointTipProps, pointMenuProps
|
|
|
48
48
|
var _a;
|
|
49
49
|
const pointList = [];
|
|
50
50
|
const lineList = [];
|
|
51
|
+
const otherList = [];
|
|
51
52
|
(_a = item.data) == null ? void 0 : _a.forEach((v, index) => {
|
|
52
53
|
const points = getPointer(v, item);
|
|
53
54
|
drawPointLine(points, v, index);
|
|
@@ -61,18 +62,19 @@ function useBirthProcess(canvas, propItems, emits, pointTipProps, pointMenuProps
|
|
|
61
62
|
v.prevPoint = prevPoint;
|
|
62
63
|
}
|
|
63
64
|
prevPoint = v || prevPoint;
|
|
64
|
-
v == null ? void 0 : v.bringToFront();
|
|
65
65
|
return v;
|
|
66
66
|
});
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
Promise.all(otherList).then((r) => {
|
|
68
|
+
canvas.value.add(...lineListFilter, ...res, ...r);
|
|
69
|
+
res.forEach((point) => {
|
|
70
|
+
point == null ? void 0 : point.bringToFront();
|
|
71
|
+
});
|
|
70
72
|
});
|
|
71
73
|
});
|
|
72
74
|
function drawPointLine(points, v, index) {
|
|
73
75
|
let point;
|
|
74
76
|
let line;
|
|
75
|
-
const { pointAttr = {}, lineAttr = {}, title = "", key, type: pointType = "circle" } = item;
|
|
77
|
+
const { pointAttr = {}, lineAttr = {}, title = "", key, type: pointType = "circle", childbirth = {} } = item;
|
|
76
78
|
const nextV = item.data[index + 1];
|
|
77
79
|
const nextPoint = getPointer(nextV, item);
|
|
78
80
|
if (points && nextPoint && !v.breakpoint) {
|
|
@@ -85,6 +87,25 @@ function useBirthProcess(canvas, propItems, emits, pointTipProps, pointMenuProps
|
|
|
85
87
|
...lineAttr
|
|
86
88
|
}) : null;
|
|
87
89
|
}
|
|
90
|
+
let arrowGroup;
|
|
91
|
+
let arrowGroupText;
|
|
92
|
+
if (v.childbirth) {
|
|
93
|
+
const top = points[1] + yCellHeight;
|
|
94
|
+
arrowGroup = drawArrow([points[0], points[1], top], childbirth.style || {});
|
|
95
|
+
otherList.push(arrowGroup);
|
|
96
|
+
if (childbirth.text) {
|
|
97
|
+
arrowGroupText = drawText([points[0] + xCellWidth / 2, top - yCellHeight / 2], {
|
|
98
|
+
value: String(childbirth.text),
|
|
99
|
+
...defaultTextStyle,
|
|
100
|
+
...{
|
|
101
|
+
originX: "left",
|
|
102
|
+
originY: "center"
|
|
103
|
+
},
|
|
104
|
+
...childbirth.style || {}
|
|
105
|
+
});
|
|
106
|
+
otherList.push(arrowGroupText);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
88
109
|
const previousLine = lineList[index - 1];
|
|
89
110
|
const pointAttrNew = {
|
|
90
111
|
origin: {
|
|
@@ -96,6 +117,8 @@ function useBirthProcess(canvas, propItems, emits, pointTipProps, pointMenuProps
|
|
|
96
117
|
},
|
|
97
118
|
leftLine: previousLine,
|
|
98
119
|
rightLine: line,
|
|
120
|
+
arrowGroup,
|
|
121
|
+
arrowGroupText,
|
|
99
122
|
...pointAttr,
|
|
100
123
|
...propItems.event
|
|
101
124
|
};
|
|
@@ -168,7 +191,6 @@ function useBirthProcess(canvas, propItems, emits, pointTipProps, pointMenuProps
|
|
|
168
191
|
break;
|
|
169
192
|
default: {
|
|
170
193
|
const index2 = getIndex(data.time, item.data);
|
|
171
|
-
console.log("index :>> ", index2);
|
|
172
194
|
item.data.splice(index2, 0, data);
|
|
173
195
|
break;
|
|
174
196
|
}
|
|
@@ -181,6 +203,8 @@ function useBirthProcess(canvas, propItems, emits, pointTipProps, pointMenuProps
|
|
|
181
203
|
point && removePoints.push(point);
|
|
182
204
|
(point == null ? void 0 : point.leftLine) && removePoints.push(point == null ? void 0 : point.leftLine);
|
|
183
205
|
(point == null ? void 0 : point.rightLine) && removePoints.push(point == null ? void 0 : point.rightLine);
|
|
206
|
+
(point == null ? void 0 : point.arrowGroup) && removePoints.push(point == null ? void 0 : point.arrowGroup);
|
|
207
|
+
(point == null ? void 0 : point.arrowGroupText) && removePoints.push(point == null ? void 0 : point.arrowGroupText);
|
|
184
208
|
});
|
|
185
209
|
return removePoints;
|
|
186
210
|
}
|
|
@@ -191,9 +215,11 @@ function useBirthProcess(canvas, propItems, emits, pointTipProps, pointMenuProps
|
|
|
191
215
|
drawPolyLine();
|
|
192
216
|
}
|
|
193
217
|
function updateLine(point) {
|
|
194
|
-
var _a, _b;
|
|
218
|
+
var _a, _b, _c, _d;
|
|
195
219
|
(_a = point.leftLine) == null ? void 0 : _a.setCoords().set({ x2: point.left, y2: point.top });
|
|
196
220
|
(_b = point.rightLine) == null ? void 0 : _b.setCoords().set({ x1: point.left, y1: point.top });
|
|
221
|
+
(_c = point.arrowGroup) == null ? void 0 : _c.setCoords().set({ left: point.left, top: point.top });
|
|
222
|
+
(_d = point.arrowGroupText) == null ? void 0 : _d.setCoords().set({ left: point.left + xCellWidth / 2, top: point.top + yCellHeight / 2 });
|
|
197
223
|
}
|
|
198
224
|
function moveLimit(point) {
|
|
199
225
|
const limitLeft = point.prevPoint ? point.prevPoint.left : originX;
|
|
@@ -282,7 +308,6 @@ function useBirthProcess(canvas, propItems, emits, pointTipProps, pointMenuProps
|
|
|
282
308
|
}
|
|
283
309
|
}
|
|
284
310
|
function clickMenu({ item, target }) {
|
|
285
|
-
console.log("item :>> ", item);
|
|
286
311
|
const params = {
|
|
287
312
|
...item.origin
|
|
288
313
|
};
|
|
@@ -303,54 +328,109 @@ function useBirthProcess(canvas, propItems, emits, pointTipProps, pointMenuProps
|
|
|
303
328
|
function drawOther() {
|
|
304
329
|
const lineData = Object.values(other);
|
|
305
330
|
const lines = [];
|
|
331
|
+
const alertData = {};
|
|
332
|
+
const alertItem = yScaleValue.find((item) => item.key === "cervix");
|
|
333
|
+
const alertStartPoint = alertItem.data.find((_data) => +_data.value === 3);
|
|
306
334
|
lineData.forEach((line) => {
|
|
307
335
|
if (!line.show)
|
|
308
336
|
return;
|
|
309
337
|
const { key } = line;
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
drawLine([originX, y, endX, y], {
|
|
315
|
-
...line
|
|
316
|
-
})
|
|
317
|
-
);
|
|
318
|
-
}
|
|
319
|
-
if (key === "alert") {
|
|
320
|
-
const item = yScaleValue.find((item2) => item2.key === "cervix");
|
|
321
|
-
const { data = [], key: key2, range } = item || {};
|
|
322
|
-
const startPoint = data.find((_data) => +_data.value === 3);
|
|
323
|
-
if (startPoint) {
|
|
324
|
-
const _time = 6 * 60 * 60 * 1e3;
|
|
325
|
-
const endPoint = {
|
|
326
|
-
time: format(new Date(new Date(startPoint.time).getTime() + _time), "yyyy-MM-dd HH:mm"),
|
|
327
|
-
value: 10
|
|
328
|
-
};
|
|
329
|
-
const [x1, y1] = [cumputedX(startPoint.time) - originX, endY - cumputedY(key2, range, startPoint.value)];
|
|
330
|
-
const [x2, y2] = [cumputedX(endPoint.time) - originX, endY - cumputedY(key2, range, endPoint.value)];
|
|
331
|
-
const k = (y2 - y1) / (x1 + x2);
|
|
332
|
-
const b = y1 - x1 * k;
|
|
333
|
-
let pointer1 = [-(b / k), 0];
|
|
334
|
-
if (pointer1[0] < 0) {
|
|
335
|
-
pointer1 = [originX, endY - b];
|
|
336
|
-
} else {
|
|
337
|
-
pointer1 = [originX + b / k, endY];
|
|
338
|
-
}
|
|
339
|
-
const _originY = cumputedY(key2, range, 10);
|
|
340
|
-
let pointer2 = [(endY - _originY - b) / k, endY - _originY];
|
|
341
|
-
if (pointer2[0] > endX - originX) {
|
|
342
|
-
pointer2 = [endX, endY - (k * (endX - originX) + b)];
|
|
343
|
-
} else {
|
|
344
|
-
pointer2 = [originX + (endY - _originY - b) / k, _originY];
|
|
345
|
-
}
|
|
338
|
+
switch (key) {
|
|
339
|
+
case "fetalPresentation": {
|
|
340
|
+
const { range } = yScaleValue.find((item) => item.key === key);
|
|
341
|
+
const y = cumputedY(key, range, 0);
|
|
346
342
|
lines.push(
|
|
347
|
-
drawLine([
|
|
343
|
+
drawLine([originX, y, endX, y], {
|
|
348
344
|
...line
|
|
349
345
|
})
|
|
350
346
|
);
|
|
347
|
+
break;
|
|
348
|
+
}
|
|
349
|
+
case "alert": {
|
|
350
|
+
if (alertStartPoint) {
|
|
351
|
+
const { key: key2, range } = alertItem || {};
|
|
352
|
+
const _time = 6 * 60 * 60 * 1e3;
|
|
353
|
+
const endPoint = {
|
|
354
|
+
time: format(new Date(new Date(alertStartPoint.time).getTime() + _time), "yyyy-MM-dd HH:mm"),
|
|
355
|
+
value: 10
|
|
356
|
+
};
|
|
357
|
+
const [x1, y1] = [
|
|
358
|
+
cumputedX(alertStartPoint.time) - originX,
|
|
359
|
+
endY - cumputedY(key2, range, alertStartPoint.value)
|
|
360
|
+
];
|
|
361
|
+
const [x2, y2] = [cumputedX(endPoint.time) - originX, endY - cumputedY(key2, range, endPoint.value)];
|
|
362
|
+
const k = (y2 - y1) / (x2 - x1);
|
|
363
|
+
const b = y1 - x1 * k;
|
|
364
|
+
const pointer = computePointer(k, b);
|
|
365
|
+
if (pointer.length > 0) {
|
|
366
|
+
lines.push(
|
|
367
|
+
drawLine(pointer, {
|
|
368
|
+
...line
|
|
369
|
+
})
|
|
370
|
+
);
|
|
371
|
+
Object.assign(alertData, {
|
|
372
|
+
k,
|
|
373
|
+
b
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
break;
|
|
378
|
+
}
|
|
379
|
+
case "handling": {
|
|
380
|
+
if (alertStartPoint) {
|
|
381
|
+
const { k, b } = alertData;
|
|
382
|
+
const _time = 4 * 60 * 60 * 1e3;
|
|
383
|
+
const endTime = cumputedX(
|
|
384
|
+
format(new Date(new Date(alertStartPoint.time).getTime() + _time), "yyyy-MM-dd HH:mm")
|
|
385
|
+
);
|
|
386
|
+
const a = endTime - cumputedX(alertStartPoint.time);
|
|
387
|
+
const _b = b - a * k;
|
|
388
|
+
const pointer = computePointer(k, _b);
|
|
389
|
+
if (pointer.length > 0) {
|
|
390
|
+
lines.push(
|
|
391
|
+
drawLine(pointer, {
|
|
392
|
+
...line
|
|
393
|
+
})
|
|
394
|
+
);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
break;
|
|
351
398
|
}
|
|
352
399
|
}
|
|
353
400
|
});
|
|
401
|
+
function computePointer(k, b) {
|
|
402
|
+
const { key, range } = alertItem || {};
|
|
403
|
+
const _originY = cumputedY(key, range, 10);
|
|
404
|
+
const startPointer1 = [0, b];
|
|
405
|
+
const startPointer2 = [-(b / k), 0];
|
|
406
|
+
const endPointer1 = [(endY - _originY - b) / k, endY - _originY];
|
|
407
|
+
const endPointer2 = [endX - originX, k * (endX - originX) + b];
|
|
408
|
+
let startPointer = [];
|
|
409
|
+
let endPointer = [];
|
|
410
|
+
if (isLinePointer(startPointer1) && isLimit2(startPointer1)) {
|
|
411
|
+
startPointer = getActualValue(startPointer1);
|
|
412
|
+
}
|
|
413
|
+
if (isLinePointer(startPointer2) && isLimit2(startPointer2)) {
|
|
414
|
+
startPointer = getActualValue(startPointer2);
|
|
415
|
+
}
|
|
416
|
+
if (isLinePointer(endPointer1) && isLimit2(endPointer1)) {
|
|
417
|
+
endPointer = getActualValue(endPointer1);
|
|
418
|
+
}
|
|
419
|
+
if (isLinePointer(endPointer2) && isLimit2(endPointer2)) {
|
|
420
|
+
endPointer = getActualValue(endPointer2);
|
|
421
|
+
}
|
|
422
|
+
function isLinePointer([x, y]) {
|
|
423
|
+
return Math.abs(y - k * x - b) <= 1;
|
|
424
|
+
}
|
|
425
|
+
function isLimit2([x, y]) {
|
|
426
|
+
const [_x, _y] = [...getActualValue([x, y])];
|
|
427
|
+
return _x >= originX && _x <= endX && _y >= _originY && _y <= endY;
|
|
428
|
+
}
|
|
429
|
+
function getActualValue([x, y]) {
|
|
430
|
+
return [originX + x, endY - y];
|
|
431
|
+
}
|
|
432
|
+
return [...startPointer, ...endPointer];
|
|
433
|
+
}
|
|
354
434
|
canvas.value.add(...lines);
|
|
355
435
|
}
|
|
356
436
|
function drawIcons() {
|
|
@@ -358,28 +358,25 @@ function useCenter(canvas, propItems, emits, cumputedX, cumputedY, getXValue, ge
|
|
|
358
358
|
const { value } = otherObj;
|
|
359
359
|
let reduceLine, reducePoint, noRiseText, arrowGroup, riseText, verifiedText;
|
|
360
360
|
if (v.noRise && noRiseStyle.show) {
|
|
361
|
-
if (
|
|
361
|
+
if (noRiseStyle.text) {
|
|
362
362
|
noRiseText = drawText([points[0], points[1] + 5], {
|
|
363
|
-
value:
|
|
363
|
+
value: noRiseStyle.text.split("").join("\n"),
|
|
364
364
|
originY: "top",
|
|
365
|
-
...noRiseStyle
|
|
365
|
+
...noRiseStyle.style || {}
|
|
366
366
|
});
|
|
367
367
|
otherList.push(noRiseText);
|
|
368
368
|
} else {
|
|
369
369
|
const top = points[1] + yCellHeight * 2;
|
|
370
|
-
arrowGroup = drawArrow([points[0], points[1], top], noRiseStyle);
|
|
370
|
+
arrowGroup = drawArrow([points[0], points[1], top], noRiseStyle.style || {});
|
|
371
371
|
otherList.push(arrowGroup);
|
|
372
372
|
}
|
|
373
373
|
}
|
|
374
374
|
if (v.rise && riseStyle.show) {
|
|
375
|
-
if (
|
|
376
|
-
v.rise = "\u5347\u6E29";
|
|
377
|
-
}
|
|
378
|
-
if (typeof v.rise === "string") {
|
|
375
|
+
if (riseStyle.text) {
|
|
379
376
|
riseText = drawText([points[0], points[1] - (value ? yCellHeight : 0) - 5], {
|
|
380
|
-
value:
|
|
377
|
+
value: riseStyle.text.split("").join("\n"),
|
|
381
378
|
originY: "bottom",
|
|
382
|
-
...riseStyle
|
|
379
|
+
...riseStyle.style || {}
|
|
383
380
|
});
|
|
384
381
|
otherList.push(riseText);
|
|
385
382
|
}
|
|
@@ -155,7 +155,7 @@ function useTemperatureChart(canvas, props, emits, canvasRef) {
|
|
|
155
155
|
const itemList = computed(() => {
|
|
156
156
|
const { left } = props.data;
|
|
157
157
|
return left.yScaleValue.map((item) => {
|
|
158
|
-
return item.dataList.map((v, dataIndex) => {
|
|
158
|
+
return item.dataList.filter((v) => v.show).map((v, dataIndex) => {
|
|
159
159
|
return {
|
|
160
160
|
...v,
|
|
161
161
|
bigType: setOtherType(v.title, item.type),
|
|
@@ -11,7 +11,9 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
11
11
|
patientInfo: {
|
|
12
12
|
type: import("vue").PropType<Partial<{
|
|
13
13
|
avatar: string;
|
|
14
|
+
avatarPreview: string;
|
|
14
15
|
avatarProps: string;
|
|
16
|
+
avatarPreviewProps: string;
|
|
15
17
|
name: string;
|
|
16
18
|
sex: string;
|
|
17
19
|
age: string;
|
|
@@ -69,7 +71,9 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
69
71
|
patientInfo: {
|
|
70
72
|
type: import("vue").PropType<Partial<{
|
|
71
73
|
avatar: string;
|
|
74
|
+
avatarPreview: string;
|
|
72
75
|
avatarProps: string;
|
|
76
|
+
avatarPreviewProps: string;
|
|
73
77
|
name: string;
|
|
74
78
|
sex: string;
|
|
75
79
|
age: string;
|
|
@@ -190,6 +194,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
190
194
|
NTag: any;
|
|
191
195
|
NScrollbar: any;
|
|
192
196
|
NImage: any;
|
|
197
|
+
NPopover: any;
|
|
193
198
|
SlotRender: import("vue").DefineComponent<{
|
|
194
199
|
renderer: {
|
|
195
200
|
type: import("vue").PropType<string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions> | import("../../../es/shared/types").Func<any[], any>>;
|
|
@@ -334,7 +339,9 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
334
339
|
patientInfo: {
|
|
335
340
|
type: import("vue").PropType<Partial<{
|
|
336
341
|
avatar: string;
|
|
342
|
+
avatarPreview: string;
|
|
337
343
|
avatarProps: string;
|
|
344
|
+
avatarPreviewProps: string;
|
|
338
345
|
name: string;
|
|
339
346
|
sex: string;
|
|
340
347
|
age: string;
|
|
@@ -387,7 +394,9 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
387
394
|
separator: string;
|
|
388
395
|
patientInfo: Partial<{
|
|
389
396
|
avatar: string;
|
|
397
|
+
avatarPreview: string;
|
|
390
398
|
avatarProps: string;
|
|
399
|
+
avatarPreviewProps: string;
|
|
391
400
|
name: string;
|
|
392
401
|
sex: string;
|
|
393
402
|
age: string;
|
|
@@ -20,7 +20,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
20
20
|
patientInfo: {
|
|
21
21
|
type: PropType<Partial<{
|
|
22
22
|
avatar: string;
|
|
23
|
+
avatarPreview: string;
|
|
23
24
|
avatarProps: string;
|
|
25
|
+
avatarPreviewProps: string;
|
|
24
26
|
name: string;
|
|
25
27
|
sex: string;
|
|
26
28
|
age: string;
|
|
@@ -76,7 +78,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
76
78
|
patientInfo: {
|
|
77
79
|
type: PropType<Partial<{
|
|
78
80
|
avatar: string;
|
|
81
|
+
avatarPreview: string;
|
|
79
82
|
avatarProps: string;
|
|
83
|
+
avatarPreviewProps: string;
|
|
80
84
|
name: string;
|
|
81
85
|
sex: string;
|
|
82
86
|
age: string;
|
|
@@ -184,6 +188,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
184
188
|
NTag: any;
|
|
185
189
|
NScrollbar: any;
|
|
186
190
|
NImage: any;
|
|
191
|
+
NPopover: any;
|
|
187
192
|
SlotRender: import("vue").DefineComponent<{
|
|
188
193
|
renderer: {
|
|
189
194
|
type: PropType<string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions> | Func<any[], any>>;
|
|
@@ -328,7 +333,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
328
333
|
patientInfo: {
|
|
329
334
|
type: PropType<Partial<{
|
|
330
335
|
avatar: string;
|
|
336
|
+
avatarPreview: string;
|
|
331
337
|
avatarProps: string;
|
|
338
|
+
avatarPreviewProps: string;
|
|
332
339
|
name: string;
|
|
333
340
|
sex: string;
|
|
334
341
|
age: string;
|
|
@@ -379,7 +386,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
379
386
|
separator: string;
|
|
380
387
|
patientInfo: Partial<{
|
|
381
388
|
avatar: string;
|
|
389
|
+
avatarPreview: string;
|
|
382
390
|
avatarProps: string;
|
|
391
|
+
avatarPreviewProps: string;
|
|
383
392
|
name: string;
|
|
384
393
|
sex: string;
|
|
385
394
|
age: string;
|