style.less 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. // 复用 systemNavMana 的布局风格
  2. .SystemNavMana {
  3. display: flex;
  4. flex-direction: row;
  5. background: #F5F7FA;
  6. .leftTree {
  7. width: 220px;
  8. height: calc(100vh - 80px);
  9. background: #FFF;
  10. border-radius: 4px;
  11. overflow: hidden;
  12. margin-right: 16px;
  13. .search { padding: 16px; display:flex; align-items:center; gap:8px; }
  14. .search .add {
  15. cursor: pointer;
  16. display: flex;
  17. justify-content: center;
  18. align-items: center;
  19. width: 24px;
  20. height: 24px;
  21. background: #FAFCFF;
  22. border-radius: 4px;
  23. border: 1px solid #DAE2F2;
  24. flex: 0 0 24px;
  25. min-width: 24px;
  26. }
  27. .searchInput { border: 1px solid #CFD7E6; flex: 1; min-width: 0; }
  28. .add { cursor: pointer; display: flex; justify-content: center; align-items: center; width: 24px; height: 24px; background: #FAFCFF; border-radius: 4px;border: 1px solid #DAE2F2;}
  29. .treeeWrap { height: calc(100% - 50px); overflow-y: scroll; padding: 16px; padding-top: 0;padding-right: 8px; }
  30. // 选中与悬浮样式还原
  31. .kcmp-ant-tree.kcmp-ant-tree-directory .kcmp-ant-tree-treenode {
  32. margin-bottom: 2px !important;
  33. padding-bottom: 0;
  34. &:hover { border-radius: 4px !important; background: #F0F2F5; }
  35. &::before { bottom: 0 !important; }
  36. }
  37. // 悬浮到右侧新增图标时,不触发行背景高亮;但图标自身hover需要有背景
  38. .kcmp-ant-tree-node-content-wrapper:hover .node-title-area + span:not(:hover) { background: transparent !important; }
  39. .inline-add { cursor: pointer; width: 20px; height: 20px; border-radius: 4px; }
  40. .inline-add:hover { background: #DAE2F2; }
  41. .kcmp-ant-tree.kcmp-ant-tree-directory .kcmp-ant-tree-treenode-selected:hover::before,
  42. .kcmp-ant-tree.kcmp-ant-tree-directory .kcmp-ant-tree-treenode-selected::before { border-radius: 4px; background: #F0F2F5; }
  43. .kcmp-ant-tree.kcmp-ant-tree-directory .kcmp-ant-tree-treenode .kcmp-ant-tree-node-content-wrapper.kcmp-ant-tree-node-selected { font-weight: 500; color:#17181A; }
  44. // 缩进与展开图标位置
  45. .kcmp-ant-tree.kcmp-ant-tree-directory .kcmp-ant-tree-treenode .kcmp-ant-tree-indent .kcmp-ant-tree-indent-unit { width: 8px !important; }
  46. .kcmp-ant-tree.kcmp-ant-tree-directory .kcmp-ant-tree-treenode .kcmp-ant-tree-switcher > span { top: 7px !important; }
  47. }
  48. .rightContent {
  49. position: relative;
  50. border-radius: 4px;
  51. width: calc(100% - 220px);
  52. padding: 16px;
  53. background: #FFF;
  54. .tableToolbar {
  55. display: flex;
  56. flex-direction: row;
  57. justify-content: space-between;
  58. align-items: center;
  59. margin-bottom: 16px;
  60. gap: 16px;
  61. .filter {
  62. display: flex;
  63. flex-direction: row;
  64. align-items: center;
  65. flex: 1;
  66. min-width: 0;
  67. }
  68. .filter .filterItem {
  69. display: flex;
  70. flex-direction: row;
  71. align-items: center;
  72. }
  73. .btnGroup {
  74. display: flex;
  75. flex-direction: row;
  76. align-items: center;
  77. flex-shrink: 0;
  78. min-width: max-content;
  79. span {
  80. box-sizing: border-box;
  81. cursor: pointer;
  82. display: inline-flex;
  83. align-items: center;
  84. justify-content: center;
  85. font-size: 14px;
  86. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  87. font-weight: 400;
  88. color: #17181A;
  89. border: 1px solid #DAE2F2;
  90. height: 26px;
  91. min-height: 26px;
  92. padding: 0 14px;
  93. background: #FAFCFF;
  94. border-radius: 4px;
  95. white-space: nowrap;
  96. flex-shrink: 0;
  97. width: auto !important;
  98. max-width: none !important;
  99. }
  100. .collapse {
  101. margin-right: 8px;
  102. }
  103. .add {
  104. color: #FFFFFF;
  105. background: #3377FF;
  106. border: 1px solid #3377FF;
  107. }
  108. }
  109. }
  110. }
  111. }
  112. .KC-DirectoryTree .kcmp-ant-tree-list { height: 100%; }
  113. // 选项子表样式
  114. .SE-SubTitle { font-weight: 600; }
  115. .SE-OptionsWrap { padding: 12px 8px; background: #fafbfd; border: 1px solid #dae2f2; border-radius: 4px; }
  116. .SE-OptionsHeader { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
  117. .SE-OptionsTable { width: 100%; }
  118. .SE-OptionsRow { display: grid; grid-template-columns: 60px 140px 1fr 160px 100px; align-items: center; min-height: 40px; border-top: 1px solid #eff2f7; }
  119. .SE-OptionsHead { background: #f7f9fc; border-top: none; }
  120. .SE-OptionsRow .col { padding: 6px 8px; }
  121. .SE-Empty { padding: 8px; color: #a3adbf; }
  122. // 展开区内嵌表格容器,避免覆盖外层行
  123. .SE-ExpandWrap {
  124. padding: 8px 8px 8px 12px;
  125. margin-left: 48px; // 缩进,便于层次识别
  126. background: #FAFBFD;
  127. border-left: 1px solid #DAE2F2; // 仅保留左侧引导线
  128. border-top: 0;
  129. border-right: 0;
  130. border-bottom: 0;
  131. border-radius: 0;
  132. overflow: hidden; // 防止内表格边框/阴影越界覆盖外层
  133. user-select: none; // 避免拖拽时选中文本影响体验
  134. // 覆盖内嵌 KCTable 的外边框,避免双层边框
  135. .KCTable {
  136. border: 0 !important;
  137. }
  138. }
  139. // 添加服务 - Transfer 样式修正
  140. .ServiceTransfer {
  141. width: 100%;
  142. display: flex;
  143. .kcmp-ant-transfer-list {
  144. flex: 1;
  145. min-width: 0;
  146. }
  147. .kcmp-ant-transfer-operation {
  148. display: flex;
  149. align-items: center;
  150. margin: 0 12px;
  151. }
  152. }