cnhis-design-vue 3.4.0-beta.32 → 3.4.0-beta.34
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/surgicalAnesthesia/useLeft.js +3 -3
- 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/iho-chat/src/components/ChatMain.vue2.js +1 -1
- package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
- package/es/components/scale-view/src/hooks/use-event.js +56 -22
- 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
|
+
```
|
@@ -74,7 +74,7 @@ function useLeft(canvas, propItems, emits, pointTipProps, moveLimit, setPopup, u
|
|
74
74
|
list.forEach((item) => {
|
75
75
|
var _a;
|
76
76
|
const targetList = !item.linkKey ? item.list : (_a = list.find((_item) => _item.key === item.linkKey)) == null ? void 0 : _a.list;
|
77
|
-
let firstPointLeft =
|
77
|
+
let firstPointLeft = 0;
|
78
78
|
targetList.find((k) => {
|
79
79
|
let con = false;
|
80
80
|
if (isEffectiveNode(k)) {
|
@@ -85,7 +85,7 @@ function useLeft(canvas, propItems, emits, pointTipProps, moveLimit, setPopup, u
|
|
85
85
|
}
|
86
86
|
return con;
|
87
87
|
});
|
88
|
-
item.limitRight = firstPointLeft - xCellWidth;
|
88
|
+
item.limitRight = firstPointLeft ? firstPointLeft - xCellWidth : endX;
|
89
89
|
});
|
90
90
|
const externalIconList = cloneDeep(left.externalIconList || []).map((item) => ({
|
91
91
|
...item,
|
@@ -107,7 +107,7 @@ function useLeft(canvas, propItems, emits, pointTipProps, moveLimit, setPopup, u
|
|
107
107
|
leftX,
|
108
108
|
topY,
|
109
109
|
originX: "center",
|
110
|
-
...item.isExternal
|
110
|
+
...item.isExternal && { evented: false, selectable: false },
|
111
111
|
origin: {
|
112
112
|
linkKey: item.linkKey,
|
113
113
|
limitRight: item.limitRight
|
@@ -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[];
|
@@ -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)
|
@@ -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: "",
|
@@ -13,16 +13,17 @@ const useEvent = (props, state) => {
|
|
13
13
|
};
|
14
14
|
const handleLogicList = (formItem, formArray) => {
|
15
15
|
const { seq } = formItem;
|
16
|
-
|
16
|
+
const list = formArray.map((item2) => {
|
17
17
|
if (item2.seq > seq && item2.isShow && item2.__isLogic__)
|
18
18
|
return item2;
|
19
19
|
return false;
|
20
20
|
});
|
21
21
|
let nextItemMax = 0;
|
22
|
-
|
22
|
+
const len = list.length;
|
23
|
+
let i = 0, item;
|
23
24
|
for (; i < len; i++) {
|
24
25
|
item = list[i];
|
25
|
-
|
26
|
+
const curVal = state.form[formKey(item)];
|
26
27
|
if (!curVal)
|
27
28
|
continue;
|
28
29
|
if (Array.isArray(curVal)) {
|
@@ -83,7 +84,7 @@ const useEvent = (props, state) => {
|
|
83
84
|
});
|
84
85
|
}
|
85
86
|
} else if (nextLogic.next_logic == "uncondition") {
|
86
|
-
|
87
|
+
const res = vexutilsExpand.isEmpty(choiceValue);
|
87
88
|
formItem.__isLogic__ = !res;
|
88
89
|
formItem.__lastSeq__ = seq + 1;
|
89
90
|
formArray.forEach((item) => {
|
@@ -99,27 +100,60 @@ const useEvent = (props, state) => {
|
|
99
100
|
});
|
100
101
|
}
|
101
102
|
};
|
103
|
+
const processFieldValue = (value, isNumberType) => {
|
104
|
+
const defaultValue = isNumberType ? null : "/";
|
105
|
+
if (value == null || value === "") {
|
106
|
+
return defaultValue;
|
107
|
+
}
|
108
|
+
if (isNumberType) {
|
109
|
+
if (typeof value !== "number" && isNaN(+value)) {
|
110
|
+
return null;
|
111
|
+
}
|
112
|
+
return +value;
|
113
|
+
}
|
114
|
+
return value;
|
115
|
+
};
|
116
|
+
const createFormElementMap = (formArray) => {
|
117
|
+
const elementMap = /* @__PURE__ */ new Map();
|
118
|
+
formArray.forEach((element) => {
|
119
|
+
if (element.seq != null) {
|
120
|
+
elementMap.set(element.seq, element);
|
121
|
+
}
|
122
|
+
});
|
123
|
+
return elementMap;
|
124
|
+
};
|
125
|
+
const processRelationFieldList = (dataList, relationField, isNumberType) => {
|
126
|
+
return dataList.map((dataItem) => processFieldValue(dataItem[relationField], isNumberType)).filter(Boolean) || [];
|
127
|
+
};
|
102
128
|
const handleDynamicDataRelation = (list, formItem, formArray) => {
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
if (!targetSource.target_id)
|
107
|
-
return;
|
108
|
-
let { relationParam = [] } = targetSource;
|
109
|
-
if (!relationParam.length)
|
129
|
+
var _a;
|
130
|
+
const { targetSource } = formItem;
|
131
|
+
if (!targetSource || !Object.keys(targetSource).length || !targetSource.target_id || !((_a = targetSource.relationParam) == null ? void 0 : _a.length)) {
|
110
132
|
return;
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
133
|
+
}
|
134
|
+
const { relationParam } = targetSource;
|
135
|
+
const formElementMap = createFormElementMap(formArray);
|
136
|
+
const len = relationParam.length;
|
137
|
+
let i = 0, item;
|
138
|
+
for (; i < len; i++) {
|
139
|
+
item = relationParam[i];
|
140
|
+
const { relationElement, relationField } = item;
|
141
|
+
if (relationElement == null || !relationField)
|
142
|
+
continue;
|
143
|
+
const targetElement = formElementMap.get(item.relationElement);
|
144
|
+
if (!targetElement)
|
145
|
+
continue;
|
146
|
+
const { val_key: formKey2, valueType } = targetElement;
|
147
|
+
const isNumberType = valueType === "number";
|
148
|
+
if (!formKey2)
|
149
|
+
continue;
|
150
|
+
if (!list.length) {
|
151
|
+
state.form[formKey2] = null;
|
152
|
+
continue;
|
121
153
|
}
|
122
|
-
|
154
|
+
const relationFieldList = processRelationFieldList(list, item.relationField, isNumberType);
|
155
|
+
state.form[formKey2] = relationFieldList.length > 0 ? relationFieldList.join(",") : null;
|
156
|
+
}
|
123
157
|
};
|
124
158
|
return {
|
125
159
|
nextLogicEvent,
|
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.34",
|
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": "d428050c11e691f5de5f8d8992e774e735b8514b"
|
77
77
|
}
|