diff --git a/frontend/src/views/chat/chat-block/ChartBlock.vue b/frontend/src/views/chat/chat-block/ChartBlock.vue index 05372099..a07b9798 100644 --- a/frontend/src/views/chat/chat-block/ChartBlock.vue +++ b/frontend/src/views/chat/chat-block/ChartBlock.vue @@ -3,6 +3,7 @@ import type { ChatMessage } from '@/api/chat.ts' import DisplayChartBlock from '@/views/chat/component/DisplayChartBlock.vue' import ChartPopover from '@/views/chat/chat-block/ChartPopover.vue' import { computed, ref, watch } from 'vue' +import { useClipboard } from '@vueuse/core' import { concat } from 'lodash-es' import type { ChartTypes } from '@/views/chat/component/BaseChart.ts' import ICON_BAR from '@/assets/svg/chart/icon_bar_outlined.svg' @@ -39,6 +40,7 @@ const props = withDefaults( } ) +const { copy } = useClipboard() const loading = ref(false) const { t } = useI18n() const addViewRef = ref(null) @@ -224,10 +226,11 @@ function showSql() { // addViewRef.value?.optInit(recordeInfo) // } -function copy() { +function copyText() { if (props.message?.record?.sql) { - navigator.clipboard.writeText(props.message.record.sql) - ElMessage.success(t('embedded.copy_successful')) + copy(props.message.record.sql).then(() => { + ElMessage.success(t('embedded.copy_successful')) + }) } } @@ -455,7 +458,7 @@ watch( :sql="message.record?.sql" style="margin-top: 12px" /> - + diff --git a/frontend/src/views/system/embedded/index.vue b/frontend/src/views/system/embedded/index.vue index 61215ee3..a44eab7a 100644 --- a/frontend/src/views/system/embedded/index.vue +++ b/frontend/src/views/system/embedded/index.vue @@ -10,6 +10,7 @@ import floating_window from '@/assets/embedded/window.png' import icon_edit_outlined from '@/assets/svg/icon_edit_outlined.svg' import icon_delete from '@/assets/svg/icon_delete.svg' import icon_copy_outlined from '@/assets/embedded/icon_copy_outlined.svg' +import { useClipboard } from '@vueuse/core' import Card from './Card.vue' import { workspaceList } from '@/api/workspace' @@ -19,6 +20,8 @@ import { useI18n } from 'vue-i18n' import { cloneDeep } from 'lodash-es' const { t } = useI18n() +const { copy } = useClipboard() + const keywords = ref('') const activeStep = ref(0) const ruleConfigvVisible = ref(false) @@ -380,8 +383,7 @@ const handleEmbedded = (row: any) => { })()` } const copyJsCode = () => { - navigator.clipboard - .writeText(jsCodeElement.value) + copy(jsCodeElement.value) .then(function () { ElMessage.success(t('embedded.copy_successful')) }) @@ -390,8 +392,7 @@ const copyJsCode = () => { }) } const copyCode = () => { - navigator.clipboard - .writeText(scriptElement.value) + copy(scriptElement.value) .then(function () { ElMessage.success(t('embedded.copy_successful')) }) diff --git a/frontend/src/views/system/model/Model.vue b/frontend/src/views/system/model/Model.vue index c9ea6454..4dd9e0a0 100644 --- a/frontend/src/views/system/model/Model.vue +++ b/frontend/src/views/system/model/Model.vue @@ -29,6 +29,7 @@ const { t } = useI18n() const keywords = ref('') const defaultModelKeywords = ref('') const modelConfigvVisible = ref(false) +const searchLoading = ref(false) const editModel = ref(false) const activeStep = ref(0) const activeName = ref('') @@ -255,9 +256,15 @@ const setCardRef = (el: any, index: number) => { } } const search = () => { - modelApi.queryAll().then((res: any) => { - modelList.value = res - }) + searchLoading.value = true + modelApi + .queryAll() + .then((res: any) => { + modelList.value = res + }) + .finally(() => { + searchLoading.value = false + }) } search() @@ -367,7 +374,7 @@ const submit = (item: any) => { -