schangxiang@126.com
2025-04-29 27ba504441037666e787ded85b4af2f65be65c17
HIAWms/web/src/components/Table/Table.tsx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
// @ts-nocheck
import { defineComponent, useAttrs, ref, SetupContext, PropType } from 'vue'
import BaseTable from './index.vue'
import type { TablePropsItemType } from './index.d'
// æ³¨é‡Šæ—¶é—´2024-10-09
// è¯¥è¡¨æ ¼æ˜¯ä»Žå¤šä¸ªå°é¡¹ç›®è¿ç§»æ”¹é€ è€Œæ¥ï¼Œç»åŽ†è¿‡å¤šé‡æ”¹é€ ï¼Œä»£ç æ¯”è¾ƒä¹±ï¼Œå¦‚æžœéœ€è¦é‡æž„ï¼Œè¯·åŸºäºŽcomponents/BaseTable/BaseTable.tsx继续重构。
// å¦å¤–本地vxe-table和线上vxe-table版本不一致,有可能有差异性,比如watch数据不执行等。注意避坑。
export default defineComponent<TablePropsItemType>({
  props: BaseTable.props,
  // emits: BaseTable.emits,
  setup(props, ctx: SetupContext) {
    // const emits: any = BaseTable.emits
    // const eventMap: Record<string, any> = {}
    const tableRef = ref()
    // emits.forEach((eventName: string) => {
    //   const onEventName = `on${eventName
    //     .slice(0, 1)
    //     .toUpperCase()}${eventName.slice(1)}`
    //   eventMap[onEventName] = (...args: any) => ctx.emit(eventName, ...args)
    // })
    /**
     * æš´éœ²æ–¹æ³•
     * @param exposeMap
     */
    const onUpdatedExpose = (exposeMap: Record<string, () => void>) => {
      ctx.expose(exposeMap)
    }
    return () => {
      return (
        <BaseTable
          ref={tableRef}
          {...props}
          {...ctx.attrs}
          // {...eventMap}
          v-slots={{ ...ctx.slots }}
          onUpdate={onUpdatedExpose}
        />
      )
    }
  },
})