diff --git a/src/components/Icon/Icon.vue b/src/components/Icon/Icon.vue index a686241..4f58752 100644 --- a/src/components/Icon/Icon.vue +++ b/src/components/Icon/Icon.vue @@ -5,7 +5,7 @@ import { Icon } from 'ant-design-vue' const IconFont = Icon.createFromIconfontCN({ - scriptUrl: '//at.alicdn.com/t/font_2024484_85344xmpzhm.js' + scriptUrl: '//at.alicdn.com/t/font_2024484_3jr9049cc2f.js' }) export default { diff --git a/src/components/select/icon.vue b/src/components/select/icon.vue new file mode 100644 index 0000000..944c729 --- /dev/null +++ b/src/components/select/icon.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/src/components/select/iconList.vue b/src/components/select/iconList.vue new file mode 100644 index 0000000..41f026a --- /dev/null +++ b/src/components/select/iconList.vue @@ -0,0 +1,29 @@ + + diff --git a/src/components/select/requireIcons.js b/src/components/select/requireIcons.js new file mode 100644 index 0000000..56edb9f --- /dev/null +++ b/src/components/select/requireIcons.js @@ -0,0 +1,10 @@ +const req = require.context('../../icons/svg', false, /\.svg$/) +const requireAll = requireContext => requireContext.keys() + +const re = /\.\/(.*)\.svg/ + +const icons = requireAll(req).map(i => { + return i.match(re)[1] +}) + +export default icons diff --git a/src/styles/index.scss b/src/styles/index.scss index 9b1f72d..c3c8b80 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -102,3 +102,49 @@ div:focus { .fade-leave-active { transition: opacity 0.5s; } +.al-icon-picker-popper.el-popover { + max-width: 100%; + padding: 4px 3px 15px 15px; +} +.al-icon-picker-popper { + .popper__arrow { + left: 35px!important; + } + .el-card { + margin: 10px 12px 0 0; + } + .el-scrollbar__wrap { + overflow-x: hidden; + margin-right: 0!important; + &::-webkit-scrollbar { + width: 0; + height: 0; + } + } + .el-scrollbar__bar.is-vertical{ + width: 6px!important; + } + .el-tabs .el-tabs__header { + margin: 0; + } + .el-card__body { + padding: 0; + } + .el-tabs .el-tabs__item { + padding: 0 12px!important; + } + .al-icon-picker-item { + display: block; + padding: 8px 0; + font-size: 20px; + text-align: center; + transition: transform .1s; + cursor: pointer; + } + .al-icon-picker-item:hover { + transform: scale(1.5); + } +} +.al-card-border { + border: 1px solid #ededed; +} diff --git a/src/styles/setting.scss b/src/styles/setting.scss index badfb73..ebdea49 100644 --- a/src/styles/setting.scss +++ b/src/styles/setting.scss @@ -31,6 +31,9 @@ a:hover { } } } +/deep/.el-dialog__headerbtn { + top: unset; +} /deep/.el-card__body { padding: 15px; } diff --git a/src/utils/iconfont-find.js b/src/utils/iconfont-find.js new file mode 100644 index 0000000..79848fd --- /dev/null +++ b/src/utils/iconfont-find.js @@ -0,0 +1,11 @@ +// 把此段代码贴到iconfont项目页面的控制台中, 以获取图标列表 + +const nodeArray = Array.from(document.querySelectorAll('.block-icon-list .icon-item .icon-code.icon-code-show')); + const iconNames = nodeArray.map(item => item.outerText.replace('icon-','')) + console.log(iconNames.slice(0,80)) +console.log(iconNames.slice(80,130)) + +export const icon = { + list: ["emoji-a", "emoji-bizui", "emoji-baiyan", "emoji-aixin", "emoji-dajing", "emoji-ziya", "emoji-daxiao", "emoji-esi", "emoji-fadai", "emoji-fankun", "emoji-ganga", "emoji-fennu", "emoji-hanyan", "emoji-jingkong", "emoji-haochi", "emoji-emo", "emoji-jingsong", "emoji-jingya", "emoji-kaixin", "emoji-lengku", "emoji-danao", "emoji-liukoushui", "emoji-liulei", "emoji-mengbi", "mianwubiaoqing", "nanguo", "shuizhuo", "taoyan", "tanchi", "siliao", "tiaopi", "xiaochulei", "wuliao", "xingxingyan", "xieyan", "xiasi", "xiaolian", "ku", "shengqi", "yousiliao", "en", "bushufu", "bianbian", "fankun1", "feiwen", "ganmao", "huaixiao", "liuhan", "outu", "keshui", "renzhe", "santiaoxian", "guaiwu", "shoushang", "tianshi", "shuai", "xianwen", "xiaodiaodaya", "xiong", "yiwen", "yun", "liubixie", "shimo", "dianzan", "biti", "fendou", "huqi", "heng", "kulou", "leng", "taoyan1", "shuixing", "aini", "aixin1", "zhadan", "xinsui", "maren", "zhutou", "qie", "youling", + "apple-fill", "attachment", "android-fill", "apple", "download", "arrow-up-circle", "arrow-right-circle", "arrow-down", "ashbin", "add", "file_music", "menu", "role", "jiaoseguanli", "yemianshezhi", "drop_down", "yuandian", "tag", "service-directory", "fabu", "wailian", "bianji-", "WEBSITE", "wangzhanguanli", "Up", "up", "fenlei", "guanlizhuanjiawenzhang", "pifu", "tuichudenglu", "shezhi", "wangzhan", "huaban", "yunshezhi", "UserSettings", "blogger", "biaoqian", "myself", "guidang", "quxiaoyulan1-copy", "yulan-copy", "quxiaoyulan1", "yulan"] +} diff --git a/src/views/setting/sys/menuManager.vue b/src/views/setting/sys/menuManager.vue index 85cf95a..2c6a5e0 100644 --- a/src/views/setting/sys/menuManager.vue +++ b/src/views/setting/sys/menuManager.vue @@ -17,8 +17,11 @@ - - + + + + + @@ -107,9 +110,11 @@ import menuApi from '@/api/menu' import TableList from "@/components/table/TableList"; import TreeSelect from "@/components/select/tree"; +import IconSelect from "@/components/select/icon"; export default { components: { + IconSelect, TreeSelect, TableList }, diff --git a/src/views/setting/sys/roleManager.vue b/src/views/setting/sys/roleManager.vue index 93aacbc..d47d5a5 100644 --- a/src/views/setting/sys/roleManager.vue +++ b/src/views/setting/sys/roleManager.vue @@ -234,11 +234,18 @@ export default { }, // 保存分配权限 saveAuth() { + + const nodeArray = Array.from(document.querySelectorAll('.block-icon-list .icon-item .icon-code.icon-code-show')); + const names = nodeArray.map(item => item.outerText) + console.log(names) + this.form.menuIds = this.$refs.authTree.getCheckedKeys() this.updateRole(this.setFormData()) }, // 分配权限 authorization(roleId) { + const req = require.context('@/icons/svg', false, /\.svg$/) + console.log(req) this.dialogAuthVisible = true const findIndex = this.dataList.findIndex(data => data.id === roleId) const role = this.dataList[findIndex]