index.vue 2.4 KB
<template>
  <div >
    <BasicTable style="flex: auto" @register="registerTable">
      <template #toolbar>
        <Authority value="api:yt:equip:post">
          <Button type="primary" @click="handleCreate">
            {{ t('spare.equip.createCategoryText') }}
          </Button>
        </Authority>
      </template>
      <template #action="{ record }">
        <TableAction
          :actions="[
            {
              label: t('common.detailText'),
              icon: 'ant-design:eye-outlined',
              auth: 'api:yt:equip:get',
              onClick: handleDetail.bind(null, record),
            },
            {
              label: t('common.editText'),
              auth: 'api:yt:equip:update',
              icon: 'clarity:note-edit-line',
              onClick: handleEdit.bind(null, record),
            },
            {
              label: t('common.delText'),
              auth: 'api:yt:equip:delete',
              icon: 'ant-design:delete-outlined',
              color: 'error',
              popConfirm: {
                title: t('common.deleteConfirmText'),
                confirm: handleDelete.bind(null, record),
              },
            },
          ]"
        />
      </template>
    </BasicTable>
    <EquipModal @register="registerModal" />
  </div>
</template>
<script setup lang="ts">
import {BasicTable, TableAction, useTable} from "/@/components/Table";
import {getPlanList} from "/@/api/equipment/chenkPlan";
import {columns, searchFormSchema} from "/@/views/spare/equip/index";
import {useI18n} from "/@/hooks/web/useI18n";
import {Button} from "ant-design-vue";
import {Authority} from "/@/components/Authority";
import {useModal} from "/@/components/Modal";
import { EquipModal } from './components/index'
const [registerModal, { openModal }] = useModal();

const { t } = useI18n();
const [
  registerTable,
  { reload, setLoading, setSelectedRowKeys },
] = useTable({
  title: t('spare.equip.listText'),
  api: getPlanList,
  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',
  },
});

// 新增
const handleCreate = () => {
  openModal(true, {
    isUpdate: false,
  });
};

</script>