<template>
  <PageWrapper dense>
    <BasicTable @register="registerTable">
      <template #toolbar>
        <a-button type="primary" @click="showFaultModal">故障上报</a-button>
      </template>
      <template #bodyCell="{ column, record }">
        <template v-if="column && record && column.key === 'action'">
          <a-button type="link" @click="showDrawer(record.id)">详情</a-button>
        </template>
      </template>
    </BasicTable>
    <faultModal ref="faultModalRef" />
    <detailDrawer ref="detailDrawerRef" @open-modal="showFaultModal" />
  </PageWrapper>
</template>

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

  const [registerTable] = useTable({
    rowSelection: {
      type: 'checkbox',
    },
    title: '工单派遣',
    api: list,
    showIndexColumn: true,
    rowKey: 'id',
    useSearchForm: true,
    formConfig: {
      schemas: formSchemas,
      name: 'patroling',
      baseColProps: {
        xs: 24,
        sm: 24,
        md: 24,
        lg: 6,
      },
    },
    columns: columns,
    actionColumn: {
      width: 200,
      title: '操作',
      key: 'action',
      fixed: 'right',
    },
  });
  //弹窗内容
  const faultModalRef = ref();
  const showFaultModal = () => {
    faultModalRef.value.showModal();
  };
  //详情抽屉
  const detailDrawerRef = ref();
  const showDrawer = (id: any) => {
    detailDrawerRef.value.showDrawer(id);
  };

  // 前往审批记录页面
</script>

<style scoped></style>
