fix: Fix some styling issues

This commit is contained in:
wangdan-fit2cloud 2025-08-27 17:35:47 +08:00
parent dbfdc73ce5
commit 420b36fbdb
31 changed files with 279 additions and 234 deletions

View File

@ -733,7 +733,7 @@
</div>
<div v-if="system" class="card-never border-r-6 mb-12">
<h5 class="p-8-12">
{{ $t('chat.paragraphSource.system') }}
{{ $t('views.application.form.roleSettings.label') }}
</h5>
<div class="p-8-12 border-t-dashed lighter">
<span class="mb-8">{{ system }}</span>
@ -742,7 +742,7 @@
<div class="card-never border-r-6 mb-12">
<h5 class="p-8-12">
{{ $t('chat.paragraphSource.historyRecord') }}
{{ $t('chat.history') }}
</h5>
<div class="p-8-12 border-t-dashed lighter">
<div v-for="(msg, index) in historyRecord" :key="index">
@ -754,10 +754,10 @@
<div class="card-never border-r-6 mb-12">
<h5 class="p-8-12">
{{ $t('chat.paragraphSource.currentChat') }}
{{ $t('chat.executionDetails.currentChat') }}
</h5>
<div class="p-8-12 border-t-dashed lighter">
<div class="mb-8">{{ $t('chat.paragraphSource.knowedMessage') }}:</div>
<div class="mb-8">{{ $t('chat.executionDetails.knowedMessage') }}:</div>
<div v-for="(msg, index) in currentChat" :key="index">
<span>{{ msg.content }}</span>
</div>
@ -766,7 +766,7 @@
<div class="card-never border-r-6 mb-12">
<h5 class="p-8-12">
{{ $t('chat.paragraphSource.AiResponse') }}
{{ $t('chat.executionDetails.answer') }}
</h5>
<div class="p-8-12 border-t-dashed lighter">
<div v-for="(msg, index) in AiResponse" :key="index">

View File

@ -106,4 +106,46 @@ export default {
])
},
},
'app-drag-outlined': {
iconReader: () => {
return h('i', [
h(
'svg',
{
style: { height: '100%', width: '100%' },
viewBox: '0 0 1024 1024',
version: '1.1',
xmlns: 'http://www.w3.org/2000/svg',
},
[
h('path', {
d: 'M682.666667 746.666667a21.333333 21.333333 0 0 1 21.333333 21.333333v85.333333a21.248 21.248 0 0 1-21.333333 21.333334h-85.333334a21.248 21.248 0 0 1-21.333333-21.333334v-85.333333a21.248 21.248 0 0 1 21.333333-21.333333h85.333334z m-256 0a21.333333 21.333333 0 0 1 21.333333 21.333333v85.333333a21.248 21.248 0 0 1-21.333333 21.333334H341.333333a21.290667 21.290667 0 0 1-21.333333-21.333334v-85.333333a21.333333 21.333333 0 0 1 21.333333-21.333333h85.333334z m170.666666-298.666667h85.333334a21.333333 21.333333 0 0 1 21.333333 21.333333v85.333334a21.248 21.248 0 0 1-21.333333 21.333333h-85.333334a21.248 21.248 0 0 1-21.333333-21.333333v-85.333334a21.248 21.248 0 0 1 21.333333-21.333333z m-256 0h85.333334a21.333333 21.333333 0 0 1 21.333333 21.333333v85.333334a21.248 21.248 0 0 1-21.333333 21.333333H341.333333a21.290667 21.290667 0 0 1-21.333333-21.333333v-85.333334a21.333333 21.333333 0 0 1 21.333333-21.333333z m341.333334-298.666667a21.333333 21.333333 0 0 1 21.333333 21.333334v85.333333a21.333333 21.333333 0 0 1-21.333333 21.333333h-85.333334a21.333333 21.333333 0 0 1-21.333333-21.333333V170.666667a21.290667 21.290667 0 0 1 21.333333-21.333334h85.333334z m-256 0a21.333333 21.333333 0 0 1 21.333333 21.333334v85.333333a21.333333 21.333333 0 0 1-21.333333 21.333333H341.333333a21.333333 21.333333 0 0 1-21.333333-21.333333V170.666667a21.333333 21.333333 0 0 1 21.333333-21.333334h85.333334z',
fill: 'currentColor',
}),
],
),
])
},
},
'app-add-circle-outlined': {
iconReader: () => {
return h('i', [
h(
'svg',
{
style: { height: '100%', width: '100%' },
viewBox: '0 0 1024 1024',
version: '1.1',
xmlns: 'http://www.w3.org/2000/svg',
},
[
h('path', {
d: 'M469.333333 469.333333V320a21.333333 21.333333 0 0 1 21.333334-21.333333h42.666666a21.333333 21.333333 0 0 1 21.333334 21.333333V469.333333h149.333333a21.333333 21.333333 0 0 1 21.333333 21.333334v42.666666a21.333333 21.333333 0 0 1-21.333333 21.333334H554.666667v149.333333a21.333333 21.333333 0 0 1-21.333334 21.333333h-42.666666a21.333333 21.333333 0 0 1-21.333334-21.333333V554.666667H320a21.333333 21.333333 0 0 1-21.333333-21.333334v-42.666666a21.333333 21.333333 0 0 1 21.333333-21.333334H469.333333z m42.666667 426.666667a384 384 0 1 0 0-768 384 384 0 0 0 0 768z m0 85.333333C252.8 981.333333 42.666667 771.2 42.666667 512S252.8 42.666667 512 42.666667s469.333333 210.133333 469.333333 469.333333-210.133333 469.333333-469.333333 469.333333z',
fill: 'currentColor',
}),
],
),
])
},
},
}

View File

@ -8,11 +8,13 @@
@click="
sendMessage && type !== 'log' ? sendMessage(item.content, 'new') : (content: string) => {}
"
class="problem-button mt-4 mb-4 flex"
class="problem-button mt-4 mb-4"
:class="sendMessage && type !== 'log' ? 'cursor' : 'disabled'"
>
<AppIcon iconName="app-edit" class="mr-8" style="margin-top: 2px"></AppIcon>
{{ item.content }}
<el-space :size="8" alignment="flex-start">
<AppIcon iconName="app-edit" class="color-primary" style="margin-top: 3px;"></AppIcon>
{{ item.content }}
</el-space>
</div>
<HtmlRander v-else-if="item.type === 'html_rander'" :source="item.content"></HtmlRander>
<EchartsRander
@ -251,8 +253,9 @@ const split_form_rander_ = (source: string, type: string) => {
}
}
:deep(.el-icon) {
color: var(--el-color-primary);
}
// :deep(.el-icon) {
// color: var(--el-color-primary);
// margin-top: 3px;
// }
}
</style>

View File

@ -3,13 +3,14 @@
v-model="dialogVisible"
:title="$t('chat.preview')"
style="overflow: auto"
width="80%"
width="60%"
:before-close="close"
destroy-on-close
align-center
>
<div
v-loading="loading"
style="height: calc(70vh - 150px); overflow-y: auto; display: flex; justify-content: center"
style="max-height: calc(100vh - 200px); overflow-y: auto; display: flex; justify-content: center"
>
<div ref="cloneContainerRef" style="width: 100%"></div>
<div ref="svgContainerRef"></div>

View File

@ -105,13 +105,12 @@ function settingApiKey(row: any) {
function deleteApiKey(row: any) {
MsgConfirm(
// @ts-ignore
`${t('views.applicationOverview.appInfo.APIKeyDialog.msgConfirm1')}: ${row.secret_key}?`,
t(t('views.applicationOverview.appInfo.APIKeyDialog.msgConfirm2')),
{
confirmButtonText: t('common.confirm'),
cancelButtonText: t('common.cancel'),
confirmButtonClass: 'color-danger',
confirmButtonClass: 'danger',
},
)
.then(() => {
@ -128,8 +127,8 @@ function changeState(bool: boolean, row: any) {
is_active: bool,
}
const str = bool
? t('views.applicationOverview.appInfo.APIKeyDialog.enabledSuccess')
: t('views.applicationOverview.appInfo.APIKeyDialog.disabledSuccess')
? t('common.enabled')
: t('common.disabled')
systemKeyApi.putAPIKey(row.id, obj, loading).then((res) => {
MsgSuccess(str)
getApiKeyList()

View File

@ -13,6 +13,8 @@ export default {
exportImg: 'Exporting images',
preview: 'Preview',
chatId: 'Chat ID',
chatUserId: 'Chat User ID',
chatUserType: 'Chat User Type',
userInput: 'User Input',
quote: 'Quote',
download: 'Click to Download',
@ -74,6 +76,7 @@ export default {
imageMessage: 'Please process the image content',
fileMessage: 'Please process the file content',
errorMessage: 'Upload Failed',
fileRepeat: 'File already exists',
},
executionDetails: {
title: 'Execution Details',
@ -93,6 +96,7 @@ export default {
paragraph: 'Segment',
noSubmit: 'No submission from user',
errMessage: 'Error Log',
knowedMessage: 'Known Information',
},
KnowledgeSource: {
title: 'Knowledge Source',
@ -106,11 +110,6 @@ export default {
question: 'User Question',
optimizationQuestion: 'Optimized Question',
questionPadded: 'Padded Question',
system: 'Role Setting',
historyRecord: 'History Record',
currentChat: 'Current Chat',
AiResponse: 'AiResponse',
knowedMessage: 'Knowed Information',
},
editTitle: 'Edit Title',
}

View File

@ -1,5 +0,0 @@
export default {
title: "404",
message: "Unable to Access APP",
operate: "Back to Home",
};

View File

@ -24,8 +24,6 @@ export default {
msgConfirm1: 'Are you sure you want to delete the API Key',
msgConfirm2:
'This action is irreversible. Once deleted, the API Key cannot be recovered. Do you still want to proceed?',
enabledSuccess: 'Enabled',
disabledSuccess: 'Disabled',
},
EmbedDialog: {
fullscreenModeTitle: 'Fullscreen Mode',
@ -34,8 +32,6 @@ export default {
mobileModeTitle: 'Mobile Mode',
},
LimitDialog: {
dialogTitle: 'Access Restrictions',
showSourceLabel: 'Show Knowledge Source',
clientQueryLimitLabel: 'Query Limit per Client',
authentication: 'Authentication',
authenticationValue: 'Password Access',
@ -52,36 +48,34 @@ export default {
crossDomainPlaceholder:
'Enter allowed cross-domain addresses. If enabled but left blank, no restrictions will apply.\nEnter one per line, e.g.:\nhttp://127.0.0.1:5678\nhttps://dataease.io',
},
SettingDisplayDialog: {
dialogTitle: 'Display Settings',
languageLabel: 'Language',
showSourceLabel: 'Show Knowledge Source',
showExecutionDetail: 'Show Execution Details',
restoreDefault: 'Restore Default',
customThemeColor: 'Custom Theme Color',
headerTitleFontColor: 'Header Title Font Color',
default: 'Default',
askUserAvatar: 'User Avatar (Asking)',
replace: 'Replace',
imageMessage:
'Recommended size: 32×32 pixels. Supports JPG, PNG, and GIF formats. Max size: 10 MB',
AIAvatar: 'AI Avatar',
floatIcon: 'Floating Icon',
iconDefaultPosition: 'Default Icon Position',
iconPosition: {
left: 'Left',
right: 'Right',
bottom: 'Bottom',
top: 'Top',
},
draggablePosition: 'Draggable Position',
showHistory: 'Show Chat History',
displayGuide: 'Show Guide Image (Floating Mode)',
disclaimer: 'Disclaimer',
disclaimerValue: 'This content is AI-generated and for reference only.',
chatBackground: 'Chat Background',
chatBackgroundMessage: 'Supported formats: JPG, PNG, GIF. Max size: 10MB.',
},
SettingDisplayDialog: {
showSourceLabel: 'Show Knowledge Source',
showExecutionDetail: 'Show Execution Details',
restoreDefault: 'Restore Default',
customThemeColor: 'Custom Theme Color',
headerTitleFontColor: 'Header Title Font Color',
default: 'Default',
askUserAvatar: 'User Avatar (Asking)',
replace: 'Replace',
imageMessage:
'Recommended size: 32×32 pixels. Supports JPG, PNG, and GIF formats. Max size: 10 MB',
AIAvatar: 'AI Avatar',
floatIcon: 'Floating Icon',
iconDefaultPosition: 'Default Icon Position',
iconPosition: {
left: 'Left',
right: 'Right',
bottom: 'Bottom',
top: 'Top',
},
draggablePosition: 'Draggable Position',
showHistory: 'Show Chat History',
displayGuide: 'Show Guide Image (Floating Mode)',
disclaimer: 'Disclaimer',
disclaimerValue: 'This content is AI-generated and for reference only.',
chatBackground: 'Chat Background',
chatBackgroundMessage: 'Supported formats: JPG, PNG, GIF. Max size: 10MB.',
},
monitor: {
monitoringStatistics: 'Monitoring Statistics',

View File

@ -12,7 +12,6 @@ export default {
batchDeleteUser: 'Delete selected {count} users?',
settingMethod: 'Configuration Method',
append: 'Append',
replace: 'Replace',
group: {
title: 'User Groups',
name: 'User Group Name',

View File

@ -3,30 +3,31 @@ export default {
paragraph_count: 'Segments',
editParagraph: 'Edit Segment',
addParagraph: 'Add Segment',
prevAddParagraph: 'Insert Segment Above',
paragraphDetail: 'Segment Details',
character_count: 'characters',
setting: {
batchSelected: 'Batch Select',
cancelSelected: 'Cancel Selection'
cancelSelected: 'Cancel Selection',
},
delete: {
confirmTitle: 'Confirm deletion of segment:',
confirmMessage: 'Deletion cannot be undone. Please proceed with caution.'
confirmMessage: 'Deletion cannot be undone. Please proceed with caution.',
},
relatedProblem: {
title: 'Related Questions',
placeholder: 'Please select a question'
placeholder: 'Please select a question',
},
form: {
paragraphTitle: {
label: 'Title',
placeholder: 'Please enter the segment title'
placeholder: 'Please enter the segment title',
},
content: {
label: 'Content',
placeholder: 'Please enter the segment content',
requiredMessage1: 'Please enter the segment content',
requiredMessage2: 'Content must not exceed 100,000 words'
}
}
requiredMessage2: 'Content must not exceed 100,000 words',
},
},
}

View File

@ -15,11 +15,9 @@ export default {
chatId: '对话 ID',
chatUserId: '对话用户 ID',
chatUserType: '对话用户类型',
chatUser: '对话用户',
userInput: '用户输入',
quote: '引用',
download: '点击下载文件',
transcribing: '转文字中',
noDocument: '原文档不存在',
noPermissionDownload: '无权限下载',
passwordValidator: {
@ -96,6 +94,7 @@ export default {
paragraph: '分段',
noSubmit: '用户未提交',
errMessage: '错误日志',
knowedMessage: '已知信息',
},
KnowledgeSource: {
title: '知识来源',
@ -109,11 +108,6 @@ export default {
question: '用户问题',
optimizationQuestion: '优化后问题',
questionPadded: '优化后问题',
system: '角色设定',
historyRecord: '历史记录',
currentChat: '本次对话',
AiResponse: 'AI 回答',
knowedMessage: '已知信息',
},
editTitle: '编辑标题',
}

View File

@ -24,8 +24,6 @@ export default {
saveSettings: '保存设置',
msgConfirm1: '是否删除API Key',
msgConfirm2: '删除API Key后将无法恢复请确认是否删除',
enabledSuccess: '已启用',
disabledSuccess: '已禁用',
},
EmbedDialog: {
fullscreenModeTitle: '全屏模式',
@ -34,7 +32,6 @@ export default {
mobileModeTitle: '移动端模式',
},
LimitDialog: {
showSourceLabel: '显示知识来源',
clientQueryLimitLabel: '每个客户端提问限制',
timesDays: '次/天',
authentication: '身份验证',
@ -47,41 +44,38 @@ export default {
toSettingChatUser: '去配置对话用户',
},
SettingAPIKeyDialog: {
dialogTitle: '设置',
allowCrossDomainLabel: '允许跨域地址',
crossDomainPlaceholder:
'请输入允许的跨域地址,开启后不输入跨域地址则不限制。\n跨域地址一行一个\nhttp://127.0.0.1:5678 \nhttps://dataease.io',
},
SettingDisplayDialog: {
dialogTitle: '显示设置',
languageLabel: '语言',
showSourceLabel: '显示知识来源',
showExecutionDetail: '显示执行详情',
restoreDefault: '恢复默认',
customThemeColor: '自定义主题色',
headerTitleFontColor: '头部标题字体颜色',
default: '默认',
askUserAvatar: '提问用户头像',
replace: '替换',
imageMessage: '建议尺寸 32*32支持 JPG、PNG、GIF大小不超过 10 MB',
AIAvatar: 'AI 回复头像',
display: '显示',
floatIcon: '浮窗入口图标',
iconDefaultPosition: '图标默认位置',
iconPosition: {
left: '左',
right: '右',
bottom: '下',
top: '上',
},
draggablePosition: '可拖拽位置',
showHistory: '显示历史记录',
displayGuide: '显示引导图(浮窗模式)',
disclaimer: '免责声明',
disclaimerValue: '「以上内容均由 AI 生成,仅供参考和借鉴」',
chatBackground: '聊天背景',
chatBackgroundMessage: '支持 JPG、PNG、GIF大小不超过 10 MB',
},
SettingDisplayDialog: {
showSourceLabel: '显示知识来源',
showExecutionDetail: '显示执行详情',
restoreDefault: '恢复默认',
customThemeColor: '自定义主题色',
headerTitleFontColor: '头部标题字体颜色',
default: '默认',
askUserAvatar: '提问用户头像',
replace: '替换',
imageMessage: '建议尺寸 32*32支持 JPG、PNG、GIF大小不超过 10 MB',
AIAvatar: 'AI 回复头像',
display: '显示',
floatIcon: '浮窗入口图标',
iconDefaultPosition: '图标默认位置',
iconPosition: {
left: '左',
right: '右',
bottom: '下',
top: '上',
},
draggablePosition: '可拖拽位置',
showHistory: '显示历史记录',
displayGuide: '显示引导图(浮窗模式)',
disclaimer: '免责声明',
disclaimerValue: '「以上内容均由 AI 生成,仅供参考和借鉴」',
chatBackground: '聊天背景',
chatBackgroundMessage: '支持 JPG、PNG、GIF大小不超过 10 MB',
},
monitor: {
monitoringStatistics: '监控统计',

View File

@ -10,7 +10,6 @@ export default {
batchDeleteUser: '是否删除选中的 {count} 个用户?',
settingMethod: '设置方式',
append: '追加',
replace: '替换',
group: {
title: '用户组',
requiredMessage: '请选择用户组',

View File

@ -3,6 +3,7 @@ export default {
paragraph_count: '段落',
editParagraph: '编辑分段',
addParagraph: '添加分段',
prevAddParagraph:'上方插入分段',
paragraphDetail: '分段详情',
character_count: '个字符',
setting: {

View File

@ -13,6 +13,8 @@ export default {
exportImg: '匯出圖片',
preview: '預覽',
chatId: '對話 ID',
chatUserId: '對話用戶 ID',
chatUserType: '對話用戶類型',
userInput: '用戶輸入',
quote: '引用',
download: '點擊下載文件',
@ -72,6 +74,7 @@ export default {
imageMessage: '請解析圖片內容',
fileMessage: '請解析文件內容',
errorMessage: '上傳失敗',
fileRepeat: '文件已存在',
},
executionDetails: {
title: '執行詳細',
@ -91,6 +94,7 @@ export default {
paragraph: '段落',
noSubmit: '用戶未提交',
errMessage: '錯誤日誌',
knowedMessage: '已知資訊',
},
KnowledgeSource: {
title: '知識來源',
@ -104,11 +108,6 @@ export default {
question: '用戶問題',
optimizationQuestion: '優化後問題',
questionPadded: '優化後問題',
system: '角色設定',
historyRecord: '歷史記錄',
currentChat: '本次對話',
AiResponse: 'AI 回答',
knowedMessage: '已知資訊',
},
editTitle: '編輯標題',
}

View File

@ -23,8 +23,6 @@ export default {
saveSettings: '儲存設定',
msgConfirm1: '是否刪除API Key',
msgConfirm2: '刪除API Key後將無法恢復請確認是否刪除',
enabledSuccess: '已啟用',
disabledSuccess: '已停用',
},
EmbedDialog: {
fullscreenModeTitle: '全螢幕模式',
@ -33,8 +31,6 @@ export default {
mobileModeTitle: '移動端模式',
},
LimitDialog: {
dialogTitle: '訪問限制',
showSourceLabel: '顯示知識來源',
clientQueryLimitLabel: '每個用戶端提問限制',
timesDays: '次/天',
authentication: '身份驗證',
@ -52,35 +48,33 @@ export default {
crossDomainPlaceholder:
'請輸入允許的跨域位址,開啟後不輸入跨域位址則不限制。\n跨域位址一行一個\nhttp://127.0.0.1:5678 \nhttps://dataease.io',
},
SettingDisplayDialog: {
dialogTitle: '顯示設定',
languageLabel: '語言',
showSourceLabel: '顯示知識來源',
showExecutionDetail: '顯示執行細節',
restoreDefault: '恢復預設',
customThemeColor: '自訂主題色',
headerTitleFontColor: '標頭標題字體顏色',
default: '預設',
askUserAvatar: '提問用戶頭像',
replace: '取代',
imageMessage: '建議尺寸 32*32支援 JPG、PNG、GIF大小不超過 10 MB',
AIAvatar: 'AI 回覆頭像',
floatIcon: '浮窗入口圖示',
iconDefaultPosition: '圖示預設位置',
iconPosition: {
left: '左',
right: '右',
bottom: '下',
top: '上',
},
draggablePosition: '可拖曳位置',
showHistory: '顯示歷史紀錄',
displayGuide: '顯示引導圖(浮窗模式)',
disclaimer: '免責聲明',
disclaimerValue: '「以上內容均由 AI 生成,僅供參考和借鏡」',
chatBackground: '聊天背景',
chatBackgroundMessage: '圖片格式JPG, PNG, GIF。最大大小10MB。',
},
SettingDisplayDialog: {
showSourceLabel: '顯示知識來源',
showExecutionDetail: '顯示執行細節',
restoreDefault: '恢復預設',
customThemeColor: '自訂主題色',
headerTitleFontColor: '標頭標題字體顏色',
default: '預設',
askUserAvatar: '提問用戶頭像',
replace: '取代',
imageMessage: '建議尺寸 32*32支援 JPG、PNG、GIF大小不超過 10 MB',
AIAvatar: 'AI 回覆頭像',
floatIcon: '浮窗入口圖示',
iconDefaultPosition: '圖示預設位置',
iconPosition: {
left: '左',
right: '右',
bottom: '下',
top: '上',
},
draggablePosition: '可拖曳位置',
showHistory: '顯示歷史紀錄',
displayGuide: '顯示引導圖(浮窗模式)',
disclaimer: '免責聲明',
disclaimerValue: '「以上內容均由 AI 生成,僅供參考和借鏡」',
chatBackground: '聊天背景',
chatBackgroundMessage: '圖片格式JPG, PNG, GIF。最大大小10MB。',
},
monitor: {
monitoringStatistics: '監控統計',

View File

@ -10,7 +10,6 @@ export default {
batchDeleteUser: '是否刪除選中的 {count} 個用戶?',
settingMethod: '設定方式',
append: '追加',
replace: '替換',
group: {
title: '用戶組',
requiredMessage: '請選擇用戶組',

View File

@ -3,30 +3,31 @@ export default {
paragraph_count: '段落',
editParagraph: '編輯分段',
addParagraph: '添加分段',
prevAddParagraph: '上方插入分段',
paragraphDetail: '分段詳情',
character_count: '個字符',
setting: {
batchSelected: '批量選擇',
cancelSelected: '取消選擇'
cancelSelected: '取消選擇',
},
delete: {
confirmTitle: '是否刪除段落:',
confirmMessage: '刪除後無法恢復,請謹慎操作。'
confirmMessage: '刪除後無法恢復,請謹慎操作。',
},
relatedProblem: {
title: '關聯問題',
placeholder: '請選擇問題'
placeholder: '請選擇問題',
},
form: {
paragraphTitle: {
label: '分段標題',
placeholder: '請輸入分段標題'
placeholder: '請輸入分段標題',
},
content: {
label: '分段內容',
placeholder: '請輸入分段內容',
requiredMessage1: '請輸入分段內容',
requiredMessage2: '內容最多不超過 100000 個字'
}
}
requiredMessage2: '內容最多不超過 100000 個字',
},
},
}

View File

@ -299,3 +299,8 @@
color: var(--el-text-color-regular);
}
}
// el-pagination
.el-pagination .el-select {
width: 105px;
}

View File

@ -1,6 +1,6 @@
<template>
<el-dialog
:title="$t('views.applicationOverview.appInfo.SettingDisplayDialog.dialogTitle')"
:title="$t('views.applicationOverview.appInfo.displaySetting')"
v-model="dialogVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
@ -9,7 +9,7 @@
<el-form label-position="top" ref="displayFormRef" :model="form">
<el-form-item>
<span>{{
$t('views.applicationOverview.appInfo.SettingDisplayDialog.languageLabel')
$t('layout.language')
}}</span>
<el-select v-model="form.language" clearable>
<el-option
@ -24,13 +24,13 @@
<el-space direction="vertical" alignment="start" :size="2">
<el-checkbox
v-model="form.show_source"
:label="$t('views.applicationOverview.appInfo.SettingDisplayDialog.showSourceLabel')"
:label="$t('views.applicationOverview.SettingDisplayDialog.showSourceLabel')"
/>
<el-checkbox
v-model="form.show_exec"
:label="
$t('views.applicationOverview.appInfo.SettingDisplayDialog.showExecutionDetail')
$t('views.applicationOverview.SettingDisplayDialog.showExecutionDetail')
"
/>
</el-space>

View File

@ -1,6 +1,6 @@
<template>
<el-dialog
:title="$t('views.applicationOverview.appInfo.SettingDisplayDialog.dialogTitle')"
:title="$t('views.applicationOverview.appInfo.displaySetting')"
width="900"
v-model="dialogVisible"
:close-on-click-modal="false"
@ -12,14 +12,14 @@
<template #header="{ titleId, titleClass }">
<div class="flex-between mb-8">
<h4 :id="titleId" :class="titleClass">
{{ $t('views.applicationOverview.appInfo.SettingDisplayDialog.dialogTitle') }}
{{ $t('views.applicationOverview.appInfo.displaySetting') }}
</h4>
<div class="flex align-center">
<el-button @click.prevent="resetForm" link>
<el-icon class="mr-4">
<Refresh />
</el-icon>
{{ $t('views.applicationOverview.appInfo.SettingDisplayDialog.restoreDefault') }}
{{ $t('views.applicationOverview.SettingDisplayDialog.restoreDefault') }}
</el-button>
<el-divider direction="vertical" />
</div>
@ -174,14 +174,14 @@
<el-col :span="12">
<h5 class="mb-8">
{{
$t('views.applicationOverview.appInfo.SettingDisplayDialog.customThemeColor')
$t('views.applicationOverview.SettingDisplayDialog.customThemeColor')
}}
</h5>
<div>
<el-color-picker v-model="xpackForm.custom_theme.theme_color" />
{{
!xpackForm.custom_theme.theme_color
? $t('views.applicationOverview.appInfo.SettingDisplayDialog.default')
? $t('views.applicationOverview.SettingDisplayDialog.default')
: ''
}}
</div>
@ -190,7 +190,7 @@
<h5 class="mb-8">
{{
$t(
'views.applicationOverview.appInfo.SettingDisplayDialog.headerTitleFontColor',
'views.applicationOverview.SettingDisplayDialog.headerTitleFontColor',
)
}}
</h5>
@ -199,7 +199,7 @@
</el-row>
<el-row class="w-full mb-8">
<h5 class="mb-8">
{{ $t('views.applicationOverview.appInfo.SettingDisplayDialog.languageLabel') }}
{{ $t('layout.language') }}
</h5>
<el-select v-model="xpackForm.language" clearable>
<el-option
@ -225,20 +225,20 @@
:on-change="(file: any, fileList: any) => onChange(file, fileList, 'icon')"
>
<el-button size="small">
{{ $t('views.applicationOverview.appInfo.SettingDisplayDialog.replace') }}
{{ $t('views.applicationOverview.SettingDisplayDialog.replace') }}
</el-button>
</el-upload>
</span>
</div>
<el-text type="info" size="small">
{{ $t('views.applicationOverview.appInfo.SettingDisplayDialog.imageMessage') }}
{{ $t('views.applicationOverview.SettingDisplayDialog.imageMessage') }}
</el-text>
</el-card>
<!-- 聊天背景 -->
<el-card shadow="never" class="mb-8">
<div class="flex-between mb-8">
<span class="lighter">{{
$t('views.applicationOverview.appInfo.SettingDisplayDialog.chatBackground')
$t('views.applicationOverview.SettingDisplayDialog.chatBackground')
}}</span>
<span class="flex align-center">
<el-upload
@ -253,14 +253,14 @@
"
>
<el-button size="small">
{{ $t('views.applicationOverview.appInfo.SettingDisplayDialog.replace') }}
{{ $t('views.applicationOverview.SettingDisplayDialog.replace') }}
</el-button>
</el-upload>
</span>
</div>
<el-text type="info" size="small">
{{
$t('views.applicationOverview.appInfo.SettingDisplayDialog.chatBackgroundMessage')
$t('views.applicationOverview.SettingDisplayDialog.chatBackgroundMessage')
}}
</el-text>
</el-card>
@ -268,11 +268,11 @@
<el-card shadow="never" class="mb-8">
<div class="flex-between mb-8">
<span class="lighter">{{
$t('views.applicationOverview.appInfo.SettingDisplayDialog.AIAvatar')
$t('views.applicationOverview.SettingDisplayDialog.AIAvatar')
}}</span>
<span class="flex align-center">
<el-checkbox v-model="xpackForm.show_avatar">{{
$t('views.applicationOverview.appInfo.SettingDisplayDialog.display')
$t('views.applicationOverview.SettingDisplayDialog.display')
}}</el-checkbox>
<el-upload
class="ml-8"
@ -284,25 +284,25 @@
:on-change="(file: any, fileList: any) => onChange(file, fileList, 'avatar')"
>
<el-button size="small">
{{ $t('views.applicationOverview.appInfo.SettingDisplayDialog.replace') }}
{{ $t('views.applicationOverview.SettingDisplayDialog.replace') }}
</el-button>
</el-upload>
</span>
</div>
<el-text type="info" size="small">
{{ $t('views.applicationOverview.appInfo.SettingDisplayDialog.imageMessage') }}
{{ $t('views.applicationOverview.SettingDisplayDialog.imageMessage') }}
</el-text>
</el-card>
<!-- 提问头像 -->
<el-card shadow="never" class="mb-8">
<div class="flex-between mb-8">
<span class="lighter">{{
$t('views.applicationOverview.appInfo.SettingDisplayDialog.askUserAvatar')
$t('views.applicationOverview.SettingDisplayDialog.askUserAvatar')
}}</span>
<span class="flex align-center">
<el-checkbox v-model="xpackForm.show_user_avatar">
{{
$t('views.applicationOverview.appInfo.SettingDisplayDialog.display')
$t('views.applicationOverview.SettingDisplayDialog.display')
}}</el-checkbox
>
<el-upload
@ -317,20 +317,20 @@
"
>
<el-button size="small">
{{ $t('views.applicationOverview.appInfo.SettingDisplayDialog.replace') }}
{{ $t('views.applicationOverview.SettingDisplayDialog.replace') }}
</el-button>
</el-upload>
</span>
</div>
<el-text type="info" size="small"
>{{ $t('views.applicationOverview.appInfo.SettingDisplayDialog.imageMessage') }}
>{{ $t('views.applicationOverview.SettingDisplayDialog.imageMessage') }}
</el-text>
</el-card>
<!-- 浮窗图标 -->
<el-card shadow="never" class="mb-8">
<div class="flex-between mb-8">
<span class="lighter">{{
$t('views.applicationOverview.appInfo.SettingDisplayDialog.floatIcon')
$t('views.applicationOverview.SettingDisplayDialog.floatIcon')
}}</span>
<el-upload
ref="uploadRef"
@ -341,22 +341,22 @@
:on-change="(file: any, fileList: any) => onChange(file, fileList, 'float_icon')"
>
<el-button size="small">
{{ $t('views.applicationOverview.appInfo.SettingDisplayDialog.replace') }}
{{ $t('views.applicationOverview.SettingDisplayDialog.replace') }}
</el-button>
</el-upload>
</div>
<el-text type="info" size="small">
{{ $t('views.applicationOverview.appInfo.SettingDisplayDialog.imageMessage') }}
{{ $t('views.applicationOverview.SettingDisplayDialog.imageMessage') }}
</el-text>
<div class="border-t mt-8">
<div class="flex-between mb-8">
<span class="lighter">{{
$t('views.applicationOverview.appInfo.SettingDisplayDialog.iconDefaultPosition')
$t('views.applicationOverview.SettingDisplayDialog.iconDefaultPosition')
}}</span>
<el-checkbox
v-model="xpackForm.draggable"
:label="
$t('views.applicationOverview.appInfo.SettingDisplayDialog.draggablePosition')
$t('views.applicationOverview.SettingDisplayDialog.draggablePosition')
"
/>
</div>
@ -367,7 +367,7 @@
<el-option
:label="
$t(
'views.applicationOverview.appInfo.SettingDisplayDialog.iconPosition.left',
'views.applicationOverview.SettingDisplayDialog.iconPosition.left',
)
"
value="left"
@ -375,7 +375,7 @@
<el-option
:label="
$t(
'views.applicationOverview.appInfo.SettingDisplayDialog.iconPosition.right',
'views.applicationOverview.SettingDisplayDialog.iconPosition.right',
)
"
value="right"
@ -399,7 +399,7 @@
<el-option
:label="
$t(
'views.applicationOverview.appInfo.SettingDisplayDialog.iconPosition.top',
'views.applicationOverview.SettingDisplayDialog.iconPosition.top',
)
"
value="top"
@ -407,7 +407,7 @@
<el-option
:label="
$t(
'views.applicationOverview.appInfo.SettingDisplayDialog.iconPosition.bottom',
'views.applicationOverview.SettingDisplayDialog.iconPosition.bottom',
)
"
value="bottom"
@ -433,26 +433,26 @@
<el-checkbox
v-model="xpackForm.show_source"
:label="
$t('views.applicationOverview.appInfo.SettingDisplayDialog.showSourceLabel')
$t('views.applicationOverview.SettingDisplayDialog.showSourceLabel')
"
/>
<el-checkbox
v-model="xpackForm.show_exec"
:label="
$t('views.applicationOverview.appInfo.SettingDisplayDialog.showExecutionDetail')
$t('views.applicationOverview.SettingDisplayDialog.showExecutionDetail')
"
/>
<el-checkbox
v-model="xpackForm.show_history"
:label="$t('views.applicationOverview.appInfo.SettingDisplayDialog.showHistory')"
:label="$t('views.applicationOverview.SettingDisplayDialog.showHistory')"
/>
<el-checkbox
v-model="xpackForm.show_guide"
:label="$t('views.applicationOverview.appInfo.SettingDisplayDialog.displayGuide')"
:label="$t('views.applicationOverview.SettingDisplayDialog.displayGuide')"
/>
<el-checkbox
v-model="xpackForm.disclaimer"
:label="$t('views.applicationOverview.appInfo.SettingDisplayDialog.disclaimer')"
:label="$t('views.applicationOverview.SettingDisplayDialog.disclaimer')"
@change="changeDisclaimer"
/>
<span v-if="xpackForm.disclaimer"
@ -523,7 +523,7 @@ const defaultSetting = {
user_avatar: '',
user_avatar_url: '',
disclaimer: false,
disclaimer_value: t('views.applicationOverview.appInfo.SettingDisplayDialog.disclaimerValue'),
disclaimer_value: t('views.applicationOverview.SettingDisplayDialog.disclaimerValue'),
custom_theme: {
theme_color: '',
header_font_color: '#1f2329',
@ -556,7 +556,7 @@ const xpackForm = ref<any>({
user_avatar: '',
user_avatar_url: '',
disclaimer: false,
disclaimer_value: t('views.applicationOverview.appInfo.SettingDisplayDialog.disclaimerValue'),
disclaimer_value: t('views.applicationOverview.SettingDisplayDialog.disclaimerValue'),
custom_theme: {
theme_color: '',
header_font_color: '#1f2329',
@ -630,10 +630,10 @@ const open = (data: any, content: any) => {
xpackForm.value.disclaimer_value = data.disclaimer_value
if (
xpackForm.value.disclaimer_value ===
t('views.applicationOverview.appInfo.SettingDisplayDialog.disclaimerValue')
t('views.applicationOverview.SettingDisplayDialog.disclaimerValue')
) {
xpackForm.value.disclaimer_value = t(
'views.applicationOverview.appInfo.SettingDisplayDialog.disclaimerValue',
'views.applicationOverview.SettingDisplayDialog.disclaimerValue',
)
}
xpackForm.value.avatar_url = data.avatar

View File

@ -83,6 +83,7 @@
@click="openAIParamSettingDialog"
:disabled="!applicationForm.model_id"
>
<AppIcon iconName="app-setting" class="mr-4"></AppIcon>
{{ $t('common.paramSetting') }}
</el-button>
</div>
@ -170,7 +171,7 @@
<span>{{ $t('views.application.form.relatedKnowledge.label') }}</span>
<div>
<el-button type="primary" link @click="openParamSettingDialog">
<AppIcon iconName="app-operation" class="mr-4"></AppIcon>
<AppIcon iconName="app-setting" class="mr-4"></AppIcon>
{{ $t('common.paramSetting') }}
</el-button>
<el-button type="primary" link @click="openKnowledgeDialog">

View File

@ -72,7 +72,7 @@
<el-dropdown-menu class="create-dropdown">
<el-dropdown-item @click="openCreateDialog('SIMPLE')">
<div class="flex">
<el-avatar shape="square" class="avatar-blue mt-4" :size="36">
<el-avatar shape="square" class="avatar-blue mt-4" :size="32">
<img
src="@/assets/application/icon_simple_application.svg"
style="width: 65%"
@ -89,7 +89,7 @@
</el-dropdown-item>
<el-dropdown-item @click="openCreateDialog('WORK_FLOW')">
<div class="flex">
<el-avatar shape="square" class="avatar-purple mt-4" :size="36">
<el-avatar shape="square" class="avatar-purple mt-4" :size="32">
<img
src="@/assets/application/icon_workflow_application.svg"
style="width: 65%"
@ -117,7 +117,7 @@
>
<el-dropdown-item>
<div class="flex align-center w-full">
<el-avatar shape="square" class="mt-4" :size="36" style="background: none">
<el-avatar shape="square" class="mt-4" :size="32" style="background: none">
<img src="@/assets/icon_import.svg" alt="" />
</el-avatar>
<div class="pre-wrap ml-8">

View File

@ -131,7 +131,7 @@ const deleteHandle = (item: any, cIndex: number) => {
t('views.paragraph.delete.confirmMessage'),
{
confirmButtonText: t('common.confirm'),
confirmButtonClass: 'color-danger',
confirmButtonClass: 'danger',
},
)
.then(() => {

View File

@ -2,18 +2,19 @@
<div class="provider-list">
<el-scrollbar>
<div class="p-8">
<div
@click="handleSharedNodeClick"
class="shared-button flex cursor border-b"
v-if="showShared && hasPermission(EditionConst.IS_EE, 'OR')"
:class="active?.provider === 'share' && 'active'"
>
<AppIcon
iconName="app-shared-active"
style="font-size: 18px"
class="color-primary"
></AppIcon>
<span class="ml-8 lighter">{{ $t('views.shared.shared_model') }}</span>
<div v-if="showShared && hasPermission(EditionConst.IS_EE, 'OR')" class="border-b mb-4">
<div
@click="handleSharedNodeClick"
class="shared-button flex cursor"
:class="active?.provider === 'share' && 'active'"
>
<AppIcon
iconName="app-shared-active"
style="font-size: 18px"
class="color-primary"
></AppIcon>
<span class="ml-8 lighter">{{ $t('views.shared.shared_model') }}</span>
</div>
</div>
<div
class="all-mode flex cursor"

View File

@ -26,20 +26,40 @@
<el-divider direction="vertical" />
<span class="mr-8">
<el-button link @click.stop="editParagraph(data)" v-if="permissionPrecise.doc_edit(id)">
<AppIcon iconName="app-edit" :size="16" :title="$t('common.edit')"></AppIcon>
</el-button>
<el-tooltip
effect="dark"
:content="$t('views.paragraph.editParagraph')"
placement="top"
v-if="permissionPrecise.doc_edit(id)"
>
<el-button text @click.stop="editParagraph(data)">
<AppIcon
iconName="app-edit"
:size="16"
class="color-secondary"
></AppIcon>
</el-button>
</el-tooltip>
</span>
<span class="mr-8">
<el-button link @click.stop="addParagraph(data)" v-if="permissionPrecise.doc_edit(id)">
<el-icon :size="16" :title="$t('common.add')">
<el-icon><CirclePlus /></el-icon>
</el-icon>
</el-button>
<el-tooltip
effect="dark"
:content="$t('views.paragraph.prevAddParagraph')"
placement="top"
v-if="permissionPrecise.doc_edit(id)"
>
<el-button text @click.stop="addParagraph(data)" v-if="permissionPrecise.doc_edit(id)">
<AppIcon
iconName="app-add-circle-outlined"
class="color-secondary"
:size="16"
></AppIcon>
</el-button>
</el-tooltip>
</span>
<el-dropdown trigger="click" :teleported="false" v-if="MoreFieldPermission(id)">
<el-button text>
<AppIcon iconName="app-more"></AppIcon>
<AppIcon iconName="app-more" class="color-secondary"></AppIcon>
</el-button>
<template #dropdown>
<el-dropdown-menu style="min-width: 140px">
@ -47,14 +67,14 @@
@click.stop="openGenerateDialog(data)"
v-if="permissionPrecise.doc_generate(id)"
>
<AppIcon iconName="app-generate-question"></AppIcon>
<AppIcon iconName="app-generate-question" class="color-secondary"></AppIcon>
{{ $t('views.document.generateQuestion.title') }}</el-dropdown-item
>
<el-dropdown-item
@click.stop="openSelectDocumentDialog(data)"
v-if="permissionPrecise.doc_edit(id)"
>
<AppIcon iconName="app-migrate"></AppIcon>
<AppIcon iconName="app-migrate" class="color-secondary"></AppIcon>
{{ $t('views.document.setting.migration') }}</el-dropdown-item
>
<el-dropdown-item v-if="permissionPrecise.doc_edit(id)">
@ -67,8 +87,7 @@
>
<div class="w-full flex-between" style="line-height: 22px">
<div class="flex align-center">
<!-- TODO 更换icon -->
<AppIcon iconName="app-migrate"></AppIcon>
<AppIcon iconName="app-drag-outlined" class="color-secondary"></AppIcon>
{{ $t('views.document.movePosition.title') }}
</div>
<el-icon class="color-input-placeholder" :size="16" style="margin-right: 0"
@ -77,11 +96,14 @@
</div>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item v-if="props.showMoveUp" @click.stop="emit('move', 'up')">
<el-dropdown-item
:disabled="props.showMoveUp"
@click.stop="emit('move', 'up')"
>
{{ $t('views.document.movePosition.moveUp') }}
</el-dropdown-item>
<el-dropdown-item
v-if="props.showMoveDown"
:disabled="props.showMoveDown"
@click.stop="emit('move', 'down')"
>
{{ $t('views.document.movePosition.moveDown') }}
@ -94,7 +116,7 @@
@click.stop="deleteParagraph(data)"
v-if="permissionPrecise.doc_edit(id)"
>
<AppIcon iconName="app-delete"></AppIcon>
<AppIcon iconName="app-delete" class="color-secondary"></AppIcon>
{{ $t('common.delete') }}</el-dropdown-item
>
</el-dropdown-menu>

View File

@ -5,7 +5,7 @@
<el-form-item :label="$t('views.chatUser.settingMethod')" prop="user_group_ids">
<el-radio-group v-model="form.is_append">
<el-radio :value="true">{{ $t('views.chatUser.append') }}</el-radio>
<el-radio :value="false">{{ $t('views.chatUser.replace') }}</el-radio>
<el-radio :value="false">{{ $t('views.applicationOverview.SettingDisplayDialog.replace') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="$t('views.chatUser.group.title')" prop="user_group_ids">

View File

@ -77,7 +77,7 @@
>
<el-dropdown-item v-if="permissionPrecise.import()">
<div class="flex align-center w-full">
<el-avatar shape="square" :size="36" style="background: none">
<el-avatar shape="square" :size="32" style="background: none">
<img src="@/assets/icon_import.svg" alt="" />
</el-avatar>
<div class="pre-wrap ml-8">
@ -88,7 +88,7 @@
</el-upload>
<el-dropdown-item @click="openToolStoreDialog()">
<div class="flex align-center">
<el-avatar shape="square" :size="36" style="background: none">
<el-avatar shape="square" :size="32" style="background: none">
<img src="@/assets/icon_tool_shop.svg" alt="" />
</el-avatar>
<div class="pre-wrap ml-8">
@ -101,6 +101,7 @@
<el-dropdown-item @click="openCreateFolder" divided v-if="apiType === 'workspace'">
<div class="flex align-center">
<AppIcon iconName="app-folder" style="font-size: 32px"></AppIcon>
<div class="pre-wrap ml-4">
<div class="lighter">
{{ $t('components.folder.addFolder') }}

View File

@ -101,7 +101,7 @@ export function initDefaultShortcut(lf: LogicFlow, graph: GraphModel) {
}
MsgConfirm(t('common.tip'), t('views.applicationWorkflow.delete.confirmTitle'), {
confirmButtonText: t('common.confirm'),
confirmButtonClass: 'color-danger'
confirmButtonClass: 'danger'
}).then(() => {
if (!keyboardOptions?.enabled) return true
if (graph.textEditElement) return true

View File

@ -149,6 +149,7 @@ onMounted(() => {
inputFieldList.value.push(...props.nodeModel.properties.api_input_field_list)
}
set(props.nodeModel.properties, 'api_input_field_list', inputFieldList)
onDragHandle()
})
</script>

View File

@ -69,7 +69,7 @@ const globalFields = [
value: 'chat_user_type',
},
{
label: t('chat.chatUser'),
label: t('views.chatUser.title'),
value: 'chat_user',
},
]