feat: shrimp-admin v0.1.0 — 从 hand-admin 抽离的框架前端
Shrimp 框架前端 — 一种消费 ShrimpServer + ShrimpTable 契约的经典 Vue3 +
Element Plus 实现。不是框架本身,只是按 shrimp-server 约定写的一份参考解法。
包含:
- ShrimpClient + VueAdmin(factory:createShrimpAdmin)
- 5 个 Shrimp* 组件 + 10 个内置 Field*.vue + PowerTree + LangSwitch
- 4 个内置模块:user / role / operationLog / FieldRelativeTime
- 完整后台壳 views(layout/login/sideM/topbar/userbar/navMenu/App/404/logo)
- composables/useTableUrlSync, locales(zh-cn/en 框架默认), style 全套
API 改造:
- createShrimpAdmin({ config, moduleSources, customFields, locales }) factory
- vueAdmin 改为 Proxy 单例,createShrimpAdmin 调用前访问会抛错
- import.meta.glob 业务字段/模块由消费侧传入(vite 静态扫描机制限制)
- 框架默认 locales 与消费侧 locales 在 i18n 初始化时合并
源码 ship 不打包,消费侧靠 vite 直接吃 .ts/.vue。
This commit is contained in:
@@ -0,0 +1,521 @@
|
||||
/* 全局 */
|
||||
#app,
|
||||
body,
|
||||
html {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #f6f8f9;
|
||||
font-size: 12px;
|
||||
font-family: "sans-serif";
|
||||
}
|
||||
|
||||
a {
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:link {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:-webkit-any-link {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a,
|
||||
button,
|
||||
input,
|
||||
textarea {
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
box-sizing: border-box;
|
||||
outline: none !important;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/* 大布局样式 */
|
||||
.aminui {
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
}
|
||||
|
||||
.aminui-wrapper {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/* 全局滚动条样式 */
|
||||
.scrollabel {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: rgba(50, 50, 50, 0.3);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background-color: rgba(50, 50, 50, 0.6);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background-color: rgba(50, 50, 50, 0.1);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track:hover {
|
||||
background-color: rgba(50, 50, 50, 0.2);
|
||||
}
|
||||
|
||||
/*布局设置*/
|
||||
.layout-setting {
|
||||
position: fixed;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 3px 0 0 3px;
|
||||
bottom: 100px;
|
||||
right: 0px;
|
||||
z-index: 100;
|
||||
background: #409EFF;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.layout-setting i {
|
||||
font-size: 18px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* 头部 */
|
||||
.adminui-header {
|
||||
height: 58px;
|
||||
background: #222b45;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.adminui-header-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.adminui-header-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.adminui-header .logo-bar {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.adminui-header .logo-bar .logo {
|
||||
margin-right: 10px;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
}
|
||||
|
||||
.adminui-header .nav {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
.adminui-header .nav li {
|
||||
padding: 0 10px;
|
||||
margin: 0 10px 0 0;
|
||||
font-size: 14px;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
list-style: none;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.adminui-header .nav li i {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.adminui-header .nav li:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.adminui-header .nav li.active {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.adminui-header .user-bar .panel-item:hover {
|
||||
background: rgba(255, 255, 255, 0.1) !important;
|
||||
}
|
||||
|
||||
.adminui-header .user-bar .user label {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* 左侧菜单 */
|
||||
.aminui-side-split {
|
||||
width: 65px;
|
||||
flex-shrink: 0;
|
||||
background: #222b45;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
}
|
||||
|
||||
.aminui-side-split-top {
|
||||
height: 49px;
|
||||
}
|
||||
|
||||
.aminui-side-split-top a {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.aminui-side-split-top .logo {
|
||||
height: 30px;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
.adminui-side-split-scroll {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.aminui-side-split li {
|
||||
cursor: pointer;
|
||||
width: 65px;
|
||||
height: 65px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.aminui-side-split li i {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.aminui-side-split li p {
|
||||
margin-top: 5px;
|
||||
padding: 0 4px;
|
||||
font-size: 12px;
|
||||
line-height: 1.2;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.aminui-side-split li:hover {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.aminui-side-split li.active {
|
||||
background: #409EFF;
|
||||
}
|
||||
|
||||
.adminui-side-split-scroll::-webkit-scrollbar-thumb {
|
||||
background-color: rgba(255, 255, 255, 0.4);
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.adminui-side-split-scroll::-webkit-scrollbar-thumb:hover {
|
||||
background-color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.adminui-side-split-scroll::-webkit-scrollbar-track {
|
||||
background-color: rgba(255, 255, 255, 0);
|
||||
}
|
||||
|
||||
.adminui-side-split-scroll::-webkit-scrollbar-track:hover {
|
||||
background-color: rgba(255, 255, 255, 0);
|
||||
}
|
||||
|
||||
.aminui-side {
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
flex-shrink: 0;
|
||||
width: 210px;
|
||||
background: #fff;
|
||||
box-shadow: 2px 0 8px 0 rgba(29, 35, 41, .05);
|
||||
border-right: 1px solid #e6e6e6;
|
||||
transition: width 0.3s;
|
||||
}
|
||||
|
||||
.adminui-side-top {
|
||||
border-bottom: 1px solid #ebeef5;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
}
|
||||
|
||||
.adminui-side-top h2 {
|
||||
padding: 0 20px;
|
||||
font-size: 17px;
|
||||
color: #3c4a54;
|
||||
}
|
||||
|
||||
.adminui-side-scroll {
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.adminui-side-bottom {
|
||||
border-top: 1px solid #ebeef5;
|
||||
height: 51px;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.adminui-side-bottom i {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.adminui-side-bottom:hover {
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
|
||||
.aminui-side.isCollapse {
|
||||
width: 65px;
|
||||
}
|
||||
|
||||
.el-menu .menu-tag {
|
||||
position: absolute;
|
||||
height: 18px;
|
||||
line-height: 18px;
|
||||
background: var(--el-color-danger);
|
||||
font-size: 12px;
|
||||
color: #fff;
|
||||
right: 20px;
|
||||
border-radius: 18px;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.el-menu .el-sub-menu__title .menu-tag {
|
||||
right: 40px;
|
||||
}
|
||||
|
||||
.el-menu--horizontal>li .menu-tag {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* 右侧内容 */
|
||||
.aminui-body {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
}
|
||||
|
||||
.adminui-topbar {
|
||||
height: 50px;
|
||||
border-bottom: 1px solid #ebeef5;
|
||||
background: #fff;
|
||||
box-shadow: 0 1px 4px rgba(0, 21, 41, .08);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.adminui-topbar .left-panel {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.adminui-topbar .right-panel {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.right-panel-search {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.right-panel-search>*+* {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.adminui-tags {
|
||||
height: 35px;
|
||||
background: #fff;
|
||||
border-bottom: 1px solid #e6e6e6;
|
||||
}
|
||||
|
||||
.adminui-tags ul {
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.adminui-tags li {
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
height: 34px;
|
||||
line-height: 34px;
|
||||
position: relative;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.adminui-tags li::after {
|
||||
content: " ";
|
||||
width: 1px;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
background-image: linear-gradient(#fff, #e6e6e6);
|
||||
}
|
||||
|
||||
.adminui-tags li a {
|
||||
display: inline-block;
|
||||
padding: 0 10px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color: #999;
|
||||
text-decoration: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.adminui-tags li i {
|
||||
margin-left: 10px;
|
||||
border-radius: 3px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.adminui-tags li i:hover {
|
||||
background: rgba(0, 0, 0, .2);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.adminui-tags li:hover {
|
||||
background: #ecf5ff;
|
||||
}
|
||||
|
||||
.adminui-tags li.active {
|
||||
background: #409EFF;
|
||||
}
|
||||
|
||||
.adminui-tags li.active a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.adminui-tags li.sortable-ghost {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.adminui-main {
|
||||
overflow: hidden;
|
||||
background-color: #f6f8f9;
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
/* 让路由内容铺满 .adminui-main,使内部的滚动容器(如 ShrimpTable 的 .el-main)能拿到正确高度 */
|
||||
.adminui-main > * {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
/*页面最大化*/
|
||||
.aminui.main-maximize {
|
||||
.main-maximize-exit {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.aminui-side-split,
|
||||
.aminui-side,
|
||||
.adminui-header,
|
||||
.adminui-topbar,
|
||||
.adminui-tags {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.main-maximize-exit {
|
||||
display: none;
|
||||
position: fixed;
|
||||
z-index: 3000;
|
||||
top: -20px;
|
||||
left: 50%;
|
||||
margin-left: -20px;
|
||||
border-radius: 50%;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
cursor: pointer;
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.main-maximize-exit i {
|
||||
font-size: 14px;
|
||||
margin-top: 22px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.main-maximize-exit:hover {
|
||||
background: rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
/*定宽页面*/
|
||||
.sc-page {
|
||||
width: 1230px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.el-drawer .el-form-item {
|
||||
display: block;
|
||||
}
|
||||
|
||||
// .el-drawer.rtl {width: min(600px, 100%)!important;}
|
||||
//新增全局字体样式
|
||||
.el-tag+.el-tag {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.el-button+.el-button {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.el-table .el-table__cell {
|
||||
padding: 5px;
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
@use 'element-plus/theme-chalk/src/dark/css-vars.scss';
|
||||
|
||||
html.dark {
|
||||
//变量
|
||||
--el-text-color-primary: #d0d0d0;
|
||||
--el-color-primary-dark-2: var(--el-color-primary-light-2) !important;
|
||||
--el-color-primary-light-9: var(--el-color-primary-dark-8) !important;
|
||||
--el-color-primary-light-8: var(--el-color-primary-dark-7) !important;
|
||||
--el-color-primary-light-7: var(--el-color-primary-dark-6) !important;
|
||||
--el-color-primary-light-5: var(--el-color-primary-dark-4) !important;
|
||||
--el-color-primary-light-3: var(--el-color-primary-dark-3) !important;
|
||||
|
||||
//背景
|
||||
#app {background: var(--el-bg-color);}
|
||||
|
||||
//登录背景
|
||||
.login_bg {background: var(--el-bg-color);}
|
||||
|
||||
//框架
|
||||
.adminui-header {background: var(--el-bg-color-overlay);border-bottom: 1px solid var(--el-border-color-light);height:59px;}
|
||||
.aminui-side-split {background: var(--el-bg-color);}
|
||||
.aminui-side-split li {color: var(--el-text-color-primary);}
|
||||
.aminui-side {background: var(--el-bg-color-overlay);border-color: var(--el-border-color-light);}
|
||||
.adminui-side-top, .adminui-side-bottom {border-color: var(--el-border-color-light);}
|
||||
.adminui-side-top h2 {color: var(--el-text-color-primary);}
|
||||
.adminui-topbar, .adminui-tags {background: var(--el-bg-color-overlay);border-color: var(--el-border-color-light);}
|
||||
.adminui-main {background: var(--el-bg-color);}
|
||||
.drawerBG {background: var(--el-bg-color);}
|
||||
.adminui-header-menu .el-menu {--el-menu-bg-color:var(--el-bg-color-overlay) !important;--el-menu-hover-bg-color: #171819 !important;}
|
||||
.adminui-header-menu .el-menu .el-sub-menu__title {background-color:transparent !important;}
|
||||
|
||||
//全局滚动条样式
|
||||
::-webkit-scrollbar-thumb {background-color: rgba(163, 166, 173, 0.3);}
|
||||
::-webkit-scrollbar-thumb:hover {background-color: rgba(163, 166, 173, 0.5);}
|
||||
|
||||
//组件
|
||||
.el-header, .el-main.nopadding, .el-footer {background: var(--el-bg-color-overlay);border-color: var(--el-border-color-light);}
|
||||
.el-main {background: var(--el-bg-color);}
|
||||
.el-aside {background: var(--el-bg-color-overlay);border-color: var(--el-border-color-light);}
|
||||
.el-table .el-table__body-wrapper {background: var(--el-bg-color);}
|
||||
.el-table th.is-sortable:hover {background: #111;}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
/* 覆盖element-plus样式 */
|
||||
|
||||
:root {
|
||||
--el-color-primary: #409EFF;
|
||||
--el-color-primary-light-1: #53a7ff;
|
||||
--el-color-primary-light-2: #66b1ff;
|
||||
--el-color-primary-light-3: #79bbff;
|
||||
--el-color-primary-light-4: #8cc4ff;
|
||||
--el-color-primary-light-5: #9fceff;
|
||||
--el-color-primary-light-6: #b2d8ff;
|
||||
--el-color-primary-light-7: #c5e1ff;
|
||||
--el-color-primary-light-8: #d8ebff;
|
||||
--el-color-primary-light-9: #ebf5ff;
|
||||
--el-color-primary-dark-1: #398ee5;
|
||||
--el-color-primary-dark-2: #337ecc;
|
||||
--el-color-primary-dark-3: #2c6eb2;
|
||||
--el-color-primary-dark-4: #265e99;
|
||||
--el-color-primary-dark-5: #204f7f;
|
||||
--el-color-primary-dark-6: #193f66;
|
||||
--el-color-primary-dark-7: #132f4c;
|
||||
--el-color-primary-dark-8: #0c1f32;
|
||||
--el-color-primary-dark-9: #060f19;
|
||||
}
|
||||
|
||||
.el-menu {border: none!important;}
|
||||
.el-menu .el-menu-item a {color: inherit;text-decoration: none;display: block;width:100%;height:100%;position: absolute;top:0px;left:0px;}
|
||||
.el-form-item-msg {font-size: 12px;color: #999;clear: both;width: 100%;}
|
||||
.el-container {height: 100%;}
|
||||
.el-aside {border-right: 1px solid var(--el-border-color-light);}
|
||||
.el-container + .el-aside {border-right: 0;border-left: 1px solid var(--el-border-color-light);}
|
||||
.el-header {background: #fff;border-bottom: 1px solid var(--el-border-color-light);padding:13px 15px;display: flex;align-items: center;}
|
||||
.el-header .left-panel {display: flex;align-items: center;}
|
||||
.el-header .right-panel {display: flex;align-items: center;}
|
||||
.el-header .right-panel > * + * {margin-left:10px;}
|
||||
.el-footer {background: #fff;border-top: 1px solid var(--el-border-color-light);padding:13px 15px;}
|
||||
.el-main {padding:15px;}
|
||||
.el-main.nopadding {padding:0;background: #fff;}
|
||||
.el-drawer__body {overflow: auto;padding:0;}
|
||||
.el-popconfirm__main {margin: 14px 0;}
|
||||
// .el-card__header {border-bottom: 0;font-size: 17px;font-weight: bold;padding:15px 20px 0px 20px;}
|
||||
// .el-card__header {padding:5px 20px 5px 20px;}
|
||||
.el-dialog__title {font-size: 17px;font-weight: bold;}
|
||||
.el-drawer__header>:first-child {font-size: 17px;font-weight: bold;}
|
||||
.el-tree.menu .el-tree-node__content {height:36px;}
|
||||
.el-tree.menu .el-tree-node__content .el-tree-node__label .icon {margin-right: 5px;}
|
||||
.el-progress__text {font-size: 12px!important;}
|
||||
.el-progress__text i {font-size: 14.4px!important;}
|
||||
.el-step.is-horizontal .el-step__line {height:1px;}
|
||||
.el-step__title {font-size: 14px;}
|
||||
.drawerBG {background: #f6f8f9;}
|
||||
.el-button+.el-dropdown {margin-left: 10px;}
|
||||
.el-button-group+.el-dropdown {margin-left: 10px;}
|
||||
.el-button-group+.el-button-group {margin-left: 10px;}
|
||||
.el-tabs__nav-wrap::after {height: 1px;}
|
||||
.el-table th.is-sortable {transition: .1s;}
|
||||
.el-table th.is-sortable:hover {background: #eee;}
|
||||
.el-table .el-table__body-wrapper {background: #f6f8f9;}
|
||||
.el-col .el-card {margin-bottom: 15px;}
|
||||
.el-main {flex-basis: 100%;}
|
||||
.el-main > .scTable .el-table--border::before {display: none;}
|
||||
.el-main > .scTable .el-table--border::after {display: none;}
|
||||
.el-main > .scTable .el-table--border .el-table__inner-wrapper::after {display: none;}
|
||||
.el-main > .scTable .el-table__border-left-patch {display: none;}
|
||||
.el-main > .scTable .el-table--border .el-table__inner-wrapper tr:first-child td:first-child {border-left: 0;}
|
||||
.el-main > .scTable .el-table--border .el-table__inner-wrapper tr:first-child th:first-child {border-left: 0;}
|
||||
.el-table.el-table--large {font-size: 14px;}
|
||||
.el-table.el-table--small {font-size: 12px;}
|
||||
.el-table {font-size: 12px;}
|
||||
.el-radio-button__inner {font-size: 12px;}
|
||||
.el-checkbox-button__inner {font-size: 12px;}
|
||||
.el-sub-menu .el-icon {font-size: 17px;}
|
||||
.el-sub-menu .el-sub-menu__icon-arrow {font-size: 12px;}
|
||||
|
||||
.aminui-side-split li.active {background-color: var(--el-color-primary);}
|
||||
.adminui-tags li:hover {background-color: var(--el-color-primary-light-9);}
|
||||
.adminui-tags li.active {background-color: var(--el-color-primary)!important;}
|
||||
.contextmenu li:hover {background-color: var(--el-color-primary-light-9)!important;color: var(--el-color-primary-light-2)!important;}
|
||||
.data-box .item-background {background-color: var(--el-color-primary)!important;}
|
||||
.layout-setting,.diy-grid-setting {background-color: var(--el-color-primary)!important;}
|
||||
|
||||
/* 全部禁用el-tag动画 */
|
||||
.el-tag {transition: all 0s !important;}
|
||||
|
||||
/* 覆盖tinymce样式 */
|
||||
.sceditor .tox-tinymce {border: 1px solid #DCDFE6;border-radius: 0;}
|
||||
body .tox-tinymce-aux {z-index: 5700;}
|
||||
|
||||
//新增
|
||||
.el-table .cell{
|
||||
word-break: break-word;
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
@media (max-width: 992px) {
|
||||
|
||||
// 移动端样式覆盖
|
||||
.el-form-item {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.el-form-item__label {
|
||||
margin: 5px !important;
|
||||
}
|
||||
|
||||
.el-dialog {
|
||||
width: 90% !important;
|
||||
}
|
||||
|
||||
.el-dialog.is-fullscreen {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.el-drawer.rtl {
|
||||
width: min(400px, 100%) !important;
|
||||
}
|
||||
|
||||
.el-form-item__content {
|
||||
margin: 5px !important;
|
||||
}
|
||||
// .arrayInput{
|
||||
// width: 100% !important;
|
||||
// }
|
||||
|
||||
.adminui-main {
|
||||
>.el-container {
|
||||
display: block;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
>.el-container>.el-aside {
|
||||
width: 100% !important;
|
||||
border: 0
|
||||
}
|
||||
}
|
||||
|
||||
.scTable {
|
||||
|
||||
.el-table,
|
||||
.el-table__body-wrapper {
|
||||
display: block !important;
|
||||
height: auto !important;
|
||||
}
|
||||
|
||||
.el-scrollbar__wrap {
|
||||
height: auto !important;
|
||||
}
|
||||
|
||||
.scTable-page {
|
||||
padding: 0 5px !important;
|
||||
}
|
||||
|
||||
.el-pagination__total,
|
||||
.el-pagination__jump,
|
||||
.el-pagination__sizes {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.headerPublic {
|
||||
height: auto !important;
|
||||
display: block;
|
||||
|
||||
.left-panel {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.left-panel::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.right-panel {
|
||||
display: block;
|
||||
border-top: 1px solid var(--el-border-color-light);
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.right-panel .right-panel-search {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.right-panel .right-panel-search>* {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
margin-top: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.adminui-main>.el-container>*:first-child:not(.el-aside):not(.el-header) {
|
||||
border: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.adminui-main>.el-container>*:first-child:not(.el-aside):not(.el-header)+.el-aside {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.adminui-main>.el-container>.el-aside {
|
||||
border-bottom: 1px solid var(--el-border-color-light) !important;
|
||||
}
|
||||
|
||||
.adminui-main>.el-container>.el-container {
|
||||
border-top: 1px solid var(--el-border-color-light);
|
||||
border-bottom: 1px solid var(--el-border-color-light);
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.adminui-main>.el-container>.el-container+.el-aside {
|
||||
border-top: 1px solid var(--el-border-color-light);
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.adminui-main>.el-container>.el-header {
|
||||
@extend .headerPublic;
|
||||
}
|
||||
|
||||
.adminui-main>.el-container>.el-main.nopadding {
|
||||
border-top: 1px solid var(--el-border-color-light);
|
||||
border-bottom: 1px solid var(--el-border-color-light);
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.adminui-main>.el-container>.el-main+.el-aside {
|
||||
border-left: 0 !important;
|
||||
border-top: 1px solid var(--el-border-color-light);
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.adminui-main>.el-container>.el-footer {
|
||||
margin-top: 15px;
|
||||
border-bottom: 1px solid var(--el-border-color-light);
|
||||
}
|
||||
|
||||
.adminui-main>.el-container>.el-container>.el-header {
|
||||
@extend .headerPublic
|
||||
}
|
||||
|
||||
.adminui-main>.el-container>.el-container>.el-header .left-panel {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.adminui-main>.el-container>.el-container>.el-header .right-panel {
|
||||
display: block;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.sc-page {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.common-main .el-form {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.common-header-logo label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.common-header-title {
|
||||
display: none;
|
||||
}
|
||||
|
||||
//手机端没有左右边距 新增
|
||||
.el-main {
|
||||
padding: 15px 0px;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/* USERCENTER */
|
||||
.page-user {
|
||||
.user-info-top {text-align: center;}
|
||||
.user-info-top h2 {font-size: 18px;margin-top: 5px;}
|
||||
.user-info-top p {margin: 8px 0 10px 0;}
|
||||
.menu {background: none;}
|
||||
.menu .el-menu-item {font-size: 12px;--el-menu-item-height:50px;}
|
||||
.menu .el-menu-item-group {border-top: 1px solid var(--el-border-color-light);}
|
||||
.menu .el-menu-item-group:first-child {border: 0;}
|
||||
}
|
||||
|
||||
/*static-table*/
|
||||
.static-table {border-collapse: collapse;width: 100%;font-size: 14px;margin-bottom: 45px;line-height: 1.5em;}
|
||||
.static-table th {text-align: left;white-space: nowrap;color: #909399;font-weight: 400;border-bottom: 1px solid #dcdfe6;padding: 15px;max-width: 250px;}
|
||||
.static-table td {border-bottom: 1px solid #dcdfe6;padding: 15px;max-width: 250px;color: #606266;}
|
||||
|
||||
/*header-tabs*/
|
||||
.header-tabs {padding:10px 0 0 0;display:block;border:0!important;height:50px;background: none;}
|
||||
.header-tabs .el-tabs__header {padding-left:10px;margin: 0;}
|
||||
.header-tabs .el-tabs__content {display: none;}
|
||||
.header-tabs .el-tabs__nav {border-radius: 0 !important;}
|
||||
.header-tabs .el-tabs__item {font-size: 13px;}
|
||||
.header-tabs .el-tabs__item.is-active {background-color: var(--el-bg-color-overlay);}
|
||||
|
||||
/*common-page*/
|
||||
.common-page {}
|
||||
.common-header-left {display: flex;align-items: center;}
|
||||
.common-header-logo {display: flex;align-items: center;}
|
||||
.common-header-logo img {height:30px;margin-right: 10px;vertical-align: bottom;}
|
||||
.common-header-logo label {font-size: 20px;}
|
||||
.common-header-title {font-size: 16px;border-left: 1px solid var(--el-border-color-light);margin-left: 15px;padding-left: 15px;}
|
||||
.common-header-right {display: flex;align-items: center;}
|
||||
.common-header-right a {font-size: 14px;color: var(--el-color-primary);cursor: pointer;}
|
||||
.common-header-right a:hover {color: var(--el-color-primary-light-3);}
|
||||
.common-container {max-width: 1240px;margin:30px auto 30px auto;}
|
||||
.common-main {padding:20px;}
|
||||
.common-title {font-size: 26px;margin-bottom: 20px;font-weight: normal;}
|
||||
.common-main .el-form {width: 500px;margin:30px auto;}
|
||||
.common-main .el-steps .el-step__title {font-size: 14px;}
|
||||
.common-main .el-steps .el-step__icon {border: 1px solid;}
|
||||
.common-main .yzm {display: flex;width: 100%;}
|
||||
.common-main .yzm .el-button {margin-left: 10px;}
|
||||
.common-main .link {color: var(--el-color-primary);cursor: pointer;}
|
||||
.common-main .link:hover {color: var(--el-color-primary-light-3);}
|
||||
@@ -0,0 +1,6 @@
|
||||
@use 'app.scss';
|
||||
@use 'fix.scss';
|
||||
@use 'pages.scss';
|
||||
@use 'media.scss';
|
||||
@use 'dark.scss';
|
||||
@use 'zd.scss';
|
||||
@@ -0,0 +1,48 @@
|
||||
.zd-flex-center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.zd-flex-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.zd-flex-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.zd-padding-0 {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.zd-padding-1 {
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.zd-padding-2 {
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.zd-padding-3 {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.zd-padding-5 {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.zd-padding-8 {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.zd-padding-10 {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.zd-aside+.zd-aside {
|
||||
margin-left: 10px;
|
||||
}
|
||||
Reference in New Issue
Block a user