|
1 | 1 | <template> |
2 | 2 | <div> |
3 | 3 | <BasicTable @register="registerTable"> |
| 4 | + <template #toolbar> |
| 5 | + <Button |
| 6 | + v-auth="['AbpTextTemplating.TextTemplateDefinitions.Create']" |
| 7 | + type="primary" |
| 8 | + @click="handleAddNew" |
| 9 | + >{{ L('TextTemplates:AddNew') }} |
| 10 | + </Button> |
| 11 | + </template> |
4 | 12 | <template #bodyCell="{ column, record }"> |
5 | 13 | <template v-if="column.key === 'isStatic'"> |
6 | 14 | <CheckOutlined v-if="record.isStatic" class="enable" /> |
|
16 | 24 | </template> |
17 | 25 | <template v-else-if="column.key === 'action'"> |
18 | 26 | <TableAction |
19 | | - v-auth="['AbpTextTemplating.TextTemplateDefinitions', 'AbpTextTemplating.TextTemplateDefinitions.Delete']" |
| 27 | + v-auth="[ |
| 28 | + 'AbpTextTemplating.TextTemplateDefinitions.Update', |
| 29 | + 'AbpTextTemplating.TextTemplateDefinitions.Delete', |
| 30 | + 'AbpTextTemplating.TextTemplateContents.Update']" |
20 | 31 | :stop-button-propagation="true" |
21 | 32 | :actions="[ |
22 | 33 | { |
23 | 34 | auth: 'AbpTextTemplating.TextTemplateDefinitions.Update', |
24 | | - label: L('Update'), |
| 35 | + label: L('Edit'), |
25 | 36 | icon: 'ant-design:edit-outlined', |
26 | 37 | onClick: handleEdit.bind(null, record), |
27 | 38 | }, |
|
35 | 46 | ]" |
36 | 47 | :dropDownActions="[ |
37 | 48 | { |
38 | | - auth: 'AbpTextTemplating.TextTemplateContent.Update', |
| 49 | + auth: 'AbpTextTemplating.TextTemplateContents.Update', |
39 | 50 | label: L('EditContents'), |
40 | 51 | icon: 'ant-design:edit-outlined', |
41 | 52 | onClick: handleEditContent.bind(null, record), |
|
45 | 56 | </template> |
46 | 57 | </template> |
47 | 58 | </BasicTable> |
48 | | - <TemplateContentModal @register="registerModal" /> |
| 59 | + <TemplateContentModal @register="registerContentModal" /> |
| 60 | + <TemplateDefinitionModal @register="registerEditModal" @change="reload" /> |
49 | 61 | </div> |
50 | 62 | </template> |
51 | 63 |
|
52 | 64 | <script lang="ts" setup> |
| 65 | + import { Button } from 'ant-design-vue'; |
53 | 66 | import { CheckOutlined, CloseOutlined } from '@ant-design/icons-vue'; |
54 | 67 | import { useModal } from '/@/components/Modal'; |
55 | 68 | import { BasicTable, TableAction, useTable } from '/@/components/Table'; |
|
61 | 74 | import { TextTemplateDefinitionDto } from '/@/api/text-templating/definitions/model'; |
62 | 75 | import { formatPagedRequest } from '/@/utils/http/abp/helper'; |
63 | 76 | import TemplateContentModal from './TemplateContentModal.vue'; |
| 77 | + import TemplateDefinitionModal from './TemplateDefinitionModal.vue'; |
64 | 78 |
|
65 | 79 | const { L } = useLocalization(['AbpTextTemplating', 'AbpUi']); |
66 | 80 | const { createConfirm, createMessage } = useMessage(); |
67 | | - const [registerModal, { openModal }] = useModal(); |
| 81 | + const [registerEditModal, { openModal: openEditModal }] = useModal(); |
| 82 | + const [registerContentModal, { openModal: openContentModal }] = useModal(); |
68 | 83 | const [registerTable, { reload }] = useTable({ |
69 | 84 | rowKey: 'name', |
70 | 85 | title: L('TextTemplates'), |
|
87 | 102 | }, |
88 | 103 | }); |
89 | 104 |
|
| 105 | + function handleAddNew() { |
| 106 | + openEditModal(true, {}); |
| 107 | + } |
| 108 | +
|
90 | 109 | function handleEdit(record: TextTemplateDefinitionDto) { |
91 | | - console.log('This method is not implemented', record); |
| 110 | + openEditModal(true, record); |
92 | 111 | } |
93 | 112 |
|
94 | 113 | function handleEditContent(record: TextTemplateDefinitionDto) { |
95 | | - openModal(true, record); |
| 114 | + openContentModal(true, record); |
96 | 115 | } |
97 | 116 |
|
98 | 117 | function handleDelete(record: TextTemplateDefinitionDto) { |
|
0 commit comments