1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<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>