Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
poc-fe
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
poc
poc-fe
Commits
352cbacb
Commit
352cbacb
authored
Nov 01, 2024
by
tyyin lan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'shirlyn'
parents
e0d8197a
47e80269
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1547 additions
and
516 deletions
+1547
-516
agent-application.ts
src/apis/agent-application.ts
+25
-0
application-empty.png
src/assets/images/application-empty.png
+0
-0
memory-variableLabels.png
src/assets/images/memory-variableLabels.png
+0
-0
search-empty.png
src/assets/images/search-empty.png
+0
-0
zh-cn.yaml
src/locales/langs/zh-cn.yaml
+73
-2
zh-hk.yaml
src/locales/langs/zh-hk.yaml
+73
-2
personal-app-config.ts
src/store/modules/personal-app-config.ts
+4
-0
personal-app-config.ts
src/store/types/personal-app-config.ts
+9
-0
app-preview.vue
...nal-space/personal-app-setting/components/app-preview.vue
+57
-15
app-setting.vue
...nal-space/personal-app-setting/components/app-setting.vue
+207
-16
memory-preview-modal.vue
.../personal-app-setting/components/memory-preview-modal.vue
+91
-0
memory-variable-modal.vue
...personal-app-setting/components/memory-variable-modal.vue
+347
-0
columns.ts
src/views/personal-space/personal-app/columns.ts
+0
-343
personal-app.vue
src/views/personal-space/personal-app/personal-app.vue
+340
-138
sale-applications-configuration-modal.vue
...ce/personal-app/sale-applications-configuration-modal.vue
+248
-0
locales.d.ts
types/locales.d.ts
+73
-0
No files found.
src/apis/agent-application.ts
View file @
352cbacb
...
...
@@ -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
}
`
)
}
src/assets/images/application-empty.png
0 → 100644
View file @
352cbacb
3.31 KB
src/assets/images/memory-variableLabels.png
0 → 100644
View file @
352cbacb
40.5 KB
src/assets/images/search-empty.png
0 → 100644
View file @
352cbacb
3.29 KB
src/locales/langs/zh-cn.yaml
View file @
352cbacb
...
...
@@ -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
:
'
知识库名称'
...
...
src/locales/langs/zh-hk.yaml
View file @
352cbacb
...
...
@@ -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
:
'
知識庫名稱'
...
...
src/store/modules/personal-app-config.ts
View file @
352cbacb
...
...
@@ -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
,
}
}
...
...
src/store/types/personal-app-config.ts
View file @
352cbacb
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
}
src/views/personal-space/personal-app-setting/components/app-preview.vue
View file @
352cbacb
<
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>
...
...
src/views/personal-space/personal-app-setting/components/app-setting.vue
View file @
352cbacb
This diff is collapsed.
Click to expand it.
src/views/personal-space/personal-app-setting/components/memory-preview-modal.vue
0 → 100644
View file @
352cbacb
<
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
>
src/views/personal-space/personal-app-setting/components/memory-variable-modal.vue
0 → 100644
View file @
352cbacb
This diff is collapsed.
Click to expand it.
src/views/personal-space/personal-app/columns.ts
deleted
100644 → 0
View file @
e0d8197a
This diff is collapsed.
Click to expand it.
src/views/personal-space/personal-app/personal-app.vue
View file @
352cbacb
This diff is collapsed.
Click to expand it.
src/views/personal-space/personal-app/sale-applications-configuration-modal.vue
0 → 100644
View file @
352cbacb
<
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
>
types/locales.d.ts
View file @
352cbacb
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment