mirror of https://github.com/allinssl/allinssl
213 lines
3.4 KiB
CSS
213 lines
3.4 KiB
CSS
.title {
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
padding: 8px;
|
|
background-color: white;
|
|
border-radius: 4px;
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.node-toolbar {
|
|
display: flex;
|
|
gap: 8px;
|
|
background-color: white;
|
|
padding: 6px;
|
|
border-radius: 4px;
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.toolbar-btn {
|
|
cursor: pointer;
|
|
border: none;
|
|
padding: 4px 8px;
|
|
border-radius: 3px;
|
|
font-size: 12px;
|
|
color: white;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.delete-btn {
|
|
background-color: #f56c6c;
|
|
}
|
|
|
|
.delete-btn:hover {
|
|
background-color: #e64242;
|
|
}
|
|
|
|
.duplicate-btn {
|
|
background-color: #409eff;
|
|
}
|
|
|
|
.duplicate-btn:hover {
|
|
background-color: #2a8ce8;
|
|
}
|
|
|
|
/* Vue Flow 自定义样式 */
|
|
|
|
/* 自定义节点通用样式 */
|
|
.vue-flow__node {
|
|
border-radius: 5px;
|
|
font-size: 14px;
|
|
text-align: center;
|
|
border: 1px solid #ddd;
|
|
background-color: white;
|
|
width: 240px;
|
|
min-height: 120px;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
|
|
transition: all 0.3s ease;
|
|
z-index: -99 !important;
|
|
}
|
|
|
|
.vue-flow__node:hover {
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.vue-flow__node.selected {
|
|
box-shadow: 0 0 0 2px #18a0fb;
|
|
}
|
|
|
|
/* 开始节点样式 */
|
|
.vue-flow__node.start {
|
|
background-color: #e6f7ff;
|
|
border-color: #1890ff;
|
|
color: #1890ff;
|
|
font-weight: bold;
|
|
}
|
|
|
|
/* 结束节点样式 */
|
|
.vue-flow__node.end {
|
|
background-color: #f6ffed;
|
|
border-color: #52c41a;
|
|
color: #52c41a;
|
|
font-weight: bold;
|
|
}
|
|
|
|
/* 申请证书节点样式 */
|
|
.vue-flow__node.apply {
|
|
background-color: #fff7e6;
|
|
border-color: #fa8c16;
|
|
color: #fa8c16;
|
|
}
|
|
|
|
/* 部署证书节点样式 */
|
|
.vue-flow__node.deploy {
|
|
background-color: #f9f0ff;
|
|
border-color: #722ed1;
|
|
color: #722ed1;
|
|
}
|
|
|
|
/* 通知节点样式 */
|
|
.vue-flow__node.notify {
|
|
background-color: #fcf4f6;
|
|
border-color: #eb2f96;
|
|
color: #eb2f96;
|
|
}
|
|
|
|
/* 边的样式 */
|
|
.vue-flow__edge {
|
|
stroke: #b1b1b7;
|
|
stroke-width: 2;
|
|
z-index: -1;
|
|
}
|
|
|
|
.vue-flow__edge.selected {
|
|
stroke: #18a0fb;
|
|
stroke-width: 3;
|
|
}
|
|
|
|
.vue-flow__edge-path {
|
|
stroke: #b1b1b7;
|
|
stroke-width: 2;
|
|
z-index: -1;
|
|
}
|
|
|
|
.vue-flow__edge-path:hover {
|
|
stroke: #18a0fb;
|
|
}
|
|
|
|
.vue-flow__edge.selected .vue-flow__edge-path {
|
|
stroke: #18a0fb;
|
|
stroke-width: 3;
|
|
}
|
|
|
|
/* 连接点样式 */
|
|
.vue-flow__handle {
|
|
width: 8px;
|
|
height: 8px;
|
|
background-color: #1890ff;
|
|
border-color: white;
|
|
z-index: 0;
|
|
}
|
|
|
|
/* 工具栏样式 */
|
|
.node-toolbar {
|
|
display: flex;
|
|
gap: 5px;
|
|
padding: 3px;
|
|
background: white;
|
|
border-radius: 4px;
|
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
.toolbar-btn {
|
|
padding: 3px 8px;
|
|
border: none;
|
|
border-radius: 3px;
|
|
background: #f5f5f5;
|
|
color: #333;
|
|
cursor: pointer;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.toolbar-btn:hover {
|
|
background: #e8e8e8;
|
|
}
|
|
|
|
.delete-btn {
|
|
background: #fff1f0;
|
|
color: #f5222d;
|
|
}
|
|
|
|
.delete-btn:hover {
|
|
background: #ffa39e;
|
|
}
|
|
|
|
.duplicate-btn {
|
|
background: #e6f7ff;
|
|
color: #1890ff;
|
|
}
|
|
|
|
.duplicate-btn:hover {
|
|
background: #bae7ff;
|
|
}
|
|
|
|
/* 迷你地图样式 */
|
|
.vue-flow__minimap {
|
|
background-color: #f5f5f5;
|
|
border: 1px solid #eee;
|
|
}
|
|
|
|
/* 背景样式 */
|
|
.vue-flow__background {
|
|
background-color: #fafafa;
|
|
}
|
|
|
|
/* 控制面板样式 */
|
|
.vue-flow__controls {
|
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
.vue-flow__controls-button {
|
|
background: white;
|
|
border: 1px solid #eee;
|
|
color: #666;
|
|
}
|
|
|
|
.vue-flow__controls-button:hover {
|
|
background: #f5f5f5;
|
|
} |