Commit 34a80542de670f0385dffaf5bf64bb9c3f6b90da

Authored by Vben
1 parent c5f2577f

fix: fix darkModeSwitch switch failure

src/components/Application/src/AppDarkModeToggle.vue
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 </div> 6 </div>
7 </template> 7 </template>
8 <script lang="ts"> 8 <script lang="ts">
9 - import { defineComponent, computed } from 'vue'; 9 + import { defineComponent, computed, unref } from 'vue';
10 import { SvgIcon } from '/@/components/Icon'; 10 import { SvgIcon } from '/@/components/Icon';
11 import { useDesign } from '/@/hooks/web/useDesign'; 11 import { useDesign } from '/@/hooks/web/useDesign';
12 import { useRootSetting } from '/@/hooks/setting/useRootSetting'; 12 import { useRootSetting } from '/@/hooks/setting/useRootSetting';
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 const getClass = computed(() => [ 26 const getClass = computed(() => [
27 prefixCls, 27 prefixCls,
28 { 28 {
29 - [`${prefixCls}--dark`]: isDark, 29 + [`${prefixCls}--dark`]: unref(isDark),
30 }, 30 },
31 ]); 31 ]);
32 32
src/components/CountDown/index.ts
1 -import CountButton from './src/CountButton.vue';  
2 -import CountdownInput from './src/CountdownInput.vue'; 1 +import { withInstall } from '/@/utils';
  2 +import countButton from './src/CountButton.vue';
  3 +import countdownInput from './src/CountdownInput.vue';
3 4
4 -export { CountdownInput, CountButton }; 5 +export const CountdownInput = withInstall(countdownInput);
  6 +export const CountButton = withInstall(countButton);
src/components/CountDown/src/CountButton.vue
1 <template> 1 <template>
2 <Button v-bind="$attrs" :disabled="isStart" @click="handleStart" :loading="loading"> 2 <Button v-bind="$attrs" :disabled="isStart" @click="handleStart" :loading="loading">
3 - {{  
4 - !isStart  
5 - ? t('component.countdown.normalText')  
6 - : t('component.countdown.sendText', [currentCount])  
7 - }} 3 + {{ getButtonText }}
8 </Button> 4 </Button>
9 </template> 5 </template>
10 <script lang="ts"> 6 <script lang="ts">
11 - import { defineComponent, ref, PropType, watchEffect } from 'vue';  
12 - 7 + import { defineComponent, ref, watchEffect, computed, unref } from 'vue';
13 import { Button } from 'ant-design-vue'; 8 import { Button } from 'ant-design-vue';
14 -  
15 import { useCountdown } from './useCountdown'; 9 import { useCountdown } from './useCountdown';
16 import { isFunction } from '/@/utils/is'; 10 import { isFunction } from '/@/utils/is';
17 import { useI18n } from '/@/hooks/web/useI18n'; 11 import { useI18n } from '/@/hooks/web/useI18n';
18 - import { propTypes } from '/@/utils/propTypes'; 12 +
  13 + const props = {
  14 + value: { type: [Object, Number, String, Array] },
  15 + count: { type: Number, default: 60 },
  16 + beforeStartFunc: {
  17 + type: Function as PropType<() => Promise<boolean>>,
  18 + default: null,
  19 + },
  20 + };
19 21
20 export default defineComponent({ 22 export default defineComponent({
21 name: 'CountButton', 23 name: 'CountButton',
22 components: { Button }, 24 components: { Button },
23 - props: {  
24 - value: propTypes.any,  
25 - count: propTypes.number.def(60),  
26 - beforeStartFunc: {  
27 - type: Function as PropType<() => boolean>,  
28 - default: null,  
29 - },  
30 - }, 25 + props,
31 setup(props) { 26 setup(props) {
32 const loading = ref(false); 27 const loading = ref(false);
33 28
34 const { currentCount, isStart, start, reset } = useCountdown(props.count); 29 const { currentCount, isStart, start, reset } = useCountdown(props.count);
35 const { t } = useI18n(); 30 const { t } = useI18n();
36 31
  32 + const getButtonText = computed(() => {
  33 + return !unref(isStart)
  34 + ? t('component.countdown.normalText')
  35 + : t('component.countdown.sendText', [unref(currentCount)]);
  36 + });
  37 +
37 watchEffect(() => { 38 watchEffect(() => {
38 props.value === undefined && reset(); 39 props.value === undefined && reset();
39 }); 40 });
  41 +
40 /** 42 /**
41 * @description: Judge whether there is an external function before execution, and decide whether to start after execution 43 * @description: Judge whether there is an external function before execution, and decide whether to start after execution
42 */ 44 */
@@ -54,7 +56,7 @@ @@ -54,7 +56,7 @@
54 start(); 56 start();
55 } 57 }
56 } 58 }
57 - return { handleStart, isStart, currentCount, loading, t }; 59 + return { handleStart, currentCount, loading, getButtonText, isStart };
58 }, 60 },
59 }); 61 });
60 </script> 62 </script>
src/components/CountDown/src/CountdownInput.vue
@@ -7,31 +7,30 @@ @@ -7,31 +7,30 @@
7 </template> 7 </template>
8 <script lang="ts"> 8 <script lang="ts">
9 import { defineComponent, PropType } from 'vue'; 9 import { defineComponent, PropType } from 'vue';
10 -  
11 import { Input } from 'ant-design-vue'; 10 import { Input } from 'ant-design-vue';
12 import CountButton from './CountButton.vue'; 11 import CountButton from './CountButton.vue';
13 -  
14 - import { propTypes } from '/@/utils/propTypes';  
15 import { useDesign } from '/@/hooks/web/useDesign'; 12 import { useDesign } from '/@/hooks/web/useDesign';
16 -  
17 import { useRuleFormItem } from '/@/hooks/component/useFormItem'; 13 import { useRuleFormItem } from '/@/hooks/component/useFormItem';
18 14
  15 + const props = {
  16 + value: { type: String },
  17 + size: { type: String, validator: (v) => ['default', 'large', 'small'].includes(v) },
  18 + count: { type: Number, default: 60 },
  19 + sendCodeApi: {
  20 + type: Function as PropType<() => Promise<boolean>>,
  21 + default: null,
  22 + },
  23 + };
  24 +
19 export default defineComponent({ 25 export default defineComponent({
20 name: 'CountDownInput', 26 name: 'CountDownInput',
21 components: { [Input.name]: Input, CountButton }, 27 components: { [Input.name]: Input, CountButton },
22 inheritAttrs: false, 28 inheritAttrs: false,
23 - props: {  
24 - value: propTypes.string,  
25 - size: propTypes.oneOf(['default', 'large', 'small']),  
26 - count: propTypes.number.def(60),  
27 - sendCodeApi: {  
28 - type: Function as PropType<() => boolean>,  
29 - default: null,  
30 - },  
31 - }, 29 + props,
32 setup(props) { 30 setup(props) {
33 const { prefixCls } = useDesign('countdown-input'); 31 const { prefixCls } = useDesign('countdown-input');
34 const [state] = useRuleFormItem(props); 32 const [state] = useRuleFormItem(props);
  33 +
35 return { prefixCls, state }; 34 return { prefixCls, state };
36 }, 35 },
37 }); 36 });
src/components/registerGlobComp.ts
1 -import Icon from './Icon/index'; 1 +import { Icon } from './Icon';
2 import { Button } from './Button'; 2 import { Button } from './Button';
3 import { 3 import {
4 // Need 4 // Need
5 Button as AntButton, 5 Button as AntButton,
  6 + Input,
6 } from 'ant-design-vue'; 7 } from 'ant-design-vue';
7 8
8 import { App } from 'vue'; 9 import { App } from 'vue';
9 10
10 -const compList = [Icon, Button, AntButton.Group]; 11 +const compList = [Icon, AntButton.Group];
11 12
12 export function registerGlobComp(app: App) { 13 export function registerGlobComp(app: App) {
13 compList.forEach((comp: any) => { 14 compList.forEach((comp: any) => {
14 app.component(comp.name || comp.displayName, comp); 15 app.component(comp.name || comp.displayName, comp);
15 }); 16 });
  17 +
  18 + app.use(Input).use(Button);
16 } 19 }
src/views/dashboard/analysis/components/VisitAnalysis.vue
@@ -80,26 +80,8 @@ @@ -80,26 +80,8 @@
80 { 80 {
81 smooth: true, 81 smooth: true,
82 data: [ 82 data: [
83 - 111,  
84 - 222,  
85 - 4000,  
86 - 18000,  
87 - 33333,  
88 - 55555,  
89 - 66666,  
90 - 33333,  
91 - 14000,  
92 - 36000,  
93 - 66666,  
94 - 44444,  
95 - 22222,  
96 - 11111,  
97 - 4000,  
98 - 2000,  
99 - 500,  
100 - 333,  
101 - 222,  
102 - 111, 83 + 111, 222, 4000, 18000, 33333, 55555, 66666, 33333, 14000, 36000, 66666, 44444,
  84 + 22222, 11111, 4000, 2000, 500, 333, 222, 111,
103 ], 85 ],
104 type: 'line', 86 type: 'line',
105 areaStyle: {}, 87 areaStyle: {},
@@ -110,26 +92,8 @@ @@ -110,26 +92,8 @@
110 { 92 {
111 smooth: true, 93 smooth: true,
112 data: [ 94 data: [
113 - 33,  
114 - 66,  
115 - 88,  
116 - 333,  
117 - 3333,  
118 - 5000,  
119 - 18000,  
120 - 3000,  
121 - 1200,  
122 - 13000,  
123 - 22000,  
124 - 11000,  
125 - 2221,  
126 - 1201,  
127 - 390,  
128 - 198,  
129 - 60,  
130 - 30,  
131 - 22,  
132 - 11, 95 + 33, 66, 88, 333, 3333, 5000, 18000, 3000, 1200, 13000, 22000, 11000, 2221, 1201,
  96 + 390, 198, 60, 30, 22, 11,
133 ], 97 ],
134 type: 'line', 98 type: 'line',
135 areaStyle: {}, 99 areaStyle: {},