vxe-table-select-area
Version:
一个基于 vxe-table 的可区域选中复制、粘贴的组件
348 lines (347 loc) • 9.69 kB
CSS
/*font*/
/*size*/
/*icon*/
/*color*/
/*input/radio/checkbox*/
/*popup*/
/*table*/
/*filter*/
/*menu*/
/*loading*/
/*validate*/
/*grid*/
/*toolbar*/
/*tooltip*/
/*pager*/
/*modal*/
/*checkbox*/
/*radio*/
/*button*/
/*input*/
/*textarea*/
/*form*/
/*select*/
/*switch*/
/*pulldown*/
.vxe-modal--wrapper {
display: none;
position: fixed;
top: 0;
left: 0;
line-height: 1.5;
width: calc(100% + 18px);
height: calc(100% + 18px);
color: #606266;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
transition: top 0.4s ease-in-out;
}
.vxe-modal--wrapper.is--active {
display: block;
}
.vxe-modal--wrapper.is--visible.is--mask:before {
background-color: rgba(0, 0, 0, 0.5);
}
.vxe-modal--wrapper.is--visible.type--message .vxe-modal--box {
opacity: 1;
transform: translateY(0);
}
.vxe-modal--wrapper.is--visible .vxe-modal--box {
opacity: 1;
visibility: visible;
}
.vxe-modal--wrapper.is--loading .vxe-modal--header,
.vxe-modal--wrapper.is--loading .vxe-modal--footer {
position: relative;
border-bottom-color: rgba(255, 255, 255, 0.5);
}
.vxe-modal--wrapper.is--loading .vxe-modal--header:before,
.vxe-modal--wrapper.is--loading .vxe-modal--footer:before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
background-color: rgba(255, 255, 255, 0.5);
}
.vxe-modal--wrapper:not(.lock--view) {
pointer-events: none;
}
.vxe-modal--wrapper:not(.type--message).lock--scroll {
overflow: hidden;
}
.vxe-modal--wrapper:not(.type--message):not(.lock--scroll) {
overflow: auto;
}
.vxe-modal--wrapper.lock--view:before, .vxe-modal--wrapper.is--mask:before {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
pointer-events: auto;
}
.vxe-modal--wrapper.is--mask:before {
background-color: rgba(0, 0, 0, 0);
}
.vxe-modal--wrapper.is--animat.is--mask:before {
transition: background-color 0.2s ease-in-out;
}
.vxe-modal--wrapper.is--animat.type--message .vxe-modal--box:not(.is--drag) {
transition: all 0.4s ease-out;
}
.vxe-modal--wrapper.type--message .vxe-modal--body, .vxe-modal--wrapper.type--alert .vxe-modal--body, .vxe-modal--wrapper.type--confirm .vxe-modal--body {
white-space: normal;
word-break: break-word;
}
.vxe-modal--wrapper.type--message {
text-align: center;
}
.vxe-modal--wrapper.type--message .vxe-modal--box {
display: inline-block;
padding: 2px 0;
margin-top: 0;
width: auto;
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.1);
opacity: 0;
transform: translateY(-100%);
}
.vxe-modal--wrapper.type--message .vxe-modal--box .vxe-modal--body:after {
content: "";
display: block;
clear: both;
height: 0;
overflow: hidden;
visibility: hidden;
}
.vxe-modal--wrapper.type--message .vxe-modal--box .vxe-modal--content {
max-width: 800px;
float: left;
}
.vxe-modal--wrapper.type--message .vxe-modal--status-wrapper {
font-size: 1.4em;
padding-left: 10px;
}
.vxe-modal--wrapper.type--modal .vxe-modal--box, .vxe-modal--wrapper.type--alert .vxe-modal--box, .vxe-modal--wrapper.type--confirm .vxe-modal--box {
display: flex;
flex-direction: column;
position: fixed;
left: 50%;
top: 0;
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2);
}
.vxe-modal--wrapper.type--modal .vxe-modal--body, .vxe-modal--wrapper.type--alert .vxe-modal--body, .vxe-modal--wrapper.type--confirm .vxe-modal--body {
overflow: auto;
}
.vxe-modal--wrapper.type--modal .vxe-modal--body .vxe-modal--content, .vxe-modal--wrapper.type--alert .vxe-modal--body .vxe-modal--content, .vxe-modal--wrapper.type--confirm .vxe-modal--body .vxe-modal--content {
overflow: auto;
}
.vxe-modal--wrapper.type--alert .vxe-modal--status-wrapper, .vxe-modal--wrapper.type--confirm .vxe-modal--status-wrapper {
font-size: 1.6em;
padding-left: 10px;
}
.vxe-modal--wrapper .vxe-modal--box {
visibility: hidden;
width: 420px;
background-color: #fff;
border-radius: 4px;
border: 1px solid #ebeef5;
text-align: left;
pointer-events: auto;
opacity: 0;
}
.vxe-modal--wrapper .vxe-modal--box.is--drag {
cursor: move;
}
.vxe-modal--wrapper .vxe-modal--box.is--drag .vxe-modal--body:after,
.vxe-modal--wrapper .vxe-modal--box.is--drag .vxe-modal--footer:after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.vxe-modal--wrapper .vxe-modal--box.is--drag .vxe-modal--body {
overflow: hidden;
}
.vxe-modal--wrapper .vxe-modal--box.is--drag .vxe-modal--body .vxe-modal--content {
overflow: hidden;
}
.vxe-modal--wrapper.status--info .vxe-modal--status-wrapper {
color: #909399;
}
.vxe-modal--wrapper.status--warning .vxe-modal--status-wrapper, .vxe-modal--wrapper.status--question .vxe-modal--status-wrapper {
color: #e6a23c;
}
.vxe-modal--wrapper.status--success .vxe-modal--status-wrapper {
color: #67c23a;
}
.vxe-modal--wrapper.status--error .vxe-modal--status-wrapper {
color: #f56c6c;
}
.vxe-modal--wrapper.status--loading .vxe-modal--status-wrapper {
color: #BFBFBF;
}
.vxe-modal--wrapper .vxe-modal--status-wrapper {
flex-shrink: 0;
display: flex;
align-items: center;
}
.vxe-modal--wrapper .vxe-modal--content {
flex-grow: 1;
padding: 0.8em 1em;
white-space: pre-line;
}
.vxe-modal--wrapper .vxe-modal--header,
.vxe-modal--wrapper .vxe-modal--body,
.vxe-modal--wrapper .vxe-modal--footer {
position: relative;
}
.vxe-modal--wrapper .vxe-modal--body {
display: flex;
flex-grow: 1;
}
.vxe-modal--wrapper .vxe-modal--header {
display: flex;
flex-direction: row;
flex-shrink: 0;
font-size: 1.1em;
font-weight: 700;
border-bottom: 1px solid #ebeef5;
background-color: #F8F8F8;
border-radius: 4px 4px 0 0;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
.vxe-modal--wrapper .vxe-modal--header.is--draggable .vxe-modal--header-title {
cursor: move;
}
.vxe-modal--wrapper .vxe-modal--header.is--ellipsis .vxe-modal--header-title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.vxe-modal--wrapper .vxe-modal--header-title {
flex-grow: 1;
padding: 0.6em 0 0.6em 1em;
}
.vxe-modal--wrapper .vxe-modal--header-right {
flex-shrink: 0;
padding: 0.6em 1em 0.6em 0;
}
.vxe-modal--wrapper .vxe-modal--zoom-btn,
.vxe-modal--wrapper .vxe-modal--close-btn {
cursor: pointer;
margin-left: 0.6em;
}
.vxe-modal--wrapper .vxe-modal--zoom-btn:hover,
.vxe-modal--wrapper .vxe-modal--close-btn:hover {
color: #409eff;
}
.vxe-modal--wrapper .vxe-modal--footer {
flex-shrink: 0;
text-align: right;
padding: 0.4em 1em 0.8em 1em;
}
.vxe-modal--wrapper.is--maximize .vxe-modal--box .vxe-modal--header {
cursor: default;
}
.vxe-modal--wrapper.is--maximize .vxe-modal--resize .wl-resize,
.vxe-modal--wrapper.is--maximize .vxe-modal--resize .wr-resize,
.vxe-modal--wrapper.is--maximize .vxe-modal--resize .swst-resize,
.vxe-modal--wrapper.is--maximize .vxe-modal--resize .sest-resize,
.vxe-modal--wrapper.is--maximize .vxe-modal--resize .st-resize,
.vxe-modal--wrapper.is--maximize .vxe-modal--resize .swlb-resize,
.vxe-modal--wrapper.is--maximize .vxe-modal--resize .selb-resize,
.vxe-modal--wrapper.is--maximize .vxe-modal--resize .sb-resize {
display: none;
}
.vxe-modal--wrapper .vxe-modal--resize .wl-resize,
.vxe-modal--wrapper .vxe-modal--resize .wr-resize,
.vxe-modal--wrapper .vxe-modal--resize .swst-resize,
.vxe-modal--wrapper .vxe-modal--resize .sest-resize,
.vxe-modal--wrapper .vxe-modal--resize .st-resize,
.vxe-modal--wrapper .vxe-modal--resize .swlb-resize,
.vxe-modal--wrapper .vxe-modal--resize .selb-resize,
.vxe-modal--wrapper .vxe-modal--resize .sb-resize {
position: absolute;
z-index: 100;
}
.vxe-modal--wrapper .vxe-modal--resize .wl-resize,
.vxe-modal--wrapper .vxe-modal--resize .wr-resize {
width: 8px;
height: 100%;
top: 0;
cursor: w-resize;
}
.vxe-modal--wrapper .vxe-modal--resize .wl-resize {
left: -5px;
}
.vxe-modal--wrapper .vxe-modal--resize .wr-resize {
right: -5px;
}
.vxe-modal--wrapper .vxe-modal--resize .swst-resize,
.vxe-modal--wrapper .vxe-modal--resize .sest-resize,
.vxe-modal--wrapper .vxe-modal--resize .swlb-resize,
.vxe-modal--wrapper .vxe-modal--resize .selb-resize {
width: 10px;
height: 10px;
z-index: 101;
}
.vxe-modal--wrapper .vxe-modal--resize .swst-resize,
.vxe-modal--wrapper .vxe-modal--resize .sest-resize {
top: -8px;
}
.vxe-modal--wrapper .vxe-modal--resize .swlb-resize,
.vxe-modal--wrapper .vxe-modal--resize .selb-resize {
bottom: -8px;
}
.vxe-modal--wrapper .vxe-modal--resize .sest-resize,
.vxe-modal--wrapper .vxe-modal--resize .swlb-resize {
cursor: sw-resize;
}
.vxe-modal--wrapper .vxe-modal--resize .swst-resize,
.vxe-modal--wrapper .vxe-modal--resize .selb-resize {
cursor: se-resize;
}
.vxe-modal--wrapper .vxe-modal--resize .swst-resize,
.vxe-modal--wrapper .vxe-modal--resize .swlb-resize {
left: -8px;
}
.vxe-modal--wrapper .vxe-modal--resize .sest-resize,
.vxe-modal--wrapper .vxe-modal--resize .selb-resize {
right: -8px;
}
.vxe-modal--wrapper .vxe-modal--resize .st-resize,
.vxe-modal--wrapper .vxe-modal--resize .sb-resize {
width: 100%;
height: 8px;
left: 0;
cursor: s-resize;
}
.vxe-modal--wrapper .vxe-modal--resize .st-resize {
top: -5px;
}
.vxe-modal--wrapper .vxe-modal--resize .sb-resize {
bottom: -5px;
}
.vxe-modal--wrapper {
font-size: 14px;
}
.vxe-modal--wrapper.size--medium {
font-size: 14px;
}
.vxe-modal--wrapper.size--small {
font-size: 13px;
}
.vxe-modal--wrapper.size--mini {
font-size: 12px;
}