diff --git a/package-lock.json b/package-lock.json
index 9366b11..ec949de 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,6 +14,7 @@
"dayjs": "^1.11.10",
"element-plus": "^2.4.4",
"lodash": "^4.17.21",
+ "mockjs": "^1.1.0",
"pinia": "^2.1.7",
"pinia-plugin-persistedstate": "^3.2.1",
"vue": "^3.3.13",
@@ -865,6 +866,14 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
+ "node_modules/commander": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
+ "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+ "engines": {
+ "node": ">=16"
+ }
+ },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -2469,6 +2478,17 @@
"resolved": "https://registry.npmjs.org/mitt/-/mitt-2.1.0.tgz",
"integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg=="
},
+ "node_modules/mockjs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mockjs/-/mockjs-1.1.0.tgz",
+ "integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==",
+ "dependencies": {
+ "commander": "*"
+ },
+ "bin": {
+ "random": "bin/random"
+ }
+ },
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
diff --git a/package.json b/package.json
index 108b260..4a9d80b 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
"dayjs": "^1.11.10",
"element-plus": "^2.4.4",
"lodash": "^4.17.21",
+ "mockjs": "^1.1.0",
"pinia": "^2.1.7",
"pinia-plugin-persistedstate": "^3.2.1",
"vue": "^3.3.13",
diff --git a/src/components/common-breadcrumb/index.vue b/src/components/common-breadcrumb/index.vue
new file mode 100644
index 0000000..5ab186b
--- /dev/null
+++ b/src/components/common-breadcrumb/index.vue
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ {{ item.menuName }}
+
+
+
+
+
diff --git a/src/components/common-form/index.vue b/src/components/common-form/index.vue
index 501cac4..4afac56 100644
--- a/src/components/common-form/index.vue
+++ b/src/components/common-form/index.vue
@@ -27,7 +27,8 @@ const props = defineProps({
default: '100px'
},
model: {
- type: Object
+ type: Object,
+ default: null
},
showButtons: {
type: Boolean,
@@ -40,10 +41,6 @@ const props = defineProps({
showReset: {
type: Boolean,
default: true
- },
- submitForm: {
- type: Function,
- default () {}
}
})
@@ -77,6 +74,8 @@ const rules = computed(() => {
return ruleResult
})
+defineEmits(['submitForm'])
+
const form = ref()
@@ -99,7 +98,7 @@ const form = ref()
{{ $t('common.label.submit') }}
diff --git a/src/components/common-icon-select/index.vue b/src/components/common-icon-select/index.vue
index cafa1b6..099c11b 100644
--- a/src/components/common-icon-select/index.vue
+++ b/src/components/common-icon-select/index.vue
@@ -113,8 +113,8 @@ const selectIcon = icon => {
-
-
+ {
-
+
@@ -164,4 +164,7 @@ const selectIcon = icon => {
.el-radio {
margin-right: 10px;
}
+.icon-area {
+ padding: 0;
+}
diff --git a/src/components/common-menu-item/index.vue b/src/components/common-menu-item/index.vue
index 2b6d580..048b20d 100644
--- a/src/components/common-menu-item/index.vue
+++ b/src/components/common-menu-item/index.vue
@@ -28,7 +28,7 @@ const props = defineProps({
required: true
},
index: {
- type: Number,
+ type: [Number, String],
required: false
}
})
@@ -65,7 +65,7 @@ const dropdownClick = menuItem => {
:key="menuItem.index||index"
:class="menuCls"
>
- {{ menuItem.splitText }}
+
{
+ >
+
+
+
+
diff --git a/src/components/common-tabs-view/index.vue b/src/components/common-tabs-view/index.vue
index 46e067c..e2f7d68 100644
--- a/src/components/common-tabs-view/index.vue
+++ b/src/components/common-tabs-view/index.vue
@@ -81,12 +81,12 @@ const onDropdownVisibleChange = (visible, tab) => {
v-for="item in tabsViewStore.historyTabs"
ref="tabItems"
:key="item.path"
- :refresh-history-tab="refreshHistoryTab"
- :remove-history-tab="removeHistoryTab"
- :remove-other-history-tabs="removeOtherHistoryTabs"
- :remove-history-tabs="removeHistoryTabs"
- :on-dropdown-visible-change="onDropdownVisibleChange"
:tab-item="item"
+ @refresh-history-tab="refreshHistoryTab"
+ @remove-other-history-tabs="removeOtherHistoryTabs"
+ @remove-history-tabs="removeHistoryTabs"
+ @on-dropdown-visible-change="onDropdownVisibleChange"
+ @remove-history-tab="removeHistoryTab"
/>
diff --git a/src/components/common-tabs-view/tabs-view-item.vue b/src/components/common-tabs-view/tabs-view-item.vue
index 290a0e7..091f3cb 100644
--- a/src/components/common-tabs-view/tabs-view-item.vue
+++ b/src/components/common-tabs-view/tabs-view-item.vue
@@ -12,29 +12,11 @@ const props = defineProps({
tabItem: {
type: Object,
required: true
- },
- removeHistoryTab: {
- type: Function,
- required: true
- },
- removeOtherHistoryTabs: {
- type: Function,
- required: true
- },
- removeHistoryTabs: {
- type: Function,
- required: true
- },
- refreshHistoryTab: {
- type: Function,
- required: true
- },
- onDropdownVisibleChange: {
- type: Function,
- required: true
}
})
+defineEmits(['removeHistoryTab', 'removeOtherHistoryTabs', 'removeHistoryTabs', 'refreshHistoryTab', 'onDropdownVisibleChange'])
+
const menuName = computed(() => {
return useMenuName(props.tabItem)
})
@@ -69,7 +51,7 @@ defineExpose({
:id="tabItem.path"
ref="dropdownRef"
trigger="contextmenu"
- @visible-change="onDropdownVisibleChange($event, tabItem)"
+ @visible-change="$emit('onDropdownVisibleChange', $event, tabItem)"
>
{{ $t('common.label.refresh') }}
{{ $t('common.label.close') }}
{{ $t('common.label.closeLeft') }}
{{ $t('common.label.closeRight') }}
{{ $t('common.label.closeOther') }}
diff --git a/src/components/index.js b/src/components/index.js
index cbee7e3..d5ea3fe 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -6,6 +6,7 @@ import CommonMenu from '@/components/common-menu/index.vue'
import CommonMenuItem from '@/components/common-menu-item/index.vue'
import CommonTabsView from '@/components/common-tabs-view/index.vue'
import CommonTable from '@/components/common-table/index.vue'
+import CommonBreadcrumb from '@/components/common-breadcrumb/index.vue'
/**
* 自定义通用组件自动注册
@@ -23,5 +24,6 @@ export default {
Vue.component('CommonMenuItem', CommonMenuItem)
Vue.component('CommonTabsView', CommonTabsView)
Vue.component('CommonTable', CommonTable)
+ Vue.component('CommonBreadcrumb', CommonBreadcrumb)
}
}
diff --git a/src/layout/TopNav.vue b/src/layout/TopNav.vue
index 0a5680f..abbbbef 100644
--- a/src/layout/TopNav.vue
+++ b/src/layout/TopNav.vue
@@ -22,7 +22,14 @@ const allMenus = computed(() => {
mode="horizontal"
:ellipsis="false"
:menus="allMenus"
- />
+ >
+
+
+
+