Commit e9a133f4 authored by shirlyn.guo's avatar shirlyn.guo 🤡

chore: 个人空间-应用样式优化

parent 024ccbb0
......@@ -137,3 +137,28 @@ export function fetchCreateAgentTitleAndDesc<T>(payload: { input: string }, cont
export function fetchGetLargeModelInfo<T>(modelName: string) {
return request.post<T>(`/agentApplicationInfoRest/getLargeModelInfo.json?query=${modelName}`)
}
/**
* * @param agentId 应用Id
* @returns 收藏应用
*/
export function fetchApplicationsCollectionStatusChange<T>(agentId: string) {
return request.post<T>(`/agentApplicationInfoRest/collectOrCancelAgentInPerson.json?agentId=${agentId}`)
}
/**
*
* @param payload payload 应用参数
* @returns 上架应用
*/
export function fetchSalePublishApplication<T>(payload: object) {
return request.post<T>('/bizAgentApplicationMallRest/publishAgentToMall.json', payload)
}
/**
* * @param agentPublishId 发布应用表的id
* @returns 下架应用
*/
export function fetchRemoveSalePublishApplication<T>(agentPublishId: number) {
return request.post<T>(`/bizAgentApplicationMallRest/unSaleAgentInMall.json?agentPublishId=${agentPublishId}`)
}
......@@ -48,18 +48,20 @@ useResizeObserver(rootContainer, (entries) => {
</script>
<template>
<div ref="rootContainer" class="h-full w-full">
<MessageTipModal />
<n-dialog-provider>
<div ref="rootContainer" class="h-full w-full">
<MessageTipModal />
<NConfigProvider
class="h-full w-full"
:locale="currentLocale"
:date-locale="currentDateLocale"
:theme-overrides="themeOverrides"
>
<RouterView v-slot="{ Component }">
<Component :is="Component" />
</RouterView>
</NConfigProvider>
</div>
<NConfigProvider
class="h-full w-full"
:locale="currentLocale"
:date-locale="currentDateLocale"
:theme-overrides="themeOverrides"
>
<RouterView v-slot="{ Component }">
<Component :is="Component" />
</RouterView>
</NConfigProvider>
</div>
</n-dialog-provider>
</template>
......@@ -52,6 +52,15 @@ common_module:
deletion_failed_please_try_again: '删除失败,请重试'
select_all: '全选'
quit: '退出'
all: '全部'
collect: '收藏'
listing_successfully: '上架成功'
listing_failed: '上架失败'
removal_successfully: '下架成功'
removal_failed: '下架失败'
collect_successfully: '收藏成功'
collect_unsubscribed: '已取消收藏'
cancel: '取消'
dialogue_module:
continue_question_message: '你可以继续提问'
......@@ -68,6 +77,9 @@ common_module:
copy: '复制'
delete: '删除'
view: '查看'
analysis: '分析'
listing_applications: '上架应用'
remove_applications: '下架应用'
pagination_module:
page_no: '条'
......@@ -134,14 +146,17 @@ personal_space_module:
large_model: '模型名称'
agent_id: '应用ID'
agent_publish_status: '发布状态'
modified_time: '最近编辑时间'
modified_time: '最近编辑'
channel: '渠道'
channel_popover_text: '查看发布详情'
agent_copy: '的副本'
empty_agent_list: '暂无应用'
search_empty_agent_list: '暂⽆搜索结果,请换⼀个关键词进⾏搜索'
search_empty_agent_list: '没有搜索到相关内容'
delete_agent_dialog_title: '确定要删除选中的应用吗?'
delete_agent_dialog_content: '删除后,如需再次使用,请重新创建'
remove_applications_dialog_title: '确定要下架应用吗?'
already_bottom: '已经到底啦'
application_empty: '未创建应用'
agent_setting_module:
modified: '已变更'
......@@ -233,6 +248,28 @@ personal_space_module:
share_link: '分享链接'
copy_share_url_success_message: '链接复制成功,快分享给你的好友吧!'
agent_sale_module:
application_square_release_setting: '应用广场发布配置'
application_classification: '应用分类'
application_classification_null: '应用分类不能为空'
application_classify:
media_entertainment: '媒体文娱'
education_training: '教育培训'
business_services: '商业服务'
medical_health: '医疗健康'
efficiency_tools: '效率工具'
office_personnel: '办公人事'
marketing_commerce: '营销电商'
finance: '金融'
law: '法律'
culture_tourism: '文旅'
is_copy: '是否允许复制'
yes: '是'
no: '否'
confirm_release: '确认发布'
copy_tip: '选择「是」代表您允许平台的开发者和用户,复制您的应用配置进行二次开发来创建新应用。注意:私有配置不支持复制(私有配置包含:知识库、数据库)'
knowledge_module:
search_knowledge_placeholder: '请输入知识库名称'
knowledge_name: '知识库名称'
......
......@@ -52,6 +52,15 @@ common_module:
deletion_failed_please_try_again: '刪除失敗,請重試'
select_all: '全選'
quit: '退出'
all: '全部'
collect: '收藏'
listing_successfully: '上架成功'
listing_failed: '上架失敗'
removal_successfully: '下架成功'
removal_failed: '下架失敗'
collect_successfully: '收藏成功'
collect_unsubscribed: '已取消收藏'
cancel: '取消'
dialogue_module:
continue_question_message: '你可以繼續提問'
......@@ -68,6 +77,9 @@ common_module:
copy: '複製'
delete: '刪除'
view: '查看'
analysis: '分析'
listing_applications: '上架應用'
remove_applications: '下架應用'
pagination_module:
page_no: '條'
......@@ -134,14 +146,17 @@ personal_space_module:
large_model: '模型名稱'
agent_id: '應用ID'
agent_publish_status: '發佈狀態'
modified_time: '最近編輯時間'
modified_time: '最近編輯'
channel: '渠道'
channel_popover_text: '查看發佈詳情'
agent_copy: '的副本'
empty_agent_list: '暫無應用'
search_empty_agent_list: '暫⽆搜索結果,請換⼀個關鍵詞進⾏搜索'
search_empty_agent_list: '沒有蒐索到相關內容'
delete_agent_dialog_title: '確定要刪除選中的應用嗎?'
delete_agent_dialog_content: '刪除後,如需再次使用,請重新創建'
remove_applications_dialog_title: '確定要下架應用嗎?'
already_bottom: '已經到底啦'
application_empty: '未創建應用'
agent_setting_module:
modified: '已變更'
......@@ -233,6 +248,28 @@ personal_space_module:
share_link: '分享鏈接'
copy_share_url_success_message: '鏈接複製成功,快分享給你的好友吧!'
agent_sale_module:
application_square_release_setting: '應用廣場發佈配寘'
application_classification: '應用分類'
application_classification_null: '應用分類不能為空'
application_classify:
media_entertainment: '媒體文娛'
education_training: '教育培訓'
business_services: '商業服務'
medical_health: '醫療健康'
efficiency_tools: '效率工具'
office_personnel: '辦公人事'
marketing_commerce: '行銷電商'
finance: '金融'
law: '法律'
culture_tourism: '文旅'
is_copy: '是否允許複製'
yes: '是'
no: '否'
confirm_release: '確認發佈'
copy_tip: '選擇「是」代表您允許平臺的開發者和用戶,複製您的應用配寘進行二次開發來創建新應用。 注意:私有配寘不支持複製(私有配寘包含:知識庫、資料庫)'
knowledge_module:
search_knowledge_placeholder: '請輸入知識庫名稱'
knowledge_name: '知識庫名稱'
......
......@@ -17,6 +17,7 @@ export function defaultPersonalAppConfigState(): PersonalAppConfigState {
continuousQuestionStatus: 'default',
continuousQuestionSystem: '',
continuousQuestionTurn: 3,
variableStructure: [],
},
knowledgeConfig: {
knowledgeIds: [],
......@@ -28,6 +29,9 @@ export function defaultPersonalAppConfigState(): PersonalAppConfigState {
temperature: 0.5,
},
modifiedTime: new Date(),
isCollect: '',
isSale: '',
agentPublishId: 1,
}
}
......
......@@ -13,6 +13,7 @@ export interface PersonalAppConfigState {
continuousQuestionStatus: 'default' | 'close' //追问状态
continuousQuestionSystem: string // 追问提示词 customizable时必填
continuousQuestionTurn: number // 追问轮次 1-5 customizable时必填
variableStructure: object[]
}
knowledgeConfig: {
knowledgeIds: string[] //知识库ID
......@@ -24,4 +25,7 @@ export interface PersonalAppConfigState {
temperature: number //多样性 0-1.00
}
modifiedTime: Date
isCollect: string
isSale: string
agentPublishId: number
}
This diff is collapsed.
<script setup lang="ts">
import { fetchSalePublishApplication } from '@/apis/agent-application'
import { PersonalAppConfigState } from '@/store/types/personal-app-config'
import { Close, Help, Notes, CheckSmall } from '@icon-park/vue-next'
import { ref, watch } from 'vue'
import { useI18n } from 'vue-i18n'
const isShowSaleApplicationsConfigurationModal = defineModel<boolean>()
const props = defineProps<{
data: PersonalAppConfigState
}>()
const emit = defineEmits<{
update: [value: string]
}>()
const { t } = useI18n()
const checkedClassifyValue = ref('')
const isCopy = ref('N')
const saleApplicationsId = ref(props.data.agentPublishId)
const isClassifyError = ref(false)
const applicationsClassify = [
{
value: 'mediaEntertainment',
label: t(
'personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_classify.media_entertainment',
),
},
{
value: 'educationTraining',
label: t(
'personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_classify.education_training',
),
},
{
value: 'businessServices',
label: t(
'personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_classify.business_services',
),
},
{
value: 'medicalHealth',
label: t(
'personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_classify.medical_health',
),
},
{
value: 'efficiencyTools',
label: t(
'personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_classify.efficiency_tools',
),
},
{
value: 'officePersonnel',
label: t(
'personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_classify.office_personnel',
),
},
{
value: 'marketingCommerce',
label: t(
'personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_classify.marketing_commerce',
),
},
{
value: 'finance',
label: t('personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_classify.finance'),
},
{
value: 'law',
label: t('personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_classify.law'),
},
{
value: 'cultureTourism',
label: t(
'personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_classify.culture_tourism',
),
},
]
watch(
() => checkedClassifyValue.value,
() => {
if (checkedClassifyValue.value !== '') isClassifyError.value = false
},
)
watch(
() => props.data,
(newVal) => {
saleApplicationsId.value = newVal.agentPublishId
},
)
function handleApplicationsSaleSettingModalClose() {
isShowSaleApplicationsConfigurationModal.value = false
checkedClassifyValue.value = ''
}
function handleApplicationReleaseBtn() {
if (!checkedClassifyValue.value) {
isClassifyError.value = true
return
}
const payload = {
agentPublishId: saleApplicationsId.value,
agentType: checkedClassifyValue.value,
isCopy: isCopy.value,
isSale: 'Y',
}
fetchSalePublishApplication(payload)
.then(() => {
emit('update', 'Y')
handleApplicationsSaleSettingModalClose()
window.$message.success(t('common_module.listing_successfully'))
isClassifyError.value = false
})
.catch(() => {
window.$message.success(t('common_module.listing_failed'))
})
}
function handleIsCopySwitchUpdateValue(value: string) {
isCopy.value = value
}
</script>
<template>
<n-modal v-model:show="isShowSaleApplicationsConfigurationModal" class="h-auto max-h-[720px]" :mask-closable="false">
<div class="flex flex-col items-center justify-center">
<div class="max-h-[720px] w-[720px] rounded-lg bg-white p-[24px]">
<div class="mb-[24px] flex items-center justify-between text-[20px] font-medium">
<div class="flex items-center">
<span class=" ">{{
t(
'personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_square_release_setting',
)
}}</span>
<Notes theme="outline" size="17" fill="#333" class="ml-[8px]" />
</div>
<Close
theme="outline"
size="12"
fill="#00000073"
class="cursor-pointer"
@click="handleApplicationsSaleSettingModalClose"
/>
</div>
<div class="items-center justify-center rounded-[4px]">
<div class="mb-[16px] flex items-center text-[14px] text-[#151B26]">
<div class="bg-theme-color mr-[8px] h-[20px] w-[20px] rounded-2xl text-center text-[#fff]">1</div>
<div class="text-[16px]">
{{
t(
'personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_classification',
)
}}
</div>
<div class="text-[#f33e3e]">*</div>
</div>
<div class="flex flex-wrap justify-between">
<button
v-for="classify in applicationsClassify"
:key="classify.value"
:class="['classify-radio-button', { active: checkedClassifyValue === classify.value }]"
class="relative mb-[8px] mr-[4px] h-[26px] cursor-pointer rounded-[6px] border-[1px] border-[#edeef7] bg-[#edeef7] px-[8px] text-[12px]"
@click="checkedClassifyValue = classify.value"
>
<div
v-show="checkedClassifyValue === classify.value"
class="bg-theme-color absolute left-0 top-[-1px] h-[14px] w-[14px] rounded-[3px]"
style="clip-path: polygon(0 0, 100% 0, 0 100%)"
>
<CheckSmall theme="outline" size="10" fill="#fff" />
</div>
{{ classify.label }}
</button>
</div>
<div class="mb-[10px] h-[16px] text-red-500">
<div v-show="isClassifyError">
{{
t(
'personal_space_module.agent_module.agent_setting_module.agent_sale_module.application_classification_null',
)
}}
</div>
</div>
<div class="mb-[12px] flex items-center">
<div class="bg-theme-color mr-[8px] h-[20px] w-[20px] rounded-2xl text-center text-[#fff]">2</div>
{{ t('personal_space_module.agent_module.agent_setting_module.agent_sale_module.is_copy') }}
<n-popover trigger="hover">
<template #trigger>
<Help theme="outline" size="16" fill="#333" class="ml-[5px] cursor-pointer" />
</template>
<div class="w-[250px]">
{{ t('personal_space_module.agent_module.agent_setting_module.agent_sale_module.copy_tip') }}
</div>
</n-popover>
</div>
<n-switch size="small" checked-value="Y" unchecked-value="N" @update:value="handleIsCopySwitchUpdateValue"
><template #checked
>{{ t('personal_space_module.agent_module.agent_setting_module.agent_sale_module.yes') }}
</template>
<template #unchecked>
{{ t('personal_space_module.agent_module.agent_setting_module.agent_sale_module.no') }}
</template></n-switch
>
</div>
<div class="">
<div class="flex max-h-[490px] justify-center overflow-y-hidden bg-[#f3f4fb]"></div>
<div class="mt-[24px] flex justify-end">
<button
class="hover:text-theme-color hover:border-theme-color !mr-[12px] box-content !h-[38px] !w-[74px] cursor-pointer rounded-[6px] border-[1px] border-solid border-[#dde3f0] px-[10px] outline-none transition-all duration-300 hover:border-[theme-color]"
@click="handleApplicationsSaleSettingModalClose"
>
{{ t('common_module.cancel') }}
</button>
<button
class="bg-theme-color !box-content !h-[38px] !w-[74px] cursor-pointer rounded-[6px] border-[1px] border-solid border-[#dde3f0] bg-[te] px-[10px] text-[#ffffff] transition-all duration-300 hover:bg-[#528EFF]"
@click="handleApplicationReleaseBtn()"
>
{{ t('personal_space_module.agent_module.agent_setting_module.agent_sale_module.confirm_release') }}
</button>
</div>
</div>
</div>
</div>
</n-modal>
</template>
<style lang="scss" scoped>
.classify-radio-button {
&.active {
background-color: #eef3fe;
border: 1px solid #000dff;
}
&:focus {
outline: none;
}
}
</style>
......@@ -53,6 +53,15 @@ declare namespace I18n {
deletion_failed_please_try_again: string
select_all: string
quit: string
all: string
collect: string
listing_successfully: string
listing_failed: string
removal_successfully: string
removal_failed: string
collect_successfully: string
collect_unsubscribed: string
cancel: string
dialogue_module: {
continue_question_message: string
......@@ -70,6 +79,9 @@ declare namespace I18n {
copy: string
delete: string
view: string
analysis: string
listing_applications: string
remove_applications: string
}
pagination_module: {
......@@ -78,6 +90,9 @@ declare namespace I18n {
page_unit: string
total: string
goto: string
remove_applications_dialog_title: string
already_bottom: string
application_empty: string
}
}
......@@ -240,6 +255,30 @@ declare namespace I18n {
}
}
agent_sale_module: {
application_square_release_setting: string
application_classification: string
application_classification_null: string
application_classify: {
media_entertainment: string
education_training: string
business_services: string
medical_health: string
efficiency_tools: string
office_personnel: string
marketing_commerce: string
finance: string
law: string
culture_tourism: string
}
is_copy: string
yes: string
no: string
confirm_release: string
copy_tip: string
}
knowledge_module: {
search_knowledge_placeholder: string
knowledge_name: string
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment