<template>
  <PageWrapper dense>
    <BasicTable @register="registerTable">

      <template #bodyCell="{ column, record }">
        <template v-if="column && record && column.key === 'action'"> 
          <a-button type="link" @click="showAuditModal(record.id)">审核</a-button>
          <a-button type="link" @click="showDrawer(record.id)">详情</a-button>
        </template>
      </template>
    </BasicTable>
    <auditModal ref="auditModalRef" @success="reload()"/>
    <detailDrawer ref="detailDrawerRef"  />
  </PageWrapper>
</template>

<script setup lang="ts">
  import { PageWrapper } from '@/components/Page';
  import { BasicTable, useTable } from '@/components/Table';
  import { list, getProjectInfo } from './api';
  import { formSchemas, columns } from './data';
  import auditModal from './auditModal.vue';
  import detailDrawer from './detailDrawer.vue';
  import { ref } from 'vue';

  const [registerTable,{reload}] = useTable({
    title: '延期审核',
    api: list,
    showIndexColumn: true,
    rowKey: 'id',
    useSearchForm: true,
    formConfig: {
      schemas: formSchemas,
      name: 'delayAudit',
      baseColProps: {
        xs: 24,
        sm: 24,
        md: 24,
        lg: 6,
      },
    },
    columns: columns,
    actionColumn: {
      width: 200,
      title: '操作',
      key: 'action',
      fixed: 'right',
    },
  });
  //弹窗内容
  const auditModalRef = ref();
  const showAuditModal = (id:any) => {
    auditModalRef.value.showModal(id);
  };
  //详情抽屉
  const detailDrawerRef = ref();
  const showDrawer = (id:any) => {
    detailDrawerRef.value.showDrawer(id);
  };
  const projectOptions = ref([]);
  const getProjectOptions = async () => {
    const res = await getProjectInfo();
    res.forEach((i: any) => {
      i.value = i.projectName;
      i.label = i.projectName;
    });
    projectOptions.value = res;
    formSchemas[0].componentProps.options = projectOptions.value;
  };
  const getOptions = () => {
    getProjectOptions();
  };
  getOptions();
  // 前往审批记录页面
</script>

<style scoped></style>
