移除sass

master
lzq 2026-01-15 12:04:47 +08:00
parent 504f66417f
commit 0afd460a10
16 changed files with 91 additions and 981 deletions

1
package-lock.json generated
View File

@ -31,7 +31,6 @@
"colorette": "^2.0.20",
"fflate": "^0.8.2",
"filesize": "^11.0.2",
"sass": "^1.97.2",
"stylus": "^0.64.0",
"typescript": "~5.8.3",
"typescript-plugin-css-modules": "^5.2.0",

View File

@ -33,7 +33,6 @@
"colorette": "^2.0.20",
"fflate": "^0.8.2",
"filesize": "^11.0.2",
"sass": "^1.97.2",
"stylus": "^0.64.0",
"typescript": "~5.8.3",
"typescript-plugin-css-modules": "^5.2.0",

View File

@ -7,7 +7,7 @@
</template>
<script lang="ts" setup>
import zhCn from "element-plus/es/locale/lang/zh-cn";
import zhCn from 'element-plus/es/locale/lang/zh-cn'
const buttonConfig = reactive({
autoInsertSpace: true,
@ -19,46 +19,4 @@ const buttonConfig = reactive({
</script>
<style lang="stylus">
.el-form-item__label {
line-height: normal !important;
align-items: center !important;
}
.el-form-item--label-right{
margin-right 14px !important;
}
.el-menu-item.is-active{
border-right: 4px solid #1c6eff !important;
background-color #e8f4ff
}
// ::-webkit-scrollbar-thumb {
// background: #888;
// border-radius: 10px;
// }
// ::-webkit-scrollbar-thumb:hover {
// background: #555;
// }
// .el-form-item__label {
// line-height: normal !important;
// align-items: center !important;
// }
// .el-form-item--label-right {
// margin-right: 14px !important;
// }
// .el-menu-item.is-active {
// border-right: 4px solid #1c6eff !important;
// background-color: #e8f4ff;
// }
.el-menu::-webkit-scrollbar-thumb {
background: #ffffff !important;
border-radius: 10px;
}
.el-menu::-webkit-scrollbar-thumb:hover{
background: #36d !important;
border-radius: 10px;
}
</style>

View File

@ -1,2 +0,0 @@
//
@use 'element-plus/theme-chalk/src/dark/css-vars.scss' as *;

View File

@ -1,34 +0,0 @@
// https://github.com/element-plus/element-plus/blob/dev/packages/theme-chalk/src/common/var.scss
// Element
@forward 'element-plus/theme-chalk/src/common/var.scss' with (
$colors: (
'white': #FFFFFF,
'black': #000000,
'success': (
'base': #13DEB9
),
'warning': (
'base': #FFAE1F
),
'danger': (
'base': #FF4D4F
),
'error': (
'base': #CF171D
)
),
$button: (
'hover-bg-color': var(--el-color-primary-light-9),
'hover-border-color': var(--el-color-primary),
'border-color': var(--el-color-primary),
'text-color': var(--el-color-primary)
),
$messagebox: (
'border-radius': '12px'
),
$popover: (
'padding': '14px',
'border-radius': '10px'
)
);

View File

@ -1 +0,0 @@
@use './reset.scss';

View File

@ -1,153 +0,0 @@
// sass
/**
*
* @param {Number}
*/
@mixin ellipsis($rowCount: 1) {
@if $rowCount <=1 {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} @else {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: $rowCount;
-webkit-box-orient: vertical;
}
}
/**
*
* @param {String}
*/
@mixin userSelect($value: none) {
user-select: $value;
-moz-user-select: $value;
-ms-user-select: $value;
-webkit-user-select: $value;
}
//
@mixin absoluteCenter() {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
}
/**
* css3
*
*/
@mixin animation(
$from: (
width: 0px
),
$to: (
width: 100px
),
$name: mymove,
$animate: mymove 2s 1 linear infinite
) {
-webkit-animation: $animate;
-o-animation: $animate;
animation: $animate;
@keyframes #{$name} {
from {
@each $key, $value in $from {
#{$key}: #{$value};
}
}
to {
@each $key, $value in $to {
#{$key}: #{$value};
}
}
}
@-webkit-keyframes #{$name} {
from {
@each $key, $value in $from {
$key: $value;
}
}
to {
@each $key, $value in $to {
$key: $value;
}
}
}
}
//
@mixin circle($size: 11px, $bg: #FFFFFF) {
border-radius: 50%;
width: $size;
height: $size;
line-height: $size;
text-align: center;
background: $bg;
}
// placeholder
@mixin placeholder($color: #BBBBBB) {
// Firefox
&::-moz-placeholder {
color: $color;
opacity: 1;
}
// Internet Explorer 10+
&:-ms-input-placeholder {
color: $color;
}
// Safari and Chrome
&::-webkit-input-placeholder {
color: $color;
}
&:placeholder-shown {
text-overflow: ellipsis;
}
}
//IE8
@mixin betterTransparentize($color, $alpha) {
$c: rgba($color, $alpha);
$ie_c: ie_hex_str($c);
background: rgba($color, 1);
background: $c;
background: transparent \9
;
zoom: 1;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#{$ie_c}, endColorstr=#{$ie_c});
-ms-filter: 'progid:DXImageTransform.Microsoft.gradient(startColorstr=#{$ie_c}, endColorstr=#{$ie_c})';
}
//
@mixin browserPrefix($propertyName, $value) {
@each $prefix in -webkit-, -moz-, -ms-, -o-, '' {
#{$prefix}#{$propertyName}: $value;
}
}
//
@mixin border($color: red) {
border: 1px solid $color;
}
//
@mixin backdropBlur() {
--tw-backdrop-blur: blur(30px);
-webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

View File

@ -1,50 +0,0 @@
@charset "UTF-8";
html, :host {
-webkit-text-size-adjust: 100%;
tab-size: 4;
line-height: 1.5;
font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-feature-settings: var(--default-font-feature-settings, normal);
font-variation-settings: var(--default-font-variation-settings, normal);
-webkit-tap-highlight-color: transparent;
}
/*滚动条*/
/*滚动条整体部分,必须要设置*/
::-webkit-scrollbar {
width: 5px !important;
height: 0 !important;
}
/*滚动条的轨道*/
::-webkit-scrollbar-track {
background-color: #F2F4F5;
}
/*滚动条的滑块按钮*/
::-webkit-scrollbar-thumb {
border-radius: 5px;
background-color: #CCCCCC !important;
transition: all 0.2s;
-webkit-transition: all 0.2s;
}
::-webkit-scrollbar-thumb:hover {
background-color: #B0ABAB !important;
}
/*滚动条的上下两端的按钮*/
::-webkit-scrollbar-button {
height: 0;
width: 0;
}
.dark {
::-webkit-scrollbar-track {
background-color: #070707;
}
::-webkit-scrollbar-thumb {
background-color: #E6EAEB !important;
}
}

View File

@ -32,99 +32,6 @@
}
}
// el-form-item
.el-form-item__label {
height: var(--el-component-custom-height) !important;
line-height: var(--el-component-custom-height) !important;
}
//
.el-date-range-picker {
--el-datepicker-inrange-bg-color: var(--art-gray-200) !important;
}
// el-card
html.dark .el-card {
--el-card-bg-color: var(--default-box-color) !important;
}
.el-pagination {
justify-content: center;
.el-pager {
li {
box-sizing: border-box;
font-weight: 400 !important;
border: 1px solid #E6EAEB;
transition: border-color 0.15s;
padding: 0 10px !important;
&:not(.is-active) {
background-color: transparent !important;
}
&:hover {
border-color: var(--main-color) !important;
}
}
}
.el-pagination__jump {
.el-input {
height: 32px;
}
}
}
//
.el-menu.el-menu--inline {
transition: max-height 0.26s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
.el-sub-menu {
position: relative !important;
}
.el-sub-menu .el-sub-menu__icon-arrow {
position: absolute !important;
top: 50% !important;
right: var(--el-menu-base-level-padding) !important;
margin-top: -6px !important;
transition: transform var(--el-transition-duration) !important;
font-size: 12px !important;
margin-right: 0 !important;
display: block !important;
width: auto !important;
}
// item hover
.el-sub-menu__title,
.el-menu-item {
height: 42px !important;
margin-bottom: 4px;
line-height: 42px !important;
transition: background-color 0s !important;
width: calc(100% - 16px) !important;
margin-left: 8px !important;
border-radius: 6px !important;
&:hover {
background-color: #F2F4F5 !important;
}
}
.menus:not(.el-menu--collapse) {
width: 230px !important;
}
.el-menu--collapse {
width: calc(16px + var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2) !important;
}
.el-menu-item.is-active {
background-color: rgb(238, 243, 255) !important;
}
// -------------------------------- el-size=default start --------------------------------
// el-button
@ -157,416 +64,11 @@ html.dark .el-card {
// -------------------------------- el-size=default end --------------------------------
.el-pagination.is-background .btn-next,
.el-pagination.is-background .btn-prev,
.el-pagination.is-background .el-pager li {
border-radius: 6px;
}
.el-popover {
min-width: 80px;
border-radius: var(--el-border-radius-small) !important;
}
.el-dialog {
border-radius: 100px !important;
border-radius: calc(var(--custom-radius) / 1.2 + 2px) !important;
overflow: hidden;
}
.el-dialog__header {
.el-dialog__title {
font-size: 16px;
}
}
.el-dialog__body {
padding: 25px 0 !important;
position: relative; // el-pagination relative el-pagination el-pagination__jump--small el-pagination__jump--small URL_ADDRESS.com/element-plus/element-plus/issues/5684#issuecomment-1176299275;
}
.el-dialog.el-dialog-border {
.el-dialog__body {
//
&::before,
//
&::after {
content: '';
position: absolute;
left: -16px;
width: calc(100% + 32px);
height: 1px;
background-color: var(--art-gray-300);
}
&::before {
top: 0;
}
&::after {
bottom: 0;
}
}
}
// el-message
.el-message {
background-color: var(--default-box-color) !important;
border: 0 !important;
box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.08),
0 3px 6px -4px rgba(0, 0, 0, 0.12),
0 9px 28px 8px rgba(0, 0, 0, 0.05) !important;
p {
font-size: 13px;
}
}
// el-dropdown
.el-dropdown-menu {
padding: 6px !important;
border-radius: 10px !important;
border: none !important;
.el-dropdown-menu__item {
padding: 6px 16px !important;
border-radius: 6px !important;
&:hover:not(.is-disabled) {
color: var(--art-gray-900) !important;
background-color: var(--art-el-active-color) !important;
}
&:focus:not(.is-disabled) {
color: var(--art-gray-900) !important;
background-color: var(--art-gray-200) !important;
}
}
}
// selectdropdown
.el-select__popper,
.el-dropdown__popper {
margin-top: -6px !important;
.el-popper__arrow {
display: none;
}
}
.el-dropdown-selfdefine:focus {
outline: none !important;
}
//
@media screen and (max-width: 640px) {
.el-message-box,
.el-dialog {
width: calc(100% - 24px) !important;
}
.el-date-picker.has-sidebar.has-time {
width: calc(100% - 24px);
left: 12px !important;
}
.el-picker-panel *[slot='sidebar'],
.el-picker-panel__sidebar {
display: none;
}
.el-picker-panel *[slot='sidebar'] + .el-picker-panel__body,
.el-picker-panel__sidebar + .el-picker-panel__body {
margin-left: 0;
}
}
// el-button
.el-button {
&.el-button--text {
background-color: transparent !important;
padding: 0 !important;
span {
margin-left: 0 !important;
}
}
}
// el-tag
.el-tag {
font-weight: 500;
transition: all 0s !important;
&.el-tag--default {
height: 26px !important;
}
}
.el-checkbox-group {
&.el-table-filter__checkbox-group label.el-checkbox {
height: 17px !important;
.el-checkbox__label {
font-weight: 400 !important;
}
}
}
.el-radio--default {
//
.el-radio__input {
.el-radio__inner {
width: 16px;
height: 16px;
&::after {
width: 6px;
height: 6px;
}
}
}
}
.el-checkbox {
.el-checkbox__inner {
border-radius: 2px !important;
}
}
//
.el-checkbox--default {
.el-checkbox__inner {
width: 16px !important;
height: 16px !important;
border-radius: 4px !important;
&::before {
content: '';
height: 4px !important;
top: 5px !important;
background-color: #FFFFFF !important;
transform: scale(0.6) !important;
}
}
.is-checked {
.el-checkbox__inner {
&::after {
width: 3px;
height: 8px;
margin: auto;
border: 2px solid var(--el-checkbox-checked-icon-color);
border-left: 0;
border-top: 0;
transform: translate(-45%, -60%) rotate(45deg) scale(0.86) !important;
transform-origin: center;
}
}
}
}
.el-notification .el-notification__icon {
font-size: 22px !important;
}
// el-message-box
.el-message-box__headerbtn .el-message-box__close,
.el-dialog__headerbtn .el-dialog__close {
top: 7px;
right: 7px;
width: 30px;
height: 30px;
border-radius: 5px;
transition: all 0.3s;
&:hover {
background-color: var(--art-hover-color) !important;
color: var(--art-gray-900) !important;
}
}
.el-message-box {
padding: 25px 20px !important;
}
.el-message-box__title {
font-weight: 500 !important;
}
.el-table__column-filter-trigger i {
color: var(--theme-color) !important;
margin: -3px 0 0 2px;
}
// el-dropdown
.el-tooltip__trigger:focus-visible {
outline: unset;
}
// ipad
@media screen and (max-width: 1180px) {
.el-table-fixed-column--right {
padding-right: 0 !important;
}
}
.login-out-dialog {
padding: 30px 20px !important;
border-radius: 10px !important;
}
// dialog
.dialog-fade-enter-active {
.el-dialog:not(.is-draggable) {
animation: dialog-open 0.3s cubic-bezier(0.32, 0.14, 0.15, 0.86);
// el-dialog
.el-select__selected-item {
display: inline-block;
}
}
}
.dialog-fade-leave-active {
animation: fade-out 0.2s linear;
.el-dialog:not(.is-draggable) {
animation: dialog-close 0.5s !important;
}
}
@keyframes dialog-open {
0% {
opacity: 0;
transform: scale(0.2);
}
100% {
opacity: 1;
transform: scale(1);
}
}
@keyframes dialog-close {
0% {
opacity: 1;
transform: scale(1);
}
100% {
opacity: 0;
transform: scale(0.2);
}
}
//
@keyframes fade-out {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
// el-select
/* .el-select__popper:not(.el-tree-select__popper) {
.el-select-dropdown__list {
padding: 5px !important;
.el-select-dropdown__item {
height: 34px !important;
line-height: 34px !important;
border-radius: 6px !important;
&.is-selected {
color: var(--art-gray-900) !important;
font-weight: 400 !important;
background-color: var(--art-el-active-color) !important;
margin-bottom: 4px !important;
}
&:hover {
background-color: var(--art-hover-color) !important;
}
}
.el-select-dropdown__item:hover ~ .is-selected,
.el-select-dropdown__item.is-selected:has(~ .el-select-dropdown__item:hover) {
background-color: transparent !important;
}
}
} */
// el-tree-select
.el-tree-select__popper {
.el-select-dropdown__list {
padding: 5px !important;
.el-tree-node {
.el-tree-node__content {
height: 36px !important;
border-radius: 6px !important;
&:hover {
background-color: var(--art-gray-200) !important;
}
}
}
}
}
//
.el-button > span {
position: relative;
z-index: 10;
}
//
.el-color-picker__color {
border-radius: 2px !important;
}
//
.el-picker-panel {
.el-picker-panel__footer {
border-radius: 0 0 var(--el-border-radius-base) var(--el-border-radius-base);
}
}
//
.el-tree-node__content {
border-radius: 4px;
margin-bottom: 4px;
padding: 1px 0;
&:hover {
background-color: var(--art-hover-color) !important;
}
}
.dark {
.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
background-color: var(--art-gray-300) !important;
}
}
// hover
.menu-left-popper:focus-within,
.horizontal-menu-popper:focus-within {
box-shadow: none !important;
outline: none !important;
}
//
.el-input-number--default.is-controls-right {
.el-input-number__decrease,
.el-input-number__increase {
height: calc((var(--el-component-size) / 2)) !important;
}
}

View File

@ -1,167 +1,3 @@
// Element Plus
:root {
--custom-radius: 5px;
//
--main-color: #1C6EFF;
--el-color-white: white !important;
--el-color-black: white !important;
--el-color-primary: #1C6EFF;
--el-button-hover-bg-color: #458FFF;
--el-button-hover-border-color: #458FFF;
--el-color-primary-light-3: #458FFF;
--el-color-danger: #CF171D;
//
// --el-border-color: #E4E4E7 !important; // DCDFE6
//
--el-font-weight-primary: 400 !important;
--el-component-custom-height: 32px !important;
--el-component-size: var(--el-component-custom-height) !important;
// ...
--el-border-radius-base: calc(var(--custom-radius) / 3 + 2px) !important;
--el-border-radius-small: calc(var(--custom-radius) / 3 + 4px) !important;
--el-messagebox-border-radius: calc(var(--custom-radius) / 3 + 4px) !important;
--el-popover-border-radius: calc(var(--custom-radius) / 3 + 4px) !important;
.region .el-radio-button__original-radio:checked + .el-radio-button__inner {
color: var(--theme-color);
}
}
// el-form-item
.el-form-item__label {
height: var(--el-component-custom-height) !important;
line-height: var(--el-component-custom-height) !important;
}
//
.el-date-range-picker {
--el-datepicker-inrange-bg-color: var(--art-gray-200) !important;
}
// el-card
html.dark .el-card {
--el-card-bg-color: var(--default-box-color) !important;
}
.el-pagination {
justify-content: center;
.el-pager {
li {
box-sizing: border-box;
font-weight: 400 !important;
border: 1px solid #E6EAEB;
transition: border-color 0.15s;
padding: 0 10px !important;
&:not(.is-active) {
background-color: transparent !important;
}
&:hover {
border-color: var(--main-color) !important;
}
}
}
.el-pagination__jump {
.el-input {
height: 32px;
}
}
}
//
.el-menu.el-menu--inline {
transition: max-height 0.26s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
.el-sub-menu {
position: relative;
}
.el-sub-menu .el-sub-menu__icon-arrow {
position: absolute;
top: 50%;
right: var(--el-menu-base-level-padding);
margin-top: -6px;
transition: transform var(--el-transition-duration);
font-size: 12px;
margin-right: 0;
display: block;
width: auto;
}
// item hover
.el-sub-menu__title,
.el-menu-item {
height: 42px !important;
margin-bottom: 4px;
line-height: 42px !important;
transition: background-color 0s !important;
width: calc(100% - 16px);
margin-left: 8px;
border-radius: 6px;
&:hover {
background-color: #F2F4F5 !important;
}
}
.menus:not(.el-menu--collapse) {
width: 230px;
}
.el-menu--collapse {
width: calc(16px + var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2);
}
.el-menu-item.is-active {
background-color: rgb(238, 243, 255);
}
// -------------------------------- el-size=default start --------------------------------
// el-button
.el-button--default {
height: var(--el-component-custom-height) !important;
}
// circle
.el-button--default.is-circle {
width: var(--el-component-custom-height) !important;
}
// el-select
.el-select--default {
.el-select__wrapper {
min-height: var(--el-component-custom-height) !important;
}
}
// el-checkbox-button
.el-checkbox-button--default .el-checkbox-button__inner,
// el-radio-button
.el-radio-button--default .el-radio-button__inner {
padding: 10px 15px !important;
}
.el-scrollbar__bar.is-vertical {
width: 4px;
}
// -------------------------------- el-size=default end --------------------------------
.el-pagination.is-background .btn-next,
.el-pagination.is-background .btn-prev,
.el-pagination.is-background .el-pager li {
border-radius: 6px;
}
.el-popover {
min-width: 80px;
@ -188,6 +24,7 @@ html.dark .el-card {
.el-dialog.el-dialog-border {
.el-dialog__body {
//
&::before,
//
&::after {
@ -209,6 +46,7 @@ html.dark .el-card {
}
}
// el-message
.el-message {
background-color: var(--default-box-color) !important;
@ -315,6 +153,7 @@ html.dark .el-card {
.el-radio--default {
//
.el-radio__input {
.el-radio__inner {
width: 16px;
@ -422,6 +261,7 @@ html.dark .el-card {
animation: dialog-open 0.3s cubic-bezier(0.32, 0.14, 0.15, 0.86);
// el-dialog
.el-select__selected-item {
display: inline-block;
}
@ -432,7 +272,7 @@ html.dark .el-card {
animation: fade-out 0.2s linear;
.el-dialog:not(.is-draggable) {
animation: dialog-close 0.5s;
animation: dialog-close 0.5s !important;
}
}

View File

@ -300,6 +300,7 @@ onMounted(doSearch)
</ElTableColumn>
</ElTable>
<ElPagination
class="pagination"
v-model:current-page="searchForm.current"
v-model:page-size="searchForm.size"
:hide-on-single-page="false"
@ -309,7 +310,6 @@ onMounted(doSearch)
background
layout="total, prev, pager, next, sizes, jumper"
@change="doSearch"/>
<slot name="pageBody"/>
</div>
<slot/>
</Page>
@ -331,7 +331,6 @@ onMounted(doSearch)
width 100%;
}
.border-form {
:deep(.el-form-item) {
&:not(.form-action-btn) {
@ -379,6 +378,7 @@ onMounted(doSearch)
.el-form-item.form-action-btn {
grid-column: 1 / -1;
.el-form-item__content {
justify-content end
}
@ -491,6 +491,16 @@ onMounted(doSearch)
}
}
.pagination {
justify-content center
:deep(.btn-next),
:deep(.btn-prev),
:deep(.el-pager) li {
border-radius: 6px !important;
}
}
}
}
</style>

View File

@ -5,6 +5,7 @@
// ------
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
import { GlobalComponents } from 'vue'
export {}
@ -14,10 +15,8 @@ declare module 'vue' {
ElAside: typeof import('element-plus/es')['ElAside']
ElAvatar: typeof import('element-plus/es')['ElAvatar']
ElButton: typeof import('element-plus/es')['ElButton']
ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
ElCol: typeof import('element-plus/es')['ElCol']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElContainer: typeof import('element-plus/es')['ElContainer']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
@ -44,7 +43,6 @@ declare module 'vue' {
ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm']
ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSwitch: typeof import('element-plus/es')['ElSwitch']
@ -71,10 +69,8 @@ declare global {
const ElAside: typeof import('element-plus/es')['ElAside']
const ElAvatar: typeof import('element-plus/es')['ElAvatar']
const ElButton: typeof import('element-plus/es')['ElButton']
const ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
const ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
const ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
const ElCol: typeof import('element-plus/es')['ElCol']
const ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
const ElContainer: typeof import('element-plus/es')['ElContainer']
const ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
@ -101,7 +97,6 @@ declare global {
const ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm']
const ElRadio: typeof import('element-plus/es')['ElRadio']
const ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
const ElRow: typeof import('element-plus/es')['ElRow']
const ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
const ElSelect: typeof import('element-plus/es')['ElSelect']
const ElSwitch: typeof import('element-plus/es')['ElSwitch']

View File

@ -118,13 +118,13 @@ export default defineComponent(
return () => (
<>
<ElMenu default-active={defaultActive.value} collapse={isCollapse.value} style={{height: '100%', '--el-menu-base-level-padding': '10px', border: 'none'}} class={[ styles.aMenus, 'menus' ]}>
<ElMenu default-active={defaultActive.value} collapse={isCollapse.value} class={[ styles.aMenus ]}>
{{
default: () => menuTree.value.map(renderMenu),
}}
</ElMenu>
<ElButton
style={{position: 'absolute', right: '6px', bottom: '6px', width: '32px', height: '32px'}}
class={[ styles.aCollapseBtn, {[styles.aCollapseBtnCollapse]: isCollapse.value} ]}
onClick={() => {
isCollapse.value = !isCollapse.value
}}

View File

@ -35,7 +35,7 @@ onUnmounted(() => {
</ElHeader>
<ElContainer>
<ElAside>
<ElScrollbar class="a-scroll-bar">
<ElScrollbar>
<AAside/>
</ElScrollbar>
</ElAside>

View File

@ -1,4 +1,52 @@
.a-menus {
height: 100%;
--el-menu-base-level-padding: 10px;
border: none;
&:not(:global(.el-menu--collapse)) {
width: 230px;
}
&:global(.el-menu--collapse) {
width: 60px;
}
:global(.el-menu-item):global(.is-active) {
background-color #e8f4ff
&::after {
height: 100%;
}
}
:global(.el-menu-item) {
position relative
transition: background-color, color .3s ease-in-out;
border-radius 4px
&::after {
content: '';
position: absolute;
top: 0;
right: 0;
width: 4px;
height: 0;
background-color: #1c6eff;
transition height 0.3s ease-in-out
}
}
:global(.el-sub-menu__title),
:global(.el-menu-item) {
height: 42px !important;
line-height: 42px !important;
margin-left: 8px;
margin-right: 8px;
&:hover {
background-color: #F2F4F5 !important;
}
}
}
.a-icon {
@ -9,3 +57,18 @@
font-size: 18px;
flex-shrink: 0;
}
.a-collapse-btn {
position: absolute;
right: 6px;
bottom: 6px;
width: 32px;
height: 32px;
transition right 0.3s ease-in-out;
&.a-collapse-btn-collapse {
right: calc(50% - 16px);
}
}

View File

@ -16,16 +16,9 @@ import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import { fileWatcher } from './plugin/file-watcher.ts'
import IconfontProcess from './plugin/iconfont-process.ts'
// import * as https from "node:https";
// https://vite.dev/config/
export default defineConfig((configEnv) => {
const env = loadEnv(configEnv.mode, process.cwd(), '')
// const Agent = https.Agent;
// const agent = new Agent({
// keepAlive: true,
// // host: 'https://supervisory.njzscloud.com' // 显式指定请求的主机名为目标域名
// });
return {
base: env.VITE_APP_BASE_URL,
build: {
@ -37,15 +30,6 @@ export default defineConfig((configEnv) => {
modules: {
localsConvention: 'camelCase',
},
/* preprocessorOptions: {
scss: {
additionalData: `
@use "@/assets/scss/el-ui.scss" as *;
@use "@/assets/scss/el-light.scss" as *;
@use "@/assets/scss/mixin.scss" as *;
`,
},
}, */
},
plugins: [
vue(),
@ -86,14 +70,14 @@ export default defineConfig((configEnv) => {
proxyTimeout: 10000,
target: env.VITE_HTTP_PROXY_TARGET,
secure: false,
// agent,
changeOrigin: true,
rewrite: (path) => (env.VITE_HTTP_SERVER_BASE_URL == null || env.VITE_HTTP_SERVER_BASE_URL == '/' ? path : path.replace(new RegExp(env.VITE_HTTP_SERVER_BASE_URL), '')),
} as ProxyOptions,
[env.VITE_WS_SERVER_BASE_URL]: {
proxyTimeout: 10000,
ws: true,
secure: false,
changeOrigin: true,
target: env.VITE_WS_PROXY_TARGET,
rewrite: (path) => (env.VITE_WS_SERVER_BASE_URL == null || env.VITE_WS_SERVER_BASE_URL == '/' ? path : path.replace(new RegExp(env.VITE_WS_SERVER_BASE_URL), '')),
} as ProxyOptions,