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