versionManagementModal.vue 2.78 KB
<template>
  <BasicModal
    width="40%"
    v-bind="$attrs"
    @register="registerModal"
    :title="title"
    @ok="handleSubmit"
    :showOkBtn="false"
    :showCancelBtn="true"
    :cancelText="'关闭'"
  >
    <div style="display: flex">
      <div class="w-full">
        <BasicTable @register="registerTable">
          <template #toolbar> </template>
          <template #bodyCell="{ column, record }">
            <template v-if="column.key === 'action'">
              <TableAction
                :actions="[
                  {
                    icon: 'ant-design:eye-outlined',
                    tooltip: '查看详情',
                    onClick: handleDetail,
                  },
                  {
                    icon: 'majesticons:file-search-line',
                    tooltip: '版本对比',
                    onClick: modEdit,
                  },
                  {
                    icon: 'ant-design:rollback-outlined',
                    tooltip: '回退版本',
                    popConfirm: {
                      title: '是否确认回退至该版本',
                      confirm: handleVersionRollback,
                    },
                  },
                ]"
              />
            </template>
          </template>
        </BasicTable>
      </div>
    </div>
  </BasicModal>
</template>

<script lang="ts" setup>
  import { onMounted, ref } from 'vue';
  import { BasicModal, useModal, useModalInner } from '@/components/Modal';
  import { BasicTable, useTable, TableAction } from '@/components/Table';
  import { versionColumns, versionSchema } from './version.data';
  import { message } from 'ant-design-vue';
  import { router } from '@/router';
  const id = ref();
  const title = ref();
  const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
    setModalProps({ confirmLoading: false });
    console.log(data)
    title.value = data.title;
    id.value = data.id;
  });
  const [registerTable] = useTable({
    dataSource: versionSchema,
    columns: versionColumns,
    actionColumn: {
      width: 120,
      title: '操作',
      dataIndex: 'action',
    },

    showIndexColumn: false,
  });
  function handleDetail() {
    console.log('查看详情');
    console.log(id.value);
    router.push({
      path: '/scriptDevelopment/shellDevelopment/shellExecute/versionDetail',
      query: {
        id: id.value,
      },
    });
  }
  function modEdit() {
    console.log('版本对比');
    router.push({
      path: '/scriptDevelopment/shellDevelopment/shellExecute/versionCompare',
      query: {
        id: id.value,
      },
    });
  }
  function handleVersionRollback() {
    message.success('回退成功');
    closeModal();
  }
  async function handleSubmit() {
    closeModal();
  }
  onMounted(() => {});
</script>