mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
feat(Smart Question): Add question copy
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
<script setup lang="ts">
|
||||
import type { ChatMessage } from '@/api/chat.ts'
|
||||
import icon_copy_outlined from '@/assets/embedded/icon_copy_outlined.svg'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useClipboard } from '@vueuse/core'
|
||||
|
||||
const props = defineProps<{
|
||||
message?: ChatMessage
|
||||
}>()
|
||||
const { t } = useI18n()
|
||||
const { copy } = useClipboard({ legacy: true })
|
||||
|
||||
function clickAnalysis() {
|
||||
console.info('analysis_record_id: ' + props.message?.record?.analysis_record_id)
|
||||
@@ -13,6 +16,17 @@ function clickAnalysis() {
|
||||
function clickPredict() {
|
||||
console.info('predict_record_id: ' + props.message?.record?.predict_record_id)
|
||||
}
|
||||
|
||||
const copyCode = () => {
|
||||
const str = props.message?.content || ''
|
||||
copy(str as string)
|
||||
.then(function () {
|
||||
ElMessage.success(t('embedded.copy_successful'))
|
||||
})
|
||||
.catch(function () {
|
||||
ElMessage.error(t('embedded.copy_failed'))
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -24,6 +38,13 @@ function clickPredict() {
|
||||
{{ t('qa.data_predict') }}
|
||||
</span>
|
||||
<span style="width: 100%">{{ message?.content }}</span>
|
||||
<div style="position: absolute; right: 12px; bottom: -24px">
|
||||
<el-tooltip :offset="12" effect="dark" :content="t('datasource.copy')" placement="top">
|
||||
<el-icon style="cursor: pointer" size="16" @click="copyCode">
|
||||
<icon_copy_outlined></icon_copy_outlined>
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -39,6 +60,7 @@ function clickPredict() {
|
||||
padding: 12px 16px;
|
||||
color: rgba(31, 35, 41, 1);
|
||||
background: rgba(245, 246, 247, 1);
|
||||
position: relative;
|
||||
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
|
||||
@@ -55,7 +55,7 @@ const copyCode = () => {
|
||||
ElMessage.success(t('embedded.copy_successful'))
|
||||
})
|
||||
.catch(function () {
|
||||
ElMessage.error(t('embedded.copy_successful'))
|
||||
ElMessage.error(t('embedded.copy_failed'))
|
||||
})
|
||||
}
|
||||
const buttonRef = ref()
|
||||
|
||||
@@ -292,7 +292,7 @@ const copyCode = (row: any, key: any = 'app_secret') => {
|
||||
ElMessage.success(t('embedded.copy_successful'))
|
||||
})
|
||||
.catch(function () {
|
||||
ElMessage.error(t('embedded.copy_successful'))
|
||||
ElMessage.error(t('embedded.copy_failed'))
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -461,7 +461,7 @@ const copyJsCode = () => {
|
||||
ElMessage.success(t('embedded.copy_successful'))
|
||||
})
|
||||
.catch(function () {
|
||||
ElMessage.error(t('embedded.copy_successful'))
|
||||
ElMessage.error(t('embedded.copy_failed'))
|
||||
})
|
||||
}
|
||||
|
||||
@@ -471,7 +471,7 @@ const copyJsCodeFull = () => {
|
||||
ElMessage.success(t('embedded.copy_successful'))
|
||||
})
|
||||
.catch(function () {
|
||||
ElMessage.error(t('embedded.copy_successful'))
|
||||
ElMessage.error(t('embedded.copy_failed'))
|
||||
})
|
||||
}
|
||||
const copyCode = () => {
|
||||
@@ -480,7 +480,7 @@ const copyCode = () => {
|
||||
ElMessage.success(t('embedded.copy_successful'))
|
||||
})
|
||||
.catch(function () {
|
||||
ElMessage.error(t('embedded.copy_successful'))
|
||||
ElMessage.error(t('embedded.copy_failed'))
|
||||
})
|
||||
}
|
||||
const certificateBeforeClose = () => {
|
||||
|
||||
@@ -70,7 +70,7 @@ const copyCode = () => {
|
||||
ElMessage.success(t('embedded.copy_successful'))
|
||||
})
|
||||
.catch(function () {
|
||||
ElMessage.error(t('embedded.copy_successful'))
|
||||
ElMessage.error(t('embedded.copy_failed'))
|
||||
})
|
||||
}
|
||||
const cancelDelete = () => {
|
||||
|
||||
@@ -65,7 +65,7 @@ const copyCode = () => {
|
||||
ElMessage.success(t('embedded.copy_successful'))
|
||||
})
|
||||
.catch(function () {
|
||||
ElMessage.error(t('embedded.copy_successful'))
|
||||
ElMessage.error(t('embedded.copy_failed'))
|
||||
})
|
||||
}
|
||||
const cancelDelete = () => {
|
||||
|
||||
@@ -517,7 +517,7 @@ const copyText = () => {
|
||||
ElMessage.success(t('embedded.copy_successful'))
|
||||
})
|
||||
.catch(function () {
|
||||
ElMessage.error(t('embedded.copy_successful'))
|
||||
ElMessage.error(t('embedded.copy_failed'))
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user