This commit is contained in:
wangdan-fit2cloud 2025-07-02 14:09:02 +08:00
parent 081ca691d8
commit 7abfebe927
6 changed files with 56 additions and 27 deletions

View File

@ -79,7 +79,7 @@ const loginImage = computed(() => {
return `${fileURL.value}` return `${fileURL.value}`
} else { } else {
const imgName = getThemeImg(theme.themeInfo?.theme) const imgName = getThemeImg(theme.themeInfo?.theme)
const imgPath = `/ui/theme/${imgName}.jpg` const imgPath = `/theme/${imgName}.jpg`
const imageUrl = new URL(imgPath, import.meta.url).href const imageUrl = new URL(imgPath, import.meta.url).href
return imageUrl return imageUrl
} }

View File

@ -47,7 +47,7 @@ const loginImage = computed(() => {
return `${fileURL.value}` return `${fileURL.value}`
} else { } else {
const imgName = getThemeImg(theme.themeInfo?.theme) const imgName = getThemeImg(theme.themeInfo?.theme)
const imgPath = `../../assets/theme/${imgName}.jpg` const imgPath = `/theme/${imgName}.jpg`
const imageUrl = new URL(imgPath, import.meta.url).href const imageUrl = new URL(imgPath, import.meta.url).href
return imageUrl return imageUrl
} }

View File

@ -1,3 +1,13 @@
export function isWorkFlow(type: string | undefined) { export function isWorkFlow(type: string | undefined) {
return type === 'WORK_FLOW' return type === 'WORK_FLOW'
} }
export function mapToUrlParams(map: any[]) {
const params = new URLSearchParams()
map.forEach((item: any) => {
params.append(encodeURIComponent(item.name), encodeURIComponent(item.value))
})
return params.toString() // 返回 URL 查询字符串
}

View File

@ -225,6 +225,7 @@ import { nowDate, beforeDay } from '@/utils/time'
import { MsgSuccess, MsgConfirm } from '@/utils/message' import { MsgSuccess, MsgConfirm } from '@/utils/message'
import { copyClick } from '@/utils/clipboard' import { copyClick } from '@/utils/clipboard'
import { isAppIcon } from '@/utils/common' import { isAppIcon } from '@/utils/common'
import { mapToUrlParams } from '@/utils/application'
import useStore from '@/stores' import useStore from '@/stores'
import { t } from '@/locales' import { t } from '@/locales'
import { EditionConst } from '@/utils/permission/data' import { EditionConst } from '@/utils/permission/data'
@ -459,16 +460,6 @@ function refreshIcon() {
getDetail() getDetail()
} }
function mapToUrlParams(map: any[]) {
const params = new URLSearchParams()
map.forEach((item: any) => {
params.append(encodeURIComponent(item.name), encodeURIComponent(item.value))
})
return params.toString() // URL
}
onMounted(() => { onMounted(() => {
getDetail() getDetail()
getAccessToken() getAccessToken()

View File

@ -46,6 +46,11 @@
</el-button> </el-button>
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item :href="shareUrl">
<AppIcon iconName="app-create-chat" class="mr-4"></AppIcon>
{{ $t('views.application.operation.toChat') }}
</el-dropdown-item>
<el-dropdown-item @click="openHistory"> <el-dropdown-item @click="openHistory">
<AppIcon iconName="app-history-outlined"></AppIcon> <AppIcon iconName="app-history-outlined"></AppIcon>
{{ $t('views.applicationWorkflow.setting.releaseHistory') }} {{ $t('views.applicationWorkflow.setting.releaseHistory') }}
@ -138,6 +143,7 @@ import applicationApi from '@/api/application/application'
import { isAppIcon } from '@/utils/common' import { isAppIcon } from '@/utils/common'
import { MsgSuccess, MsgError, MsgConfirm } from '@/utils/message' import { MsgSuccess, MsgError, MsgConfirm } from '@/utils/message'
import { datetimeFormat } from '@/utils/time' import { datetimeFormat } from '@/utils/time'
import { mapToUrlParams } from '@/utils/application'
import useStore from '@/stores' import useStore from '@/stores'
import { WorkFlowInstance } from '@/workflow/common/validate' import { WorkFlowInstance } from '@/workflow/common/validate'
import { hasPermission } from '@/utils/permission' import { hasPermission } from '@/utils/permission'
@ -170,6 +176,15 @@ const disablePublic = ref(false)
const currentVersion = ref<any>({}) const currentVersion = ref<any>({})
const cloneWorkFlow = ref(null) const cloneWorkFlow = ref(null)
const apiInputParams = ref([])
const urlParams = computed(() =>
mapToUrlParams(apiInputParams.value) ? '?' + mapToUrlParams(apiInputParams.value) : '',
)
const shareUrl = computed(
() => `${window.location.origin}/chat/` + detail.value.access_token + urlParams.value,
)
function back() { function back() {
if (JSON.stringify(cloneWorkFlow.value) !== JSON.stringify(getGraphData())) { if (JSON.stringify(cloneWorkFlow.value) !== JSON.stringify(getGraphData())) {
MsgConfirm(t('common.tip'), t('views.applicationWorkflow.tip.saveMessage'), { MsgConfirm(t('common.tip'), t('views.applicationWorkflow.tip.saveMessage'), {
@ -227,9 +242,9 @@ function renderGraphData(item: any) {
function closeHistory() { function closeHistory() {
getDetail() getDetail()
// if (hasPermission(`APPLICATION:MANAGE:${id}`, 'AND') && isSave.value) { if (isSave.value) {
// initInterval() initInterval()
// } }
showHistory.value = false showHistory.value = false
disablePublic.value = false disablePublic.value = false
} }
@ -244,12 +259,10 @@ function changeSave(bool: boolean) {
} }
function clickNodes(item: any) { function clickNodes(item: any) {
// workflowRef.value?.addNode(item)
showPopover.value = false showPopover.value = false
} }
function onmousedown(item: any) { function onmousedown(item: any) {
// workflowRef.value?.onmousedown(item)
showPopover.value = false showPopover.value = false
} }
@ -328,12 +341,6 @@ const clickShowDebug = () => {
} }
}) })
} }
// function clickoutsideDebug(e: any) {
// if (workflowMainRef.value && e && e.target && workflowMainRef.value.contains(e?.target)) {
// showDebug.value = false
// }
// }
function getGraphData() { function getGraphData() {
return workflowRef.value?.getGraphData() return workflowRef.value?.getGraphData()
} }
@ -348,6 +355,27 @@ function getDetail() {
detail.value.tts_model_id = res.data.tts_model detail.value.tts_model_id = res.data.tts_model
detail.value.tts_type = res.data.tts_type detail.value.tts_type = res.data.tts_type
saveTime.value = res.data?.update_time saveTime.value = res.data?.update_time
detail.value.work_flow?.nodes
?.filter((v: any) => v.id === 'base-node')
.map((v: any) => {
apiInputParams.value = v.properties.api_input_field_list
? v.properties.api_input_field_list.map((v: any) => {
return {
name: v.variable,
value: v.default_value,
}
})
: v.properties.input_field_list
? v.properties.input_field_list
.filter((v: any) => v.assignment_method === 'api_input')
.map((v: any) => {
return {
name: v.variable,
value: v.default_value,
}
})
: []
})
application.asyncGetAccessToken(id, loading).then((res: any) => { application.asyncGetAccessToken(id, loading).then((res: any) => {
detail.value = { ...detail.value, ...res.data } detail.value = { ...detail.value, ...res.data }
}) })
@ -404,9 +432,9 @@ onMounted(() => {
const workflowAutoSave = localStorage.getItem('workflowAutoSave') const workflowAutoSave = localStorage.getItem('workflowAutoSave')
isSave.value = workflowAutoSave === 'true' ? true : false isSave.value = workflowAutoSave === 'true' ? true : false
// //
// if (hasPermission(`APPLICATION:MANAGE:${id}`, 'AND') && isSave.value) { if (isSave.value) {
// initInterval() initInterval()
// } }
}) })
onBeforeUnmount(() => { onBeforeUnmount(() => {

View File

@ -79,7 +79,7 @@ const loginImage = computed(() => {
return `${fileURL.value}` return `${fileURL.value}`
} else { } else {
const imgName = getThemeImg(theme.themeInfo?.theme) const imgName = getThemeImg(theme.themeInfo?.theme)
const imgPath = `../../assets/theme/${imgName}.jpg` const imgPath = `/theme/${imgName}.jpg`
const imageUrl = new URL(imgPath, import.meta.url).href const imageUrl = new URL(imgPath, import.meta.url).href
return imageUrl return imageUrl
} }