index.vue 1.74 KB
<template>
  <div>
    <BasicTable :clickToRowSelect="false" @register="registerTable">
      <template #toolbar>
        <Authority value="api:yt:product:category:post">
          <Button type="primary">
            {{ t('inspection.inspectionPlan.createCategoryText') }}
          </Button>
        </Authority>
      </template>
      <template #status="{ record }">
        <Tag
          :color="
            record.status == 'NOT_START'
              ? 'yellow'
              : record.status == 'UNDERWAY'
              ? 'blue': record.status == 'FINISH'
              ? 'green': 'red'
          "
          class="ml-2"
        >
          {{ t(`inspection.inspectionPlan.${record.status}`) }}
        </Tag>
      </template>
    </BasicTable>
  </div>
</template>
<script setup lang="ts">
import { BasicTable, useTable } from '/@/components/Table';
import { getInspectionPlanList } from '/@/api/inspection/inspectionPlan';
import { columns, searchFormSchema } from './index';
import { useI18n } from '/@/hooks/web/useI18n';
import { Button, Tag } from 'ant-design-vue';
const { t } = useI18n();

const [
  registerTable,
  { reload, setLoading, getSelectRowKeys, setSelectedRowKeys, getRowSelection },
] = useTable({
  title: t('inspection.inspectionPlan.listText'),
  api: getInspectionPlanList,
  columns,
  formConfig: {
    labelWidth: 100,
    schemas: searchFormSchema,
  },
  immediate: true,
  useSearchForm: true,
  showTableSetting: true,
  bordered: true,
  showIndexColumn: false,
  clickToRowSelect: false,
  rowKey: 'id',
  actionColumn: {
    width: 230,
    title: t('common.actionText'),
    slots: { customRender: 'action' },
    fixed: 'right',
  },
  rowSelection: {
    type: 'checkbox',
    getCheckboxProps: (record: any) => {},
  },
});
</script>