<!-- @format -->

<template>
  <a-drawer v-bind="getBindValue">
    <template #[item]="data" v-for="item in Object.keys($slots)" :key="item">
      <slot :name="item" v-bind="data || {}"></slot>
    </template>
    <template #footer>
      <a-space>
        <a-button v-if="cancel" @click="cancel">取消</a-button>
        <a-button type="primary" @click="ok">确定</a-button>
      </a-space>
    </template>
  </a-drawer>
</template>

<script lang="ts">
  import { computed, defineComponent, getCurrentInstance, toRefs } from 'vue';
  import { drawerProps } from 'ant-design-vue/es/drawer';

  export default defineComponent({
    name: 'NsDrawer',
    props: {
      ...drawerProps(),
      ok: Function,
      cancel: Function,
    },
    setup(props, { attrs, emit, slots }) {
      console.log(props, getCurrentInstance());

      const getBindValue = computed(() => ({
        getContainer: (triggerNode: any) => triggerNode.parentNode,
        ...attrs,
        ...props,
        footerStyle: { textAlign: 'right' },
      }));
      return { getBindValue };
    },
  });
</script>
<style lang="less" scoped></style>
