@wiajs/ui
Version:
wia app ui packages
431 lines (374 loc) • 10.1 kB
text/less
/*
* Edit Table, 类似 listView
* 编辑表table的 class 请设置为 edit-table
*/
@import '../dataTable/index.less';
:root {
--edit-table-font-size: 14px;
--edit-table-attach-gap: 2px;
--edit-table-attach-img: 60px; // 附件图标高度
// --edit-table-attach-cat-minheight: 90px; // 类别高度
--edit-table-attach-cat-heigth: 90px; // 类别高度
}
.edit-table {
// 字体、颜色、文本对齐可继承,无需每级定义
// 表样式
width: 100%;
border-collapse: collapse;
border: none; // 1px solid #CCCCCC;
table-layout: fixed; /*确保td 不被内容撑开,有第一行或colgroup 设置列宽*/
// background: white; // WhiteSmoke
// background: WhiteSmoke; // WhiteSmoke 245 245 245
// background: rgb(247, 248, 250); // WhiteSmoke
margin: 1rem 0 0 0;
font-size: var(--edit-table-font-size); // 17
// color: #828282;
color: #4b4b4b;
h1 {
font-size: 0.9rem; // 18
font-weight: 400;
margin-bottom: 0.75rem;
}
h2 {
font-size: 0.85rem; // 17
font-weight: 400;
margin-bottom: 0.3rem;
}
h3 {
font-size: 0.8rem; // 16
font-weight: 400;
}
p {
margin: 10px 0;
}
/* 跟 listView th 一致 */
th {
font-weight: bold;
font-size: 0.85rem;
padding: 4px 5px 2px;
border-bottom: 1px solid #dce0e0; /*#666;*/
//border-top: 1px solid #f1f1f1;
//border-left: 1px solid #cccccc;
//border-right: 1px solid #cccccc;
// background-color: white; //#396799; /*#396799; lightsteelblue; *#cedce9; #ebebed;*/
white-space: nowrap;
text-align: center; /*text-align: left;*/
height: 1rem;
}
.imgTitle {
font-size: 0.85rem;
font-weight: bold;
text-align: center;
}
tbody {
// background-color: white;
}
/* 跟 listView odd tr 一致 */
tr {
input,
span {
// min-height: 2.2rem;
// min-height: 32px;
min-height: 22px;
//background: lavender;
// padding: 10px 0 10px 0.75rem;
}
}
/* mobile no use odd even!
.etRowOdd {
min-height: 2.2rem;
//background-color: lavender;
input, span {
min-height: 2.2rem;
//background: lavender;
padding: 5px 0.75rem;
}
}
.etRowEven {
min-height: 2.2rem;
//background-color: whitesmoke;
input, span {
min-height: 2.2rem;
//background: whitesmoke;
padding: 5px 0.75rem;
}
}
*/
/* 默认所有 td 带下划线 */
td {
// border-bottom: 1px solid #ccc; /* 灰色下划线 */
// border: none;
border-collapse: collapse;
// padding: 5px;
// vertical-align: bottom;
vertical-align: middle;
// vertical-align: top;
// padding: 2px; /* 可选内边距 */
// display: flex;
// justify-content: stretch; // 充满
}
.data-table td {
vertical-align: middle;
}
/* 包含 etLabel 的 td 不带下划线 */
td:has(> .etLabel) {
border-bottom: none;
padding-left: 8px;
}
/* 包含 etLabel 的 td 带下划线 */
td:has(> .etValue) {
border-bottom: 1px solid #ccc; /* 灰色下划线 */
}
td:has(> .etNumber) {
border-bottom: 1px solid #ccc; /* 灰色下划线 */
}
/* 包含 etLabel 的 td 取消下划线 */
td:has(> .etChange) {
border-bottom: 1px solid rgb(255, 193, 7); /* 灰色下划线 */
}
td:has(> .etAttach) {
border-bottom: 1px solid #ccc; /* 灰色下划线 */
padding-bottom: 3px;
}
td:has(> .etAttach.etCap) {
border: 1px solid rgba(0, 0, 0, 0.125);
padding-top: 5px;
}
/* editTable 独有的,跟 行 底色一致,与TD类似 */
input {
// --dy-input-color: red;
--dy-input-color: #80bdff;
--dy-size: 32px;
}
input-x {
/* 移除边框和背景 */
border: none; // 移除边框
// border: none;
// background: transparent;
// outline: none;
vertical-align: bottom;
padding: 2px;
cursor: pointer;
// cursor: default; // 普通文本光标
/*height: 22px;*/
width: 100%;
//text-align: center;
}
select {
width: 100%;
height: 100%;
}
/* 对 input不起作用,对span起作用
.specN:after {
content: ':';
display: inline-block;
}
*/
span {
//float: left;
display: inline-flex; // inline-block 和 flex 特性
align-items: center;
// justify-content: start;
// text-align: left;
word-break: break-all;
white-space: pre-wrap; // 保留空格和换行,超出自动换行
width: 100%;
// height: 100%; // 跨行时高度不正常
padding: 5px;
// background: white;
// color: rgb(29, 33, 41);
color: rgb(134, 144, 156);
outline: none;
&.etValue {
color: rgb(78, 89, 105);
}
// 标签
&.etLabel {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis; /* 超出显示省略号 */
min-width: 40px; // 最小列宽
// max-width: 100px; // 最大列宽
// width: fit-content; // 内容宽度
// 鼠标移动显示
&:hover {
overflow: visible;
white-space: normal;
// z-index: 1;
position: relative;
// background: white;
// box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}
}
&.etVertical {
writing-mode: vertical-rl; /* 从右到左垂直排列 */
/* writing-mode: vertical-lr; 从左到右垂直排列 */
text-orientation: upright; /* 保持文字直立(中文/日文适用) */
}
&.etClamp {
display: -webkit-box;
-webkit-line-clamp: 3; // 只显示三行
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
max-height: 5em; // 1em = font-size
cursor: pointer;
transition: all 0.2s ease-in-out;
}
&.etClamp:hover {
-webkit-line-clamp: unset;
overflow: visible;
max-height: none;
}
// span 可编辑
&.edit {
display: block;
// contenteditable = plaintext-only"; // 编辑,但是无法获得光标位置,插入图片需要光标位置!
-webkit-user-modify: read-write-plaintext-only;
user-modify: read-write-plaintext-only;
// border: 1px solid #2563eb !important; // rgb(0, 123, 255)
border: 1px solid #80bdff ;
-webkit-line-clamp: unset;
overflow: visible;
max-height: none;
}
}
.etNumber {
display: inline-flex;
// flex-direction: row-reverse;
width: 100%;
white-space: nowrap; /* 防止内容换行 */
span {
white-space: nowrap;
display: inline-block;
}
span.etValue {
flex: auto;
text-align: right;
padding-right: 4px; /* 可选:添加一点右边距 */
font-family: 'Helvetica Neue', sans-serif;
font-size: 15px;
}
span.etSuffix {
flex: none; /* 不伸缩 */
width: fit-content; /* 基于内容宽度 */
color: #a8abb2;
}
}
textarea {
// background: white;
//border: 1px red;
padding: 3px;
width: 100%; /*100%-10px会撑开页面超出10px*/
height: 1rem;
text-align: left;
}
// view 视图
.etView input,
.etView textarea {
color: rgb(29, 33, 41);
/* 解决 textarea 的特殊样式 */
resize: none;
overflow: hidden;
white-space: normal;
// user-select: none; /* 禁止选择和编辑 */
user-select: text; /* 允许选择文本 */
pointer-events: none; // 禁止编辑,不会聚焦和失去焦点!!!
/* 可选:hover时保持普通光标 */
&:hover {
cursor: default;
}
}
/*编辑样式*/
.etEdit input,
.etEdit textarea {
text-align: left ;
// padding: 5px; /*5px 0px 3px;*/
padding: 0 5px; /*5px 0px 3px;*/
width: 100%;
word-break: break-all; // 换行
}
/* editTable编辑时的式样,有个虚线边框 */
.etCellEdit {
//background: LightSteelBlue !important; /*#d0e0ff;*/
// border: 1px dotted black !important;
border: 1px solid #2563eb ; // rgb(0, 123, 255)
//text-align: left !important;
//padding: 0; /*5px 0px 3px;*/
/*height: 22px;*/
//width: 98%;
}
/* 移除 span 黑色边框 */
span-x:focus-visible {
outline: none;
caret-color: transparent; /* 隐藏输入光标 */
}
span-x {
// user-select: none; /* 禁止文本选中 */
cursor: default; /* 使用默认箭头光标 */
}
/* 出入的图片样式,用于手机*/
.etImg {
padding: 0;
width: 100%;
height: auto;
}
/* editTable 独有,选择行,跟 鼠标移动时的 背景色一致 */
.etRowSelOdd,
.etRowSelEven {
background: LightSteelBlue;
input,
span {
background: LightSteelBlue;
}
}
/* 行号,注意字体 */
.etCellSel {
background: White;
cursor: pointer;
color: Navy;
}
/* 行号 鼠标 移动 变色*/
.etCellSelMouseOver {
background: LightSteelBlue;
cursor: pointer;
}
/*用于输入组件所在 层的外框*/
.etInputBox {
position: absolute;
border: 1px solid #7f9db9;
width: 182px;
height: 100px;
overflow: hidden;
}
.etInputSel {
position: relative;
margin: -3px;
width: 500px;
height: 500px;
line-height: 14px;
/*color:#909993;*/
}
// 表格带格线
.etBorder {
td {
border-bottom: 1px solid #cccccc;
}
}
.etRadio,
.etCheckbox {
display: flex;
align-items: center;
justify-content: space-around;
label {
// --f7-list-item-media-margin: 4px;
i {
margin-right: 4px;
}
display: flex;
align-items: center;
min-height: 32px;
}
}
@import './attach.less';
}