feat: Set display history (#3937)

Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>
v3.2
shaohuzhang1 2025-08-26 17:09:45 +08:00 committed by GitHub
parent c082dae066
commit b2aecdbec0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 34 additions and 21 deletions

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1756198716906" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16746" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M170.666667 106.666667a42.666667 42.666667 0 0 1 42.666666-42.666667h417.834667a21.333333 21.333333 0 0 1 15.061333 6.229333l200.874667 200.874667a21.333333 21.333333 0 0 1 6.229333 15.061333V917.333333a42.666667 42.666667 0 0 1-42.666666 42.666667H213.333333a42.666667 42.666667 0 0 1-42.666666-42.666667v-810.666666z" fill="#8F959E" p-id="16747"></path><path d="M640 65.92a21.290667 21.290667 0 0 1 6.229333 4.309333l200.874667 200.874667a21.376 21.376 0 0 1 4.309333 6.229333H682.666667a42.666667 42.666667 0 0 1-42.666667-42.666666V65.92z" fill="#646A73" p-id="16748"></path><path d="M523.690667 530.688a104.405333 104.405333 0 0 1 40.832 162.005333l-59.136 73.045334a104.405333 104.405333 0 1 1-162.261334-131.413334l56.576-69.802666 1.792 17.152c1.28 12.032 5.418667 23.125333 11.648 32.597333l-37.546666 46.336a62.634667 62.634667 0 1 0 97.322666 78.848l59.136-73.002667a62.634667 62.634667 0 0 0-36.565333-100.906666l28.202667-34.858667z m-31.488 131.626667a104.448 104.448 0 0 1-40.832-162.005334l59.136-73.002666a104.405333 104.405333 0 0 1 162.261333 131.413333l-56.533333 69.802667-1.834667-17.152a72.746667 72.746667 0 0 0-11.648-32.597334l37.546667-46.378666a62.634667 62.634667 0 0 0-97.322667-78.805334l-59.136 73.002667a62.634667 62.634667 0 0 0 36.608 100.864l-28.245333 34.858667z" fill="#FFFFFF" p-id="16749"></path></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -23,7 +23,13 @@
<el-card shadow="never" style="--el-card-padding: 8px"> <el-card shadow="never" style="--el-card-padding: 8px">
<div class="flex-between"> <div class="flex-between">
<div class="flex align-center"> <div class="flex align-center">
<img :src="getImgUrl(item && item?.document_name)" alt="" width="24" /> <img
src="@/assets/fileType/web-link-icon.svg"
alt=""
width="24"
v-if="item?.meta?.source_file_id || item?.meta?.source_url"
/>
<img v-else :src="getImgUrl(item && item?.document_name)" alt="" width="24" />
<div <div
class="ml-4 ellipsis-1" class="ml-4 ellipsis-1"
:title="item?.document_name" :title="item?.document_name"

View File

@ -4,7 +4,6 @@
:title="$t('views.system.resourceAuthorization.title')" :title="$t('views.system.resourceAuthorization.title')"
size="60%" size="60%"
:append-to-body="true" :append-to-body="true"
:modal="false"
> >
<div class="flex-between mb-16"> <div class="flex-between mb-16">
<el-button <el-button
@ -159,7 +158,7 @@ const { user } = useStore()
const props = defineProps<{ const props = defineProps<{
type: string type: string
}>() }>()
const permissionOptions = computed(() => { const permissionOptions = computed(() => {
return getPermissionOptions() return getPermissionOptions()
}) })
const drawerVisible = ref(false) const drawerVisible = ref(false)

View File

@ -4,8 +4,6 @@ import type {ChatProfile, ChatUserProfile} from '@/api/type/chat'
import type {LoginRequest} from '@/api/type/user' import type {LoginRequest} from '@/api/type/user'
import type {Ref} from 'vue' import type {Ref} from 'vue'
import {getBrowserLang} from '@/locales/index' import {getBrowserLang} from '@/locales/index'
import LoginApi from "@/api/user/login.ts";
import useUserStore from "@/stores/modules/user.ts";
interface ChatUser { interface ChatUser {
// 用户id // 用户id
@ -46,6 +44,7 @@ const useChatUserStore = defineStore('chat-user', {
}, },
applicationProfile() { applicationProfile() {
return ChatAPI.applicationProfile().then((ok) => { return ChatAPI.applicationProfile().then((ok) => {
console.log('applicationProfile', ok.data)
this.application = ok.data this.application = ok.data
localStorage.setItem(`${this.accessToken}-locale`, ok.data?.language || this.getLanguage()) localStorage.setItem(`${this.accessToken}-locale`, ok.data?.language || this.getLanguage())
}) })

View File

@ -156,7 +156,7 @@
// radio-button-group // radio-button-group
.app-radio-button-group { .app-radio-button-group {
background: #ffffff; background: #ffffff;
border: 1px solid var(--app-border-color-dark); border: 1px solid var(--el-border-color);
border-radius: var(--el-border-radius-base); border-radius: var(--el-border-radius-base);
.el-radio-button { .el-radio-button {
padding: 3px; padding: 3px;

View File

@ -442,6 +442,10 @@
$t('views.applicationOverview.appInfo.SettingDisplayDialog.showExecutionDetail') $t('views.applicationOverview.appInfo.SettingDisplayDialog.showExecutionDetail')
" "
/> />
<el-checkbox
v-model="xpackForm.show_history"
:label="$t('views.applicationOverview.appInfo.SettingDisplayDialog.showHistory')"
/>
<el-checkbox <el-checkbox
v-model="xpackForm.show_guide" v-model="xpackForm.show_guide"
:label="$t('views.applicationOverview.appInfo.SettingDisplayDialog.displayGuide')" :label="$t('views.applicationOverview.appInfo.SettingDisplayDialog.displayGuide')"
@ -483,12 +487,9 @@ import type { FormInstance, FormRules, UploadFiles } from 'element-plus'
import { isAppIcon } from '@/utils/common' import { isAppIcon } from '@/utils/common'
import { MsgSuccess, MsgError } from '@/utils/message' import { MsgSuccess, MsgError } from '@/utils/message'
import { langList, t } from '@/locales' import { langList, t } from '@/locales'
import useStore from '@/stores'
import { cloneDeep } from 'lodash' import { cloneDeep } from 'lodash'
import { loadSharedApi } from '@/utils/dynamics-api/shared-api' import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
const { user } = useStore()
const route = useRoute() const route = useRoute()
const { const {
params: { id }, params: { id },

View File

@ -211,7 +211,6 @@ function back() {
MsgConfirm(t('common.tip'), t('views.applicationWorkflow.tip.saveMessage'), { MsgConfirm(t('common.tip'), t('views.applicationWorkflow.tip.saveMessage'), {
confirmButtonText: t('views.applicationWorkflow.setting.exitSave'), confirmButtonText: t('views.applicationWorkflow.setting.exitSave'),
cancelButtonText: t('views.applicationWorkflow.setting.exit'), cancelButtonText: t('views.applicationWorkflow.setting.exit'),
type: 'warning',
distinguishCancelAndClose: true, distinguishCancelAndClose: true,
}) })
.then(() => { .then(() => {

View File

@ -3,7 +3,7 @@
<el-menu <el-menu
:default-active="currentChatId" :default-active="currentChatId"
:collapse="isPcCollapse" :collapse="isPcCollapse"
collapse-transition :collapse-transition="false"
popper-class="chat-pc-popper" popper-class="chat-pc-popper"
class="h-full" class="h-full"
> >
@ -37,7 +37,11 @@
<AppIcon iconName="app-create-chat"></AppIcon> <AppIcon iconName="app-create-chat"></AppIcon>
<span class="ml-4">{{ $t('chat.createChat') }}</span> <span class="ml-4">{{ $t('chat.createChat') }}</span>
</el-button> </el-button>
<div v-show="!isPcCollapse" class="flex-between p-8 pb-0 color-secondary mt-8"> <div
v-show="!isPcCollapse"
class="flex-between p-8 pb-0 color-secondary mt-8"
v-if="applicationDetail.show_history || hasPermission(EditionConst.IS_CE, 'OR')"
>
<span>{{ $t('chat.history') }}</span> <span>{{ $t('chat.history') }}</span>
<el-tooltip effect="dark" :content="$t('chat.clearChat')" placement="right"> <el-tooltip effect="dark" :content="$t('chat.clearChat')" placement="right">
<el-button text @click.stop="clearChat"> <el-button text @click.stop="clearChat">
@ -46,7 +50,11 @@
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
<div v-show="!isPcCollapse" class="left-height"> <div
v-show="!isPcCollapse"
class="left-height"
v-if="applicationDetail.show_history || hasPermission(EditionConst.IS_CE, 'OR')"
>
<el-scrollbar> <el-scrollbar>
<div class="p-16 pt-0"> <div class="p-16 pt-0">
<common-list <common-list
@ -103,7 +111,7 @@
<template #title>{{ $t('chat.createChat') }}</template> <template #title>{{ $t('chat.createChat') }}</template>
</el-menu-item> </el-menu-item>
<el-sub-menu v-show="isPcCollapse" index="2"> <el-sub-menu v-show="isPcCollapse" index="2" v-if="applicationDetail.show_history || hasPermission(EditionConst.IS_CE, 'OR')">
<template #title> <template #title>
<AppIcon iconName="app-history-outlined" /> <AppIcon iconName="app-history-outlined" />
</template> </template>
@ -163,6 +171,8 @@
import { ref } from 'vue' import { ref } from 'vue'
import { isAppIcon } from '@/utils/common' import { isAppIcon } from '@/utils/common'
import EditTitleDialog from './EditTitleDialog.vue' import EditTitleDialog from './EditTitleDialog.vue'
import { EditionConst } from '@/utils/permission/data'
import { hasPermission } from '@/utils/permission/index'
const props = defineProps<{ const props = defineProps<{
applicationDetail: any applicationDetail: any
chatLogData: any[] chatLogData: any[]

View File

@ -11,18 +11,16 @@
class="mcp-config-dialog" class="mcp-config-dialog"
> >
<el-form label-width="auto" label-position="top"> <el-form label-width="auto" label-position="top">
<el-form-item> <el-form-item @mouseenter.stop="showIcon = true" @mouseleave.stop="showIcon = false">
<el-input <el-input
type="textarea" type="textarea"
v-model="mcp_servers" v-model="mcp_servers"
rows="8" rows="8"
disabled disabled
class="config-textarea" class="config-textarea"
@mouseenter.stop="showIcon = true"
@mouseleave.stop="showIcon = false"
></el-input> ></el-input>
<el-button circle class="copy-icon" v-if="showIcon" @click="copyClick(mcp_servers)"> <el-button circle class="copy-icon" v-show="showIcon" @click.stop="copyClick(mcp_servers)">
<AppIcon iconName="app-copy" class="color-secondary"/> <AppIcon iconName="app-copy" class="color-secondary" />
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@ -111,14 +111,14 @@
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('common.required')" width="85"> <el-table-column :label="$t('common.required')" width="55">
<template #default="{ row }"> <template #default="{ row }">
<div @click.stop> <div @click.stop>
<el-switch disabled size="small" v-model="row.required" /> <el-switch disabled size="small" v-model="row.required" />
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('common.operation')" align="left" width="90"> <el-table-column :label="$t('common.operation')" align="left" width="80">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<span class="mr-4"> <span class="mr-4">
<el-tooltip effect="dark" :content="$t('common.modify')" placement="top"> <el-tooltip effect="dark" :content="$t('common.modify')" placement="top">