cnhis-design-vue 3.3.3-beta.62 → 3.3.3-beta.63

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 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
+ ```
@@ -175,6 +175,9 @@ declare const _default: import("vue").DefineComponent<{
175
175
  modelValue: unknown[];
176
176
  componentData: Record<string, any>;
177
177
  } & {
178
+ /**
179
+ * 改变弹窗大小
180
+ */
178
181
  itemKey?: string | Function | undefined;
179
182
  }>, {
180
183
  move: Function;
@@ -603,7 +603,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
603
603
  }, {
604
604
  default: withCtx(() => [!unref(isAudioOrVideoMessage)(item.content) ? (openBlock(), createElementBlock(Fragment, {
605
605
  key: 0
606
- }, [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), {
606
+ }, [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), {
607
607
  quaternary: "",
608
608
  size: "tiny",
609
609
  onClick: () => setReferenceMsg(item)
@@ -225,7 +225,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
225
225
  round: "",
226
226
  size: 100,
227
227
  onClickCapture: _cache[0] || (_cache[0] = ($event) => showLargeAvatar.value = true)
228
- }, 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", {
228
+ }, 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", {
229
229
  class: normalizeClass(["iho-chatRole", unref(isDoctorRole)(userDetail.roleInfo) ? "isDoctor" : ""])
230
230
  }, toDisplayString(unref(getRoleName)(userDetail.roleInfo)), 3), [[vShow, unref(getRoleName)(userDetail.roleInfo)]])]), createElementVNode("p", null, toDisplayString(userDetail.orgName), 1)]), createVNode(unref(NButton), {
231
231
  strong: "",
@@ -201,6 +201,7 @@ declare const Keyboard: SFCWithInstall<import("vue").DefineComponent<{
201
201
  calculateFraction: () => void;
202
202
  setInputStatus: (valueRef: import("vue").Ref<string>, statusRef: import("vue").Ref<string>, isInteger?: boolean | undefined) => true | undefined;
203
203
  setInputValueStatus: () => void;
204
+ safeEval: (expression: string) => number;
204
205
  setPosition: (position: import("@vueuse/core").Position) => void;
205
206
  getPosition: () => import("@vueuse/core").Position;
206
207
  NIcon: any;
@@ -203,6 +203,7 @@ declare const _default: import("vue").DefineComponent<{
203
203
  calculateFraction: () => void;
204
204
  setInputStatus: (valueRef: import("vue").Ref<string>, statusRef: import("vue").Ref<string>, isInteger?: boolean | undefined) => true | undefined;
205
205
  setInputValueStatus: () => void;
206
+ safeEval: (expression: string) => number;
206
207
  setPosition: (position: Position) => void;
207
208
  getPosition: () => Position;
208
209
  NIcon: any;
@@ -93,6 +93,7 @@ declare const _default: import("vue").DefineComponent<{
93
93
  calculateFraction: () => void;
94
94
  setInputStatus: (valueRef: Ref<string>, statusRef: Ref<string>, isInteger?: boolean) => true | undefined;
95
95
  setInputValueStatus: () => void;
96
+ safeEval: (expression: string) => number;
96
97
  setPosition: (position: Position) => void;
97
98
  getPosition: () => Position;
98
99
  NIcon: any;
@@ -112,7 +112,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
112
112
  inputValueStatus.value = "error";
113
113
  return;
114
114
  }
115
- emit("change", eval(inputValue.value));
115
+ const result = safeEval(inputValue.value);
116
+ emit("change", result);
116
117
  setFocus();
117
118
  break;
118
119
  }
@@ -132,7 +133,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
132
133
  return;
133
134
  keydown("Enter");
134
135
  }
135
- async function updateValue(key2) {
136
+ async function updateValue(key) {
136
137
  var _a, _b, _c;
137
138
  const inputRefS = (_c = (_b = (_a = inputRef.value) == null ? void 0 : _a.$childrenRefs) == null ? void 0 : _b.$refs) == null ? void 0 : _c.inputElRef;
138
139
  const {
@@ -140,18 +141,18 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
140
141
  selectionEnd
141
142
  } = inputRefS;
142
143
  const arr = inputValue.value.split("");
143
- if (key2 === "Undo") {
144
+ if (key === "Undo") {
144
145
  const num = selectionStart === selectionEnd ? 1 : selectionEnd - selectionStart;
145
146
  const startIdx = selectionStart === selectionEnd ? selectionStart - 1 : selectionStart;
146
147
  if (inputValue.value && startIdx > -1)
147
148
  arr.splice(startIdx, num);
148
149
  } else {
149
- arr.splice(selectionStart, selectionEnd - selectionStart, key2);
150
+ arr.splice(selectionStart, selectionEnd - selectionStart, key);
150
151
  }
151
152
  inputValue.value = arr.join("");
152
153
  await nextTick();
153
154
  inputRefS.focus();
154
- const selectionIdx = key2 === "Undo" ? !selectionStart ? 0 : selectionEnd > selectionStart ? selectionStart : selectionStart - 1 : selectionStart + 1;
155
+ const selectionIdx = key === "Undo" ? !selectionStart ? 0 : selectionEnd > selectionStart ? selectionStart : selectionStart - 1 : selectionStart + 1;
155
156
  inputRefS.setSelectionRange(selectionIdx, selectionIdx);
156
157
  setInputValueStatus();
157
158
  }
@@ -209,6 +210,18 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
209
210
  function setInputValueStatus() {
210
211
  inputValueStatus.value = !inputValue.value ? "error" : "success";
211
212
  }
213
+ function safeEval(expression) {
214
+ const cleanExpression = expression.replace(/\b0+(\d)/g, "$1").replace(/\b0+\./g, "0.");
215
+ if (/^\d*\.?\d*$/.test(cleanExpression)) {
216
+ return parseFloat(cleanExpression) || 0;
217
+ }
218
+ try {
219
+ return new Function("return " + cleanExpression)();
220
+ } catch (error) {
221
+ console.error("Expression evaluation error:", error);
222
+ return 0;
223
+ }
224
+ }
212
225
  function setPosition(position) {
213
226
  if (draggableInstance) {
214
227
  draggableInstance.x.value = position.x;
@@ -258,12 +271,12 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
258
271
  class: "margin-offset",
259
272
  "wrap-item": false
260
273
  }, {
261
- default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(numberKeys), (key2) => {
274
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(numberKeys), (key) => {
262
275
  return openBlock(), createElementBlock("span", {
263
- key: key2,
264
- class: normalizeClass(key2 === "0" ? "is-0" : ""),
265
- onClick: ($event) => keydown(key2)
266
- }, toDisplayString(key2), 11, _hoisted_2);
276
+ key,
277
+ class: normalizeClass(key === "0" ? "is-0" : ""),
278
+ onClick: ($event) => keydown(key)
279
+ }, toDisplayString(key), 11, _hoisted_2);
267
280
  }), 128))]),
268
281
  _: 1
269
282
  }), createVNode(unref(NSpace), {
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
+
@@ -1,5 +1,5 @@
1
1
  var name = "@cnhis-design-vue/shared";
2
- var version = "3.3.3-beta.62";
2
+ var version = "3.3.3-beta.63";
3
3
  var main = "index.ts";
4
4
  var peerDependencies = {
5
5
  "naive-ui": "^2.30.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cnhis-design-vue",
3
- "version": "3.3.3-beta.62",
3
+ "version": "3.3.3-beta.63",
4
4
  "license": "ISC",
5
5
  "module": "./es/components/index.js",
6
6
  "main": "./es/components/index.js",
@@ -74,5 +74,5 @@
74
74
  "iOS 7",
75
75
  "last 3 iOS versions"
76
76
  ],
77
- "gitHead": "5e472ae10b431508c5ae65ad1db0da928cdcc0d1"
77
+ "gitHead": "15df50851026873ba4c19746fc7f7c588ad7cf8f"
78
78
  }