Commit ba6edb7fb2ae5d37fe033650fbfc60cacbcd3899
Merge branch 'local_dev_ft' into 'main'
pref:优化Topic可以复制 See merge request huang/yun-teng-iot-front!437
Showing
2 changed files
with
51 additions
and
1 deletions
| 1 | 1 | <script lang="ts" setup> |
| 2 | 2 | import { BasicTable, useTable } from '/@/components/Table'; |
| 3 | 3 | import { list, topicTableColumn } from './topic'; |
| 4 | + import { unref } from 'vue'; | |
| 5 | + import { useCopyToClipboard } from '/@/hooks/web/useCopyToClipboard'; | |
| 6 | + import { useMessage } from '/@/hooks/web/useMessage'; | |
| 4 | 7 | |
| 8 | + const { createMessage } = useMessage(); | |
| 5 | 9 | const [register] = useTable({ |
| 6 | 10 | title: 'Topic', |
| 7 | 11 | showIndexColumn: false, |
| ... | ... | @@ -10,10 +14,51 @@ |
| 10 | 14 | bordered: true, |
| 11 | 15 | showTableSetting: true, |
| 12 | 16 | }); |
| 17 | + const handeleCopy = (e) => { | |
| 18 | + const { isSuccessRef } = useCopyToClipboard(JSON.parse(JSON.stringify(unref(e), null, 2))); | |
| 19 | + unref(isSuccessRef); | |
| 20 | + createMessage.success('复制成功!'); | |
| 21 | + }; | |
| 13 | 22 | </script> |
| 14 | 23 | |
| 15 | 24 | <template> |
| 16 | 25 | <section class="bg-gray-100 p-4 dark:bg-dark-900 w-full h-full"> |
| 17 | - <BasicTable @register="register" /> | |
| 26 | + <BasicTable @register="register"> | |
| 27 | + <template #function="{ record }"> | |
| 28 | + <a-tooltip :title="record.function"> | |
| 29 | + <a-button type="text" class="ml-2" @click="handeleCopy(record.function)"> | |
| 30 | + <span>{{ record.function.slice(0, 13) }}</span> | |
| 31 | + </a-button> | |
| 32 | + </a-tooltip> | |
| 33 | + </template> | |
| 34 | + <template #release="{ record }"> | |
| 35 | + <a-tooltip :title="record.release"> | |
| 36 | + <a-button type="text" class="ml-2" @click="handeleCopy(record.release)"> | |
| 37 | + <span>{{ record.release.slice(0, 30) }}</span> | |
| 38 | + </a-button> | |
| 39 | + </a-tooltip> | |
| 40 | + </template> | |
| 41 | + <template #subscribe="{ record }"> | |
| 42 | + <a-tooltip :title="record.subscribe"> | |
| 43 | + <a-button type="text" class="ml-2" @click="handeleCopy(record.subscribe)"> | |
| 44 | + <span>{{ record.subscribe.slice(0, 30) }}</span> | |
| 45 | + </a-button> | |
| 46 | + </a-tooltip> | |
| 47 | + </template> | |
| 48 | + <template #platform="{ record }"> | |
| 49 | + <a-tooltip :title="record.platform"> | |
| 50 | + <a-button type="text" class="ml-2" @click="handeleCopy(record.platform)"> | |
| 51 | + <span>{{ record.platform }}</span> | |
| 52 | + </a-button> | |
| 53 | + </a-tooltip> | |
| 54 | + </template> | |
| 55 | + <template #device="{ record }"> | |
| 56 | + <a-tooltip :title="record.device"> | |
| 57 | + <a-button type="text" class="ml-2" @click="handeleCopy(record.device)"> | |
| 58 | + <span>{{ record.device }}</span> | |
| 59 | + </a-button> | |
| 60 | + </a-tooltip> | |
| 61 | + </template> | |
| 62 | + </BasicTable> | |
| 18 | 63 | </section> |
| 19 | 64 | </template> | ... | ... |
| ... | ... | @@ -29,26 +29,31 @@ export const topicTableColumn: BasicColumn[] = [ |
| 29 | 29 | title: '功能', |
| 30 | 30 | dataIndex: 'function', |
| 31 | 31 | width: 100, |
| 32 | + slots: { customRender: 'function' }, | |
| 32 | 33 | }, |
| 33 | 34 | { |
| 34 | 35 | title: '发布主题', |
| 35 | 36 | dataIndex: 'release', |
| 36 | 37 | width: 120, |
| 38 | + slots: { customRender: 'release' }, | |
| 37 | 39 | }, |
| 38 | 40 | { |
| 39 | 41 | title: '订阅主题', |
| 40 | 42 | dataIndex: 'subscribe', |
| 41 | 43 | width: 120, |
| 44 | + slots: { customRender: 'subscribe' }, | |
| 42 | 45 | }, |
| 43 | 46 | { |
| 44 | 47 | title: '平台', |
| 45 | 48 | dataIndex: 'platform', |
| 46 | 49 | width: 30, |
| 50 | + slots: { customRender: 'platform' }, | |
| 47 | 51 | }, |
| 48 | 52 | { |
| 49 | 53 | title: '设备', |
| 50 | 54 | dataIndex: 'device', |
| 51 | 55 | width: 30, |
| 56 | + slots: { customRender: 'device' }, | |
| 52 | 57 | }, |
| 53 | 58 | ]; |
| 54 | 59 | ... | ... |