cnhis-design-vue 3.4.0-beta.40 → 3.4.0-beta.43
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 +87 -87
- package/es/components/fabric-chart/src/hooks/electrocardiogram/hooks/useDetailEvent.js +14 -11
- package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useLeft.js +2 -2
- package/es/components/field-set/src/FieldColor.vue.d.ts +1 -1
- package/es/components/field-set/src/FieldFilter.vue.d.ts +1 -1
- package/es/components/field-set/src/FieldSet.vue.d.ts +1 -1
- package/es/components/field-set/src/components/table-row.vue.d.ts +1 -1
- package/es/components/form-render/src/components/renderer/radio_checkbox.js +3 -2
- package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
- package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +2 -1
- package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
- package/es/env.d.ts +25 -25
- package/es/shared/package.json.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
@@ -1,87 +1,87 @@
|
|
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.FAQ
|
65
|
-
|
66
|
-
### 3.1 项目打包后样式丢失
|
67
|
-
|
68
|
-
处理方法, 将 cnhis-design-vue 从 vendor 包中移除 (没有出现此问题则不需要)
|
69
|
-
|
70
|
-
```typescript
|
71
|
-
// vite.config.ts
|
72
|
-
import { defineConfig } from 'vite';
|
73
|
-
|
74
|
-
export default defineConfig({
|
75
|
-
build: {
|
76
|
-
rollupOptions: {
|
77
|
-
// ..otherOptions
|
78
|
-
output: {
|
79
|
-
dir: './dist',
|
80
|
-
manualChunks: {
|
81
|
-
'cnhis-vendor': ['cnhis-design-vue']
|
82
|
-
}
|
83
|
-
}
|
84
|
-
}
|
85
|
-
}
|
86
|
-
});
|
87
|
-
```
|
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.FAQ
|
65
|
+
|
66
|
+
### 3.1 项目打包后样式丢失
|
67
|
+
|
68
|
+
处理方法, 将 cnhis-design-vue 从 vendor 包中移除 (没有出现此问题则不需要)
|
69
|
+
|
70
|
+
```typescript
|
71
|
+
// vite.config.ts
|
72
|
+
import { defineConfig } from 'vite';
|
73
|
+
|
74
|
+
export default defineConfig({
|
75
|
+
build: {
|
76
|
+
rollupOptions: {
|
77
|
+
// ..otherOptions
|
78
|
+
output: {
|
79
|
+
dir: './dist',
|
80
|
+
manualChunks: {
|
81
|
+
'cnhis-vendor': ['cnhis-design-vue']
|
82
|
+
}
|
83
|
+
}
|
84
|
+
}
|
85
|
+
}
|
86
|
+
});
|
87
|
+
```
|
@@ -48,6 +48,7 @@ function useDetailEvent(polyline, options) {
|
|
48
48
|
function calcPointData(y) {
|
49
49
|
return getYValue(y / scale);
|
50
50
|
}
|
51
|
+
const detailCellWidth = xCellWidth * scale;
|
51
52
|
const detailCellHeight = yCellHeight * scale;
|
52
53
|
function clearDetailGroup() {
|
53
54
|
var _a;
|
@@ -62,6 +63,7 @@ function useDetailEvent(polyline, options) {
|
|
62
63
|
const target = event.target;
|
63
64
|
if (!target.points)
|
64
65
|
return;
|
66
|
+
const mainXLineOffsetX = event.pointer.x % xCellWidth;
|
65
67
|
const { x: pointerX, y: pointerY } = event.pointer;
|
66
68
|
const currentIdx = Math.floor((pointerX - target.left) / target.width * target.points.length) + lineStartIndex;
|
67
69
|
let startIdx = currentIdx - detailRadius;
|
@@ -127,10 +129,11 @@ function useDetailEvent(polyline, options) {
|
|
127
129
|
}
|
128
130
|
function createGrid(points2, targetIdx2) {
|
129
131
|
const subLineOptions = (idx) => idx % GRID_SUBLINE_NUMBER ? gridOptions.subLineStyle : null;
|
130
|
-
const
|
132
|
+
const subLineSpaceY = detailCellHeight / GRID_SUBLINE_NUMBER;
|
133
|
+
const subLineSpaceX = detailCellWidth / GRID_SUBLINE_NUMBER;
|
131
134
|
const zeroPointY = EMPTY_TOP_SPACE + points2[maxIdx].y / Math.abs(points2[maxIdx].y - points2[minIdx].y) * polylineHeight;
|
132
|
-
const yTopCellNumber = Math.ceil(zeroPointY /
|
133
|
-
const yBottomCellNumber = Math.ceil((renderHeight - zeroPointY) /
|
135
|
+
const yTopCellNumber = Math.ceil(zeroPointY / subLineSpaceY);
|
136
|
+
const yBottomCellNumber = Math.ceil((renderHeight - zeroPointY) / subLineSpaceY);
|
134
137
|
function createRowLine(y, idx) {
|
135
138
|
return new fabric.Line([offset.x, offset.y + y, offset.x + renderWidth, offset.y + y], {
|
136
139
|
...gridOptions.mainLineStyle.x,
|
@@ -138,21 +141,21 @@ function useDetailEvent(polyline, options) {
|
|
138
141
|
});
|
139
142
|
}
|
140
143
|
const rowLineGroup = new fabric.Group([
|
141
|
-
...range(yBottomCellNumber).map((idx) => createRowLine(idx *
|
142
|
-
...range(yTopCellNumber).map((idx) => createRowLine(-(idx *
|
144
|
+
...range(yBottomCellNumber).map((idx) => createRowLine(idx * subLineSpaceY + zeroPointY, idx)),
|
145
|
+
...range(yTopCellNumber).map((idx) => createRowLine(-(idx * subLineSpaceY) + zeroPointY, idx))
|
143
146
|
]);
|
144
|
-
const currentPointX = targetIdx2 / points2.length * renderWidth;
|
145
|
-
const xLeftCellNumber = Math.ceil(currentPointX /
|
146
|
-
const xRightCellNumber = Math.ceil((renderWidth - currentPointX) /
|
147
|
+
const currentPointX = targetIdx2 / points2.length * renderWidth - mainXLineOffsetX * scale;
|
148
|
+
const xLeftCellNumber = Math.ceil(currentPointX / subLineSpaceX);
|
149
|
+
const xRightCellNumber = Math.ceil((renderWidth - currentPointX) / subLineSpaceX);
|
147
150
|
function createColumnLine(x, idx) {
|
148
151
|
return new fabric.Line([offset.x + x, offset.y, offset.x + x, offset.y + renderHeight], {
|
149
152
|
...gridOptions.mainLineStyle.y,
|
150
|
-
...
|
153
|
+
...subLineOptions(idx)
|
151
154
|
});
|
152
155
|
}
|
153
156
|
const columnLineGroup = new fabric.Group([
|
154
|
-
...range(xRightCellNumber).map((idx) => createColumnLine(idx *
|
155
|
-
...range(xLeftCellNumber).map((idx) => createColumnLine(-(idx *
|
157
|
+
...range(xRightCellNumber).map((idx) => createColumnLine(idx * subLineSpaceX + currentPointX, idx)),
|
158
|
+
...range(xLeftCellNumber).map((idx) => createColumnLine(-(idx * subLineSpaceX) + currentPointX, idx))
|
156
159
|
]);
|
157
160
|
return new fabric.Group([columnLineGroup, rowLineGroup]);
|
158
161
|
}
|
@@ -91,12 +91,12 @@ function useLeft(canvas, propItems, emits, pointTipProps, moveLimit, setPopup, u
|
|
91
91
|
...item,
|
92
92
|
isExternal: true
|
93
93
|
}));
|
94
|
-
const { projectNameMargin = [5, 30], titleWidth = 20 } = left;
|
94
|
+
const { projectNameMargin = [5, 30], titleWidth = 20, projectNameLineHeight = 10 } = left;
|
95
95
|
let topY = endY + markHeight + extracorporealCirculationHeight - projectNameMargin[0];
|
96
96
|
const leftX = titleWidth + projectNameMargin[1];
|
97
97
|
const iconList = [];
|
98
98
|
externalIconList.concat(list.reverse()).forEach((item) => {
|
99
|
-
topY -=
|
99
|
+
topY -= projectNameLineHeight;
|
100
100
|
const title = item.title;
|
101
101
|
const { text, icon } = drawTextAndIconGroup(title, item, {
|
102
102
|
text: {
|
@@ -553,9 +553,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
553
553
|
hide: boolean;
|
554
554
|
}>;
|
555
555
|
draggable: boolean;
|
556
|
-
isHighlightRow: boolean;
|
557
556
|
idx: number;
|
558
557
|
isHighlight: boolean;
|
558
|
+
isHighlightRow: boolean;
|
559
559
|
isFieldSet: boolean;
|
560
560
|
fieldDescribeMode: "column" | "tooltip";
|
561
561
|
hideExpressionOption: AnyObject[];
|
@@ -594,9 +594,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
594
594
|
hide: boolean;
|
595
595
|
}>;
|
596
596
|
draggable: boolean;
|
597
|
-
isHighlightRow: boolean;
|
598
597
|
idx: number;
|
599
598
|
isHighlight: boolean;
|
599
|
+
isHighlightRow: boolean;
|
600
600
|
isFieldSet: boolean;
|
601
601
|
fieldDescribeMode: "column" | "tooltip";
|
602
602
|
hideExpressionOption: AnyObject[];
|
@@ -773,9 +773,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
773
773
|
hide: boolean;
|
774
774
|
}>;
|
775
775
|
draggable: boolean;
|
776
|
-
isHighlightRow: boolean;
|
777
776
|
idx: number;
|
778
777
|
isHighlight: boolean;
|
778
|
+
isHighlightRow: boolean;
|
779
779
|
isFieldSet: boolean;
|
780
780
|
fieldDescribeMode: "column" | "tooltip";
|
781
781
|
hideExpressionOption: AnyObject[];
|
@@ -384,9 +384,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
384
384
|
hide: boolean;
|
385
385
|
}>;
|
386
386
|
draggable: boolean;
|
387
|
-
isHighlightRow: boolean;
|
388
387
|
idx: number;
|
389
388
|
isHighlight: boolean;
|
389
|
+
isHighlightRow: boolean;
|
390
390
|
isFieldSet: boolean;
|
391
391
|
fieldDescribeMode: "column" | "tooltip";
|
392
392
|
hideExpressionOption: AnyObject[];
|
@@ -94,7 +94,8 @@ function createComponent(name, Wrapper, Item) {
|
|
94
94
|
set: (value) => emit("update:value", value)
|
95
95
|
});
|
96
96
|
const {
|
97
|
-
renderComplexOption
|
97
|
+
renderComplexOption,
|
98
|
+
hasComplexOption
|
98
99
|
} = useComplexOptions(props, valueRef);
|
99
100
|
const {
|
100
101
|
labelKey,
|
@@ -179,7 +180,7 @@ function createComponent(name, Wrapper, Item) {
|
|
179
180
|
style.width = percentWidth;
|
180
181
|
}
|
181
182
|
}
|
182
|
-
if (index === options.length - 1) {
|
183
|
+
if (index === options.length - 1 && hasComplexOption.value) {
|
183
184
|
classList.push("form-render__lastOption");
|
184
185
|
}
|
185
186
|
return createVNode(Item, {
|
@@ -601,7 +601,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
601
601
|
}, {
|
602
602
|
default: withCtx(() => [!unref(isAudioOrVideoMessage)(item.content) ? (openBlock(), createElementBlock(Fragment, {
|
603
603
|
key: 0
|
604
|
-
}, [createCommentVNode(' <n-button\n quaternary\n size="tiny"\n @click="(event: MouseEvent) => handleSelectLabel(event, item.id)"\n >\n <template #icon>\n <n-icon size="17" :component="HappyOutline" />\n </template>\n </n-button> '), createVNode(unref(NButton), {
|
604
|
+
}, [createCommentVNode(' <n-button\r\n quaternary\r\n size="tiny"\r\n @click="(event: MouseEvent) => handleSelectLabel(event, item.id)"\r\n >\r\n <template #icon>\r\n <n-icon size="17" :component="HappyOutline" />\r\n </template>\r\n </n-button> '), createVNode(unref(NButton), {
|
605
605
|
quaternary: "",
|
606
606
|
size: "tiny",
|
607
607
|
onClick: () => setReferenceMsg(item)
|
@@ -6,7 +6,7 @@ import { Close, Mic, MicOff, Videocam, VideocamOff, Call, PersonAdd, ResizeOutli
|
|
6
6
|
import { getUserDetailApi } from '../api/index.js';
|
7
7
|
import '@vueuse/core';
|
8
8
|
import { $message } from '../utils/index.js';
|
9
|
-
import 'lodash-es';
|
9
|
+
import { remove } from 'lodash-es';
|
10
10
|
import { CHAT_TYPE, SUBSCRIBE_MESSAGE_TYPE } from '../constants/index.js';
|
11
11
|
import '../../../../shared/utils/index.js';
|
12
12
|
import 'date-fns';
|
@@ -385,6 +385,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
385
385
|
try {
|
386
386
|
removeUser(userId);
|
387
387
|
console.log("Cleaned up resources for user:", userId);
|
388
|
+
remove(state.currentAVMsg.checkedIds, (id) => id === userId);
|
388
389
|
setTimeout(() => {
|
389
390
|
const user = findUser(userId);
|
390
391
|
if (user) {
|
@@ -170,7 +170,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
170
170
|
round: "",
|
171
171
|
size: 100,
|
172
172
|
onClickCapture: _cache[0] || (_cache[0] = ($event) => showLargeAvatar.value = true)
|
173
|
-
}, null, 8, ["src"]), createCommentVNode(' <n-upload abstract accept="image/*" @change="onChange">\n <n-upload-trigger #="{ handleClick }" abstract>\n <n-button\n circle\n secondary\n class="edit-avatar"\n v-show="userDetail.id === state.userInfo.id"\n @click="handleClick"\n >\n <template #icon>\n <n-icon size="16" color="#666666" :component="Camera" />\n </template>\n </n-button>\n </n-upload-trigger>\n </n-upload> '), createElementVNode("div", _hoisted_4, [createElementVNode("h4", null, [createElementVNode("label", _hoisted_5, toDisplayString(userDetail.name), 1), withDirectives(createElementVNode("label", {
|
173
|
+
}, null, 8, ["src"]), createCommentVNode(' <n-upload abstract accept="image/*" @change="onChange">\r\n <n-upload-trigger #="{ handleClick }" abstract>\r\n <n-button\r\n circle\r\n secondary\r\n class="edit-avatar"\r\n v-show="userDetail.id === state.userInfo.id"\r\n @click="handleClick"\r\n >\r\n <template #icon>\r\n <n-icon size="16" color="#666666" :component="Camera" />\r\n </template>\r\n </n-button>\r\n </n-upload-trigger>\r\n </n-upload> '), createElementVNode("div", _hoisted_4, [createElementVNode("h4", null, [createElementVNode("label", _hoisted_5, toDisplayString(userDetail.name), 1), withDirectives(createElementVNode("label", {
|
174
174
|
class: normalizeClass(["iho-chatRole", unref(isDoctorRole)(userDetail.roleInfo) ? "isDoctor" : ""])
|
175
175
|
}, toDisplayString(unref(getRoleName)(userDetail.roleInfo)), 3), [[vShow, unref(getRoleName)(userDetail.roleInfo)]])]), createElementVNode("p", null, toDisplayString(userDetail.orgName), 1)]), createVNode(unref(NButton), {
|
176
176
|
strong: "",
|
package/es/env.d.ts
CHANGED
@@ -1,25 +1,25 @@
|
|
1
|
-
/// <reference types="vite/client" />
|
2
|
-
|
3
|
-
interface ImportMetaEnv {
|
4
|
-
readonly VITE_APP_TYPE: string;
|
5
|
-
// 更多环境变量...
|
6
|
-
}
|
7
|
-
|
8
|
-
interface ImportMeta {
|
9
|
-
readonly env: ImportMetaEnv;
|
10
|
-
}
|
11
|
-
|
12
|
-
declare module '*.vue' {
|
13
|
-
// @ts-ignore
|
14
|
-
import type { App, defineComponent } from 'vue';
|
15
|
-
// // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
|
16
|
-
// // const component: DefineComponent<{}, {}, any>
|
17
|
-
const component: ReturnType<typeof defineComponent> & {
|
18
|
-
install(app: App): void;
|
19
|
-
};
|
20
|
-
// @ts-ignore
|
21
|
-
export default component;
|
22
|
-
}
|
23
|
-
|
24
|
-
declare module '*.js';
|
25
|
-
|
1
|
+
/// <reference types="vite/client" />
|
2
|
+
|
3
|
+
interface ImportMetaEnv {
|
4
|
+
readonly VITE_APP_TYPE: string;
|
5
|
+
// 更多环境变量...
|
6
|
+
}
|
7
|
+
|
8
|
+
interface ImportMeta {
|
9
|
+
readonly env: ImportMetaEnv;
|
10
|
+
}
|
11
|
+
|
12
|
+
declare module '*.vue' {
|
13
|
+
// @ts-ignore
|
14
|
+
import type { App, defineComponent } from 'vue';
|
15
|
+
// // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
|
16
|
+
// // const component: DefineComponent<{}, {}, any>
|
17
|
+
const component: ReturnType<typeof defineComponent> & {
|
18
|
+
install(app: App): void;
|
19
|
+
};
|
20
|
+
// @ts-ignore
|
21
|
+
export default component;
|
22
|
+
}
|
23
|
+
|
24
|
+
declare module '*.js';
|
25
|
+
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "cnhis-design-vue",
|
3
|
-
"version": "3.4.0-beta.
|
3
|
+
"version": "3.4.0-beta.43",
|
4
4
|
"license": "ISC",
|
5
5
|
"module": "./es/components/index.js",
|
6
6
|
"main": "./es/components/index.js",
|
@@ -73,5 +73,5 @@
|
|
73
73
|
"iOS 7",
|
74
74
|
"last 3 iOS versions"
|
75
75
|
],
|
76
|
-
"gitHead": "
|
76
|
+
"gitHead": "f0a7f225fcd87a9e4607b79812a027d03e927a8f"
|
77
77
|
}
|