From 30b3ee5c89c31cb5794faab40e800c36507d258a Mon Sep 17 00:00:00 2001
From: bowen <54492610+jiaowoxiaobala@users.noreply.github.com>
Date: 星期二, 10 十月 2023 21:06:16 +0800
Subject: [PATCH] chore: fix type:check error (#3126)

---
 types/index.d.ts                                              |    2 
 src/components/Form/src/BasicForm.vue                         |   11 ++++-
 src/components/Table/src/components/editable/CellComponent.ts |    4 +-
 src/views/demo/table/FormTable.vue                            |    4 +-
 packages/types/src/utils.ts                                   |    2 
 src/views/demo/form/index.vue                                 |   10 ++--
 src/components/Form/src/components/ApiTree.vue                |    2 
 src/layouts/default/setting/components/SelectItem.vue         |    9 ++--
 src/components/Tree/src/TreeIcon.ts                           |    4 +-
 src/views/demo/editor/json/index.vue                          |    6 +-
 src/components/Transition/src/CreateTransition.tsx            |    4 +-
 src/components/Tree/src/components/TreeHeader.vue             |   14 +++++--
 src/layouts/default/setting/components/SwitchItem.vue         |   10 +++--
 13 files changed, 48 insertions(+), 34 deletions(-)

diff --git a/packages/types/src/utils.ts b/packages/types/src/utils.ts
index 80435fc..b8ed226 100644
--- a/packages/types/src/utils.ts
+++ b/packages/types/src/utils.ts
@@ -26,7 +26,7 @@
 /**
  * 瀛楃涓茬被鍨嬪璞�
  */
-type Recordable<T> = Record<string, T>;
+type Recordable<T = any> = Record<string, T>;
 
 /**
  * 瀛楃涓茬被鍨嬪璞★紙鍙锛�
diff --git a/src/components/Form/src/BasicForm.vue b/src/components/Form/src/BasicForm.vue
index bcc1110..89e6f4f 100644
--- a/src/components/Form/src/BasicForm.vue
+++ b/src/components/Form/src/BasicForm.vue
@@ -43,7 +43,7 @@
   import type { Ref } from 'vue';
 
   import { defineComponent, reactive, ref, computed, unref, onMounted, watch, nextTick } from 'vue';
-  import { Form, Row } from 'ant-design-vue';
+  import { Form, Row, type FormProps as AntFormProps } from 'ant-design-vue';
   import FormItem from './components/FormItem.vue';
   import FormAction from './components/FormAction.vue';
 
@@ -112,7 +112,9 @@
         };
       });
 
-      const getBindValue = computed(() => ({ ...attrs, ...props, ...unref(getProps) }));
+      const getBindValue = computed(
+        () => ({ ...attrs, ...props, ...unref(getProps) }) as AntFormProps,
+      );
 
       const getSchema = computed((): FormSchema[] => {
         const schemas: FormSchema[] = unref(schemaRef) || (unref(getProps).schemas as any);
@@ -303,7 +305,10 @@
         formActionType: formActionType as any,
         setFormModel,
         getFormClass,
-        getFormActionBindProps: computed(() => ({ ...getProps.value, ...advanceState })),
+        getFormActionBindProps: computed(
+          () =>
+            ({ ...getProps.value, ...advanceState }) as InstanceType<typeof FormAction>['$props'],
+        ),
         fieldsIsAdvancedMap,
         ...formActionType,
       };
diff --git a/src/components/Form/src/components/ApiTree.vue b/src/components/Form/src/components/ApiTree.vue
index fb9b37b..16bfc40 100644
--- a/src/components/Form/src/components/ApiTree.vue
+++ b/src/components/Form/src/components/ApiTree.vue
@@ -79,7 +79,7 @@
         if (!isArray(result)) {
           result = get(result, props.resultField);
         }
-        treeData.value = (result as Recordable<any>[]) || [];
+        treeData.value = (result as (Recordable & { key: string | number })[]) || [];
         isFirstLoaded.value = true;
         emit('options-change', treeData.value);
       }
diff --git a/src/components/Table/src/components/editable/CellComponent.ts b/src/components/Table/src/components/editable/CellComponent.ts
index 547940b..934b479 100644
--- a/src/components/Table/src/components/editable/CellComponent.ts
+++ b/src/components/Table/src/components/editable/CellComponent.ts
@@ -1,4 +1,4 @@
-import type { FunctionalComponent, defineComponent } from 'vue';
+import type { defineComponent } from 'vue';
 import type { ComponentType } from '../../types/componentType';
 import { componentMap } from '/@/components/Table/src/componentMap';
 
@@ -13,7 +13,7 @@
   getPopupContainer?: Fn;
 }
 
-export const CellComponent: FunctionalComponent = (
+export const CellComponent = (
   {
     component = 'Input',
     rule = true,
diff --git a/src/components/Transition/src/CreateTransition.tsx b/src/components/Transition/src/CreateTransition.tsx
index d12518d..035a34a 100644
--- a/src/components/Transition/src/CreateTransition.tsx
+++ b/src/components/Transition/src/CreateTransition.tsx
@@ -23,8 +23,8 @@
       },
     },
     setup(props, { slots, attrs }) {
-      const onBeforeEnter = (el: HTMLElement) => {
-        el.style.transformOrigin = props.origin;
+      const onBeforeEnter = (el: Element) => {
+        (el as HTMLElement).style.transformOrigin = props.origin;
       };
 
       return () => {
diff --git a/src/components/Tree/src/TreeIcon.ts b/src/components/Tree/src/TreeIcon.ts
index dd4eab1..67e2e7b 100644
--- a/src/components/Tree/src/TreeIcon.ts
+++ b/src/components/Tree/src/TreeIcon.ts
@@ -1,9 +1,9 @@
-import type { VNode, FunctionalComponent } from 'vue';
+import type { VNode } from 'vue';
 import { h } from 'vue';
 import { isString } from 'lodash-es';
 import Icon from '@/components/Icon/Icon.vue';
 
-export const TreeIcon: FunctionalComponent = ({ icon }: { icon: VNode | string }) => {
+export const TreeIcon = ({ icon }: { icon: VNode | string }) => {
   if (!icon) return null;
   if (isString(icon)) {
     return h(Icon, { icon, class: 'mr-1' });
diff --git a/src/components/Tree/src/components/TreeHeader.vue b/src/components/Tree/src/components/TreeHeader.vue
index cb269f5..1cbee0b 100644
--- a/src/components/Tree/src/components/TreeHeader.vue
+++ b/src/components/Tree/src/components/TreeHeader.vue
@@ -34,7 +34,14 @@
 </template>
 <script lang="ts" setup>
   import { type PropType, computed, ref, watch, useSlots } from 'vue';
-  import { Dropdown, Menu, MenuItem, MenuDivider, InputSearch } from 'ant-design-vue';
+  import {
+    Dropdown,
+    Menu,
+    MenuItem,
+    MenuDivider,
+    InputSearch,
+    type MenuProps,
+  } from 'ant-design-vue';
   import Icon from '@/components/Icon/Icon.vue';
   import { BasicTitle } from '/@/components/Basic';
   import { useI18n } from '/@/hooks/web/useI18n';
@@ -122,8 +129,7 @@
       : defaultToolbarList;
   });
 
-  function handleMenuClick(e: { key: ToolbarEnum }) {
-    const { key } = e;
+  const handleMenuClick: MenuProps['onClick'] = ({ key }) => {
     switch (key) {
       case ToolbarEnum.SELECT_ALL:
         props.checkAll?.(true);
@@ -144,7 +150,7 @@
         emit('strictly-change', true);
         break;
     }
-  }
+  };
 
   function emitChange(value?: string): void {
     emit('search', value);
diff --git a/src/layouts/default/setting/components/SelectItem.vue b/src/layouts/default/setting/components/SelectItem.vue
index 676ca91..dcfd9b6 100644
--- a/src/layouts/default/setting/components/SelectItem.vue
+++ b/src/layouts/default/setting/components/SelectItem.vue
@@ -14,7 +14,7 @@
 <script lang="ts">
   import { defineComponent, PropType, computed } from 'vue';
 
-  import { Select } from 'ant-design-vue';
+  import { Select, type SelectProps } from 'ant-design-vue';
   import { useDesign } from '/@/hooks/web/useDesign';
   import { baseHandler } from '../handler';
   import { HandlerEnum } from '../enum';
@@ -49,9 +49,10 @@
         return props.def ? { value: props.def, defaultValue: props.initValue || props.def } : {};
       });
 
-      function handleChange(e: ChangeEvent) {
-        props.event && baseHandler(props.event, e);
-      }
+      const handleChange: SelectProps['onChange'] = (val) => {
+        props.event && baseHandler(props.event, val);
+      };
+
       return {
         prefixCls,
         handleChange,
diff --git a/src/layouts/default/setting/components/SwitchItem.vue b/src/layouts/default/setting/components/SwitchItem.vue
index ff27477..74fd51c 100644
--- a/src/layouts/default/setting/components/SwitchItem.vue
+++ b/src/layouts/default/setting/components/SwitchItem.vue
@@ -13,7 +13,7 @@
 <script lang="ts">
   import { defineComponent, PropType, computed } from 'vue';
 
-  import { Switch } from 'ant-design-vue';
+  import { Switch, type SwitchProps } from 'ant-design-vue';
   import { useDesign } from '/@/hooks/web/useDesign';
   import { useI18n } from '/@/hooks/web/useI18n';
   import { baseHandler } from '../handler';
@@ -43,9 +43,11 @@
       const getBindValue = computed(() => {
         return props.def ? { checked: props.def } : {};
       });
-      function handleChange(e: ChangeEvent) {
-        props.event && baseHandler(props.event, e);
-      }
+
+      const handleChange: SwitchProps['onChange'] = (val) => {
+        props.event && baseHandler(props.event, val);
+      };
+
       return {
         prefixCls,
         t,
diff --git a/src/views/demo/editor/json/index.vue b/src/views/demo/editor/json/index.vue
index f370ac5..c52c6a6 100644
--- a/src/views/demo/editor/json/index.vue
+++ b/src/views/demo/editor/json/index.vue
@@ -17,7 +17,7 @@
   import { defineComponent, ref, unref, h } from 'vue';
   import { CodeEditor, JsonPreview, MODE } from '/@/components/CodeEditor';
   import { PageWrapper } from '/@/components/Page';
-  import { Radio, Space, Modal } from 'ant-design-vue';
+  import { Radio, Space, Modal, type RadioGroupProps } from 'ant-design-vue';
 
   const jsonData =
     '{"name":"BeJson","url":"http://www.xxx.com","page":88,"isNonProfit":true,"address":{"street":"绉戞妧鍥矾.","city":"姹熻嫃鑻忓窞","country":"涓浗"},"links":[{"name":"Google","url":"http://www.xxx.com"},{"name":"Baidu","url":"http://www.xxx.com"},{"name":"SoSo","url":"http://www.xxx.com"}]}';
@@ -65,7 +65,7 @@
       const modeValue = ref<MODE>(MODE.JSON);
       const value = ref(jsonData);
 
-      function handleModeChange(e: ChangeEvent) {
+      const handleModeChange: RadioGroupProps['onChange'] = (e) => {
         const mode = e.target.value;
         if (mode === MODE.JSON) {
           value.value = jsonData;
@@ -79,7 +79,7 @@
           value.value = jsData;
           return;
         }
-      }
+      };
 
       function showData() {
         if (unref(modeValue) === 'application/json') {
diff --git a/src/views/demo/form/index.vue b/src/views/demo/form/index.vue
index c9675ec..fc16601 100644
--- a/src/views/demo/form/index.vue
+++ b/src/views/demo/form/index.vue
@@ -66,25 +66,25 @@
   import { optionsListApi } from '/@/api/demo/select';
   import { useDebounceFn } from '@vueuse/core';
   import { treeOptionsListApi } from '/@/api/demo/tree';
-  import { Select } from 'ant-design-vue';
+  import { Select, type SelectProps } from 'ant-design-vue';
   import { cloneDeep } from 'lodash-es';
   import { areaRecord } from '/@/api/demo/cascader';
   import { uploadApi } from '/@/api/sys/upload';
 
   const valueSelectA = ref<string[]>([]);
   const valueSelectB = ref<string[]>([]);
-  const options = ref<Recordable[]>([]);
+  const options = ref<Required<SelectProps>['options']>([]);
   for (let i = 1; i < 10; i++) options.value.push({ label: '閫夐」' + i, value: `${i}` });
 
   const optionsA = computed(() => {
     return cloneDeep(unref(options)).map((op) => {
-      op.disabled = unref(valueSelectB).indexOf(op.value) !== -1;
+      op.disabled = unref(valueSelectB).indexOf(op.value as string) !== -1;
       return op;
     });
   });
   const optionsB = computed(() => {
     return cloneDeep(unref(options)).map((op) => {
-      op.disabled = unref(valueSelectA).indexOf(op.value) !== -1;
+      op.disabled = unref(valueSelectA).indexOf(op.value as string) !== -1;
       return op;
     });
   });
@@ -705,7 +705,7 @@
       const check = ref(null);
       const { createMessage } = useMessage();
       const keyword = ref<string>('');
-      const searchParams = computed<Recordable>(() => {
+      const searchParams = computed<Recordable<string>>(() => {
         return { keyword: unref(keyword) };
       });
 
diff --git a/src/views/demo/table/FormTable.vue b/src/views/demo/table/FormTable.vue
index beaf151..cbc0ddc 100644
--- a/src/views/demo/table/FormTable.vue
+++ b/src/views/demo/table/FormTable.vue
@@ -20,7 +20,7 @@
   </BasicTable>
 </template>
 <script lang="ts">
-  import { defineComponent, ref } from 'vue';
+  import { defineComponent, ref, unref } from 'vue';
   import { BasicTable, useTable } from '/@/components/Table';
   import { getBasicColumns, getFormConfig } from './tableData';
   import { Alert } from 'ant-design-vue';
@@ -43,7 +43,7 @@
         rowKey: 'id',
         rowSelection: {
           type: 'checkbox',
-          selectedRowKeys: checkedKeys,
+          selectedRowKeys: unref(checkedKeys),
           onSelect: onSelect,
           onSelectAll: onSelectAll,
         },
diff --git a/types/index.d.ts b/types/index.d.ts
index b279c0a..7f67f33 100644
--- a/types/index.d.ts
+++ b/types/index.d.ts
@@ -14,7 +14,7 @@
   [key: string]: string | number | boolean;
 }[];
 
-declare type EmitType = (event: string, ...args: any[]) => void;
+declare type EmitType = ReturnType<typeof defineEmits>;
 
 declare type TargetContext = '_self' | '_blank';
 

--
Gitblit v1.8.0