diff --git a/bcs-services/bcs-bscp/ui/src/api/config.ts b/bcs-services/bcs-bscp/ui/src/api/config.ts
index 0b616dc2b4..76b1f850ca 100644
--- a/bcs-services/bcs-bscp/ui/src/api/config.ts
+++ b/bcs-services/bcs-bscp/ui/src/api/config.ts
@@ -479,4 +479,14 @@ export const undeleteKv = (bizId: string, appId: number, key: string) =>
* @returns
*/
export const batchImportKvFile = (bizId: string, appId: number, File: any) =>
- http.post(`biz/${bizId}/apps/${appId}/kvs/import`, File);
+ http.post(`/biz/${bizId}/apps/${appId}/kvs/import`, File);
+
+/**
+ * 导出kv配置文件
+ * @param bizId 业务ID
+ * @param appId 应用ID
+ * @param releaseId 发布版本ID
+ * @returns
+ */
+export const getExportKvFile = (bizId: string, appId: number, releaseId: number, format: string) =>
+ http.get(`biz/${bizId}/apps/${appId}/releases/${releaseId}/kvs/export`, { params: { format } });
diff --git a/bcs-services/bcs-bscp/ui/src/i18n/en-us.ts b/bcs-services/bcs-bscp/ui/src/i18n/en-us.ts
index 1f6658a467..1838ef427f 100644
--- a/bcs-services/bcs-bscp/ui/src/i18n/en-us.ts
+++ b/bcs-services/bcs-bscp/ui/src/i18n/en-us.ts
@@ -333,6 +333,7 @@ export default {
'解析失败,配置项格式不正确': 'Parsing failed because the configuration item format is incorrect',
请选择: 'Please select',
配置项值已复制: 'The configuration item value has been copied',
+ 导出至: 'Export to',
// 分组管理
新增分组: 'New group',
diff --git a/bcs-services/bcs-bscp/ui/src/i18n/zh-cn.ts b/bcs-services/bcs-bscp/ui/src/i18n/zh-cn.ts
index bd37eac592..bda815dbed 100644
--- a/bcs-services/bcs-bscp/ui/src/i18n/zh-cn.ts
+++ b/bcs-services/bcs-bscp/ui/src/i18n/zh-cn.ts
@@ -331,9 +331,10 @@ export default {
文件导入成功: '文件导入成功',
文本导入成功: '文本导入成功',
'解析失败,配置项格式不正确': '解析失败,配置项格式不正确',
-
请选择: '请选择',
配置项值已复制: '配置项值已复制',
+ 导出至: '导出至',
+
// 分组管理
新增分组: '新增分组',
按标签分类查看: '按标签分类查看',
diff --git a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/config-export.vue b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/config-export.vue
new file mode 100644
index 0000000000..244463da1c
--- /dev/null
+++ b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/config-export.vue
@@ -0,0 +1,89 @@
+
+
+ {{ $t('导出至') }}
+
+
+
+
+ {{ item.text }}
+
+
+
+
+
+
+
+
+
diff --git a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/config-form.vue b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/config-form.vue
index 36e746eba8..1dd94dd44b 100644
--- a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/config-form.vue
+++ b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/config-form.vue
@@ -184,7 +184,7 @@
fileAP: [
{
validator: (val: string) =>
- /^\/([\u4e00-\u9fa5A-Za-z0-9_\-#%,@^+=[\]{}]+[\u4e00-\u9fa5A-Za-z0-9_\-#%,.@^+=[\]{}]*\/?)*$/.test(val),
+ /^\/([\u4e00-\u9fa5A-Za-z0-9_\-#%,@^+=[\]{}]+[\u4e00-\u9fa5A-Za-z0-9_\-#%,.@^+=[\]{}]*\/?)*[^/]$/.test(val),
message: t('无效的路径,路径不符合Unix文件路径格式规范'),
trigger: 'change',
},
diff --git a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/index.vue b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/index.vue
index de39b013f7..360a94b5b9 100644
--- a/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/index.vue
+++ b/bcs-services/bcs-bscp/ui/src/views/space/service/detail/config/config-list/config-table-list/index.vue
@@ -16,8 +16,17 @@
:bk-biz-id="props.bkBizId"
:app-id="props.appId"
:verision-id="versionData.id" />
+
-
+
@@ -59,6 +68,7 @@
import TableWithTemplates from './tables/table-with-templates.vue';
import TableWithPagination from './tables/table-with-pagination.vue';
import TableWithKv from './tables/table-with-kv.vue';
+ import ConfigExport from './config-export.vue';
const configStore = useConfigStore();
const serviceStore = useServiceStore();