Commit 40008bc235b35b2cf097555854d18f369eadf707
1 parent
00fca0fe
refactor: refactor CountTo component
Showing
8 changed files
with
130 additions
and
203 deletions
CHANGELOG.zh_CN.md
1 | ## Wip | 1 | ## Wip |
2 | 2 | ||
3 | +### ✨ Refactor | ||
4 | + | ||
5 | +- `CountTo`组件重构 | ||
6 | + | ||
7 | +### ✨ Features | ||
8 | + | ||
3 | - `radioButtonGroup` 支持`boolean`值 | 9 | - `radioButtonGroup` 支持`boolean`值 |
4 | - `useModalInner` 新增 `redoModalHeight`用于在 Modal 内部重设`Modal`高度 | 10 | - `useModalInner` 新增 `redoModalHeight`用于在 Modal 内部重设`Modal`高度 |
5 | - `useECharts` 新增`getInstance`用于获取`echart`实例 | 11 | - `useECharts` 新增`getInstance`用于获取`echart`实例 |
@@ -12,7 +18,7 @@ | @@ -12,7 +18,7 @@ | ||
12 | - `BasicTable`新增`updateTableDataRecord`方法用于更新指定行数据 | 18 | - `BasicTable`新增`updateTableDataRecord`方法用于更新指定行数据 |
13 | - `useModal`新增`closeModal`方法用于关闭`Modal` | 19 | - `useModal`新增`closeModal`方法用于关闭`Modal` |
14 | 20 | ||
15 | -## Bug Fixes | 21 | +### 🐛 Bug Fixes |
16 | 22 | ||
17 | - 修复`redoModalHeight`不能减小高度的问题 | 23 | - 修复`redoModalHeight`不能减小高度的问题 |
18 | - 修复 `BasicForm`设置 schemas 数据不生效的问题 | 24 | - 修复 `BasicForm`设置 schemas 数据不生效的问题 |
package.json
@@ -33,16 +33,16 @@ | @@ -33,16 +33,16 @@ | ||
33 | }, | 33 | }, |
34 | "dependencies": { | 34 | "dependencies": { |
35 | "@iconify/iconify": "^2.0.1", | 35 | "@iconify/iconify": "^2.0.1", |
36 | - "@logicflow/core": "^0.4.11", | ||
37 | - "@logicflow/extension": "^0.4.12", | ||
38 | - "@vueuse/core": "^5.0.1", | 36 | + "@logicflow/core": "^0.4.13", |
37 | + "@logicflow/extension": "^0.4.13", | ||
38 | + "@vueuse/core": "^5.0.2", | ||
39 | "@zxcvbn-ts/core": "^0.3.0", | 39 | "@zxcvbn-ts/core": "^0.3.0", |
40 | "ant-design-vue": "2.1.2", | 40 | "ant-design-vue": "2.1.2", |
41 | "axios": "^0.21.1", | 41 | "axios": "^0.21.1", |
42 | "codemirror": "^5.61.1", | 42 | "codemirror": "^5.61.1", |
43 | "cropperjs": "^1.5.11", | 43 | "cropperjs": "^1.5.11", |
44 | "crypto-js": "^4.0.0", | 44 | "crypto-js": "^4.0.0", |
45 | - "echarts": "^5.1.1", | 45 | + "echarts": "^5.1.2", |
46 | "lodash-es": "^4.17.21", | 46 | "lodash-es": "^4.17.21", |
47 | "mockjs": "^1.1.0", | 47 | "mockjs": "^1.1.0", |
48 | "nprogress": "^0.2.0", | 48 | "nprogress": "^0.2.0", |
@@ -115,13 +115,13 @@ | @@ -115,13 +115,13 @@ | ||
115 | "vite-plugin-compression": "^0.2.5", | 115 | "vite-plugin-compression": "^0.2.5", |
116 | "vite-plugin-html": "^2.0.7", | 116 | "vite-plugin-html": "^2.0.7", |
117 | "vite-plugin-imagemin": "^0.3.2", | 117 | "vite-plugin-imagemin": "^0.3.2", |
118 | - "vite-plugin-mock": "^2.7.0", | 118 | + "vite-plugin-mock": "^2.7.1", |
119 | "vite-plugin-purge-icons": "^0.7.0", | 119 | "vite-plugin-purge-icons": "^0.7.0", |
120 | "vite-plugin-pwa": "^0.7.3", | 120 | "vite-plugin-pwa": "^0.7.3", |
121 | "vite-plugin-style-import": "^0.10.1", | 121 | "vite-plugin-style-import": "^0.10.1", |
122 | "vite-plugin-svg-icons": "^0.7.0", | 122 | "vite-plugin-svg-icons": "^0.7.0", |
123 | "vite-plugin-theme": "^0.8.1", | 123 | "vite-plugin-theme": "^0.8.1", |
124 | - "vite-plugin-windicss": "^1.0.2", | 124 | + "vite-plugin-windicss": "^1.0.3", |
125 | "vue-eslint-parser": "^7.6.0", | 125 | "vue-eslint-parser": "^7.6.0", |
126 | "vue-tsc": "^0.1.7" | 126 | "vue-tsc": "^0.1.7" |
127 | }, | 127 | }, |
src/components/ContextMenu/src/ContextMenu.vue
@@ -71,7 +71,8 @@ | @@ -71,7 +71,8 @@ | ||
71 | }); | 71 | }); |
72 | 72 | ||
73 | onUnmounted(() => { | 73 | onUnmounted(() => { |
74 | - unref(wrapRef) && document.body.removeChild(el); | 74 | + const el = unref(wrapRef); |
75 | + el && document.body.removeChild(el); | ||
75 | }); | 76 | }); |
76 | 77 | ||
77 | function handleAction(item: ContextMenuItem, e: MouseEvent) { | 78 | function handleAction(item: ContextMenuItem, e: MouseEvent) { |
@@ -118,8 +119,10 @@ | @@ -118,8 +119,10 @@ | ||
118 | }); | 119 | }); |
119 | } | 120 | } |
120 | return () => { | 121 | return () => { |
122 | + if (!unref(showRef)) { | ||
123 | + return null; | ||
124 | + } | ||
121 | const { items } = props; | 125 | const { items } = props; |
122 | - if (!unref(showRef)) return null; | ||
123 | return ( | 126 | return ( |
124 | <Menu | 127 | <Menu |
125 | inlineIndent={12} | 128 | inlineIndent={12} |
src/components/CountTo/index.ts
1 | -// Transform vue-count-to to support vue3 version | 1 | +import { withInstall } from '/@/utils'; |
2 | +import countTo from './src/CountTo.vue'; | ||
2 | 3 | ||
3 | -import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; | ||
4 | -export const CountTo = createAsyncComponent(() => import('./src/CountTo.vue')); | 4 | +export const CountTo = withInstall(countTo); |
src/components/CountTo/src/CountTo.vue
1 | <template> | 1 | <template> |
2 | - <span :style="{ color: color }"> | ||
3 | - {{ displayValue }} | 2 | + <span :style="{ color }"> |
3 | + {{ value }} | ||
4 | </span> | 4 | </span> |
5 | </template> | 5 | </template> |
6 | <script lang="ts"> | 6 | <script lang="ts"> |
7 | - import { defineComponent, reactive, computed, watch, onMounted, unref, toRef } from 'vue'; | ||
8 | - import { countToProps } from './props'; | 7 | + import { defineComponent, ref, computed, watchEffect, unref, onMounted, watch } from 'vue'; |
8 | + import { useTransition, TransitionPresets } from '@vueuse/core'; | ||
9 | import { isNumber } from '/@/utils/is'; | 9 | import { isNumber } from '/@/utils/is'; |
10 | + | ||
11 | + const props = { | ||
12 | + startVal: { type: Number, default: 0 }, | ||
13 | + endVal: { type: Number, default: 2021 }, | ||
14 | + duration: { type: Number, default: 1500 }, | ||
15 | + autoplay: { type: Boolean, default: true }, | ||
16 | + decimals: { | ||
17 | + type: Number, | ||
18 | + default: 0, | ||
19 | + validator(value: number) { | ||
20 | + return value >= 0; | ||
21 | + }, | ||
22 | + }, | ||
23 | + prefix: { type: String, default: '' }, | ||
24 | + suffix: { type: String, default: '' }, | ||
25 | + separator: { type: String, default: ',' }, | ||
26 | + decimal: { type: String, default: '.' }, | ||
27 | + /** | ||
28 | + * font color | ||
29 | + */ | ||
30 | + color: { type: String }, | ||
31 | + /** | ||
32 | + * Turn on digital animation | ||
33 | + */ | ||
34 | + useEasing: { type: Boolean, default: true }, | ||
35 | + /** | ||
36 | + * Digital animation | ||
37 | + */ | ||
38 | + transition: { type: String, default: 'linear' }, | ||
39 | + }; | ||
40 | + | ||
10 | export default defineComponent({ | 41 | export default defineComponent({ |
11 | name: 'CountTo', | 42 | name: 'CountTo', |
12 | - props: countToProps, | ||
13 | - emits: ['mounted', 'callback'], | 43 | + props, |
44 | + emits: ['onStarted', 'onFinished'], | ||
14 | setup(props, { emit }) { | 45 | setup(props, { emit }) { |
15 | - const state = reactive<{ | ||
16 | - localStartVal: number; | ||
17 | - printVal: number | null; | ||
18 | - displayValue: string; | ||
19 | - paused: boolean; | ||
20 | - localDuration: number | null; | ||
21 | - startTime: number | null; | ||
22 | - timestamp: number | null; | ||
23 | - rAF: any; | ||
24 | - remaining: number | null; | ||
25 | - color: any; | ||
26 | - }>({ | ||
27 | - localStartVal: props.startVal, | ||
28 | - displayValue: formatNumber(props.startVal), | ||
29 | - printVal: null, | ||
30 | - paused: false, | ||
31 | - localDuration: props.duration, | ||
32 | - startTime: null, | ||
33 | - timestamp: null, | ||
34 | - remaining: null, | ||
35 | - rAF: null, | ||
36 | - color: null, | ||
37 | - }); | 46 | + const source = ref(props.startVal); |
47 | + const disabled = ref(false); | ||
48 | + let outputValue = useTransition(source); | ||
38 | 49 | ||
39 | - onMounted(() => { | ||
40 | - if (props.autoplay) { | ||
41 | - start(); | ||
42 | - } | ||
43 | - emit('mounted'); | ||
44 | - }); | 50 | + const value = computed(() => formatNumber(unref(outputValue))); |
45 | 51 | ||
46 | - const getCountDown = computed(() => { | ||
47 | - return props.startVal > props.endVal; | 52 | + watchEffect(() => { |
53 | + source.value = props.startVal; | ||
48 | }); | 54 | }); |
49 | 55 | ||
50 | watch([() => props.startVal, () => props.endVal], () => { | 56 | watch([() => props.startVal, () => props.endVal], () => { |
@@ -53,93 +59,42 @@ | @@ -53,93 +59,42 @@ | ||
53 | } | 59 | } |
54 | }); | 60 | }); |
55 | 61 | ||
56 | - function start() { | ||
57 | - const { startVal, duration, color } = props; | ||
58 | - state.localStartVal = startVal; | ||
59 | - state.startTime = null; | ||
60 | - state.localDuration = duration; | ||
61 | - state.color = color; | ||
62 | - state.paused = false; | ||
63 | - state.rAF = requestAnimationFrame(count); | ||
64 | - } | ||
65 | - | ||
66 | - function pauseResume() { | ||
67 | - if (state.paused) { | ||
68 | - resume(); | ||
69 | - state.paused = false; | ||
70 | - } else { | ||
71 | - pause(); | ||
72 | - state.paused = true; | ||
73 | - } | ||
74 | - } | ||
75 | - | ||
76 | - function pause() { | ||
77 | - cancelAnimationFrame(state.rAF); | ||
78 | - } | 62 | + onMounted(() => { |
63 | + props.autoplay && start(); | ||
64 | + }); | ||
79 | 65 | ||
80 | - function resume() { | ||
81 | - state.startTime = null; | ||
82 | - state.localDuration = +(state.remaining as number); | ||
83 | - state.localStartVal = +(state.printVal as number); | ||
84 | - requestAnimationFrame(count); | 66 | + function start() { |
67 | + run(); | ||
68 | + source.value = props.endVal; | ||
85 | } | 69 | } |
86 | 70 | ||
87 | function reset() { | 71 | function reset() { |
88 | - state.startTime = null; | ||
89 | - cancelAnimationFrame(state.rAF); | ||
90 | - state.displayValue = formatNumber(props.startVal); | 72 | + source.value = props.startVal; |
73 | + run(); | ||
91 | } | 74 | } |
92 | 75 | ||
93 | - function count(timestamp: number) { | ||
94 | - const { useEasing, easingFn, endVal } = props; | ||
95 | - if (!state.startTime) state.startTime = timestamp; | ||
96 | - state.timestamp = timestamp; | ||
97 | - const progress = timestamp - state.startTime; | ||
98 | - state.remaining = (state.localDuration as number) - progress; | ||
99 | - if (useEasing) { | ||
100 | - if (unref(getCountDown)) { | ||
101 | - state.printVal = | ||
102 | - state.localStartVal - | ||
103 | - easingFn(progress, 0, state.localStartVal - endVal, state.localDuration as number); | ||
104 | - } else { | ||
105 | - state.printVal = easingFn( | ||
106 | - progress, | ||
107 | - state.localStartVal, | ||
108 | - endVal - state.localStartVal, | ||
109 | - state.localDuration as number | ||
110 | - ); | ||
111 | - } | ||
112 | - } else { | ||
113 | - if (unref(getCountDown)) { | ||
114 | - state.printVal = | ||
115 | - state.localStartVal - | ||
116 | - (state.localStartVal - endVal) * (progress / (state.localDuration as number)); | ||
117 | - } else { | ||
118 | - state.printVal = | ||
119 | - state.localStartVal + | ||
120 | - (endVal - state.localStartVal) * (progress / (state.localDuration as number)); | ||
121 | - } | ||
122 | - } | ||
123 | - if (unref(getCountDown)) { | ||
124 | - state.printVal = state.printVal < endVal ? endVal : state.printVal; | ||
125 | - } else { | ||
126 | - state.printVal = state.printVal > endVal ? endVal : state.printVal; | ||
127 | - } | ||
128 | - state.displayValue = formatNumber(state.printVal); | ||
129 | - if (progress < (state.localDuration as number)) { | ||
130 | - state.rAF = requestAnimationFrame(count); | ||
131 | - } else { | ||
132 | - emit('callback'); | ||
133 | - } | 76 | + function run() { |
77 | + outputValue = useTransition(source, { | ||
78 | + disabled, | ||
79 | + duration: props.duration, | ||
80 | + onFinished: () => emit('onFinished'), | ||
81 | + onStarted: () => emit('onStarted'), | ||
82 | + ...(props.useEasing ? { transition: TransitionPresets[props.transition] } : {}), | ||
83 | + }); | ||
134 | } | 84 | } |
135 | 85 | ||
136 | function formatNumber(num: number | string) { | 86 | function formatNumber(num: number | string) { |
87 | + if (!num) { | ||
88 | + return ''; | ||
89 | + } | ||
137 | const { decimals, decimal, separator, suffix, prefix } = props; | 90 | const { decimals, decimal, separator, suffix, prefix } = props; |
138 | num = Number(num).toFixed(decimals); | 91 | num = Number(num).toFixed(decimals); |
139 | num += ''; | 92 | num += ''; |
93 | + | ||
140 | const x = num.split('.'); | 94 | const x = num.split('.'); |
141 | let x1 = x[0]; | 95 | let x1 = x[0]; |
142 | const x2 = x.length > 1 ? decimal + x[1] : ''; | 96 | const x2 = x.length > 1 ? decimal + x[1] : ''; |
97 | + | ||
143 | const rgx = /(\d+)(\d{3})/; | 98 | const rgx = /(\d+)(\d{3})/; |
144 | if (separator && !isNumber(separator)) { | 99 | if (separator && !isNumber(separator)) { |
145 | while (rgx.test(x1)) { | 100 | while (rgx.test(x1)) { |
@@ -149,14 +104,7 @@ | @@ -149,14 +104,7 @@ | ||
149 | return prefix + x1 + x2 + suffix; | 104 | return prefix + x1 + x2 + suffix; |
150 | } | 105 | } |
151 | 106 | ||
152 | - return { | ||
153 | - count, | ||
154 | - reset, | ||
155 | - resume, | ||
156 | - start, | ||
157 | - pauseResume, | ||
158 | - displayValue: toRef(state, 'displayValue'), | ||
159 | - }; | 107 | + return { value, start, reset }; |
160 | }, | 108 | }, |
161 | }); | 109 | }); |
162 | </script> | 110 | </script> |
src/components/CountTo/src/props.ts deleted
100644 → 0
1 | -import { PropType } from 'vue'; | ||
2 | -import { propTypes } from '/@/utils/propTypes'; | ||
3 | -export const countToProps = { | ||
4 | - startVal: propTypes.number.def(0), | ||
5 | - endVal: propTypes.number.def(2020), | ||
6 | - duration: propTypes.number.def(1300), | ||
7 | - autoplay: propTypes.bool.def(true), | ||
8 | - decimals: { | ||
9 | - type: Number as PropType<number>, | ||
10 | - required: false, | ||
11 | - default: 0, | ||
12 | - validator(value: number) { | ||
13 | - return value >= 0; | ||
14 | - }, | ||
15 | - }, | ||
16 | - color: { | ||
17 | - type: String as PropType<string>, | ||
18 | - require: false, | ||
19 | - }, | ||
20 | - decimal: propTypes.string.def('.'), | ||
21 | - separator: propTypes.string.def(','), | ||
22 | - prefix: propTypes.string.def(''), | ||
23 | - suffix: propTypes.string.def(''), | ||
24 | - useEasing: propTypes.bool.def(true), | ||
25 | - easingFn: { | ||
26 | - type: Function as PropType<(t: number, b: number, c: number, d: number) => number>, | ||
27 | - default(t: number, b: number, c: number, d: number) { | ||
28 | - return (c * (-Math.pow(2, (-10 * t) / d) + 1) * 1024) / 1023 + b; | ||
29 | - }, | ||
30 | - }, | ||
31 | -}; |
src/components/Cropper/src/Cropper.vue
@@ -20,7 +20,7 @@ | @@ -20,7 +20,7 @@ | ||
20 | 20 | ||
21 | type Options = Cropper.Options; | 21 | type Options = Cropper.Options; |
22 | 22 | ||
23 | - const defaultOptions: Cropper.Options = { | 23 | + const defaultOptions: Options = { |
24 | aspectRatio: 16 / 9, | 24 | aspectRatio: 16 / 9, |
25 | zoomable: true, | 25 | zoomable: true, |
26 | zoomOnTouch: true, | 26 | zoomOnTouch: true, |
@@ -42,6 +42,7 @@ | @@ -42,6 +42,7 @@ | ||
42 | movable: true, | 42 | movable: true, |
43 | rotatable: true, | 43 | rotatable: true, |
44 | }; | 44 | }; |
45 | + | ||
45 | export default defineComponent({ | 46 | export default defineComponent({ |
46 | name: 'CropperImage', | 47 | name: 'CropperImage', |
47 | props: { | 48 | props: { |
@@ -108,9 +109,9 @@ | @@ -108,9 +109,9 @@ | ||
108 | let imgInfo = cropper.value.getData(); | 109 | let imgInfo = cropper.value.getData(); |
109 | cropper.value.getCroppedCanvas().toBlob((blob) => { | 110 | cropper.value.getCroppedCanvas().toBlob((blob) => { |
110 | let fileReader: FileReader = new FileReader(); | 111 | let fileReader: FileReader = new FileReader(); |
111 | - fileReader.onloadend = (e: any) => { | 112 | + fileReader.onloadend = (e) => { |
112 | ctx.emit('cropperedInfo', { | 113 | ctx.emit('cropperedInfo', { |
113 | - imgBase64: e.target.result, | 114 | + imgBase64: e.target?.result ?? '', |
114 | imgInfo, | 115 | imgInfo, |
115 | }); | 116 | }); |
116 | }; | 117 | }; |
yarn.lock
@@ -1252,21 +1252,21 @@ | @@ -1252,21 +1252,21 @@ | ||
1252 | "@intlify/runtime" "9.1.6" | 1252 | "@intlify/runtime" "9.1.6" |
1253 | "@intlify/shared" "9.1.6" | 1253 | "@intlify/shared" "9.1.6" |
1254 | 1254 | ||
1255 | -"@logicflow/core@^0.4.11": | ||
1256 | - version "0.4.11" | ||
1257 | - resolved "https://registry.yarnpkg.com/@logicflow/core/-/core-0.4.11.tgz#3c617e5cddb47e7052d62fee56ba77ab45b1cd25" | ||
1258 | - integrity sha512-FlErJRyKw+XzyT0/0hha8Dwsiok9Cri2ZS2/SDmqLdUK6I3rD6LpmVabj8LjYH4IWb0fOYSfgGhY4oWQAKqa9g== | 1255 | +"@logicflow/core@^0.4.13": |
1256 | + version "0.4.13" | ||
1257 | + resolved "https://registry.npmjs.org/@logicflow/core/-/core-0.4.13.tgz#69d1e7a30b5e545ada3a2e980059f3e6f6923f15" | ||
1258 | + integrity sha512-xOLz8RO6ldAT5H9Q2Ewt9d7z146B54TUom5EXzJ/jx/s1Phy24vP8tAGu6LuoTEitgNHTRQq7WxvH9NqnpxCpg== | ||
1259 | dependencies: | 1259 | dependencies: |
1260 | "@types/mousetrap" "^1.6.4" | 1260 | "@types/mousetrap" "^1.6.4" |
1261 | mousetrap "^1.6.5" | 1261 | mousetrap "^1.6.5" |
1262 | preact "^10.4.8" | 1262 | preact "^10.4.8" |
1263 | 1263 | ||
1264 | -"@logicflow/extension@^0.4.12": | ||
1265 | - version "0.4.12" | ||
1266 | - resolved "https://registry.yarnpkg.com/@logicflow/extension/-/extension-0.4.12.tgz#be69e8ebbcffee6bb0f07778f2126ad98f93f64a" | ||
1267 | - integrity sha512-fD0bXxYIEo1d047A3PXkAVMH6vM5y8AAIfLxnXxdMJGOVLH44iWCO6eNW8bvnoab7aSmhj2MWMgY3op5XVZh1Q== | 1264 | +"@logicflow/extension@^0.4.13": |
1265 | + version "0.4.13" | ||
1266 | + resolved "https://registry.npmjs.org/@logicflow/extension/-/extension-0.4.13.tgz#b1c87b5458345414cc6c5fb813511e62db4acfa7" | ||
1267 | + integrity sha512-DAfgO9A5VrJ4oXruTYGgmDGvZAIaT2kLAlTE+luyg4eld6YsgwWXqXazJWCd9ObdAJkLYCf7lU27hZsDNqqbrg== | ||
1268 | dependencies: | 1268 | dependencies: |
1269 | - "@logicflow/core" "^0.4.11" | 1269 | + "@logicflow/core" "^0.4.13" |
1270 | ids "^1.0.0" | 1270 | ids "^1.0.0" |
1271 | preact "^10.4.8" | 1271 | preact "^10.4.8" |
1272 | 1272 | ||
@@ -2033,25 +2033,25 @@ | @@ -2033,25 +2033,25 @@ | ||
2033 | resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.11.tgz#20d22dd0da7d358bb21c17f9bde8628152642c77" | 2033 | resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.11.tgz#20d22dd0da7d358bb21c17f9bde8628152642c77" |
2034 | integrity sha512-b+zB8A2so8eCE0JsxjL24J7vdGl8rzPQ09hZNhystm+KqSbKcAej1A+Hbva1rCMmTTqA+hFnUSDc5kouEo0JzA== | 2034 | integrity sha512-b+zB8A2so8eCE0JsxjL24J7vdGl8rzPQ09hZNhystm+KqSbKcAej1A+Hbva1rCMmTTqA+hFnUSDc5kouEo0JzA== |
2035 | 2035 | ||
2036 | -"@vueuse/core@^5.0.1": | ||
2037 | - version "5.0.1" | ||
2038 | - resolved "https://registry.npmjs.org/@vueuse/core/-/core-5.0.1.tgz#94bbb6c71d95b79efbdb24111915775e61723f1b" | ||
2039 | - integrity sha512-hzcyYNvW1p9ZEwm+oBaWrHgGx6S93pJBiXLZUj2pgCNiJZjaedoePT9xzesi1SBxeKcYxwToaTISLeKdE4VKeg== | 2036 | +"@vueuse/core@^5.0.2": |
2037 | + version "5.0.2" | ||
2038 | + resolved "https://registry.npmjs.org/@vueuse/core/-/core-5.0.2.tgz#302389f620c0d4b51fdf157012d9b5b522b605e7" | ||
2039 | + integrity sha512-Sp9+7AL4Cg3Tx6I55WoH7zICGRlp6ZUF9NW3EU8SZTkryHm0afAjFfASMwlfV030JFeh45BdqafDOrenVmM9Cw== | ||
2040 | dependencies: | 2040 | dependencies: |
2041 | - "@vueuse/shared" "5.0.1" | 2041 | + "@vueuse/shared" "5.0.2" |
2042 | vue-demi "*" | 2042 | vue-demi "*" |
2043 | 2043 | ||
2044 | -"@vueuse/shared@5.0.1": | ||
2045 | - version "5.0.1" | ||
2046 | - resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-5.0.1.tgz#3b6607ffc9e19b322c39be8a2f6b584d203a7c5e" | ||
2047 | - integrity sha512-/+kRII9chn45PhFfRuPVbSQApJHhhqXFhPrWjnYKckMfQE9ZOuNMb1bmQnDTqzuNkoS/ENeHBMq0rnV/cfz/3Q== | 2044 | +"@vueuse/shared@5.0.2": |
2045 | + version "5.0.2" | ||
2046 | + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-5.0.2.tgz#274c2bf163d25eb7fd2fc51f23088a2b7f060594" | ||
2047 | + integrity sha512-S1hRRmEdipjTD4DbXgPdw4ZZYebU/nDi75vNP3Ibpa1irW3NUNUKOT/TWnwRHLQvXquUtdvalhI8D9Db+czZJg== | ||
2048 | dependencies: | 2048 | dependencies: |
2049 | vue-demi "*" | 2049 | vue-demi "*" |
2050 | 2050 | ||
2051 | -"@windicss/plugin-utils@1.0.2": | ||
2052 | - version "1.0.2" | ||
2053 | - resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-1.0.2.tgz#c34d6498058d5f4291805027d2ef6e34638a572a" | ||
2054 | - integrity sha512-W9fZoPNsD3NMVyqzt9eNb1DNp9p4oy7EscCfGVIg1KBxAC8S+AnXtkaR/rad09y+aqzbILKNfzDKdimDR2FA9g== | 2051 | +"@windicss/plugin-utils@1.0.3": |
2052 | + version "1.0.3" | ||
2053 | + resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-1.0.3.tgz#04d039ef56b58180079df3f9b3bd8a21a57368d3" | ||
2054 | + integrity sha512-SBYjmWBO+dOqxJgyyOAETOuMdcugvVgZYQc3rb7KtcTW5u9UkFXtiuGdoq8cWyFpSkn46gmjCb4WNbY3kEIVnQ== | ||
2055 | dependencies: | 2055 | dependencies: |
2056 | "@antfu/utils" "^0.1.6" | 2056 | "@antfu/utils" "^0.1.6" |
2057 | debug "^4.3.2" | 2057 | debug "^4.3.2" |
@@ -4050,13 +4050,13 @@ duplexer3@^0.1.4: | @@ -4050,13 +4050,13 @@ duplexer3@^0.1.4: | ||
4050 | resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" | 4050 | resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" |
4051 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= | 4051 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= |
4052 | 4052 | ||
4053 | -echarts@^5.1.1: | ||
4054 | - version "5.1.1" | ||
4055 | - resolved "https://registry.npmjs.org/echarts/-/echarts-5.1.1.tgz#b186f162f017c555cfd67b12ede6762bdc3ddfda" | ||
4056 | - integrity sha512-b3nP8M9XwZM2jISuA+fP0EuJv8lcfgWrinel185Npy8bE/UhXTDIPJcqgQOCWdvk0c5CeT6Dsm1xBjmJXAGlxQ== | 4053 | +echarts@^5.1.2: |
4054 | + version "5.1.2" | ||
4055 | + resolved "https://registry.npmjs.org/echarts/-/echarts-5.1.2.tgz#aa1ab0cef5b74fa2f7c620261a5f286893d30fd1" | ||
4056 | + integrity sha512-okUhO4sw22vwZp+rTPNjd/bvTdpug4K4sHNHyrV8NdAncIX9/AarlolFqtJCAYKGFYhUBNjIWu1EznFrSWTFxg== | ||
4057 | dependencies: | 4057 | dependencies: |
4058 | tslib "2.0.3" | 4058 | tslib "2.0.3" |
4059 | - zrender "5.1.0" | 4059 | + zrender "5.1.1" |
4060 | 4060 | ||
4061 | ecstatic@^3.3.2: | 4061 | ecstatic@^3.3.2: |
4062 | version "3.3.2" | 4062 | version "3.3.2" |
@@ -10573,10 +10573,10 @@ vite-plugin-imagemin@^0.3.2: | @@ -10573,10 +10573,10 @@ vite-plugin-imagemin@^0.3.2: | ||
10573 | imagemin-svgo "^8.0.0" | 10573 | imagemin-svgo "^8.0.0" |
10574 | imagemin-webp "^6.0.0" | 10574 | imagemin-webp "^6.0.0" |
10575 | 10575 | ||
10576 | -vite-plugin-mock@^2.7.0: | ||
10577 | - version "2.7.0" | ||
10578 | - resolved "https://registry.yarnpkg.com/vite-plugin-mock/-/vite-plugin-mock-2.7.0.tgz#21aec0397e29d013c87d765c56d177728d4288b4" | ||
10579 | - integrity sha512-hB3MbnQlrmqGOigbPB+UsUQ/ZjTisj75FprJ7IDw8pDYQjWmHC7AtmDOHdzpGYPKEEX1mz7UhGJ93LLarPqJNg== | 10576 | +vite-plugin-mock@^2.7.1: |
10577 | + version "2.7.1" | ||
10578 | + resolved "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-2.7.1.tgz#c7d25277f7b88158cd3927c1abee7c7721ed92d3" | ||
10579 | + integrity sha512-UnYcb4UZrpe5fHBNFNEJQetnR32+XxrduTYhyDQTtXmaJ9Yy+JuBfIT6Mueyf7MGPe8T6hNgIEYaMLSUD5+nWA== | ||
10580 | dependencies: | 10580 | dependencies: |
10581 | "@rollup/plugin-node-resolve" "^11.2.1" | 10581 | "@rollup/plugin-node-resolve" "^11.2.1" |
10582 | "@types/mockjs" "^1.0.3" | 10582 | "@types/mockjs" "^1.0.3" |
@@ -10647,12 +10647,12 @@ vite-plugin-theme@^0.8.1: | @@ -10647,12 +10647,12 @@ vite-plugin-theme@^0.8.1: | ||
10647 | esbuild-plugin-alias "^0.1.2" | 10647 | esbuild-plugin-alias "^0.1.2" |
10648 | tinycolor2 "^1.4.2" | 10648 | tinycolor2 "^1.4.2" |
10649 | 10649 | ||
10650 | -vite-plugin-windicss@^1.0.2: | ||
10651 | - version "1.0.2" | ||
10652 | - resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-1.0.2.tgz#0d0fd1ff36dc81d348be755e59a8ee471941095c" | ||
10653 | - integrity sha512-iTmkxm8Yp+ZCFWLOs//9q3d4hYaBVDlkRGLzNBUNvRW9AQFVea57ZPhglMm9xOt1nW/O68n5Rkg4/In8rrEjHQ== | 10650 | +vite-plugin-windicss@^1.0.3: |
10651 | + version "1.0.3" | ||
10652 | + resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-1.0.3.tgz#bd45cfee13777e7b57c37a257ebcb7e73fee94ab" | ||
10653 | + integrity sha512-y9pudcMajdI88PTs49qGftlfAvsLUUhK2Eig+xn5sgxPCbAc3Rj5phXJkRzGDqfmEzGwbpF6JwjmiGmZkm8V+g== | ||
10654 | dependencies: | 10654 | dependencies: |
10655 | - "@windicss/plugin-utils" "1.0.2" | 10655 | + "@windicss/plugin-utils" "1.0.3" |
10656 | chalk "^4.1.1" | 10656 | chalk "^4.1.1" |
10657 | debug "^4.3.2" | 10657 | debug "^4.3.2" |
10658 | windicss "^3.1.3" | 10658 | windicss "^3.1.3" |
@@ -11321,10 +11321,10 @@ yocto-queue@^0.1.0: | @@ -11321,10 +11321,10 @@ yocto-queue@^0.1.0: | ||
11321 | resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" | 11321 | resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" |
11322 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== | 11322 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== |
11323 | 11323 | ||
11324 | -zrender@5.1.0: | ||
11325 | - version "5.1.0" | ||
11326 | - resolved "https://registry.npmjs.org/zrender/-/zrender-5.1.0.tgz#b6a84c3aa7ccc6642ee0519901ca4c0835c4d85e" | ||
11327 | - integrity sha512-c+8VRx52ycbmqwHeHLlo/BAfIHBl/JZNLM6cfDQFgzIH05yb+f5J9F/fbRsP+zGc8dW9XHuhdt8/iqukgMZSeg== | 11324 | +zrender@5.1.1: |
11325 | + version "5.1.1" | ||
11326 | + resolved "https://registry.npmjs.org/zrender/-/zrender-5.1.1.tgz#0515f4f8cc0f4742f02a6b8819550a6d13d64c5c" | ||
11327 | + integrity sha512-oeWlmUZPQdS9f5hK4pV21tHPqA3wgQ7CkKkw7l0CCBgWlJ/FP+lRgLFtUBW6yam4JX8y9CdHJo1o587VVrbcoQ== | ||
11328 | dependencies: | 11328 | dependencies: |
11329 | tslib "2.0.3" | 11329 | tslib "2.0.3" |
11330 | 11330 |