From d32b16ac115083d928c9f8a098fc926162dacdc2 Mon Sep 17 00:00:00 2001 From: lzq <2495532633@qq.com> Date: Thu, 4 Dec 2025 17:31:03 +0800 Subject: [PATCH] 1 --- src/common/router/index.ts | 3 +- src/components/a-icon/AIcon.tsx | 30 ++ src/components/a-icon/iconfont.css | 107 ++++++ src/components/a-icon/iconfont.ts | 181 +++++++++ src/components/a-icon/iconfont.ttf | Bin 0 -> 9832 bytes src/components/a-icon/iconfont.woff | Bin 0 -> 6692 bytes src/components/a-icon/iconfont.woff2 | Bin 0 -> 5816 bytes src/components/page/Page.vue | 3 +- src/dts/components.d.ts | 6 + src/pages/a-frame/AAside.tsx | 19 +- src/pages/a-frame/AFrame.vue | 8 +- src/pages/a-frame/aaside.module.styl | 11 + src/pages/sys/dict/DictCategory.vue | 203 ++++++++++ src/pages/sys/menus/MenuForm.vue | 119 ++++-- src/pages/sys/menus/Menus.vue | 31 +- src/pages/sys/menus/menu.d.ts | 4 +- src/pages/sys/sn-config/SnConfig.vue | 153 ++++++++ src/pages/sys/sn-config/SnConfigForm.vue | 447 ++++++++++++++++++++++ src/pages/sys/sn-config/contant.ts | 32 ++ src/pages/sys/sn-config/page.ts | 3 + src/pages/sys/sn-config/sn-config-api.ts | 28 ++ src/pages/sys/sn-config/sn-config-util.ts | 107 ++++++ src/pages/sys/sn-config/sn-config.d.ts | 158 ++++++++ 23 files changed, 1598 insertions(+), 55 deletions(-) create mode 100644 src/components/a-icon/AIcon.tsx create mode 100644 src/components/a-icon/iconfont.css create mode 100644 src/components/a-icon/iconfont.ts create mode 100644 src/components/a-icon/iconfont.ttf create mode 100644 src/components/a-icon/iconfont.woff create mode 100644 src/components/a-icon/iconfont.woff2 create mode 100644 src/pages/a-frame/aaside.module.styl create mode 100644 src/pages/sys/dict/DictCategory.vue create mode 100644 src/pages/sys/sn-config/SnConfig.vue create mode 100644 src/pages/sys/sn-config/SnConfigForm.vue create mode 100644 src/pages/sys/sn-config/contant.ts create mode 100644 src/pages/sys/sn-config/page.ts create mode 100644 src/pages/sys/sn-config/sn-config-api.ts create mode 100644 src/pages/sys/sn-config/sn-config-util.ts create mode 100644 src/pages/sys/sn-config/sn-config.d.ts diff --git a/src/common/router/index.ts b/src/common/router/index.ts index a013e0f..09998c5 100644 --- a/src/common/router/index.ts +++ b/src/common/router/index.ts @@ -76,7 +76,7 @@ router.beforeEach((to, from) => { } else { return { replace: true, - name: 'role', + path: to.fullPath, } } } @@ -109,6 +109,7 @@ export function reloadRouter() { routNames.push('menus') routNames.push('user') routNames.push('role') + routNames.push('dict') if (Colls.isEmpty(routNames)) { return false diff --git a/src/components/a-icon/AIcon.tsx b/src/components/a-icon/AIcon.tsx new file mode 100644 index 0000000..68f1a27 --- /dev/null +++ b/src/components/a-icon/AIcon.tsx @@ -0,0 +1,30 @@ +import '@/components/a-icon/iconfont.css' +import { + type IconName, + icons, +} from '@/components/a-icon/iconfont.ts' + +import { + computed, + defineComponent, +} from 'vue' + +export default defineComponent( + (props, {attrs}) => { + const prefixText = icons.css_prefix_text + const fontFamily = icons.font_family + const icon = computed(() => { + return props.name == null ? [] : [ fontFamily, prefixText + props.name ] + }) + return () => (<>) + }, + { + props: { + name: { + type: String as PropType, + required: false, + validator: (_: string) => true, + }, + }, + name: 'AIcon', + }) diff --git a/src/components/a-icon/iconfont.css b/src/components/a-icon/iconfont.css new file mode 100644 index 0000000..1c67050 --- /dev/null +++ b/src/components/a-icon/iconfont.css @@ -0,0 +1,107 @@ +@font-face { + font-family: "iconfont"; /* Project id 4985351 */ + src: url('@/components/a-icon/iconfont.woff2?t=1764810386158') format('woff2'), + url('@/components/a-icon/iconfont.woff?t=1764810386158') format('woff'), + url('@/components/a-icon/iconfont.ttf?t=1764810386158') format('truetype'); +} + +.iconfont { + font-family: "iconfont", serif !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-bianji:before { + content: "\e604"; +} + +.icon-koukuanliebiao:before { + content: "\e63b"; +} + +.icon-yuechongzhi:before { + content: "\e8f5"; +} + +.icon-shanchudingdan-mian:before { + content: "\e6d7"; +} + +.icon-quxiaodingdan:before { + content: "\e64a"; +} + +.icon-lishiguiji-lan:before { + content: "\e672"; +} + +.icon-guobangdanju:before { + content: "\e66c"; +} + +.icon-dianzixiaopiao:before { + content: "\e64d"; +} + +.icon-xiangqing:before { + content: "\e611"; +} + +.icon-guanliandanju:before { + content: "\e61d"; +} + +.icon-track:before { + content: "\e603"; +} + +.icon-guanliandanxuan:before { + content: "\e68f"; +} + +.icon-dingdanxiangqing:before { + content: "\e6bf"; +} + +.icon-tongzhi:before { + content: "\e86a"; +} + +.icon-yujingguanli:before { + content: "\e61b"; +} + +.icon-shujuguanli:before { + content: "\e70c"; +} + +.icon-jiaoseguanli:before { + content: "\e62f"; +} + +.icon-yingyongyonghuguanli:before { + content: "\e6aa"; +} + +.icon-shangpinguanli:before { + content: "\fcf3"; +} + +.icon-xitongguanli:before { + content: "\e85c"; +} + +.icon-pinleiguanli:before { + content: "\e63d"; +} + +.icon-qiyezhuce:before { + content: "\e6a1"; +} + +.icon-shenheguanli:before { + content: "\e639"; +} + diff --git a/src/components/a-icon/iconfont.ts b/src/components/a-icon/iconfont.ts new file mode 100644 index 0000000..6bce07d --- /dev/null +++ b/src/components/a-icon/iconfont.ts @@ -0,0 +1,181 @@ +export const icons = { + 'id': '4985351', + 'name': '再昇云', + 'font_family': 'iconfont', + 'css_prefix_text': 'icon-', + 'description': '', + 'glyphs': [ + { + 'icon_id': '8582929', + 'name': '编辑/修改', + 'font_class': 'bianji', + 'unicode': 'e604', + 'unicode_decimal': 58884, + }, + { + 'icon_id': '41408341', + 'name': '扣款', + 'font_class': 'koukuanliebiao', + 'unicode': 'e63b', + 'unicode_decimal': 58939, + }, + { + 'icon_id': '33376724', + 'name': '余额充值', + 'font_class': 'yuechongzhi', + 'unicode': 'e8f5', + 'unicode_decimal': 59637, + }, + { + 'icon_id': '6949389', + 'name': '删除订单;报表;清单', + 'font_class': 'shanchudingdan-mian', + 'unicode': 'e6d7', + 'unicode_decimal': 59095, + }, + { + 'icon_id': '16695459', + 'name': '取消订单', + 'font_class': 'quxiaodingdan', + 'unicode': 'e64a', + 'unicode_decimal': 58954, + }, + { + 'icon_id': '14443392', + 'name': '历史轨迹-蓝', + 'font_class': 'lishiguiji-lan', + 'unicode': 'e672', + 'unicode_decimal': 58994, + }, + { + 'icon_id': '44180887', + 'name': '过磅单据', + 'font_class': 'guobangdanju', + 'unicode': 'e66c', + 'unicode_decimal': 58988, + }, + { + 'icon_id': '26397534', + 'name': '电子小票', + 'font_class': 'dianzixiaopiao', + 'unicode': 'e64d', + 'unicode_decimal': 58957, + }, + { + 'icon_id': '12814001', + 'name': '详情', + 'font_class': 'xiangqing', + 'unicode': 'e611', + 'unicode_decimal': 58897, + }, + { + 'icon_id': '9777840', + 'name': '关联单据', + 'font_class': 'guanliandanju', + 'unicode': 'e61d', + 'unicode_decimal': 58909, + }, + { + 'icon_id': '28095045', + 'name': '准运证', + 'font_class': 'track', + 'unicode': 'e603', + 'unicode_decimal': 58883, + }, + { + 'icon_id': '18446165', + 'name': '关联单选', + 'font_class': 'guanliandanxuan', + 'unicode': 'e68f', + 'unicode_decimal': 59023, + }, + { + 'icon_id': '8725687', + 'name': '订单详情', + 'font_class': 'dingdanxiangqing', + 'unicode': 'e6bf', + 'unicode_decimal': 59071, + }, + { + 'icon_id': '23500943', + 'name': '通知', + 'font_class': 'tongzhi', + 'unicode': 'e86a', + 'unicode_decimal': 59498, + }, + { + 'icon_id': '27250248', + 'name': '预警管理', + 'font_class': 'yujingguanli', + 'unicode': 'e61b', + 'unicode_decimal': 58907, + }, + { + 'icon_id': '25301786', + 'name': '字典管理', + 'font_class': 'shujuguanli', + 'unicode': 'e70c', + 'unicode_decimal': 59148, + }, + { + 'icon_id': '3590945', + 'name': '角色管理', + 'font_class': 'jiaoseguanli', + 'unicode': 'e62f', + 'unicode_decimal': 58927, + }, + { + 'icon_id': '20853364', + 'name': '用户管理', + 'font_class': 'yingyongyonghuguanli', + 'unicode': 'e6aa', + 'unicode_decimal': 59050, + }, + { + 'icon_id': '25007161', + 'name': '品类管理', + 'font_class': 'shangpinguanli', + 'unicode': 'fcf3', + 'unicode_decimal': 64755, + }, + { + 'icon_id': '9206620', + 'name': '系统管理', + 'font_class': 'xitongguanli', + 'unicode': 'e85c', + 'unicode_decimal': 59484, + }, + { + 'icon_id': '20136570', + 'name': '菜单管理', + 'font_class': 'pinleiguanli', + 'unicode': 'e63d', + 'unicode_decimal': 58941, + }, + { + 'icon_id': '15689628', + 'name': '公司审核', + 'font_class': 'qiyezhuce', + 'unicode': 'e6a1', + 'unicode_decimal': 59041, + }, + { + 'icon_id': '5468041', + 'name': '审核管理', + 'font_class': 'shenheguanli', + 'unicode': 'e639', + 'unicode_decimal': 58937, + }, + ], +} as const + +export type IconName = (typeof icons.glyphs)[number]['font_class'] + +export interface IconGlyphs { + icon_id: string + name: string + font_class: IconName + unicode: string + unicode_decimal: number +} + diff --git a/src/components/a-icon/iconfont.ttf b/src/components/a-icon/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7688a3e2449a452b6ccf1138aa6ddb27b35efa7c GIT binary patch literal 9832 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 z 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 literal 0 HcmV?d00001 diff --git a/src/components/a-icon/iconfont.woff2 b/src/components/a-icon/iconfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2ca6850da1314b497f0ee44d88a1217fbd5aa8ea GIT binary patch literal 5816 zcmV;p7DwrKPew8T0RR9102a6a3jhEB048Vv02XNg0RR9100000000000000000000 z0000SR0d!GhD-{%EUq#EHUcCAU<)z;1Rw>3X9t4@8~7iy5fyA40D{7oi=t!=TG@Yn zK;^JXa`Q@v6frc&mmBBizL`}b+|@^S`>`#3*pLc^7zz~*$|3XBU(19B=lf8~gaF&5 zCM3`{P*zMWDpk zbWJ6#>sRwBPE0A){J*KyeCviU-GnrMMDGCtfceMf{za@3$~3zWIq7UP0J|G4vJxH&@yst6Bzc29|zc?sy0J(FORVdWX?%jKv!_09C0J4sSuTd33S2$mFx@Pt95Yo^^#^&QOw*1qtW)87= zz)CQ;z8?gjDX2WFYW2EJ@%wff+Mm=E_m%?eT}9tsJvtHHnJC6gK{V-zcB+I}fDP76 z>pUgj8+`M$|(=fCt`wY~S>N56(40x5d3 z?l(q|U%|(J;em@FMgla6q+pSZO_T@@9?2yZN0CrcK9VF54zRNaAhPOpDG*4s94-WE zIRpfWmLmp18b$)p(g8z*Rsa;lv{FEm)5-wD0<9b{l7Utm7&d72fDr|)FEApY4F-k- z+I(PmpsfT(a?mybBQa>lfe{Do7A%K?m)>$D#H+T9q*&_>3?H=bupAQpecgv708$#A z6a-@-b`IQU-1R*=sK;oj+5{YcC{ndutx-fE;vc^4+v&6@KLth2lMHGVM@nbvNIW`; zEnvVLh(Z$}EQ&&0b~GD8G|>?xgabq2(don#5tk%-;i1#xsA>V91B>}gY(yY@ePUF` z;?TuhDMyG(_#6QOF`UV4gu_O;JT{v(7Dc0@_zG0VbMpw1TSU8S%ZVixVuEpN-}jkY ziXjjqFKdX!6Bug&W>FglwKJg!#pBOBqcr8QXyljYjMwBI53n{kp0?v6o&y5`nw5>k zFa{>Z3lL)4rg4NI<{6qtNVDVVq(D?_@=;MiEUNQK+-IIgeV@Co?l>yT>bba;L>SLY zZc_`Pv$}{0$97oE(8beeRbgTbuwzVarxM}IfOn}RStwyig$BN3XHg_EX%Z8dfds=4 zm@oj~!h&vqq(&I0i=t^F)wJlYAQrhP<6@mTI);5J8@_GzF0t*iSpJ=Pi~1Zyn+ zrNDDjqFEK$vZlQvTr{VQQ^^CyXI*_e0OD;>T0{_N`B3m03?v6CfMY5L!$q0lYB(0v zbzKgzI8EfPET%`*T+^JMuF@(rGl~v^SVTeaTyTv3$D8*b98dq_ATYUexF!qHJj(*% zjtW3v#r7L`uhFy(A*kn66l>K1)&i_xrXf=$ND^on1ZWXqC3-2wyquPyYq-(8nE!{E z=YS<pRrkN^nWkCNG*9bzGzf!c(fGHqmYoy0w-Cl0K&4F5tR@y z+h?9v0p|M+`Yo;tltF|T#s~E>G;M36%R~aPNEYU%ZlF^wCi@`hq|?RuC|BC2iNYln zvq^;K05`}3jCeTL*@hjUj}G%@BKD7VFFk5!l2?PY@E*k)dGi${n*vP9{6onSU~{LvRyorqH7Mr?YmN#>o|Cp^&Sr#Z#X2wp$ z(|1_)8P$d~@S$wDdP8({!`$DixLorO*2~t0zUHy^_1xxij(CvvUNKl2uHEk{JQvLp z6cpP+Dhi!2%=1i49lJ@XrRz6f2C5Gwoan7%vI?aBUSDhT;MC3m<7{)ik1c@q(~FPp zy4?368DK{o@+V(Vl#=fmkKm0&A*!Z64zOQcv5~yjV9b@D(eRY0-D!Q=cW8T?==L~3 z+h|MG5OPpydS-v#@Ni1Z=`DyYv8H~Wm(kcdBP%!>Hz_yBhnE(7Z%KYb-K9>Bj0EfR zH=`=;lSA`l{&QiWjprsjfeJ@DfHIvwaS{LBU3IJL*X4Mv5Nor^@|V>LI&y#Q5=Z5i z-ma;1&j$v&FT_BPDF#?f8iOHvAD7w?7Ss}-rM4sKn)$~J=|sA2{(!~!I7QI~EDJZX!^Q?(0+t@f9xDwU6B%BLl!QX(jxqBN{Kk!JHr(+({W z@1KZ&pLR4;JymVqcs#`yYK@x#iB^UW$H0mkwSOP9s%?m{rq5pr^|htIwA|$iRH^sR zL+sRrcE9aFac6m+zw`Z%<4n+0tG_|3+lQM*fEe*1x>xJ}PtMjLnM3w-|GHTF=r~LK zKI^&WfEKP2gu{}SzjkyfB@eeef6{dohZqtKvJ3Ys zunIv2ttB{~3`w_TDz5VFbf=PFdTVB>EcqpOD~B^URrXg%(8JffDbtfp(K z>WCd0$eyjP+&M>^w<@eF=#86twV$ZQM4FjLAr=K{NsNxD5ryJ!C;v=0Vq%x$4{1jG z!b-UcGeA?5nOo(@pca>d=}1kvkLPmnyuMipHgJ|jKRSKVfTuHPT>P2X1aG~$bf)4m z$08a36*@SGhASD2af5e*v3Thmd*Gk&qZ5)8`%xi$mUA=R_u34459*{3?f~xvFe&d8(Qc zd{yrGK9Qm!Z}K^BiqCASXg5{*Ol?9&>+w|h%*&o5Km?EhBqR!Xd%)NxILHdZR;>-~ zMQ!Y`$J-54YYE6f#1rsxbU94qpq$kU=eQnE{2!-aZ33CXjRZW*Ol~0&z@{d+2BQXE z2xH~22HF&1j9_MR%5Wap%p>zid{QjT^}?7X;>yDVd|-o2Jt+o$DFWI6M-pTwtT|#Z zXb52Bq(mGh=&&zE2T5SeX^QRS3HyL7TG#pBc}c`rGoGmSy^}sCr_yqFSKT>PH2Y@4 z!_e$GO2+uq_xC8RMm(ZWnh8jUDl3ChOd71bCzqSqUg(cAZrr;QyYVx>L*8_%Rce!3 zP{&ricD+Pfp_Q!HiY52VNfKyda5UmHdF72Zw|Gu!(K`je`1#4PoK|%Ur;GlQH%#x+ znG4Liv78E3EBg<|FmIUgN2D)6B$^>7msINua^A`ztdl2MyA!#T$Ubu!#=5J>Y2}fx z?BRNxc?q;2txthtSSzG12p`CJroolI%6^%kdMF(=a?jyTow z4>L&gCKm#UU$x)6_~4R=&RnU*qi#gu+G^a#Z$g66hwpdEY%(>fm1XhpRC3N>&<3|ccK6F+lreb&97vrqCg(l&QT`gk@uzi8`F(}rssIvA_3e_!){+z(pYq`VW@5&1O$ z0}k>aJC+go0hX4{e5g(j*RXlldH+{5zAxCchB3t3X}Ab1)4Ke!>S#e>N2NIykBY)$ zzK-cKJSuj;bvJKe)YggJ!MsP2(?1rqbqc>0cD9LP0&^Q1YqWj*$G#jv!>AGW#&n=z zNjM&aBDp3pB1XPigNCJV;xlVR`U)9X^8$grk~n62(Kpf&e`)CmB4;U5q6}O?iiQW& zWE{Z|osH}-$erOB;yhv9ODeQQT^O)u)GFt|g(zEL(mmD_&XD6Tw7lL_Xgy zh!?~hP-fJnrPXB&iP{rbbTdB|n5#?i&2&~myJ#pQt*$N&Y{+DL*y~n%Fq@1XLusj@ z;TldDl-uZOVwBNAQPF~~!k$153W|m|UxivJCQ2)G)tfeYK||9PJGoi-1{dZQ7h|+= z?RhQi1&p4+AlAb8s~2oLTL#%6E)vPucFFxD++c$y9}OJB{|Y-;SZ%<+M0$|ji9-GW zuW#|gGdVlsbc-yj2B$Uh2VzGz%6p6Ru)}jE_?6wWYcA(v#l7;~qp<`0#%Y7AEQ^XZ zCcQh@*vOtbFd>iGqrkB%t6fVpn^npai>)+6|qH>S{WC8UFqESp9^UqUyP6uU+h4&=qWC21OzTZS{m0oxp4ZdBqFB9MC44K zV4W}IQrvt3F?tktX4#bWipqNFze`O9U%9b4QI@ojw`FoYpiQCGh;ZT^rC08Z@Vtg9 zl*MXKFK+!7DQQc@m0#f*wv3psj5wH`{wSj?09spt5gej zwfCggr6reMh6S*nkx`bebRA}#GGPI20E29hQE^eOa6rnk`!;-LW3;XMMBK3yPmklJ zR@d9+@bhmA2>oS9m~#RAs;%afC&XQWA} zq)o;`(llB$5ff!Ajmjfpfziy@=&mH{)VjngI!)vi3-MU4MD9@ZDm2JaD|>M99%aSt zoNQ@Zc!=(l`$GxB7>q$H)sz4e{j2^4$I%V!O#4Mf5vjN1F&erJ{gYunm; zF;Mn-eQLcealM5?#k218o=y|flXu4wQFUJxO%Ty;;i`XD3Qy1`yUQ2+G5k!MtAsD} z0??PejRZ);iJFq(5>29|IWw~*klEavWhekOm{)5qPL3jV`bqK0#pXyaRt-|7O=4uW zwq^#9J*G8_^ztQ1Jok(&W&6NVRlGem&QT8J{>AGjkw^g@Y21^8C7NMPNn$ps4{*B8 zmPB<%d%g359_w(#dP1z`iL=||)@3y9)2UlL45ol7`5CRA*gUh7OiSkYZDyxlN9qg! z-To`BA&43bkm;{)nk1ajykl-pc{m%%r|gZGJfn@$VJK96S~TW3(Fjr2qHAPdj8n*H z^>6^HP%JU;pfsP!b!NBnTXXR^LOwTb0s;`oPim(Op`P{1Yq_Zx-^OLSqq85p-5GtQ z3AnB8+1c&$vfJ7%^GIpioI6K*PWC#zJ2}~1uPS#^y(`JAAxVF?H)ym^q6=qi`i7D7 z*O)XCrxk-g>L-y}9WCXb>|Eskfo+_XR5r1}Uz?z&TAP`#1YtciGTD5<2;r-6xK-)M z=i)c6h55NCtpBRon);SD2Bt5z*#cr9`cyV-?NP=K)3SG$!C=hAF@FDLabQlMxvYG0 z((F!OSy}Sr&ty+|(e+7weL7z-1L_1%FxES{h?{dj58wopdD*J|yF_W7nMgM#sKh!yM@@F%Tf?NvP5QD&6(!1 z96f7--B=ra(mrBM6nnh8N!Z47ZO#cRWX0Mkw#%`snSYI&bIeXz#XjX-((p!PWYXF- z?#s5K`uD82u9gM=^J zM9Dl-jm^El#-%Vgw6WzDX!5AmwM!BMkq8w7vYQMG1PN_iVBvERB#b=;3dY`AV3XWS zaA53z3pAHE?>d;fm%T1;0ce7rbSqKJB3CluJN*Wc4Glq6{}7@=1!>CK+wcVlAr7B7 zi8dupc(5b++zbqivBU+dfu&NWsXy;=k8Y?ow& zYGH+pv!ZwR@h`_a1|w>jM3QJ0{{St Cco=yA literal 0 HcmV?d00001 diff --git a/src/components/page/Page.vue b/src/components/page/Page.vue index 18d4080..b007303 100644 --- a/src/components/page/Page.vue +++ b/src/components/page/Page.vue @@ -14,8 +14,9 @@ width 100%; overflow auto padding 16px + box-sizing border-box - box-shadow: rgba(0, 0, 0, 0.12) 0px 0px 12px 0px; + box-shadow: rgba(30, 35, 43, 0.16) 0px 2px 10px 0px; background-color: white; display flex flex-direction column diff --git a/src/dts/components.d.ts b/src/dts/components.d.ts index fde5433..ea0a151 100644 --- a/src/dts/components.d.ts +++ b/src/dts/components.d.ts @@ -17,9 +17,11 @@ declare module 'vue' { ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] + ElCollapse: typeof import('element-plus/es')['ElCollapse'] ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] ElContainer: typeof import('element-plus/es')['ElContainer'] ElDialog: typeof import('element-plus/es')['ElDialog'] + ElDivider: typeof import('element-plus/es')['ElDivider'] ElDropdown: typeof import('element-plus/es')['ElDropdown'] ElEmpty: typeof import('element-plus/es')['ElEmpty'] ElForm: typeof import('element-plus/es')['ElForm'] @@ -34,6 +36,7 @@ declare module 'vue' { ElMain: typeof import('element-plus/es')['ElMain'] ElOption: typeof import('element-plus/es')['ElOption'] ElPagination: typeof import('element-plus/es')['ElPagination'] + ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm'] ElSelect: typeof import('element-plus/es')['ElSelect'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElTable: typeof import('element-plus/es')['ElTable'] @@ -61,9 +64,11 @@ declare global { const ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup'] const ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] const ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] + const ElCollapse: typeof import('element-plus/es')['ElCollapse'] const ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] const ElContainer: typeof import('element-plus/es')['ElContainer'] const ElDialog: typeof import('element-plus/es')['ElDialog'] + const ElDivider: typeof import('element-plus/es')['ElDivider'] const ElDropdown: typeof import('element-plus/es')['ElDropdown'] const ElEmpty: typeof import('element-plus/es')['ElEmpty'] const ElForm: typeof import('element-plus/es')['ElForm'] @@ -78,6 +83,7 @@ declare global { const ElMain: typeof import('element-plus/es')['ElMain'] const ElOption: typeof import('element-plus/es')['ElOption'] const ElPagination: typeof import('element-plus/es')['ElPagination'] + const ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm'] const ElSelect: typeof import('element-plus/es')['ElSelect'] const ElSwitch: typeof import('element-plus/es')['ElSwitch'] const ElTable: typeof import('element-plus/es')['ElTable'] diff --git a/src/pages/a-frame/AAside.tsx b/src/pages/a-frame/AAside.tsx index 7f9583a..e6c7a54 100644 --- a/src/pages/a-frame/AAside.tsx +++ b/src/pages/a-frame/AAside.tsx @@ -8,6 +8,9 @@ import { type MenuItemRegistered, } from 'element-plus' import { elIcons } from '@/common/element/element.ts' +import AIcon from '@/components/a-icon/AIcon.tsx' +import type { IconName } from '@/components/a-icon/iconfont.ts' +import styles from '@/pages/a-frame/aaside.module.styl' export interface Menu extends G.TreeNode { // Id @@ -35,7 +38,7 @@ export interface Menu extends G.TreeNode { } export default defineComponent( - ({menus}, {emit}) => { + (props, {emit}) => { const onMenuClick = (it: MenuItemRegistered) => emit('menuClick', it.index) const renderMenu = (it: Menu) => { let renderChildNode: (() => VNode[] | undefined) | undefined = undefined @@ -47,7 +50,10 @@ export default defineComponent( case 'Catalog': { currentNode = ( {{ - title: () => {it.title}, + title: () => (<> + + {it.title} + ), default: renderChildNode, }} ) @@ -64,7 +70,8 @@ export default defineComponent( case 'Page': { currentNode = ( {{ - default: () => {it.title}, + title: () => {it.title}, + default: () => , }} ) break @@ -77,12 +84,12 @@ export default defineComponent( const isCollapse = ref(false) return () => (<> - + {{ - default: () => menus.map(renderMenu), + default: () => props.menus.map(renderMenu), }} - { + { isCollapse.value = !isCollapse.value }}> diff --git a/src/pages/a-frame/AFrame.vue b/src/pages/a-frame/AFrame.vue index 1198a1c..085eabc 100644 --- a/src/pages/a-frame/AFrame.vue +++ b/src/pages/a-frame/AFrame.vue @@ -70,13 +70,15 @@ onUnmounted(() => { height 100% width 100%; overflow hidden + box-shadow: inset rgba(0, 0, 0, 0.12) 0px 0px 12px 0px; + background-color #F7F9FC & > header { display flex justify-content space-between border-bottom 1px solid #E5E7EB; height 60px - + background-color white & > div:first-child { height: 100%; display: flex; @@ -109,10 +111,10 @@ onUnmounted(() => { & > main { height 100% width calc(100% - 300px) - padding 8px + padding 5px overflow auto background-color #F7F9FC - box-shadow: inset rgba(0, 0, 0, 0.12) 0px 0px 12px 0px; + //box-shadow: inset rgba(0, 0, 0, 0.12) 0px 0px 12px 0px; } } } diff --git a/src/pages/a-frame/aaside.module.styl b/src/pages/a-frame/aaside.module.styl new file mode 100644 index 0000000..4f50796 --- /dev/null +++ b/src/pages/a-frame/aaside.module.styl @@ -0,0 +1,11 @@ +.a-menus { +} + +.a-icon { + vertical-align: middle; + margin-right: 5px; + width: var(--el-menu-icon-width); + text-align: center; + font-size: 18px; + flex-shrink: 0; +} diff --git a/src/pages/sys/dict/DictCategory.vue b/src/pages/sys/dict/DictCategory.vue new file mode 100644 index 0000000..972115c --- /dev/null +++ b/src/pages/sys/dict/DictCategory.vue @@ -0,0 +1,203 @@ + + + diff --git a/src/pages/sys/menus/MenuForm.vue b/src/pages/sys/menus/MenuForm.vue index d1d5c92..965f601 100644 --- a/src/pages/sys/menus/MenuForm.vue +++ b/src/pages/sys/menus/MenuForm.vue @@ -50,30 +50,48 @@ - + - + readonly> + + @@ -86,7 +104,6 @@ style="width: 100%" /> -