rev:布局
This commit is contained in:
@@ -20,6 +20,9 @@ public class CleanLog {
|
|||||||
WQLObject logTab = WQLObject.getWQLObject("sys_log");
|
WQLObject logTab = WQLObject.getWQLObject("sys_log");
|
||||||
int days = Integer.parseInt(paramService.findByCode("log_day").getValue());
|
int days = Integer.parseInt(paramService.findByCode("log_day").getValue());
|
||||||
logTab.delete("DATE(create_time) <= DATE(DATE_SUB(NOW(),INTERVAL " + days + " day))");
|
logTab.delete("DATE(create_time) <= DATE(DATE_SUB(NOW(),INTERVAL " + days + " day))");
|
||||||
|
|
||||||
|
WQLObject logQuartzTab = WQLObject.getWQLObject("sys_quartz_log");
|
||||||
|
logQuartzTab.delete("DATE(create_time) <= DATE(DATE_SUB(NOW(),INTERVAL " + days + " day))");
|
||||||
log.info("自动清理日志执行成功...!");
|
log.info("自动清理日志执行成功...!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,32 +38,32 @@ public class NL4StationDeviceDriver extends AbstractOpcDeviceDriver implements D
|
|||||||
|
|
||||||
// 心跳
|
// 心跳
|
||||||
private int heartbeat = 0;
|
private int heartbeat = 0;
|
||||||
private int lastHeartbeat = this.heartbeat;
|
private int lastHeartbeat = 0;
|
||||||
// 工作模式
|
// 工作模式
|
||||||
private int mode = 0;
|
private int mode = 0;
|
||||||
private int lastMode = this.mode;
|
private int lastMode = 0;
|
||||||
// 光电信号
|
// 光电信号
|
||||||
private int move = 0;
|
private int move = 0;
|
||||||
private int lastMove = this.move;
|
private int lastMove = 0;
|
||||||
// 动作信号
|
// 动作信号
|
||||||
private int action = 0;
|
private int action = 0;
|
||||||
private int lastAction = this.action;
|
private int lastAction = 0;
|
||||||
// error
|
// error
|
||||||
private int error = 0;
|
private int error = 0;
|
||||||
private int lastError = this.error;
|
private int lastError = 0;
|
||||||
// 任务号
|
// 任务号
|
||||||
private int task = 0;
|
private int task = 0;
|
||||||
private int lastTask = this.task;
|
private int lastTask = 0;
|
||||||
|
|
||||||
// 下发命令
|
// 下发命令
|
||||||
private int toCommand = 0;
|
private int toCommand = 0;
|
||||||
private int lastToCommand = this.toCommand;
|
private int lastToCommand = 0;
|
||||||
// 下发物料
|
// 下发物料
|
||||||
private int toMaterial = 0;
|
private int toMaterial = 0;
|
||||||
private int lastToMaterial = this.toMaterial;
|
private int lastToMaterial = 0;
|
||||||
// 下发数量
|
// 下发数量
|
||||||
private int toQty = 0;
|
private int toQty = 0;
|
||||||
private int lastToQty = this.toQty;
|
private int lastToQty = 0;
|
||||||
|
|
||||||
private String currentDeviceCode = null;
|
private String currentDeviceCode = null;
|
||||||
private boolean isOnline = false;
|
private boolean isOnline = false;
|
||||||
@@ -103,37 +103,28 @@ public class NL4StationDeviceDriver extends AbstractOpcDeviceDriver implements D
|
|||||||
if (mode == 2) {
|
if (mode == 2) {
|
||||||
this.writing("to_command", "0");
|
this.writing("to_command", "0");
|
||||||
}
|
}
|
||||||
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", "mode信号发生变化,进行复位标记,此时标记值:" + requireSuccess);
|
|
||||||
this.deviceExecuteLogService.deviceItemValue(this.currentDeviceCode, ItemProtocol.ITEM_MODE, String.valueOf(mode));
|
|
||||||
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_MODE + " " + this.lastMode + " -> " + this.mode);
|
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_MODE + " " + this.lastMode + " -> " + this.mode);
|
||||||
}
|
}
|
||||||
if (this.move != this.lastMove) {
|
if (this.move != this.lastMove) {
|
||||||
this.deviceExecuteLogService.deviceItemValue(this.currentDeviceCode, ItemProtocol.ITEM_MOVE, String.valueOf(this.move));
|
|
||||||
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_MOVE + " " + this.lastMove + " -> " + this.move);
|
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_MOVE + " " + this.lastMove + " -> " + this.move);
|
||||||
}
|
}
|
||||||
if (this.action != this.lastAction) {
|
if (this.action != this.lastAction) {
|
||||||
this.deviceExecuteLogService.deviceItemValue(this.currentDeviceCode, ItemProtocol.ITEM_ACTION, String.valueOf(this.action));
|
|
||||||
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_ACTION + " " + this.lastAction + " -> " + this.action);
|
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_ACTION + " " + this.lastAction + " -> " + this.action);
|
||||||
}
|
}
|
||||||
if (this.error != this.lastError) {
|
if (this.error != this.lastError) {
|
||||||
this.deviceExecuteLogService.deviceItemValue(this.currentDeviceCode, ItemProtocol.ITEM_ERROR, String.valueOf(this.error));
|
|
||||||
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_ERROR + " " + this.lastError + " -> " + this.error);
|
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_ERROR + " " + this.lastError + " -> " + this.error);
|
||||||
}
|
}
|
||||||
if (this.task != this.lastTask) {
|
if (this.task != this.lastTask) {
|
||||||
this.deviceExecuteLogService.deviceItemValue(this.currentDeviceCode, ItemProtocol.ITEM_TASK, String.valueOf(this.task));
|
|
||||||
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_TASK + " " + this.lastTask + " -> " + this.task);
|
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_TASK + " " + this.lastTask + " -> " + this.task);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.toCommand != this.lastToCommand) {
|
if (this.toCommand != this.lastToCommand) {
|
||||||
this.deviceExecuteLogService.deviceItemValue(this.currentDeviceCode, ItemProtocol.ITEM_TO_COMMAND, String.valueOf(this.toCommand));
|
|
||||||
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_TO_COMMAND + " " + this.lastToCommand + " -> " + this.toCommand);
|
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_TO_COMMAND + " " + this.lastToCommand + " -> " + this.toCommand);
|
||||||
}
|
}
|
||||||
if (this.toMaterial != this.lastToMaterial) {
|
if (this.toMaterial != this.lastToMaterial) {
|
||||||
this.deviceExecuteLogService.deviceItemValue(this.currentDeviceCode, ItemProtocol.ITEM_TO_MATERIAL, String.valueOf(this.toMaterial));
|
|
||||||
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_TO_MATERIAL + " " + this.lastToMaterial + " -> " + this.toMaterial);
|
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_TO_MATERIAL + " " + this.lastToMaterial + " -> " + this.toMaterial);
|
||||||
}
|
}
|
||||||
if (this.toQty != this.lastToQty) {
|
if (this.toQty != this.lastToQty) {
|
||||||
this.deviceExecuteLogService.deviceItemValue(this.currentDeviceCode, ItemProtocol.ITEM_TO_QTY, String.valueOf(this.toQty));
|
|
||||||
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_TO_QTY + " " + this.lastToQty + " -> " + this.toQty);
|
this.deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", ItemProtocol.ITEM_TO_QTY + " " + this.lastToQty + " -> " + this.toQty);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -271,8 +262,12 @@ public class NL4StationDeviceDriver extends AbstractOpcDeviceDriver implements D
|
|||||||
private Device findHasGoodsDevice(JSONArray deviceCodes) {
|
private Device findHasGoodsDevice(JSONArray deviceCodes) {
|
||||||
for (int i = 0; i < deviceCodes.size(); i++) {
|
for (int i = 0; i < deviceCodes.size(); i++) {
|
||||||
Device device = this.deviceAppService.findDeviceByCode(deviceCodes.getString(i));
|
Device device = this.deviceAppService.findDeviceByCode(deviceCodes.getString(i));
|
||||||
if (device != null && "0".equals(device.getIslock()) && 1 == device.getHas_goods()) {
|
if (device != null && ("0".equals(device.getIslock()) || "false".equals(device.getIslock())) && 1 == device.getHas_goods()) {
|
||||||
return device;
|
return device;
|
||||||
|
} else {
|
||||||
|
if (device != null) {
|
||||||
|
deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", "查找设备时,对应的设备:" + device.getDevice_code() + ",锁定状态:" + device.getIslock() + ",有货状态:" + device.getHas_goods());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -281,8 +276,12 @@ public class NL4StationDeviceDriver extends AbstractOpcDeviceDriver implements D
|
|||||||
private Device findNotHasGoodsDevice(JSONArray deviceCodes) {
|
private Device findNotHasGoodsDevice(JSONArray deviceCodes) {
|
||||||
for (int i = 0; i < deviceCodes.size(); i++) {
|
for (int i = 0; i < deviceCodes.size(); i++) {
|
||||||
Device device = this.deviceAppService.findDeviceByCode(deviceCodes.getString(i));
|
Device device = this.deviceAppService.findDeviceByCode(deviceCodes.getString(i));
|
||||||
if (device != null && "0".equals(device.getIslock()) && 0 == device.getHas_goods()) {
|
if (device != null && ("0".equals(device.getIslock()) || "false".equals(device.getIslock())) && 0 == device.getHas_goods()) {
|
||||||
return device;
|
return device;
|
||||||
|
} else {
|
||||||
|
if (device != null) {
|
||||||
|
deviceExecuteLogService.deviceExecuteLog(this.currentDeviceCode, "", "", "查找设备时,对应的设备:" + device.getDevice_code() + ",锁定状态:" + device.getIslock() + ",有货状态:" + device.getHas_goods());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -582,8 +582,8 @@ public class HFHandServiceImpl implements HFHandService {
|
|||||||
taskService.finish(acsTask.getTask_id());
|
taskService.finish(acsTask.getTask_id());
|
||||||
Device startDevice = deviceAppService.findDeviceByCode(acsTask.getStart_device_code());
|
Device startDevice = deviceAppService.findDeviceByCode(acsTask.getStart_device_code());
|
||||||
Device nextDevice = deviceAppService.findDeviceByCode(acsTask.getNext_device_code());
|
Device nextDevice = deviceAppService.findDeviceByCode(acsTask.getNext_device_code());
|
||||||
startDevice.setIslock("false");
|
startDevice.setIslock("0");
|
||||||
nextDevice.setIslock("false");
|
nextDevice.setIslock("0");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -53,9 +53,6 @@
|
|||||||
sys_dict_detail
|
sys_dict_detail
|
||||||
WHERE
|
WHERE
|
||||||
`name` = 'region'
|
`name` = 'region'
|
||||||
OPTION 输入.region_code <> ""
|
|
||||||
value in ('2','3','5','7','8','11')
|
|
||||||
ENDOPTION
|
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import org.nl.modules.quartz.domain.QuartzLog;
|
|||||||
import org.nl.modules.quartz.repository.QuartzLogRepository;
|
import org.nl.modules.quartz.repository.QuartzLogRepository;
|
||||||
import org.nl.modules.quartz.service.QuartzJobService;
|
import org.nl.modules.quartz.service.QuartzJobService;
|
||||||
import org.nl.modules.wql.util.SpringContextHolder;
|
import org.nl.modules.wql.util.SpringContextHolder;
|
||||||
|
import org.quartz.DisallowConcurrentExecution;
|
||||||
import org.quartz.JobExecutionContext;
|
import org.quartz.JobExecutionContext;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.scheduling.quartz.QuartzJobBean;
|
import org.springframework.scheduling.quartz.QuartzJobBean;
|
||||||
@@ -41,6 +42,7 @@ import java.util.concurrent.ThreadPoolExecutor;
|
|||||||
@Async
|
@Async
|
||||||
@SuppressWarnings({"unchecked", "all"})
|
@SuppressWarnings({"unchecked", "all"})
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
@DisallowConcurrentExecution
|
||||||
public class ExecutionJob extends QuartzJobBean {
|
public class ExecutionJob extends QuartzJobBean {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 622 B |
Binary file not shown.
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 125 KiB |
@@ -1,99 +1,99 @@
|
|||||||
@import 'variables';
|
@import 'variables';
|
||||||
|
|
||||||
@mixin colorBtn($color) {
|
@mixin colorBtn($color) {
|
||||||
background: $color;
|
background: $color;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: $color;
|
color: $color;
|
||||||
|
|
||||||
&:before,
|
&:before,
|
||||||
&:after {
|
&:after {
|
||||||
background: $color;
|
background: $color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.blue-btn {
|
.blue-btn {
|
||||||
@include colorBtn($blue)
|
@include colorBtn($blue)
|
||||||
}
|
}
|
||||||
|
|
||||||
.light-blue-btn {
|
.light-blue-btn {
|
||||||
@include colorBtn($light-blue)
|
@include colorBtn($light-blue)
|
||||||
}
|
}
|
||||||
|
|
||||||
.red-btn {
|
.red-btn {
|
||||||
@include colorBtn($red)
|
@include colorBtn($red)
|
||||||
}
|
}
|
||||||
|
|
||||||
.pink-btn {
|
.pink-btn {
|
||||||
@include colorBtn($pink)
|
@include colorBtn($pink)
|
||||||
}
|
}
|
||||||
|
|
||||||
.green-btn {
|
.green-btn {
|
||||||
@include colorBtn($green)
|
@include colorBtn($green)
|
||||||
}
|
}
|
||||||
|
|
||||||
.tiffany-btn {
|
.tiffany-btn {
|
||||||
@include colorBtn($tiffany)
|
@include colorBtn($tiffany)
|
||||||
}
|
}
|
||||||
|
|
||||||
.yellow-btn {
|
.yellow-btn {
|
||||||
@include colorBtn($yellow)
|
@include colorBtn($yellow)
|
||||||
}
|
}
|
||||||
|
|
||||||
.pan-btn {
|
.pan-btn {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
padding: 14px 36px;
|
padding: 14px 36px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
border: none;
|
border: none;
|
||||||
outline: none;
|
outline: none;
|
||||||
transition: 600ms ease all;
|
transition: 600ms ease all;
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
|
|
||||||
&:before,
|
&:before,
|
||||||
&:after {
|
&:after {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
transition: 600ms ease all;
|
transition: 600ms ease all;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:before,
|
&:before,
|
||||||
&:after {
|
&:after {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
height: 2px;
|
height: 2px;
|
||||||
width: 0;
|
width: 0;
|
||||||
transition: 400ms ease all;
|
transition: 400ms ease all;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
right: inherit;
|
right: inherit;
|
||||||
top: inherit;
|
top: inherit;
|
||||||
left: 0;
|
left: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.custom-button {
|
.custom-button {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
outline: 0;
|
outline: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,205 +1,230 @@
|
|||||||
.head-container {
|
.head-container {
|
||||||
padding-bottom: 10px;
|
padding-top: 4px;
|
||||||
|
padding-bottom: 6px;
|
||||||
.filter-item {
|
background-color: #ffffff;
|
||||||
display: inline-block;
|
border-radius: 4px;
|
||||||
vertical-align: middle;
|
|
||||||
margin: 0 3px 10px 0;
|
.filter-item {
|
||||||
|
display: inline-block;
|
||||||
input {
|
vertical-align: middle;
|
||||||
height: 30.5px;
|
margin: 0 3px 10px 0;
|
||||||
line-height: 30.5px;
|
|
||||||
}
|
input {
|
||||||
}
|
height: 30.5px;
|
||||||
|
line-height: 30.5px;
|
||||||
.el-form-item-label {
|
}
|
||||||
margin: 0 3px 9px 0;
|
}
|
||||||
display: inline-block;
|
|
||||||
text-align: right;
|
.el-form-item-label {
|
||||||
vertical-align: middle;
|
margin: 0 3px 9px 0;
|
||||||
font-size: 14px;
|
display: inline-block;
|
||||||
color: #606266;
|
text-align: right;
|
||||||
line-height: 30.5px;
|
vertical-align: middle;
|
||||||
padding: 0 7px 0 7px;
|
font-size: 14px;
|
||||||
}
|
color: #606266;
|
||||||
|
line-height: 30.5px;
|
||||||
.el-button + .el-button {
|
padding: 0 7px 0 7px;
|
||||||
margin-left: 0 !important;
|
}
|
||||||
}
|
|
||||||
|
.el-button + .el-button {
|
||||||
.el-select__caret.el-input__icon.el-icon-arrow-up {
|
margin-left: 0 !important;
|
||||||
line-height: 30.5px;
|
}
|
||||||
}
|
|
||||||
|
.el-select__caret.el-input__icon.el-icon-arrow-up {
|
||||||
.date-item {
|
line-height: 30.5px;
|
||||||
display: inline-block;
|
}
|
||||||
vertical-align: middle;
|
|
||||||
margin-bottom: 10px;
|
.date-item {
|
||||||
height: 30.5px !important;
|
display: inline-block;
|
||||||
width: 230px !important;
|
vertical-align: middle;
|
||||||
}
|
margin-bottom: 10px;
|
||||||
}
|
height: 30.5px !important;
|
||||||
|
width: 230px !important;
|
||||||
.el-avatar {
|
}
|
||||||
display: inline-block;
|
}
|
||||||
text-align: center;
|
|
||||||
background: #ccc;
|
.el-avatar {
|
||||||
color: #fff;
|
display: inline-block;
|
||||||
white-space: nowrap;
|
text-align: center;
|
||||||
position: relative;
|
background: #ccc;
|
||||||
overflow: hidden;
|
color: #fff;
|
||||||
vertical-align: middle;
|
white-space: nowrap;
|
||||||
width: 32px;
|
position: relative;
|
||||||
height: 32px;
|
overflow: hidden;
|
||||||
line-height: 32px;
|
vertical-align: middle;
|
||||||
border-radius: 16px;
|
width: 32px;
|
||||||
}
|
height: 32px;
|
||||||
|
line-height: 32px;
|
||||||
.logo-con {
|
border-radius: 16px;
|
||||||
height: 60px;
|
}
|
||||||
padding: 13px 0 0;
|
|
||||||
|
.logo-con {
|
||||||
img {
|
height: 60px;
|
||||||
height: 32px;
|
padding: 13px 0 0;
|
||||||
width: 135px;
|
|
||||||
display: block;
|
img {
|
||||||
//margin: 0 auto;
|
height: 32px;
|
||||||
}
|
width: 135px;
|
||||||
}
|
display: block;
|
||||||
|
//margin: 0 auto;
|
||||||
#el-login-footer {
|
}
|
||||||
height: 40px;
|
}
|
||||||
line-height: 40px;
|
|
||||||
position: fixed;
|
#el-login-footer {
|
||||||
bottom: 0;
|
height: 40px;
|
||||||
width: 100%;
|
line-height: 40px;
|
||||||
text-align: center;
|
position: fixed;
|
||||||
color: #fff;
|
bottom: 0;
|
||||||
font-family: Arial, serif;
|
width: 100%;
|
||||||
font-size: 12px;
|
text-align: center;
|
||||||
letter-spacing: 1px;
|
color: #fff;
|
||||||
}
|
font-family: Arial, serif;
|
||||||
|
font-size: 12px;
|
||||||
#el-main-footer {
|
letter-spacing: 1px;
|
||||||
background: none repeat scroll 0 0 white;
|
}
|
||||||
border-top: 1px solid #e7eaec;
|
|
||||||
overflow: hidden;
|
#el-main-footer {
|
||||||
padding: 10px 6px 0 6px;
|
background: none repeat scroll 0 0 white;
|
||||||
height: 33px;
|
border-top: 1px solid #e7eaec;
|
||||||
font-size: 0.7rem !important;
|
overflow: hidden;
|
||||||
color: #7a8b9a;
|
padding: 10px 6px 0 6px;
|
||||||
letter-spacing: 0.8px;
|
height: 33px;
|
||||||
font-family: Arial, sans-serif !important;
|
font-size: 0.7rem !important;
|
||||||
position: fixed;
|
color: #7a8b9a;
|
||||||
bottom: 0;
|
letter-spacing: 0.8px;
|
||||||
z-index: 99;
|
font-family: Arial, sans-serif !important;
|
||||||
width: 100%;
|
position: fixed;
|
||||||
}
|
bottom: 0;
|
||||||
|
z-index: 99;
|
||||||
.eladmin-upload {
|
width: 100%;
|
||||||
border: 1px dashed #c0ccda;
|
}
|
||||||
border-radius: 5px;
|
|
||||||
height: 45px;
|
.eladmin-upload {
|
||||||
line-height: 45px;
|
border: 1px dashed #c0ccda;
|
||||||
width: 368px;
|
border-radius: 5px;
|
||||||
}
|
height: 45px;
|
||||||
|
line-height: 45px;
|
||||||
.my-blockquote {
|
width: 368px;
|
||||||
margin: 0 0 10px;
|
}
|
||||||
padding: 15px;
|
|
||||||
line-height: 22px;
|
.my-blockquote {
|
||||||
border-left: 5px solid #00437B;
|
margin: 0 0 10px;
|
||||||
border-radius: 0 2px 2px 0;
|
padding: 15px;
|
||||||
background-color: #f2f2f2;
|
line-height: 22px;
|
||||||
}
|
border-left: 5px solid #00437B;
|
||||||
|
border-radius: 0 2px 2px 0;
|
||||||
.my-code {
|
background-color: #f2f2f2;
|
||||||
position: relative;
|
}
|
||||||
padding: 15px;
|
|
||||||
line-height: 20px;
|
.my-code {
|
||||||
border-left: 5px solid #ddd;
|
position: relative;
|
||||||
color: #333;
|
padding: 15px;
|
||||||
font-family: Courier New, serif;
|
line-height: 20px;
|
||||||
font-size: 12px
|
border-left: 5px solid #ddd;
|
||||||
}
|
color: #333;
|
||||||
|
font-family: Courier New, serif;
|
||||||
.el-tabs {
|
font-size: 12px
|
||||||
margin-bottom: 25px;
|
}
|
||||||
}
|
|
||||||
|
.el-tabs {
|
||||||
|
margin-bottom: 25px;
|
||||||
//修改侧边栏菜单颜色和高度
|
}
|
||||||
.el-menu-item, .el-submenu__title {
|
|
||||||
height: 40px !important;
|
|
||||||
//background-color: #776020 !important;
|
//修改侧边栏菜单颜色和高度
|
||||||
}
|
.el-menu-item, .el-submenu__title {
|
||||||
|
height: 40px !important;
|
||||||
#app .sidebar-container .el-submenu .el-menu-item {
|
//background-color: #776020 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#app .sidebar-container .nest-menu .el-submenu > .el-submenu__title, #app .sidebar-container .el-submenu .el-menu-item {
|
#app .sidebar-container .el-submenu .el-menu-item {
|
||||||
}
|
}
|
||||||
|
|
||||||
#app .sidebar-container {
|
#app .sidebar-container .nest-menu .el-submenu > .el-submenu__title, #app .sidebar-container .el-submenu .el-menu-item {
|
||||||
//background-color: #544b32 !important;
|
}
|
||||||
}
|
|
||||||
|
#app .sidebar-container {
|
||||||
.el-form-item--small.el-form-item {
|
//background-color: #544b32 !important;
|
||||||
margin-bottom: 12px !important;
|
}
|
||||||
}
|
|
||||||
|
.el-form-item--small.el-form-item {
|
||||||
.el-form-item--mini.el-form-item {
|
margin-bottom: 12px !important;
|
||||||
margin-bottom: 10px !important;
|
}
|
||||||
}
|
|
||||||
|
.el-form-item--mini.el-form-item {
|
||||||
//去除编辑文本框为数字时的上下箭头start
|
margin-bottom: 10px !important;
|
||||||
.el-form--inline .el-form-item__content {
|
}
|
||||||
width: auto !important;
|
|
||||||
}
|
//去除编辑文本框为数字时的上下箭头start
|
||||||
|
.el-form--inline .el-form-item__content {
|
||||||
input[type="number"] {
|
width: auto !important;
|
||||||
-moz-appearance: textfield;
|
}
|
||||||
}
|
|
||||||
|
input[type="number"] {
|
||||||
input[type="number"]::-webkit-inner-spin-button,
|
-moz-appearance: textfield;
|
||||||
input[type="number"]::-webkit-outer-spin-button {
|
}
|
||||||
-webkit-appearance: none;
|
|
||||||
}
|
input[type="number"]::-webkit-inner-spin-button,
|
||||||
|
input[type="number"]::-webkit-outer-spin-button {
|
||||||
//去除编辑文本框为数字时的上下箭头end
|
-webkit-appearance: none;
|
||||||
//设置计数器文字居左
|
}
|
||||||
.el-input-number--mini .el-input__inner {
|
|
||||||
text-align: left;
|
//去除编辑文本框为数字时的上下箭头end
|
||||||
}
|
|
||||||
|
//设置计数器文字居左
|
||||||
.el-table:not(.el-table–scrollable-x) .el-table__fixed-right {
|
.el-input-number--mini .el-input__inner {
|
||||||
height: 100% !important;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改弹出框距离
|
.el-table:not(.el-table–scrollable-x) .el-table__fixed-right {
|
||||||
.el-dialog__body {
|
height: 100% !important;
|
||||||
padding-top: 0px !important;
|
}
|
||||||
}
|
|
||||||
|
// 修改弹出框距离
|
||||||
//表格标题样式
|
.el-dialog__body {
|
||||||
.el-table {
|
padding-top: 0px !important;
|
||||||
.el-table__header-wrapper,
|
}
|
||||||
.el-table__fixed-header-wrapper {
|
|
||||||
th {
|
//表格标题样式
|
||||||
word-break: break-word;
|
.el-table {
|
||||||
background-color: #f8f8f9;
|
.el-table__header-wrapper,
|
||||||
color: #515a6e;
|
.el-table__fixed-header-wrapper {
|
||||||
height: 35px;
|
th {
|
||||||
font-size: 13px;
|
word-break: break-word;
|
||||||
}
|
background-color: #f5f5f5;
|
||||||
td{
|
color: #515a6e;
|
||||||
color: #f8f8f9;
|
height: 35px;
|
||||||
}
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
.el-table__body-wrapper {
|
|
||||||
.el-button [class*="el-icon-"] + span {
|
td {
|
||||||
margin-left: 1px;
|
color: #f8f8f9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
.el-table__body-wrapper {
|
||||||
|
.el-button [class*="el-icon-"] + span {
|
||||||
|
margin-left: 1px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//表格固定列最后一行显示不全(https://mp.weixin.qq.com/s/HpoykJNtsynsW4UMHitZbQ)
|
||||||
|
.el-table__fixed-right {
|
||||||
|
height: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
//表头与内容错位
|
||||||
|
.el-table--scrollable-y .el-table__body-wrapper {
|
||||||
|
overflow-y: overlay !important;
|
||||||
|
}
|
||||||
|
//左侧边框不显示start https://blog.csdn.net/m0_37922443/article/details/126487240
|
||||||
|
.el-table__row td:not(.is-hidden):last-child {
|
||||||
|
right: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
thead th:not(.is-hidden):last-child {
|
||||||
|
right: -1px;
|
||||||
|
}
|
||||||
|
//左侧边框不显示end
|
||||||
|
|
||||||
|
|||||||
@@ -1,122 +1,122 @@
|
|||||||
// cover some element-ui styles
|
// cover some element-ui styles
|
||||||
|
|
||||||
.el-breadcrumb__inner,
|
.el-breadcrumb__inner,
|
||||||
.el-breadcrumb__inner a {
|
.el-breadcrumb__inner a {
|
||||||
font-weight: 400 !important;
|
font-weight: 400 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-upload {
|
.el-upload {
|
||||||
input[type="file"] {
|
input[type="file"] {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-upload__input {
|
.el-upload__input {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cell {
|
.cell {
|
||||||
.el-tag {
|
.el-tag {
|
||||||
margin-right: 0px;
|
margin-right: 0px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.small-padding {
|
.small-padding {
|
||||||
.cell {
|
.cell {
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.fixed-width {
|
.fixed-width {
|
||||||
.el-button--mini {
|
.el-button--mini {
|
||||||
padding: 7px 10px;
|
padding: 7px 10px;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-col {
|
.status-col {
|
||||||
.cell {
|
.cell {
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
.el-tag {
|
.el-tag {
|
||||||
margin-right: 0px;
|
margin-right: 0px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// to fixed https://github.com/ElemeFE/element/issues/2461
|
// to fixed https://github.com/ElemeFE/element/issues/2461
|
||||||
.el-dialog {
|
.el-dialog {
|
||||||
transform: none;
|
transform: none;
|
||||||
left: 0;
|
left: 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
// refine element ui upload
|
// refine element ui upload
|
||||||
.upload-container {
|
.upload-container {
|
||||||
.el-upload {
|
.el-upload {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
.el-upload-dragger {
|
.el-upload-dragger {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 200px;
|
height: 200px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// dropdown
|
// dropdown
|
||||||
.el-dropdown-menu {
|
.el-dropdown-menu {
|
||||||
a {
|
a {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// fix date-picker ui bug in filter-item
|
// fix date-picker ui bug in filter-item
|
||||||
.el-range-editor.el-input__inner {
|
.el-range-editor.el-input__inner {
|
||||||
display: inline-flex !important;
|
display: inline-flex !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
// to fix el-date-picker css style
|
// to fix el-date-picker css style
|
||||||
.el-range-separator {
|
.el-range-separator {
|
||||||
box-sizing: content-box;
|
box-sizing: content-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-menu--collapse
|
.el-menu--collapse
|
||||||
> div
|
> div
|
||||||
> .el-submenu
|
> .el-submenu
|
||||||
> .el-submenu__title
|
> .el-submenu__title
|
||||||
.el-submenu__icon-arrow {
|
.el-submenu__icon-arrow {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-form-search {
|
.el-form-search {
|
||||||
float: right;
|
float: right;
|
||||||
.el-form-search-item {
|
.el-form-search-item {
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
.el-input__inner {
|
.el-input__inner {
|
||||||
width: 140px;
|
width: 140px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
el-table .el-table__cell {
|
el-table .el-table__cell {
|
||||||
padding: 8px 0;
|
padding: 8px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-table--medium .el-table__cell {
|
.el-table--medium .el-table__cell {
|
||||||
padding: 6px 0;
|
padding: 6px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-table--small .el-table__cell {
|
.el-table--small .el-table__cell {
|
||||||
padding: 3px 0;
|
padding: 3px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-table--mini .el-table__cell {
|
.el-table--mini .el-table__cell {
|
||||||
padding: 1px 0;
|
padding: 1px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-dialog__body {
|
.el-dialog__body {
|
||||||
padding: 20px 20px;
|
padding: 20px 20px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,31 +1,31 @@
|
|||||||
/**
|
/**
|
||||||
* I think element-ui's default theme color is too light for long-term use.
|
* I think element-ui's default theme color is too light for long-term use.
|
||||||
* So I modified the default color and you can modify it to your liking.
|
* So I modified the default color and you can modify it to your liking.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
/* theme color */
|
/* theme color */
|
||||||
$--color-primary: #1890ff;
|
$--color-primary: #1890ff;
|
||||||
$--color-success: #13ce66;
|
$--color-success: #13ce66;
|
||||||
$--color-warning: #FFBA00;
|
$--color-warning: #FFBA00;
|
||||||
$--color-danger: #ff4949;
|
$--color-danger: #ff4949;
|
||||||
// $--color-info: #1E1E1E;
|
// $--color-info: #1E1E1E;
|
||||||
|
|
||||||
$--button-font-weight: 400;
|
$--button-font-weight: 400;
|
||||||
|
|
||||||
// $--color-text-regular: #1f2d3d;
|
// $--color-text-regular: #1f2d3d;
|
||||||
|
|
||||||
$--border-color-light: #dfe4ed;
|
$--border-color-light: #dfe4ed;
|
||||||
$--border-color-lighter: #e6ebf5;
|
$--border-color-lighter: #e6ebf5;
|
||||||
|
|
||||||
$--table-border:1px solid#dfe6ec;
|
$--table-border:1px solid#dfe6ec;
|
||||||
|
|
||||||
/* icon font path, required */
|
/* icon font path, required */
|
||||||
$--font-path: '~element-ui/lib/theme-chalk/fonts';
|
$--font-path: '~element-ui/lib/theme-chalk/fonts';
|
||||||
|
|
||||||
@import "../../../node_modules/element-ui/packages/theme-chalk/src/index";
|
@import "../../../node_modules/element-ui/packages/theme-chalk/src/index";
|
||||||
|
|
||||||
// the :export directive is the magic sauce for webpack
|
// the :export directive is the magic sauce for webpack
|
||||||
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
|
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
|
||||||
:export {
|
:export {
|
||||||
theme: $--color-primary;
|
theme: $--color-primary;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,182 +1,183 @@
|
|||||||
@import 'variables';
|
@import 'variables';
|
||||||
@import 'mixin';
|
@import 'mixin';
|
||||||
@import 'transition';
|
@import 'transition';
|
||||||
@import 'element-ui';
|
@import 'element-ui';
|
||||||
@import 'sidebar';
|
@import 'sidebar';
|
||||||
@import 'btn';
|
@import 'btn';
|
||||||
@import 'eladmin';
|
@import 'eladmin';
|
||||||
|
|
||||||
body {
|
body {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
text-rendering: optimizeLegibility;
|
text-rendering: optimizeLegibility;
|
||||||
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
|
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
label {
|
label {
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
//background-color: #eeeeee;
|
||||||
|
}
|
||||||
#app {
|
|
||||||
height: 100%;
|
#app {
|
||||||
}
|
height: 100%;
|
||||||
|
}
|
||||||
*,
|
|
||||||
*:before,
|
*,
|
||||||
*:after {
|
*:before,
|
||||||
box-sizing: inherit;
|
*:after {
|
||||||
}
|
box-sizing: inherit;
|
||||||
|
}
|
||||||
.no-padding {
|
|
||||||
padding: 0 !important;
|
.no-padding {
|
||||||
}
|
padding: 0 !important;
|
||||||
|
}
|
||||||
.padding-content {
|
|
||||||
padding: 4px 0;
|
.padding-content {
|
||||||
}
|
padding: 4px 0;
|
||||||
|
}
|
||||||
a:focus,
|
|
||||||
a:active {
|
a:focus,
|
||||||
outline: none;
|
a:active {
|
||||||
}
|
outline: none;
|
||||||
|
}
|
||||||
a,
|
|
||||||
a:focus,
|
a,
|
||||||
a:hover {
|
a:focus,
|
||||||
cursor: pointer;
|
a:hover {
|
||||||
color: inherit;
|
cursor: pointer;
|
||||||
text-decoration: none;
|
color: inherit;
|
||||||
}
|
text-decoration: none;
|
||||||
|
}
|
||||||
div:focus {
|
|
||||||
outline: none;
|
div:focus {
|
||||||
}
|
outline: none;
|
||||||
|
}
|
||||||
.fr {
|
|
||||||
float: right;
|
.fr {
|
||||||
}
|
float: right;
|
||||||
|
}
|
||||||
.fl {
|
|
||||||
float: left;
|
.fl {
|
||||||
}
|
float: left;
|
||||||
|
}
|
||||||
.pr-5 {
|
|
||||||
padding-right: 5px;
|
.pr-5 {
|
||||||
}
|
padding-right: 5px;
|
||||||
|
}
|
||||||
.pl-5 {
|
|
||||||
padding-left: 5px;
|
.pl-5 {
|
||||||
}
|
padding-left: 5px;
|
||||||
|
}
|
||||||
.block {
|
|
||||||
display: block;
|
.block {
|
||||||
}
|
display: block;
|
||||||
|
}
|
||||||
.pointer {
|
|
||||||
cursor: pointer;
|
.pointer {
|
||||||
}
|
cursor: pointer;
|
||||||
|
}
|
||||||
.inlineBlock {
|
|
||||||
display: block;
|
.inlineBlock {
|
||||||
}
|
display: block;
|
||||||
|
}
|
||||||
.clearfix {
|
|
||||||
&:after {
|
.clearfix {
|
||||||
visibility: hidden;
|
&:after {
|
||||||
display: block;
|
visibility: hidden;
|
||||||
font-size: 0;
|
display: block;
|
||||||
content: " ";
|
font-size: 0;
|
||||||
clear: both;
|
content: " ";
|
||||||
height: 0;
|
clear: both;
|
||||||
}
|
height: 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
aside {
|
|
||||||
background: #eef1f6;
|
aside {
|
||||||
padding: 8px 24px;
|
background: #d40c70;
|
||||||
margin-bottom: 20px;
|
padding: 8px 24px;
|
||||||
border-radius: 2px;
|
margin-bottom: 20px;
|
||||||
display: block;
|
border-radius: 2px;
|
||||||
line-height: 32px;
|
display: block;
|
||||||
font-size: 16px;
|
line-height: 32px;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
font-size: 16px;
|
||||||
color: #2c3e50;
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
||||||
-webkit-font-smoothing: antialiased;
|
color: #2c3e50;
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
a {
|
|
||||||
color: #337ab7;
|
a {
|
||||||
cursor: pointer;
|
color: #337ab7;
|
||||||
|
cursor: pointer;
|
||||||
&:hover {
|
|
||||||
color: rgb(32, 160, 255);
|
&:hover {
|
||||||
}
|
color: rgb(32, 160, 255);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//main-container全局样式
|
|
||||||
.app-container {
|
//main-container全局样式
|
||||||
padding: 20px 20px 45px 20px;
|
.app-container {
|
||||||
}
|
padding: 10px 20px 45px 10px;
|
||||||
|
}
|
||||||
.components-container {
|
|
||||||
margin: 30px 50px;
|
.components-container {
|
||||||
position: relative;
|
margin: 30px 50px;
|
||||||
}
|
position: relative;
|
||||||
|
}
|
||||||
.pagination-container {
|
|
||||||
margin-top: 30px;
|
.pagination-container {
|
||||||
}
|
margin-top: 30px;
|
||||||
|
}
|
||||||
.text-center {
|
|
||||||
text-align: center
|
.text-center {
|
||||||
}
|
text-align: center
|
||||||
|
}
|
||||||
.sub-navbar {
|
|
||||||
height: 50px;
|
.sub-navbar {
|
||||||
line-height: 50px;
|
height: 50px;
|
||||||
position: relative;
|
line-height: 50px;
|
||||||
width: 100%;
|
position: relative;
|
||||||
text-align: right;
|
width: 100%;
|
||||||
padding-right: 20px;
|
text-align: right;
|
||||||
transition: 600ms ease position;
|
padding-right: 20px;
|
||||||
background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%);
|
transition: 600ms ease position;
|
||||||
|
background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%);
|
||||||
.subtitle {
|
|
||||||
font-size: 20px;
|
.subtitle {
|
||||||
color: #fff;
|
font-size: 20px;
|
||||||
}
|
color: #fff;
|
||||||
|
}
|
||||||
&.draft {
|
|
||||||
background: #d0d0d0;
|
&.draft {
|
||||||
}
|
background: #d0d0d0;
|
||||||
|
}
|
||||||
&.deleted {
|
|
||||||
background: #d0d0d0;
|
&.deleted {
|
||||||
}
|
background: #d0d0d0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
.link-type,
|
|
||||||
.link-type:focus {
|
.link-type,
|
||||||
color: #337ab7;
|
.link-type:focus {
|
||||||
cursor: pointer;
|
color: #337ab7;
|
||||||
|
cursor: pointer;
|
||||||
&:hover {
|
|
||||||
color: rgb(32, 160, 255);
|
&:hover {
|
||||||
}
|
color: rgb(32, 160, 255);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//refine vue-multiselect plugin
|
|
||||||
.multiselect {
|
//refine vue-multiselect plugin
|
||||||
line-height: 16px;
|
.multiselect {
|
||||||
}
|
line-height: 16px;
|
||||||
|
}
|
||||||
.multiselect--active {
|
|
||||||
z-index: 1000 !important;
|
.multiselect--active {
|
||||||
}
|
z-index: 1000 !important;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,66 +1,66 @@
|
|||||||
@mixin clearfix {
|
@mixin clearfix {
|
||||||
&:after {
|
&:after {
|
||||||
content: "";
|
content: "";
|
||||||
display: table;
|
display: table;
|
||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin scrollBar {
|
@mixin scrollBar {
|
||||||
&::-webkit-scrollbar-track-piece {
|
&::-webkit-scrollbar-track-piece {
|
||||||
background: #d3dce6;
|
background: #d3dce6;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::-webkit-scrollbar {
|
&::-webkit-scrollbar {
|
||||||
width: 6px;
|
width: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::-webkit-scrollbar-thumb {
|
&::-webkit-scrollbar-thumb {
|
||||||
background: #99a9bf;
|
background: #99a9bf;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin relative {
|
@mixin relative {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin pct($pct) {
|
@mixin pct($pct) {
|
||||||
width: #{$pct};
|
width: #{$pct};
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin triangle($width, $height, $color, $direction) {
|
@mixin triangle($width, $height, $color, $direction) {
|
||||||
$width: $width/2;
|
$width: $width/2;
|
||||||
$color-border-style: $height solid $color;
|
$color-border-style: $height solid $color;
|
||||||
$transparent-border-style: $width solid transparent;
|
$transparent-border-style: $width solid transparent;
|
||||||
height: 0;
|
height: 0;
|
||||||
width: 0;
|
width: 0;
|
||||||
|
|
||||||
@if $direction==up {
|
@if $direction==up {
|
||||||
border-bottom: $color-border-style;
|
border-bottom: $color-border-style;
|
||||||
border-left: $transparent-border-style;
|
border-left: $transparent-border-style;
|
||||||
border-right: $transparent-border-style;
|
border-right: $transparent-border-style;
|
||||||
}
|
}
|
||||||
|
|
||||||
@else if $direction==right {
|
@else if $direction==right {
|
||||||
border-left: $color-border-style;
|
border-left: $color-border-style;
|
||||||
border-top: $transparent-border-style;
|
border-top: $transparent-border-style;
|
||||||
border-bottom: $transparent-border-style;
|
border-bottom: $transparent-border-style;
|
||||||
}
|
}
|
||||||
|
|
||||||
@else if $direction==down {
|
@else if $direction==down {
|
||||||
border-top: $color-border-style;
|
border-top: $color-border-style;
|
||||||
border-left: $transparent-border-style;
|
border-left: $transparent-border-style;
|
||||||
border-right: $transparent-border-style;
|
border-right: $transparent-border-style;
|
||||||
}
|
}
|
||||||
|
|
||||||
@else if $direction==left {
|
@else if $direction==left {
|
||||||
border-right: $color-border-style;
|
border-right: $color-border-style;
|
||||||
border-top: $transparent-border-style;
|
border-top: $transparent-border-style;
|
||||||
border-bottom: $transparent-border-style;
|
border-bottom: $transparent-border-style;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,209 +1,209 @@
|
|||||||
#app {
|
#app {
|
||||||
|
|
||||||
.main-container {
|
.main-container {
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
transition: margin-left .28s;
|
transition: margin-left .28s;
|
||||||
margin-left: $sideBarWidth;
|
margin-left: $sideBarWidth;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-container {
|
.sidebar-container {
|
||||||
transition: width 0.28s;
|
transition: width 0.28s;
|
||||||
width: $sideBarWidth !important;
|
width: $sideBarWidth !important;
|
||||||
background-color: $menuBg;
|
background-color: $menuBg;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
z-index: 1001;
|
z-index: 1001;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
// reset element-ui css
|
// reset element-ui css
|
||||||
.horizontal-collapse-transition {
|
.horizontal-collapse-transition {
|
||||||
transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
|
transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scrollbar-wrapper {
|
.scrollbar-wrapper {
|
||||||
overflow-x: hidden !important;
|
overflow-x: hidden !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-scrollbar__bar.is-vertical {
|
.el-scrollbar__bar.is-vertical {
|
||||||
right: 0;
|
right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-scrollbar {
|
.el-scrollbar {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.has-logo {
|
&.has-logo {
|
||||||
.el-scrollbar {
|
.el-scrollbar {
|
||||||
height: calc(100% - 50px);
|
height: calc(100% - 50px);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.is-horizontal {
|
.is-horizontal {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.svg-icon {
|
.svg-icon {
|
||||||
margin-right: 16px;
|
margin-right: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-menu {
|
.el-menu {
|
||||||
border: none;
|
border: none;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
// menu hover
|
// menu hover
|
||||||
.submenu-title-noDropdown,
|
.submenu-title-noDropdown,
|
||||||
.el-submenu__title {
|
.el-submenu__title {
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: $menuHover !important;
|
background-color: $menuHover !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.is-active>.el-submenu__title {
|
.is-active>.el-submenu__title {
|
||||||
color: $subMenuActiveText !important;
|
color: $subMenuActiveText !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
& .nest-menu .el-submenu>.el-submenu__title,
|
& .nest-menu .el-submenu>.el-submenu__title,
|
||||||
& .el-submenu .el-menu-item {
|
& .el-submenu .el-menu-item {
|
||||||
min-width: $sideBarWidth !important;
|
min-width: $sideBarWidth !important;
|
||||||
background-color: $subMenuBg !important;
|
background-color: $subMenuBg !important;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: $subMenuHover !important;
|
background-color: $subMenuHover !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.hideSidebar {
|
.hideSidebar {
|
||||||
.sidebar-container {
|
.sidebar-container {
|
||||||
width: 54px !important;
|
width: 54px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-container {
|
.main-container {
|
||||||
margin-left: 54px;
|
margin-left: 54px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.submenu-title-noDropdown {
|
.submenu-title-noDropdown {
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.el-tooltip {
|
.el-tooltip {
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
|
|
||||||
.svg-icon {
|
.svg-icon {
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-submenu {
|
.el-submenu {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
&>.el-submenu__title {
|
&>.el-submenu__title {
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
|
|
||||||
.svg-icon {
|
.svg-icon {
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-submenu__icon-arrow {
|
.el-submenu__icon-arrow {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-menu--collapse {
|
.el-menu--collapse {
|
||||||
.el-submenu {
|
.el-submenu {
|
||||||
&>.el-submenu__title {
|
&>.el-submenu__title {
|
||||||
&>span {
|
&>span {
|
||||||
height: 0;
|
height: 0;
|
||||||
width: 0;
|
width: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-menu--collapse .el-menu .el-submenu {
|
.el-menu--collapse .el-menu .el-submenu {
|
||||||
min-width: $sideBarWidth !important;
|
min-width: $sideBarWidth !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
// mobile responsive
|
// mobile responsive
|
||||||
.mobile {
|
.mobile {
|
||||||
.main-container {
|
.main-container {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-container {
|
.sidebar-container {
|
||||||
transition: transform .28s;
|
transition: transform .28s;
|
||||||
width: $sideBarWidth !important;
|
width: $sideBarWidth !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.hideSidebar {
|
&.hideSidebar {
|
||||||
.sidebar-container {
|
.sidebar-container {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
transition-duration: 0.3s;
|
transition-duration: 0.3s;
|
||||||
transform: translate3d(-$sideBarWidth, 0, 0);
|
transform: translate3d(-$sideBarWidth, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.withoutAnimation {
|
.withoutAnimation {
|
||||||
|
|
||||||
.main-container,
|
.main-container,
|
||||||
.sidebar-container {
|
.sidebar-container {
|
||||||
transition: none;
|
transition: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// when menu collapsed
|
// when menu collapsed
|
||||||
.el-menu--vertical {
|
.el-menu--vertical {
|
||||||
&>.el-menu {
|
&>.el-menu {
|
||||||
.svg-icon {
|
.svg-icon {
|
||||||
margin-right: 16px;
|
margin-right: 16px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.nest-menu .el-submenu>.el-submenu__title,
|
.nest-menu .el-submenu>.el-submenu__title,
|
||||||
.el-menu-item {
|
.el-menu-item {
|
||||||
&:hover {
|
&:hover {
|
||||||
// you can use $subMenuHover
|
// you can use $subMenuHover
|
||||||
background-color: $menuHover !important;
|
background-color: $menuHover !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// the scroll bar appears when the subMenu is too long
|
// the scroll bar appears when the subMenu is too long
|
||||||
>.el-menu--popup {
|
>.el-menu--popup {
|
||||||
max-height: 100vh;
|
max-height: 100vh;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
||||||
&::-webkit-scrollbar-track-piece {
|
&::-webkit-scrollbar-track-piece {
|
||||||
background: #d3dce6;
|
background: #d3dce6;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::-webkit-scrollbar {
|
&::-webkit-scrollbar {
|
||||||
width: 6px;
|
width: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::-webkit-scrollbar-thumb {
|
&::-webkit-scrollbar-thumb {
|
||||||
background: #99a9bf;
|
background: #99a9bf;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,48 +1,48 @@
|
|||||||
// global transition css
|
// global transition css
|
||||||
|
|
||||||
/* fade */
|
/* fade */
|
||||||
.fade-enter-active,
|
.fade-enter-active,
|
||||||
.fade-leave-active {
|
.fade-leave-active {
|
||||||
transition: opacity 0.28s;
|
transition: opacity 0.28s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fade-enter,
|
.fade-enter,
|
||||||
.fade-leave-active {
|
.fade-leave-active {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* fade-transform */
|
/* fade-transform */
|
||||||
.fade-transform-leave-active,
|
.fade-transform-leave-active,
|
||||||
.fade-transform-enter-active {
|
.fade-transform-enter-active {
|
||||||
transition: all .5s;
|
transition: all .5s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fade-transform-enter {
|
.fade-transform-enter {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transform: translateX(-30px);
|
transform: translateX(-30px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.fade-transform-leave-to {
|
.fade-transform-leave-to {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transform: translateX(30px);
|
transform: translateX(30px);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* breadcrumb transition */
|
/* breadcrumb transition */
|
||||||
.breadcrumb-enter-active,
|
.breadcrumb-enter-active,
|
||||||
.breadcrumb-leave-active {
|
.breadcrumb-leave-active {
|
||||||
transition: all .5s;
|
transition: all .5s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.breadcrumb-enter,
|
.breadcrumb-enter,
|
||||||
.breadcrumb-leave-active {
|
.breadcrumb-leave-active {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transform: translateX(20px);
|
transform: translateX(20px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.breadcrumb-move {
|
.breadcrumb-move {
|
||||||
transition: all .5s;
|
transition: all .5s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.breadcrumb-leave-active {
|
.breadcrumb-leave-active {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,48 +1,48 @@
|
|||||||
// base color
|
// base color
|
||||||
$blue:#324157;
|
$blue:#324157;
|
||||||
$light-blue:#3A71A8;
|
$light-blue:#3A71A8;
|
||||||
$red:#C03639;
|
$red:#C03639;
|
||||||
$pink: #E65D6E;
|
$pink: #E65D6E;
|
||||||
$green: #30B08F;
|
$green: #30B08F;
|
||||||
$tiffany: #4AB7BD;
|
$tiffany: #4AB7BD;
|
||||||
$yellow:#FEC171;
|
$yellow:#FEC171;
|
||||||
$panGreen: #30B08F;
|
$panGreen: #30B08F;
|
||||||
|
|
||||||
$base-logo-title-color: #ffffff;
|
$base-logo-title-color: #ffffff;
|
||||||
$base-logo-light-title-color: #001529;
|
$base-logo-light-title-color: #001529;
|
||||||
$base-menu-light-background:#ffffff;
|
$base-menu-light-background:#ffffff;
|
||||||
|
|
||||||
// sidebar
|
// sidebar
|
||||||
$menuText:#bfcbd9;
|
$menuText: #ffffff;
|
||||||
$menuActiveText:#409EFF;
|
$menuActiveText:#409EFF;
|
||||||
$subMenuActiveText:#f4f4f5; // https://github.com/ElemeFE/element/issues/12951
|
$subMenuActiveText: #ffffff; // https://github.com/ElemeFE/element/issues/12951
|
||||||
|
|
||||||
$menuBg:#304156; //https://cloud.tencent.com/developer/article/1753773
|
$menuBg: #001529; //https://cloud.tencent.com/developer/article/1753773
|
||||||
$menuHover:#263445;
|
$menuHover:#4e5465;
|
||||||
|
|
||||||
$base-menu-light-color:rgba(0,0,0,.70);
|
$base-menu-light-color:rgba(0,0,0,.70);
|
||||||
|
|
||||||
$subMenuBg:#1f2d3d;
|
$subMenuBg:#000c17;
|
||||||
$subMenuHover:#001528;
|
$subMenuHover:#4e5465;
|
||||||
|
|
||||||
$sideBarWidth: 205px;
|
$sideBarWidth: 205px;
|
||||||
|
|
||||||
// the :export directive is the magic sauce for webpack
|
// the :export directive is the magic sauce for webpack
|
||||||
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
|
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
|
||||||
:export {
|
:export {
|
||||||
menuText: $menuText;
|
menuText: $menuText;
|
||||||
menuActiveText: $menuActiveText;
|
menuActiveText: $menuActiveText;
|
||||||
subMenuActiveText: $subMenuActiveText;
|
subMenuActiveText: $subMenuActiveText;
|
||||||
menuBg: $menuBg;
|
menuBg: $menuBg;
|
||||||
menuLightBackground: $base-menu-light-background;
|
menuLightBackground: $base-menu-light-background;
|
||||||
menuLightColor: $base-menu-light-color;
|
menuLightColor: $base-menu-light-color;
|
||||||
menuHover: $menuHover;
|
menuHover: $menuHover;
|
||||||
subMenuBg: $subMenuBg;
|
subMenuBg: $subMenuBg;
|
||||||
subMenuHover: $subMenuHover;
|
subMenuHover: $subMenuHover;
|
||||||
sideBarWidth: $sideBarWidth;
|
sideBarWidth: $sideBarWidth;
|
||||||
|
|
||||||
logoTitleColor: $base-logo-title-color;
|
logoTitleColor: $base-logo-title-color;
|
||||||
logoLightTitleColor: $base-logo-light-title-color
|
logoLightTitleColor: $base-logo-light-title-color
|
||||||
}
|
}
|
||||||
|
|
||||||
$base-sidebar-width: 200px;
|
$base-sidebar-width: 2010px;
|
||||||
|
|||||||
Reference in New Issue
Block a user