style.less 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  1. // 查核项管理页面样式(参考checkGroupMana)
  2. .CheckItemMana {
  3. .check-item-container {
  4. display: flex;
  5. height: 100%;
  6. padding: 16px;
  7. }
  8. // 左侧查核项树样式
  9. .item-tree {
  10. display: flex;
  11. flex-direction: column;
  12. width: 220px;
  13. min-width: 220px;
  14. max-width: 220px;
  15. background: #fff;
  16. border-radius: 4px;
  17. height: calc(100vh - 80px);
  18. overflow: hidden;
  19. .search-wrapper {
  20. display: flex;
  21. align-items: center;
  22. padding: 12px;
  23. padding-bottom: 8px;
  24. flex-shrink: 0;
  25. .search-input {
  26. flex: 1;
  27. border-radius: 4px;
  28. border: 1px solid #d9d9d9;
  29. .ant-input {
  30. border: none;
  31. box-shadow: none;
  32. }
  33. &:hover,
  34. &:focus-within {
  35. border-color: #3377ff;
  36. }
  37. }
  38. .add-button {
  39. margin-left: 8px;
  40. width: 24px;
  41. height: 24px;
  42. background: #fafcff;
  43. border-radius: 4px;
  44. border: 1px solid #dae2f2;
  45. padding: 0;
  46. display: flex;
  47. align-items: center;
  48. justify-content: center;
  49. }
  50. }
  51. .item-list {
  52. flex: 1;
  53. overflow-y: auto;
  54. max-height: calc(100vh - 140px);
  55. .item-group {
  56. margin-bottom: 0;
  57. .item-leaf {
  58. display: flex;
  59. align-items: center;
  60. padding: 10px 8px;
  61. margin: 0 8px;
  62. cursor: pointer;
  63. height: auto;
  64. box-sizing: border-box;
  65. border-radius: 4px;
  66. position: relative;
  67. .item-icon {
  68. margin-right: 4px;
  69. flex-shrink: 0;
  70. display: flex;
  71. align-items: center;
  72. justify-content: center;
  73. & > img {
  74. width: 25px;
  75. height: 25px;
  76. }
  77. }
  78. .item-content {
  79. flex: 1;
  80. min-width: 0;
  81. display: flex;
  82. flex-direction: column;
  83. .item-title {
  84. font-size: 14px;
  85. height: 14px;
  86. line-height: 14px;
  87. color: #17181a;
  88. overflow: hidden;
  89. text-overflow: ellipsis;
  90. white-space: nowrap;
  91. margin-bottom: 4px;
  92. font-weight: 500;
  93. }
  94. .item-score {
  95. font-size: 12px;
  96. height: 12px;
  97. line-height: 12px;
  98. color: #7a8599;
  99. }
  100. }
  101. .more-button {
  102. position: absolute;
  103. top: 50%;
  104. right: 8px;
  105. transform: translateY(-50%);
  106. padding: 0;
  107. width: 16px;
  108. height: 16px;
  109. display: flex;
  110. align-items: center;
  111. justify-content: center;
  112. color: #999;
  113. border-radius: 4px;
  114. background: #fff;
  115. opacity: 0;
  116. transition: opacity 0.2s;
  117. .anticon {
  118. transform: rotate(90deg);
  119. }
  120. &:hover {
  121. background: #fff;
  122. }
  123. }
  124. &:hover {
  125. background-color: #f0f2f5;
  126. .more-button {
  127. opacity: 1;
  128. }
  129. }
  130. &.selected {
  131. background: #f0f2f5;
  132. border: none;
  133. .item-title {
  134. color: #17181a;
  135. font-weight: 500;
  136. }
  137. .more-button {
  138. opacity: 1;
  139. }
  140. }
  141. }
  142. }
  143. }
  144. }
  145. // 右侧内容区样式
  146. .main-content {
  147. flex: 1;
  148. margin-left: 16px;
  149. height: 100%;
  150. overflow: auto;
  151. background: #fff;
  152. border-radius: 4px;
  153. // 顶部标题和信息区域
  154. .content-header {
  155. padding: 16px;
  156. display: flex;
  157. justify-content: space-between;
  158. align-items: flex-start;
  159. .header-left {
  160. flex: 1;
  161. .title {
  162. font-size: 20px;
  163. height: auto;
  164. max-height: 40px;
  165. line-height: 20px;
  166. font-weight: 600;
  167. color: #111827;
  168. margin-bottom: 8px;
  169. overflow: hidden;
  170. text-overflow: ellipsis;
  171. display: -webkit-box;
  172. -webkit-line-clamp: 2;
  173. -webkit-box-orient: vertical;
  174. word-wrap: break-word;
  175. }
  176. .description {
  177. font-size: 12px;
  178. color: #7a8599;
  179. line-height: 16px;
  180. margin-bottom: 12px;
  181. padding-right: 32px;
  182. }
  183. .info-tags {
  184. display: flex;
  185. flex-wrap: wrap;
  186. gap: 12px;
  187. .info-tag {
  188. display: flex;
  189. align-items: center;
  190. padding: 8px;
  191. padding-right: 12px;
  192. background: #f5f7fa;
  193. border-radius: 4px;
  194. white-space: nowrap;
  195. .tag-icon {
  196. display: flex;
  197. align-items: center;
  198. justify-content: center;
  199. width: 16px;
  200. height: 16px;
  201. margin-right: 8px;
  202. img {
  203. width: 100%;
  204. height: 100%;
  205. object-fit: contain;
  206. }
  207. }
  208. .tag-content {
  209. display: flex;
  210. flex-direction: column;
  211. gap: 2px;
  212. .tag-label {
  213. font-size: 12px;
  214. color: #7a8599;
  215. line-height: 1;
  216. margin-bottom: 4px;
  217. }
  218. .tag-value {
  219. font-size: 16px;
  220. color: #17181a;
  221. font-weight: 500;
  222. line-height: 1;
  223. }
  224. }
  225. }
  226. }
  227. }
  228. .header-right {
  229. .image-gallery {
  230. display: flex;
  231. gap: 12px;
  232. .image-item {
  233. width: 140px;
  234. height: 100px;
  235. border-radius: 8px;
  236. overflow: hidden;
  237. img {
  238. width: 100%;
  239. height: 100%;
  240. object-fit: cover;
  241. }
  242. }
  243. }
  244. }
  245. }
  246. // 内容主体
  247. .content-body {
  248. .pfm-ant-card {
  249. box-shadow: none;
  250. border-radius: 4px;
  251. .pfm-ant-card-body {
  252. padding: 16px;
  253. padding-top: 0;
  254. }
  255. }
  256. .pfm-ant-tabs-nav {
  257. margin-bottom: 16px;
  258. }
  259. .tab-content {
  260. .toolbar {
  261. display: flex;
  262. justify-content: space-between;
  263. align-items: center;
  264. margin-bottom: 16px;
  265. }
  266. .add-btn {
  267. background-color: #3377ff;
  268. border-color: #3377ff;
  269. border-radius: 4px;
  270. height: 24px;
  271. box-shadow: none;
  272. font-weight: 400;
  273. font-size: 14px;
  274. color: #ffffff;
  275. width: 56px;
  276. padding: 0;
  277. line-height: 22px;
  278. &:hover {
  279. background-color: #5591ff;
  280. border-color: #5591ff;
  281. }
  282. &:active {
  283. background-color: #1b5ee6;
  284. border-color: #1b5ee6;
  285. }
  286. }
  287. }
  288. }
  289. }
  290. // 新增查核项弹窗样式
  291. .add-check-item-modal {
  292. .ant-modal-body {
  293. max-height: 60vh;
  294. overflow-y: auto;
  295. }
  296. }
  297. }
  298. // 全局弹窗滚动样式
  299. .add-check-item-modal {
  300. .ant-modal-body {
  301. max-height: 60vh !important;
  302. overflow-y: auto !important;
  303. }
  304. }
  305. // 查核项管理更多操作下拉菜单样式
  306. .check-item-dropdown {
  307. .pfm-ant-dropdown-menu,
  308. .ant-dropdown-menu {
  309. border-radius: 4px;
  310. overflow: hidden;
  311. padding: 4px;
  312. }
  313. .pfm-ant-dropdown-menu-item,
  314. .ant-dropdown-menu-item {
  315. &:hover,
  316. &.pfm-ant-dropdown-menu-item-selected,
  317. &.ant-dropdown-menu-item-selected {
  318. background: rgba(51, 119, 255, 0.08);
  319. color: #17181a;
  320. border-radius: 4px;
  321. }
  322. }
  323. }
  324. // 复制设置弹窗样式
  325. .copy-setting-modal {
  326. .pfm-ant-modal-header,
  327. .ant-modal-header {
  328. border-bottom: 1px solid #f0f0f0;
  329. padding: 12px 16px;
  330. .pfm-ant-modal-title,
  331. .ant-modal-title {
  332. font-size: 14px;
  333. font-weight: 500;
  334. color: #333;
  335. }
  336. }
  337. .pfm-ant-modal-close,
  338. .ant-modal-close {
  339. top: 12px;
  340. right: 16px;
  341. display: flex;
  342. align-items: center;
  343. justify-content: center;
  344. height: 22px;
  345. width: 22px;
  346. }
  347. .pfm-ant-modal-body,
  348. .ant-modal-body {
  349. padding: 16px;
  350. padding-bottom: 8px;
  351. }
  352. .pfm-ant-modal-footer,
  353. .ant-modal-footer {
  354. border-top: 1px solid #f0f0f0;
  355. padding: 12px 16px;
  356. }
  357. // 单选框样式调整
  358. .pfm-ant-radio-checked .pfm-ant-radio-inner,
  359. .ant-radio-checked .ant-radio-inner {
  360. background-color: #3377ff;
  361. border-color: #3377ff;
  362. }
  363. .pfm-ant-radio-wrapper:hover .pfm-ant-radio-inner,
  364. .pfm-ant-radio:hover .pfm-ant-radio-inner,
  365. .pfm-ant-radio-input:focus + .pfm-ant-radio-inner,
  366. .ant-radio-wrapper:hover .ant-radio-inner,
  367. .ant-radio:hover .ant-radio-inner,
  368. .ant-radio-input:focus + .ant-radio-inner {
  369. border-color: #3377ff;
  370. }
  371. // 按钮样式调整
  372. .pfm-ant-btn-primary,
  373. .ant-btn-primary {
  374. border-radius: 2px;
  375. &:hover,
  376. &:focus {
  377. background-color: #5591ff;
  378. border-color: #5591ff;
  379. }
  380. &:active {
  381. background-color: #1b5ee6;
  382. border-color: #1b5ee6;
  383. }
  384. }
  385. }