diff --git a/src/assets/icons/404.svg b/src/assets/icons/svg/404.svg
similarity index 100%
rename from src/assets/icons/404.svg
rename to src/assets/icons/svg/404.svg
diff --git a/src/assets/icons/await.svg b/src/assets/icons/svg/await.svg
similarity index 100%
rename from src/assets/icons/await.svg
rename to src/assets/icons/svg/await.svg
diff --git a/src/assets/icons/bug.svg b/src/assets/icons/svg/bug.svg
similarity index 100%
rename from src/assets/icons/bug.svg
rename to src/assets/icons/svg/bug.svg
diff --git a/src/assets/icons/build.svg b/src/assets/icons/svg/build.svg
similarity index 100%
rename from src/assets/icons/build.svg
rename to src/assets/icons/svg/build.svg
diff --git a/src/assets/icons/button.svg b/src/assets/icons/svg/button.svg
similarity index 100%
rename from src/assets/icons/button.svg
rename to src/assets/icons/svg/button.svg
diff --git a/src/assets/icons/cascader.svg b/src/assets/icons/svg/cascader.svg
similarity index 100%
rename from src/assets/icons/cascader.svg
rename to src/assets/icons/svg/cascader.svg
diff --git a/src/assets/icons/chart.svg b/src/assets/icons/svg/chart.svg
similarity index 100%
rename from src/assets/icons/chart.svg
rename to src/assets/icons/svg/chart.svg
diff --git a/src/assets/icons/checkbox.svg b/src/assets/icons/svg/checkbox.svg
similarity index 100%
rename from src/assets/icons/checkbox.svg
rename to src/assets/icons/svg/checkbox.svg
diff --git a/src/assets/icons/clipboard.svg b/src/assets/icons/svg/clipboard.svg
similarity index 100%
rename from src/assets/icons/clipboard.svg
rename to src/assets/icons/svg/clipboard.svg
diff --git a/src/assets/icons/code.svg b/src/assets/icons/svg/code.svg
similarity index 100%
rename from src/assets/icons/code.svg
rename to src/assets/icons/svg/code.svg
diff --git a/src/assets/icons/color.svg b/src/assets/icons/svg/color.svg
similarity index 100%
rename from src/assets/icons/color.svg
rename to src/assets/icons/svg/color.svg
diff --git a/src/assets/icons/component.svg b/src/assets/icons/svg/component.svg
similarity index 100%
rename from src/assets/icons/component.svg
rename to src/assets/icons/svg/component.svg
diff --git a/src/assets/icons/dashboard.svg b/src/assets/icons/svg/dashboard.svg
similarity index 100%
rename from src/assets/icons/dashboard.svg
rename to src/assets/icons/svg/dashboard.svg
diff --git a/src/assets/icons/date-range.svg b/src/assets/icons/svg/date-range.svg
similarity index 100%
rename from src/assets/icons/date-range.svg
rename to src/assets/icons/svg/date-range.svg
diff --git a/src/assets/icons/date.svg b/src/assets/icons/svg/date.svg
similarity index 100%
rename from src/assets/icons/date.svg
rename to src/assets/icons/svg/date.svg
diff --git a/src/assets/icons/dict.svg b/src/assets/icons/svg/dict.svg
similarity index 100%
rename from src/assets/icons/dict.svg
rename to src/assets/icons/svg/dict.svg
diff --git a/src/assets/icons/documentation.svg b/src/assets/icons/svg/documentation.svg
similarity index 100%
rename from src/assets/icons/documentation.svg
rename to src/assets/icons/svg/documentation.svg
diff --git a/src/assets/icons/download.svg b/src/assets/icons/svg/download.svg
similarity index 100%
rename from src/assets/icons/download.svg
rename to src/assets/icons/svg/download.svg
diff --git a/src/assets/icons/drag.svg b/src/assets/icons/svg/drag.svg
similarity index 100%
rename from src/assets/icons/drag.svg
rename to src/assets/icons/svg/drag.svg
diff --git a/src/assets/icons/druid.svg b/src/assets/icons/svg/druid.svg
similarity index 100%
rename from src/assets/icons/druid.svg
rename to src/assets/icons/svg/druid.svg
diff --git a/src/assets/icons/edit.svg b/src/assets/icons/svg/edit.svg
similarity index 100%
rename from src/assets/icons/edit.svg
rename to src/assets/icons/svg/edit.svg
diff --git a/src/assets/icons/education.svg b/src/assets/icons/svg/education.svg
similarity index 100%
rename from src/assets/icons/education.svg
rename to src/assets/icons/svg/education.svg
diff --git a/src/assets/icons/email.svg b/src/assets/icons/svg/email.svg
similarity index 100%
rename from src/assets/icons/email.svg
rename to src/assets/icons/svg/email.svg
diff --git a/src/assets/icons/example.svg b/src/assets/icons/svg/example.svg
similarity index 100%
rename from src/assets/icons/example.svg
rename to src/assets/icons/svg/example.svg
diff --git a/src/assets/icons/excel.svg b/src/assets/icons/svg/excel.svg
similarity index 100%
rename from src/assets/icons/excel.svg
rename to src/assets/icons/svg/excel.svg
diff --git a/src/assets/icons/exit-fullscreen.svg b/src/assets/icons/svg/exit-fullscreen.svg
similarity index 100%
rename from src/assets/icons/exit-fullscreen.svg
rename to src/assets/icons/svg/exit-fullscreen.svg
diff --git a/src/assets/icons/eye-open.svg b/src/assets/icons/svg/eye-open.svg
similarity index 100%
rename from src/assets/icons/eye-open.svg
rename to src/assets/icons/svg/eye-open.svg
diff --git a/src/assets/icons/eye.svg b/src/assets/icons/svg/eye.svg
similarity index 100%
rename from src/assets/icons/eye.svg
rename to src/assets/icons/svg/eye.svg
diff --git a/src/assets/icons/form.svg b/src/assets/icons/svg/form.svg
similarity index 100%
rename from src/assets/icons/form.svg
rename to src/assets/icons/svg/form.svg
diff --git a/src/assets/icons/fullscreen.svg b/src/assets/icons/svg/fullscreen.svg
similarity index 100%
rename from src/assets/icons/fullscreen.svg
rename to src/assets/icons/svg/fullscreen.svg
diff --git a/src/assets/icons/github.svg b/src/assets/icons/svg/github.svg
similarity index 100%
rename from src/assets/icons/github.svg
rename to src/assets/icons/svg/github.svg
diff --git a/src/assets/icons/guide.svg b/src/assets/icons/svg/guide.svg
similarity index 100%
rename from src/assets/icons/guide.svg
rename to src/assets/icons/svg/guide.svg
diff --git a/src/assets/icons/icon.svg b/src/assets/icons/svg/icon.svg
similarity index 100%
rename from src/assets/icons/icon.svg
rename to src/assets/icons/svg/icon.svg
diff --git a/src/assets/icons/input.svg b/src/assets/icons/svg/input.svg
similarity index 100%
rename from src/assets/icons/input.svg
rename to src/assets/icons/svg/input.svg
diff --git a/src/assets/icons/international.svg b/src/assets/icons/svg/international.svg
similarity index 100%
rename from src/assets/icons/international.svg
rename to src/assets/icons/svg/international.svg
diff --git a/src/assets/icons/ip.svg b/src/assets/icons/svg/ip.svg
similarity index 100%
rename from src/assets/icons/ip.svg
rename to src/assets/icons/svg/ip.svg
diff --git a/src/assets/icons/job.svg b/src/assets/icons/svg/job.svg
similarity index 100%
rename from src/assets/icons/job.svg
rename to src/assets/icons/svg/job.svg
diff --git a/src/assets/icons/language.svg b/src/assets/icons/svg/language.svg
similarity index 100%
rename from src/assets/icons/language.svg
rename to src/assets/icons/svg/language.svg
diff --git a/src/assets/icons/link.svg b/src/assets/icons/svg/link.svg
similarity index 100%
rename from src/assets/icons/link.svg
rename to src/assets/icons/svg/link.svg
diff --git a/src/assets/icons/list.svg b/src/assets/icons/svg/list.svg
similarity index 100%
rename from src/assets/icons/list.svg
rename to src/assets/icons/svg/list.svg
diff --git a/src/assets/icons/lock.svg b/src/assets/icons/svg/lock.svg
similarity index 100%
rename from src/assets/icons/lock.svg
rename to src/assets/icons/svg/lock.svg
diff --git a/src/assets/icons/log.svg b/src/assets/icons/svg/log.svg
similarity index 100%
rename from src/assets/icons/log.svg
rename to src/assets/icons/svg/log.svg
diff --git a/src/assets/icons/logininfor.svg b/src/assets/icons/svg/logininfor.svg
similarity index 100%
rename from src/assets/icons/logininfor.svg
rename to src/assets/icons/svg/logininfor.svg
diff --git a/src/assets/icons/menu.svg b/src/assets/icons/svg/menu.svg
similarity index 100%
rename from src/assets/icons/menu.svg
rename to src/assets/icons/svg/menu.svg
diff --git a/src/assets/icons/message.svg b/src/assets/icons/svg/message.svg
similarity index 100%
rename from src/assets/icons/message.svg
rename to src/assets/icons/svg/message.svg
diff --git a/src/assets/icons/money.svg b/src/assets/icons/svg/money.svg
similarity index 100%
rename from src/assets/icons/money.svg
rename to src/assets/icons/svg/money.svg
diff --git a/src/assets/icons/monitor.svg b/src/assets/icons/svg/monitor.svg
similarity index 100%
rename from src/assets/icons/monitor.svg
rename to src/assets/icons/svg/monitor.svg
diff --git a/src/assets/icons/nested.svg b/src/assets/icons/svg/nested.svg
similarity index 100%
rename from src/assets/icons/nested.svg
rename to src/assets/icons/svg/nested.svg
diff --git a/src/assets/icons/nodata.svg b/src/assets/icons/svg/nodata.svg
similarity index 100%
rename from src/assets/icons/nodata.svg
rename to src/assets/icons/svg/nodata.svg
diff --git a/src/assets/icons/number.svg b/src/assets/icons/svg/number.svg
similarity index 100%
rename from src/assets/icons/number.svg
rename to src/assets/icons/svg/number.svg
diff --git a/src/assets/icons/offline.svg b/src/assets/icons/svg/offline.svg
similarity index 100%
rename from src/assets/icons/offline.svg
rename to src/assets/icons/svg/offline.svg
diff --git a/src/assets/icons/online.svg b/src/assets/icons/svg/online.svg
similarity index 100%
rename from src/assets/icons/online.svg
rename to src/assets/icons/svg/online.svg
diff --git a/src/assets/icons/password.svg b/src/assets/icons/svg/password.svg
similarity index 100%
rename from src/assets/icons/password.svg
rename to src/assets/icons/svg/password.svg
diff --git a/src/assets/icons/pdf.svg b/src/assets/icons/svg/pdf.svg
similarity index 100%
rename from src/assets/icons/pdf.svg
rename to src/assets/icons/svg/pdf.svg
diff --git a/src/assets/icons/people.svg b/src/assets/icons/svg/people.svg
similarity index 100%
rename from src/assets/icons/people.svg
rename to src/assets/icons/svg/people.svg
diff --git a/src/assets/icons/peoples.svg b/src/assets/icons/svg/peoples.svg
similarity index 100%
rename from src/assets/icons/peoples.svg
rename to src/assets/icons/svg/peoples.svg
diff --git a/src/assets/icons/perm.svg b/src/assets/icons/svg/perm.svg
similarity index 100%
rename from src/assets/icons/perm.svg
rename to src/assets/icons/svg/perm.svg
diff --git a/src/assets/icons/phone.svg b/src/assets/icons/svg/phone.svg
similarity index 100%
rename from src/assets/icons/phone.svg
rename to src/assets/icons/svg/phone.svg
diff --git a/src/assets/icons/post.svg b/src/assets/icons/svg/post.svg
similarity index 100%
rename from src/assets/icons/post.svg
rename to src/assets/icons/svg/post.svg
diff --git a/src/assets/icons/qq.svg b/src/assets/icons/svg/qq.svg
similarity index 100%
rename from src/assets/icons/qq.svg
rename to src/assets/icons/svg/qq.svg
diff --git a/src/assets/icons/question.svg b/src/assets/icons/svg/question.svg
similarity index 100%
rename from src/assets/icons/question.svg
rename to src/assets/icons/svg/question.svg
diff --git a/src/assets/icons/radio.svg b/src/assets/icons/svg/radio.svg
similarity index 100%
rename from src/assets/icons/radio.svg
rename to src/assets/icons/svg/radio.svg
diff --git a/src/assets/icons/rate.svg b/src/assets/icons/svg/rate.svg
similarity index 100%
rename from src/assets/icons/rate.svg
rename to src/assets/icons/svg/rate.svg
diff --git a/src/assets/icons/redis.svg b/src/assets/icons/svg/redis.svg
similarity index 100%
rename from src/assets/icons/redis.svg
rename to src/assets/icons/svg/redis.svg
diff --git a/src/assets/icons/route.svg b/src/assets/icons/svg/route.svg
similarity index 100%
rename from src/assets/icons/route.svg
rename to src/assets/icons/svg/route.svg
diff --git a/src/assets/icons/row.svg b/src/assets/icons/svg/row.svg
similarity index 100%
rename from src/assets/icons/row.svg
rename to src/assets/icons/svg/row.svg
diff --git a/src/assets/icons/search.svg b/src/assets/icons/svg/search.svg
similarity index 100%
rename from src/assets/icons/search.svg
rename to src/assets/icons/svg/search.svg
diff --git a/src/assets/icons/select.svg b/src/assets/icons/svg/select.svg
similarity index 100%
rename from src/assets/icons/select.svg
rename to src/assets/icons/svg/select.svg
diff --git a/src/assets/icons/server.svg b/src/assets/icons/svg/server.svg
similarity index 100%
rename from src/assets/icons/server.svg
rename to src/assets/icons/svg/server.svg
diff --git a/src/assets/icons/shopping.svg b/src/assets/icons/svg/shopping.svg
similarity index 100%
rename from src/assets/icons/shopping.svg
rename to src/assets/icons/svg/shopping.svg
diff --git a/src/assets/icons/size.svg b/src/assets/icons/svg/size.svg
similarity index 100%
rename from src/assets/icons/size.svg
rename to src/assets/icons/svg/size.svg
diff --git a/src/assets/icons/skill.svg b/src/assets/icons/svg/skill.svg
similarity index 100%
rename from src/assets/icons/skill.svg
rename to src/assets/icons/svg/skill.svg
diff --git a/src/assets/icons/slider.svg b/src/assets/icons/svg/slider.svg
similarity index 100%
rename from src/assets/icons/slider.svg
rename to src/assets/icons/svg/slider.svg
diff --git a/src/assets/icons/star.svg b/src/assets/icons/svg/star.svg
similarity index 100%
rename from src/assets/icons/star.svg
rename to src/assets/icons/svg/star.svg
diff --git a/src/assets/icons/swagger.svg b/src/assets/icons/svg/swagger.svg
similarity index 100%
rename from src/assets/icons/swagger.svg
rename to src/assets/icons/svg/swagger.svg
diff --git a/src/assets/icons/switch.svg b/src/assets/icons/svg/switch.svg
similarity index 100%
rename from src/assets/icons/switch.svg
rename to src/assets/icons/svg/switch.svg
diff --git a/src/assets/icons/system.svg b/src/assets/icons/svg/system.svg
similarity index 100%
rename from src/assets/icons/system.svg
rename to src/assets/icons/svg/system.svg
diff --git a/src/assets/icons/tab.svg b/src/assets/icons/svg/tab.svg
similarity index 100%
rename from src/assets/icons/tab.svg
rename to src/assets/icons/svg/tab.svg
diff --git a/src/assets/icons/table.svg b/src/assets/icons/svg/table.svg
similarity index 100%
rename from src/assets/icons/table.svg
rename to src/assets/icons/svg/table.svg
diff --git a/src/assets/icons/textarea.svg b/src/assets/icons/svg/textarea.svg
similarity index 100%
rename from src/assets/icons/textarea.svg
rename to src/assets/icons/svg/textarea.svg
diff --git a/src/assets/icons/theme.svg b/src/assets/icons/svg/theme.svg
similarity index 100%
rename from src/assets/icons/theme.svg
rename to src/assets/icons/svg/theme.svg
diff --git a/src/assets/icons/time-range.svg b/src/assets/icons/svg/time-range.svg
similarity index 100%
rename from src/assets/icons/time-range.svg
rename to src/assets/icons/svg/time-range.svg
diff --git a/src/assets/icons/time.svg b/src/assets/icons/svg/time.svg
similarity index 100%
rename from src/assets/icons/time.svg
rename to src/assets/icons/svg/time.svg
diff --git a/src/assets/icons/tool.svg b/src/assets/icons/svg/tool.svg
similarity index 100%
rename from src/assets/icons/tool.svg
rename to src/assets/icons/svg/tool.svg
diff --git a/src/assets/icons/tree-table.svg b/src/assets/icons/svg/tree-table.svg
similarity index 100%
rename from src/assets/icons/tree-table.svg
rename to src/assets/icons/svg/tree-table.svg
diff --git a/src/assets/icons/tree.svg b/src/assets/icons/svg/tree.svg
similarity index 100%
rename from src/assets/icons/tree.svg
rename to src/assets/icons/svg/tree.svg
diff --git a/src/assets/icons/upload.svg b/src/assets/icons/svg/upload.svg
similarity index 100%
rename from src/assets/icons/upload.svg
rename to src/assets/icons/svg/upload.svg
diff --git a/src/assets/icons/user.svg b/src/assets/icons/svg/user.svg
similarity index 100%
rename from src/assets/icons/user.svg
rename to src/assets/icons/svg/user.svg
diff --git a/src/assets/icons/validCode.svg b/src/assets/icons/svg/validCode.svg
similarity index 100%
rename from src/assets/icons/validCode.svg
rename to src/assets/icons/svg/validCode.svg
diff --git a/src/assets/icons/wechat.svg b/src/assets/icons/svg/wechat.svg
similarity index 100%
rename from src/assets/icons/wechat.svg
rename to src/assets/icons/svg/wechat.svg
diff --git a/src/assets/icons/zip.svg b/src/assets/icons/svg/zip.svg
similarity index 100%
rename from src/assets/icons/zip.svg
rename to src/assets/icons/svg/zip.svg
diff --git a/src/components/IconSelect/index.vue b/src/components/IconSelect/index.vue
new file mode 100644
index 00000000..f4618393
--- /dev/null
+++ b/src/components/IconSelect/index.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/TreeSelect/index.vue b/src/components/TreeSelect/index.vue
index 5d0087be..14039840 100644
--- a/src/components/TreeSelect/index.vue
+++ b/src/components/TreeSelect/index.vue
@@ -1,195 +1,155 @@
-
-
+
-
-
-
+
+
+
+
+
-
-
+
\ No newline at end of file
diff --git a/src/views/system/menu/components/Menu.vue b/src/views/system/menu/components/Menu.vue
index 3e9d082e..a3b9a384 100644
--- a/src/views/system/menu/components/Menu.vue
+++ b/src/views/system/menu/components/Menu.vue
@@ -83,12 +83,10 @@
:rules="state.rules"
label-width="80px">
-
@@ -115,7 +113,30 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -150,12 +171,15 @@ import {Search, Plus, Edit, Refresh, Delete} from '@element-plus/icons'
import {ElForm, ElMessage, ElMessageBox} from "element-plus";
import {defineEmits, reactive, ref, unref, onMounted, getCurrentInstance} from "vue";
-import Treeselect from 'vue3-treeselect'
-import 'vue3-treeselect/dist/vue3-treeselect.css'
import SvgIcon from '@/components/SvgIcon/index.vue';
-const emit = defineEmits(['menuClick'])
+import TreeSelect from '@/components/TreeSelect/index.vue';
+import IconSelect from '@/components/IconSelect/index.vue';
+
+const emit = defineEmits(['menuClick'])
+const showChooseIcon = ref(false);
+const iconSelectRef = ref(null);
const state = reactive({
loading: true,
// 选中ID数组
@@ -180,7 +204,7 @@ const state = reactive({
parentId: 0,
name: undefined,
visible: 1,
- icon: undefined,
+ icon: '',
sort: 1,
component: 'Layout',
path: undefined
@@ -220,7 +244,7 @@ function handleQuery() {
function loadTreeSelectMenuOptions() {
const menuOptions: any[] = []
listTreeSelectMenus().then(response => {
- const menuOption = {id: 0, label: '无', children: response.data}
+ const menuOption = {id: 0, label: '顶级菜单', children: response.data}
menuOptions.push(menuOption)
state.menuOptions = menuOptions
})
@@ -268,6 +292,7 @@ function handleUpdate(row: any) {
}
const dataForm = ref(ElForm)
+
function submitForm() {
const form = unref(dataForm)
form.validate((valid: any) => {
@@ -296,7 +321,7 @@ function resetForm() {
parentId: 0,
name: undefined,
visible: 1,
- icon: undefined,
+ icon: '',
sort: 1,
component: 'Layout',
path: undefined
@@ -323,6 +348,17 @@ function handleDelete(row: any) {
)
}
+function showSelectIcon() {
+ (iconSelectRef as any).value.reset();
+ showChooseIcon.value = true;
+}
+
+function selected(name: string) {
+ state.formData.icon = name;
+ showChooseIcon.value = false;
+}
+
+
onMounted(() => {
handleQuery()
})
diff --git a/vite.config.ts b/vite.config.ts
index ac8b645c..7f25b631 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -12,12 +12,11 @@ export default ({command, mode}: ConfigEnv): UserConfig => {
return (
{
-
plugins: [
vue(),
viteSvgIcons({
// 指定需要缓存的图标文件夹
- iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
+ iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/svg')],
// 指定symbolId格式
symbolId: 'icon-[dir]-[name]',
})