|
1
|
<template>
|
vben
authored
|
2
|
<PageWrapper title="文本复制示例">
|
vben
authored
|
3
|
<CollapseContainer class="w-full h-32 bg-white rounded-md" title="Copy Example">
|
|
4
5
|
<div class="flex justify-center">
<a-input placeholder="请输入" v-model:value="value" />
|
vben
authored
|
6
|
<a-button type="primary" @click="handleCopy"> Copy </a-button>
|
|
7
8
|
</div>
</CollapseContainer>
|
vben
authored
|
9
|
</PageWrapper>
|
|
10
11
12
13
14
15
|
</template>
<script lang="ts">
import { defineComponent, unref, ref } from 'vue';
import { CollapseContainer } from '/@/components/Container/index';
import { useCopyToClipboard } from '/@/hooks/web/useCopyToClipboard';
import { useMessage } from '/@/hooks/web/useMessage';
|
vben
authored
|
16
|
import { PageWrapper } from '/@/components/Page';
|
|
17
18
|
export default defineComponent({
|
vben
authored
|
19
|
name: 'Copy',
|
Vben
authored
|
20
|
components: { CollapseContainer, PageWrapper },
|
|
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
setup() {
const valueRef = ref('');
const { createMessage } = useMessage();
const { clipboardRef, copiedRef } = useCopyToClipboard();
function handleCopy() {
const value = unref(valueRef);
if (!value) {
createMessage.warning('请输入要拷贝的内容!');
return;
}
clipboardRef.value = value;
if (unref(copiedRef)) {
createMessage.warning('copy success!');
}
}
return { handleCopy, value: valueRef };
},
});
</script>
|