Commit 352cbacb authored by tyyin lan's avatar tyyin lan

Merge branch 'shirlyn'

parents e0d8197a 47e80269
......@@ -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}`)
}
......@@ -38,6 +38,7 @@ common_module:
copy_success_message: '复制成功'
delete_success_message: '删除成功'
save_success_message: '保存成功'
save_fail_message: '保存失败'
edit_success_message: '编辑成功'
publish_success_message: '发布成功'
clear_success_message: '清空成功'
......@@ -58,6 +59,16 @@ common_module:
accurate_mode: '精准模式'
balance_mode: '平衡模式'
creative_mode: '创意模式'
all: '全部'
collect: '收藏'
listing_successfully: '上架成功'
listing_failed: '上架失败'
removal_successfully: '下架成功'
removal_failed: '下架失败'
collect_successfully: '收藏成功'
collect_unsubscribed: '已取消收藏'
cancel: '取消'
preservation: '保存'
dialogue_module:
continue_question_message: '你可以继续提问'
......@@ -74,6 +85,9 @@ common_module:
copy: '复制'
delete: '删除'
view: '查看'
analysis: '分析'
listing_applications: '上架应用'
remove_applications: '下架应用'
pagination_module:
page_no: '条'
......@@ -142,14 +156,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: '已变更'
......@@ -216,6 +233,38 @@ personal_space_module:
continuous_question_default_desc: '根据用户最近一轮对话,在回复后自动提供3个提问建议。'
continuous_question_close: '关闭'
continuous_question_close_desc: '在每轮回复后,不会提供用户任何提问建议'
memory: '记忆'
add_memory_variable: '添加记忆变量'
memory_variable: '记忆变量'
memory_message:
'开发者可根据应用设定记忆变量,应用用户在对话过程中可以录入变量内容,每个变量支持存储一维、单个数据。
在对话过程中,应用将依据存储的变量值进行答复。下面以「旅游助手」为例:'
memory_variable_message: '记录聊天对话中的一维、单个的应用信息或用户信息,能让智能体回答更加个性化。'
memory_variable_action_edit: '编辑'
memory_variable_action_copy: '复制名称'
variable_name: '变量名称'
variable_value: '变量值'
memory_variable_modal:
edit_memory_variable: '编辑记忆变量'
memory_variable_message_tip: '删除变量或修改变量名称/描述,应用更新发布后会导致应用用户对应的变量数据被删除或重置为默认值,请谨慎操作'
memory_variable_table_name: '名称'
memory_variable_table_name_tip: '填写内容'
memory_variable_table_name_content: '1.仅支持英文、中文'
memory_variable_table_name_length: '2.长度50字以内'
memory_variable_table_default_value: '默认值'
default_value_tip: '开发者可以为应用用户预先设定默认值'
default_value_tip_example: '实例:北京'
memory_variable_table_action: '操作'
default_value_placeholder: '请输入'
name_placeholder: '请输入名称'
add_variable: '新增变量'
memory_variable_rules:
name_not_null: '请输入名称'
name_length: '名称长度不能超过50个字'
name_supports: '仅支持英文和中文'
name_not_duplicated: '名称不能重复'
preview: '预览与调试'
......@@ -241,6 +290,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: '知识库名称'
......
......@@ -38,6 +38,7 @@ common_module:
copy_success_message: '複製成功'
delete_success_message: '刪除成功'
save_success_message: '保存成功'
save_fail_message: '保存失敗'
edit_success_message: '編輯成功'
publish_success_message: '發佈成功'
clear_success_message: '清空成功'
......@@ -58,6 +59,16 @@ common_module:
accurate_mode: '精準模式'
balance_mode: '平衡模式'
creative_mode: '創意模式'
all: '全部'
collect: '收藏'
listing_successfully: '上架成功'
listing_failed: '上架失敗'
removal_successfully: '下架成功'
removal_failed: '下架失敗'
collect_successfully: '收藏成功'
collect_unsubscribed: '已取消收藏'
cancel: '取消'
preservation: '保存'
dialogue_module:
continue_question_message: '你可以繼續提問'
......@@ -74,6 +85,9 @@ common_module:
copy: '複製'
delete: '刪除'
view: '查看'
analysis: '分析'
listing_applications: '上架應用'
remove_applications: '下架應用'
pagination_module:
page_no: '條'
......@@ -142,14 +156,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: '已變更'
......@@ -216,6 +233,38 @@ personal_space_module:
continuous_question_default_desc: '根據用戶最近一輪對話,在回覆後自動提供3個提問建議。'
continuous_question_close: '關閉'
continuous_question_close_desc: '在每輪迴復後,不會提供用戶任何提問建議'
memory: '記憶'
add_memory_variable: '添加記憶變數'
memory_variable: '記憶變量'
memory_message:
'开发者可根据应用设定记忆变量,应用用户在对话过程中可以录入变量内容,每个变量支持存储一维、单个数据。
在对话过程中,应用将依据存储的变量值进行答复。下面以「旅游助手」为例:'
memory_variable_message: '记录聊天对话中的一维、单个的应用信息或用户信息,能让智能体回答更加个性化。'
memory_variable_action_edit: '編輯'
memory_variable_action_copy: '複製名稱'
variable_name: '变量名稱'
variable_value: '变量值'
memory_variable_modal:
edit_memory_variable: '編輯記憶變數'
memory_variable_message_tip: '删除變數或修改變數名稱/描述,應用更新發佈後會導致應用用戶對應的變數數據被删除或重置為預設值,請謹慎操作'
memory_variable_table_name: '名稱'
memory_variable_table_name_tip: '填写内容'
memory_variable_table_name_content: '1.僅支持英文、中文'
memory_variable_table_name_length: '2.長度50字以内'
memory_variable_table_default_value: '預設值'
default_value_tip: '開發者可以為應用用戶預先設定預設值'
default_value_tip_example: '實例:北京'
memory_variable_table_action: '操作'
default_value_placeholder: '請輸入'
name_placeholder: '請輸入名稱'
add_variable: '新增變數'
memory_variable_rules:
name_not_null: '請求輸入名稱'
name_length: '名字長度不能超過50個字'
name_supports: '僅支持英文和中文'
name_not_duplicated: '名稱不能重複'
preview: '預覽與調試'
......@@ -241,6 +290,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,
}
}
......
export interface VariableStructureItem {
key: string
variableDefault: string | null
}
export interface PersonalAppConfigState {
baseInfo: {
agentId: string //应用ID
......@@ -13,6 +18,7 @@ export interface PersonalAppConfigState {
continuousQuestionStatus: 'default' | 'close' //追问状态
continuousQuestionSystem: string // 追问提示词 customizable时必填
continuousQuestionTurn: number // 追问轮次 1-5 customizable时必填
variableStructure: VariableStructureItem[]
}
knowledgeConfig: {
knowledgeIds: string[] //知识库ID
......@@ -24,4 +30,7 @@ export interface PersonalAppConfigState {
temperature: number //多样性 0-1.00
}
modifiedTime: Date
isCollect: string
isSale: string
agentPublishId: number
}
<script setup lang="ts">
import { ref } from 'vue'
import { useRouter } from 'vue-router'
import Preamble from './preamble.vue'
import { useI18n } from 'vue-i18n'
import MessageList from './message-list.vue'
import FooterInput from './footer-input.vue'
import { fetchCreateContinueQuestions } from '@/apis/agent-application'
import { usePersonalAppConfigStore } from '@/store/modules/personal-app-config'
import { Brain, Down } from '@icon-park/vue-next'
import MemoryPreviewModal from './memory-preview-modal.vue'
const { t } = useI18n()
const router = useRouter()
// const router = useRouter()
const personalAppConfigStore = usePersonalAppConfigStore()
......@@ -22,6 +23,7 @@ const messageList = ref<ConversationMessageItem[]>([])
const continuousQuestionStatus = ref<'default' | 'close'>(personalAppConfigStore.commConfig.continuousQuestionStatus)
const continuousQuestionList = ref<string[]>([])
const isShowMemoryPreviewModal = ref(false)
function handleAddMessageItem(messageItem: ConversationMessageItem) {
messageList.value.push(messageItem)
......@@ -71,31 +73,69 @@ function handleUpdateContinueQuestionStatus(status: 'default' | 'close') {
continuousQuestionList.value = []
}
function handleTurnMultiModelDialogue() {
router.push({
name: 'MultiModelDialogue',
params: {
agentId: personalAppConfigStore.baseInfo.agentId,
},
})
// function handleTurnMultiModelDialogue() {
// router.push({
// name: 'MultiModelDialogue',
// params: {
// agentId: personalAppConfigStore.baseInfo.agentId,
// },
// })
// }
function handleMemoryVariable() {
isShowMemoryPreviewModal.value = true
}
</script>
<template>
<div class="flex h-full min-w-[300px] flex-1 flex-col overflow-hidden bg-[#f2f5f9]">
<div class="mb-[18px] flex items-center justify-between px-5 py-[18px]">
<p class="text-base">
{{ t('personal_space_module.agent_module.agent_setting_module.agent_config_module.preview') }}
</p>
<div class="flex justify-between">
<div class="mb-[18px] flex items-center justify-between px-5 py-[18px]">
<p class="text-base">
{{ t('personal_space_module.agent_module.agent_setting_module.agent_config_module.preview') }}
</p>
<div
v-show="personalAppConfigStore.commConfig.variableStructure.length !== 0"
class="memory-content cursor-pointer"
>
<n-popover
placement="bottom"
arrow-wrapper-class="memory-content"
trigger="hover"
class="p-[4px]! top-[-25px]"
:show-arrow="false"
>
<template #trigger>
<div class="mb-[18px] flex items-center justify-center px-5 py-[18px] text-[14px]">
<Brain theme="outline" size="16" fill="#333" />
<div class="mx-[4px]">
{{ t('personal_space_module.agent_module.agent_setting_module.agent_config_module.memory') }}
</div>
<Down theme="outline" size="16" fill="#333" class="inline" />
</div>
</template>
<div>
<div
v-show="personalAppConfigStore.commConfig.variableStructure !== null"
class="cursor-pointer px-[8px] py-[5px] hover:bg-[#f2f5f9]"
@click="handleMemoryVariable"
>
{{ t('personal_space_module.agent_module.agent_setting_module.agent_config_module.memory_variable') }}
</div>
</div>
</n-popover>
</div>
</div>
<div
<!-- <div
v-show="personalAppConfigStore.baseInfo.agentId"
class="text-font-color hover:text-theme-color cursor-pointer"
@click="handleTurnMultiModelDialogue"
>
<i class="iconfont icon-moxing mr-1 text-sm" />
<span>{{ t('common_module.multi_model_debug') }}</span>
</div>
</div> -->
</div>
<div class="flex w-full flex-1 overflow-hidden">
......@@ -125,6 +165,8 @@ function handleTurnMultiModelDialogue() {
@create-continue-questions="handleCreateContinueQuestions"
@update-continuous-question-status="handleUpdateContinueQuestionStatus"
/>
<MemoryPreviewModal v-model="isShowMemoryPreviewModal" />
</div>
</template>
......
<script setup lang="ts">
import { usePersonalAppConfigStore } from '@/store/modules/personal-app-config'
import { Close } from '@icon-park/vue-next'
import { DataTableColumns } from 'naive-ui'
import { ref, watch } from 'vue'
import { MemoryVariableForm } from './memory-variable-modal.vue'
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
const memoryVariableColumns = createColumns()
const personalAppConfigStore = usePersonalAppConfigStore()
const memoryVariableData = ref([])
const isShowMemoryPreviewModal = defineModel<boolean>()
function createColumns(): DataTableColumns<MemoryVariableForm> {
return [
{
title: t('personal_space_module.agent_module.agent_setting_module.agent_config_module.variable_name'),
key: 'key',
width: 150,
},
{
title: t('personal_space_module.agent_module.agent_setting_module.agent_config_module.variable_value'),
key: 'variableDefault',
},
]
}
watch(
() => personalAppConfigStore.commConfig.variableStructure,
(newValue) => {
if (newValue !== null) {
memoryVariableData.value = JSON.parse(JSON.stringify(newValue))
}
},
{ immediate: true },
)
function handlePreviewModalClose() {
isShowMemoryPreviewModal.value = false
}
</script>
<template>
<n-modal v-model:show="isShowMemoryPreviewModal" class="h-auto max-h-[720px]" :mask-closable="false">
<div class="flex flex-col items-center justify-center">
<div class="max-h-[720px] w-[880px] rounded-lg bg-white p-[24px]">
<div class="flex items-center justify-end text-[20px]">
<Close theme="outline" size="18" fill="#00000073" class="cursor-pointer" @click="handlePreviewModalClose" />
</div>
<div class="">
<n-tabs type="line" animated>
<n-tab-pane
name="oasis"
:tab="t('personal_space_module.agent_module.agent_setting_module.agent_config_module.memory_variable')"
>
<div class="flex max-h-[490px] justify-center overflow-y-hidden bg-[#f3f4fb]">
<n-data-table :columns="memoryVariableColumns" :max-height="440" :data="memoryVariableData" />
</div>
</n-tab-pane>
</n-tabs>
</div>
</div>
</div>
</n-modal>
</template>
<style lang="scss" scoped>
:deep(.n-tabs) {
.n-tabs-tab {
font-size: 20px;
}
.n-tabs-bar {
background-color: #fff;
}
.n-tabs-nav {
&.n-tabs-nav--line-type {
&.n-tabs-nav--top {
.n-tabs-nav-scroll-content {
border-bottom: none;
}
}
}
}
}
</style>
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>
......@@ -39,6 +39,7 @@ declare namespace I18n {
copy_success_message: string
delete_success_message: string
save_success_message: string
save_fail_message: string
edit_success_message: string
publish_success_message: string
clear_success_message: string
......@@ -59,6 +60,16 @@ declare namespace I18n {
accurate_mode: string
balance_mode: string
creative_mode: 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
preservation: string
dialogue_module: {
continue_question_message: string
......@@ -76,6 +87,9 @@ declare namespace I18n {
copy: string
delete: string
view: string
analysis: string
listing_applications: string
remove_applications: string
}
pagination_module: {
......@@ -84,6 +98,9 @@ declare namespace I18n {
page_unit: string
total: string
goto: string
remove_applications_dialog_title: string
already_bottom: string
application_empty: string
}
}
......@@ -218,6 +235,38 @@ declare namespace I18n {
continuous_question_default_desc: string
continuous_question_close: string
continuous_question_close_desc: string
memory: string
add_memory_variable: string
memory_variable: string
memory_message: string
memory_variable_message: string
memory_variable_action_edit: string
memory_variable_action_copy: string
variable_name: string
variable_value: string
memory_variable_modal: {
edit_memory_variable: string
memory_variable_message_tip: string
memory_variable_table_name: string
memory_variable_table_name_tip: string
memory_variable_table_name_content: string
memory_variable_table_name_length: string
memory_variable_table_default_value: string
default_value_tip: string
default_value_tip_example: string
memory_variable_table_action: string
default_value_placeholder: string
name_placeholder: string
add_variable: string
memory_variable_rules: {
name_not_null: string
name_length: string
name_supports: string
name_not_duplicated: string
}
}
preview: string
......@@ -248,6 +297,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