diff --git a/packages/configurator/src/index.ts b/packages/configurator/src/index.ts
index ecb870b85..414b78917 100644
--- a/packages/configurator/src/index.ts
+++ b/packages/configurator/src/index.ts
@@ -29,6 +29,7 @@ import SwitchConfigurator from './switch-configurator/SwitchConfigurator.vue'
import TableColumnsConfigurator from './table-columns-configurator/TableColumnsConfigurator.vue'
import TabsGroupConfigurator from './tabs-group-configurator/TabsGroupConfigurator.vue'
import VariableConfigurator from './variable-configurator/VariableConfigurator.vue'
+import TabBarConfigurator from './tab-bar-configurator/TabBarConfigurator.vue'
import { I18nInput, MetaCodeEditor } from '@opentiny/tiny-engine-common'
import './styles/vars.less'
@@ -65,6 +66,7 @@ export {
TableColumnsConfigurator,
TabsGroupConfigurator,
VariableConfigurator,
+ TabBarConfigurator,
MetaCodeEditor,
I18nInput as I18nConfigurator,
MetaCodeEditor as CodeConfigurator,
diff --git a/packages/configurator/src/router-select-configurator/RouterSelectConfigurator.vue b/packages/configurator/src/router-select-configurator/RouterSelectConfigurator.vue
index cabe9a936..bfecb4385 100644
--- a/packages/configurator/src/router-select-configurator/RouterSelectConfigurator.vue
+++ b/packages/configurator/src/router-select-configurator/RouterSelectConfigurator.vue
@@ -50,10 +50,10 @@ onMounted(() => {
})
const pageToTreeData = (page) => {
- const { id, name, isPage, children } = page
+ const { id, name, route, isPage, children } = page
// id 可能为数字,需要转换成字符串
- const result = { id: String(id), name, isPage, disabled: !isPage }
+ const result = { id: String(id), name, route, isPage, disabled: !isPage }
if (Array.isArray(children)) {
result.children = children.map((page) => pageToTreeData(page))
@@ -94,8 +94,22 @@ const treeFolderOp = computed(() => {
return options
})
+const treeToArray = (treeData) => {
+ let res = []
+ for (const item of treeData) {
+ const { children, ...i } = item
+ if (children && children.length) {
+ res = res.concat(treeToArray(children))
+ }
+ res.push(i)
+ }
+ return res
+}
+
const handleChange = () => {
- emit('update:modelValue', { name: state.selected })
+ const treeData = treeFolderOp?.value?.data
+ const selectedData = treeToArray(treeData)?.find((item) => item.id === state.selected) || {}
+ emit('update:modelValue', { name: state.selected, path: selectedData.route })
}
diff --git a/packages/configurator/src/styles/vars.less b/packages/configurator/src/styles/vars.less
index bae819898..d628d7fe0 100644
--- a/packages/configurator/src/styles/vars.less
+++ b/packages/configurator/src/styles/vars.less
@@ -43,4 +43,7 @@
--te-configurator-container-bg-color: var(--te-common-bg-container);
--te-configurator-container-border-color-divider: var(--te-common-border-bg-divider);
+
+ --te-configurator-tab-bar-bg-color: var(--te-common-bg-container);
+ --te-configurator-tab-bar-border-color-divider: var(--te-common-border-bg-divider);
}
diff --git a/packages/configurator/src/tab-bar-configurator/TabBarConfigurator.vue b/packages/configurator/src/tab-bar-configurator/TabBarConfigurator.vue
new file mode 100644
index 000000000..22795c4fd
--- /dev/null
+++ b/packages/configurator/src/tab-bar-configurator/TabBarConfigurator.vue
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+