Skip to content

Commit 4d35a73

Browse files
committed
feat(Smart Question): Add question copy
1 parent d120cfd commit 4d35a73

File tree

7 files changed

+30
-8
lines changed

7 files changed

+30
-8
lines changed

frontend/src/views/chat/chat-block/UserChat.vue

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,32 @@
11
<script setup lang="ts">
22
import type { ChatMessage } from '@/api/chat.ts'
3+
import icon_copy_outlined from '@/assets/embedded/icon_copy_outlined.svg'
34
import { useI18n } from 'vue-i18n'
5+
import { useClipboard } from '@vueuse/core'
46
57
const props = defineProps<{
68
message?: ChatMessage
79
}>()
810
const { t } = useI18n()
11+
const { copy } = useClipboard({ legacy: true })
912
1013
function clickAnalysis() {
1114
console.info('analysis_record_id: ' + props.message?.record?.analysis_record_id)
1215
}
1316
function clickPredict() {
1417
console.info('predict_record_id: ' + props.message?.record?.predict_record_id)
1518
}
19+
20+
const copyCode = () => {
21+
const str = props.message?.content || ''
22+
copy(str as string)
23+
.then(function () {
24+
ElMessage.success(t('embedded.copy_successful'))
25+
})
26+
.catch(function () {
27+
ElMessage.error(t('embedded.copy_failed'))
28+
})
29+
}
1630
</script>
1731

1832
<template>
@@ -24,6 +38,13 @@ function clickPredict() {
2438
{{ t('qa.data_predict') }}
2539
</span>
2640
<span style="width: 100%">{{ message?.content }}</span>
41+
<div style="position: absolute; right: 12px; bottom: -24px">
42+
<el-tooltip :offset="12" effect="dark" :content="t('datasource.copy')" placement="top">
43+
<el-icon style="cursor: pointer" size="16" @click="copyCode">
44+
<icon_copy_outlined></icon_copy_outlined>
45+
</el-icon>
46+
</el-tooltip>
47+
</div>
2748
</div>
2849
</template>
2950

@@ -39,6 +60,7 @@ function clickPredict() {
3960
padding: 12px 16px;
4061
color: rgba(31, 35, 41, 1);
4162
background: rgba(245, 246, 247, 1);
63+
position: relative;
4264
4365
word-wrap: break-word;
4466
white-space: pre-wrap;

frontend/src/views/system/embedded/Card.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ const copyCode = () => {
5555
ElMessage.success(t('embedded.copy_successful'))
5656
})
5757
.catch(function () {
58-
ElMessage.error(t('embedded.copy_successful'))
58+
ElMessage.error(t('embedded.copy_failed'))
5959
})
6060
}
6161
const buttonRef = ref()

frontend/src/views/system/embedded/Page.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ const copyCode = (row: any, key: any = 'app_secret') => {
292292
ElMessage.success(t('embedded.copy_successful'))
293293
})
294294
.catch(function () {
295-
ElMessage.error(t('embedded.copy_successful'))
295+
ElMessage.error(t('embedded.copy_failed'))
296296
})
297297
}
298298
</script>

frontend/src/views/system/embedded/iframe.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ const copyJsCode = () => {
461461
ElMessage.success(t('embedded.copy_successful'))
462462
})
463463
.catch(function () {
464-
ElMessage.error(t('embedded.copy_successful'))
464+
ElMessage.error(t('embedded.copy_failed'))
465465
})
466466
}
467467
@@ -471,7 +471,7 @@ const copyJsCodeFull = () => {
471471
ElMessage.success(t('embedded.copy_successful'))
472472
})
473473
.catch(function () {
474-
ElMessage.error(t('embedded.copy_successful'))
474+
ElMessage.error(t('embedded.copy_failed'))
475475
})
476476
}
477477
const copyCode = () => {
@@ -480,7 +480,7 @@ const copyCode = () => {
480480
ElMessage.success(t('embedded.copy_successful'))
481481
})
482482
.catch(function () {
483-
ElMessage.error(t('embedded.copy_successful'))
483+
ElMessage.error(t('embedded.copy_failed'))
484484
})
485485
}
486486
const certificateBeforeClose = () => {

frontend/src/views/system/prompt/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ const copyCode = () => {
7070
ElMessage.success(t('embedded.copy_successful'))
7171
})
7272
.catch(function () {
73-
ElMessage.error(t('embedded.copy_successful'))
73+
ElMessage.error(t('embedded.copy_failed'))
7474
})
7575
}
7676
const cancelDelete = () => {

frontend/src/views/system/training/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ const copyCode = () => {
6565
ElMessage.success(t('embedded.copy_successful'))
6666
})
6767
.catch(function () {
68-
ElMessage.error(t('embedded.copy_successful'))
68+
ElMessage.error(t('embedded.copy_failed'))
6969
})
7070
}
7171
const cancelDelete = () => {

frontend/src/views/system/user/User.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,7 @@ const copyText = () => {
517517
ElMessage.success(t('embedded.copy_successful'))
518518
})
519519
.catch(function () {
520-
ElMessage.error(t('embedded.copy_successful'))
520+
ElMessage.error(t('embedded.copy_failed'))
521521
})
522522
}
523523

0 commit comments

Comments
 (0)