fix: Update lark icon and dialog style

This commit is contained in:
wangdan-fit2cloud 2025-03-26 20:46:14 +08:00 committed by GitHub
parent 601b03d84e
commit eed4d6857e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
21 changed files with 353 additions and 268 deletions

View File

@ -720,14 +720,9 @@ defineExpose({ open })
</script> </script>
<style lang="scss"> <style lang="scss">
.execution-details-dialog { .execution-details-dialog {
padding: 0;
.el-dialog__header { .el-dialog__header {
padding: 24px 24px 0 24px; padding-bottom: 16px;
}
.el-dialog__body {
padding: 8px !important;
} }
.execution-details { .execution-details {

View File

@ -198,7 +198,7 @@
}}{{ getAcceptList().replace(/\./g, '').replace(/,/g, '、').toUpperCase() }} }}{{ getAcceptList().replace(/\./g, '').replace(/,/g, '、').toUpperCase() }}
</div> </div>
</template> </template>
<el-button text :disabled="checkMaxFilesLimit()" class="mt-4"> <el-button text :disabled="checkMaxFilesLimit() || loading" class="mt-4">
<el-icon><Paperclip /></el-icon> <el-icon><Paperclip /></el-icon>
</el-button> </el-button>
</el-tooltip> </el-tooltip>

View File

@ -11,6 +11,15 @@
<AppAvatar v-if="data.type === '1'" class="mr-8 avatar-purple" shape="square" :size="32"> <AppAvatar v-if="data.type === '1'" class="mr-8 avatar-purple" shape="square" :size="32">
<img src="@/assets/icon_web.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_web.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>
<AppAvatar
v-else-if="data.type === '2'"
class="mr-8 avatar-purple"
shape="square"
:size="32"
style="background: none"
>
<img src="@/assets/logo_lark.svg" style="width: 100%" alt="" />
</AppAvatar>
<AppAvatar v-else class="mr-12 avatar-blue" shape="square" :size="32"> <AppAvatar v-else class="mr-12 avatar-blue" shape="square" :size="32">
<img src="@/assets/icon_document.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_document.svg" style="width: 58%" alt="" />

View File

@ -36,10 +36,19 @@
> >
<img src="@/assets/icon_web.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_web.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>
<AppAvatar
v-else-if="isDataset && current?.type === '2'"
class="mr-8 avatar-purple"
shape="square"
:size="24"
style="background: none"
>
<img src="@/assets/logo_lark.svg" style="width: 100%" alt="" />
</AppAvatar>
<AppAvatar v-else class="mr-8 avatar-blue" shape="square" :size="24"> <AppAvatar v-else class="mr-8 avatar-blue" shape="square" :size="24">
<img src="@/assets/icon_document.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_document.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>
<div class="ellipsis">{{ current?.name }}</div> <div class="ellipsis" :title="current?.name">{{ current?.name }}</div>
</div> </div>
<el-button text> <el-button text>
@ -63,6 +72,7 @@
> >
<img :src="item?.icon" alt="" /> <img :src="item?.icon" alt="" />
</AppAvatar> </AppAvatar>
<AppAvatar <AppAvatar
v-else-if="isApplication" v-else-if="isApplication"
:name="item.name" :name="item.name"
@ -79,10 +89,19 @@
> >
<img src="@/assets/icon_web.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_web.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>
<AppAvatar
v-else-if="isDataset && item.type === '2'"
class="mr-8 avatar-purple"
shape="square"
:size="24"
style="background: none"
>
<img src="@/assets/logo_lark.svg" style="width: 100%" alt="" />
</AppAvatar>
<AppAvatar v-else class="mr-12 avatar-blue" shape="square" :size="24"> <AppAvatar v-else class="mr-12 avatar-blue" shape="square" :size="24">
<img src="@/assets/icon_document.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_document.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>
<span class="ellipsis"> {{ item?.name }}</span> <span class="ellipsis" :title="item?.name"> {{ item?.name }}</span>
</div> </div>
</el-dropdown-item> </el-dropdown-item>
</div> </div>

View File

@ -93,6 +93,7 @@
.el-dialog__header { .el-dialog__header {
padding-bottom: 24px; padding-bottom: 24px;
font-weight: 500; font-weight: 500;
margin-top: -5px;
} }
.el-dialog__footer { .el-dialog__footer {
padding-top: 0; padding-top: 0;
@ -378,18 +379,7 @@
// radio 一行一个样式 // radio 一行一个样式
.radio-block { .radio-block {
width: 100%; display: inline-grid;
display: block;
.el-radio {
align-items: flex-start;
height: 100%;
width: 100%;
}
.el-radio__label {
width: 100%;
margin-top: -8px;
line-height: 30px;
}
} }
// 提示横幅 // 提示横幅

View File

@ -5,7 +5,7 @@
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
> >
<el-radio-group v-model="radioType" class="radio-block mb-16"> <el-radio-group v-model="radioType" class="radio-block-avatar mb-16">
<div> <div>
<el-radio value="default"> <el-radio value="default">
<p>{{ $t('views.applicationOverview.appInfo.EditAvatarDialog.default') }}</p> <p>{{ $t('views.applicationOverview.appInfo.EditAvatarDialog.default') }}</p>
@ -139,4 +139,19 @@ function submit() {
defineExpose({ open }) defineExpose({ open })
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped>
.radio-block-avatar {
width: 100%;
display: block;
.el-radio {
align-items: flex-start;
height: 100%;
width: 100%;
}
.el-radio__label {
width: 100%;
margin-top: -8px;
line-height: 30px;
}
}
</style>

View File

@ -585,7 +585,7 @@ const submit = async (formEl: FormInstance | undefined) => {
defineExpose({ open }) defineExpose({ open })
</script> </script>
<style lang="scss" scoped> <style lang="scss">
.setting-preview { .setting-preview {
background: #f5f6f7; background: #f5f6f7;
height: 570px; height: 570px;
@ -621,11 +621,11 @@ defineExpose({ open })
.display-setting-dialog { .display-setting-dialog {
.el-dialog__header { .el-dialog__header {
padding-right: 16px; padding-right: 8px;
} }
.el-dialog__headerbtn { .el-dialog__headerbtn {
top: 13px; top: 8px;
} }
} }
</style> </style>

View File

@ -204,7 +204,15 @@
> >
<img src="@/assets/icon_web.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_web.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>
<AppAvatar
v-if="relatedObject(datasetList, item, 'id')?.type === '2'"
class="mr-8 avatar-purple"
shape="square"
:size="32"
style="background: none"
>
<img src="@/assets/logo_lark.svg" style="width: 100%" alt="" />
</AppAvatar>
<AppAvatar v-else class="mr-8 avatar-blue" shape="square" :size="32"> <AppAvatar v-else class="mr-8 avatar-blue" shape="square" :size="32">
<img src="@/assets/icon_document.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_document.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>

View File

@ -2,7 +2,6 @@
<el-dialog <el-dialog
align-center align-center
:title="$t('common.paramSetting')" :title="$t('common.paramSetting')"
class="param-dialog"
v-model="dialogVisible" v-model="dialogVisible"
style="width: 550px" style="width: 550px"
append-to-body append-to-body
@ -21,7 +20,7 @@
</DynamicsForm> </DynamicsForm>
<template #footer> <template #footer>
<span class="dialog-footer p-16"> <span class="dialog-footer">
<el-button @click.prevent="dialogVisible = false"> <el-button @click.prevent="dialogVisible = false">
{{ $t('common.cancel') }} {{ $t('common.cancel') }}
</el-button> </el-button>

View File

@ -158,7 +158,7 @@ defineExpose({ open })
} }
.el-dialog__headerbtn { .el-dialog__headerbtn {
top: 13px; top: 9px;
} }
.max-height { .max-height {
max-height: calc(100vh - 260px); max-height: calc(100vh - 260px);

View File

@ -2,7 +2,6 @@
<el-dialog <el-dialog
align-center align-center
:title="$t('common.setting')" :title="$t('common.setting')"
class="param-dialog"
v-model="dialogVisible" v-model="dialogVisible"
style="width: 550px" style="width: 550px"
append-to-body append-to-body
@ -34,7 +33,7 @@
</el-form> </el-form>
<template #footer> <template #footer>
<span class="dialog-footer p-16"> <span class="dialog-footer">
<el-button @click.prevent="dialogVisible = false">{{ $t('common.cancel') }}</el-button> <el-button @click.prevent="dialogVisible = false">{{ $t('common.cancel') }}</el-button>
<el-button type="primary" @click="submit()" :loading="loading"> <el-button type="primary" @click="submit()" :loading="loading">
{{ $t('common.save') }} {{ $t('common.save') }}

View File

@ -9,181 +9,179 @@
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
> >
<div class="dialog-max-height"> <el-scrollbar max-height="550">
<el-scrollbar> <div class="p-16">
<div class="p-16"> <el-form label-position="top" ref="paramFormRef" :model="form">
<el-form label-position="top" ref="paramFormRef" :model="form"> <el-form-item :label="$t('views.application.applicationForm.dialog.selectSearchMode')">
<el-form-item :label="$t('views.application.applicationForm.dialog.selectSearchMode')"> <el-radio-group
<el-radio-group v-model="form.dataset_setting.search_mode"
v-model="form.dataset_setting.search_mode" class="card__radio"
class="card__radio" @change="changeHandle"
@change="changeHandle"
>
<el-card
shadow="never"
class="mb-16"
:class="form.search_mode === 'embedding' ? 'active' : ''"
>
<el-radio value="embedding" size="large">
<p class="mb-4">
{{ $t('views.application.applicationForm.dialog.vectorSearch') }}
</p>
<el-text type="info">{{
$t('views.application.applicationForm.dialog.vectorSearchTooltip')
}}</el-text>
</el-radio>
</el-card>
<el-card
shadow="never"
class="mb-16"
:class="form.dataset_setting.search_mode === 'keywords' ? 'active' : ''"
>
<el-radio value="keywords" size="large">
<p class="mb-4">
{{ $t('views.application.applicationForm.dialog.fullTextSearch') }}
</p>
<el-text type="info">{{
$t('views.application.applicationForm.dialog.fullTextSearchTooltip')
}}</el-text>
</el-radio>
</el-card>
<el-card
shadow="never"
:class="form.dataset_setting.search_mode === 'blend' ? 'active' : ''"
>
<el-radio value="blend" size="large">
<p class="mb-4">
{{ $t('views.application.applicationForm.dialog.hybridSearch') }}
</p>
<el-text type="info">{{
$t('views.application.applicationForm.dialog.hybridSearchTooltip')
}}</el-text>
</el-radio>
</el-card>
</el-radio-group>
</el-form-item>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item>
<template #label>
<div class="flex align-center">
<span class="mr-4">{{
$t('views.application.applicationForm.dialog.similarityThreshold')
}}</span>
<el-tooltip
effect="dark"
:content="$t('views.application.applicationForm.dialog.similarityTooltip')"
placement="right"
>
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
</el-tooltip>
</div>
</template>
<el-input-number
v-model="form.dataset_setting.similarity"
:min="0"
:max="form.search_mode === 'blend' ? 2 : 1"
:precision="3"
:step="0.1"
:value-on-clear="0"
controls-position="right"
class="w-full"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('views.application.applicationForm.dialog.topReferences')">
<el-input-number
v-model="form.dataset_setting.top_n"
:min="1"
:max="10000"
:value-on-clear="1"
controls-position="right"
class="w-full"
/>
</el-form-item>
</el-col>
</el-row>
<el-form-item :label="$t('views.application.applicationForm.dialog.maxCharacters')">
<el-slider
v-model="form.dataset_setting.max_paragraph_char_number"
show-input
:show-input-controls="false"
:min="500"
:max="100000"
class="custom-slider"
/>
</el-form-item>
<el-form-item
v-if="!isWorkflowType"
:label="$t('views.application.applicationForm.dialog.noReferencesAction')"
> >
<el-form <el-card
label-position="top" shadow="never"
ref="noReferencesformRef" class="mb-16"
:model="noReferencesform" :class="form.search_mode === 'embedding' ? 'active' : ''"
:rules="noReferencesRules"
class="w-full"
:hide-required-asterisk="true"
> >
<el-radio-group <el-radio value="embedding" size="large">
v-model="form.dataset_setting.no_references_setting.status" <p class="mb-4">
class="radio-block" {{ $t('views.application.applicationForm.dialog.vectorSearch') }}
> </p>
<el-radio value="ai_questioning"> <el-text type="info">{{
<p> $t('views.application.applicationForm.dialog.vectorSearchTooltip')
{{ $t('views.application.applicationForm.dialog.continueQuestioning') }} }}</el-text>
</p> </el-radio>
</el-radio> </el-card>
<el-card
<el-radio value="designated_answer"> shadow="never"
<p>{{ $t('views.application.applicationForm.dialog.provideAnswer') }}</p> class="mb-16"
<el-form-item :class="form.dataset_setting.search_mode === 'keywords' ? 'active' : ''"
v-if=" >
form.dataset_setting.no_references_setting.status === 'designated_answer' <el-radio value="keywords" size="large">
" <p class="mb-4">
prop="designated_answer" {{ $t('views.application.applicationForm.dialog.fullTextSearch') }}
</p>
<el-text type="info">{{
$t('views.application.applicationForm.dialog.fullTextSearchTooltip')
}}</el-text>
</el-radio>
</el-card>
<el-card
shadow="never"
:class="form.dataset_setting.search_mode === 'blend' ? 'active' : ''"
>
<el-radio value="blend" size="large">
<p class="mb-4">
{{ $t('views.application.applicationForm.dialog.hybridSearch') }}
</p>
<el-text type="info">{{
$t('views.application.applicationForm.dialog.hybridSearchTooltip')
}}</el-text>
</el-radio>
</el-card>
</el-radio-group>
</el-form-item>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item>
<template #label>
<div class="flex align-center">
<span class="mr-4">{{
$t('views.application.applicationForm.dialog.similarityThreshold')
}}</span>
<el-tooltip
effect="dark"
:content="$t('views.application.applicationForm.dialog.similarityTooltip')"
placement="right"
> >
<el-input <AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
v-model="noReferencesform.designated_answer" </el-tooltip>
:rows="2" </div>
type="textarea" </template>
maxlength="2048" <el-input-number
:placeholder="defaultValue['designated_answer']" v-model="form.dataset_setting.similarity"
/> :min="0"
</el-form-item> :max="form.search_mode === 'blend' ? 2 : 1"
</el-radio> :precision="3"
</el-radio-group> :step="0.1"
</el-form> :value-on-clear="0"
</el-form-item> controls-position="right"
class="w-full"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('views.application.applicationForm.dialog.topReferences')">
<el-input-number
v-model="form.dataset_setting.top_n"
:min="1"
:max="10000"
:value-on-clear="1"
controls-position="right"
class="w-full"
/>
</el-form-item>
</el-col>
</el-row>
<el-form-item @click.prevent v-if="!isWorkflowType"> <el-form-item :label="$t('views.application.applicationForm.dialog.maxCharacters')">
<template #label> <el-slider
<div class="flex align-center"> v-model="form.dataset_setting.max_paragraph_char_number"
<span class="mr-4">{{ show-input
$t('views.application.applicationForm.form.problemOptimization.label') :show-input-controls="false"
}}</span> :min="500"
</div> :max="100000"
</template> class="custom-slider"
<el-switch size="small" v-model="form.problem_optimization"></el-switch> />
</el-form-item> </el-form-item>
<el-form-item
v-if="form.problem_optimization" <el-form-item
:label="$t('views.application.applicationForm.form.prompt.label')" v-if="!isWorkflowType"
:label="$t('views.application.applicationForm.dialog.noReferencesAction')"
>
<el-form
label-position="top"
ref="noReferencesformRef"
:model="noReferencesform"
:rules="noReferencesRules"
:hide-required-asterisk="true"
class="w-full"
> >
<el-input <el-radio-group
v-model="form.problem_optimization_prompt" v-model="form.dataset_setting.no_references_setting.status"
:rows="6" class="radio-block"
type="textarea" >
maxlength="2048" <el-radio value="ai_questioning">
:placeholder="defaultPrompt" <p>
/> {{ $t('views.application.applicationForm.dialog.continueQuestioning') }}
</el-form-item> </p>
</el-form> </el-radio>
</div>
</el-scrollbar> <el-radio value="designated_answer">
</div> <p>{{ $t('views.application.applicationForm.dialog.provideAnswer') }}</p>
<el-form-item
v-if="form.dataset_setting.no_references_setting.status === 'designated_answer'"
prop="designated_answer"
>
<el-input
v-model="noReferencesform.designated_answer"
:rows="2"
type="textarea"
maxlength="2048"
:placeholder="defaultValue['designated_answer']"
/>
</el-form-item>
</el-radio>
</el-radio-group>
</el-form>
</el-form-item>
<el-form-item @click.prevent v-if="!isWorkflowType">
<template #label>
<div class="flex align-center">
<span class="mr-4">{{
$t('views.application.applicationForm.form.problemOptimization.label')
}}</span>
</div>
</template>
<el-switch size="small" v-model="form.problem_optimization"></el-switch>
</el-form-item>
<el-form-item
v-if="form.problem_optimization"
:label="$t('views.application.applicationForm.form.prompt.label')"
>
<el-input
v-model="form.problem_optimization_prompt"
:rows="6"
type="textarea"
maxlength="2048"
:placeholder="defaultPrompt"
/>
</el-form-item>
</el-form>
</div>
</el-scrollbar>
<template #footer> <template #footer>
<span class="dialog-footer p-16"> <span class="dialog-footer p-16">
<el-button @click.prevent="dialogVisible = false">{{ $t('common.cancel') }}</el-button> <el-button @click.prevent="dialogVisible = false">{{ $t('common.cancel') }}</el-button>
@ -326,6 +324,4 @@ function changeHandle(val: string) {
defineExpose({ open }) defineExpose({ open })
</script> </script>
<style lang="scss"> <style lang="scss"></style>
</style>

View File

@ -4,7 +4,6 @@
:title="$t('common.paramSetting')" :title="$t('common.paramSetting')"
v-model="dialogVisible" v-model="dialogVisible"
style="width: 550px" style="width: 550px"
class="param-dialog"
append-to-body append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
@ -21,13 +20,12 @@
<template #footer> <template #footer>
<div class="flex-between"> <div class="flex-between">
<span class="p-16"> <el-button @click="testPlay" :loading="playLoading">
<el-button @click="testPlay" :loading="playLoading"> <AppIcon iconName="app-video-play" class="mr-4"></AppIcon>
<AppIcon iconName="app-video-play" class="mr-4"></AppIcon> {{ $t('views.application.applicationForm.form.voicePlay.listeningTest') }}
{{ $t('views.application.applicationForm.form.voicePlay.listeningTest') }} </el-button>
</el-button>
</span> <span class="dialog-footer">
<span class="dialog-footer p-16">
<el-button @click.prevent="dialogVisible = false"> <el-button @click.prevent="dialogVisible = false">
{{ $t('common.cancel') }} {{ $t('common.cancel') }}
</el-button> </el-button>

View File

@ -6,7 +6,7 @@
width="450" width="450"
> >
<el-radio-group v-model="state" class="radio-block"> <el-radio-group v-model="state" class="radio-block">
<el-radio value="error" size="large" class="mb-16">{{ <el-radio value="error" size="large">{{
$t('components.selectParagraph.error') $t('components.selectParagraph.error')
}}</el-radio> }}</el-radio>
<el-radio value="all" size="large">{{ $t('components.selectParagraph.all') }}</el-radio> <el-radio value="all" size="large">{{ $t('components.selectParagraph.all') }}</el-radio>

View File

@ -9,7 +9,7 @@
> >
<template #header="{ titleId, titleClass }"> <template #header="{ titleId, titleClass }">
<div class="my-header flex"> <div class="my-header flex">
<h4 :id="titleId" :class="titleClass">{{$t('views.log.selectDataset')}}</h4> <h4 :id="titleId" :class="titleClass">{{ $t('views.log.selectDataset') }}</h4>
<el-button link class="ml-16" @click="refresh"> <el-button link class="ml-16" @click="refresh">
<el-icon class="mr-4"><Refresh /></el-icon>{{ $t('common.refresh') }} <el-icon class="mr-4"><Refresh /></el-icon>{{ $t('common.refresh') }}
</el-button> </el-button>
@ -21,11 +21,7 @@
<div class="p-16"> <div class="p-16">
<el-row :gutter="12" v-loading="loading"> <el-row :gutter="12" v-loading="loading">
<el-col :span="12" v-for="(item, index) in datasetList" :key="index" class="mb-16"> <el-col :span="12" v-for="(item, index) in datasetList" :key="index" class="mb-16">
<el-card <el-card shadow="never" :class="item.id === selectDataset ? 'active' : ''">
shadow="never"
class="mb-8"
:class="item.id === selectDataset ? 'active' : ''"
>
<el-radio :value="item.id" size="large"> <el-radio :value="item.id" size="large">
<div class="flex align-center"> <div class="flex align-center">
<AppAvatar <AppAvatar
@ -44,7 +40,16 @@
> >
<img src="@/assets/icon_web.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_web.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>
<span class="ellipsis"> <AppAvatar
v-if="item?.type === '2'"
class="mr-8 avatar-purple"
shape="square"
:size="32"
style="background: none"
>
<img src="@/assets/logo_lark.svg" style="width: 100%" alt="" />
</AppAvatar>
<span class="ellipsis" :title="item.name">
{{ item.name }} {{ item.name }}
</span> </span>
</div> </div>
@ -121,7 +126,7 @@ const refresh = () => {
defineExpose({ open }) defineExpose({ open })
</script> </script>
<style lang="scss" scoped> <style lang="scss">
.select-dataset-dialog { .select-dataset-dialog {
padding: 0; padding: 0;
.el-dialog__header { .el-dialog__header {

View File

@ -1,21 +1,21 @@
<template> <template>
<el-dialog <el-dialog
:title="`Logo ${$t('common.setting')}`" :title="`Logo ${$t('common.setting')}`"
v-model="dialogVisible" v-model="dialogVisible"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
> >
<el-radio-group v-model="radioType" class="radio-block mb-16"> <el-radio-group v-model="radioType" class="radio-block-avatar mb-16">
<div> <div>
<el-radio value="default"> <el-radio value="default">
<p>{{ $t('views.applicationOverview.appInfo.EditAvatarDialog.default') }}</p> <p>{{ $t('views.applicationOverview.appInfo.EditAvatarDialog.default') }}</p>
<AppAvatar <AppAvatar
v-if="detail?.name" v-if="detail?.name"
:name="detail?.name" :name="detail?.name"
pinyinColor pinyinColor
class="mt-8 mb-8" class="mt-8 mb-8"
shape="square" shape="square"
:size="32" :size="32"
/> />
</el-radio> </el-radio>
</div> </div>
@ -24,25 +24,24 @@
<p>{{ $t('views.applicationOverview.appInfo.EditAvatarDialog.customizeUpload') }}</p> <p>{{ $t('views.applicationOverview.appInfo.EditAvatarDialog.customizeUpload') }}</p>
<div class="flex mt-8"> <div class="flex mt-8">
<AppAvatar <AppAvatar
v-if="fileURL" v-if="fileURL"
shape="square" shape="square"
:size="32" :size="32"
style="background: none" style="background: none"
class="mr-16" class="mr-16"
> >
<img :src="fileURL" alt=""/> <img :src="fileURL" alt="" />
</AppAvatar> </AppAvatar>
<el-upload <el-upload
ref="uploadRef" ref="uploadRef"
action="#" action="#"
:auto-upload="false" :auto-upload="false"
:show-file-list="false" :show-file-list="false"
accept="image/jpeg, image/png, image/gif" accept="image/jpeg, image/png, image/gif"
:on-change="onChange" :on-change="onChange"
> >
<el-button icon="Upload" :disabled="radioType !== 'custom'">{{ <el-button icon="Upload" :disabled="radioType !== 'custom'"
$t('views.applicationOverview.appInfo.EditAvatarDialog.upload') >{{ $t('views.applicationOverview.appInfo.EditAvatarDialog.upload') }}
}}
</el-button> </el-button>
</el-upload> </el-upload>
</div> </div>
@ -54,9 +53,7 @@
</el-radio-group> </el-radio-group>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click.prevent="dialogVisible = false"> <el-button @click.prevent="dialogVisible = false"> {{ $t('common.cancel') }}</el-button>
{{ $t('common.cancel') }}</el-button
>
<el-button type="primary" @click="submit" :loading="loading"> <el-button type="primary" @click="submit" :loading="loading">
{{ $t('common.save') }}</el-button {{ $t('common.save') }}</el-button
> >
@ -65,12 +62,12 @@
</el-dialog> </el-dialog>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {ref, watch} from 'vue' import { ref, watch } from 'vue'
import functionLibApi from '@/api/function-lib' import functionLibApi from '@/api/function-lib'
import {cloneDeep} from 'lodash' import { cloneDeep } from 'lodash'
import {MsgError, MsgSuccess} from '@/utils/message' import { MsgError, MsgSuccess } from '@/utils/message'
import {defaultIcon, isAppIcon} from '@/utils/application' import { defaultIcon, isAppIcon } from '@/utils/application'
import {t} from '@/locales' import { t } from '@/locales'
const emit = defineEmits(['refresh']) const emit = defineEmits(['refresh'])
@ -116,16 +113,30 @@ function submit() {
} else if (radioType.value === 'custom' && iconFile.value) { } else if (radioType.value === 'custom' && iconFile.value) {
let fd = new FormData() let fd = new FormData()
fd.append('file', iconFile.value.raw) fd.append('file', iconFile.value.raw)
functionLibApi.putFunctionLibIcon(detail.value.id, fd, loading) functionLibApi.putFunctionLibIcon(detail.value.id, fd, loading).then((res: any) => {
.then((res: any) => { emit('refresh', res.data)
emit('refresh', res.data) dialogVisible.value = false
dialogVisible.value = false })
})
} else { } else {
MsgError(t('views.applicationOverview.appInfo.EditAvatarDialog.uploadImagePrompt')) MsgError(t('views.applicationOverview.appInfo.EditAvatarDialog.uploadImagePrompt'))
} }
} }
defineExpose({open}) defineExpose({ open })
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped>
.radio-block-avatar {
width: 100%;
display: block;
.el-radio {
align-items: flex-start;
height: 100%;
width: 100%;
}
.el-radio__label {
width: 100%;
margin-top: -8px;
line-height: 30px;
}
}
</style>

View File

@ -16,7 +16,7 @@
require-asterisk-position="right" require-asterisk-position="right"
> >
<el-radio-group v-model="form.permission_type" class="radio-block"> <el-radio-group v-model="form.permission_type" class="radio-block">
<el-radio value="PRIVATE" size="large" class="mb-16"> <el-radio value="PRIVATE" size="large">
{{ $t('common.private') }} {{ $t('common.private') }}
<el-text type="info">{{ <el-text type="info">{{
$t('views.template.templateForm.form.permissionType.privateDesc') $t('views.template.templateForm.form.permissionType.privateDesc')

View File

@ -66,6 +66,15 @@
> >
<img src="@/assets/icon_web.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_web.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>
<AppAvatar
v-if="!item.dataset_id && item.type === '2'"
class="mr-8 avatar-purple"
shape="square"
:size="24"
style="background: none"
>
<img src="@/assets/logo_lark.svg" style="width: 100%" alt="" />
</AppAvatar>
<AppAvatar <AppAvatar
v-else-if="!item.dataset_id && item.type === '0'" v-else-if="!item.dataset_id && item.type === '0'"
class="mr-12 avatar-blue" class="mr-12 avatar-blue"

View File

@ -231,6 +231,15 @@
> >
<img src="@/assets/icon_web.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_web.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>
<AppAvatar
v-if="!item.dataset_id && item.type === '2'"
class="mr-12 avatar-purple"
shape="square"
:size="24"
style="background: none"
>
<img src="@/assets/logo_lark.svg" style="width: 100%" alt="" />
</AppAvatar>
<AppAvatar <AppAvatar
v-else-if="!item.dataset_id && item.type === '0'" v-else-if="!item.dataset_id && item.type === '0'"
class="mr-12 avatar-blue" class="mr-12 avatar-blue"

View File

@ -32,6 +32,15 @@
> >
<img src="@/assets/icon_web.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_web.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>
<AppAvatar
v-if="!item.dataset_id && item.type === '2'"
class="mr-12 avatar-purple"
shape="square"
:size="24"
style="background: none"
>
<img src="@/assets/logo_lark.svg" style="width: 100%" alt="" />
</AppAvatar>
<AppAvatar <AppAvatar
v-else-if="!item.dataset_id && item.type === '0'" v-else-if="!item.dataset_id && item.type === '0'"
class="mr-12 avatar-blue" class="mr-12 avatar-blue"
@ -99,7 +108,9 @@ const form = ref<any>({
}) })
const rules = reactive<FormRules>({ const rules = reactive<FormRules>({
dataset_id: [{ required: true, message: t('views.log.selectDatasetPlaceholder'), trigger: 'change' }], dataset_id: [
{ required: true, message: t('views.log.selectDatasetPlaceholder'), trigger: 'change' }
],
document_id: [{ required: true, message: t('views.log.documentPlaceholder'), trigger: 'change' }] document_id: [{ required: true, message: t('views.log.documentPlaceholder'), trigger: 'change' }]
}) })

View File

@ -34,7 +34,15 @@
> >
<img src="@/assets/icon_web.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_web.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>
<AppAvatar
v-if="relatedObject(datasetList, item, 'id')?.type === '2'"
class="mr-8 avatar-purple"
shape="square"
:size="20"
style="background: none"
>
<img src="@/assets/logo_lark.svg" style="width: 100%" alt="" />
</AppAvatar>
<AppAvatar v-else class="mr-8 avatar-blue" shape="square" :size="20"> <AppAvatar v-else class="mr-8 avatar-blue" shape="square" :size="20">
<img src="@/assets/icon_document.svg" style="width: 58%" alt="" /> <img src="@/assets/icon_document.svg" style="width: 58%" alt="" />
</AppAvatar> </AppAvatar>
@ -92,7 +100,9 @@
:label="$t('views.applicationWorkflow.nodes.searchDatasetNode.searchQuestion.label')" :label="$t('views.applicationWorkflow.nodes.searchDatasetNode.searchQuestion.label')"
prop="question_reference_address" prop="question_reference_address"
:rules="{ :rules="{
message: $t('views.applicationWorkflow.nodes.searchDatasetNode.searchQuestion.requiredMessage'), message: $t(
'views.applicationWorkflow.nodes.searchDatasetNode.searchQuestion.requiredMessage'
),
trigger: 'blur', trigger: 'blur',
required: true required: true
}" }"
@ -101,7 +111,9 @@
ref="nodeCascaderRef" ref="nodeCascaderRef"
:nodeModel="nodeModel" :nodeModel="nodeModel"
class="w-full" class="w-full"
:placeholder="$t('views.applicationWorkflow.nodes.searchDatasetNode.searchQuestion.placeholder')" :placeholder="
$t('views.applicationWorkflow.nodes.searchDatasetNode.searchQuestion.placeholder')
"
v-model="form_data.question_reference_address" v-model="form_data.question_reference_address"
/> />
</el-form-item> </el-form-item>