Files
ulthon_admin/public/static/admin/css/public.css
augushong 21a5eceeda fix(table): 排序行图标右置并在排序组标题提供重置
- 排序行改两端布局:标题居左、方向图标贴右,未排序行右端留空对齐
- 「排序」标题右侧新增重置链接(仅排序生效时渲染),点击清除排序并就地刷新,面板保持打开
2026-10-05 11:34:58 +00:00

1046 lines
20 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@charset "UTF-8";
@import url("../../plugs/layui-v2.10.1/css/layui.css");
@import url("../../plugs/font-awesome-4.7.0/css/font-awesome.min.css");
@import url("../css/iconfont.css");
@import url("../../plugs/jq-module/city-picker/css/city-picker.css");
html,
body {
height: 100%;
background: #f2f2f2;
}
.layuimini-container {
min-height: 250px;
padding: 15px;
margin-right: auto;
margin-left: auto;
padding-left: 15px;
padding-right: 15px;
}
.layuimini-main {
position: relative;
padding: 15px 15px;
background-color: #ffffff;
border: 1px solid #f2f2f2;
border-radius: 5px;
}
.text-center {
text-align: center;
}
.layuimini-form {
margin-top: 10px;
}
.layuimini-form .layui-form-item {
position: relative;
padding: 0 60px 0 0;
line-height: 24px;
}
.layuimini-form.multiple-columns .hr-line {
width: 100%;
}
.layuimini-form.multiple-columns .hr-line + .layui-form-item {
width: 100%;
}
.layuimini-form.multiple-columns .layui-form-item {
display: inline-block;
width: calc(50% - 62px);
flex-shrink: 1;
}
.layuimini-form.multiple-columns .layui-form-item.full-line {
display: block;
width: calc(100% - 62px);
}
.easy-bg-white {
background-color: #ffffff;
height: auto;
}
.hr-line {
color: #fff;
height: 1px;
margin: 30px 0;
background-color: #fff;
border-top: 1px dashed #e7eaec;
}
/**重写layui表格自适应*/
.layuimini-container .layui-table-cell {
max-width: 100%;
}
/**数据表格-搜索表单样式*/
.layuimini-container .table-search-fieldset {
margin: 0;
border: 1px solid #e6e6e6;
padding: 10px 20px 5px 20px;
color: #6b6b6b;
}
.layuimini-container .table-search-fieldset input::-webkit-input-placeholder {
color: #a9a9a9;
}
.layuimini-container .table-search-fieldset input:-ms-input-placeholder {
color: #a9a9a9;
}
.layuimini-container .table-search-fieldset input::-ms-input-placeholder {
color: #a9a9a9;
}
/**图标选择器*/
.layui-iconpicker-body.layui-iconpicker-body-page .hide {
display: none;
}
/**必填红点 */
.layuimini-form > .layui-form-item .required:after {
content: "*";
color: red;
position: absolute;
margin-left: 4px;
font-weight: bold;
line-height: 1.8em;
top: 6px;
right: 5px;
}
/*.layuimini-form>.layui-form-item>.layui-form-label {width:120px !important;}*/
/*.layuimini-form>.layui-form-item>.layui-input-block {margin-left:150px !important;}*/
.layuimini-form > .layui-form-item > .layui-input-block tip,
.layuimini-form > .layui-form-item > .layui-inline tip {
display: inline-block;
margin-top: 5px;
line-height: 18px;
font-size: 14px;
color: #a29c9c;
margin-right: 10px;
}
.layuimini-form > .layui-form-item > .layui-input-block tip::before,
.layuimini-form > .layui-form-item > .layui-inline tip::before {
content: "";
display: inline-block;
width: 4px;
height: 4px;
border-radius: 50%;
background-color: #a29c9c;
margin-right: 5px;
vertical-align: middle;
}
/** 按钮背景色 */
.layuimini-container .layuimini-btn-primary {
color: #fff;
background-color: #2c3e50;
}
.layuimini-container .layui-btn-sm i {
font-size: 12px !important;
}
/**文件上传样式*/
.layuimini-upload {
position: relative;
}
.layuimini-upload .layuimini-upload-btn {
display: inline-block;
position: absolute;
right: 0px;
background-color: #fff;
}
.layuimini-upload-show {
margin-top: 10px;
margin-bottom: 0;
}
.layuimini-upload-show li {
position: relative;
display: inline-block;
padding: 5px 0 5px 0;
padding-left: 10px;
padding-right: 10px;
border: 1px solid #e2e2e2;
}
.layuimini-upload-show a img {
height: 80px;
object-fit: cover;
}
.layuimini-upload-show .uploads-delete-tip {
position: absolute;
right: 10px;
font-size: 12px;
}
.bg-red {
background-color: #e74c3c !important;
}
.color-red {
color: #e74c3c !important;
}
.badge {
display: inline-block;
min-width: 10px;
padding: 3px 7px;
font-size: 11px;
font-weight: bold;
color: #fff;
line-height: 1;
vertical-align: middle;
white-space: nowrap;
text-align: center;
background-color: #777777;
border-radius: 10px;
}
/**vue隐藏样式*/
[v-cloak] {
display: none;
}
/**表格url样式*/
.layuimini-table-url {
background-color: #1497f3;
color: #ffffff;
border-radius: 3px;
size: 8px !important;
padding: 2px;
}
.layuimini-table-url:hover {
background-color: #1497f3;
color: #ffffff;
border-radius: 3px;
size: 8px !important;
padding: 2px;
}
/**后台权限隐藏*/
/*[auth] { display: none; }*/
.layui-form-label {
width: 100px;
}
.layui-input-block {
margin-left: 130px;
min-height: 36px;
}
/**
table样式
*/
.layuimini-container .layui-laypage .layui-laypage-curr .layui-laypage-em {
border-radius: 30px !important;
background-color: #1e9fff !important;
}
.layuimini-container .layui-table-tool {
background-color: #ffffff;
border-bottom: none !important;
padding-bottom: 15px !important;
}
.layuimini-container .layui-table-view {
border: none !important;
}
.layuimini-container .layui-table-view::after {
content: "";
display: block;
clear: both;
height: 0;
visibility: hidden;
}
.layuimini-container .layui-table-box {
border-width: 1px;
border-style: solid;
border-color: #e6e6e6;
}
.layuimini-container .layui-table-page,
.layui-table-total {
border-width: 0px 0 0;
}
.layuimini-container .layui-table-box .layui-table-header th {
font-weight: bold !important;
color: #565656 !important;
}
/**
搜索
*/
.form-search .layui-btn {
height: 32px;
line-height: 28px;
font-size: 12px;
padding: 0 10px;
}
.form-search .layui-form-label {
padding: 0 8px;
height: 32px;
line-height: 30px;
}
.form-search .layui-input-inline {
width: 170px;
}
.form-search .layui-input-inline input,
.form-search .layui-input-inline select {
width: 100%;
height: 32px;
padding: 2px 8px;
line-height: 1em;
font-size: 12px;
}
.form-search .layui-form-select dl {
top: 31px;
padding: 0;
}
/**
按钮
*/
.layuimini-container .layui-btn-success {
color: #fff;
background-color: #4bb368;
border-color: #4bb368;
}
.layuimini-container .layui-btn-danger {
color: #fff;
background-color: #f56c6c;
border-color: #f56c6c;
}
.layuimini-container .layui-table-tool .layui-btn + .layui-btn {
margin-left: 5px;
}
.layuimini-container .layui-table-tool .layui-inline[lay-event] {
width: 30px;
height: 30px;
line-height: 30px;
padding: 0px;
}
.layuimini-container .layui-table-tool .layui-inline .layui-icon {
font-size: 16px;
}
.layuimini-container .layui-table-tool-self {
right: 0px;
}
.layuimini-container .layui-table-tool {
padding: 10px 0px;
}
/* 手机端的表格头部操作 */
.layuimini-container .main-tool {
padding: 15px;
}
/**
开关
*/
.layuimini-container .layui-form-switch {
border: 1px solid #f56d6d;
background-color: #f56d6d;
}
.layuimini-container .layui-form-switch em {
color: #fff !important;
}
.layuimini-container .layui-form-switch i {
background-color: #ffffff;
}
.layuimini-container .layui-form-onswitch {
border-color: #1f9fff;
background-color: #1f9fff;
}
/**
下拉选择
*/
.layuimini-container .layui-form-select dl dd.layui-this {
background-color: #1e9fff !important;
color: #fff;
}
/**
弹出层样式
*/
.layui-layer-easy .layui-layer-title {
background: #2c3e50 !important;
color: #fff !important;
border-bottom: none;
}
.layui-layer-easy .layui-layer-title ~ .layui-layer-setwin > a {
height: 42px;
line-height: 42px;
display: inline-block;
}
.layui-layer-easy.layui-layer-border {
border: none !important;
box-shadow: 1px 1px 50px rgba(0, 0, 0, 0.3) !important;
}
.layui-layer-easy.layui-layer-iframe {
overflow: visible;
}
.layui-layer-easy .layui-layer-moves {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
.layui-layer-easy .layui-layer-btn {
text-align: center !important;
padding: 10px !important;
background: #ecf0f1;
overflow: hidden;
}
.layui-layer-easy .layui-layer-btn a {
background-color: #95a5a6;
border-color: #95a5a6;
color: #fff !important;
height: 31px;
margin-top: 0;
border: 1px solid transparent;
}
.layui-layer-easy .layui-layer-btn .layui-layer-btn0 {
background-color: #1E9FFF;
border-color: #1E9FFF;
}
.layui-layer-easy .layui-layer-footer {
padding: 8px 20px;
background-color: #ecf0f1;
height: auto;
text-align: inherit !important;
}
.layui-layer-easy .layui-layer-setwin > span {
color: #fff;
}
.layui-layer-easy .layui-layer-setwin > a {
background: none !important;
}
.layui-layer-easy .layui-layer-setwin > a cite {
display: none;
}
.layui-layer-easy .layui-layer-setwin > a:after {
content: "\e625";
font-family: iconfont;
font-style: normal;
font-weight: normal;
text-decoration: inherit;
position: absolute;
font-size: 18px;
color: #fff;
margin: 0;
z-index: 1;
}
.layui-layer-easy .layui-layer-setwin > a:hover {
text-decoration: none !important;
background: none !important;
}
.layui-layer-easy .layui-layer-setwin > a:focus {
text-decoration: none !important;
}
.layui-layer-easy .layui-layer-setwin .layui-layer-max::after,
.layui-layer-easy .layui-layer-setwin .layui-layer-max::before {
border-color: #fff;
}
.layui-layer-easy .layui-layer-setwin .layui-layer-min::before {
background-color: #fff;
}
.layui-layer-content {
clear: both;
}
.layui-layer-easy-msg {
min-width: 100px;
}
.layui-layer-easy-tab .layui-layer-title .layui-this {
color: #333;
}
.layui-layer-easy-tab .layui-layer-content .layui-layer-tabmain {
margin: 0;
padding: 0;
}
@media screen and (max-width: 1024px) {
.layuimini-form .layui-form-item {
position: relative;
padding: 0 30px 0 0;
line-height: 24px;
}
}
@media screen and (max-width: 768px) {
.easyadmin-export-btn {
display: none;
}
}
/**
资源加载锁
*/
.easy-load-lock {
cursor: not-allowed;
}
.line-limit-length {
width: 200px;
overflow: hidden;
text-overflow: ellipsis;
background: goldenrod;
white-space: nowrap;
}
/**
详情页面样式
*/
/* 详情页面容器 */
.detail-container {
background-color: #ffffff;
}
/* 详情页面卡片 */
.detail-card {
background-color: #ffffff;
border: 1px solid #e8e8e8;
border-radius: 4px;
}
/* 详情页面头部 */
.detail-header {
background-color: #f8f9fa;
border-bottom: 1px solid #e8e8e8;
}
/* 详情标题 */
.detail-title {
font-size: 20px;
font-weight: bold;
color: #333;
}
/* 详情ID */
.detail-id {
font-size: 12px;
color: #999;
}
/* 详情内容区域 */
.detail-content {
background-color: #ffffff;
}
/* 左侧主体内容 */
.detail-main {
background-color: #ffffff;
}
/* 右侧基础信息 */
.detail-side {
background-color: #f5f7fa;
border-radius: 4px;
}
/* 右侧面板标题 */
.detail-side-title {
font-size: 16px;
font-weight: bold;
color: #333;
padding: 5px;
border-bottom: 1px solid #e8e8e8;
}
/* 字段组样式 */
.detail-field-group {
margin-bottom: 0;
}
/* 字段项样式 */
.detail-field-item {
padding: 5px;
border-bottom: 1px solid #f0f0f0;
overflow: hidden;
}
.detail-field-item:last-child {
border-bottom: none;
margin-bottom: 0;
padding-bottom: 0;
}
/* 字段标签样式 */
.detail-field-label {
font-weight: bold;
color: #666;
margin-bottom: 5px;
font-size: 14px;
float: left;
width: 100px;
text-align: left;
}
/* 字段值样式 */
.detail-field-value {
color: #333;
line-height: 1.5;
font-size: 14px;
margin-left: 110px;
min-height: 30px;
word-break: break-word;
}
/* 详情图片样式 */
.detail-image {
max-width: 100%;
height: auto;
border-radius: 4px;
border: 1px solid #e8e8e8;
}
/* 详情操作按钮 */
.detail-actions {
text-align: right;
}
/* 响应式设计 */
@media (max-width: 768px) {
.detail-field-label {
float: none;
width: 100%;
margin-bottom: 5px;
}
.detail-field-value {
margin-left: 0;
}
}
.search-hide-item {
display: none;
}
.form-item-time-limit .layui-input-inline {
display: flex;
width: 274px;
}
.form-item-number-limit .layui-input-inline {
display: flex;
}
/* 重写地区选择器的样式 */
.city-picker-span {
height: 38px;
border-width: 1px;
border-style: solid;
background-color: #fff;
color: rgba(0, 0, 0, 0.85);
border-radius: 2px;
border-color: #eee;
}
.city-picker-span:hover {
border-color: #eee !important;
}
.city-picker-span > .placeholder {
padding-left: 10px;
}
.city-picker-span.focus,
.city-picker-span.open {
border-color: #d2d2d2 !important;
}
[data-toggle=copy-text].copy-rendered {
cursor: pointer;
}
.table-tpl-container {
position: absolute;
z-index: 9999999999;
right: 0;
white-space: nowrap;
border: 1px solid #d2d2d2;
text-align: left;
overflow-y: auto;
background-color: #fff;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);
}
.ul-nav-block .item.current {
background-color: rgb(22, 183, 119);
}
.ul-nav-block .item:hover {
background-color: rgba(22, 183, 119, 0.7);
}
.ul-nav-block .item .item-icon {
margin-right: 8;
}
.ul-nav-block .item {
padding: 8px 18px;
}
.ul-nav-block {
border-radius: 0;
}
.ua-layout-cards {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 12px;
}
.ua-layout-empty {
padding: 24px 0;
text-align: center;
color: #999;
}
.ua-layout-loading {
min-height: 60px;
opacity: 0.55;
pointer-events: none;
}
.ua-data-card {
display: flex;
flex-direction: column;
padding: 10px 12px;
border: 1px solid #f2f2f2;
border-radius: 5px;
background-color: #fff;
cursor: default;
transition: border-color 0.2s, box-shadow 0.2s;
}
.ua-data-card:hover {
border-color: #d2d2d2;
}
.ua-data-card-checked {
border-color: rgb(22, 183, 119);
box-shadow: 0 0 0 1px rgb(22, 183, 119) inset;
}
.ua-data-card-disabled {
background-color: #fafafa;
cursor: not-allowed;
}
.ua-data-card-disabled .ua-data-card-title,
.ua-data-card-disabled .ua-data-card-item-value,
.ua-data-card-disabled .ua-data-card-time {
color: #c2c2c2;
}
.ua-data-card-header {
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 8px;
margin-bottom: 8px;
border-bottom: 1px solid #f2f2f2;
}
.ua-data-card-title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-weight: bold;
}
.ua-data-card-check {
flex: none;
margin-left: 8px;
color: #d2d2d2;
font-size: 18px;
line-height: 1;
cursor: pointer;
}
.ua-data-card-check:hover {
color: rgb(22, 183, 119);
}
.ua-data-card-checked .ua-data-card-check {
color: rgb(22, 183, 119);
}
.ua-data-card-body {
flex: 1;
}
.ua-data-card-item {
display: flex;
margin-bottom: 4px;
line-height: 22px;
}
.ua-data-card-item:last-child {
margin-bottom: 0;
}
.ua-data-card-item-title {
flex: none;
color: #999;
}
.ua-data-card-item-title::after {
content: ":";
}
.ua-data-card-item-value {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.ua-data-card-footer {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 8px;
padding-top: 8px;
border-top: 1px solid #f2f2f2;
}
.ua-data-card-time {
color: #999;
font-size: 12px;
}
.ua-data-card-operat {
display: flex;
flex-wrap: wrap;
gap: 6px;
justify-content: flex-end;
}
.ua-data-card-operat a {
margin: 0;
}
/* 压过 layui 基类 .layui-btn+.layui-btn{margin-left:10px}(特异性 0,3,0 > 0,2,0) */
.ua-data-card-operat .layui-btn + .layui-btn {
margin-left: 0;
}
/* 卡片操作按钮三态显隐:卡片网格内默认隐藏(保占位防 footer 跳动)、
hover 显示;设置面板开关写入容器的 ua-card-operat-always 类后常显
(admin-table.js 两条渲染路径挂类);触屏设备无 hover 能力恒显。 */
.ua-layout-cards .ua-data-card-operat {
opacity: 0;
visibility: hidden;
transition: opacity 0.2s, visibility 0.2s;
}
.ua-data-card:hover .ua-data-card-operat {
opacity: 1;
visibility: visible;
}
.ua-card-operat-always .ua-data-card-operat {
opacity: 1;
visibility: visible;
}
@media (hover: none) {
.ua-layout-cards .ua-data-card-operat {
opacity: 1;
visibility: visible;
}
}
/* 卡片操作按钮折叠收纳:按钮超过 3 个时其余移入隐藏容器(admin-table.js
applyCardOperatFold 移 DOM),点击"更多"锚点展开整行排列,on 态高亮 */
.ua-card-operat-more-wrap:not(.layui-hide) {
flex-basis: 100%;
display: flex;
justify-content: flex-end;
gap: 6px;
flex-wrap: wrap;
}
.ua-card-operat-more {
cursor: pointer;
color: inherit;
}
.ua-card-operat-more.on {
color: rgb(22, 183, 119);
}
/* 卡片设置面板(admin-table.js toggleCardSettingPanel 产出;面板骨架复用上方
.ul-nav-block 基类,此处补面板本体定位与视觉(与 .table-tpl-container 视图
切换下拉同语言)、配置行与自绘开关)。入口为右侧 defaultToolbar 图标组
最左侧的 TABLE_CARD_SETTING 图标;面板由受控接线 append 至本表的
.layui-table-tool(layui 已 position:relative),left/top 不在此声明,
打开时经 getBoundingClientRect 差值内联定位(右缘对齐图标右缘、顶边贴
图标下沿),向下向左展开 */
.ua-card-setting-panel {
position: absolute;
z-index: 999;
min-width: 160px;
border: 1px solid #d2d2d2;
background-color: #fff;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);
white-space: nowrap;
overflow-y: auto;
text-align: left;
}
.ua-card-setting-title {
padding: 6px 12px 0;
color: #999;
font-size: 12px;
}
.ua-card-setting-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 4px 12px;
}
.ua-card-setting-item:hover {
background-color: #f8f8f8;
}
/* 排序行紧凑:压过 .ul-nav-block .item 基类的 padding: 8px 18px
(同特异性 0,2,0,源序靠后胜出,不用 !important);两端布局——
标题居左、方向图标贴行右端,未排序行图标 display:none,行仅剩
左侧标题,space-between 使各行标题对齐 */
.ua-card-setting-panel .ua-card-setting-sort-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 4px 12px;
line-height: 20px;
}
.ua-card-setting-sort-arrow {
flex: none;
}
/* 「排序」标题行两端布局:标题居左,「重置」链接(仅排序生效时渲染)贴右 */
.ua-card-setting-title.ua-card-setting-sort-title {
display: flex;
align-items: center;
justify-content: space-between;
}
.ua-card-setting-sort-reset {
color: #01AAED;
cursor: pointer;
padding: 0 2px;
}
.ua-card-setting-sort-reset:hover {
text-decoration: underline;
}
.ua-card-setting-switch {
position: relative;
flex: none;
width: 36px;
height: 18px;
border-radius: 9px;
background-color: #d2d2d2;
cursor: pointer;
transition: background-color 0.2s;
}
.ua-card-setting-switch::after {
content: "";
position: absolute;
top: 2px;
left: 2px;
width: 14px;
height: 14px;
border-radius: 50%;
background-color: #fff;
transition: left 0.2s;
}
.ua-card-setting-switch.on {
background-color: rgb(22, 183, 119);
}
.ua-card-setting-switch.on::after {
left: 20px;
}
@media (max-width: 768px) {
.ua-layout-cards {
grid-template-columns: 1fr;
}
}
@media (max-width: 768px) {
.layuimini-form .layui-form-item {
padding-right: 0;
}
.layuimini-form .layui-form-item .layui-form-label {
float: unset;
display: inline-block;
width: auto;
padding-left: 0;
padding-bottom: 0px;
}
.layuimini-form .layui-form-item .layui-input-block {
margin-left: 0;
}
.layuimini-form.multiple-columns .layui-form-item.full-line {
width: calc(100% - 0px);
}
.layui-table-tool-temp {
padding-right: unset;
padding-bottom: 40px;
}
.layuimini-container .layui-table-tool-self {
right: 0;
bottom: 10px;
top: unset;
}
}
.w-e-text-container,
.w-e-bar {
border: 1px solid #d2d2d2;
}
.search-tab .layui-tabs-body {
display: none;
}