style.css 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811
  1. @font-face {
  2. font-family: 'o2Attendance';
  3. src:
  4. url('../x_component_attendancev2/$Main/default/fonts/o2Attendance.ttf?xgcf05') format('truetype'),
  5. url('../x_component_attendancev2/$Main/default/fonts/o2Attendance.woff?xgcf05') format('woff'),
  6. url('../x_component_attendancev2/$Main/default/fonts/o2Attendance.svg?xgcf05#o2Attendance') format('svg');
  7. font-weight: normal;
  8. font-style: normal;
  9. font-display: block;
  10. }
  11. [class^="o2icon-"], [class*=" o2icon-"] {
  12. /* use !important to prevent issues with browser extensions that change fonts */
  13. font-family: 'o2Attendance' !important;
  14. speak: never;
  15. font-style: normal;
  16. font-weight: normal;
  17. font-variant: normal;
  18. text-transform: none;
  19. line-height: 1;
  20. /* Better Font Rendering =========== */
  21. -webkit-font-smoothing: antialiased;
  22. -moz-osx-font-smoothing: grayscale;
  23. }
  24. .o2icon-icon_tongji:before {
  25. content: "\e900";
  26. }
  27. .o2icon-icon_dingwei:before {
  28. content: "\e901";
  29. }
  30. .o2icon-icon_tishi:before {
  31. content: "\e902";
  32. }
  33. .o2icon-icon_off:before {
  34. content: "\e903";
  35. }
  36. .o2icon-icon_zengjia_blue2_click:before {
  37. content: "\e904";
  38. }
  39. .o2icon-icon_shijian:before {
  40. content: "\e905";
  41. }
  42. .o2icon-icon_bianji:before {
  43. content: "\e906";
  44. }
  45. .o2icon-icon_off_round:before {
  46. content: "\e907";
  47. }
  48. .o2icon-icon__ok2_click_b:before {
  49. content: "\e908";
  50. }
  51. .o2icon-icon_delete_grey:before {
  52. content: "\e909";
  53. }
  54. .o2icon-icon_choose_people:before {
  55. content: "\e90a";
  56. }
  57. .o2icon-icon_rili:before {
  58. content: "\e90b";
  59. }
  60. .o2icon-icon_arrow_left:before {
  61. content: "\e90c";
  62. }
  63. .o2icon-icon_arrow_right:before {
  64. content: "\e90d";
  65. }
  66. .o2icon-icon_banciguanli:before {
  67. content: "\e90e";
  68. }
  69. .o2icon-icon_changsuo:before {
  70. content: "\e90f";
  71. }
  72. .o2icon-icon_huizong:before {
  73. content: "\e910";
  74. }
  75. .o2icon-icon_kaoiqinyichang:before {
  76. content: "\e911";
  77. }
  78. .o2icon-icon_kaoqinzu:before {
  79. content: "\e912";
  80. }
  81. .o2icon-icon_lock:before {
  82. content: "\e913";
  83. }
  84. .o2icon-icon_meirihuizong:before {
  85. content: "\e914";
  86. }
  87. .o2icon-icon_peizhi:before {
  88. content: "\e915";
  89. }
  90. .o2icon-icon_qingjia:before {
  91. content: "\e916";
  92. }
  93. .o2icon-icon_yuanshijilu:before {
  94. content: "\e917";
  95. }
  96. .o2icon-icon_quan:before {
  97. content: "\e918";
  98. }
  99. .o2icon-icon_xuanzhong:before {
  100. content: "\e919";
  101. }
  102. .o2icon-triangle_left:before {
  103. content: "\e91a";
  104. }
  105. .o2icon-triangle_right:before {
  106. content: "\e91b";
  107. }
  108. .o2icon-icon_arrow_down:before {
  109. content: "\e91c";
  110. }
  111. .o2icon-icon_arrow_up2:before {
  112. content: "\e91d";
  113. }
  114. .o2icon-icon_bumen3:before {
  115. content: "\e91e";
  116. }
  117. .o2icon-icon_close:before {
  118. content: "\e928";
  119. }
  120. .o2icon-piechart:before {
  121. content: "\e95f";
  122. }
  123. .o2icon-true:before {
  124. content: "\e96d";
  125. }
  126. .o2icon-accept:before {
  127. content: "\e975";
  128. }
  129. .o2icon-icon_sousuo:before {
  130. content: "\e999";
  131. }
  132. .o2icon-clock2:before {
  133. content: "\e9ab";
  134. }
  135. .o2icon-config:before {
  136. content: "\e9ba";
  137. }
  138. .o2icon-cancel-circle:before {
  139. content: "\ea0d";
  140. }
  141. .o2icon-checkbox-checked:before {
  142. content: "\ea52";
  143. }
  144. .o2icon-checkbox-unchecked:before {
  145. content: "\ea53";
  146. }
  147. .o2icon-radio-checked:before {
  148. content: "\ea54";
  149. }
  150. .o2icon-radio-unchecked:before {
  151. content: "\ea56";
  152. }
  153. .o2icon-enlarge:before {
  154. content: "\e989";
  155. }
  156. .o2icon-shrink:before {
  157. content: "\e98a";
  158. }
  159. /* 变量 */
  160. :root {
  161. /* 考勤颜色变量 */
  162. /* 正常 */
  163. --att-record-status-normal-color: #4a90e2;
  164. /* 早退 */
  165. --att-record-status-early-color: #8b572a;
  166. /* 迟到 */
  167. --att-record-status-late-color: #f5a623;
  168. /* 严重迟到 */
  169. --att-record-status-serilate-color: #ff8080;
  170. /* 未打卡 */
  171. --att-record-status-nosign-color: #fb4747;
  172. /* 外勤 */
  173. --att-record-status-fieldwork-color: #e233ff;
  174. /* 申诉 */
  175. --att-record-status-appeal-color: #4fb2e3;
  176. /* 外出请假 */
  177. --att-record-status-leave-color: #78c06e;
  178. /* 旷工 */
  179. --att-record-status-absenteeism-color: #ff8080;
  180. --att-color-bg: #f7f7f7;
  181. --att-color-divider: #e6e6e6;
  182. --att-default-radius: 2px;
  183. }
  184. .mainColor_bg {
  185. background-color: var(--oo-color-main) !important;
  186. }
  187. /* common */
  188. .margin-top {
  189. margin-top: 10px;
  190. }
  191. .margin-bottom {
  192. margin-bottom: 10px;
  193. }
  194. .margin-left-s {
  195. margin-left: 5px;
  196. }
  197. .margin-left {
  198. margin-left: 10px;
  199. }
  200. .margin-right {
  201. margin-right: 10px;
  202. }
  203. .padding-bottom {
  204. padding-bottom: 10px !important;
  205. }
  206. .flex {
  207. display: flex;
  208. align-items: center;
  209. }
  210. .color-666 {
  211. color: #666666;
  212. }
  213. .color-999 {
  214. color: #999999;
  215. }
  216. /* 外勤 */
  217. .color-fieldWork {
  218. color: var(--att-record-status-fieldwork-color);
  219. }
  220. /* 正常 */
  221. .color-normal {
  222. color: var(--att-record-status-normal-color);
  223. }
  224. /* 早退 */
  225. .color-early {
  226. color: var(--att-record-status-early-color);
  227. }
  228. /* 迟到 */
  229. .color-late {
  230. color: var(--att-record-status-late-color);
  231. }
  232. /* 严重迟到 */
  233. .color-serilate {
  234. color: var(--att-record-status-serilate-color);
  235. }
  236. /* 未打卡 */
  237. .color-nosign {
  238. color: var(--att-record-status-nosign-color);
  239. }
  240. /* 申诉 */
  241. .color-appeal {
  242. color: var(--att-record-status-appeal-color);
  243. }
  244. /* 节假日 */
  245. .color-holiday {
  246. color: var(--att-record-status-leave-color);
  247. }
  248. .o2-divider--horizontal {
  249. display: block;
  250. height: 1px;
  251. width: 100%;
  252. margin: 24px 0;
  253. border-top: 1px #dcdfe6 solid;
  254. }
  255. .o2-h2 {
  256. margin-top: 10px;
  257. margin-bottom: 10px;
  258. padding-bottom: 5px;
  259. font-size: 16px;
  260. }
  261. .light-border-button {
  262. border: 1px solid #DEDEDE !important;
  263. background-color: #ffffff !important;
  264. color: #666666;
  265. }
  266. .white-bg {
  267. background-color: white;
  268. }
  269. .att {
  270. background-color: var(--att-color-bg);
  271. height: 100%;
  272. }
  273. .att button {
  274. border-radius: var(--att-default-radius);
  275. border: 0;
  276. padding: 6px 20px;
  277. cursor: pointer;
  278. margin-left: 10px;
  279. }
  280. /* table */
  281. .att_table thead {
  282. width: 100%;
  283. height: 40px;
  284. background-color: var(--att-color-bg);
  285. color: rgb(102, 102, 102);
  286. font-weight: normal;
  287. line-height: 40px;
  288. font-size: 15px;
  289. }
  290. .att_table th {
  291. background-color: var(--att-color-bg);
  292. text-align: center;
  293. line-height: 24px;
  294. padding: 8px 0;
  295. font-weight: normal;
  296. /*border-top: 1px solid rgb(255, 255, 255);*/
  297. /*border-bottom: 1px solid var(--att-color-divider);*/
  298. }
  299. .att_table tr {
  300. overflow: hidden;
  301. background-color: rgb(255, 255, 255);
  302. min-height: 29px;
  303. color: rgb(102, 102, 102);
  304. font-family: "Microsoft YaHei";
  305. font-size: 14px;
  306. }
  307. .att_table .selector tr {
  308. cursor: pointer;
  309. }
  310. .att_table td {
  311. height: 39px;
  312. text-align: center;
  313. overflow: hidden;
  314. border-bottom: 1px solid var(--att-color-divider);
  315. }
  316. /* 滚动的 table */
  317. .scroll-table {
  318. margin: 0;
  319. border: none;
  320. border-spacing: 0;
  321. border-collapse:separate;
  322. table-layout: fixed;
  323. width: 100%;
  324. }
  325. .scroll-table td,
  326. .scroll-table th {
  327. padding: 0.5rem 1rem;
  328. }
  329. .scroll-table thead th {
  330. line-height: 24px;
  331. padding: 8px 0;
  332. font-weight: normal;
  333. /* position: sticky; */
  334. top: 0;
  335. z-index: 1;
  336. width: 120px;
  337. background-color: #f0f0f0;
  338. }
  339. .scroll-table td {
  340. background: #ffffff;
  341. padding: 4px 5px;
  342. text-align: center;
  343. width: 120px;
  344. }
  345. /* .scroll-table tbody th {
  346. font-weight: 100;
  347. font-style: italic;
  348. text-align: left;
  349. position: relative;
  350. } */
  351. .scroll-table thead th:first-child {
  352. /* position: sticky; */
  353. left: 0;
  354. z-index: 2;
  355. }
  356. .scroll-table tbody th {
  357. /* position: sticky; */
  358. left: 0;
  359. background: #ffffff;
  360. z-index: 1;
  361. }
  362. .att .primary_color {
  363. color: var(--oo-color-main) !important;
  364. }
  365. .att .operator_link_underline {
  366. color: #666666;
  367. margin-left: 10px;
  368. text-decoration: underline;
  369. cursor: pointer;
  370. }
  371. .att .operator_link {
  372. color: #666666;
  373. margin-left: 10px;
  374. cursor: pointer;
  375. }
  376. .att .link_btn {
  377. line-height: 32px;
  378. font-size: 18px;
  379. cursor: pointer;
  380. margin-left: 10px;
  381. }
  382. .att .text_hint_info {
  383. color: #999999;
  384. line-height: 24px;
  385. font-size: 14px;
  386. margin-left: 10px;
  387. }
  388. .att .flex_wrap {
  389. display: flex;
  390. flex-wrap: wrap;
  391. }
  392. /* index */
  393. .index_page_header_container {
  394. display: flex;
  395. margin: 20px 30px 0 30px;
  396. align-items: center;
  397. justify-content: space-between;
  398. }
  399. .index_page_header_title {
  400. font-size: 17px;
  401. line-height: 24px;
  402. color: #333;
  403. }
  404. .index_page_content_container {
  405. display: flex;
  406. height: 100%;
  407. gap: 0.71rem;
  408. padding-right: 0.71rem;
  409. }
  410. .index_page_nav_container {
  411. flex-shrink: 0;
  412. overflow: auto;
  413. width: 12rem;
  414. background-color: white;
  415. }
  416. .index_page_route_container {
  417. flex: 1;
  418. overflow: hidden;
  419. position: relative;
  420. background-color: white;
  421. margin: 0.71rem 0;
  422. }
  423. /* form 表单弹出窗口 */
  424. .index_page_form_container {
  425. width: 500px;
  426. background-color: white;
  427. margin: 0.71rem 0;
  428. }
  429. /* 主页顶层样式 */
  430. .manager-box {
  431. position: relative;
  432. overflow: auto;
  433. margin: 10px;
  434. height: calc(100% - 20px);
  435. display: flex;
  436. flex-direction: column;
  437. }
  438. .manager-box-content {
  439. padding: 20px;
  440. height: inherit;
  441. }
  442. /* mask */
  443. .cc-mask {
  444. z-index: 100;
  445. position: absolute;
  446. top: 0;
  447. bottom: 0;
  448. left: 0;
  449. right: 0;
  450. background-color: rgba(0, 0, 0, 0.5);
  451. }
  452. .cc-mask-show {
  453. opacity: 1;
  454. }
  455. .cc-mask-hide {
  456. display: none;
  457. opacity: 0;
  458. }
  459. .o2-mask-container {
  460. position: absolute;
  461. opacity: 0.8;
  462. width: 100%;
  463. height: 100%;
  464. top: 0px;
  465. border-radius: 5px;
  466. left: 0px;
  467. z-index: 1024;
  468. }
  469. .o2-mask-backgroundBar {
  470. position: absolute;
  471. opacity: 0.8;
  472. width: 100%;
  473. height: 100%;
  474. top: 0px;
  475. border-radius: 5px;
  476. background-color: #f1f1f1;
  477. left: 0px;
  478. z-index: 1025;
  479. }
  480. .o2-mask {
  481. position: absolute;
  482. opacity: 0.8;
  483. width: 100%;
  484. height: 100%;
  485. top: 0px;
  486. border: 0;
  487. left: 0px;
  488. z-index: 1024;
  489. }
  490. .o2-mask-loadingBar {
  491. width: 160px;
  492. height: 60px;
  493. position: absolute;
  494. text-align: center;
  495. opacity: 1;
  496. top: 0px;
  497. left: 0px;
  498. font-size: 12px;
  499. z-index: 1026;
  500. }
  501. .o2-form {
  502. position: relative;
  503. height: 100%;
  504. width: 100%;
  505. display: flex;
  506. flex-direction: column;
  507. }
  508. .o2-form-header {
  509. padding: 20px;
  510. padding-bottom: 10px;
  511. padding-right: 16px;
  512. text-align: left;
  513. border-bottom: 1px solid #eee;
  514. }
  515. .o2-form-footer {
  516. background-color: #ffffff;
  517. padding: 20px;
  518. padding-top: 10px;
  519. padding-right: 16px;
  520. text-align: right;
  521. border-top: 1px solid #eee;
  522. }
  523. .o2-form-header .title {
  524. line-height: 24px;
  525. font-size: 18px;
  526. color: #333333;
  527. }
  528. .o2-form-header .close {
  529. position: absolute;
  530. top: 6px;
  531. right: 0;
  532. padding: 0;
  533. width: 54px;
  534. height: 54px;
  535. background: transparent;
  536. border: none;
  537. outline: none;
  538. cursor: pointer;
  539. font-size: 16px;
  540. color: #999999;
  541. }
  542. .o2-form-content {
  543. padding: 20px;
  544. overflow: auto;
  545. flex: 1;
  546. }
  547. /* dialog */
  548. .s-dialog {
  549. position: relative;
  550. background: white;
  551. border-radius: 2px;
  552. box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, 0.04),
  553. 0px 8px 20px rgba(0, 0, 0, 0.08);
  554. box-sizing: border-box;
  555. height: 100%;
  556. min-width: 350px;
  557. max-width: 600px;
  558. margin-left: auto;
  559. display: flex;
  560. flex-direction: column;
  561. }
  562. .s-dialog-header {
  563. padding: 20px;
  564. padding-bottom: 10px;
  565. padding-right: 16px;
  566. text-align: left;
  567. border-bottom: 1px solid #eee;
  568. }
  569. .s-dialog-footer {
  570. padding: 20px;
  571. padding-top: 10px;
  572. padding-right: 16px;
  573. text-align: right;
  574. border-top: 1px solid #eee;
  575. }
  576. .s-dialog-header .title {
  577. line-height: 24px;
  578. font-size: 18px;
  579. color: #333333;
  580. }
  581. .s-dialog-header .close {
  582. position: absolute;
  583. top: 6px;
  584. right: 0;
  585. padding: 0;
  586. width: 54px;
  587. height: 54px;
  588. background: transparent;
  589. border: none;
  590. outline: none;
  591. cursor: pointer;
  592. font-size: 16px;
  593. color: #999999;
  594. }
  595. .s-dialog-content {
  596. padding: 20px;
  597. overflow: auto;
  598. flex: 1;
  599. }
  600. .sl-dialog {
  601. background-color: rgb(255, 255, 255);
  602. overflow: hidden;
  603. border: 1px solid rgb(102, 102, 102);
  604. border-radius: 10px;
  605. position: absolute;
  606. box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, 0.04),
  607. 0px 8px 20px rgba(0, 0, 0, 0.08);
  608. display: flex;
  609. flex-direction: column;
  610. }
  611. .sl-dialog-header {
  612. padding: 20px;
  613. padding-bottom: 10px;
  614. padding-right: 16px;
  615. text-align: left;
  616. border-bottom: 1px solid #eee;
  617. }
  618. .sl-dialog-header .title {
  619. line-height: 24px;
  620. font-size: 18px;
  621. color: #333333;
  622. }
  623. .sl-dialog-header .close {
  624. position: absolute;
  625. top: 6px;
  626. right: 0;
  627. padding: 0;
  628. width: 54px;
  629. height: 54px;
  630. background: transparent;
  631. border: none;
  632. outline: none;
  633. cursor: pointer;
  634. font-size: 16px;
  635. color: #999999;
  636. }
  637. .sl-dialog-footer {
  638. padding: 20px;
  639. padding-top: 10px;
  640. padding-right: 16px;
  641. text-align: right;
  642. border-top: 1px solid #eee;
  643. }
  644. .sl-dialog-content {
  645. padding: 20px;
  646. overflow: auto;
  647. flex: 1;
  648. position: relative;
  649. }
  650. /* form */
  651. .form-item-line {
  652. display: flex;
  653. flex-direction: row;
  654. }
  655. .form-item-line-label {
  656. /* height: 36px; */
  657. line-height: 36px;
  658. font-size: 15px;
  659. color: #333333;
  660. flex: 1;
  661. text-align: left;
  662. }
  663. .form-item-line-label .required {
  664. color: #ff5219;
  665. font-size: 12px;
  666. margin-right: 6px;
  667. }
  668. .form-item-line-content {
  669. width: 320px;
  670. height: 36px;
  671. line-height: 36px;
  672. color: #666666;
  673. }
  674. .form-item-label {
  675. /* height: 32px; */
  676. line-height: 32px;
  677. font-size: 16px;
  678. font-weight: bold;
  679. color: #333333;
  680. }
  681. .form-item-label .required {
  682. color: #ff5219;
  683. font-size: 12px;
  684. margin-right: 6px;
  685. }
  686. .form-item-content {
  687. font-size: 15px;
  688. color: #333333;
  689. }
  690. .form-item-content .required {
  691. color: #ff5219;
  692. font-size: 12px;
  693. margin-right: 6px;
  694. }
  695. .form-alert {
  696. color: #999999;
  697. font-size: 14px;
  698. }
  699. .tag-container {
  700. display: flex;
  701. flex-wrap: wrap;
  702. }
  703. .tag-item {
  704. display: flex;
  705. align-items: center;
  706. margin: 10px 0 10px 10px;
  707. font-size: 12px;
  708. cursor: pointer;
  709. background-color: rgba(255, 255, 255) !important;
  710. border-radius: 4px !important;
  711. padding: 5px;
  712. line-height: 24px;
  713. }
  714. /* 灰色背景的卡片 */
  715. .a-card {
  716. /*border: 1px solid #dedede;*/
  717. list-style: none;
  718. position: relative;
  719. background-color: var(--att-color-bg);
  720. border-radius: var(--att-default-radius);
  721. }
  722. .a-card-gray {
  723. background-color: rgba(23, 26, 29, 0.04);
  724. margin-bottom: 12px;
  725. }
  726. .a-card-head {
  727. min-height: 20px;
  728. margin: 12px 0;
  729. line-height: 20px;
  730. background: transparent;
  731. }
  732. .a-card-head-tile {
  733. border-radius: 0 16px 16px 0;
  734. background-color: var(--oo-color-main);
  735. color: #ffffff;
  736. font-size: 12px;
  737. display: inline-block;
  738. padding: 5px 10px;
  739. }
  740. .a-card-body {
  741. padding: 12px;
  742. color: #333333;
  743. font-size: 14px;
  744. }
  745. /* icon */
  746. .o2-icon-16 {
  747. width: 16px;
  748. height: 16px;
  749. display: inline-flex;
  750. color: #666666;
  751. cursor: pointer;
  752. }
  753. .o2-icon-14 {
  754. width: 14px;
  755. height: 14px;
  756. display: inline-flex;
  757. color: #999999;
  758. cursor: pointer;
  759. }
  760. /* selector */
  761. .o2-selctor {
  762. position: absolute;
  763. z-index: 1050;
  764. font-size: 14px;
  765. white-space: nowrap;
  766. background: #fff;
  767. border-radius: 6px;
  768. box-shadow: 0 3px 6px -4px rgb(0 0 0 / 12%), 0 6px 16px 0 rgb(0 0 0 / 8%),
  769. 0 9px 28px 8px rgb(0 0 0 / 5%);
  770. }
  771. .o2-selctor-ul {
  772. margin: 0;
  773. list-style: none;
  774. display: inline-block;
  775. min-width: 111px;
  776. padding: 4px 0;
  777. overflow: auto;
  778. vertical-align: top;
  779. border-right: 1px solid #f0f0f0;
  780. }
  781. .o2-selctor-li {
  782. padding: 5px 12px;
  783. overflow: hidden;
  784. line-height: 22px;
  785. white-space: nowrap;
  786. text-overflow: ellipsis;
  787. cursor: pointer;
  788. transition: all 0.3s;
  789. }