@titaui/pc 1.9.27 → 1.9.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/lib/components/common-share/index.css +2 -2
  2. package/lib/components/confidence/index.css +1 -2
  3. package/lib/components/confidence/index.js +3 -3
  4. package/lib/components/create-okr-modal/fields/index.css +1 -0
  5. package/lib/components/create-okr-modal/fields/input-with-err-popup.js +3 -1
  6. package/lib/components/dialog/index.css +21 -0
  7. package/lib/components/dialog/index.js +25 -5
  8. package/lib/components/dialog/loading.png +0 -0
  9. package/lib/components/dynamic/dynamic-item/dynamic-create-o/index.css +1 -0
  10. package/lib/components/dynamic/dynamic-item/dynamic-share-to-dynamic/index.js +3 -1
  11. package/lib/components/grid-layout/commen-components/scroll-tips.js +4 -4
  12. package/lib/components/grid-layout/near-visitors/visitor.js +2 -2
  13. package/lib/components/grid-layout/sub-employee-okr/person-okr.js +2 -2
  14. package/lib/components/grid-page/commen-components/scroll-tips.js +4 -4
  15. package/lib/components/grid-page/near-visitors/visitor.js +2 -2
  16. package/lib/components/help-card/image/liaojie.svg +9 -0
  17. package/lib/components/help-card/index.css +7 -6
  18. package/lib/components/help-card/index.js +1 -1
  19. package/lib/components/hr-header/arrow.png +0 -0
  20. package/lib/components/hr-header/index.css +92 -0
  21. package/lib/components/hr-header/index.js +156 -0
  22. package/lib/components/menus/components/flip-menu-card/index.css +1 -0
  23. package/lib/components/menus/components/flip-menu-card/index.js +8 -0
  24. package/lib/components/menus/export-modules/appraisal-menus/index.js +4 -4
  25. package/lib/components/menus/export-modules/okr-menus/depart-menus/index.js +2 -2
  26. package/lib/components/menus/export-modules/okr-menus/okr-front-menus.js +4 -4
  27. package/lib/components/menus/export-modules/okr-menus/subordinate-menus/index.js +4 -4
  28. package/lib/components/nav-top/components/user-message/components/reply/reply-item.js +1 -1
  29. package/lib/components/nav-top/components/user-own-menu/utils.js +2 -2
  30. package/lib/components/okr-detail/base-info/o-desc/index.js +3 -1
  31. package/lib/components/okr-detail/components/editable-input/index.js +4 -2
  32. package/lib/components/okr-detail/components/header/edit-name.js +3 -1
  33. package/lib/components/okr-detail/components/okr-tree/tree-node/kr-node/kr-score-editor/edit-pop.js +3 -1
  34. package/lib/components/okr-detail/components/okr-tree/tree-node/kr-node/kr-score-editor/kr-push-score.js +3 -1
  35. package/lib/components/okr-detail/okr-list/create-kr-item/heart.js +1 -1
  36. package/lib/components/okr-detail/okr-list/create-kr-item/index.js +1 -1
  37. package/lib/components/okr-detail/schedule/components/o-progress/index.js +3 -1
  38. package/lib/components/okr-progress/components/o-progress/index.js +3 -1
  39. package/lib/components/okr-progress-modal/index.js +3 -1
  40. package/lib/components/okr-share/index.css +2 -2
  41. package/lib/components/scrollbar/simplebar/simplebar.js +2 -2
  42. package/lib/components/search-dropdown/index.css +1 -0
  43. package/lib/components/user-selector/export-modules/duties-selector/index.js +5 -3
  44. package/lib/components/user-selector/select-tree/choose-tree/index.js +10 -2
  45. package/lib/components-v1/textarea/index.js +3 -1
  46. package/lib/pages/aha2021/index.css +13 -3
  47. package/lib/pages/aha2021/index.js +24 -20
  48. package/lib/pages/aha2021/kefu.svg +50 -0
  49. package/lib/pages/group-management/tree/group-form/index.js +4 -2
  50. package/lib/pages/home/components/data-list/index.css +26 -11
  51. package/lib/pages/home/components/data-list/index.js +2 -2
  52. package/lib/pages/home/components/data-list/nav-selector/index.js +23 -95
  53. package/lib/pages/home/components/data-list/table/columns/index.js +7 -7
  54. package/lib/pages/home/components/data-list/table/columns/updateTime.js +3 -1
  55. package/lib/pages/home/components/data-list/table/utils-function.js +44 -62
  56. package/lib/pages/home-page-data-list/index.js +2 -2
  57. package/lib/utils/bs-global.js +1 -1
  58. package/lib/utils/date-test-change.js +18 -55
  59. package/lib/utils/i18n-front-translate.js +12 -2
  60. package/package.json +1 -1
  61. package/src/components/common-share/index.scss +2 -2
  62. package/src/components/confidence/index.scss +1 -2
  63. package/src/components/confidence/index.tsx +3 -3
  64. package/src/components/create-okr-modal/fields/index.scss +1 -0
  65. package/src/components/create-okr-modal/fields/input-with-err-popup.tsx +2 -1
  66. package/src/components/dialog/index.js +19 -5
  67. package/src/components/dialog/index.scss +44 -2
  68. package/src/components/dialog/loading.png +0 -0
  69. package/src/components/dynamic/dynamic-item/dynamic-create-o/index.scss +1 -0
  70. package/src/components/dynamic/dynamic-item/dynamic-share-to-dynamic/index.tsx +2 -1
  71. package/src/components/grid-layout/commen-components/scroll-tips.tsx +5 -5
  72. package/src/components/grid-layout/near-visitors/visitor.tsx +3 -3
  73. package/src/components/grid-layout/sub-employee-okr/person-okr.tsx +3 -3
  74. package/src/components/grid-page/commen-components/scroll-tips.tsx +5 -5
  75. package/src/components/grid-page/near-visitors/visitor.tsx +3 -3
  76. package/src/components/help-card/image/liaojie.svg +9 -0
  77. package/src/components/help-card/index.scss +7 -6
  78. package/src/components/help-card/index.tsx +1 -1
  79. package/src/components/hr-header/arrow.png +0 -0
  80. package/src/components/hr-header/index.scss +82 -0
  81. package/src/components/hr-header/index.tsx +117 -0
  82. package/src/components/menus/components/flip-menu-card/index.scss +1 -0
  83. package/src/components/menus/components/flip-menu-card/index.tsx +7 -0
  84. package/src/components/menus/export-modules/appraisal-menus/index.tsx +4 -3
  85. package/src/components/menus/export-modules/okr-menus/depart-menus/index.tsx +2 -1
  86. package/src/components/menus/export-modules/okr-menus/okr-front-menus.tsx +4 -3
  87. package/src/components/menus/export-modules/okr-menus/subordinate-menus/index.tsx +4 -3
  88. package/src/components/nav-top/components/user-message/components/reply/reply-item.tsx +1 -1
  89. package/src/components/nav-top/components/user-own-menu/utils.ts +2 -2
  90. package/src/components/okr-detail/base-info/o-desc/index.tsx +2 -1
  91. package/src/components/okr-detail/components/editable-input/index.tsx +3 -2
  92. package/src/components/okr-detail/components/header/edit-name.tsx +2 -1
  93. package/src/components/okr-detail/components/okr-tree/tree-node/kr-node/kr-score-editor/edit-pop.tsx +2 -1
  94. package/src/components/okr-detail/components/okr-tree/tree-node/kr-node/kr-score-editor/kr-push-score.tsx +2 -1
  95. package/src/components/okr-detail/okr-list/create-kr-item/heart.js +1 -1
  96. package/src/components/okr-detail/okr-list/create-kr-item/index.tsx +1 -1
  97. package/src/components/okr-detail/schedule/components/o-progress/index.tsx +2 -1
  98. package/src/components/okr-progress/components/o-progress/index.tsx +2 -1
  99. package/src/components/okr-progress-modal/index.tsx +2 -1
  100. package/src/components/okr-share/index.scss +2 -2
  101. package/src/components/scrollbar/simplebar/simplebar.js +2 -1
  102. package/src/components/search-dropdown/index.scss +1 -0
  103. package/src/components/user-selector/export-modules/duties-selector/index.tsx +4 -2
  104. package/src/components/user-selector/select-tree/choose-tree/index.tsx +3 -1
  105. package/src/components-v1/textarea/index.tsx +2 -1
  106. package/src/pages/aha2021/index.scss +13 -3
  107. package/src/pages/aha2021/index.tsx +33 -13
  108. package/src/pages/aha2021/kefu.svg +50 -0
  109. package/src/pages/group-management/tree/group-form/index.js +3 -2
  110. package/src/pages/home/components/data-list/index.scss +22 -9
  111. package/src/pages/home/components/data-list/index.tsx +4 -4
  112. package/src/pages/home/components/data-list/nav-selector/index.tsx +81 -119
  113. package/src/pages/home/components/data-list/table/columns/index.tsx +7 -7
  114. package/src/pages/home/components/data-list/table/columns/updateTime.tsx +5 -4
  115. package/src/pages/home/components/data-list/table/utils-function.ts +113 -105
  116. package/src/pages/home-page-data-list/index.tsx +4 -4
  117. package/src/utils/bs-global.js +1 -1
  118. package/src/utils/date-test-change.ts +18 -57
  119. package/src/utils/i18n-front-translate.ts +8 -0
@@ -9,6 +9,7 @@ import { getFeedTypeAndTypeColor } from '../../util';
9
9
  import { highLightWord } from '../../../../utils/tools';
10
10
  import { getUserInfo } from '../../../../utils/bs-global';
11
11
  import Guanlian from './img/guanlian.png';
12
+ import { getLocale } from '../../../../utils/getLocale';
12
13
  import './index.scss';
13
14
 
14
15
  const prefix = 'titaui-dynamic-share-to-dynamic';
@@ -27,7 +28,7 @@ const DynamicShare: FC<IDynamicItemContentProps> = ({ data, hasDynamicOpereateAu
27
28
  const renderDesc = useMemo(() => {
28
29
  return (
29
30
  <Fragment>
30
- <span className={prefix + '__operate-desc'}>分享了一堂好课</span>
31
+ <span className={prefix + '__operate-desc'}>{getLocale('Feed_sharedexcelle')}</span>
31
32
  <span className={prefix + '-desc-operate-type'} style={{ background: feedTypeColor }} />
32
33
  </Fragment>
33
34
  );
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect, useState, Fragment } from 'react';
2
- import { testDayChange } from '../../../utils/date-test-change';
2
+ import { judgeTimeSpaceFromNow } from '../../../utils/date-test-change';
3
3
  import Avatar from '../../avatar';
4
4
  import { OpenUserName } from '../../../utils/open-data';
5
5
 
@@ -27,11 +27,11 @@ export default function ScrollTips(props: Props) {
27
27
  } = props;
28
28
 
29
29
  const [updateTime, setUpdateTime] = useState(
30
- message && testDayChange(message.date)
30
+ message && judgeTimeSpaceFromNow(message.date)
31
31
  );
32
32
 
33
33
  useEffect(() => {
34
- setUpdateTime(message && testDayChange(message.date));
34
+ setUpdateTime(message && judgeTimeSpaceFromNow(message.date));
35
35
  }, [message && message.date]);
36
36
 
37
37
  return (
@@ -50,11 +50,11 @@ export default function ScrollTips(props: Props) {
50
50
 
51
51
  export const AvatarTips = ({ message, content, styles = {} }: Props) => {
52
52
  const [updateTime, setUpdateTime] = useState(
53
- message && testDayChange(message.date)
53
+ message && judgeTimeSpaceFromNow(message.date)
54
54
  );
55
55
 
56
56
  useEffect(() => {
57
- setUpdateTime(message && testDayChange(message.date));
57
+ setUpdateTime(message && judgeTimeSpaceFromNow(message.date));
58
58
  }, [message && message.date]);
59
59
  console.log(updateTime);
60
60
 
@@ -1,7 +1,7 @@
1
1
  import React, { useEffect, useState, useRef } from 'react';
2
2
  import Tooltip from '../../tooltip';
3
3
  import Avatar from '../../avatar';
4
- import { testDayChange } from '../../../utils/date-test-change';
4
+ import { judgeTimeSpaceFromNow } from '../../../utils/date-test-change';
5
5
  import { OpenUserName } from '../../../utils/open-data';
6
6
 
7
7
  interface Props {
@@ -15,11 +15,11 @@ interface Props {
15
15
  export default function Visitor(props: Props) {
16
16
  const { iconSrc, name, dateTime, avatarColor, userId } = props;
17
17
 
18
- const [visitTime, setVisitTime] = useState(testDayChange(dateTime));
18
+ const [visitTime, setVisitTime] = useState(judgeTimeSpaceFromNow(dateTime));
19
19
  const toolTipRef = useRef<any>();
20
20
 
21
21
  useEffect(() => {
22
- setVisitTime(testDayChange(dateTime));
22
+ setVisitTime(judgeTimeSpaceFromNow(dateTime));
23
23
  }, [dateTime]);
24
24
 
25
25
  return (
@@ -2,7 +2,7 @@ import React, { useState, useEffect, useRef } from 'react';
2
2
  import Progress from '../../progress/index'
3
3
  import Tooltip from '../../tooltip'
4
4
  import Avatar from '../../avatar';
5
- import { testDayChange } from '../../../utils/date-test-change';
5
+ import { judgeTimeSpaceFromNow } from '../../../utils/date-test-change';
6
6
  import { OpenUserName } from '../../../utils/open-data';
7
7
 
8
8
  import './index.scss';
@@ -19,10 +19,10 @@ interface Props {
19
19
  export default function PersonalOkr(props: Props) {
20
20
  const { iconSrc, name, updateTime, num, avatarColor, userId } = props;
21
21
 
22
- const [subUpdateTime, setSubUpdateTime] = useState(testDayChange(updateTime));
22
+ const [subUpdateTime, setSubUpdateTime] = useState(judgeTimeSpaceFromNow(updateTime));
23
23
  const toolTipRef = useRef<any>();
24
24
  useEffect(() => {
25
- setSubUpdateTime(testDayChange(updateTime));
25
+ setSubUpdateTime(judgeTimeSpaceFromNow(updateTime));
26
26
  }, [updateTime]);
27
27
  return (
28
28
  <div className="subOKRComponents-PersonalOkr">
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect, useState, Fragment } from 'react';
2
- import { testDayChange } from '../../../utils/date-test-change';
2
+ import { judgeTimeSpaceFromNow } from '../../../utils/date-test-change';
3
3
  import Avatar from '../../avatar';
4
4
  import { OpenUserName } from '../../../utils/open-data';
5
5
 
@@ -27,11 +27,11 @@ export default function ScrollTips(props: Props) {
27
27
  } = props;
28
28
 
29
29
  const [updateTime, setUpdateTime] = useState(
30
- message && testDayChange(message.date)
30
+ message && judgeTimeSpaceFromNow(message.date)
31
31
  );
32
32
 
33
33
  useEffect(() => {
34
- setUpdateTime(message && testDayChange(message.date));
34
+ setUpdateTime(message && judgeTimeSpaceFromNow(message.date));
35
35
  }, [message && message.date]);
36
36
 
37
37
  return (
@@ -50,11 +50,11 @@ export default function ScrollTips(props: Props) {
50
50
 
51
51
  export const AvatarTips = ({ message, content, styles = {} }: Props) => {
52
52
  const [updateTime, setUpdateTime] = useState(
53
- message && testDayChange(message.date)
53
+ message && judgeTimeSpaceFromNow(message.date)
54
54
  );
55
55
 
56
56
  useEffect(() => {
57
- setUpdateTime(message && testDayChange(message.date));
57
+ setUpdateTime(message && judgeTimeSpaceFromNow(message.date));
58
58
  }, [message && message.date]);
59
59
  console.log(updateTime);
60
60
 
@@ -1,7 +1,7 @@
1
1
  import React, { useEffect, useState, useRef } from 'react';
2
2
  import Tooltip from '../../tooltip';
3
3
  import Avatar from '../../avatar';
4
- import { testDayChange } from '../../../utils/date-test-change';
4
+ import { judgeTimeSpaceFromNow } from '../../../utils/date-test-change';
5
5
  import { OpenUserName } from '../../../utils/open-data';
6
6
 
7
7
  interface Props {
@@ -15,11 +15,11 @@ interface Props {
15
15
  export default function Visitor(props: Props) {
16
16
  const { iconSrc, name, dateTime, avatarColor, userId } = props;
17
17
 
18
- const [visitTime, setVisitTime] = useState(testDayChange(dateTime));
18
+ const [visitTime, setVisitTime] = useState(judgeTimeSpaceFromNow(dateTime));
19
19
  const toolTipRef = useRef<any>();
20
20
 
21
21
  useEffect(() => {
22
- setVisitTime(testDayChange(dateTime));
22
+ setVisitTime(judgeTimeSpaceFromNow(dateTime));
23
23
  }, [dateTime]);
24
24
 
25
25
  return (
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="240px" height="240px" viewBox="0 0 240 240" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>liaojie</title>
4
+ <g id="liaojie" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
5
+ <path d="M120,20 C64.771525,20 20,64.771525 20,120 C20,175.228475 64.771525,220 120,220 C175.228475,220 220,175.228475 220,120 C220,64.771525 175.228475,20 120,20 Z M120,36 C166.391919,36 204,73.608081 204,120 C204,166.391919 166.391919,204 120,204 C73.608081,204 36,166.391919 36,120 C36,73.608081 73.608081,36 120,36 Z" id="椭圆形" fill="#141C28" fill-rule="nonzero"></path>
6
+ <path d="M120.008756,67 C111.978786,67 104.365434,69.5751522 98.5581514,74.2740154 C92.5462972,79.1476855 89.1380286,85.7464547 89.0041026,92.8525998 L89,93.4421688 C89,98.0147412 92.7048728,101.721543 97.275065,101.721543 C101.845257,101.721543 105.55013,98.0147412 105.55013,93.4421688 L105.55013,93.2882935 C105.55013,87.633082 111.918127,82.717229 120.008756,82.717229 C128.099386,82.717229 134.467382,87.633082 134.467382,93.2882935 C134.467382,97.3618411 131.236598,101.705432 126.529119,103.512236 L126.226653,103.624092 C121.998705,105.120732 118.37505,107.759616 115.76761,111.242806 C113.200769,114.69201 111.71593,119.721641 111.71593,124.292547 L111.71593,134.720625 C111.71593,139.293198 115.420803,143 119.990995,143 C124.561188,143 128.26606,139.293198 128.26606,134.720625 L128.26606,124.095087 C128.26606,121.733292 129.969128,119.083428 132.030331,118.350524 C143.332617,114.321686 151.000085,104.106804 151.000085,93.2882935 C151.0197,86.0248852 147.599248,79.251479 141.461239,74.2755365 C135.666971,69.5693086 128.057111,67 120.008756,67 Z" id="路径" fill="#2879FF" fill-rule="nonzero"></path>
7
+ <path d="M109,162 C109,168.075132 113.924868,173 120,173 C126.075132,173 131,168.075132 131,162 C131,155.924868 126.075132,151 120,151 C113.924868,151 109,155.924868 109,162 Z" id="路径" fill="#000000" fill-rule="nonzero"></path>
8
+ </g>
9
+ </svg>
@@ -14,7 +14,8 @@
14
14
  &-image {
15
15
  width: 24px;
16
16
  height: 24px;
17
- background: url("./image/kefu.svg") 50% 50% no-repeat;
17
+ background: url("./image/liaojie.svg") 50% 50% no-repeat;
18
+ background-size: 24px 24px;
18
19
  }
19
20
 
20
21
  &-canceled {
@@ -206,20 +207,20 @@
206
207
  }
207
208
 
208
209
  100% {
209
- transform: rotate(90deg);
210
+ transform: rotate(-90deg);
210
211
  }
211
212
  }
212
213
 
213
214
  @keyframes titaZoomInLB {
214
215
  0% {
215
216
  opacity: 0;
216
- transform-origin: 0 100%;
217
+ transform-origin: 100% 100%;
217
218
  transform: scale(0, 0);
218
219
  }
219
220
 
220
221
  100% {
221
222
  opacity: 1;
222
- transform-origin: 0 100%;
223
+ transform-origin: 100% 100%;
223
224
  transform: scale(1, 1);
224
225
  }
225
226
  }
@@ -227,13 +228,13 @@
227
228
  @keyframes titaZoomOutLB {
228
229
  0% {
229
230
  opacity: 1;
230
- transform-origin: 0 100%;
231
+ transform-origin: 100% 100%;
231
232
  transform: scale(1, 1);
232
233
  }
233
234
 
234
235
  100% {
235
236
  opacity: 0;
236
- transform-origin: 0 100%;
237
+ transform-origin: 100% 100%;
237
238
  transform: scale(0, 0);
238
239
  }
239
240
  }
@@ -209,7 +209,7 @@ const HelpCard: FC<HelpCardProps> = ({ ...restProps }) => {
209
209
  <div {...restProps}>
210
210
  <Popup
211
211
  popupTransitionName="tita-popup-zoom-left-bottom"
212
- placement="topRight"
212
+ placement="topLeft"
213
213
  popupAlign={{
214
214
  offset: [-32, -10],
215
215
  overflow: {
@@ -0,0 +1,82 @@
1
+ .tencent-hr-header {
2
+ width: 100%;
3
+ height: 60px;
4
+ display: flex;
5
+ align-items: center;
6
+ box-sizing: border-box;
7
+ padding: 0 30px;
8
+ flex-shrink: 0;
9
+ background-color: #3464E0;
10
+ &__title {
11
+ font-size: 14px;
12
+ font-weight: bold;
13
+ color: #FFFFFF;
14
+ margin-right: 98px;
15
+ }
16
+ &__menu-list{
17
+ display: flex;
18
+ align-items: stretch;
19
+ flex: 1;
20
+ }
21
+ &__item {
22
+ height: 100%;
23
+ width: 120px;
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: center;
27
+ margin: 0 5px;
28
+ & > a {
29
+ color: #FFF;
30
+ }
31
+ img {
32
+ width: 12px;
33
+ height: 12px;
34
+ margin-left: 4px;
35
+ transition: transform .2s ease;
36
+ }
37
+ }
38
+ &__user {
39
+ font-size: 14px;
40
+ color: #FFFFFF;
41
+ cursor: pointer;
42
+ & > img {
43
+ width: 10px;
44
+ height: 10px;
45
+ margin-left: 4px;
46
+ transition: transform .2s ease;
47
+ }
48
+ }
49
+ }
50
+ .tencent-hr-header-popup {
51
+ position: relative;
52
+ background-color: #fff;
53
+ box-shadow: 0px 4px 24px 0px rgba(127, 145, 180, 0.2);
54
+ border-radius: 12px;
55
+ min-width: 104px;
56
+ padding: 16px 0;
57
+ margin-top: 6px;
58
+ &__item {
59
+ display: flex;
60
+ height: 32px;
61
+ padding: 0 24px;
62
+ align-items: center;
63
+ justify-content: flex-start;
64
+ color: #666666;
65
+ &:hover{
66
+ background: #F5F7F9;
67
+ color: #3464E0;
68
+ }
69
+
70
+ }
71
+ &::before {
72
+ display: block;
73
+ content: '';
74
+ position: absolute;
75
+ top: -6px;
76
+ left: calc(50% - 6px);
77
+ border-top: none;
78
+ border-left: 6px solid transparent;
79
+ border-right: 6px solid transparent;
80
+ border-bottom: 6px solid #FFF;
81
+ }
82
+ }
@@ -0,0 +1,117 @@
1
+ import React, { ReactElement, useState } from 'react';
2
+ import { useEffect } from 'react';
3
+ import classNames from 'classnames';
4
+ import axios from 'axios';
5
+ import Popup from '../popup';
6
+ import { getLoginUserInfo } from '../../utils/helpers';
7
+ import './index.scss';
8
+
9
+ interface Props {}
10
+ const preCls = 'tencent-hr-header';
11
+ function HrHeader({}: Props): ReactElement {
12
+ const [menus, setMenus] = useState<any[]>([]);
13
+ const [isShowMore, setIsShowMore] = useState(false);
14
+ const [isShowUserMenu, setIsShowUserMenu] = useState(false);
15
+ useEffect(() => {
16
+ if (true) {
17
+ axios.get('/_caagw/getNavInfoByCorpKey').then((res) => {
18
+ const data = res.data.data;
19
+ setMenus(data.menus);
20
+ });
21
+ } else {
22
+ setMenus([
23
+ {
24
+ appKey: 'contacts',
25
+ appName: '人事通讯录',
26
+ appUrl: 'http://contacts-wxvendor.test-caagw.yunassess.com/',
27
+ },
28
+ {
29
+ appKey: 'regist',
30
+ appName: '入职管理',
31
+ appUrl: 'http://regist-wxvendor.test-caagw.yunassess.com/pc/',
32
+ },
33
+ {
34
+ appKey: 'jixiaobao',
35
+ appName: '绩效考核',
36
+ appUrl: 'http://contacts-wxvendor.test-caagw.yunassess.com/',
37
+ },
38
+ {
39
+ appKey: 'regist1',
40
+ appName: '入职管理1',
41
+ appUrl: 'http://regist-wxvendor.test-caagw.yunassess.com/pc/',
42
+ },
43
+ {
44
+ appKey: 'contacts2',
45
+ appName: '人事通讯录2',
46
+ appUrl: 'http://contacts-wxvendor.test-caagw.yunassess.com/',
47
+ },
48
+ {
49
+ appKey: 'regist2',
50
+ appName: '入职管理2',
51
+ appUrl: 'http://regist-wxvendor.test-caagw.yunassess.com/pc/',
52
+ },
53
+ {
54
+ appKey: 'regist3',
55
+ appName: '入职管理3',
56
+ appUrl: 'http://regist-wxvendor.test-caagw.yunassess.com/pc/',
57
+ },
58
+ ]);
59
+ }
60
+ }, []);
61
+ return (
62
+ <div className={preCls}>
63
+ <span className={preCls + '__title'}>腾讯HR助手</span>
64
+ <div className={preCls + '__menu-list'}>
65
+ {menus.slice(0, 5).map((menu) => (
66
+ <div
67
+ key={menu.appKey}
68
+ className={classNames(preCls + '__item', {
69
+ [preCls + '__item--active']: menu.appKey == 'jixiaobao',
70
+ })}
71
+ >
72
+ <a href={menu.appUrl}>{menu.appName}</a>
73
+ </div>
74
+ ))}
75
+ {menus.length > 5 && (
76
+ <Popup
77
+ popupVisible={isShowMore}
78
+ onPopupVisibleChange={setIsShowMore}
79
+ popupPlacement="bottom"
80
+ popup={
81
+ <div className='tencent-hr-header-popup'>
82
+ {menus.slice(6).map((menu) => (
83
+ <a className='tencent-hr-header-popup__item' href={menu.appUrl}>{menu.appName}</a>
84
+ ))}
85
+ </div>
86
+ }
87
+ >
88
+ <div key='more' className={classNames(preCls + '__item')}>
89
+ <a>更多</a>
90
+ <img
91
+ src={require('./arrow.png')}
92
+ style={{ transform: `rotate(${isShowMore ? 180 : 0}deg)` }}
93
+ />
94
+ </div>
95
+ </Popup>
96
+ )}
97
+ </div>
98
+ <Popup
99
+ popupVisible={isShowUserMenu}
100
+ onPopupVisibleChange={setIsShowUserMenu}
101
+ popupPlacement="bottom"
102
+ popup={
103
+ <div className='tencent-hr-header-popup'>
104
+ <a className='tencent-hr-header-popup__item' href={'/_logout?r='+(new Date().getTime())}>退出</a>
105
+ </div>
106
+ }
107
+ >
108
+ <span className={preCls + '__user'}>
109
+ {getLoginUserInfo().Name}
110
+ <img src={require('./arrow.png')} style={{ transform: `rotate(${isShowUserMenu ? 180 : 0}deg)` }}/>
111
+ </span>
112
+ </Popup>
113
+ </div>
114
+ );
115
+ }
116
+
117
+ export default HrHeader;
@@ -130,6 +130,7 @@
130
130
  background-repeat: no-repeat;
131
131
  background-position: 50% 4px;
132
132
  animation: hasMoreLight 0.5s 0.2s linear infinite;
133
+ cursor: pointer;
133
134
  }
134
135
  }
135
136
  @keyframes hasMoreLight {
@@ -159,6 +159,13 @@ export default forwardRef((props: Props, ref) => {
159
159
  } else {
160
160
  setShowMore(false);
161
161
  }
162
+ scrollArea.addEventListener('scroll', () => {
163
+ if(scrollArea.scrollHeight - scrollArea.offsetHeight == scrollArea.scrollTop) {
164
+ setShowMore(false)
165
+ } else {
166
+ setShowMore(true);
167
+ }
168
+ })
162
169
  };
163
170
  const observer = new MutationObserver(callback);
164
171
 
@@ -1,7 +1,8 @@
1
1
  import React, { useState, useRef, useEffect } from "react";
2
2
  import classNames from "classnames";
3
3
  import { withRouter } from "react-router";
4
- import { ResizeObserver } from '@juggle/resize-observer';
4
+ // import { ResizeObserver } from '@juggle/resize-observer';
5
+ import ResizeObserver from 'resize-observer-polyfill';
5
6
  import FlipCard, { flipRefIns } from "../../components/flip-menu-card";
6
7
  import MenuTree from "../../components/menu-tree";
7
8
  import Scrollbar from '../../../scrollbar';
@@ -22,7 +23,7 @@ const AppraisalMenus = (props: Props) => {
22
23
  const { onSelect = () => { }, history } = props;
23
24
 
24
25
  const [maxHeight, setMaxHeight] = useState<number>(() => {
25
- return document.body.offsetHeight - (220 + 28 * 2);
26
+ return document.body.offsetHeight - 170;
26
27
  });
27
28
  const [selectedMenuKeys, setSelectedMenuKeys] = useState<string[]>([]);
28
29
 
@@ -74,7 +75,7 @@ const AppraisalMenus = (props: Props) => {
74
75
  const obs = new ResizeObserver(entries => {
75
76
  for (let entry of entries) {
76
77
  const cr = entry.contentRect;
77
- setMaxHeight(cr.height - (220 + 28 * 2));
78
+ setMaxHeight(cr.height - 170);
78
79
  }
79
80
  })
80
81
  obs.observe(document.body);
@@ -1,7 +1,8 @@
1
1
  import React, { useState, useEffect, useRef } from "react";
2
2
  import classNames from 'classnames';
3
3
  import { locale } from '../../../i18n';
4
- import { ResizeObserver } from '@juggle/resize-observer';
4
+ // import { ResizeObserver } from '@juggle/resize-observer';
5
+ import ResizeObserver from 'resize-observer-polyfill';
5
6
  import MenuTree from "../../../components/menu-tree";
6
7
  import { getDepsAndUsers } from "../../../request-apis";
7
8
  import { DEPART_NODE, USER_NODE } from '../../../components/menu-tree/tree-node/index';
@@ -1,6 +1,7 @@
1
1
  import React, { useState, useRef, useEffect, forwardRef, useImperativeHandle } from "react";
2
2
  // import classNames from "classnames";
3
- import { ResizeObserver } from '@juggle/resize-observer';
3
+ // import { ResizeObserver } from '@juggle/resize-observer';
4
+ import ResizeObserver from 'resize-observer-polyfill';
4
5
  import { flipRefIns } from "../../components/flip-menu-card";
5
6
  import Scrollbar from '../../../scrollbar';
6
7
  import MenuTree from "../../components/menu-tree";
@@ -31,7 +32,7 @@ export default forwardRef((props: Props, ref) => {
31
32
  } = props;
32
33
 
33
34
  const [maxHeight, setMaxHeight] = useState<number>(() => {
34
- return document.body.offsetHeight - (220 + 28 * 2);
35
+ return document.body.offsetHeight - 210;
35
36
  });
36
37
  const [expandedKeys, setExpandedKeys] = useState(['myokr']);
37
38
  const [selectedMenuKeys, setSelectedMenuKeys] = useState<string[]>([]);
@@ -158,7 +159,7 @@ export default forwardRef((props: Props, ref) => {
158
159
  const obs = new ResizeObserver(entries => {
159
160
  for (let entry of entries) {
160
161
  const cr = entry.contentRect;
161
- setMaxHeight(cr.height - (220 + 28 * 2));
162
+ setMaxHeight(cr.height - 210);
162
163
  }
163
164
  })
164
165
  obs.observe(document.body);
@@ -1,6 +1,7 @@
1
1
  import React, { useState, useEffect, useRef } from "react";
2
2
  import classNames from 'classnames';
3
- import { ResizeObserver } from '@juggle/resize-observer';
3
+ // import { ResizeObserver } from '@juggle/resize-observer';
4
+ import ResizeObserver from 'resize-observer-polyfill';
4
5
  import MenuTree from "../../../components/menu-tree";
5
6
  import { getSubordinates } from "../../../request-apis";
6
7
  import { ITreeNode } from "../../../types";
@@ -24,7 +25,7 @@ export default (props) => {
24
25
  const [selectedMenuKeys, setSelectedMenuKeys] = useState<string[]>([]);
25
26
  const [loginUserId] = useState(window.BSGlobal && window.BSGlobal.loginUserInfo.Id || 0);
26
27
  const [maxHeight, setMaxHeight] = useState<number>(() => {
27
- return document.body.offsetHeight - (240);
28
+ return document.body.offsetHeight - 200;
28
29
  });
29
30
 
30
31
  useEffect(() => {
@@ -76,7 +77,7 @@ export default (props) => {
76
77
  const obs = new ResizeObserver(entries => {
77
78
  for (let entry of entries) {
78
79
  const cr = entry.contentRect;
79
- setMaxHeight(cr.height - (240));
80
+ setMaxHeight(cr.height - 200);
80
81
  }
81
82
  })
82
83
  obs.observe(document.body);
@@ -28,7 +28,7 @@ const Reply = (props) => {
28
28
 
29
29
  const feedText = () => {
30
30
  if (!item.content.trim()) {
31
- return '分享了附件';
31
+ return '分享了文件';
32
32
  } else {
33
33
  return deleteText(htmlToText(item.content));
34
34
  }
@@ -41,14 +41,14 @@ const getLimit = () => [
41
41
  id: "manage",
42
42
  icon: "tu-icon-myqyht",
43
43
  title: getLocale('Per_Menu_Admin'),
44
- objUrl: `${tm}`,
44
+ objUrl: `${apiServer}/${userId}/tmHome`,
45
45
  otherInfo: {}
46
46
  },
47
47
  {
48
48
  id: "open",
49
49
  icon: "tu-icon-my-gjgn",
50
50
  title: getLocale('Per_Menu_AdvancedFeatures'),
51
- objUrl: `${tm}${tm.indexOf(`${userId}/TmHome`) != -1 ?'':`/${userId}/TmHome`}#?iTalentFrameType=iframe&iTalentFrame=${tm.indexOf(`${userId}/TmHome`) != -1 ?`${tm.replace(`/TmHome`,'')}`:`${tm}/${userId}`}/indexV2#/advancedSettings`,
51
+ objUrl: `${apiServer}/${userId}/tmHome#?iTalentFrameType=iframe&iTalentFrame=${apiServer}/${userId}/indexV2#/advancedSettings`,
52
52
  otherInfo: {}
53
53
  },
54
54
  {
@@ -1,4 +1,5 @@
1
1
  import React, { FC, useState, useEffect, useRef, useCallback } from "react";
2
+ import { inputWordTrans } from "../../../../utils/i18n-front-translate";
2
3
  import { getLocale } from "../../../../utils/getLocale";
3
4
  import "./index.scss";
4
5
 
@@ -93,7 +94,7 @@ const ODesc: FC<IODescProps> = ({
93
94
  if (!hasError) return <span></span>;
94
95
  return (
95
96
  <span className="o-desc__errror-tips">
96
- 已输入{desc.trim().length}个字,最多可输入{maxLength}
97
+ {inputWordTrans(desc.trim().length, maxLength)}
97
98
  </span>
98
99
  );
99
100
  };
@@ -1,6 +1,7 @@
1
1
  import React, { useRef, useState, useEffect } from "react";
2
- import ErrorTip from "../../../tooltip/error-tip";
3
2
  import classNames from "classnames";
3
+ import ErrorTip from "../../../tooltip/error-tip";
4
+ import { inputWordTrans } from "../../../../utils/i18n-front-translate";
4
5
 
5
6
  import './index.scss';
6
7
 
@@ -45,7 +46,7 @@ export default (props: IProps) => {
45
46
  return setErrorTip(emptyMessage || '');
46
47
  }
47
48
  if (val.length > maxLength) {
48
- return setErrorTip(`已输入${val.length}字,最多可输入${maxLength}字`);
49
+ return setErrorTip(inputWordTrans(val.length, maxLength));
49
50
  }
50
51
  setText(val);
51
52
  setErrorTip('');
@@ -3,6 +3,7 @@ import classNames from "classnames";
3
3
  import Toast from "../../../toast";
4
4
  import { updateOkrName } from "../../request-apis";
5
5
  import { getLocale } from "../../../../utils/getLocale";
6
+ import { inputWordTrans } from "../../../../utils/i18n-front-translate";
6
7
 
7
8
  interface IEditNameProps {
8
9
  okrName: string;
@@ -27,7 +28,7 @@ const EditNameCmp = (props: IEditNameProps) => {
27
28
  return;
28
29
  }
29
30
  if (val.length > 500) {
30
- setErrorTip(`已输入${val.length}字,最多可输入500字`);
31
+ setErrorTip(inputWordTrans(val.length, 500));
31
32
  return;
32
33
  }
33
34
  setErrorTip("");
@@ -2,6 +2,7 @@ import React, { PureComponent } from 'react'
2
2
  import Popup from '../../../../../../popup';
3
3
  import styled from 'styled-components'
4
4
  import { getLocale, isEn } from "../../../../../../../utils/getLocale";
5
+ import { inputWordTrans } from '../../../../../../../utils/i18n-front-translate';
5
6
 
6
7
  const Wrapper = styled.div`
7
8
  min-width: 343px;
@@ -172,7 +173,7 @@ export default class EditPop extends PureComponent<Props> {
172
173
  this.setState({
173
174
  value: value,
174
175
  showError: maxLength && value.length > maxLength,
175
- errMsg: `已输入 ${value.length} 个字,最多可输入 ${maxLength} 个字`,
176
+ errMsg: inputWordTrans(value.length, maxLength),
176
177
  disable: maxLength && value.length > maxLength && disable ? true : false
177
178
  })
178
179