xto-fronted 0.4.67 → 0.4.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/404-BS12ujqV.js +1 -0
- package/dist/assets/404-CH5_LdtS.css +1 -0
- package/dist/assets/index-BCVrIpUE.css +1 -0
- package/dist/assets/index-CW3T5R7h.js +1 -0
- package/dist/assets/{index-DiHSZ6SJ.js → index-CivgOS-Y.js} +2 -2
- package/dist/assets/{index-D0OnMilp.js → index-Cxf-jRPo.js} +1 -1
- package/dist/assets/{index-DPkO-STg.js → index-D4u7Gmf9.js} +1 -1
- package/dist/assets/index-DB6TpRDX.js +1 -0
- package/dist/assets/index-DFi-u9k3.js +1 -0
- package/dist/assets/{xto-base-C6eqMPdO.css → xto-base-CojW9IFO.css} +1 -1
- package/dist/assets/{xto-base-C-IBqjVs.js → xto-base-_Rb31vAT.js} +1 -1
- package/dist/assets/xto-feedback-C-ESp-Y1.css +1 -0
- package/dist/assets/xto-feedback-xD2AV0I4.js +1 -0
- package/dist/assets/xto-form-CGbFA4jG.js +1 -0
- package/dist/assets/xto-navigation-BRzSCpAw.css +1 -0
- package/dist/index.html +8 -8
- package/package.json +1 -1
- package/src/components/Layout/Sidebar.vue +40 -1
- package/dist/App.vue.d.ts +0 -2
- package/dist/api/auth.d.ts +0 -8
- package/dist/api/system.d.ts +0 -16
- package/dist/api/user.d.ts +0 -13
- package/dist/assets/404-ByYjFnhI.js +0 -1
- package/dist/assets/404-sqW80Hc-.css +0 -1
- package/dist/assets/index-BBhC8PX4.js +0 -1
- package/dist/assets/index-BihVoviB.js +0 -1
- package/dist/assets/index-BrvR0Fn_.css +0 -1
- package/dist/assets/index-C4ZCZoPp.js +0 -1
- package/dist/assets/xto-feedback-B2M02fn3.js +0 -1
- package/dist/assets/xto-feedback-ByaS-C7_.css +0 -1
- package/dist/assets/xto-form-NRjKKNcY.js +0 -1
- package/dist/assets/xto-navigation-BuRQVoD8.css +0 -1
- package/dist/components/Layout/Footer.vue.d.ts +0 -2
- package/dist/components/Layout/Header.vue.d.ts +0 -5
- package/dist/components/Layout/MixTopMenu.vue.d.ts +0 -5
- package/dist/components/Layout/Sidebar.vue.d.ts +0 -11
- package/dist/components/Layout/SidebarMenuItem.vue.d.ts +0 -5
- package/dist/components/Layout/Tabs.vue.d.ts +0 -2
- package/dist/components/Layout/TopMenu.vue.d.ts +0 -5
- package/dist/components/Layout/index.vue.d.ts +0 -2
- package/dist/composables/useApp.d.ts +0 -29
- package/dist/composables/useAuth.d.ts +0 -6
- package/dist/composables/useForm.d.ts +0 -20
- package/dist/composables/useTable.d.ts +0 -29
- package/dist/directives/permission.d.ts +0 -4
- package/dist/enums/index.d.ts +0 -32
- package/dist/index-0h_oG71z.js +0 -345
- package/dist/index-1EEezXR3.js +0 -142
- package/dist/index-1EkaJDoD.js +0 -142
- package/dist/index-1VN-SSaj.js +0 -2873
- package/dist/index-23nX2t9j.js +0 -142
- package/dist/index-2RwL0s53.js +0 -142
- package/dist/index-2tvOdd6w.js +0 -372
- package/dist/index-3zeoNaqT.js +0 -345
- package/dist/index-8oCLh51t.js +0 -475
- package/dist/index-AF5JN8Up.js +0 -142
- package/dist/index-B02xiP9g.js +0 -372
- package/dist/index-B05xso4D.js +0 -345
- package/dist/index-B1VS4tRU.js +0 -475
- package/dist/index-B3_VQZ-d.js +0 -372
- package/dist/index-B3kL6i_g.js +0 -345
- package/dist/index-B4Wny0vt.js +0 -345
- package/dist/index-B5RdBQ-f.js +0 -475
- package/dist/index-B5rbuoWS.js +0 -2835
- package/dist/index-BAFpPlnI.js +0 -475
- package/dist/index-BAJakzRz.js +0 -142
- package/dist/index-BAOHlfVd.js +0 -142
- package/dist/index-BAzJWzWG.js +0 -2852
- package/dist/index-BEIxh_R3.js +0 -2982
- package/dist/index-BEWrRNps.js +0 -475
- package/dist/index-BFtKVmzo.js +0 -142
- package/dist/index-BHPrW1wN.js +0 -142
- package/dist/index-BHQIqN1E.js +0 -372
- package/dist/index-BHZ_y8lp.js +0 -2067
- package/dist/index-BHvnTk5Z.js +0 -475
- package/dist/index-BIf7CYCW.js +0 -475
- package/dist/index-BK1Y1z9_.js +0 -142
- package/dist/index-BK8qDl14.js +0 -372
- package/dist/index-BKnta6nv.js +0 -372
- package/dist/index-BLIem13z.js +0 -345
- package/dist/index-BNBv_FCu.js +0 -142
- package/dist/index-BNwtCm83.js +0 -345
- package/dist/index-BOEMA7WH.js +0 -345
- package/dist/index-BOwDukt-.js +0 -2346
- package/dist/index-BR9WVjrV.js +0 -2851
- package/dist/index-BRMkw154.js +0 -475
- package/dist/index-BRQBannD.js +0 -345
- package/dist/index-BShKtLTm.js +0 -475
- package/dist/index-BVpqTdd2.js +0 -3132
- package/dist/index-BWGQANAN.js +0 -2851
- package/dist/index-BZKw7U60.js +0 -475
- package/dist/index-BadGWG4q.js +0 -475
- package/dist/index-BbeWpCd3.js +0 -345
- package/dist/index-BeUYNx5P.js +0 -475
- package/dist/index-BgiGtxRr.js +0 -142
- package/dist/index-BhKJLk9M.js +0 -2824
- package/dist/index-BijsKQ3r.js +0 -475
- package/dist/index-BjEfspqP.js +0 -475
- package/dist/index-BjEnT8WQ.js +0 -372
- package/dist/index-BpOcz1m4.js +0 -142
- package/dist/index-BrRdLbLB.js +0 -142
- package/dist/index-BsHOXfCq.js +0 -372
- package/dist/index-Bt5ocakb.js +0 -475
- package/dist/index-BtE24Mt4.js +0 -142
- package/dist/index-BvcBQjw6.js +0 -2836
- package/dist/index-C0krZRWf.js +0 -2859
- package/dist/index-C1cKUqmA.js +0 -372
- package/dist/index-C3ANmIDM.js +0 -475
- package/dist/index-C5JrEkwD.js +0 -345
- package/dist/index-C5m4qNMQ.js +0 -2851
- package/dist/index-C69vu_ot.js +0 -3147
- package/dist/index-C6Um6eFy.js +0 -475
- package/dist/index-C75ePQYC.js +0 -372
- package/dist/index-C7wKLGhC.js +0 -142
- package/dist/index-C8DBDnxx.js +0 -2836
- package/dist/index-CAnqlIjX.js +0 -475
- package/dist/index-CB36fztK.js +0 -345
- package/dist/index-CBKo6Enz.js +0 -345
- package/dist/index-CBcuyFIa.js +0 -2326
- package/dist/index-CCxIu4ex.js +0 -372
- package/dist/index-CD1ZEMzL.js +0 -2836
- package/dist/index-CDx-6tvY.js +0 -345
- package/dist/index-CGrvOpdb.js +0 -372
- package/dist/index-CHJWNf3f.js +0 -475
- package/dist/index-CIb06BxE.js +0 -372
- package/dist/index-CLiJcB9v.js +0 -142
- package/dist/index-CNS6Ohfw.js +0 -2853
- package/dist/index-COkjB5Jm.js +0 -142
- package/dist/index-CS5h1O5W.js +0 -345
- package/dist/index-CT0deRSL.js +0 -372
- package/dist/index-CTQQBaf4.js +0 -345
- package/dist/index-CUAC0ZFB.js +0 -475
- package/dist/index-CVMV9Tfg.js +0 -142
- package/dist/index-CWOx59Vc.js +0 -142
- package/dist/index-CWdSR99B.js +0 -372
- package/dist/index-CWvOcS8Y.js +0 -345
- package/dist/index-C_8yJlf1.js +0 -475
- package/dist/index-C_MzXmh2.js +0 -2830
- package/dist/index-Cb7HXiBR.js +0 -372
- package/dist/index-CbA8oUvZ.js +0 -142
- package/dist/index-CbEIzXG9.js +0 -475
- package/dist/index-Cb_m0zz1.js +0 -475
- package/dist/index-Cc6HgGzc.js +0 -142
- package/dist/index-CcWdW9Mj.js +0 -372
- package/dist/index-CdAqkP8L.js +0 -345
- package/dist/index-CeVUHSt9.js +0 -2847
- package/dist/index-CejRpy0a.js +0 -475
- package/dist/index-Cg5wO_jJ.js +0 -372
- package/dist/index-CgZM1vHq.js +0 -372
- package/dist/index-CgofFg1D.js +0 -372
- package/dist/index-ChheXGDK.js +0 -372
- package/dist/index-ChuFHoI0.js +0 -372
- package/dist/index-CiOJZ6_b.js +0 -372
- package/dist/index-ClCWmz_7.js +0 -2844
- package/dist/index-CmajGrKA.js +0 -142
- package/dist/index-Cn_4o3fi.js +0 -345
- package/dist/index-CoJBI1vE.js +0 -345
- package/dist/index-CqLLaQ-P.js +0 -372
- package/dist/index-CsRhLwmR.js +0 -475
- package/dist/index-CttJvDTG.js +0 -475
- package/dist/index-Cu3m9UeX.js +0 -345
- package/dist/index-CyQbOMHa.js +0 -2859
- package/dist/index-D-NcbLKL.js +0 -345
- package/dist/index-D0gstkiI.js +0 -2836
- package/dist/index-D0krzDtx.js +0 -475
- package/dist/index-D1moFd4V.js +0 -372
- package/dist/index-D2Hs4bZj.js +0 -345
- package/dist/index-D4QhrTZs.js +0 -475
- package/dist/index-D6CC02F-.js +0 -372
- package/dist/index-D6s7Za5s.js +0 -142
- package/dist/index-D7i5bck2.js +0 -3132
- package/dist/index-D8YBeNfn.js +0 -345
- package/dist/index-D93bv6lU.js +0 -372
- package/dist/index-DAX_bFj5.js +0 -142
- package/dist/index-DBii9cjr.js +0 -475
- package/dist/index-DBzpSkNi.js +0 -345
- package/dist/index-DCuKNBck.js +0 -3153
- package/dist/index-DE3uKf0K.js +0 -142
- package/dist/index-DGAqp0QX.js +0 -372
- package/dist/index-DGh_w_v1.js +0 -475
- package/dist/index-DItKvJyI.js +0 -475
- package/dist/index-DKAyB0fv.js +0 -345
- package/dist/index-DKN4xsXi.js +0 -2851
- package/dist/index-DN_iIn8V.js +0 -345
- package/dist/index-DONIBpuJ.js +0 -345
- package/dist/index-DPDK8Ht4.js +0 -2851
- package/dist/index-DPr3ldST.js +0 -2354
- package/dist/index-DS1wfdxM.js +0 -142
- package/dist/index-DUW5cCh8.js +0 -372
- package/dist/index-DUv28uVd.js +0 -142
- package/dist/index-DVS-5SZn.js +0 -475
- package/dist/index-DWI51JAp.js +0 -372
- package/dist/index-DWVmEexu.js +0 -475
- package/dist/index-DXf9wUqQ.js +0 -142
- package/dist/index-DXmB-sjP.js +0 -345
- package/dist/index-DY_e_Dxv.js +0 -372
- package/dist/index-DZar-us7.js +0 -142
- package/dist/index-D_nwqVrw.js +0 -2847
- package/dist/index-DbEeir7h.js +0 -2834
- package/dist/index-Dbf5ypbh.js +0 -142
- package/dist/index-DcSK-2pt.js +0 -345
- package/dist/index-DclK-Mc7.js +0 -2864
- package/dist/index-DcnzaxVi.js +0 -142
- package/dist/index-Dd8PlF0M.js +0 -2857
- package/dist/index-DdkVT39s.js +0 -345
- package/dist/index-DeLbU1t-.js +0 -345
- package/dist/index-DfV_J8Te.js +0 -345
- package/dist/index-DgPnNd8U.js +0 -475
- package/dist/index-Dg_JLa7s.js +0 -345
- package/dist/index-Di2VPQjn.js +0 -345
- package/dist/index-DibHUbqc.js +0 -372
- package/dist/index-DjCVSrpw.js +0 -475
- package/dist/index-Djdb936p.js +0 -142
- package/dist/index-DmFL_GSt.js +0 -142
- package/dist/index-DmP4X2k0.js +0 -372
- package/dist/index-DmtmRd1r.js +0 -372
- package/dist/index-Dn8MA3kh.js +0 -475
- package/dist/index-Do7uXDSi.js +0 -2071
- package/dist/index-Dpv1M9Hu.js +0 -372
- package/dist/index-DqUuZC8f.js +0 -372
- package/dist/index-DtEXQIjn.js +0 -372
- package/dist/index-Dtw-qZ0V.js +0 -372
- package/dist/index-Dv3hIz8H.js +0 -345
- package/dist/index-Dv9jnaWp.js +0 -345
- package/dist/index-Dw8KZwGJ.js +0 -2354
- package/dist/index-DwJILh-Q.js +0 -3149
- package/dist/index-DwzGV3B9.js +0 -142
- package/dist/index-DyybaRkK.js +0 -345
- package/dist/index-DzerABZq.js +0 -372
- package/dist/index-F53NVkhc.js +0 -142
- package/dist/index-Fl0_k4XF.js +0 -475
- package/dist/index-HMYRCPrs.js +0 -2326
- package/dist/index-I49wpmT-.js +0 -372
- package/dist/index-IPv1O8Zq.js +0 -345
- package/dist/index-JLqnaery.js +0 -372
- package/dist/index-JRCQ1CYj.js +0 -142
- package/dist/index-L86-iO8O.js +0 -345
- package/dist/index-Q56EoFor.js +0 -142
- package/dist/index-QxKMr6p0.js +0 -2829
- package/dist/index-THRvW9Xm.js +0 -2856
- package/dist/index-WIUmTlfL.js +0 -345
- package/dist/index-WRrsK0pR.js +0 -475
- package/dist/index-Wq652QGf.js +0 -2836
- package/dist/index-YnSLCdjP.js +0 -475
- package/dist/index-Ynf0lvBE.js +0 -142
- package/dist/index-_OtTmb9i.js +0 -142
- package/dist/index-_oqoy_3D.js +0 -142
- package/dist/index-cl4Y-BWw.js +0 -475
- package/dist/index-d_eHJkDW.js +0 -475
- package/dist/index-dnmEyUWB.js +0 -372
- package/dist/index-dz6CwD6A.js +0 -142
- package/dist/index-g4rkaRry.js +0 -475
- package/dist/index-g9bRMdAX.js +0 -142
- package/dist/index-h4z4-a2p.js +0 -2852
- package/dist/index-h7BhcQYM.js +0 -475
- package/dist/index-hI3qofTF.js +0 -345
- package/dist/index-iyQQumAA.js +0 -372
- package/dist/index-js_OhKON.js +0 -345
- package/dist/index-kgb4MdHr.js +0 -475
- package/dist/index-logKl0VM.js +0 -3144
- package/dist/index-lrFMrOlR.js +0 -3132
- package/dist/index-mEHxtQWj.js +0 -372
- package/dist/index-mNm1BV3n.js +0 -2857
- package/dist/index-oOzAFXfr.js +0 -142
- package/dist/index-s3vGq0ro.js +0 -345
- package/dist/index-wt7AbUqc.js +0 -2342
- package/dist/index.d.ts +0 -54
- package/dist/index.es.js +0 -91
- package/dist/index.umd.js +0 -1
- package/dist/main.d.ts +0 -0
- package/dist/router/dynamicRoutes.d.ts +0 -30
- package/dist/router/guards.d.ts +0 -17
- package/dist/router/index.d.ts +0 -6
- package/dist/router/layoutRoute.d.ts +0 -18
- package/dist/router/staticRoutes.d.ts +0 -2
- package/dist/stores/app.d.ts +0 -93
- package/dist/stores/auth.d.ts +0 -41
- package/dist/stores/index.d.ts +0 -9
- package/dist/stores/menu.d.ts +0 -77
- package/dist/stores/user.d.ts +0 -92
- package/dist/style.css +0 -1
- package/dist/utils/auth.d.ts +0 -27
- package/dist/utils/config.d.ts +0 -30
- package/dist/utils/permission.d.ts +0 -18
- package/dist/utils/request.d.ts +0 -24
- package/dist/utils/storage.d.ts +0 -24
- package/dist/views/dashboard/index.vue.d.ts +0 -2
- package/dist/views/error/403.vue.d.ts +0 -2
- package/dist/views/error/404.vue.d.ts +0 -2
- package/dist/views/login/index.vue.d.ts +0 -4
- package/dist/views/system/menu/index.vue.d.ts +0 -4
- package/dist/views/system/role/index.vue.d.ts +0 -4
- package/dist/views/system/user/index.vue.d.ts +0 -4
- /package/dist/assets/{xto-navigation-qLRTxo68.js → xto-navigation-CvGQ2s27.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.x-modal{position:relative;margin:0 auto 20px;background-color:var(--bg-color, #fff);border-radius:8px;box-shadow:0 2px 12px #00000026;max-height:43vh;display:flex;flex-direction:column}.x-modal__wrapper{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:2000;display:flex;justify-content:center}.x-modal__header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--color-border-lighter, #e8e8e8);flex-shrink:0}.x-modal__title{font-size:15px;font-weight:500;color:var(--color-text-primary, #303133)}.x-modal__close{background:none;border:none;font-size:16px;color:var(--color-text-secondary, #909399);cursor:pointer}.x-modal__close:hover{color:var(--color-primary, #409eff)}.x-modal__body{padding:16px;color:var(--color-text-regular, #606266);font-size:14px;overflow-y:auto;flex:1}.x-modal__footer{padding:10px 16px 14px;text-align:right;flex-shrink:0}.x-modal-fade-enter-active,.x-modal-fade-leave-active{transition:opacity .3s ease}.x-modal-fade-enter-from,.x-modal-fade-leave-to{opacity:0}.x-drawer__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080}.x-drawer__overlay--no-modal{background-color:transparent}.x-drawer{position:fixed;top:0;right:0;background-color:var(--bg-color, #fff);box-shadow:0 8px 10px -5px #0003;transition:transform .3s}.x-drawer--ltr{top:0;right:auto;left:0}.x-drawer--rtl{top:0;right:0;left:auto}.x-drawer--ttb{top:0;left:0;right:auto}.x-drawer--btt{bottom:0;top:auto;left:0;right:auto}.x-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-lighter, #e8e8e8)}.x-drawer__title{font-size:18px;font-weight:500;color:var(--color-text-primary, #303133)}.x-drawer__close{background:none;border:none;font-size:20px;color:var(--color-text-secondary, #909399);cursor:pointer}.x-drawer__close:hover{color:var(--color-primary, #409eff)}.x-drawer__body{padding:20px;height:calc(100% - 60px);overflow-y:auto}.x-drawer__body--has-footer{height:calc(100% - 120px)}.x-drawer__footer{padding:16px 20px;border-top:1px solid var(--color-border-lighter, #e8e8e8);text-align:right}.x-drawer-fade-enter-active,.x-drawer-fade-leave-active{transition:opacity .3s}.x-drawer-fade-enter-active .x-drawer,.x-drawer-fade-leave-active .x-drawer{transition:transform .3s}.x-drawer-fade-enter-from,.x-drawer-fade-leave-to{opacity:0}.x-drawer-fade-enter-from .x-drawer--ltr,.x-drawer-fade-leave-to .x-drawer--ltr{transform:translate(-100%)}.x-drawer-fade-enter-from .x-drawer--rtl,.x-drawer-fade-leave-to .x-drawer--rtl{transform:translate(100%)}.x-drawer-fade-enter-from .x-drawer--ttb,.x-drawer-fade-leave-to .x-drawer--ttb{transform:translateY(-100%)}.x-drawer-fade-enter-from .x-drawer--btt,.x-drawer-fade-leave-to .x-drawer--btt{transform:translateY(100%)}.drawer-form__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:2000}.drawer-form{position:fixed;top:0;right:0;height:100%;background-color:var(--bg-color, #fff);box-shadow:0 8px 10px -5px #0003;display:flex;flex-direction:column}.drawer-form__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-lighter, #ebeef5)}.drawer-form__title{font-size:16px;font-weight:600;color:var(--color-text-primary, #303133)}.drawer-form__close{background:none;border:none;font-size:18px;color:var(--color-text-secondary, #909399);cursor:pointer}.drawer-form__close:hover{color:var(--color-primary, #409eff)}.drawer-form__body{flex:1;padding:20px;overflow-y:auto}.drawer-form__form{display:flex;flex-direction:column;gap:16px}.drawer-form__field{display:flex;flex-direction:column;gap:8px}.drawer-form__label{font-size:14px;color:var(--color-text-regular, #606266)}.drawer-form__label .required-mark{color:var(--color-danger, #f56c6c);margin-left:4px}.drawer-form__input,.drawer-form__textarea,.drawer-form__select{padding:8px 12px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:14px;outline:none;transition:border-color .2s}.drawer-form__input:focus,.drawer-form__textarea:focus,.drawer-form__select:focus{border-color:var(--color-primary, #409eff)}.drawer-form__input:disabled,.drawer-form__textarea:disabled,.drawer-form__select:disabled{background:var(--color-fill-light, #f5f7fa);cursor:not-allowed}.drawer-form__input.has-error,.drawer-form__textarea.has-error,.drawer-form__select.has-error{border-color:var(--color-danger, #f56c6c)}.drawer-form__textarea{resize:vertical;min-height:80px}.drawer-form__select{cursor:pointer}.drawer-form__switch .switch-btn{padding:8px 16px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;background:var(--color-fill-light, #f5f7fa);color:var(--color-text-regular, #606266);cursor:pointer}.drawer-form__switch .switch-btn.is-on{background:var(--color-primary, #409eff);color:#fff;border-color:var(--color-primary, #409eff)}.drawer-form__switch .switch-btn:disabled{opacity:.5;cursor:not-allowed}.drawer-form__error{font-size:12px;color:var(--color-danger, #f56c6c)}.drawer-form__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--color-border-lighter, #ebeef5)}.drawer-form__cancel{padding:8px 16px;background:var(--bg-color, #fff);border:1px solid var(--color-border, #dcdfe6);border-radius:4px;color:var(--color-text-regular, #606266);font-size:14px;cursor:pointer}.drawer-form__cancel:hover{color:var(--color-primary, #409eff);border-color:var(--color-primary, #409eff)}.drawer-form__confirm{padding:8px 16px;background:var(--color-primary, #409eff);border:none;border-radius:4px;color:#fff;font-size:14px;cursor:pointer}.drawer-form__confirm:hover{background:var(--color-primary-light, #79bbff)}.drawer-form-fade-enter-active,.drawer-form-fade-leave-active{transition:opacity .3s}.drawer-form-fade-enter-active .drawer-form,.drawer-form-fade-leave-active .drawer-form{transition:transform .3s}.drawer-form-fade-enter-from,.drawer-form-fade-leave-to{opacity:0}.drawer-form-fade-enter-from .drawer-form,.drawer-form-fade-leave-to .drawer-form{transform:translate(100%)}.x-alert{position:relative;padding:12px 16px;margin-bottom:16px;border-radius:4px;display:flex;align-items:flex-start;transition:opacity .3s}.x-alert--success{background-color:#e1f3d8;color:#67c23a}.x-alert--success .x-alert__icon{color:#67c23a}.x-alert--warning{background-color:#fdf6ec;color:#e6a23c}.x-alert--warning .x-alert__icon{color:#e6a23c}.x-alert--error{background-color:#fef0f0;color:#f56c6c}.x-alert--error .x-alert__icon{color:#f56c6c}.x-alert--info{background-color:#f4f4f5;color:#909399}.x-alert--info .x-alert__icon{color:#909399}.x-alert.is-center{justify-content:center;text-align:center}.x-alert.is-with-description{padding:14px 16px}.x-alert.is-with-description .x-alert__title{font-weight:500;font-size:16px}.x-alert__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:10px;font-size:16px}.x-alert__content{flex:1}.x-alert__title{display:block;font-size:14px;font-weight:500}.x-alert__description{display:block;font-size:14px;margin-top:6px;opacity:.8}.x-alert__close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;font-size:14px;opacity:.6}.x-alert__close:hover{opacity:1}.x-alert-fade-enter-active,.x-alert-fade-leave-active{transition:opacity .2s ease}.x-alert-fade-enter-from,.x-alert-fade-leave-to{opacity:0}.x-tooltip{padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;max-width:300px;word-wrap:break-word;position:fixed}.x-tooltip--dark{background-color:#303133;color:#fff;box-shadow:0 2px 8px #00000026}.x-tooltip--dark .x-tooltip__arrow--top{border-top-color:#303133}.x-tooltip--dark .x-tooltip__arrow--bottom{border-bottom-color:#303133}.x-tooltip--dark .x-tooltip__arrow--left{border-left-color:#303133}.x-tooltip--dark .x-tooltip__arrow--right{border-right-color:#303133}.x-tooltip--light{background-color:#fff;color:#303133;box-shadow:0 2px 12px #0000001f}.x-tooltip--light .x-tooltip__arrow--top{border-top-color:#fff}.x-tooltip--light .x-tooltip__arrow--bottom{border-bottom-color:#fff}.x-tooltip--light .x-tooltip__arrow--left{border-left-color:#fff}.x-tooltip--light .x-tooltip__arrow--right{border-right-color:#fff}.x-tooltip__wrapper,.x-tooltip__trigger{display:inline-block}.x-tooltip__arrow{position:absolute;width:0;height:0;border:6px solid transparent}.x-tooltip__arrow--top{bottom:-12px;left:50%;transform:translate(-50%);border-bottom:none}.x-tooltip__arrow--bottom{top:-12px;left:50%;transform:translate(-50%);border-top:none}.x-tooltip__arrow--left{right:-12px;top:50%;transform:translateY(-50%);border-right:none}.x-tooltip__arrow--right{left:-12px;top:50%;transform:translateY(-50%);border-left:none}.x-tooltip-fade-enter-active,.x-tooltip-fade-leave-active{transition:opacity .2s ease,transform .2s ease}.x-tooltip-fade-enter-from,.x-tooltip-fade-leave-to{opacity:0;transform:scale(.9)}.x-popconfirm-wrapper,.x-popconfirm-trigger{display:inline-block}.x-popconfirm{background:#fff;border-radius:4px;box-shadow:0 2px 12px #0000001a;padding:12px 16px;box-sizing:border-box}.x-popconfirm__arrow{position:absolute;width:12px;height:12px;background:#fff;box-shadow:-1px -1px 2px #0000000d}.x-popconfirm__main{display:flex;align-items:flex-start;margin-bottom:12px}.x-popconfirm__icon{display:flex;align-items:center;justify-content:center;font-size:16px;margin-right:8px;flex-shrink:0}.x-popconfirm__title{font-size:14px;color:#606266;line-height:1.4}.x-popconfirm__action{display:flex;justify-content:flex-end;gap:8px}.x-popconfirm-fade-enter-active,.x-popconfirm-fade-leave-active{transition:opacity .2s,transform .2s}.x-popconfirm-fade-enter-from,.x-popconfirm-fade-leave-to{opacity:0;transform:scale(.9)}.x-backtop{position:fixed;width:40px;height:40px;border-radius:4px;background-color:#fff;box-shadow:0 2px 8px #0000001f;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;z-index:1000}.x-backtop:hover{background-color:#f5f5f5;box-shadow:0 4px 12px #00000026}.x-backtop:active{transform:scale(.95)}.x-backtop__icon{font-size:20px;color:#606266;font-weight:700}.x-fade-enter-active,.x-fade-leave-active{transition:opacity .3s,transform .3s}.x-fade-enter-from,.x-fade-leave-to{opacity:0;transform:translateY(20px)}.x-timeline{margin:0;padding:0;list-style:none}.x-timeline .x-timeline-item{position:relative;padding-bottom:20px}.x-timeline .x-timeline-item:last-child{padding-bottom:0}.x-timeline-item{position:relative;padding-bottom:20px}.x-timeline-item:last-child{padding-bottom:0}.x-timeline-item:last-child .x-timeline-item__tail{display:none}.x-timeline-item__tail{position:absolute;left:4px;top:0;height:100%;border-left:2px solid var(--color-border-lighter, #e4e7ed)}.x-timeline-item__node{position:absolute;left:0;top:0;width:10px;height:10px;border-radius:50%;background-color:var(--color-primary, #409eff)}.x-timeline-item__node--primary{background-color:var(--color-primary, #409eff)}.x-timeline-item__node--success{background-color:var(--color-success, #67c23a)}.x-timeline-item__node--warning{background-color:var(--color-warning, #e6a23c)}.x-timeline-item__node--danger{background-color:var(--color-danger, #f56c6c)}.x-timeline-item__node--info{background-color:var(--color-info, #909399)}.x-timeline-item__node.is-hollow{background-color:transparent;border:2px solid currentColor}.x-timeline-item__icon{display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff}.x-timeline-item__wrapper{position:relative;padding-left:20px;top:-3px}.x-timeline-item__content{color:var(--color-text-primary, #303133);font-size:14px}.x-timeline-item__timestamp{color:var(--color-text-secondary, #909399);font-size:12px;line-height:1}.x-timeline-item--top .x-timeline-item__timestamp{margin-bottom:8px}.x-timeline-item--bottom .x-timeline-item__timestamp{margin-top:8px}.x-timeline-item--large .x-timeline-item__node{width:14px;height:14px}.x-timeline-item--large .x-timeline-item__tail{left:6px}.x-timeline-item--large .x-timeline-item__wrapper{padding-left:24px}.x-message{position:fixed;left:50%;top:20px;transform:translate(-50%);display:flex;align-items:center;padding:12px 16px;border-radius:4px;box-shadow:0 2px 12px #0000001a;transition:opacity .3s,transform .3s,top .3s;min-width:280px;max-width:480px}.x-message--success{background-color:#f0f9eb;border:1px solid #67c23a}.x-message--success .x-message__icon{color:#67c23a}.x-message--warning{background-color:#fdf6ec;border:1px solid #e6a23c}.x-message--warning .x-message__icon{color:#e6a23c}.x-message--error{background-color:#fef0f0;border:1px solid #f56c6c}.x-message--error .x-message__icon{color:#f56c6c}.x-message--info{background-color:#f4f4f5;border:1px solid #909399}.x-message--info .x-message__icon{color:#909399}.x-message.is-center{justify-content:center;text-align:center}.x-message.is-closable{padding-right:40px}.x-message__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:10px;font-size:16px;flex-shrink:0}.x-message__content{flex:1;font-size:14px;color:#606266;line-height:1.4;word-break:break-word}.x-message__close{position:absolute;top:50%;right:12px;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:14px;color:#909399;padding:0}.x-message__close:hover{color:#606266}.x-message-fade-enter-active,.x-message-fade-leave-active{transition:opacity .3s,transform .3s}.x-message-fade-enter-from,.x-message-fade-leave-to{opacity:0;transform:translate(-50%) translateY(-100%)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as H,w as X,o as _,f as G,B as P,C as R,c as T,a as E,n as C,u as k,r as I,g as $,h as L,A as J,b as V,T as K,E as Q,e as S,k as z,j as ne,s as se,i as M,x as le,D as ae,I as ie,J as Y,K as m,G as q}from"./vue-vendor-Br-l7wbK.js";import{O as re,G as ee,f as ce}from"./xto-core-DZK7Cyg0.js";const Ve=H({name:"XModal",inheritAttrs:!1,__name:"index",props:{modelValue:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},title:{default:""},width:{default:"50%"},top:{default:"15vh"},modal:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},center:{type:Boolean,default:!1},destroyOnClose:{type:Boolean,default:!1}},emits:["update:modelValue","update:open","close","open","ok","cancel"],setup(e,{emit:l}){const t=e,r=l,n=ee("modal"),{next:f}=ce(),g=z(f()),h=S({get:()=>t.modelValue!==void 0?t.modelValue:t.open!==void 0?t.open:!1,set:x=>{r("update:modelValue",x),r("update:open",x)}}),c=z(),a=()=>{h.value=!1,r("cancel"),r("close")},u=()=>{r("ok")},i=()=>{t.closeOnClickModal&&t.modal&&a()};re(()=>{t.closeOnPressEscape&&h.value&&a()}),X(()=>[t.modelValue,t.open],([x,d])=>{(x!==void 0?x:d)&&(g.value=f(),r("open"))},{immediate:!0});const p=S(()=>({paddingTop:t.top})),b=S(()=>({width:typeof t.width=="number"?`${t.width}px`:t.width,zIndex:g.value}));return(x,d)=>{const v=ne("x-button");return _(),G(Q,{to:"body"},[P(K,{name:"x-modal-fade"},{default:R(()=>[h.value?(_(),T("div",{key:0,class:C(k(n).e("wrapper")),style:V(p.value),onClick:i},[E("div",{ref_key:"modalRef",ref:c,class:C(k(n).b()),style:V(b.value),onClick:d[0]||(d[0]=J(()=>{},["stop"]))},[E("div",{class:C(k(n).e("header"))},[E("span",{class:C(k(n).e("title"))},[I(x.$slots,"title",{},()=>[L(M(e.title),1)])],2),e.showClose?(_(),T("button",{key:0,class:C(k(n).e("close")),onClick:a}," ✕ ",2)):$("",!0)],2),E("div",{class:C(k(n).e("body"))},[I(x.$slots,"default")],2),x.$slots.footer?(_(),T("div",{key:0,class:C(k(n).e("footer"))},[I(x.$slots,"footer",{ok:u,cancel:a})],2)):x.$slots.footer?$("",!0):(_(),T("div",{key:1,class:C(k(n).e("footer"))},[P(v,{onClick:a},{default:R(()=>[...d[1]||(d[1]=[L("取消",-1)])]),_:1}),P(v,{type:"primary",style:{"margin-left":"8px"},onClick:u},{default:R(()=>[...d[2]||(d[2]=[L("确定",-1)])]),_:1})],2))],6)],6)):$("",!0)]),_:3})])}}}),Me=H({name:"XDrawer",inheritAttrs:!1,__name:"index",props:{modelValue:{type:Boolean,default:!1},title:{default:""},placement:{default:void 0},direction:{default:"rtl"},width:{default:void 0},size:{default:"30%"},withHeader:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!1},modal:{type:Boolean,default:!0}},emits:["update:modelValue","close","open"],setup(e,{emit:l}){const t=e,r=l,n=ee("drawer"),f=z(2e3),g=()=>{r("update:modelValue",!1),r("close")},h=()=>{t.closeOnClickModal&&g()},c=i=>{i.key==="Escape"&&t.modelValue&&g()};X(()=>t.modelValue,i=>{i?(f.value=2e3+Math.floor(Math.random()*100),r("open"),document.addEventListener("keydown",c)):document.removeEventListener("keydown",c)});const a=S(()=>({zIndex:f.value})),u=S(()=>{const i=t.direction??t.placement??"rtl",p=t.size??t.width??"30%",b=typeof p=="number"?`${p}px`:p;return{ltr:{width:b,height:"100%"},rtl:{width:b,height:"100%"},ttb:{width:"100%",height:b},btt:{width:"100%",height:b}}[i]});return(i,p)=>(_(),G(Q,{to:"body"},[P(K,{name:"x-drawer-fade"},{default:R(()=>[le(E("div",{class:C([k(n).e("overlay"),{[k(n).em("overlay","no-modal")]:!e.modal}]),style:V(a.value),onClick:h},[E("div",{class:C([k(n).b(),k(n).m(e.direction??e.placement??"rtl")]),style:V(u.value),onClick:p[0]||(p[0]=J(()=>{},["stop"]))},[e.withHeader?(_(),T("div",{key:0,class:C(k(n).e("header"))},[E("span",{class:C(k(n).e("title"))},[I(i.$slots,"title",{},()=>[L(M(e.title),1)])],2),e.showClose?(_(),T("button",{key:0,class:C(k(n).e("close")),onClick:g}," ✕ ",2)):$("",!0)],2)):$("",!0),E("div",{class:C([k(n).e("body"),i.$slots.footer&&k(n).em("body","has-footer")])},[I(i.$slots,"default")],2),i.$slots.footer?(_(),T("div",{key:1,class:C(k(n).e("footer"))},[I(i.$slots,"footer")],2)):$("",!0)],6)],6),[[ae,e.modelValue]])]),_:3})]))}}),de={class:"x-popconfirm-wrapper"},ue={class:"x-popconfirm__main"},pe={class:"x-popconfirm__title"},fe={class:"x-popconfirm__action"},Le=H({name:"XPopconfirm",__name:"index",props:{title:{default:""},confirmButtonText:{default:"确定"},cancelButtonText:{default:"取消"},confirmButtonType:{default:"primary"},cancelButtonType:{default:"default"},icon:{default:""},iconColor:{default:"#faad14"},hideIcon:{type:Boolean,default:!1},hideCancelButton:{type:Boolean,default:!1},hideConfirmButton:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},width:{default:200},placement:{default:"top"},offset:{default:12},showArrow:{type:Boolean,default:!0}},emits:["confirm","cancel"],setup(e,{emit:l}){const t=e,r=l,n=z(!1),f=z(null),g=z(null),h=z({}),c=()=>{if(!f.value||!g.value)return;const o=f.value.getBoundingClientRect(),s=g.value.getBoundingClientRect(),j=t.placement,B=t.offset;let y=0,w=0;switch(j){case"top":y=o.top-s.height-B,w=o.left+(o.width-s.width)/2;break;case"top-start":y=o.top-s.height-B,w=o.left;break;case"top-end":y=o.top-s.height-B,w=o.right-s.width;break;case"bottom":y=o.bottom+B,w=o.left+(o.width-s.width)/2;break;case"bottom-start":y=o.bottom+B,w=o.left;break;case"bottom-end":y=o.bottom+B,w=o.right-s.width;break;case"left":y=o.top+(o.height-s.height)/2,w=o.left-s.width-B;break;case"left-start":y=o.top,w=o.left-s.width-B;break;case"left-end":y=o.bottom-s.height,w=o.left-s.width-B;break;case"right":y=o.top+(o.height-s.height)/2,w=o.right+B;break;case"right-start":y=o.top,w=o.right+B;break;case"right-end":y=o.bottom-s.height,w=o.right+B;break;default:y=o.top-s.height-B,w=o.left+(o.width-s.width)/2}const F=window.innerWidth,Z=window.innerHeight;w<0&&(w=10),w+s.width>F&&(w=F-s.width-10),y<0&&(y=10),y+s.height>Z&&(y=Z-s.height-10),h.value={position:"fixed",top:`${y}px`,left:`${w}px`,zIndex:"2000"}},a=o=>{var s,j;n.value&&((s=f.value)!=null&&s.contains(o.target)||(j=g.value)!=null&&j.contains(o.target)||(n.value=!1))},u=o=>{t.disabled||(o.stopPropagation(),n.value=!n.value,n.value&&setTimeout(c,0))},i=()=>{n.value=!1,r("confirm")},p=()=>{n.value=!1,r("cancel")},b=()=>{n.value&&c()},x=()=>{n.value&&c()};X(n,o=>{o?(setTimeout(c,0),document.addEventListener("click",a),window.addEventListener("scroll",b,!0),window.addEventListener("resize",x)):(document.removeEventListener("click",a),window.removeEventListener("scroll",b,!0),window.removeEventListener("resize",x))}),se(()=>{document.removeEventListener("click",a),window.removeEventListener("scroll",b,!0),window.removeEventListener("resize",x)});const d=S(()=>({width:typeof t.width=="number"?`${t.width}px`:t.width})),v=S(()=>{const o=t.placement,s={};switch(o){case"top":case"top-start":case"top-end":s.bottom="-6px",s.transform="rotate(45deg)";break;case"bottom":case"bottom-start":case"bottom-end":s.top="-6px",s.transform="rotate(225deg)";break;case"left":case"left-start":case"left-end":s.right="-6px",s.transform="rotate(315deg)";break;case"right":case"right-start":case"right-end":s.left="-6px",s.transform="rotate(135deg)";break}return s});return(o,s)=>(_(),T("span",de,[E("span",{ref_key:"triggerRef",ref:f,class:"x-popconfirm-trigger",onClick:u},[I(o.$slots,"default")],512),(_(),G(Q,{to:"body"},[P(K,{name:"x-popconfirm-fade"},{default:R(()=>[n.value?(_(),T("div",{key:0,ref_key:"popperRef",ref:g,class:"x-popconfirm",style:V({...h.value,...d.value}),onClick:s[0]||(s[0]=J(()=>{},["stop"]))},[e.showArrow?(_(),T("span",{key:0,class:"x-popconfirm__arrow",style:V(v.value)},null,4)):$("",!0),E("div",ue,[e.hideIcon?$("",!0):(_(),T("span",{key:0,class:"x-popconfirm__icon",style:V({color:e.iconColor})},[I(o.$slots,"icon",{},()=>[L(M(e.icon||"⚠"),1)])],4)),E("div",pe,[I(o.$slots,"title",{},()=>[L(M(e.title),1)])])]),E("div",fe,[e.hideCancelButton?$("",!0):(_(),T("button",{key:0,class:"x-button p-button--default p-button--small",onClick:p},M(e.cancelButtonText),1)),e.hideConfirmButton?$("",!0):(_(),T("button",{key:1,class:C(["x-button x-button--small",`x-button--${e.confirmButtonType}`]),onClick:i},M(e.confirmButtonText),3))])],4)):$("",!0)]),_:3})]))]))}}),O=[];let he=1;const me=()=>{O.slice().forEach(e=>e.close())};function te(e){const l=he++,t=document.createElement("div");document.body.appendChild(t);const r={success:{bg:"#f0f9eb",border:"#67c23a",icon:"✓"},warning:{bg:"#fdf6ec",border:"#e6a23c",icon:"⚠"},error:{bg:"#fef0f0",border:"#f56c6c",icon:"✕"},info:{bg:"#f4f4f5",border:"#909399",icon:"ℹ"}},n=e.type||"info",f=r[n]||r.info,g=ie({visible:!1,offset:e.offset??20});let h=e.offset??20;O.forEach(d=>{const v=d.container.firstElementChild;v&&v.offsetHeight&&(h+=v.offsetHeight+16)}),g.offset=h;let c=null,a=!1;const u=()=>{a||(g.visible=!1,setTimeout(()=>{if(a)return;a=!0;const d=O.findIndex(v=>v.id===l);d!==-1&&O.splice(d,1);try{b.unmount()}catch{}t.parentNode&&t.parentNode.removeChild(t)},300))},i=()=>{const d=e.duration??3e3;d>0&&(c=setTimeout(u,d))},p=()=>{c&&(clearTimeout(c),c=null)},b=Y({render(){if(!g.visible)return null;const d=[m("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"20px",height:"20px",marginRight:"10px",fontSize:"16px",color:f.border}},f.icon),m("span",{style:{flex:"1",fontSize:"14px",color:"#606266",lineHeight:"1.4"}},e.message||"")];return e.showClose&&d.push(m("button",{style:{position:"absolute",top:"50%",right:"12px",transform:"translateY(-50%)",background:"none",border:"none",cursor:"pointer",fontSize:"14px",color:"#909399",padding:"0"},onClick:v=>{v.stopPropagation(),u()}},"✕")),m("div",{class:["x-message",`x-message--${n}`,e.center?"is-center":"",e.showClose?"is-closable":""],style:{position:"fixed",left:"50%",top:`${g.offset}px`,transform:"translateX(-50%)",display:"flex",alignItems:"center",padding:e.showClose?"12px 40px 12px 16px":"12px 16px",borderRadius:"4px",boxShadow:"0 2px 12px rgba(0,0,0,0.1)",minWidth:"280px",maxWidth:"480px",backgroundColor:f.bg,border:`1px solid ${f.border}`,zIndex:2e3+l,transition:"opacity 0.3s, transform 0.3s"},onMouseenter:p,onMouseleave:i},d)}});b.mount(t),q(()=>{g.visible=!0,i()});const x={id:l,app:b,container:t,close:u};return O.push(x),{close:u}}function xe(e){return te(typeof e=="string"?{message:e}:e)}const W=e=>l=>te({...typeof l=="string"?{message:l}:l,type:e}),ge=Object.assign(xe,{info:W("info"),success:W("success"),warning:W("warning"),error:W("error"),closeAll:me}),Oe=ge,N=[],be=()=>{N.slice().forEach(e=>e.close())},ve={success:{icon:"✓",color:"#67c23a"},warning:{icon:"⚠",color:"#e6a23c"},error:{icon:"✕",color:"#f56c6c"},info:{icon:"ℹ",color:"#909399"}};function U(e){return new Promise(l=>{const t=document.createElement("div");document.body.appendChild(t);let r=!1;const n=H({name:"TMessageBox",setup(){const h=z(!1),c=z(e.inputValue??""),a=z(""),u=2e3+N.length+1,i=v=>{r||(r=!0,h.value=!1,setTimeout(()=>{const o=N.findIndex(s=>s.container===t);o!==-1&&N.splice(o,1);try{f.unmount()}catch{}t.parentNode&&t.parentNode.removeChild(t),l({action:v,value:v==="confirm"?c.value:void 0})},300))},p=()=>{if(e.showInput&&e.inputPattern&&!e.inputPattern.test(c.value)){a.value=e.inputErrorMessage||"输入格式不正确";return}a.value="",i("confirm")},b=()=>{i("cancel")},x=()=>{i("close")},d=()=>{e.closeOnClickModal!==!1&&x()};return q(()=>{h.value=!0}),{visible:h,inputValue:c,inputError:a,zIndex:u,handleConfirm:p,handleCancel:b,handleClose:x,handleMaskClick:d}},render(){if(!this.visible)return null;const h=e.type,c=h?ve[h]:null,a=[];c&&a.push(m("span",{class:"x-message-box__icon",style:{color:c.color,marginRight:"10px",fontSize:"20px"}},c.icon)),a.push(m("span",{class:"x-message-box__title"},e.title||"提示")),e.showClose!==!1&&a.push(m("button",{class:"x-message-box__close",onClick:this.handleClose},"✕"));const u=[];u.push(m("div",{class:"x-message-box__content"},e.message||"")),e.showInput&&u.push(m("div",{class:"x-message-box__input",style:{marginTop:"12px"}},[m("input",{class:["x-message-box__input-inner",this.inputError?"is-error":""].filter(Boolean),type:e.inputType||"text",placeholder:e.inputPlaceholder||"请输入",value:this.inputValue,onInput:p=>{this.inputValue=p.target.value,this.inputError=""},onKeyup:p=>{p.key==="Enter"&&this.handleConfirm()}}),this.inputError?m("div",{class:"x-message-box__error",style:{color:"#f56c6c",fontSize:"12px",marginTop:"4px"}},this.inputError):null]));const i=[];return e.showCancelButton&&i.push(m("button",{class:"x-button p-button--default",onClick:this.handleCancel},e.cancelButtonText||"取消")),e.showConfirmButton!==!1&&i.push(m("button",{class:"x-button p-button--primary",onClick:this.handleConfirm,style:{marginLeft:"10px"}},e.confirmButtonText||"确定")),m("div",{class:["x-message-box-wrapper",e.center?"is-center":""],style:{position:"fixed",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:this.zIndex},onClick:this.handleMaskClick},[m("div",{class:["x-message-box",e.customClass],style:{backgroundColor:"#fff",borderRadius:"4px",boxShadow:"0 2px 12px rgba(0, 0, 0, 0.1)",minWidth:"300px",maxWidth:"500px"},onClick:p=>p.stopPropagation()},[m("div",{class:"x-message-box__header",style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid #eee"}},a),m("div",{class:"x-message-box__body",style:{padding:"20px",fontSize:"14px",color:"#606266"}},u),m("div",{class:"x-message-box__footer",style:{padding:"10px 20px 16px",textAlign:"right"}},i)])])}}),f=Y(n);f.mount(t);const g={app:f,container:t,close:()=>{var h;const c=(h=f._instance)==null?void 0:h.proxy;c!=null&&c.handleClose&&c.handleClose()}};N.push(g)})}async function ye(e,l,t){return U({message:e,title:l,...t,showConfirmButton:!0,showCancelButton:!1})}async function we(e,l,t){return U({message:e,title:l,...t,showConfirmButton:!0,showCancelButton:!0})}async function ke(e,l,t){return U({message:e,title:l,...t,showInput:!0,showConfirmButton:!0,showCancelButton:!0})}function Ce(e){return U(e)}Object.assign(Ce,{alert:ye,confirm:we,prompt:ke,closeAll:be});const A=[];let _e=1;const Be=()=>{A.slice().forEach(e=>e.close())},Te={success:{icon:"✓",color:"#67c23a"},warning:{icon:"⚠",color:"#e6a23c"},error:{icon:"✕",color:"#f56c6c"},info:{icon:"ℹ",color:"#909399"}},Ee=(e,l)=>{const t=A.filter(n=>n.position===e);let r=16;for(const n of t)if(n.id<l){const f=n.container.firstElementChild;f&&(r+=f.offsetHeight+16)}return r},$e=(e,l)=>{const t={position:"fixed",width:"330px",zIndex:"2010"};switch(e){case"top-right":t.top=`${l}px`,t.right="16px";break;case"top-left":t.top=`${l}px`,t.left="16px";break;case"bottom-right":t.bottom=`${l}px`,t.right="16px";break;case"bottom-left":t.bottom=`${l}px`,t.left="16px";break;default:t.top=`${l}px`,t.right="16px"}return t};function oe(e){const l=_e++,t=e.position||"top-right",r=document.createElement("div");document.body.appendChild(r);let n=null,f=!1;const g=H({name:"TNotification",setup(){const a=z(!1),u=()=>{f||(f=!0,a.value=!1,setTimeout(()=>{var d;const v=A.findIndex(o=>o.id===l);v!==-1&&A.splice(v,1),n&&clearTimeout(n),(d=e.onClose)==null||d.call(e);try{h.unmount()}catch{}r.parentNode&&r.parentNode.removeChild(r)},300))},i=()=>{const d=e.duration??4500;d>0&&(n=setTimeout(u,d))},p=()=>{n&&(clearTimeout(n),n=null)},b=S(()=>(e.offset??0)+Ee(t,l)),x=S(()=>$e(t,b.value));return q(()=>{a.value=!0,i()}),{visible:a,close:u,positionStyles:x,startTimer:i,clearTimer:p}},render(){if(!this.visible)return null;const a=e.type,u=a?Te[a]:null,i=[];e.title&&i.push(m("div",{class:"x-notification__title",style:{fontWeight:"600",fontSize:"16px",color:"#303133",marginBottom:e.message?"6px":"0"}},e.title)),e.message&&(e.dangerouslyUseHTMLString?i.push(m("div",{class:"x-notification__content",style:{fontSize:"14px",color:"#606266",lineHeight:"1.5"},innerHTML:e.message})):i.push(m("div",{class:"x-notification__content",style:{fontSize:"14px",color:"#606266",lineHeight:"1.5"}},e.message)));const p=[];return u&&p.push(m("div",{class:"x-notification__icon",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",marginRight:"12px",fontSize:"18px",color:u.color}},u.icon)),p.push(m("div",{class:"x-notification__main",style:{flex:"1"}},i)),e.showClose!==!1&&p.push(m("button",{class:"x-notification__close",style:{position:"absolute",top:"18px",right:"15px",background:"none",border:"none",cursor:"pointer",fontSize:"14px",color:"#909399",padding:"0"},onClick:b=>{b.stopPropagation(),this.close()}},"✕")),m("div",{class:["x-notification",e.customClass],style:{...this.positionStyles,display:"flex",alignItems:"flex-start",padding:"14px 26px 14px 13px",borderRadius:"8px",backgroundColor:"#fff",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",transition:"opacity 0.3s, transform 0.3s",boxSizing:"border-box"},onMouseenter:this.clearTimer,onMouseleave:this.startTimer},p)}}),h=Y(g);h.mount(r);const c={id:l,app:h,container:r,position:t,close:()=>{var a;const u=(a=h._instance)==null?void 0:a.proxy;u!=null&&u.close&&u.close()}};return A.push(c),{close:c.close}}function ze(e){return oe(typeof e=="string"?{message:e}:e)}const D=e=>l=>oe({...typeof l=="string"?{message:l}:l,type:e});Object.assign(ze,{info:D("info"),success:D("success"),warning:D("warning"),error:D("error"),closeAll:Be});export{Oe as d,Le as i,Me as n,Ve as o};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as O,p as ne,o as h,c as b,r as q,n as r,e as f,k as A,l as re,w as ue,q as de,s as ce,b as se,u as d,i as N,g as T,a as P,v as he,x as ve,y as be,F as G,z as Y,A as te,f as ye,B as ge,C as xe,D as ke,T as Ve,E as we,G as Ce,h as Be,H as Ke}from"./vue-vendor-Br-l7wbK.js";import{G as j,f as Se}from"./xto-core-DZK7Cyg0.js";const $e=["type","placeholder","disabled","readonly","maxlength","minlength"],Xe=O({name:"XInput",__name:"index",props:{modelValue:{default:void 0},value:{default:void 0},type:{default:"text"},placeholder:{default:""},size:{default:"default"},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},maxlength:{},minlength:{},showWordLimit:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},prefixIcon:{},suffixIcon:{}},emits:["update:modelValue","update:value","input","change","focus","blur","clear"],setup(s,{expose:C,emit:l}){const e=s,a=l,t=j("input"),v=A(),y=A(!1),g=A(!1),p=he(),W=f(()=>e.type==="password"&&e.showPassword&&!e.disabled),S=f(()=>W.value?g.value?"text":"password":e.type),x=f({get:()=>e.modelValue!==void 0?e.modelValue:e.value!==void 0?e.value:"",set:i=>{a("update:modelValue",i),a("update:value",i),a("input",i)}}),K=f(()=>String(x.value).length),w=f(()=>[t.b(),e.size!=="default"?t.m(e.size):"",t.is("disabled",e.disabled),t.is("focus",y.value),t.is("has-prefix",e.prefixIcon||p.prefix),t.is("has-suffix",e.suffixIcon||p.suffix||e.clearable||W.value||e.showWordLimit)]),D=i=>{const o=i.target.value;a("change",o)},k=i=>{y.value=!0,a("focus",i)},_=i=>{y.value=!1,a("blur",i)},$=()=>{a("update:modelValue",""),a("update:value",""),a("clear")},B=()=>{g.value=!g.value};return C({focus:()=>{var i;(i=v.value)==null||i.focus()},blur:()=>{var i;(i=v.value)==null||i.blur()},inputRef:v}),(i,o)=>(h(),b("div",{class:r(w.value)},[i.$slots.prefix||s.prefixIcon?(h(),b("span",{key:0,class:r(d(t).e("prefix"))},[q(i.$slots,"prefix",{},()=>[P("span",{class:r(d(t).e("icon"))},N(s.prefixIcon),3)])],2)):T("",!0),ve(P("input",{ref_key:"inputRef",ref:v,"onUpdate:modelValue":o[0]||(o[0]=F=>x.value=F),type:S.value,placeholder:s.placeholder,disabled:s.disabled,readonly:s.readonly,maxlength:s.maxlength,minlength:s.minlength,class:r(d(t).e("inner")),onChange:D,onFocus:k,onBlur:_},null,42,$e),[[be,x.value]]),i.$slots.suffix||s.suffixIcon||s.clearable||W.value||s.showWordLimit?(h(),b("span",{key:1,class:r(d(t).e("suffix"))},[q(i.$slots,"suffix",{},()=>[s.clearable&&x.value&&!s.disabled?(h(),b("span",{key:0,class:r([d(t).e("icon"),d(t).e("clear")]),onClick:$}," ✕ ",2)):T("",!0),W.value?(h(),b("span",{key:1,class:r([d(t).e("icon"),d(t).e("password")]),onClick:B},N(g.value?"🙈":"👁️"),3)):T("",!0),s.showWordLimit&&s.maxlength?(h(),b("span",{key:2,class:r(d(t).e("count"))},N(K.value)+"/"+N(s.maxlength),3)):T("",!0)])],2)):T("",!0)],2))}}),Fe=["disabled"],Ae=["value","placeholder","disabled"],De=["disabled"],Oe=O({name:"XInputNumber",__name:"index",props:{modelValue:{default:void 0},min:{default:-1/0},max:{default:1/0},step:{default:1},stepStrictly:{type:Boolean,default:!1},precision:{default:void 0},size:{default:"default"},disabled:{type:Boolean,default:!1},controls:{type:Boolean,default:!0},controlsPosition:{default:""},placeholder:{default:""},valueOnClear:{default:null}},emits:["update:modelValue","change","focus","blur"],setup(s,{expose:C,emit:l}){const e=s,a=l,t=j("input-number"),v=A(),y=A(!1),g=A(null),p=A(e.modelValue),W=f(()=>{if(e.precision!==void 0)return e.precision;const n=S(e.step),c=e.modelValue!==void 0&&e.modelValue!==null?S(e.modelValue):0;return Math.max(n,c)});function S(n){if(n==null)return 0;const c=n.toString(),M=c.indexOf(".");return M===-1?0:c.length-M-1}function x(n,c=W.value){if(c===0)return Math.round(n);let M=n.toFixed(c);return Number(M)}function K(n){return n>e.max?e.max:n<e.min?e.min:n}const w=f(()=>e.modelValue??void 0),D=f(()=>g.value!==null?g.value:w.value===void 0||w.value===null?"":x(w.value)),k=f(()=>e.disabled?!0:w.value===void 0?e.min!==-1/0:w.value<=e.min),_=f(()=>e.disabled?!0:w.value===void 0?e.max!==1/0:w.value>=e.max),$=f(()=>[t.b(),e.size!=="default"?t.m(e.size):"",t.is("disabled",e.disabled),t.is("focus",y.value),e.controlsPosition?t.m(e.controlsPosition):""]);function B(){if(e.disabled||_.value)return;const n=w.value??(e.min===-1/0?0:e.min),c=x(n+e.step),M=K(c);o(M)}function i(){if(e.disabled||k.value)return;const n=w.value??(e.min===-1/0?0:e.min),c=x(n-e.step),M=K(c);o(M)}function o(n){const c=p.value;if(n===void 0)a("update:modelValue",void 0),a("change",void 0,c);else{const M=x(n),E=K(M);if(e.stepStrictly){const ee=Math.round((E-e.min)/e.step),I=x(e.min+ee*e.step);a("update:modelValue",I),a("change",I,c)}else a("update:modelValue",E),a("change",E,c)}p.value=e.modelValue,g.value=null}function F(n){if(n===""||n==="-")return;let c=n.replace(/[^\d.-]/g,"");const M=c.split(".");M.length>2&&(c=M[0]+"."+M.slice(1).join("")),c.indexOf("-")>0&&(c=c.replace(/-/g,"")),c.lastIndexOf("-")>0&&(c="-"+c.replace(/-/g,""));const E=Number(c);if(!isNaN(E))return E}function R(n){const c=n.target.value;g.value=c}function L(n){if(y.value=!1,g.value!==null){const c=F(g.value);c===void 0?e.valueOnClear!==null?o(e.valueOnClear):g.value=null:o(c)}a("blur",n)}function J(n){y.value=!0,p.value=e.modelValue,a("focus",n)}function H(n){var c;if(!e.disabled)switch(n.key){case"ArrowUp":n.preventDefault(),B();break;case"ArrowDown":n.preventDefault(),i();break;case"Enter":(c=v.value)==null||c.blur();break}}function Q(){g.value=null,e.valueOnClear!==null&&e.valueOnClear!==void 0?o(e.valueOnClear):(a("update:modelValue",void 0),a("change",void 0,p.value),p.value=void 0)}function U(){var n;(n=v.value)==null||n.focus()}function Z(){var n;(n=v.value)==null||n.blur()}return ue(()=>e.modelValue,n=>{p.value=n,g.value=null},{immediate:!0}),C({focus:U,blur:Z,clear:Q,increase:B,decrease:i}),(n,c)=>(h(),b("div",{class:r($.value)},[s.controls?(h(),b("button",{key:0,type:"button",class:r([d(t).e("decrease"),d(t).is("disabled",k.value)]),disabled:k.value,onClick:i}," − ",10,Fe)):T("",!0),P("div",{class:r(d(t).e("wrapper"))},[P("input",{ref_key:"inputRef",ref:v,value:D.value,placeholder:s.placeholder,disabled:s.disabled,class:r(d(t).e("inner")),type:"text",autocomplete:"off",onInput:R,onFocus:J,onBlur:L,onKeydown:H},null,42,Ae)],2),s.controls?(h(),b("button",{key:1,type:"button",class:r([d(t).e("increase"),d(t).is("disabled",_.value)]),disabled:_.value,onClick:B}," + ",10,De)):T("",!0)],2))}}),je=O({name:"XSwitch",__name:"index",props:{modelValue:{type:[Boolean,Number,String],default:!1},disabled:{type:Boolean,default:!1},width:{default:40},activeColor:{default:"#409eff"},inactiveColor:{default:"#dcdfe6"},activeValue:{type:[Boolean,Number,String],default:!0},inactiveValue:{type:[Boolean,Number,String],default:!1}},emits:["update:modelValue","change"],setup(s,{emit:C}){const l=s,e=C,a=j("switch"),t=f(()=>l.modelValue===l.activeValue),v=f(()=>[a.b(),a.is("disabled",l.disabled),a.is("checked",t.value)]),y=f(()=>({width:typeof l.width=="number"?`${l.width}px`:l.width,height:"20px",backgroundColor:t.value?l.activeColor:l.inactiveColor})),g=()=>{if(l.disabled)return;const p=t.value?l.inactiveValue:l.activeValue;e("update:modelValue",p),e("change",p)};return(p,W)=>(h(),b("span",{class:r(v.value),onClick:g},[P("span",{class:r(d(a).e("core")),style:se(y.value)},null,6),p.$slots.default?(h(),b("span",{key:0,class:r(d(a).e("text"))},[q(p.$slots,"default")],2)):T("",!0)],2))}}),We=["checked","disabled","name","value"],Ue=O({name:"XCheckbox",__name:"index",props:{modelValue:{type:[Boolean,String,Number,Array]},value:{type:[String,Number,Boolean]},label:{},disabled:{type:Boolean},name:{},indeterminate:{type:Boolean}},emits:["update:modelValue","change"],setup(s,{emit:C}){const l=s,e=C,a=j("checkbox"),t=re("checkboxGroup",null),v=f(()=>!!t),y=f(()=>l.value??l.label),g=f(()=>v.value?t.modelValue.value.includes(y.value):Array.isArray(l.modelValue)?l.modelValue.includes(y.value):!!l.modelValue),p=f(()=>{if(l.disabled)return!0;if(v.value){const x=t.disabled,K=t.min>0&&t.modelValue.value.length<=t.min,w=t.max>0&&t.modelValue.value.length>=t.max;return g.value&&K||!g.value&&w?!0:x}return!1}),W=f(()=>[a.b(),a.is("checked",g.value),a.is("disabled",p.value),a.is("indeterminate",l.indeterminate&&!g.value)]),S=()=>{if(!p.value)if(v.value)t.changeValue(y.value);else{let x;if(Array.isArray(l.modelValue)){const K=l.modelValue.indexOf(y.value);K>-1?x=[...l.modelValue.slice(0,K),...l.modelValue.slice(K+1)]:x=[...l.modelValue,y.value]}else x=!l.modelValue;e("update:modelValue",x),e("change",x)}};return(x,K)=>(h(),b("label",{class:r(W.value),onClick:te(S,["prevent"])},[P("span",{class:r(d(a).e("input"))},[P("input",{type:"checkbox",checked:g.value,disabled:p.value,name:s.name,value:y.value},null,8,We)],2),x.$slots.default||s.label!==void 0?(h(),b("span",{key:0,class:r(d(a).e("label"))},[q(x.$slots,"default",{},()=>[Be(N(s.label),1)])],2)):T("",!0)],2))}}),qe=O({name:"XForm",__name:"index",props:{model:{default:()=>({})},rules:{default:()=>({})},labelWidth:{default:"100px"},labelPosition:{default:"right"},layout:{default:"horizontal"},inline:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{default:"default"}},emits:["validate","submit","reset"],setup(s,{expose:C,emit:l}){const e=s,a=l,t=j("form"),v=A([]),y=f(()=>e.layout==="inline"||e.inline),g=f(()=>e.layout==="vertical"||e.labelPosition==="top"),p=f(()=>[t.b(),t.m(`label-${g.value?"top":e.labelPosition}`),t.is("inline",y.value),t.is("vertical",g.value)]),W=f(()=>({width:typeof e.labelWidth=="number"?`${e.labelWidth}px`:e.labelWidth})),S=i=>{v.value.push(i)},x=i=>{const o=v.value.indexOf(i);o>-1&&v.value.splice(o,1)},K=async()=>{let i=!0;for(const o of v.value)await o.validate()||(i=!1);return i},w=async i=>{const o=Array.isArray(i)?i:[i];let F=!0;for(const R of v.value)o.includes(R.prop)&&(await R.validate()||(F=!1));return F},D=()=>{v.value.forEach(i=>{i.resetField()})},k=i=>{if(i){const o=Array.isArray(i)?i:[i];v.value.forEach(F=>{o.includes(F.prop)&&F.clearValidate()})}else v.value.forEach(o=>{o.clearValidate()})},_=i=>{console.log("[XForm] handleSubmit triggered",i),i.preventDefault(),a("submit")},$=i=>{console.log("[XForm] handleReset triggered",i),i.preventDefault(),D(),a("reset")},B=Ke(e,"model");return ne("form",{model:B,rules:e.rules,labelWidth:e.labelWidth,labelPosition:g.value?"top":e.labelPosition,disabled:e.disabled,size:e.size,labelStyle:W,addField:S,removeField:x,emit:a}),C({validate:K,validateField:w,resetFields:D,clearValidate:k}),(i,o)=>(h(),b("form",{class:r(p.value),onSubmit:_,onReset:$},[q(i.$slots,"default")],34))}}),Ie=O({name:"XFormItem",__name:"item",props:{prop:{},label:{},labelWidth:{},required:{type:Boolean},rules:{},showMessage:{type:Boolean}},setup(s,{expose:C}){const l=s,e=j("form-item"),a=re("form",null),t=A(""),v=A(""),y=f(()=>l.required?!0:g().some(k=>k.required)),g=()=>{const k=[];return l.rules&&k.push(...l.rules),a&&l.prop&&a.rules[l.prop]&&k.push(...a.rules[l.prop]),k},p=()=>{var k;if(!(!a||!l.prop))return(k=a.model.value)==null?void 0:k[l.prop]},W=k=>{!a||!l.prop||a.model.value&&(a.model.value[l.prop]=k)},S=async k=>{const _=g();if(_.length===0)return t.value="valid",!0;const $=p();let B=!0,i="";for(const o of _)if(!(k&&o.trigger&&o.trigger!==k)){if(o.required&&($==null||$===""||Array.isArray($)&&$.length===0)){B=!1,i=o.message||"该字段为必填项";break}if(o.min!==void 0||o.max!==void 0){const F=typeof $=="string"?$.length:0;if(o.min!==void 0&&F<o.min){B=!1,i=o.message||`长度不能小于 ${o.min} 个字符`;break}if(o.max!==void 0&&F>o.max){B=!1,i=o.message||`长度不能大于 ${o.max} 个字符`;break}}if(o.pattern&&$&&!o.pattern.test($)){B=!1,i=o.message||"格式不正确";break}if(o.validator)try{await new Promise((F,R)=>{o.validator(o,$,L=>{L?R(L):F()})})}catch(F){B=!1,i=F.message||o.message||"验证失败";break}}return t.value=B?"valid":"invalid",v.value=i,a&&l.prop&&a.emit("validate",l.prop,B,i),B},x=()=>{W(void 0),K()},K=()=>{t.value="",v.value=""},w=f(()=>[e.b(),e.is("required",y.value),e.is("error",t.value==="invalid"),e.is("success",t.value==="valid")]),D=f(()=>{const k=l.labelWidth??(a==null?void 0:a.labelWidth)??"100px";return{width:typeof k=="number"?`${k}px`:k}});return ue(()=>p(),()=>{t.value==="invalid"&&S("change")}),de(()=>{a&&l.prop&&a.addField({prop:l.prop,validate:S,resetField:x,clearValidate:K})}),ce(()=>{a&&l.prop&&a.removeField({prop:l.prop,validate:S,resetField:x,clearValidate:K})}),C({validate:S,resetField:x,clearValidate:K}),(k,_)=>(h(),b("div",{class:r(w.value)},[s.label?(h(),b("label",{key:0,class:r(d(e).e("label")),style:se(D.value)},N(s.label),7)):T("",!0),P("div",{class:r(d(e).e("content"))},[q(k.$slots,"default"),s.showMessage!==!1&&t.value==="invalid"?(h(),b("div",{key:0,class:r(d(e).e("error"))},N(v.value),3)):T("",!0)],2)],2))}});function Me(s,C,l){return l?l(C,s):s.toLowerCase().includes(C.toLowerCase())}function pe(s,C,l="value",e="children"){for(const a of s){if(a[l]===C)return a;if(a[e]&&a[e].length>0){const t=pe(a[e],C,l,e);if(t)return t}}return null}function ae(s,C,l="value",e="children"){const a=[];function t(v){for(const y of v){if(y[l]===C)return a.push(y),!0;if(y[e]&&y[e].length>0){if(a.push(y),t(y[e]))return!0;a.pop()}}return!1}return t(s),a}function Pe(s,C="children"){const l=[];function e(a,t=0,v=null){for(const y of a)l.push({...y,level:t,parent:v}),y[C]&&y[C].length>0&&e(y[C],t+1,y)}return e(s),l}const Te=["onClick"],_e=["placeholder","disabled","readonly","value"],Ne=["onClick"],ze=["onClick"],Ge=O({name:"XSelect",__name:"index",props:{modelValue:{default:void 0},value:{default:void 0},options:{default:()=>[]},type:{default:"single"},placeholder:{default:"请选择"},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},filterable:{type:Boolean,default:!1},filterMethod:{},size:{default:"default"},multipleLimit:{default:0},collapseTags:{type:Boolean,default:!0},maxCollapseTags:{default:1},separator:{default:" / "},valueKey:{default:"value"},labelKey:{default:"label"},childrenKey:{default:"children"},noDataText:{default:"暂无数据"},noMatchText:{default:"无匹配数据"}},emits:["update:modelValue","update:value","change","clear","focus","blur","visible-change","remove-tag"],setup(s,{emit:C}){const l=s,e=C,a=j("select"),t=()=>Se().next(),v=A(),y=A(),g=A(),p=A(!1),W=A(2e3),S=A(""),x=A(-1),K=A({top:"0px",left:"0px"}),w=f(()=>l.type==="multiple"),D=f(()=>l.type==="cascader"),k=A([]),_=()=>l.modelValue!==void 0?l.modelValue:l.value!==void 0?l.value:"",$=u=>{e("update:modelValue",u),e("update:value",u),e("change",u)},B=f(()=>{const u=_();return w.value?Array.isArray(u)?u:[]:D.value?Array.isArray(u)?u:u?[u]:[]:u!==""&&u!==null&&u!==void 0?[u]:[]}),i=f(()=>D.value?Pe(l.options,l.childrenKey):l.options.map(u=>({...u,level:0}))),o=f(()=>!l.filterable||!S.value?i.value:i.value.filter(u=>{const m=u[l.labelKey]||"";return Me(m,S.value,l.filterMethod)})),F=f(()=>{const u=[];for(const m of B.value){const V=pe(l.options,m,l.valueKey,l.childrenKey);V&&u.push(V)}return u}),R=f(()=>{if(w.value)return"";if(D.value)return ae(l.options,B.value[B.value.length-1],l.valueKey,l.childrenKey).map(m=>m[l.labelKey]).join(l.separator);const u=F.value[0];return u?u[l.labelKey]:""}),L=f(()=>w.value?F.value:[]),J=f(()=>l.collapseTags?L.value.slice(0,l.maxCollapseTags):L.value),H=f(()=>l.collapseTags?Math.max(0,L.value.length-l.maxCollapseTags):0),Q=f(()=>[a.b(),a.m(l.size),a.is("disabled",l.disabled),a.is("multiple",w.value),a.is("cascader",D.value),a.is("filterable",l.filterable),a.is("focus",p.value)]),U=()=>{if(!v.value||!g.value||!p.value)return;const u=v.value.getBoundingClientRect(),m=g.value.getBoundingClientRect();let V=u.bottom+4,z=u.left;z+m.width>window.innerWidth&&(z=window.innerWidth-m.width-8),V+m.height>window.innerHeight&&(V=u.top-m.height-4),K.value={top:`${V}px`,left:`${z}px`}},Z=()=>{l.disabled||(p.value=!0,W.value=t(),S.value="",Ce(()=>{U()}),e("visible-change",!0),e("focus",{}))},n=()=>{p.value=!1,S.value="",k.value=[],e("visible-change",!1),e("blur",{})},c=u=>{if(!u.disabled)if(w.value){const m=[...B.value],V=u[l.valueKey],z=m.indexOf(V);if(z>-1)m.splice(z,1),e("remove-tag",V);else{if(l.multipleLimit>0&&m.length>=l.multipleLimit)return;m.push(V)}$(m)}else if(D.value)if(u.children&&u.children.length>0){const m=ae(l.options,u[l.valueKey],l.valueKey,l.childrenKey);k.value=m}else{const m=ae(l.options,u[l.valueKey],l.valueKey,l.childrenKey).map(V=>V[l.valueKey]);$(m),n()}else $(u[l.valueKey]),n()},M=u=>{const m=B.value.filter(V=>V!==u[l.valueKey]);$(m),e("remove-tag",u[l.valueKey])},E=()=>{const u=w.value?[]:"";$(u),e("clear")},ee=u=>{S.value=u.target.value},I=u=>{if(!v.value)return;const m=u.target;v.value.contains(m)||g.value&&g.value.contains(m)||n()},ie=u=>{if(u.key==="Escape")n();else if(u.key==="Enter"&&p.value){const m=o.value[x.value];m&&c(m)}else u.key==="ArrowDown"&&p.value?(u.preventDefault(),x.value=Math.min(x.value+1,o.value.length-1)):u.key==="ArrowUp"&&p.value&&(u.preventDefault(),x.value=Math.max(x.value-1,0))},le=u=>B.value.includes(u[l.valueKey]),oe=(u,m)=>[a.e("option"),a.is("selected",le(u)),a.is("disabled",u.disabled===!0),a.is("hover",x.value===m),a.is("group",!!(u.children&&u.children.length>0))],fe=f(()=>{if(!D.value)return[];const u=[l.options];for(const m of k.value)m.children&&m.children.length>0&&u.push(m.children);return u});return de(()=>{document.addEventListener("click",I),document.addEventListener("keydown",ie)}),ce(()=>{document.removeEventListener("click",I),document.removeEventListener("keydown",ie),document.removeEventListener("scroll",U,!0)}),ue(p,u=>{u?document.addEventListener("scroll",U,!0):document.removeEventListener("scroll",U,!0)}),ne("select",{selectedValues:B,handleSelect:c,isSelected:le}),(u,m)=>(h(),b("div",{ref_key:"selectRef",ref:v,class:r(Q.value)},[P("div",{class:r(d(a).e("wrapper")),onClick:m[0]||(m[0]=V=>p.value?n():Z())},[w.value&&L.value.length>0?(h(),b("div",{key:0,class:r(d(a).e("tags"))},[(h(!0),b(G,null,Y(J.value,V=>(h(),b("span",{key:V[s.valueKey],class:r(d(a).e("tag"))},[P("span",{class:r(d(a).e("tag-text"))},N(V[s.labelKey]),3),P("span",{class:r(d(a).e("tag-close")),onClick:te(z=>M(V),["stop"])},"×",10,Te)],2))),128)),H.value>0?(h(),b("span",{key:0,class:r(d(a).e("tag-count"))}," +"+N(H.value),3)):T("",!0)],2)):T("",!0),P("input",{ref_key:"inputRef",ref:y,class:r(d(a).e("input")),placeholder:w.value&&L.value.length>0?"":s.placeholder,disabled:s.disabled,readonly:!s.filterable||!p.value,value:s.filterable&&p.value?S.value:R.value,onInput:ee},null,42,_e),P("span",{class:r(d(a).e("suffix"))},[s.clearable&&B.value.length>0&&!s.disabled?(h(),b("span",{key:0,class:r(d(a).e("clear")),onClick:te(E,["stop"])},"×",2)):(h(),b("span",{key:1,class:r([d(a).e("arrow"),d(a).is("reverse",p.value)])},"▼",2))],2)],2),(h(),ye(we,{to:"body"},[ge(Ve,{name:"fade"},{default:xe(()=>[ve(P("div",{ref_key:"popperRef",ref:g,class:r([d(a).e("popper"),d(a).is("cascader",D.value)]),style:se({zIndex:W.value,...K.value})},[D.value?(h(),b("div",{key:0,class:r(d(a).e("cascader-panels"))},[(h(!0),b(G,null,Y(fe.value,(V,z)=>(h(),b("div",{key:z,class:r(d(a).e("cascader-panel"))},[(h(!0),b(G,null,Y(V,(X,me)=>(h(),b("div",{key:X[s.valueKey],class:r(oe(X,me)),onClick:Le=>c(X)},[P("span",{class:r(d(a).e("option-label"))},N(X[s.labelKey]),3),X.children&&X.children.length>0?(h(),b("span",{key:0,class:r(d(a).e("option-arrow"))},"›",2)):T("",!0)],10,Ne))),128))],2))),128))],2)):(h(),b(G,{key:1},[o.value.length===0?(h(),b("div",{key:0,class:r(d(a).e("empty"))},N(S.value?s.noMatchText:s.noDataText),3)):(h(),b("div",{key:1,class:r(d(a).e("options"))},[(h(!0),b(G,null,Y(o.value,(V,z)=>(h(),b("div",{key:V[s.valueKey],class:r(oe(V,z)),onClick:X=>c(V)},[P("span",{class:r(d(a).e("option-label"))},N(V[s.labelKey]),3),le(V)?(h(),b("span",{key:0,class:r(d(a).e("option-check"))},"✓",2)):T("",!0)],10,ze))),128))],2))],64))],6),[[ke,p.value]])]),_:1})]))],2))}});export{qe as B,je as D,Ie as F,Ge as P,Ue as T,Oe as V,Xe as w};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.x-tabs__header{position:relative}.x-tabs__nav{display:flex;border-bottom:2px solid #e4e7ed}.x-tabs__item{padding:0 20px;height:40px;line-height:40px;font-size:14px;color:#606266;cursor:pointer;transition:color .2s;position:relative}.x-tabs__item:hover{color:#409eff}.x-tabs__item--active{color:#409eff;font-weight:500}.x-tabs__item--active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background-color:#409eff}.x-tabs__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.x-tabs__item.is-disabled:hover{color:#c0c4cc}.x-tabs__content{padding:20px 0}.x-tabs--card .x-tabs__nav{border-bottom:none}.x-tabs--card .x-tabs__item{border:1px solid #e4e7ed;border-bottom:none;margin-right:-1px;padding:0 16px}.x-tabs--card .x-tabs__item--active{background-color:#fff;border-bottom:1px solid #fff}.x-tab-pane{padding:20px;outline:none}.x-menu{list-style:none;margin:0;padding:0;position:relative;font-size:14px;box-sizing:border-box}.x-menu--vertical{display:block;width:220px;min-height:100%;border-right:1px solid var(--color-border-lighter, #e6e6e6);transition:width .3s ease,background-color .3s ease}.x-menu--vertical>.x-menu-item,.x-menu--vertical>.x-sub-menu{display:block;width:100%}.x-menu--horizontal{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;width:100%;border-bottom:1px solid var(--color-border-lighter, #e6e6e6)}.x-menu--horizontal>.x-menu-item,.x-menu--horizontal>.x-sub-menu{flex:0 0 auto}.x-menu.is-collapse{width:64px!important;min-width:64px}.x-menu.is-collapse>.x-menu-item{height:56px;line-height:56px;padding:0 20px;text-align:center}.x-menu.is-collapse>.x-menu-item .x-menu-item__content{justify-content:center}.x-menu.is-collapse>.x-menu-item .x-menu-item__text{display:none}.x-menu.is-collapse>.x-sub-menu>.x-sub-menu__title{height:56px;line-height:56px;padding:0 20px;text-align:center;justify-content:center}.x-menu.is-collapse>.x-sub-menu>.x-sub-menu__title .x-sub-menu__content{justify-content:center}.x-menu.is-collapse>.x-sub-menu>.x-sub-menu__title .x-sub-menu__text,.x-menu.is-collapse>.x-sub-menu>.x-sub-menu__title .x-sub-menu__arrow{display:none}.x-menu.is-collapse>.x-sub-menu>.x-sub-menu__menu{position:absolute;left:64px;top:0;min-width:180px;background-color:var(--bg-color, #fff);box-shadow:var(--box-shadow, 0 2px 12px rgba(0, 0, 0, .12));border-radius:4px;z-index:100;border:1px solid var(--color-border-light, #e4e7ed)}.x-menu.is-collapse>.x-sub-menu>.x-sub-menu__menu .x-menu-item{height:50px;line-height:50px;padding:0 20px;text-align:left}.x-menu.is-collapse>.x-sub-menu>.x-sub-menu__menu .x-menu-item .x-menu-item__content{justify-content:flex-start}.x-menu.is-collapse>.x-sub-menu>.x-sub-menu__menu .x-menu-item .x-menu-item__text{display:inline}.x-menu.is-collapse>.x-sub-menu>.x-sub-menu__menu .x-sub-menu__title .x-sub-menu__text{display:inline}.x-menu.is-dark{background-color:#1f2d3d;border-color:#1f2d3d;color:#bfcbd9}.x-menu.is-dark .x-menu-item,.x-menu.is-dark .x-sub-menu__title{color:#bfcbd9}.x-menu.is-dark .x-menu-item:hover,.x-menu.is-dark .x-sub-menu__title:hover{background-color:#263445}.x-menu.is-dark .x-menu-item.is-active{color:#409eff;background-color:#263445}.x-menu.is-dark .x-sub-menu__menu{background-color:#1f2d3d;border-color:#1f2d3d}.x-menu-item{list-style:none;margin:0;padding:0 20px;cursor:pointer;transition:all .3s ease;height:56px;line-height:56px;color:var(--color-text-primary, #303133);position:relative;white-space:nowrap;box-sizing:border-box}.x-menu-item__content{display:flex;align-items:center;height:100%}.x-menu-item__icon{margin-right:8px;font-size:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.x-menu-item__icon svg,.x-menu-item__icon i{font-size:18px}.x-menu-item__text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:opacity .3s ease}.x-menu-item:hover{background-color:var(--color-primary-light-9, #f0f7ff)}.x-menu-item.is-active{color:var(--color-primary, #409eff);background-color:var(--color-primary-light-9, #ecf5ff)}.x-menu-item.is-active:not(.is-horizontal):before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background-color:var(--color-primary, #409eff);border-radius:0 2px 2px 0}.x-menu-item.is-collapse{padding:0;text-align:center}.x-menu-item.is-collapse .x-menu-item__content{justify-content:center;padding:0}.x-menu-item.is-collapse .x-menu-item__icon{margin-right:0;font-size:20px}.x-menu-item.is-collapse .x-menu-item__icon svg,.x-menu-item.is-collapse .x-menu-item__icon i{font-size:20px}.x-menu-item.is-collapse .x-menu-item__text{opacity:0;width:0;overflow:hidden}.x-menu-item.is-horizontal{display:inline-block;height:56px;line-height:56px}.x-menu-item.is-horizontal:hover{background-color:transparent}.x-menu-item.is-horizontal.is-active{background-color:transparent;border-bottom:2px solid var(--color-primary, #409eff)}.x-menu-item.is-horizontal.is-active:before{display:none}.x-menu-item.is-disabled{color:var(--color-text-disabled, #c0c4cc);cursor:not-allowed}.x-menu-item.is-disabled:hover{background-color:transparent}.x-menu-item-group{list-style:none}.x-menu-item-group__title{padding:20px 20px 10px;font-size:13px;color:#909399;line-height:1}.x-menu-item-group>ul{padding:0}.x-sub-menu{list-style:none;margin:0;padding:0;position:relative}.x-sub-menu__title{display:flex;align-items:center;cursor:pointer;transition:all .3s ease;color:var(--color-text-primary, #303133);height:100%}.x-sub-menu__content{display:flex;align-items:center;width:100%;height:100%}.x-sub-menu__icon{margin-right:8px;font-size:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.x-sub-menu__icon svg,.x-sub-menu__icon i{font-size:18px}.x-sub-menu__text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:opacity .3s ease}.x-sub-menu__arrow{font-size:12px;transition:transform .3s ease;color:var(--color-text-secondary, #909399);margin-left:4px;display:flex;align-items:center}.x-sub-menu__arrow svg{transition:transform .3s ease}.x-sub-menu__arrow.is-open svg{transform:rotate(180deg)}.x-sub-menu__menu{list-style:none;margin:0;padding:0;background-color:var(--bg-color, #fff)}.x-sub-menu__menu.is-collapse{border:1px solid var(--color-border-light, #e4e7ed);border-radius:4px}.x-sub-menu--vertical{display:block;width:100%}.x-sub-menu--vertical .x-sub-menu__title{height:56px;line-height:56px;padding:0 20px}.x-sub-menu--vertical .x-sub-menu__title:hover{background-color:var(--color-primary-light-9, #f0f7ff)}.x-sub-menu--vertical .x-sub-menu__menu{min-width:200px;border-right:none}.x-sub-menu--vertical .x-sub-menu__menu .x-menu-item,.x-sub-menu--vertical .x-sub-menu__menu .x-sub-menu__title{padding-left:40px}.x-sub-menu--vertical .x-sub-menu__menu .x-sub-menu__menu .x-menu-item,.x-sub-menu--vertical .x-sub-menu__menu .x-sub-menu__menu .x-sub-menu__title{padding-left:60px}.x-sub-menu--vertical.is-nested .x-sub-menu__menu{position:relative;left:auto;top:auto;box-shadow:none;border-radius:0;border:none}.x-sub-menu--horizontal{display:inline-block;height:56px}.x-sub-menu--horizontal .x-sub-menu__title{height:56px;line-height:56px;padding:0 20px}.x-sub-menu--horizontal .x-sub-menu__title:hover{background-color:transparent}.x-sub-menu--horizontal .x-sub-menu__menu{position:absolute;top:100%;left:0;min-width:180px;box-shadow:var(--box-shadow, 0 2px 12px rgba(0, 0, 0, .12));border-radius:4px;z-index:100;border:1px solid var(--color-border-light, #e4e7ed)}.x-sub-menu--horizontal .x-sub-menu__menu .x-menu-item{display:block;height:50px;line-height:50px;padding-left:20px}.x-sub-menu--horizontal .x-sub-menu__menu .x-menu-item.is-active:before{display:none}.x-sub-menu.is-collapse>.x-sub-menu__title{height:56px;line-height:56px;padding:0 20px;text-align:center}.x-sub-menu.is-collapse>.x-sub-menu__title .x-sub-menu__content{justify-content:center}.x-sub-menu.is-collapse>.x-sub-menu__title .x-sub-menu__text,.x-sub-menu.is-collapse>.x-sub-menu__title .x-sub-menu__arrow{display:none}.x-sub-menu.is-collapse>.x-sub-menu__title .x-sub-menu__icon{margin-right:0;font-size:20px}.x-sub-menu.is-collapse>.x-sub-menu__title .x-sub-menu__icon svg,.x-sub-menu.is-collapse>.x-sub-menu__title .x-sub-menu__icon i{font-size:20px}.x-sub-menu.is-collapse>.x-sub-menu__menu{position:absolute;left:64px;top:0;min-width:180px;box-shadow:var(--box-shadow, 0 2px 12px rgba(0, 0, 0, .12));border-radius:4px;z-index:100;border:1px solid var(--color-border-light, #e4e7ed);background-color:var(--bg-color, #fff)}.x-sub-menu.is-collapse>.x-sub-menu__menu .x-menu-item{height:50px;line-height:50px;padding:0 20px;text-align:left}.x-sub-menu.is-collapse>.x-sub-menu__menu .x-menu-item .x-menu-item__content{justify-content:flex-start}.x-sub-menu.is-collapse>.x-sub-menu__menu .x-menu-item .x-menu-item__text{display:inline;opacity:1;width:auto}.x-sub-menu.is-collapse>.x-sub-menu__menu .x-sub-menu__title{padding:0 20px}.x-sub-menu.is-collapse>.x-sub-menu__menu .x-sub-menu__title .x-sub-menu__text{display:inline;opacity:1}.x-sub-menu.is-collapse>.x-sub-menu__menu .x-sub-menu__title .x-sub-menu__arrow{display:flex}.x-sub-menu.is-active>.x-sub-menu__title{color:var(--color-primary, #409eff)}.x-sub-menu.is-disabled .x-sub-menu__title{color:var(--color-text-disabled, #c0c4cc);cursor:not-allowed}.zoom-in-top-enter-active,.zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.zoom-in-top-enter-from,.zoom-in-top-leave-to{opacity:0;transform:scaleY(0)}.zoom-in-left-enter-active,.zoom-in-left-leave-active{opacity:1;transition:opacity .2s ease,transform .2s ease;transform:translate(0)}.zoom-in-left-enter-from,.zoom-in-left-leave-to{opacity:0;transform:translate(-10px)}.x-breadcrumb{font-size:14px;line-height:1}.x-breadcrumb__list{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:0;list-style:none}.x-breadcrumb__item{display:inline-flex;align-items:center;color:#606266}.x-breadcrumb__item:last-child .x-breadcrumb__separator{display:none}.x-breadcrumb__item:last-child .x-breadcrumb__text{font-weight:500;color:#303133}.x-breadcrumb__link,.x-breadcrumb__text{display:inline-flex;align-items:center}.x-breadcrumb__link{cursor:pointer;transition:color .2s}.x-breadcrumb__link:hover{color:#409eff}.x-breadcrumb__text{color:inherit}.x-breadcrumb__separator{margin:0 8px;color:#c0c4cc;font-size:12px;-webkit-user-select:none;user-select:none}.x-breadcrumb__separator-icon{font-size:14px}.x-breadcrumb__item.is-disabled .x-breadcrumb__link,.x-breadcrumb__item.is-disabled .x-breadcrumb__text{color:#c0c4cc;cursor:not-allowed}.x-steps{display:flex;width:100%;font-size:14px}.x-steps--horizontal{flex-direction:row;align-items:flex-start}.x-steps--horizontal.is-center{align-items:center}.x-steps--vertical{flex-direction:column;min-height:300px}.x-steps.is-simple{display:flex;align-items:center;padding:12px 16px;background:#fafafa;border-radius:4px}.x-step{position:relative;flex:1;cursor:pointer}.x-step--horizontal{display:flex;flex-direction:column;align-items:center}.x-step--horizontal .x-step__head{display:flex;align-items:center;justify-content:center;width:100%;position:relative}.x-step--horizontal .x-step__icon{position:relative;z-index:1}.x-step--horizontal .x-step__line{flex:1;height:2px;background-color:#e4e7ed;transition:background-color .3s;min-width:20px}.x-step--horizontal .x-step__content{margin-top:10px;text-align:center;padding:0 4px}.x-step--vertical{display:flex;flex-direction:row}.x-step--vertical .x-step__head{display:flex;flex-direction:column;align-items:center;position:relative}.x-step--vertical .x-step__line{width:2px;height:32px;background-color:#e4e7ed;transition:background-color .3s}.x-step--vertical .x-step__content{margin-left:12px;flex:1;padding-bottom:24px}.x-step__head{display:flex;align-items:center}.x-step__icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#fff;border:2px solid #c0c4cc;color:#c0c4cc;flex-shrink:0;transition:all .3s;box-sizing:border-box}.x-step__icon-inner{font-size:13px;font-weight:600;color:inherit}.x-step__content{width:100%}.x-step__title{font-size:14px;font-weight:500;color:#303133;line-height:1.5}.x-step__description{font-size:12px;color:#909399;margin-top:4px;line-height:1.5}.x-step.is-wait .x-step__icon{border-color:#c0c4cc;color:#c0c4cc}.x-step.is-wait .x-step__title{color:#c0c4cc}.x-step.is-process .x-step__icon{border-color:#409eff;background-color:#409eff;color:#fff}.x-step.is-process .x-step__title{color:#303133;font-weight:600}.x-step.is-finish .x-step__icon{border-color:#67c23a;background-color:#67c23a;color:#fff}.x-step.is-finish .x-step__title{color:#303133}.x-step.is-finish .x-step__line{background-color:#67c23a}.x-step.is-success .x-step__icon{border-color:#67c23a;background-color:#67c23a;color:#fff}.x-step.is-success .x-step__title{color:#67c23a}.x-step.is-success .x-step__line{background-color:#67c23a}.x-step.is-error .x-step__icon{border-color:#f56c6c;background-color:#f56c6c;color:#fff}.x-step.is-error .x-step__title{color:#f56c6c}.x-page-header{padding:16px 0}.x-page-header__main{display:flex;align-items:center;justify-content:space-between;line-height:28px}.x-page-header__left{display:flex;align-items:center;flex:1;min-width:0}.x-page-header__back{display:inline-flex;align-items:center;margin-right:16px;font-size:14px;color:#606266;cursor:pointer;transition:color .2s}.x-page-header__back:hover{color:#409eff}.x-page-header__back-icon{font-size:16px}.x-page-header__back-text{margin-left:4px}.x-page-header__title{font-size:20px;font-weight:600;color:#303133}.x-page-header__subtitle{margin-left:12px;font-size:14px;font-weight:400;color:#909399}.x-page-header__extra{flex-shrink:0;display:flex;align-items:center;gap:8px}.x-page-header__content{margin-top:16px}.x-page-header__footer{margin-top:16px;padding-top:16px;border-top:1px solid #ebeef5}.x-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.x-dropdown.is-disabled{color:#c0c4cc;cursor:not-allowed}.x-dropdown__trigger{cursor:pointer}.x-dropdown__menu{position:absolute;top:100%;left:0;z-index:2000;min-width:150px;padding:5px 0;margin:5px 0;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px #0000001a}.x-dropdown__menu--top{top:auto;bottom:100%}.x-dropdown__menu--top-start{top:auto;bottom:100%;left:0}.x-dropdown__menu--top-end{top:auto;bottom:100%;left:auto;right:0}.x-dropdown__menu--bottom{top:100%;bottom:auto}.x-dropdown__menu--bottom-start{top:100%;left:0}.x-dropdown__menu--bottom-end{top:100%;left:auto;right:0}.x-dropdown-zoom-enter-active,.x-dropdown-zoom-leave-active{transition:opacity .2s,transform .2s}.x-dropdown-zoom-enter-from,.x-dropdown-zoom-leave-to{opacity:0;transform:scaleY(.8)}.x-dropdown-menu{margin:0;padding:0;list-style:none}.x-dropdown-item{display:flex;align-items:center;padding:8px 16px;margin:0;font-size:14px;color:#606266;cursor:pointer;transition:background-color .2s;list-style:none}.x-dropdown-item:hover{background-color:#f5f7fa;color:#409eff}.x-dropdown-item.is-disabled{color:#c0c4cc;cursor:not-allowed}.x-dropdown-item.is-disabled:hover{background-color:transparent;color:#c0c4cc}.x-dropdown-item.is-divided{border-top:1px solid #ebeef5;margin-top:5px;padding-top:13px}.x-dropdown-item__icon{margin-right:8px}.x-dropdown-item__content{flex:1}
|
package/dist/index.html
CHANGED
|
@@ -5,19 +5,19 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>Xto Demo - 后台管理系统</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-CivgOS-Y.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/vue-vendor-Br-l7wbK.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/xto-core-DZK7Cyg0.js">
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/xto-base-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/xto-form-
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/xto-base-_Rb31vAT.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/xto-form-CGbFA4jG.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="/assets/xto-data-BFpiDgJi.js">
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/xto-feedback-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/xto-navigation-
|
|
16
|
-
<link rel="stylesheet" crossorigin href="/assets/xto-base-
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/xto-feedback-xD2AV0I4.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/xto-navigation-CvGQ2s27.js">
|
|
16
|
+
<link rel="stylesheet" crossorigin href="/assets/xto-base-CojW9IFO.css">
|
|
17
17
|
<link rel="stylesheet" crossorigin href="/assets/xto-form-CrsyAjyr.css">
|
|
18
18
|
<link rel="stylesheet" crossorigin href="/assets/xto-data-CnAQAQH2.css">
|
|
19
|
-
<link rel="stylesheet" crossorigin href="/assets/xto-feedback-
|
|
20
|
-
<link rel="stylesheet" crossorigin href="/assets/xto-navigation-
|
|
19
|
+
<link rel="stylesheet" crossorigin href="/assets/xto-feedback-C-ESp-Y1.css">
|
|
20
|
+
<link rel="stylesheet" crossorigin href="/assets/xto-navigation-BRzSCpAw.css">
|
|
21
21
|
<link rel="stylesheet" crossorigin href="/assets/index-BOEFG4lP.css">
|
|
22
22
|
<link rel="stylesheet" crossorigin href="/assets/xto-layout-D1stVnJI.css">
|
|
23
23
|
<link rel="stylesheet" crossorigin href="/assets/xto-business--V1F5Gwb.css">
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { computed } from 'vue'
|
|
2
|
+
import { computed, ref, onMounted } from 'vue'
|
|
3
3
|
import { useRoute, useRouter } from 'vue-router'
|
|
4
4
|
import { useMenuStore } from '@/stores/menu'
|
|
5
5
|
import { useUserStore } from '@/stores/user'
|
|
@@ -7,6 +7,7 @@ import { useAuthStore } from '@/stores/auth'
|
|
|
7
7
|
import { useAppStore } from '@/stores/app'
|
|
8
8
|
import { Menu } from '@xto/navigation'
|
|
9
9
|
import { Button } from '@xto/base'
|
|
10
|
+
import { local } from '@/utils/storage'
|
|
10
11
|
import SidebarMenuItem from './SidebarMenuItem.vue'
|
|
11
12
|
|
|
12
13
|
// Props
|
|
@@ -33,6 +34,41 @@ const displayMenuList = computed(() => props.menuList.length > 0 ? props.menuLis
|
|
|
33
34
|
const isCollapsed = computed(() => appStore.isCollapsed)
|
|
34
35
|
const activeMenu = computed(() => route.path)
|
|
35
36
|
|
|
37
|
+
// 菜单展开状态持久化
|
|
38
|
+
const OPENED_MENUS_KEY = 'sidebar_opened_menus'
|
|
39
|
+
const openedMenus = ref<string[]>(local.get<string[]>(OPENED_MENUS_KEY) || [])
|
|
40
|
+
|
|
41
|
+
// 保存展开状态
|
|
42
|
+
const handleMenuOpen = (index: string) => {
|
|
43
|
+
if (!openedMenus.value.includes(index)) {
|
|
44
|
+
openedMenus.value.push(index)
|
|
45
|
+
local.set(OPENED_MENUS_KEY, openedMenus.value)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const handleMenuClose = (index: string) => {
|
|
50
|
+
const idx = openedMenus.value.indexOf(index)
|
|
51
|
+
if (idx > -1) {
|
|
52
|
+
openedMenus.value.splice(idx, 1)
|
|
53
|
+
local.set(OPENED_MENUS_KEY, openedMenus.value)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// 根据当前路由自动展开父菜单
|
|
58
|
+
onMounted(() => {
|
|
59
|
+
const path = route.path
|
|
60
|
+
// 找到当前路由对应的父菜单并展开
|
|
61
|
+
for (const menu of displayMenuList.value) {
|
|
62
|
+
if (menu.children?.length) {
|
|
63
|
+
const hasActiveChild = menu.children.some((child: any) => path.startsWith(child.menuUrl))
|
|
64
|
+
if (hasActiveChild && !openedMenus.value.includes(menu.menuUrl)) {
|
|
65
|
+
openedMenus.value.push(menu.menuUrl)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
local.set(OPENED_MENUS_KEY, openedMenus.value)
|
|
70
|
+
})
|
|
71
|
+
|
|
36
72
|
// 菜单主题相关
|
|
37
73
|
const menuBgColor = computed(() => appStore.isDark ? '#1d1e1f' : '#fff')
|
|
38
74
|
const menuTextColor = computed(() => appStore.isDark ? '#cfd3dc' : '#303133')
|
|
@@ -71,8 +107,11 @@ const handleLogout = () => {
|
|
|
71
107
|
:background-color="menuBgColor"
|
|
72
108
|
:text-color="menuTextColor"
|
|
73
109
|
:active-text-color="menuActiveTextColor"
|
|
110
|
+
:default-openeds="openedMenus"
|
|
74
111
|
class="sidebar__menu"
|
|
75
112
|
@select="handleMenuSelect"
|
|
113
|
+
@open="handleMenuOpen"
|
|
114
|
+
@close="handleMenuClose"
|
|
76
115
|
>
|
|
77
116
|
<template v-for="menu in displayMenuList" :key="menu.menuUrl">
|
|
78
117
|
<SidebarMenuItem :menu="menu" />
|
package/dist/App.vue.d.ts
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
|
|
2
|
-
export default _default;
|
package/dist/api/auth.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { LoginParams, LoginResult, UserInfo } from '../types/api';
|
|
2
|
-
export declare function login(data: LoginParams): Promise<LoginResult>;
|
|
3
|
-
export declare function logout(): Promise<unknown>;
|
|
4
|
-
export declare function getUserInfo(): Promise<UserInfo>;
|
|
5
|
-
export declare function refreshToken(refreshToken: string): Promise<{
|
|
6
|
-
token: string;
|
|
7
|
-
expireTime: number;
|
|
8
|
-
}>;
|
package/dist/api/system.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { PageParams, PageResponse } from '../utils/request';
|
|
2
|
-
import { RoleInfo, MenuItem } from '../types/api';
|
|
3
|
-
export declare function getRoleList(params: PageParams & {
|
|
4
|
-
status?: number;
|
|
5
|
-
keyword?: string;
|
|
6
|
-
}): Promise<PageResponse<RoleInfo>>;
|
|
7
|
-
export declare function getRoleDetail(id: string | number): Promise<RoleInfo>;
|
|
8
|
-
export declare function createRole(data: Partial<RoleInfo>): Promise<RoleInfo>;
|
|
9
|
-
export declare function updateRole(id: string | number, data: Partial<RoleInfo>): Promise<RoleInfo>;
|
|
10
|
-
export declare function deleteRole(id: string | number): Promise<unknown>;
|
|
11
|
-
export declare function updateRoleStatus(id: string | number, status: number): Promise<unknown>;
|
|
12
|
-
export declare function getMenuList(): Promise<MenuItem[]>;
|
|
13
|
-
export declare function getMenuTree(appId?: string): Promise<MenuItem[]>;
|
|
14
|
-
export declare function createMenu(data: Partial<MenuItem>): Promise<MenuItem>;
|
|
15
|
-
export declare function updateMenu(id: string | number, data: Partial<MenuItem>): Promise<MenuItem>;
|
|
16
|
-
export declare function deleteMenu(id: string | number): Promise<unknown>;
|
package/dist/api/user.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { PageParams, PageResponse } from '../utils/request';
|
|
2
|
-
import { UserInfo } from '../types/api';
|
|
3
|
-
export declare function getUserList(params: PageParams & {
|
|
4
|
-
status?: number;
|
|
5
|
-
keyword?: string;
|
|
6
|
-
}): Promise<PageResponse<UserInfo>>;
|
|
7
|
-
export declare function getUserDetail(id: string | number): Promise<UserInfo>;
|
|
8
|
-
export declare function createUser(data: Partial<UserInfo>): Promise<UserInfo>;
|
|
9
|
-
export declare function updateUser(id: string | number, data: Partial<UserInfo>): Promise<UserInfo>;
|
|
10
|
-
export declare function deleteUser(id: string | number): Promise<unknown>;
|
|
11
|
-
export declare function batchDeleteUsers(ids: (string | number)[]): Promise<unknown>;
|
|
12
|
-
export declare function updateUserStatus(id: string | number, status: number): Promise<unknown>;
|
|
13
|
-
export declare function resetPassword(id: string | number): Promise<unknown>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as t,o as a,c as p,a as o,B as n,C as _,u as d,h as i,P as c}from"./vue-vendor-Br-l7wbK.js";import{o as l}from"./xto-base-C-IBqjVs.js";import{_ as m}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./xto-core-DZK7Cyg0.js";const u={class:"error-page"},f={class:"error-page__content"},g=t({__name:"404",setup(v){const r=c(),s=()=>{r.push("/")};return(x,e)=>(a(),p("div",u,[o("div",f,[e[1]||(e[1]=o("div",{class:"error-page__code"},"404",-1)),e[2]||(e[2]=o("div",{class:"error-page__title"},"页面不存在",-1)),e[3]||(e[3]=o("div",{class:"error-page__desc"},"抱歉,您访问的页面不存在或已被删除",-1)),n(d(l),{type:"primary",onClick:s},{default:_(()=>[...e[0]||(e[0]=[i("返回首页",-1)])]),_:1})])]))}}),V=m(g,[["__scopeId","data-v-54fcac4c"]]);export{V as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.error-page[data-v-54fcac4c]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--bg-color-page)}.error-page__content[data-v-54fcac4c]{text-align:center}.error-page__code[data-v-54fcac4c]{font-size:120px;font-weight:600;color:var(--color-primary);line-height:1;margin-bottom:20px}.error-page__title[data-v-54fcac4c]{font-size:24px;font-weight:500;color:var(--color-text-primary);margin-bottom:10px}.error-page__desc[data-v-54fcac4c]{font-size:14px;color:var(--color-text-secondary);margin-bottom:30px}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as T,o as x,c as h,a as p,B as t,C as l,u as a,I as B,k as g,P as I,Q as R,R as q,h as k}from"./vue-vendor-Br-l7wbK.js";import{_ as z}from"./vite-Dw-pgLOX.js";import{r as y,o as C}from"./xto-base-C-IBqjVs.js";import{B as j,F as c,w as v,T as P}from"./xto-form-NRjKKNcY.js";import{c as i}from"./xto-feedback-B2M02fn3.js";import{a as U}from"./vendor-42ANG6Sg.js";import{g as L,a as N,c as A,b as D,d as E,s as F}from"./index-DiHSZ6SJ.js";import{_ as K}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./xto-core-DZK7Cyg0.js";import"./xto-data-BFpiDgJi.js";import"./xto-navigation-qLRTxo68.js";/* empty css *//* empty css */const $=()=>{const o=U.create({baseURL:"/api",timeout:3e4,headers:{"Content-Type":"application/json"}});return o.interceptors.request.use(e=>{const r=L(),n=N()||"Bearer";return r&&(e.headers.Authorization=`${n} ${r}`),e},e=>Promise.reject(e)),o.interceptors.response.use(e=>{const{data:r}=e;return r.code===200||r.code===0?r.data:(i.error(r.message||"请求失败"),Promise.reject(new Error(r.message||"请求失败")))},e=>{var n;const{response:r}=e;if(r)switch(r.status){case 401:i.error("登录已过期,请重新登录"),A(),window.location.href="/login";break;case 403:i.error("没有权限访问");break;case 404:i.error("请求资源不存在");break;case 500:i.error("服务器错误");break;default:i.error(((n=r.data)==null?void 0:n.message)||"请求失败")}else i.error("网络连接失败");return Promise.reject(e)}),o},m=$(),M={get(o,e){return m.get(o,e)},post(o,e,r){return m.post(o,e,r)},put(o,e,r){return m.put(o,e,r)},patch(o,e,r){return m.patch(o,e,r)},delete(o,e){return m.delete(o,e)},download(o,e){return m.get(o,{...e,responseType:"blob"})}};function Q(o){return M.post("/user/v1.0/login/by-domain",o)}const X={class:"login"},G={class:"login__container"},H=T({__name:"index",setup(o){const e=I(),r=R(),n=g(!1),_=g(!1),u=B({uid:"",password:""}),V={uid:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:6,message:"密码长度至少6位",trigger:"blur"}]},w=g(),b=async()=>{var f;try{await((f=w.value)==null?void 0:f.validate()),n.value=!0;const s=await Q({appId:E(),clientId:D(),uid:u.uid,password:u.password,code:!0});F(s),i.success("登录成功");const d=r.query.redirect||"/";e.push(d)}catch(s){console.error("登录失败:",s)}finally{n.value=!1}};return(f,s)=>(x(),h("div",X,[p("div",G,[s[5]||(s[5]=p("div",{class:"login__header"},[p("img",{src:z,alt:"Logo",class:"login__logo"}),p("h1",{class:"login__title"},"Xto Demo"),p("p",{class:"login__subtitle"},"后台管理系统")],-1)),t(a(j),{ref_key:"formRef",ref:w,model:u,rules:V,class:"login__form","label-width":"0"},{default:l(()=>[t(a(c),{prop:"uid"},{default:l(()=>[t(a(v),{modelValue:u.uid,"onUpdate:modelValue":s[0]||(s[0]=d=>u.uid=d),placeholder:"用户名",size:"large"},{prefix:l(()=>[t(a(y),{name:"user",size:18})]),_:1},8,["modelValue"])]),_:1}),t(a(c),{prop:"password"},{default:l(()=>[t(a(v),{modelValue:u.password,"onUpdate:modelValue":s[1]||(s[1]=d=>u.password=d),type:"password",placeholder:"密码",size:"large","show-password":"",onKeyup:q(b,["enter"])},{prefix:l(()=>[t(a(y),{name:"lock",size:18})]),_:1},8,["modelValue"])]),_:1}),t(a(c),null,{default:l(()=>[t(a(P),{modelValue:_.value,"onUpdate:modelValue":s[2]||(s[2]=d=>_.value=d)},{default:l(()=>[...s[3]||(s[3]=[k("记住我",-1)])]),_:1},8,["modelValue"])]),_:1}),t(a(c),null,{default:l(()=>[t(a(C),{type:"primary",size:"large",loading:n.value,class:"login__submit",onClick:b},{default:l(()=>[...s[4]||(s[4]=[k(" 登录 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"]),s[6]||(s[6]=p("div",{class:"login__footer"},[p("p",null,"请输入您的用户名和密码")],-1))])]))}}),ne=K(H,[["__scopeId","data-v-f3e724b6"]]);export{ne as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as Ae,s as Re,c as Pe,h as Be,u as ge,e as be,f as ye}from"./index-DiHSZ6SJ.js";import{L as Oe,k as f,e as g,d as ke,o as t,c as a,n as T,a as e,x as xe,D as qe,i as u,u as o,g as y,B as m,C as L,F as U,z as V,f as S,h as Ge,Q as $e,P as Ce,q as Me,s as Ne,S as Se,T as re,A as ze,b as he,w as De,j as Ke}from"./vue-vendor-Br-l7wbK.js";import{_ as Ue}from"./vite-Dw-pgLOX.js";import{i as Ee,r as fe,d as Fe}from"./xto-navigation-qLRTxo68.js";import{o as We,r as _}from"./xto-base-C-IBqjVs.js";import{_ as we}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{n as Te}from"./xto-feedback-B2M02fn3.js";import"./xto-form-NRjKKNcY.js";import"./xto-core-DZK7Cyg0.js";import"./xto-data-BFpiDgJi.js";/* empty css *//* empty css */const Le=Oe("auth",()=>{const Q=f(Ae()),C=g(()=>Be()),b=f(""),p=f(""),d=f(""),$=f("/login");return{token:Q,isLoggedIn:C,baseUrl:b,appId:p,clientId:d,loginPath:$,login:x=>{Q.value=x.access_token,Re(x)},logout:()=>{Q.value=null,Pe()},setBaseUrl:x=>{b.value=x},setAppId:x=>{p.value=x},setClientId:x=>{d.value=x},setLoginPath:x=>{$.value=x}}}),He={key:0,class:"sidebar__logo"},je={class:"sidebar__menu-content"},Qe={key:0,class:"sidebar__menu-icon"},Je={key:1,class:"sidebar__menu-char"},Xe={class:"sidebar__menu-text"},Ye={class:"sidebar__menu-content"},Ze={class:"sidebar__menu-icon"},es={key:1,class:"sidebar__menu-char"},ss={class:"sidebar__menu-text"},ts={class:"sidebar__menu-content"},os={key:0,class:"sidebar__menu-icon"},ns={key:1,class:"sidebar__menu-char"},as={class:"sidebar__menu-text"},ls={key:1,class:"sidebar__user"},is={class:"sidebar__user-info"},rs={class:"sidebar__user-name"},cs={class:"sidebar__user-role"},ds=ke({__name:"Sidebar",props:{menuList:{default:()=>[]},showLogo:{type:Boolean,default:!0},showUser:{type:Boolean,default:!0}},setup(Q){const C=Q,b=$e(),p=Ce(),d=ge(),$=be(),O=Le(),M=ye(),E=g(()=>C.menuList.length>0?C.menuList:d.menuList),z=g(()=>M.isCollapsed),D=g(()=>b.path),W=g(()=>M.isDark?"#1d1e1f":"#fff"),x=g(()=>M.isDark?"#cfd3dc":"#303133"),q=g(()=>"#409eff"),G=h=>{h&&h!==b.path&&p.push(h)},J=()=>{O.logout(),$.clearUserInfo(),d.clearMenu(),p.push("/login")},F=new Set(["arrow-up","arrow-down","arrow-left","arrow-right","caret-down","caret-right","plus","minus","close","check","edit","delete","copy","download","upload","refresh","search","filter","more","setting","share","loading","info","success","warning","error","question","user","user-add","user-group","logout","login","file","folder","folder-open","document","image","video","music","camera","mail","phone","chat","bell","message","eye","eye-off","calendar","clock","history","timer","location","map","globe","star","heart","thumb-up","link","external-link","lock","unlock","key","home","menu","menu-fold","menu-unfold","sidebar-fold","sidebar-expand","sidebar-left","dashboard","chart","chart-pie","chart-line","report","analytics","system","permission","role","user-manage","log","notification","app","list","grid","fullscreen","fullscreen-exit","zoom-in","zoom-out","print","bookmark","tag","code","terminal","database","server","cloud","gift","moon","sun","theme","skin"]),N=h=>{if(!h||h==="")return"";if(h.startsWith("tineco-icon-")){const k=h.replace("tineco-icon-","");return{home:"home",dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",file:"file",folder:"folder",chart:"chart",report:"report",analytics:"analytics"}[k]||k}return{dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",home:"home",chart:"chart",report:"report",analytics:"analytics",permission:"permission",log:"log",notification:"notification",app:"app",list:"list",grid:"grid"}[h]||h},A=h=>h?h.charAt(0):"",I=h=>F.has(h);return(h,R)=>(t(),a("div",{class:T(["sidebar",{"sidebar--collapsed":z.value}])},[C.showLogo?(t(),a("div",He,[R[0]||(R[0]=e("img",{src:Ue,alt:"Logo",class:"sidebar__logo-img"},null,-1)),xe(e("span",{class:"sidebar__logo-text"},u(o(M).appName),513),[[qe,!z.value]])])):y("",!0),m(o(Ee),{"model-value":D.value,mode:"vertical",collapse:z.value,"collapse-transition":!1,"background-color":W.value,"text-color":x.value,"active-text-color":q.value,class:"sidebar__menu",onSelect:G},{default:L(()=>[(t(!0),a(U,null,V(E.value,k=>(t(),a(U,{key:k.menuUrl},[k.children&&k.children.length>0?(t(),S(o(Fe),{key:0,index:k.menuUrl},{title:L(()=>[e("span",je,[k.menuName!=="首页"?(t(),a("span",Qe,[I(N(k.icon))?(t(),S(o(_),{key:0,name:N(k.icon),size:16},null,8,["name"])):(t(),a("span",Je,u(A(k.menuName)),1))])):y("",!0),e("span",Xe,u(k.menuName),1)])]),default:L(()=>[(t(!0),a(U,null,V(k.children,w=>(t(),S(o(fe),{key:w.menuUrl,index:w.menuUrl},{default:L(()=>[e("span",Ye,[e("span",Ze,[I(N(w.icon))?(t(),S(o(_),{key:0,name:N(w.icon),size:16},null,8,["name"])):(t(),a("span",es,u(A(w.menuName)),1))]),e("span",ss,u(w.menuName),1)])]),_:2},1032,["index"]))),128))]),_:2},1032,["index"])):(t(),S(o(fe),{key:1,index:k.menuUrl},{default:L(()=>[e("span",ts,[k.menuName!=="首页"?(t(),a("span",os,[I(N(k.icon))?(t(),S(o(_),{key:0,name:N(k.icon),size:16},null,8,["name"])):(t(),a("span",ns,u(A(k.menuName)),1))])):y("",!0),e("span",as,u(k.menuName),1)])]),_:2},1032,["index"]))],64))),128))]),_:1},8,["model-value","collapse","background-color","text-color","active-text-color"]),C.showUser&&!z.value?(t(),a("div",ls,[e("div",is,[e("span",rs,u(o($).userName),1),e("span",cs,u(o($).departmentName),1)]),m(o(We),{type:"text",size:"small",onClick:J},{default:L(()=>[...R[1]||(R[1]=[Ge("退出",-1)])]),_:1})])):y("",!0)],2))}}),Ve=we(ds,[["__scopeId","data-v-d836d8bb"]]),us={class:"header"},ms={class:"header__left"},ps={key:0,class:"header__breadcrumb"},_s={key:0,class:"breadcrumb-separator"},vs={class:"header__right"},hs={key:0,class:"header__search-dropdown"},fs={key:0,class:"header__search-results"},gs=["onClick"],ys={key:0,class:"header__search-icon"},ks={key:1,class:"header__search-char"},ws={class:"header__search-item-title"},bs={key:1,class:"header__search-item-parent"},xs={key:1,class:"header__search-empty"},$s=["title"],Cs={class:"header__avatar"},Ls={class:"header__user-name"},Ms={key:0,class:"header__dropdown"},Ns={class:"header__dropdown-header"},Ss={class:"header__dropdown-avatar"},zs={class:"header__dropdown-info"},Us={class:"header__dropdown-name"},Es={class:"header__dropdown-role"},Ts={class:"header__dropdown-menu"},Is={class:"settings-drawer"},Ds={class:"settings-section"},Vs={class:"settings-layout-options"},Fs=["onClick"],As={class:"layout-option__preview"},Rs={key:0,class:"layout-preview-sidebar"},Ps={key:1,class:"layout-preview-top"},Bs={key:2,class:"layout-preview-mix"},Os={class:"layout-option__label"},qs={class:"settings-section"},Gs={class:"settings-color-options"},Ks=["title","onClick"],Ws={class:"settings-section"},Hs={class:"settings-switch-list"},js={class:"settings-switch-item"},Qs={class:"settings-switch-item"},Js=ke({__name:"Header",setup(Q){const C=$e(),b=Ce(),p=ye(),d=be(),$=Le(),O=ge(),M=f(!1),E=f(!1),z=f(null),D=f(!1),W=f(!1),x=f(""),q=f(null),G=f(!1),J=[{value:"sidebar",label:"左侧菜单",icon:"sidebar-left"},{value:"top",label:"顶部菜单",icon:"menu"},{value:"mix",label:"混合菜单",icon:"grid"}],F=[{value:"#409eff",label:"默认蓝"},{value:"#1890ff",label:"科技蓝"},{value:"#52c41a",label:"极光绿"},{value:"#faad14",label:"日落橙"},{value:"#f5222d",label:"薄暮红"},{value:"#722ed1",label:"酱紫"}],N=g(()=>C.matched.filter(i=>i.meta&&i.meta.title).map(i=>({title:i.meta.title,path:i.path}))),A=(v,i="")=>{const P=[];return v.forEach(n=>{n.children&&n.children.length>0?P.push(...A(n.children,n.menuName)):P.push({...n,parentTitle:i,title:n.menuName,path:n.menuUrl})}),P},I=new Set(["arrow-up","arrow-down","arrow-left","arrow-right","caret-down","caret-right","plus","minus","close","check","edit","delete","copy","download","upload","refresh","search","filter","more","setting","share","loading","info","success","warning","error","question","user","user-add","user-group","logout","login","file","folder","folder-open","document","image","video","music","camera","mail","phone","chat","bell","message","eye","eye-off","calendar","clock","history","timer","location","map","globe","star","heart","thumb-up","link","external-link","lock","unlock","key","home","menu","menu-fold","menu-unfold","sidebar-fold","sidebar-expand","sidebar-left","dashboard","chart","chart-pie","chart-line","report","analytics","system","permission","role","user-manage","log","notification","app","list","grid","fullscreen","fullscreen-exit","zoom-in","zoom-out","print","bookmark","tag","code","terminal","database","server","cloud","gift","moon","sun","theme","skin"]),h=v=>{if(!v||v==="")return"";if(v.startsWith("tineco-icon-")){const P=v.replace("tineco-icon-","");return{home:"home",dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",file:"file",folder:"folder",chart:"chart",report:"report",analytics:"analytics"}[P]||P}return{dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",home:"home",chart:"chart",report:"report",analytics:"analytics",permission:"permission",log:"log",notification:"notification",app:"app",list:"list",grid:"grid"}[v]||v},R=v=>v?v.charAt(0):"",k=v=>I.has(v),w=g(()=>x.value.trim()?A(O.menuList).filter(i=>i.title.toLowerCase().includes(x.value.toLowerCase())):[]),H=g(()=>p.layout),Z=()=>{p.toggleCollapse()},ee=()=>{p.toggleTheme()},ae=()=>{E.value=!0},te=v=>{p.setLayout(v),E.value=!1},ce=v=>{G.value=v;const i=document.documentElement;v?i.classList.add("grey-mode"):i.classList.remove("grey-mode")},X=()=>{ce(!G.value),E.value=!1},se=()=>{p.toggleTheme(),E.value=!1},de=()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()},j=()=>{D.value=!!document.fullscreenElement},oe=()=>{M.value=!M.value},Y=()=>{M.value=!1},ne=()=>{W.value=!1,x.value=""},ue=v=>{b.push(v),ne()},me=v=>{p.setPrimaryColor(v),E.value=!1},pe=()=>{Y(),b.push("/profile")},_e=()=>{Y(),b.push("/change-password")},ve=()=>{Y(),$.logout(),d.clearUserInfo(),O.clearMenu(),b.push("/login")},le=v=>{z.value&&!z.value.contains(v.target)&&Y(),q.value&&!q.value.contains(v.target)&&ne()},ie=v=>{v.key==="Escape"&&(ne(),Y())};return Me(()=>{document.addEventListener("click",le),document.addEventListener("fullscreenchange",j),document.addEventListener("keydown",ie),p.initTheme(),G.value=document.documentElement.classList.contains("grey-mode")}),Ne(()=>{document.removeEventListener("click",le),document.removeEventListener("fullscreenchange",j),document.removeEventListener("keydown",ie)}),(v,i)=>{var P;return t(),a("div",us,[e("div",ms,[e("div",{class:"header__collapse",onClick:Z},[m(o(_),{name:o(p).isCollapsed?"menu-unfold":"menu-fold",size:18},null,8,["name"])]),o(p).showBreadcrumb?(t(),a("div",ps,[(t(!0),a(U,null,V(N.value,(n,r)=>(t(),a("span",{key:n.path},[r>0?(t(),a("span",_s,"/")):y("",!0),e("span",{class:T({"is-current":r===N.value.length-1})},u(n.title),3)]))),128))])):y("",!0)]),e("div",vs,[e("div",{class:"header__search",ref_key:"searchRef",ref:q},[m(o(_),{name:"search",size:14,class:"header__search-icon"}),xe(e("input",{"onUpdate:modelValue":i[0]||(i[0]=n=>x.value=n),type:"text",class:"header__search-input",placeholder:"搜索菜单...",onFocus:i[1]||(i[1]=n=>W.value=!0)},null,544),[[Se,x.value]]),m(re,{name:"search-dropdown"},{default:L(()=>[W.value&&(w.value.length>0||x.value)?(t(),a("div",hs,[w.value.length>0?(t(),a("div",fs,[(t(!0),a(U,null,V(w.value,n=>(t(),a("div",{key:n.path,class:"header__search-item",onClick:r=>ue(n.path)},[n.title!=="首页"?(t(),a("span",ys,[k(h(n.icon))?(t(),S(o(_),{key:0,name:h(n.icon),size:16},null,8,["name"])):(t(),a("span",ks,u(R(n.title)),1))])):y("",!0),e("span",ws,u(n.title),1),n.parentTitle?(t(),a("span",bs,u(n.parentTitle),1)):y("",!0)],8,gs))),128))])):(t(),a("div",xs," 未找到匹配的菜单 "))])):y("",!0)]),_:1})],512),e("div",{class:"header__action",onClick:de,title:D.value?"退出全屏":"全屏"},[m(o(_),{name:D.value?"fullscreen-exit":"fullscreen",size:16},null,8,["name"])],8,$s),e("div",{class:"header__action",onClick:ae,title:"换肤设置"},[m(o(_),{name:"skin",size:16})]),e("div",{class:"header__action",onClick:ee,title:"切换主题"},[m(o(_),{name:o(p).isDark?"sun":"moon",size:16},null,8,["name"])]),e("div",{class:"header__user",ref_key:"dropdownRef",ref:z},[e("div",{class:"header__user-trigger",onClick:ze(oe,["stop"])},[e("div",Cs,[e("span",null,u(((P=o(d).userName)==null?void 0:P.charAt(0))||"U"),1)]),e("span",Ls,u(o(d).userName),1),e("span",{class:T(["header__user-arrow",{"is-active":M.value}])},"▼",2)]),m(re,{name:"dropdown"},{default:L(()=>{var n;return[M.value?(t(),a("div",Ms,[e("div",Ns,[e("div",Ss,[e("span",null,u(((n=o(d).userName)==null?void 0:n.charAt(0))||"U"),1)]),e("div",zs,[e("div",Us,u(o(d).userName),1),e("div",Es,u(o(d).departmentName),1)])]),i[7]||(i[7]=e("div",{class:"header__dropdown-divider"},null,-1)),e("div",Ts,[e("div",{class:"header__dropdown-item",onClick:pe},[m(o(_),{name:"user",size:16}),i[3]||(i[3]=e("span",null,"个人信息",-1))]),e("div",{class:"header__dropdown-item",onClick:_e},[m(o(_),{name:"lock",size:16}),i[4]||(i[4]=e("span",null,"修改密码",-1))]),i[6]||(i[6]=e("div",{class:"header__dropdown-divider"},null,-1)),e("div",{class:"header__dropdown-item header__dropdown-item--danger",onClick:ve},[m(o(_),{name:"logout",size:16}),i[5]||(i[5]=e("span",null,"退出登录",-1))])])])):y("",!0)]}),_:1})],512)]),m(o(Te),{modelValue:E.value,"onUpdate:modelValue":i[2]||(i[2]=n=>E.value=n),title:"换肤设置",direction:"rtl",size:"320px"},{default:L(()=>[e("div",Is,[e("div",Ds,[i[11]||(i[11]=e("div",{class:"settings-title"},"布局模式",-1)),e("div",Vs,[(t(),a(U,null,V(J,n=>e("div",{key:n.value,class:T(["layout-option",{"is-active":H.value===n.value}]),onClick:r=>te(n.value)},[e("div",As,[n.value==="sidebar"?(t(),a("div",Rs,[...i[8]||(i[8]=[e("div",{class:"preview-aside"},null,-1),e("div",{class:"preview-main"},[e("div",{class:"preview-header"}),e("div",{class:"preview-content"})],-1)])])):n.value==="top"?(t(),a("div",Ps,[...i[9]||(i[9]=[e("div",{class:"preview-header-full"},null,-1),e("div",{class:"preview-content-full"},null,-1)])])):(t(),a("div",Bs,[...i[10]||(i[10]=[e("div",{class:"preview-header-mix"},[e("div",{class:"preview-mix-left"})],-1),e("div",{class:"preview-mix-body"},[e("div",{class:"preview-mix-aside"}),e("div",{class:"preview-mix-content"})],-1)])]))]),e("span",Os,u(n.label),1)],10,Fs)),64))])]),e("div",qs,[i[12]||(i[12]=e("div",{class:"settings-title"},"主题色",-1)),e("div",Gs,[(t(),a(U,null,V(F,n=>e("div",{key:n.value,class:T(["color-option",{"is-active":o(p).primaryColor===n.value}]),style:he({backgroundColor:n.value}),title:n.label,onClick:r=>me(n.value)},[o(p).primaryColor===n.value?(t(),S(o(_),{key:0,name:"check",size:12,color:"#fff"})):y("",!0)],14,Ks)),64))])]),e("div",Ws,[i[17]||(i[17]=e("div",{class:"settings-title"},"功能设置",-1)),e("div",Hs,[e("div",js,[i[14]||(i[14]=e("span",null,"灰色模式",-1)),e("div",{class:T(["switch-wrapper",{"is-checked":G.value}]),onClick:X},[...i[13]||(i[13]=[e("span",{class:"switch-core"},null,-1)])],2)]),e("div",Qs,[i[16]||(i[16]=e("span",null,"暗黑模式",-1)),e("div",{class:T(["switch-wrapper",{"is-checked":o(p).isDark}]),onClick:se},[...i[15]||(i[15]=[e("span",{class:"switch-core"},null,-1)])],2)])])])])]),_:1},8,["modelValue"])])}}}),Xs=we(Js,[["__scopeId","data-v-916fcfad"]]),Ys={class:"top-menu"},Zs={class:"top-menu__logo"},et={class:"top-menu__logo-text"},st={class:"top-menu__menu-content"},tt={key:0,class:"top-menu__menu-icon"},ot={key:1,class:"top-menu__menu-char"},nt={class:"top-menu__menu-text"},at={class:"top-menu__menu-content"},lt={class:"top-menu__menu-icon"},it={key:1,class:"top-menu__menu-char"},rt={class:"top-menu__menu-text"},ct={class:"top-menu__menu-content"},dt={key:0,class:"top-menu__menu-icon"},ut={key:1,class:"top-menu__menu-char"},mt={class:"top-menu__menu-text"},pt={class:"top-menu__actions"},_t={key:0,class:"top-menu__search-dropdown"},vt={key:0,class:"top-menu__search-results"},ht=["onClick"],ft={key:0,class:"top-menu__search-icon-item"},gt={key:1,class:"top-menu__search-char"},yt={class:"top-menu__search-item-title"},kt={key:1,class:"top-menu__search-item-parent"},wt={key:1,class:"top-menu__search-empty"},bt=["title"],xt={class:"top-menu__avatar"},$t={class:"top-menu__user-name"},Ct={key:0,class:"top-menu__dropdown"},Lt={class:"top-menu__dropdown-header"},Mt={class:"top-menu__dropdown-avatar"},Nt={class:"top-menu__dropdown-info"},St={class:"top-menu__dropdown-name"},zt={class:"top-menu__dropdown-role"},Ut={class:"top-menu__dropdown-menu"},Et={class:"settings-drawer"},Tt={class:"settings-section"},It={class:"settings-layout-options"},Dt=["onClick"],Vt={class:"layout-option__preview"},Ft={key:0,class:"layout-preview-sidebar"},At={key:1,class:"layout-preview-top"},Rt={key:2,class:"layout-preview-mix"},Pt={class:"layout-option__label"},Bt={class:"settings-section"},Ot={class:"settings-color-options"},qt=["title","onClick"],Gt={class:"settings-section"},Kt={class:"settings-switch-list"},Wt={class:"settings-switch-item"},Ht={class:"settings-switch-item"},jt=ke({__name:"TopMenu",setup(Q){const C=$e(),b=Ce(),p=ge(),d=ye(),$=be(),O=Le(),M=g(()=>C.path),E=(n,r="")=>{const K=[];return n.forEach(s=>{s.children&&s.children.length>0?K.push(...E(s.children,s.menuName)):K.push({...s,parentTitle:r,title:s.menuName,path:s.menuUrl})}),K},z=g(()=>I.value.trim()?E(p.menuList).filter(r=>r.title.toLowerCase().includes(I.value.toLowerCase())):[]),D=g(()=>d.isDark?"#1d1e1f":"#fff"),W=g(()=>d.isDark?"#cfd3dc":"#303133"),x=g(()=>"#409eff"),q=f(!1),G=f(null),J=f(!1),F=f(!1),N=f(!1),A=f(!1),I=f(""),h=f(null),R=n=>{n&&n!==C.path&&b.push(n)},k=new Set(["arrow-up","arrow-down","arrow-left","arrow-right","caret-down","caret-right","plus","minus","close","check","edit","delete","copy","download","upload","refresh","search","filter","more","setting","share","loading","info","success","warning","error","question","user","user-add","user-group","logout","login","file","folder","folder-open","document","image","video","music","camera","mail","phone","chat","bell","message","eye","eye-off","calendar","clock","history","timer","location","map","globe","star","heart","thumb-up","link","external-link","lock","unlock","key","home","menu","menu-fold","menu-unfold","sidebar-fold","sidebar-expand","sidebar-left","dashboard","chart","chart-pie","chart-line","report","analytics","system","permission","role","user-manage","log","notification","app","list","grid","fullscreen","fullscreen-exit","zoom-in","zoom-out","print","bookmark","tag","code","terminal","database","server","cloud","gift","moon","sun","theme","skin"]),w=n=>{if(!n||n==="")return"";if(n.startsWith("tineco-icon-")){const K=n.replace("tineco-icon-","");return{home:"home",dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",file:"file",folder:"folder",chart:"chart",report:"report",analytics:"analytics"}[K]||K}return{dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",home:"home",chart:"chart",report:"report",analytics:"analytics",permission:"permission",log:"log",notification:"notification",app:"app",list:"list",grid:"grid"}[n]||n},H=n=>n?n.charAt(0):"",Z=n=>k.has(n),ee=()=>{d.toggleTheme(),F.value=!1},ae=()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()},te=()=>{J.value=!!document.fullscreenElement},ce=()=>{q.value=!q.value},X=()=>{q.value=!1},se=()=>{A.value=!1,I.value=""},de=n=>{b.push(n),se()},j=()=>{F.value=!0},oe=n=>{N.value=n;const r=document.documentElement;n?r.classList.add("grey-mode"):r.classList.remove("grey-mode")},Y=()=>{oe(!N.value),F.value=!1},ne=()=>{d.toggleTheme(),F.value=!1},ue=[{value:"sidebar",label:"左侧菜单",icon:"sidebar-left"},{value:"top",label:"顶部菜单",icon:"menu"},{value:"mix",label:"混合菜单",icon:"grid"}],me=g(()=>d.layout),pe=n=>{d.setLayout(n),F.value=!1},_e=[{value:"#409eff",label:"默认蓝"},{value:"#1890ff",label:"科技蓝"},{value:"#52c41a",label:"极光绿"},{value:"#faad14",label:"日落橙"},{value:"#f5222d",label:"薄暮红"},{value:"#722ed1",label:"酱紫"}],ve=n=>{d.setPrimaryColor(n),F.value=!1},le=()=>{X(),b.push("/profile")},ie=()=>{X(),b.push("/change-password")},v=()=>{X(),O.logout(),$.clearUserInfo(),p.clearMenu(),b.push("/login")},i=n=>{G.value&&!G.value.contains(n.target)&&X(),h.value&&!h.value.contains(n.target)&&se()},P=n=>{n.key==="Escape"&&(se(),X())};return Me(()=>{document.addEventListener("click",i),document.addEventListener("fullscreenchange",te),document.addEventListener("keydown",P),N.value=document.documentElement.classList.contains("grey-mode")}),Ne(()=>{document.removeEventListener("click",i),document.removeEventListener("fullscreenchange",te),document.removeEventListener("keydown",P)}),(n,r)=>{var K;return t(),a("div",Ys,[e("div",Zs,[r[3]||(r[3]=e("img",{src:Ue,alt:"Logo",class:"top-menu__logo-img"},null,-1)),e("span",et,u(o(d).appName),1)]),m(o(Ee),{"model-value":M.value,mode:"horizontal","background-color":D.value,"text-color":W.value,"active-text-color":x.value,class:"top-menu__menu",onSelect:R},{default:L(()=>[(t(!0),a(U,null,V(o(p).menuList,s=>(t(),a(U,{key:s.menuUrl},[s.children&&s.children.length>0?(t(),S(o(Fe),{key:0,index:s.menuUrl},{title:L(()=>[e("span",st,[s.menuName!=="首页"?(t(),a("span",tt,[Z(w(s.icon))?(t(),S(o(_),{key:0,name:w(s.icon),size:16},null,8,["name"])):(t(),a("span",ot,u(H(s.menuName)),1))])):y("",!0),e("span",nt,u(s.menuName),1)])]),default:L(()=>[(t(!0),a(U,null,V(s.children,l=>(t(),S(o(fe),{key:l.menuUrl,index:l.menuUrl},{default:L(()=>[e("span",at,[e("span",lt,[Z(w(l.icon))?(t(),S(o(_),{key:0,name:w(l.icon),size:16},null,8,["name"])):(t(),a("span",it,u(H(l.menuName)),1))]),e("span",rt,u(l.menuName),1)])]),_:2},1032,["index"]))),128))]),_:2},1032,["index"])):(t(),S(o(fe),{key:1,index:s.menuUrl},{default:L(()=>[e("span",ct,[s.menuName!=="首页"?(t(),a("span",dt,[Z(w(s.icon))?(t(),S(o(_),{key:0,name:w(s.icon),size:16},null,8,["name"])):(t(),a("span",ut,u(H(s.menuName)),1))])):y("",!0),e("span",mt,u(s.menuName),1)])]),_:2},1032,["index"]))],64))),128))]),_:1},8,["model-value","background-color","text-color","active-text-color"]),e("div",pt,[e("div",{class:"top-menu__search",ref_key:"searchRef",ref:h},[m(o(_),{name:"search",size:14,class:"top-menu__search-icon"}),xe(e("input",{"onUpdate:modelValue":r[0]||(r[0]=s=>I.value=s),type:"text",class:"top-menu__search-input",placeholder:"搜索菜单...",onFocus:r[1]||(r[1]=s=>A.value=!0)},null,544),[[Se,I.value]]),m(re,{name:"search-dropdown"},{default:L(()=>[A.value&&(z.value.length>0||I.value)?(t(),a("div",_t,[z.value.length>0?(t(),a("div",vt,[(t(!0),a(U,null,V(z.value,s=>(t(),a("div",{key:s.path,class:"top-menu__search-item",onClick:l=>de(s.path)},[s.title!=="首页"?(t(),a("span",ft,[Z(w(s.icon))?(t(),S(o(_),{key:0,name:w(s.icon),size:16},null,8,["name"])):(t(),a("span",gt,u(H(s.title)),1))])):y("",!0),e("span",yt,u(s.title),1),s.parentTitle?(t(),a("span",kt,u(s.parentTitle),1)):y("",!0)],8,ht))),128))])):(t(),a("div",wt," 未找到匹配的菜单 "))])):y("",!0)]),_:1})],512),e("div",{class:"top-menu__action",onClick:ae,title:J.value?"退出全屏":"全屏"},[m(o(_),{name:J.value?"fullscreen-exit":"fullscreen",size:16},null,8,["name"])],8,bt),e("div",{class:"top-menu__action",onClick:j,title:"换肤设置"},[m(o(_),{name:"skin",size:16})]),e("div",{class:"top-menu__action",onClick:ee,title:"切换主题"},[m(o(_),{name:o(d).isDark?"sun":"moon",size:16},null,8,["name"])]),e("div",{class:"top-menu__user",ref_key:"dropdownRef",ref:G},[e("div",{class:"top-menu__user-trigger",onClick:ze(ce,["stop"])},[e("div",xt,[e("span",null,u(((K=o($).userName)==null?void 0:K.charAt(0))||"U"),1)]),e("span",$t,u(o($).userName),1),e("span",{class:T(["top-menu__user-arrow",{"is-active":q.value}])},"▼",2)]),m(re,{name:"dropdown"},{default:L(()=>{var s;return[q.value?(t(),a("div",Ct,[e("div",Lt,[e("div",Mt,[e("span",null,u(((s=o($).userName)==null?void 0:s.charAt(0))||"U"),1)]),e("div",Nt,[e("div",St,u(o($).userName),1),e("div",zt,u(o($).departmentName),1)])]),r[8]||(r[8]=e("div",{class:"top-menu__dropdown-divider"},null,-1)),e("div",Ut,[e("div",{class:"top-menu__dropdown-item",onClick:le},[m(o(_),{name:"user",size:16}),r[4]||(r[4]=e("span",null,"个人信息",-1))]),e("div",{class:"top-menu__dropdown-item",onClick:ie},[m(o(_),{name:"lock",size:16}),r[5]||(r[5]=e("span",null,"修改密码",-1))]),r[7]||(r[7]=e("div",{class:"top-menu__dropdown-divider"},null,-1)),e("div",{class:"top-menu__dropdown-item top-menu__dropdown-item--danger",onClick:v},[m(o(_),{name:"logout",size:16}),r[6]||(r[6]=e("span",null,"退出登录",-1))])])])):y("",!0)]}),_:1})],512)]),m(o(Te),{modelValue:F.value,"onUpdate:modelValue":r[2]||(r[2]=s=>F.value=s),title:"换肤设置",direction:"rtl",size:"320px"},{default:L(()=>[e("div",Et,[e("div",Tt,[r[12]||(r[12]=e("div",{class:"settings-title"},"布局模式",-1)),e("div",It,[(t(),a(U,null,V(ue,s=>e("div",{key:s.value,class:T(["layout-option",{"is-active":me.value===s.value}]),onClick:l=>pe(s.value)},[e("div",Vt,[s.value==="sidebar"?(t(),a("div",Ft,[...r[9]||(r[9]=[e("div",{class:"preview-aside"},null,-1),e("div",{class:"preview-main"},[e("div",{class:"preview-header"}),e("div",{class:"preview-content"})],-1)])])):s.value==="top"?(t(),a("div",At,[...r[10]||(r[10]=[e("div",{class:"preview-header-full"},null,-1),e("div",{class:"preview-content-full"},null,-1)])])):(t(),a("div",Rt,[...r[11]||(r[11]=[e("div",{class:"preview-header-mix"},[e("div",{class:"preview-mix-left"})],-1),e("div",{class:"preview-mix-body"},[e("div",{class:"preview-mix-aside"}),e("div",{class:"preview-mix-content"})],-1)])]))]),e("span",Pt,u(s.label),1)],10,Dt)),64))])]),e("div",Bt,[r[13]||(r[13]=e("div",{class:"settings-title"},"主题色",-1)),e("div",Ot,[(t(),a(U,null,V(_e,s=>e("div",{key:s.value,class:T(["color-option",{"is-active":o(d).primaryColor===s.value}]),style:he({backgroundColor:s.value}),title:s.label,onClick:l=>ve(s.value)},[o(d).primaryColor===s.value?(t(),S(o(_),{key:0,name:"check",size:12,color:"#fff"})):y("",!0)],14,qt)),64))])]),e("div",Gt,[r[18]||(r[18]=e("div",{class:"settings-title"},"功能设置",-1)),e("div",Kt,[e("div",Wt,[r[15]||(r[15]=e("span",null,"灰色模式",-1)),e("div",{class:T(["switch-wrapper",{"is-checked":N.value}]),onClick:Y},[...r[14]||(r[14]=[e("span",{class:"switch-core"},null,-1)])],2)]),e("div",Ht,[r[17]||(r[17]=e("span",null,"暗黑模式",-1)),e("div",{class:T(["switch-wrapper",{"is-checked":o(d).isDark}]),onClick:ne},[...r[16]||(r[16]=[e("span",{class:"switch-core"},null,-1)])],2)])])])])]),_:1},8,["modelValue"])])}}}),Qt=we(jt,[["__scopeId","data-v-ff5f8764"]]),Jt={class:"mix-top-menu"},Xt={class:"mix-top-menu__logo"},Yt={class:"mix-top-menu__logo-text"},Zt={class:"mix-top-menu__menu-content"},eo={key:0,class:"mix-top-menu__menu-icon"},so={key:1,class:"mix-top-menu__menu-char"},to={class:"mix-top-menu__menu-text"},oo={class:"mix-top-menu__actions"},no={key:0,class:"mix-top-menu__search-dropdown"},ao={key:0,class:"mix-top-menu__search-results"},lo=["onClick"],io={key:0,class:"mix-top-menu__search-icon-item"},ro={key:1,class:"mix-top-menu__search-char"},co={class:"mix-top-menu__search-item-title"},uo={key:1,class:"mix-top-menu__search-item-parent"},mo={key:1,class:"mix-top-menu__search-empty"},po=["title"],_o={class:"mix-top-menu__avatar"},vo={class:"mix-top-menu__user-name"},ho={key:0,class:"mix-top-menu__dropdown"},fo={class:"mix-top-menu__dropdown-header"},go={class:"mix-top-menu__dropdown-avatar"},yo={class:"mix-top-menu__dropdown-info"},ko={class:"mix-top-menu__dropdown-name"},wo={class:"mix-top-menu__dropdown-role"},bo={class:"mix-top-menu__dropdown-menu"},xo={class:"settings-drawer"},$o={class:"settings-section"},Co={class:"settings-layout-options"},Lo=["onClick"],Mo={class:"layout-option__preview"},No={key:0,class:"layout-preview-sidebar"},So={key:1,class:"layout-preview-top"},zo={key:2,class:"layout-preview-mix"},Uo={class:"layout-option__label"},Eo={class:"settings-section"},To={class:"settings-color-options"},Io=["title","onClick"],Do={class:"settings-section"},Vo={class:"settings-switch-list"},Fo={class:"settings-switch-item"},Ao={class:"settings-switch-item"},Ro=ke({__name:"MixTopMenu",setup(Q){const C=$e(),b=Ce(),p=ge(),d=ye(),$=be(),O=Le(),M=f(""),E=(s,l="")=>{const B=[];return s.forEach(c=>{c.children&&c.children.length>0?B.push(...E(c.children,c.menuName)):B.push({...c,parentTitle:l,title:c.menuName,path:c.menuUrl})}),B},z=g(()=>w.value.trim()?E(p.menuList).filter(l=>l.title.toLowerCase().includes(w.value.toLowerCase())):[]),D=g(()=>{const s=p.menuList.find(l=>l.menuUrl===M.value);return(s==null?void 0:s.children)||[]}),W=g(()=>p.menuList.find(s=>!!(C.path===s.menuUrl||s.children&&s.children.some(l=>C.path.startsWith(l.menuUrl)||C.path===l.menuUrl)))),x=()=>{W.value?M.value=W.value.menuUrl:p.menuList.length>0&&(M.value=p.menuList[0].menuUrl)},q=s=>{M.value=s;const l=p.menuList.find(B=>B.menuUrl===s);if(l)if(l.children&&l.children.length>0){const B=l.children[0].menuUrl;C.path!==B&&b.push(B)}else C.path!==s&&b.push(s)},G=g(()=>d.isDark?"#1d1e1f":"#fff"),J=g(()=>d.isDark?"#cfd3dc":"#303133"),F=g(()=>"#409eff"),N=f(!1),A=f(null),I=f(!1),h=f(!1),R=f(!1),k=f(!1),w=f(""),H=f(null);De(()=>C.path,()=>{x(),d.setMixSubMenus(D.value)}),De(()=>p.menuList,s=>{s&&s.length>0&&(x(),d.setMixSubMenus(D.value))},{immediate:!0});const Z=new Set(["arrow-up","arrow-down","arrow-left","arrow-right","caret-down","caret-right","plus","minus","close","check","edit","delete","copy","download","upload","refresh","search","filter","more","setting","share","loading","info","success","warning","error","question","user","user-add","user-group","logout","login","file","folder","folder-open","document","image","video","music","camera","mail","phone","chat","bell","message","eye","eye-off","calendar","clock","history","timer","location","map","globe","star","heart","thumb-up","link","external-link","lock","unlock","key","home","menu","menu-fold","menu-unfold","sidebar-fold","sidebar-expand","sidebar-left","dashboard","chart","chart-pie","chart-line","report","analytics","system","permission","role","user-manage","log","notification","app","list","grid","fullscreen","fullscreen-exit","zoom-in","zoom-out","print","bookmark","tag","code","terminal","database","server","cloud","gift","moon","sun","theme","skin"]),ee=s=>{if(!s||s==="")return"";if(s.startsWith("tineco-icon-")){const B=s.replace("tineco-icon-","");return{home:"home",dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",file:"file",folder:"folder",chart:"chart",report:"report",analytics:"analytics"}[B]||B}return{dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",home:"home",chart:"chart",report:"report",analytics:"analytics",permission:"permission",log:"log",notification:"notification",app:"app",list:"list",grid:"grid"}[s]||s},ae=s=>s?s.charAt(0):"",te=s=>Z.has(s),ce=()=>{d.toggleTheme(),h.value=!1},X=()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()},se=()=>{I.value=!!document.fullscreenElement},de=()=>{N.value=!N.value},j=()=>{N.value=!1},oe=()=>{k.value=!1,w.value=""},Y=s=>{b.push(s),oe()},ne=()=>{h.value=!0},ue=s=>{R.value=s;const l=document.documentElement;s?l.classList.add("grey-mode"):l.classList.remove("grey-mode")},me=()=>{ue(!R.value),h.value=!1},pe=()=>{d.toggleTheme(),h.value=!1},_e=[{value:"sidebar",label:"左侧菜单",icon:"sidebar-left"},{value:"top",label:"顶部菜单",icon:"menu"},{value:"mix",label:"混合菜单",icon:"grid"}],ve=g(()=>d.layout),le=s=>{d.setLayout(s),h.value=!1},ie=[{value:"#409eff",label:"默认蓝"},{value:"#1890ff",label:"科技蓝"},{value:"#52c41a",label:"极光绿"},{value:"#faad14",label:"日落橙"},{value:"#f5222d",label:"薄暮红"},{value:"#722ed1",label:"酱紫"}],v=s=>{d.setPrimaryColor(s),h.value=!1},i=()=>{j(),b.push("/profile")},P=()=>{j(),b.push("/change-password")},n=()=>{j(),O.logout(),$.clearUserInfo(),p.clearMenu(),b.push("/login")},r=s=>{A.value&&!A.value.contains(s.target)&&j(),H.value&&!H.value.contains(s.target)&&oe()},K=s=>{s.key==="Escape"&&(oe(),j())};return Me(()=>{document.addEventListener("click",r),document.addEventListener("fullscreenchange",se),document.addEventListener("keydown",K),R.value=document.documentElement.classList.contains("grey-mode"),x()}),Ne(()=>{document.removeEventListener("click",r),document.removeEventListener("fullscreenchange",se),document.removeEventListener("keydown",K)}),(s,l)=>{var B;return t(),a("div",Jt,[e("div",Xt,[l[3]||(l[3]=e("img",{src:Ue,alt:"Logo",class:"mix-top-menu__logo-img"},null,-1)),e("span",Yt,u(o(d).appName),1)]),m(o(Ee),{"model-value":M.value,mode:"horizontal","background-color":G.value,"text-color":J.value,"active-text-color":F.value,class:"mix-top-menu__menu",onSelect:q},{default:L(()=>[(t(!0),a(U,null,V(o(p).menuList,c=>(t(),S(o(fe),{key:c.menuUrl,index:c.menuUrl},{default:L(()=>[e("span",Zt,[c.menuName!=="首页"?(t(),a("span",eo,[te(ee(c.icon))?(t(),S(o(_),{key:0,name:ee(c.icon),size:16},null,8,["name"])):(t(),a("span",so,u(ae(c.menuName)),1))])):y("",!0),e("span",to,u(c.menuName),1)])]),_:2},1032,["index"]))),128))]),_:1},8,["model-value","background-color","text-color","active-text-color"]),e("div",oo,[e("div",{class:"mix-top-menu__search",ref_key:"searchRef",ref:H},[m(o(_),{name:"search",size:14,class:"mix-top-menu__search-icon"}),xe(e("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>w.value=c),type:"text",class:"mix-top-menu__search-input",placeholder:"搜索菜单...",onFocus:l[1]||(l[1]=c=>k.value=!0)},null,544),[[Se,w.value]]),m(re,{name:"search-dropdown"},{default:L(()=>[k.value&&(z.value.length>0||w.value)?(t(),a("div",no,[z.value.length>0?(t(),a("div",ao,[(t(!0),a(U,null,V(z.value,c=>(t(),a("div",{key:c.path,class:"mix-top-menu__search-item",onClick:Ie=>Y(c.path)},[c.title!=="首页"?(t(),a("span",io,[te(ee(c.icon))?(t(),S(o(_),{key:0,name:ee(c.icon),size:16},null,8,["name"])):(t(),a("span",ro,u(ae(c.title)),1))])):y("",!0),e("span",co,u(c.title),1),c.parentTitle?(t(),a("span",uo,u(c.parentTitle),1)):y("",!0)],8,lo))),128))])):(t(),a("div",mo," 未找到匹配的菜单 "))])):y("",!0)]),_:1})],512),e("div",{class:"mix-top-menu__action",onClick:X,title:I.value?"退出全屏":"全屏"},[m(o(_),{name:I.value?"fullscreen-exit":"fullscreen",size:16},null,8,["name"])],8,po),e("div",{class:"mix-top-menu__action",onClick:ne,title:"换肤设置"},[m(o(_),{name:"skin",size:16})]),e("div",{class:"mix-top-menu__action",onClick:ce,title:"切换主题"},[m(o(_),{name:o(d).isDark?"sun":"moon",size:16},null,8,["name"])]),e("div",{class:"mix-top-menu__user",ref_key:"dropdownRef",ref:A},[e("div",{class:"mix-top-menu__user-trigger",onClick:ze(de,["stop"])},[e("div",_o,[e("span",null,u(((B=o($).userName)==null?void 0:B.charAt(0))||"U"),1)]),e("span",vo,u(o($).userName),1),e("span",{class:T(["mix-top-menu__user-arrow",{"is-active":N.value}])},"▼",2)]),m(re,{name:"dropdown"},{default:L(()=>{var c;return[N.value?(t(),a("div",ho,[e("div",fo,[e("div",go,[e("span",null,u(((c=o($).userName)==null?void 0:c.charAt(0))||"U"),1)]),e("div",yo,[e("div",ko,u(o($).userName),1),e("div",wo,u(o($).departmentName),1)])]),l[8]||(l[8]=e("div",{class:"mix-top-menu__dropdown-divider"},null,-1)),e("div",bo,[e("div",{class:"mix-top-menu__dropdown-item",onClick:i},[m(o(_),{name:"user",size:16}),l[4]||(l[4]=e("span",null,"个人信息",-1))]),e("div",{class:"mix-top-menu__dropdown-item",onClick:P},[m(o(_),{name:"lock",size:16}),l[5]||(l[5]=e("span",null,"修改密码",-1))]),l[7]||(l[7]=e("div",{class:"mix-top-menu__dropdown-divider"},null,-1)),e("div",{class:"mix-top-menu__dropdown-item mix-top-menu__dropdown-item--danger",onClick:n},[m(o(_),{name:"logout",size:16}),l[6]||(l[6]=e("span",null,"退出登录",-1))])])])):y("",!0)]}),_:1})],512)]),m(o(Te),{modelValue:h.value,"onUpdate:modelValue":l[2]||(l[2]=c=>h.value=c),title:"换肤设置",direction:"rtl",size:"320px"},{default:L(()=>[e("div",xo,[e("div",$o,[l[12]||(l[12]=e("div",{class:"settings-title"},"布局模式",-1)),e("div",Co,[(t(),a(U,null,V(_e,c=>e("div",{key:c.value,class:T(["layout-option",{"is-active":ve.value===c.value}]),onClick:Ie=>le(c.value)},[e("div",Mo,[c.value==="sidebar"?(t(),a("div",No,[...l[9]||(l[9]=[e("div",{class:"preview-aside"},null,-1),e("div",{class:"preview-main"},[e("div",{class:"preview-header"}),e("div",{class:"preview-content"})],-1)])])):c.value==="top"?(t(),a("div",So,[...l[10]||(l[10]=[e("div",{class:"preview-header-full"},null,-1),e("div",{class:"preview-content-full"},null,-1)])])):(t(),a("div",zo,[...l[11]||(l[11]=[e("div",{class:"preview-header-mix"},[e("div",{class:"preview-mix-left"})],-1),e("div",{class:"preview-mix-body"},[e("div",{class:"preview-mix-aside"}),e("div",{class:"preview-mix-content"})],-1)])]))]),e("span",Uo,u(c.label),1)],10,Lo)),64))])]),e("div",Eo,[l[13]||(l[13]=e("div",{class:"settings-title"},"主题色",-1)),e("div",To,[(t(),a(U,null,V(ie,c=>e("div",{key:c.value,class:T(["color-option",{"is-active":o(d).primaryColor===c.value}]),style:he({backgroundColor:c.value}),title:c.label,onClick:Ie=>v(c.value)},[o(d).primaryColor===c.value?(t(),S(o(_),{key:0,name:"check",size:12,color:"#fff"})):y("",!0)],14,Io)),64))])]),e("div",Do,[l[18]||(l[18]=e("div",{class:"settings-title"},"功能设置",-1)),e("div",Vo,[e("div",Fo,[l[15]||(l[15]=e("span",null,"灰色模式",-1)),e("div",{class:T(["switch-wrapper",{"is-checked":R.value}]),onClick:me},[...l[14]||(l[14]=[e("span",{class:"switch-core"},null,-1)])],2)]),e("div",Ao,[l[17]||(l[17]=e("span",null,"暗黑模式",-1)),e("div",{class:T(["switch-wrapper",{"is-checked":o(d).isDark}]),onClick:pe},[...l[16]||(l[16]=[e("span",{class:"switch-core"},null,-1)])],2)])])])])]),_:1},8,["modelValue"])])}}}),Po=we(Ro,[["__scopeId","data-v-25806305"]]),Bo={key:0,class:"layout layout--sidebar"},Oo={class:"layout__main"},qo={class:"layout__header"},Go={class:"layout__content"},Ko={key:1,class:"layout layout--top"},Wo={class:"layout__top-menu"},Ho={class:"layout__main"},jo={class:"layout__content"},Qo={key:2,class:"layout layout--mix"},Jo={class:"layout__mix-top-menu"},Xo={class:"layout__mix-body"},Yo={class:"layout__content"},Zo=ke({__name:"index",setup(Q){const C=ye(),b=ge(),p=g(()=>C.isCollapsed?"64px":"210px"),d=g(()=>C.layout),$=g(()=>d.value==="mix"),O=g(()=>d.value==="sidebar"?b.menuList:d.value==="mix"?C.mixSubMenus:[]),M=g(()=>$.value?O.value.length>0:!1);return(E,z)=>{const D=Ke("router-view");return t(),a(U,null,[d.value==="sidebar"?(t(),a("div",Bo,[e("aside",{class:"layout__aside",style:he({width:p.value})},[m(Ve,{"menu-list":O.value,"show-logo":!0,"show-user":!0},null,8,["menu-list"])],4),e("div",Oo,[e("header",qo,[m(Xs)]),e("main",Go,[m(D)])])])):y("",!0),d.value==="top"?(t(),a("div",Ko,[e("div",Wo,[m(Qt)]),e("div",Ho,[e("main",jo,[m(D)])])])):y("",!0),d.value==="mix"?(t(),a("div",Qo,[e("div",Jo,[m(Po)]),e("div",Xo,[M.value?(t(),a("aside",{key:0,class:"layout__aside",style:he({width:p.value})},[m(Ve,{"menu-list":O.value,"show-logo":!1,"show-user":!1},null,8,["menu-list"])],4)):y("",!0),e("main",Yo,[m(D)])])])):y("",!0)],64)}}}),pn=we(Zo,[["__scopeId","data-v-70b115a5"]]);export{pn as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.sidebar[data-v-d836d8bb]{height:100%;display:flex;flex-direction:column;background-color:var(--bg-color);border-right:1px solid var(--color-border-lighter)}.sidebar--collapsed .sidebar__logo[data-v-d836d8bb]{justify-content:center;padding:0}.sidebar__logo[data-v-d836d8bb]{height:50px;display:flex;align-items:center;padding:0 20px;gap:10px;border-bottom:1px solid var(--color-border-lighter)}.sidebar__logo-img[data-v-d836d8bb]{width:32px;height:32px}.sidebar__logo-text[data-v-d836d8bb]{font-size:16px;font-weight:600;color:var(--color-primary)}.sidebar__menu[data-v-d836d8bb]{flex:1;border-right:none;overflow-y:auto}.sidebar__menu-content[data-v-d836d8bb]{display:inline-flex;align-items:center;line-height:1}.sidebar__menu-text[data-v-d836d8bb]{flex:1;line-height:1}.sidebar__menu-icon[data-v-d836d8bb]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0}.sidebar__menu-char[data-v-d836d8bb]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;color:var(--color-primary);background-color:var(--color-primary-light-8);border-radius:4px}.sidebar__user[data-v-d836d8bb]{padding:10px;border-top:1px solid var(--color-border-lighter);display:flex;align-items:center;justify-content:space-between}.sidebar__user-info[data-v-d836d8bb]{display:flex;flex-direction:column;gap:2px}.sidebar__user-name[data-v-d836d8bb]{font-size:14px;font-weight:500}.sidebar__user-role[data-v-d836d8bb]{font-size:12px;color:var(--color-text-secondary)}.header[data-v-916fcfad]{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:100%;background-color:var(--bg-color);border-bottom:1px solid var(--color-border-lighter)}.header__left[data-v-916fcfad]{display:flex;align-items:center;gap:15px}.header__collapse[data-v-916fcfad]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-regular);transition:color .2s}.header__collapse[data-v-916fcfad]:hover{color:var(--color-primary)}.header__breadcrumb[data-v-916fcfad]{font-size:14px;color:var(--color-text-secondary)}.header__breadcrumb .breadcrumb-separator[data-v-916fcfad]{margin:0 8px;color:var(--color-text-placeholder)}.header__breadcrumb .is-current[data-v-916fcfad]{color:var(--color-text-primary);font-weight:500}.header__right[data-v-916fcfad]{display:flex;align-items:center;gap:8px}.header__search[data-v-916fcfad]{position:relative;display:flex;align-items:center;background-color:var(--color-fill-light);border-radius:var(--border-radius-base);padding:0 12px;height:32px;width:200px}.header__search-icon[data-v-916fcfad]{color:var(--color-text-secondary)}.header__search-input[data-v-916fcfad]{flex:1;height:100%;font-size:14px;color:var(--color-text-primary);background:transparent;border:none;outline:none;padding-left:8px}.header__search-input[data-v-916fcfad]::placeholder{color:var(--color-text-placeholder)}.header__search-dropdown[data-v-916fcfad]{position:absolute;top:calc(100% + 4px);left:0;right:0;min-width:200px;max-height:300px;overflow-y:auto;background-color:var(--bg-color);border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);z-index:100}.header__search-results[data-v-916fcfad]{padding:8px 0}.header__search-item[data-v-916fcfad]{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background-color .2s}.header__search-item[data-v-916fcfad]:hover{background-color:var(--color-fill)}.header__search-item-title[data-v-916fcfad]{font-size:14px;color:var(--color-text-primary)}.header__search-item-parent[data-v-916fcfad]{font-size:12px;color:var(--color-text-secondary);margin-left:auto}.header__search-icon[data-v-916fcfad]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.header__search-char[data-v-916fcfad]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;color:var(--color-primary);background-color:var(--color-primary-light-8);border-radius:4px}.header__search-empty[data-v-916fcfad]{padding:16px 12px;text-align:center;color:var(--color-text-secondary);font-size:14px}.header__action[data-v-916fcfad]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--border-radius-base);color:var(--color-text-regular);transition:all .2s}.header__action[data-v-916fcfad]:hover{background-color:var(--color-fill);color:var(--color-primary)}.header__user[data-v-916fcfad]{position:relative;margin-left:8px}.header__user-trigger[data-v-916fcfad]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:var(--border-radius-base);transition:background-color .2s}.header__user-trigger[data-v-916fcfad]:hover{background-color:var(--color-fill)}.header__user-name[data-v-916fcfad]{font-size:14px;color:var(--color-text-primary);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header__user-arrow[data-v-916fcfad]{font-size:10px;color:var(--color-text-secondary);transition:transform .2s}.header__user-arrow.is-active[data-v-916fcfad]{transform:rotate(180deg)}.header__avatar[data-v-916fcfad]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:500}.header__dropdown[data-v-916fcfad]{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background-color:var(--bg-color);border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);overflow:hidden;z-index:100}.header__dropdown-header[data-v-916fcfad]{display:flex;align-items:center;gap:12px;padding:16px}.header__dropdown-avatar[data-v-916fcfad]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:500}.header__dropdown-info[data-v-916fcfad]{flex:1}.header__dropdown-name[data-v-916fcfad]{font-size:14px;font-weight:500;color:var(--color-text-primary)}.header__dropdown-role[data-v-916fcfad]{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.header__dropdown-divider[data-v-916fcfad]{height:1px;background-color:var(--color-border-lighter)}.header__dropdown-menu[data-v-916fcfad]{padding:8px 0}.header__dropdown-item[data-v-916fcfad]{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:14px;color:var(--color-text-regular);transition:all .2s}.header__dropdown-item[data-v-916fcfad]:hover{background-color:var(--color-fill);color:var(--color-text-primary)}.header__dropdown-item--danger[data-v-916fcfad]{color:var(--color-danger)}.header__dropdown-item--danger[data-v-916fcfad]:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.settings-drawer .settings-section[data-v-916fcfad]{margin-bottom:24px}.settings-drawer .settings-title[data-v-916fcfad]{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:12px}.settings-drawer .settings-layout-options[data-v-916fcfad]{display:flex;gap:12px}.settings-drawer .layout-option[data-v-916fcfad]{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--border-radius-base);cursor:pointer;transition:all .2s}.settings-drawer .layout-option[data-v-916fcfad]:hover{border-color:var(--color-primary-light-5)}.settings-drawer .layout-option.is-active[data-v-916fcfad]{border-color:var(--color-primary);background-color:var(--color-primary-light-9)}.settings-drawer .layout-option__preview[data-v-916fcfad]{width:48px;height:36px;border:1px solid var(--color-border-light);border-radius:2px;overflow:hidden}.settings-drawer .layout-option__label[data-v-916fcfad]{font-size:12px;color:var(--color-text-regular)}.settings-drawer .layout-preview-sidebar[data-v-916fcfad]{display:flex;height:100%}.settings-drawer .layout-preview-sidebar .preview-aside[data-v-916fcfad]{width:25%;height:100%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-sidebar .preview-main[data-v-916fcfad]{flex:1;display:flex;flex-direction:column}.settings-drawer .layout-preview-sidebar .preview-main .preview-header[data-v-916fcfad]{height:20%;background-color:var(--color-border-light)}.settings-drawer .layout-preview-sidebar .preview-main .preview-content[data-v-916fcfad]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-top[data-v-916fcfad]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-top .preview-header-full[data-v-916fcfad]{height:25%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-top .preview-content-full[data-v-916fcfad]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-mix[data-v-916fcfad]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-mix .preview-header-mix[data-v-916fcfad]{height:25%;background-color:var(--color-primary-light-7);display:flex}.settings-drawer .layout-preview-mix .preview-header-mix .preview-mix-left[data-v-916fcfad]{width:30%;background-color:var(--color-primary)}.settings-drawer .layout-preview-mix .preview-mix-body[data-v-916fcfad]{flex:1;display:flex}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-aside[data-v-916fcfad]{width:25%;background-color:var(--color-primary-light-8)}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-content[data-v-916fcfad]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .settings-color-options[data-v-916fcfad]{display:flex;gap:12px}.settings-drawer .color-option[data-v-916fcfad]{width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.settings-drawer .color-option[data-v-916fcfad]:hover{transform:scale(1.1)}.settings-drawer .color-option.is-active[data-v-916fcfad]{box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px var(--color-primary)}.settings-drawer .settings-switch-list[data-v-916fcfad]{display:flex;flex-direction:column;gap:12px}.settings-drawer .settings-switch-item[data-v-916fcfad]{display:flex;align-items:center;justify-content:space-between}.settings-drawer .settings-switch-item span[data-v-916fcfad]{font-size:14px;color:var(--color-text-regular)}.settings-drawer .switch-wrapper[data-v-916fcfad]{width:44px;height:22px;display:flex;align-items:center;cursor:pointer}.settings-drawer .switch-wrapper .switch-core[data-v-916fcfad]{width:100%;height:100%;border-radius:11px;background-color:var(--color-border);position:relative;transition:background-color .2s}.settings-drawer .switch-wrapper .switch-core[data-v-916fcfad]:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background-color:#fff;border-radius:50%;transition:left .2s}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-916fcfad]{background-color:var(--color-primary)}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-916fcfad]:after{left:24px}.dropdown-enter-active[data-v-916fcfad],.dropdown-leave-active[data-v-916fcfad]{transition:all .2s ease}.dropdown-enter-from[data-v-916fcfad],.dropdown-leave-to[data-v-916fcfad]{opacity:0;transform:translateY(-10px)}.search-dropdown-enter-active[data-v-916fcfad],.search-dropdown-leave-active[data-v-916fcfad]{transition:all .2s ease}.search-dropdown-enter-from[data-v-916fcfad],.search-dropdown-leave-to[data-v-916fcfad]{opacity:0;transform:translateY(-4px)}.top-menu[data-v-ff5f8764]{width:100%;height:100%;display:flex;align-items:center;padding:0 20px}.top-menu__logo[data-v-ff5f8764]{display:flex;align-items:center;gap:10px;margin-right:20px}.top-menu__logo-img[data-v-ff5f8764]{width:32px;height:32px}.top-menu__logo-text[data-v-ff5f8764]{font-size:16px;font-weight:600;color:var(--color-primary)}.top-menu__menu[data-v-ff5f8764]{flex:1;border-bottom:none;height:49px;display:flex;align-items:center;line-height:49px}.top-menu__menu[data-v-ff5f8764] .x-menu{height:49px;line-height:49px;border-bottom:none}.top-menu__menu[data-v-ff5f8764] .x-menu--horizontal{height:49px;display:flex;align-items:center;border-bottom:none;line-height:49px}.top-menu__menu[data-v-ff5f8764] .x-menu-item{height:49px;line-height:49px;box-sizing:border-box;border-bottom:none}.top-menu__menu[data-v-ff5f8764] .x-menu-item.is-horizontal{height:49px;line-height:49px}.top-menu__menu[data-v-ff5f8764] .x-menu-item__content{height:49px}.top-menu__menu[data-v-ff5f8764] .x-sub-menu{height:49px;line-height:49px;box-sizing:border-box;border-bottom:none}.top-menu__menu[data-v-ff5f8764] .x-sub-menu--horizontal{height:49px}.top-menu__menu[data-v-ff5f8764] .x-sub-menu__title{height:49px;line-height:49px;box-sizing:border-box;border-bottom:none}.top-menu__menu[data-v-ff5f8764] .x-sub-menu__content{height:49px}.top-menu__menu-content[data-v-ff5f8764]{align-items:center;line-height:1}.top-menu__menu-text[data-v-ff5f8764]{line-height:1}.top-menu__menu-icon[data-v-ff5f8764]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0}.top-menu__menu-char[data-v-ff5f8764]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;color:var(--color-primary);background-color:var(--color-primary-light-8);border-radius:4px}.top-menu__actions[data-v-ff5f8764]{display:flex;align-items:center;gap:8px}.top-menu__search[data-v-ff5f8764]{position:relative;display:flex;align-items:center;background-color:var(--color-fill-light);border-radius:var(--border-radius-base);padding:0 12px;height:32px;width:200px}.top-menu__search-icon[data-v-ff5f8764]{color:var(--color-text-secondary)}.top-menu__search-input[data-v-ff5f8764]{flex:1;height:100%;font-size:14px;color:var(--color-text-primary);background:transparent;border:none;outline:none;padding-left:8px}.top-menu__search-input[data-v-ff5f8764]::placeholder{color:var(--color-text-placeholder)}.top-menu__search-dropdown[data-v-ff5f8764]{position:absolute;top:calc(100% + 4px);left:0;right:0;min-width:200px;max-height:300px;overflow-y:auto;background-color:var(--bg-color);border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);z-index:100}.top-menu__search-results[data-v-ff5f8764]{padding:8px 0}.top-menu__search-item[data-v-ff5f8764]{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background-color .2s}.top-menu__search-item[data-v-ff5f8764]:hover{background-color:var(--color-fill)}.top-menu__search-item-title[data-v-ff5f8764]{font-size:14px;color:var(--color-text-primary)}.top-menu__search-item-parent[data-v-ff5f8764]{font-size:12px;color:var(--color-text-secondary);margin-left:auto}.top-menu__search-icon-item[data-v-ff5f8764]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.top-menu__search-char[data-v-ff5f8764]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;color:var(--color-primary);background-color:var(--color-primary-light-8);border-radius:4px}.top-menu__search-empty[data-v-ff5f8764]{padding:16px 12px;text-align:center;color:var(--color-text-secondary);font-size:14px}.top-menu__action[data-v-ff5f8764]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--border-radius-base);color:var(--color-text-regular);transition:all .2s}.top-menu__action[data-v-ff5f8764]:hover{background-color:var(--color-fill);color:var(--color-primary)}.top-menu__user[data-v-ff5f8764]{position:relative;margin-left:8px}.top-menu__user-trigger[data-v-ff5f8764]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:var(--border-radius-base);transition:background-color .2s}.top-menu__user-trigger[data-v-ff5f8764]:hover{background-color:var(--color-fill)}.top-menu__user-name[data-v-ff5f8764]{font-size:14px;color:var(--color-text-primary);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-menu__user-arrow[data-v-ff5f8764]{font-size:10px;color:var(--color-text-secondary);transition:transform .2s}.top-menu__user-arrow.is-active[data-v-ff5f8764]{transform:rotate(180deg)}.top-menu__avatar[data-v-ff5f8764]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:500}.top-menu__dropdown[data-v-ff5f8764]{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background-color:var(--bg-color);border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);overflow:hidden;z-index:100}.top-menu__dropdown-header[data-v-ff5f8764]{display:flex;align-items:center;gap:12px;padding:16px}.top-menu__dropdown-avatar[data-v-ff5f8764]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:500}.top-menu__dropdown-info[data-v-ff5f8764]{flex:1}.top-menu__dropdown-name[data-v-ff5f8764]{font-size:14px;font-weight:500;color:var(--color-text-primary)}.top-menu__dropdown-role[data-v-ff5f8764]{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.top-menu__dropdown-divider[data-v-ff5f8764]{height:1px;background-color:var(--color-border-lighter)}.top-menu__dropdown-menu[data-v-ff5f8764]{padding:8px 0}.top-menu__dropdown-item[data-v-ff5f8764]{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:14px;color:var(--color-text-regular);transition:all .2s}.top-menu__dropdown-item[data-v-ff5f8764]:hover{background-color:var(--color-fill);color:var(--color-text-primary)}.top-menu__dropdown-item--danger[data-v-ff5f8764]{color:var(--color-danger)}.top-menu__dropdown-item--danger[data-v-ff5f8764]:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.settings-drawer .settings-section[data-v-ff5f8764]{margin-bottom:24px}.settings-drawer .settings-title[data-v-ff5f8764]{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:12px}.settings-drawer .settings-layout-options[data-v-ff5f8764]{display:flex;gap:12px}.settings-drawer .layout-option[data-v-ff5f8764]{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--border-radius-base);cursor:pointer;transition:all .2s}.settings-drawer .layout-option[data-v-ff5f8764]:hover{border-color:var(--color-primary-light-5)}.settings-drawer .layout-option.is-active[data-v-ff5f8764]{border-color:var(--color-primary);background-color:var(--color-primary-light-9)}.settings-drawer .layout-option__preview[data-v-ff5f8764]{width:48px;height:36px;border:1px solid var(--color-border-light);border-radius:2px;overflow:hidden}.settings-drawer .layout-option__label[data-v-ff5f8764]{font-size:12px;color:var(--color-text-regular)}.settings-drawer .layout-preview-sidebar[data-v-ff5f8764]{display:flex;height:100%}.settings-drawer .layout-preview-sidebar .preview-aside[data-v-ff5f8764]{width:25%;height:100%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-sidebar .preview-main[data-v-ff5f8764]{flex:1;display:flex;flex-direction:column}.settings-drawer .layout-preview-sidebar .preview-main .preview-header[data-v-ff5f8764]{height:20%;background-color:var(--color-border-light)}.settings-drawer .layout-preview-sidebar .preview-main .preview-content[data-v-ff5f8764]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-top[data-v-ff5f8764]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-top .preview-header-full[data-v-ff5f8764]{height:25%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-top .preview-content-full[data-v-ff5f8764]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-mix[data-v-ff5f8764]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-mix .preview-header-mix[data-v-ff5f8764]{height:25%;background-color:var(--color-primary-light-7);display:flex}.settings-drawer .layout-preview-mix .preview-header-mix .preview-mix-left[data-v-ff5f8764]{width:30%;background-color:var(--color-primary)}.settings-drawer .layout-preview-mix .preview-mix-body[data-v-ff5f8764]{flex:1;display:flex}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-aside[data-v-ff5f8764]{width:25%;background-color:var(--color-primary-light-8)}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-content[data-v-ff5f8764]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .settings-color-options[data-v-ff5f8764]{display:flex;gap:12px}.settings-drawer .color-option[data-v-ff5f8764]{width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.settings-drawer .color-option[data-v-ff5f8764]:hover{transform:scale(1.1)}.settings-drawer .color-option.is-active[data-v-ff5f8764]{box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px var(--color-primary)}.settings-drawer .settings-switch-list[data-v-ff5f8764]{display:flex;flex-direction:column;gap:12px}.settings-drawer .settings-switch-item[data-v-ff5f8764]{display:flex;align-items:center;justify-content:space-between}.settings-drawer .settings-switch-item span[data-v-ff5f8764]{font-size:14px;color:var(--color-text-regular)}.settings-drawer .switch-wrapper[data-v-ff5f8764]{width:44px;height:22px;display:flex;align-items:center;cursor:pointer}.settings-drawer .switch-wrapper .switch-core[data-v-ff5f8764]{width:100%;height:100%;border-radius:11px;background-color:var(--color-border);position:relative;transition:background-color .2s}.settings-drawer .switch-wrapper .switch-core[data-v-ff5f8764]:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background-color:#fff;border-radius:50%;transition:left .2s}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-ff5f8764]{background-color:var(--color-primary)}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-ff5f8764]:after{left:24px}.dropdown-enter-active[data-v-ff5f8764],.dropdown-leave-active[data-v-ff5f8764]{transition:all .2s ease}.dropdown-enter-from[data-v-ff5f8764],.dropdown-leave-to[data-v-ff5f8764]{opacity:0;transform:translateY(-10px)}.search-dropdown-enter-active[data-v-ff5f8764],.search-dropdown-leave-active[data-v-ff5f8764]{transition:all .2s ease}.search-dropdown-enter-from[data-v-ff5f8764],.search-dropdown-leave-to[data-v-ff5f8764]{opacity:0;transform:translateY(-4px)}.mix-top-menu[data-v-25806305]{width:100%;height:100%;display:flex;align-items:center;padding:0 20px}.mix-top-menu__logo[data-v-25806305]{display:flex;align-items:center;gap:10px;margin-right:20px}.mix-top-menu__logo-img[data-v-25806305]{width:32px;height:32px}.mix-top-menu__logo-text[data-v-25806305]{font-size:16px;font-weight:600;color:var(--color-primary)}.mix-top-menu__menu[data-v-25806305]{flex:1;border-bottom:none;height:49px;display:flex;align-items:center;line-height:49px}.mix-top-menu__menu[data-v-25806305] .x-menu{height:49px;line-height:49px;border-bottom:none}.mix-top-menu__menu[data-v-25806305] .x-menu--horizontal{height:49px;display:flex;align-items:center;border-bottom:none;line-height:49px}.mix-top-menu__menu[data-v-25806305] .x-menu-item{height:49px;line-height:49px;box-sizing:border-box;border-bottom:none}.mix-top-menu__menu[data-v-25806305] .x-menu-item.is-horizontal{height:49px;line-height:49px}.mix-top-menu__menu[data-v-25806305] .x-menu-item__content{height:49px}.mix-top-menu__menu[data-v-25806305] .x-sub-menu{height:49px;line-height:49px;box-sizing:border-box;border-bottom:none}.mix-top-menu__menu[data-v-25806305] .x-sub-menu--horizontal{height:49px}.mix-top-menu__menu[data-v-25806305] .x-sub-menu__title{height:49px;line-height:49px;box-sizing:border-box;border-bottom:none}.mix-top-menu__menu[data-v-25806305] .x-sub-menu__content{height:49px}.mix-top-menu__menu-content[data-v-25806305]{align-items:center;line-height:1}.mix-top-menu__menu-text[data-v-25806305]{line-height:1}.mix-top-menu__menu-icon[data-v-25806305]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0}.mix-top-menu__menu-char[data-v-25806305]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;color:var(--color-primary);background-color:var(--color-primary-light-8);border-radius:4px}.mix-top-menu__actions[data-v-25806305]{display:flex;align-items:center;gap:8px}.mix-top-menu__search[data-v-25806305]{position:relative;display:flex;align-items:center;background-color:var(--color-fill-light);border-radius:var(--border-radius-base);padding:0 12px;height:32px;width:200px}.mix-top-menu__search-icon[data-v-25806305]{color:var(--color-text-secondary)}.mix-top-menu__search-input[data-v-25806305]{flex:1;height:100%;font-size:14px;color:var(--color-text-primary);background:transparent;border:none;outline:none;padding-left:8px}.mix-top-menu__search-input[data-v-25806305]::placeholder{color:var(--color-text-placeholder)}.mix-top-menu__search-dropdown[data-v-25806305]{position:absolute;top:calc(100% + 4px);left:0;right:0;min-width:200px;max-height:300px;overflow-y:auto;background-color:var(--bg-color);border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);z-index:100}.mix-top-menu__search-results[data-v-25806305]{padding:8px 0}.mix-top-menu__search-item[data-v-25806305]{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background-color .2s}.mix-top-menu__search-item[data-v-25806305]:hover{background-color:var(--color-fill)}.mix-top-menu__search-item-title[data-v-25806305]{font-size:14px;color:var(--color-text-primary)}.mix-top-menu__search-item-parent[data-v-25806305]{font-size:12px;color:var(--color-text-secondary);margin-left:auto}.mix-top-menu__search-icon-item[data-v-25806305]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.mix-top-menu__search-char[data-v-25806305]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;color:var(--color-primary);background-color:var(--color-primary-light-8);border-radius:4px}.mix-top-menu__search-empty[data-v-25806305]{padding:16px 12px;text-align:center;color:var(--color-text-secondary);font-size:14px}.mix-top-menu__action[data-v-25806305]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--border-radius-base);color:var(--color-text-regular);transition:all .2s}.mix-top-menu__action[data-v-25806305]:hover{background-color:var(--color-fill);color:var(--color-primary)}.mix-top-menu__user[data-v-25806305]{position:relative;margin-left:8px}.mix-top-menu__user-trigger[data-v-25806305]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:var(--border-radius-base);transition:background-color .2s}.mix-top-menu__user-trigger[data-v-25806305]:hover{background-color:var(--color-fill)}.mix-top-menu__user-name[data-v-25806305]{font-size:14px;color:var(--color-text-primary);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mix-top-menu__user-arrow[data-v-25806305]{font-size:10px;color:var(--color-text-secondary);transition:transform .2s}.mix-top-menu__user-arrow.is-active[data-v-25806305]{transform:rotate(180deg)}.mix-top-menu__avatar[data-v-25806305]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:500}.mix-top-menu__dropdown[data-v-25806305]{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background-color:var(--bg-color);border-radius:var(--border-radius-base);box-shadow:var(--box-shadow);overflow:hidden;z-index:100}.mix-top-menu__dropdown-header[data-v-25806305]{display:flex;align-items:center;gap:12px;padding:16px}.mix-top-menu__dropdown-avatar[data-v-25806305]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light-3));display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:500}.mix-top-menu__dropdown-info[data-v-25806305]{flex:1}.mix-top-menu__dropdown-name[data-v-25806305]{font-size:14px;font-weight:500;color:var(--color-text-primary)}.mix-top-menu__dropdown-role[data-v-25806305]{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.mix-top-menu__dropdown-divider[data-v-25806305]{height:1px;background-color:var(--color-border-lighter)}.mix-top-menu__dropdown-menu[data-v-25806305]{padding:8px 0}.mix-top-menu__dropdown-item[data-v-25806305]{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:14px;color:var(--color-text-regular);transition:all .2s}.mix-top-menu__dropdown-item[data-v-25806305]:hover{background-color:var(--color-fill);color:var(--color-text-primary)}.mix-top-menu__dropdown-item--danger[data-v-25806305]{color:var(--color-danger)}.mix-top-menu__dropdown-item--danger[data-v-25806305]:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.settings-drawer .settings-section[data-v-25806305]{margin-bottom:24px}.settings-drawer .settings-title[data-v-25806305]{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:12px}.settings-drawer .settings-layout-options[data-v-25806305]{display:flex;gap:12px}.settings-drawer .layout-option[data-v-25806305]{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--border-radius-base);cursor:pointer;transition:all .2s}.settings-drawer .layout-option[data-v-25806305]:hover{border-color:var(--color-primary-light-5)}.settings-drawer .layout-option.is-active[data-v-25806305]{border-color:var(--color-primary);background-color:var(--color-primary-light-9)}.settings-drawer .layout-option__preview[data-v-25806305]{width:48px;height:36px;border:1px solid var(--color-border-light);border-radius:2px;overflow:hidden}.settings-drawer .layout-option__label[data-v-25806305]{font-size:12px;color:var(--color-text-regular)}.settings-drawer .layout-preview-sidebar[data-v-25806305]{display:flex;height:100%}.settings-drawer .layout-preview-sidebar .preview-aside[data-v-25806305]{width:25%;height:100%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-sidebar .preview-main[data-v-25806305]{flex:1;display:flex;flex-direction:column}.settings-drawer .layout-preview-sidebar .preview-main .preview-header[data-v-25806305]{height:20%;background-color:var(--color-border-light)}.settings-drawer .layout-preview-sidebar .preview-main .preview-content[data-v-25806305]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-top[data-v-25806305]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-top .preview-header-full[data-v-25806305]{height:25%;background-color:var(--color-primary-light-7)}.settings-drawer .layout-preview-top .preview-content-full[data-v-25806305]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .layout-preview-mix[data-v-25806305]{display:flex;flex-direction:column;height:100%}.settings-drawer .layout-preview-mix .preview-header-mix[data-v-25806305]{height:25%;background-color:var(--color-primary-light-7);display:flex}.settings-drawer .layout-preview-mix .preview-header-mix .preview-mix-left[data-v-25806305]{width:30%;background-color:var(--color-primary)}.settings-drawer .layout-preview-mix .preview-mix-body[data-v-25806305]{flex:1;display:flex}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-aside[data-v-25806305]{width:25%;background-color:var(--color-primary-light-8)}.settings-drawer .layout-preview-mix .preview-mix-body .preview-mix-content[data-v-25806305]{flex:1;background-color:var(--bg-color-page)}.settings-drawer .settings-color-options[data-v-25806305]{display:flex;gap:12px}.settings-drawer .color-option[data-v-25806305]{width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.settings-drawer .color-option[data-v-25806305]:hover{transform:scale(1.1)}.settings-drawer .color-option.is-active[data-v-25806305]{box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px var(--color-primary)}.settings-drawer .settings-switch-list[data-v-25806305]{display:flex;flex-direction:column;gap:12px}.settings-drawer .settings-switch-item[data-v-25806305]{display:flex;align-items:center;justify-content:space-between}.settings-drawer .settings-switch-item span[data-v-25806305]{font-size:14px;color:var(--color-text-regular)}.settings-drawer .switch-wrapper[data-v-25806305]{width:44px;height:22px;display:flex;align-items:center;cursor:pointer}.settings-drawer .switch-wrapper .switch-core[data-v-25806305]{width:100%;height:100%;border-radius:11px;background-color:var(--color-border);position:relative;transition:background-color .2s}.settings-drawer .switch-wrapper .switch-core[data-v-25806305]:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background-color:#fff;border-radius:50%;transition:left .2s}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-25806305]{background-color:var(--color-primary)}.settings-drawer .switch-wrapper.is-checked .switch-core[data-v-25806305]:after{left:24px}.dropdown-enter-active[data-v-25806305],.dropdown-leave-active[data-v-25806305]{transition:all .2s ease}.dropdown-enter-from[data-v-25806305],.dropdown-leave-to[data-v-25806305]{opacity:0;transform:translateY(-10px)}.search-dropdown-enter-active[data-v-25806305],.search-dropdown-leave-active[data-v-25806305]{transition:all .2s ease}.search-dropdown-enter-from[data-v-25806305],.search-dropdown-leave-to[data-v-25806305]{opacity:0;transform:translateY(-4px)}.layout[data-v-70b115a5]{display:flex;width:100%;height:100%}.layout--sidebar[data-v-70b115a5]{flex-direction:row}.layout--sidebar .layout__aside[data-v-70b115a5]{height:100%}.layout--sidebar .layout__main[data-v-70b115a5]{flex:1;display:flex;flex-direction:column;height:100%}.layout--top[data-v-70b115a5]{flex-direction:column}.layout--top .layout__main[data-v-70b115a5]{flex:1;display:flex;flex-direction:column;height:calc(100% - 50px)}.layout--top .layout__content[data-v-70b115a5]{flex:1}.layout--mix[data-v-70b115a5]{flex-direction:column}.layout--mix .layout__mix-top-menu[data-v-70b115a5]{width:100%;height:50px;background-color:var(--bg-color);border-bottom:1px solid var(--color-border-lighter);flex-shrink:0}.layout--mix .layout__mix-body[data-v-70b115a5]{flex:1;display:flex;flex-direction:row;height:calc(100% - 50px)}.layout__aside[data-v-70b115a5]{transition:width .3s;overflow:hidden;flex-shrink:0;height:100%}.layout__top-menu[data-v-70b115a5]{width:100%;height:50px;box-sizing:border-box;background-color:var(--bg-color);border-bottom:1px solid var(--color-border-lighter);flex-shrink:0}.layout__mix-top-menu[data-v-70b115a5]{width:100%;height:50px;box-sizing:border-box;flex-shrink:0}.layout__main[data-v-70b115a5]{flex:1;display:flex;flex-direction:column;overflow:hidden;height:100%}.layout__header[data-v-70b115a5]{height:50px;box-sizing:border-box;background-color:var(--bg-color);border-bottom:1px solid var(--color-border-lighter);flex-shrink:0}.layout__content[data-v-70b115a5]{flex:1;overflow:auto;background-color:var(--bg-color-page)}
|