@titaui/pc 1.9.36 → 1.9.40

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 (66) hide show
  1. package/lib/components/change-okr-modal/Filter.js +2 -2
  2. package/lib/components/communication/ConvertUserName.js +10 -16
  3. package/lib/components/communication/index.css +11 -0
  4. package/lib/components/create-okr-modal/img/check-right.svg +1 -16
  5. package/lib/components/create-okr-modal/img/check-wrong.svg +1 -29
  6. package/lib/components/dialog/index.css +2 -2
  7. package/lib/components/dynamic/dynamic-item/components/header/index.js +2 -2
  8. package/lib/components/form/form-fields/duties/duties-input.js +9 -1
  9. package/lib/components/form/form-fields/duties/index.css +1 -0
  10. package/lib/components/keyword-search/index.js +7 -2
  11. package/lib/components/menus/components/flip-menu-card/index.js +2 -2
  12. package/lib/components/menus/export-modules/appraisal-menus/index.js +2 -2
  13. package/lib/components/menus/export-modules/okr-menus/depart-menus/index.js +2 -2
  14. package/lib/components/menus/export-modules/okr-menus/menu-highlight.js +2 -0
  15. package/lib/components/menus/export-modules/okr-menus/okr-front-menus.js +2 -2
  16. package/lib/components/nav-top/components/user-message/components/remind/index.css +1 -1
  17. package/lib/components/okr-detail/base-info/base-info.js +1 -1
  18. package/lib/components/okr-detail/base-info/other-infos/principal/index.js +1 -1
  19. package/lib/components/okr-detail/components/header/o-avatar.js +3 -1
  20. package/lib/components/okr-detail/components/header/o-score.js +5 -1
  21. package/lib/components/okr-detail/components/okr-tree/tree-node/o-child-node/edit-child-okr-weight.js +2 -2
  22. package/lib/components/okr-detail/detail-header/index.js +3 -3
  23. package/lib/components/toast/index.js +3 -2
  24. package/lib/components/user-selector/select-tree/tree-nodes/tree-duties-node/index.css +0 -1
  25. package/lib/components/user-selector/select-tree/tree-nodes/tree-duties-node/index.js +6 -1
  26. package/lib/pages/aha2021/{kefu.svg → img/kefu.svg} +0 -0
  27. package/lib/pages/aha2021/img/notice.png +0 -0
  28. package/lib/pages/aha2021/index.css +23 -2
  29. package/lib/pages/aha2021/index.js +15 -4
  30. package/lib/pages/group-management/tree/delete-group-dialog/index.js +2 -2
  31. package/lib/pages/like-ranking/index.js +4 -3
  32. package/lib/pages/okr-map/share-dialog/index.js +1 -1
  33. package/package.json +1 -1
  34. package/src/components/change-okr-modal/Filter.tsx +2 -2
  35. package/src/components/communication/ConvertUserName.tsx +23 -26
  36. package/src/components/communication/index.scss +10 -0
  37. package/src/components/create-okr-modal/img/check-right.svg +1 -16
  38. package/src/components/create-okr-modal/img/check-wrong.svg +1 -29
  39. package/src/components/dialog/index.scss +2 -2
  40. package/src/components/dynamic/dynamic-item/components/header/index.tsx +2 -3
  41. package/src/components/form/form-fields/duties/duties-input.tsx +4 -1
  42. package/src/components/form/form-fields/duties/index.scss +1 -0
  43. package/src/components/keyword-search/index.tsx +4 -3
  44. package/src/components/menus/components/flip-menu-card/index.tsx +3 -3
  45. package/src/components/menus/export-modules/appraisal-menus/index.tsx +2 -2
  46. package/src/components/menus/export-modules/okr-menus/depart-menus/index.tsx +2 -2
  47. package/src/components/menus/export-modules/okr-menus/index.tsx +1 -1
  48. package/src/components/menus/export-modules/okr-menus/menu-highlight.ts +2 -0
  49. package/src/components/menus/export-modules/okr-menus/okr-front-menus.tsx +2 -2
  50. package/src/components/nav-top/components/user-message/components/remind/index.scss +1 -1
  51. package/src/components/okr-detail/base-info/base-info.tsx +4 -2
  52. package/src/components/okr-detail/base-info/other-infos/principal/index.tsx +1 -1
  53. package/src/components/okr-detail/components/header/o-avatar.tsx +2 -1
  54. package/src/components/okr-detail/components/header/o-score.tsx +2 -0
  55. package/src/components/okr-detail/components/okr-tree/tree-node/o-child-node/edit-child-okr-weight.tsx +2 -2
  56. package/src/components/okr-detail/detail-header/index.tsx +6 -6
  57. package/src/components/toast/index.tsx +1 -0
  58. package/src/components/user-selector/select-tree/tree-nodes/tree-duties-node/index.js +4 -1
  59. package/src/components/user-selector/select-tree/tree-nodes/tree-duties-node/index.scss +0 -1
  60. package/src/pages/aha2021/{kefu.svg → img/kefu.svg} +0 -0
  61. package/src/pages/aha2021/img/notice.png +0 -0
  62. package/src/pages/aha2021/index.scss +21 -3
  63. package/src/pages/aha2021/index.tsx +18 -4
  64. package/src/pages/group-management/tree/delete-group-dialog/index.js +2 -2
  65. package/src/pages/like-ranking/index.tsx +4 -4
  66. package/src/pages/okr-map/share-dialog/index.js +1 -1
@@ -282,8 +282,8 @@ export default class FilterComp extends PureComponent<Props, State> {
282
282
  </ToolTip>
283
283
  </a>
284
284
  ) : (
285
- <ConfirmPop align='bottom left' confirmTipText='确定取消吗?取消后将不再记住以上条件' onSubmit={() => this.handlerFilterOptions(2)}>
286
- <ToolTip title='不再显示以上条件' overlayStyle={{ zIndex: 999999 }}>
285
+ <ConfirmPop align='bottom left' confirmTipText={getLocale('OKR_MyO_Err_Bemembere')} onSubmit={() => this.handlerFilterOptions(2)}>
286
+ <ToolTip title={getLocale('OKR_MyO_Err_Showabove')} overlayStyle={{ zIndex: 999999 }}>
287
287
  <a>{getLocale('OKR_MyO_Pop_Cancelremember')}</a>
288
288
  </ToolTip>
289
289
  </ConfirmPop>
@@ -1,36 +1,33 @@
1
- import React, { PureComponent } from 'react'
2
- import { getBSGlobal, getUserInfo } from '../../utils/bs-global'
3
- import { OpenUserName } from '../../utils/open-data'
4
- import styled from 'styled-components'
5
-
1
+ import classNames from "classnames";
2
+ import React, { PureComponent } from "react";
3
+ import { OpenUserName } from "../../utils/open-data";
4
+ import "./index.scss";
6
5
  interface Props {
7
- className?: string
8
- userName: string
9
- userId?: number
6
+ className?: string;
7
+ userName: string;
8
+ userId?: number;
10
9
  }
11
10
 
12
- const UserLink = styled.a`
13
- font-size: 14px;
14
- font-weight: 600;
15
- color: #3F4755;
16
- line-height: 22px;
17
-
18
- &:hover {
19
- color: #2879ff;
20
- }
21
- `
22
-
23
11
  export default class ConvertUserName extends PureComponent<Props> {
24
12
  render() {
25
- const { userName, userId, className } = this.props
13
+ const { userName, userId, className } = this.props;
26
14
  if (userId) {
27
- const iframeBoxUrl = `${getBSGlobal('apiPath')}/u/${getUserInfo().Id}/Home#`;
15
+ // const iframeBoxUrl = `${getBSGlobal('apiPath')}/u/${getUserInfo().Id}/Home#`;
28
16
  return (
29
- <UserLink className={className} target="_blank" href={`${iframeBoxUrl}${encodeURIComponent("widget/italent?iTalentFrameType=iframe&iTalentFrame=&iTalentFrame=" + encodeURIComponent(getBSGlobal('titaHost') + "/" + getUserInfo().Id + "/PageBuilderForEdit#/view?to_user_id=" + userId))}`}>
30
- <span><OpenUserName name={userName} id={userId} /></span>
31
- </UserLink>
32
- )
17
+ <a
18
+ className={classNames(
19
+ className,
20
+ "titaui-communication__communication-content__user-link"
21
+ )}
22
+ target="_blank"
23
+ // href={`${iframeBoxUrl}${encodeURIComponent("widget/italent?iTalentFrameType=iframe&iTalentFrame=&iTalentFrame=" + encodeURIComponent(getBSGlobal('titaHost') + "/" + getUserInfo().Id + "/PageBuilderForEdit#/view?to_user_id=" + userId))}`}
24
+ >
25
+ <span>
26
+ <OpenUserName name={userName} id={userId} />
27
+ </span>
28
+ </a>
29
+ );
33
30
  }
34
- return <span className={className}>{userName}</span>
31
+ return <span className={className}>{userName}</span>;
35
32
  }
36
33
  }
@@ -22,6 +22,16 @@
22
22
  img {
23
23
  vertical-align: text-bottom;
24
24
  }
25
+ &__user-link {
26
+ font-size: 14px;
27
+ font-weight: 600;
28
+ color: #3F4755;
29
+ line-height: 22px;
30
+
31
+ &:hover {
32
+ color: #2879ff;
33
+ }
34
+ }
25
35
  a {
26
36
  color: #2879ff;
27
37
  &:hover {
@@ -1,16 +1 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <svg width="10px" height="10px" viewBox="0 0 10 10" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
- <title>对号</title>
4
- <g id="创建OKR" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
5
- <g id="目标实时校验" transform="translate(-1015.000000, -384.000000)" fill-rule="nonzero">
6
- <g id="单行" transform="translate(976.000000, 129.000000)">
7
- <g id="编组-12" transform="translate(23.000000, 225.000000)">
8
- <g id="对号" transform="translate(16.000000, 30.000000)">
9
- <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="10" height="10"></rect>
10
- <path d="M0.633865976,4.59654663 L3.04772746,6.45071008 C3.04772746,6.45071008 3.18087497,6.51691307 3.34730936,6.45071008 L9.29070556,1.51474948 C9.29070556,1.51474948 10.1376717,1.33516988 9.98056404,2.22923006 C9.40729003,2.80858618 3.56375447,8.40433792 3.56375447,8.40433792 C3.56375447,8.40433792 3.18087497,8.6195776 2.8145585,8.40433792 C2.44856365,8.04006157 0.00173690497,5.37467163 0.00173690497,5.37467163 C0.00173690497,5.37467163 -0.0653192697,4.72911252 0.633865976,4.59654663 Z" id="路径" fill="#5AD8A6"></path>
11
- </g>
12
- </g>
13
- </g>
14
- </g>
15
- </g>
16
- </svg>
1
+ <svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M4.634 8.597l2.414 1.854s.133.066.3 0l5.943-4.936s.847-.18.69.714c-.574.58-6.417 6.175-6.417 6.175s-.383.216-.75 0c-.365-.364-2.812-3.03-2.812-3.03s-.067-.645.632-.777z" fill="#5AD8A6" fill-rule="nonzero"/></svg>
@@ -1,29 +1 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
- <title>不建议</title>
4
- <defs>
5
- <circle id="path-1" cx="8" cy="8" r="4"></circle>
6
- <filter x="-78.1%" y="-78.1%" width="256.2%" height="256.2%" filterUnits="objectBoundingBox" id="filter-2">
7
- <feMorphology radius="0.25" operator="dilate" in="SourceAlpha" result="shadowSpreadOuter1"></feMorphology>
8
- <feOffset dx="0" dy="0" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset>
9
- <feGaussianBlur stdDeviation="2" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
10
- <feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
11
- <feColorMatrix values="0 0 0 0 0.964705882 0 0 0 0 0.741176471 0 0 0 0 0.0862745098 0 0 0 1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
12
- </filter>
13
- </defs>
14
- <g id="创建OKR" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
15
- <g id="激活-关键成果" transform="translate(-1011.000000, -466.000000)">
16
- <g id="单行" transform="translate(976.000000, 129.000000)">
17
- <g id="编组-12" transform="translate(23.000000, 267.000000)">
18
- <g id="不建议" transform="translate(13.000000, 71.000000)">
19
- <circle id="椭圆形" fill="#F6BD16" opacity="0.08" cx="8" cy="8" r="8"></circle>
20
- <g id="椭圆形">
21
- <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
22
- <use stroke="#FFFFFF" stroke-width="0.5" fill="#F6BD16" fill-rule="evenodd" xlink:href="#path-1"></use>
23
- </g>
24
- </g>
25
- </g>
26
- </g>
27
- </g>
28
- </g>
29
- </svg>
1
+ <svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M9 8.317l3.246-3.246a.242.242 0 0 1 .342 0l.341.341a.242.242 0 0 1 0 .342L9.683 9l3.246 3.246a.242.242 0 0 1 0 .342l-.341.341a.242.242 0 0 1-.342 0L9 9.683 5.754 12.93a.242.242 0 0 1-.342 0l-.341-.341a.242.242 0 0 1 0-.342L8.317 9 5.07 5.754a.242.242 0 0 1 0-.342l.341-.341a.242.242 0 0 1 .342 0L9 8.317z" fill="#F05E5E" fill-rule="nonzero"/></svg>
@@ -15,11 +15,11 @@ Microsoft YaHei;
15
15
  display: flex;
16
16
  justify-content: center;
17
17
  align-items: center;
18
- z-index: 1299 !important;
18
+ z-index: 1299;
19
19
  }
20
20
 
21
21
  .rc-dialog-mask {
22
- z-index: 1299 !important;
22
+ z-index: 1299;
23
23
  background: rgba(20, 28, 40, 0.7) !important;
24
24
  }
25
25
 
@@ -137,12 +137,11 @@ const DynamicItemHeader: FC<IDynamicItemHeaderProps> = ({
137
137
  <DialogConfirm visible={showDialogConfirm} type="warning">
138
138
  {/* @ts-ignore */}
139
139
  <span type="title">
140
- 确定删除该{feedType === EFeedType.Share ? getLocale('OKR_MyO_Share') : '公告'}吗?
140
+ {feedType === EFeedType.Share ? getLocale('OKR_MyO_Err_Delesh') : getLocale('OKR_MyO_Err_Delepost')}
141
141
  </span>
142
142
  {/* @ts-ignore */}
143
143
  <span type="content">
144
- {feedType === EFeedType.Share ? getLocale('OKR_MyO_Share') : '公告'}
145
- 将被删除不可恢复,请谨慎操作!
144
+ {feedType === EFeedType.Share ? getLocale('OKR_MyO_Err_Deleshre') : getLocale('OKR_MyO_Err_Delepostsu')}
146
145
  </span>
147
146
  <CancelButton type="button" onClick={cancelDeleteDynamic}>
148
147
  {getLocale('Mod_Cancel')}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import { getLocale } from '../../../../utils/getLocale';
4
+ import Tooltip from '../../../tooltip';
4
5
  import './index.scss';
5
6
 
6
7
  interface Props {
@@ -28,7 +29,9 @@ export default (props: Props) => {
28
29
  return <div className={classNames(`${preCls}__input`)} onClick={onClick}>
29
30
  {!duties ?
30
31
  <span className={classNames(`${preCls}__input--placeholder`)}>{placeholder}</span> :
31
- duties.name
32
+ // @ts-ignore
33
+ <Tooltip.Text text={ duties.name } isPercent />
34
+
32
35
  }
33
36
  {duties && <span className={classNames(`tu-icon-cross ${preCls}__input--clear`)} onClick={onHandleClear}></span>}
34
37
  <span className={classNames(`${preCls}__input--down tu-icon-sort-down`)}></span>
@@ -22,6 +22,7 @@
22
22
  transition: all 0.2s;
23
23
  border: 1px solid #e9ecf0;
24
24
  box-sizing: border-box;
25
+ overflow: hidden;
25
26
  }
26
27
  &__border--error {
27
28
  box-shadow: inset 0px 0px 4px 0px rgba(240, 94, 94, 0.3);
@@ -12,13 +12,12 @@ interface IProps {
12
12
 
13
13
  const KeywordSearch = (props: IProps) => {;
14
14
  const { onSearch } = props;
15
- const inputRef = useRef();
15
+ const inputRef = useRef<any>();
16
16
  const [active, setActive] = useState(false);
17
17
  const [keyword, setKeyword] = useState('');
18
18
  const handleSearchClick = () => {
19
19
  if(!active) {
20
20
  setActive(true);
21
- //@ts-ignore
22
21
  inputRef?.current?.focus();
23
22
  } else {
24
23
  handleSearch()
@@ -40,7 +39,9 @@ const KeywordSearch = (props: IProps) => {;
40
39
  }
41
40
  }
42
41
  const clearKeyword = (e) =>{
43
- setKeyword('')
42
+ setKeyword('');
43
+ inputRef?.current?.focus();
44
+ onSearch && onSearch({keyWords: ''});
44
45
  };
45
46
 
46
47
  return <div className={classnames(precls, {[`${precls}--active`]: active})}>
@@ -154,9 +154,9 @@ export default forwardRef((props: Props, ref) => {
154
154
  const el = scrollArea?.getScrollElement();
155
155
  if (el && el.scrollHeight > el.offsetHeight) {
156
156
  if (el.scrollHeight - el.offsetHeight == el.scrollTop) {
157
- setShowFrontMore(false);
157
+ setShowMore(false);
158
158
  } else {
159
- setShowFrontMore(true);
159
+ setShowMore(true);
160
160
  }
161
161
  } else {
162
162
  setShowMore(false);
@@ -294,7 +294,7 @@ export default forwardRef((props: Props, ref) => {
294
294
  <div
295
295
  className={`${preCls}__has-more`}
296
296
  onClick={onClickShowMore}
297
- ></div>
297
+ />
298
298
  )}
299
299
  </div>
300
300
  </div>
@@ -23,7 +23,7 @@ const AppraisalMenus = (props: Props) => {
23
23
  const { onSelect = () => { }, history } = props;
24
24
 
25
25
  const [maxHeight, setMaxHeight] = useState<number>(() => {
26
- return document.body.offsetHeight - 170;
26
+ return document.body.offsetHeight - 150;
27
27
  });
28
28
  const [selectedMenuKeys, setSelectedMenuKeys] = useState<string[]>([]);
29
29
 
@@ -75,7 +75,7 @@ const AppraisalMenus = (props: Props) => {
75
75
  const obs = new ResizeObserver(entries => {
76
76
  for (let entry of entries) {
77
77
  const cr = entry.contentRect;
78
- setMaxHeight(cr.height - 170);
78
+ setMaxHeight(cr.height - 150);
79
79
  }
80
80
  })
81
81
  obs.observe(document.body);
@@ -53,7 +53,7 @@ export default () => {
53
53
 
54
54
  // 因为要实现虚拟列表的功能,所有要动态的计算出一个菜单的高度
55
55
  useEffect(() => {
56
- setHeight(document.body.offsetHeight - 210);
56
+ setHeight(document.body.offsetHeight - 164);
57
57
  }, [])
58
58
 
59
59
  useEffect(() => {
@@ -93,7 +93,7 @@ export default () => {
93
93
  const obs = new ResizeObserver(entries => {
94
94
  for (let entry of entries) {
95
95
  const cr = entry.contentRect;
96
- setHeight(cr.height - 210);
96
+ setHeight(cr.height - 164);
97
97
  }
98
98
  })
99
99
  obs.observe(document.body);
@@ -1,4 +1,4 @@
1
- import React, { useState, useRef } from "react";
1
+ import React, { useState, useRef, useEffect } from "react";
2
2
  import classNames from "classnames";
3
3
  import { withRouter } from "react-router";
4
4
  import DepartMenus from "./depart-menus";
@@ -24,6 +24,8 @@ export default class {
24
24
  cb(PAGE_MY_PART_OKR);
25
25
  } else if (this.isMyTargetOkr()) {
26
26
  cb(PAGE_MY_TARGET_OKR);
27
+ } else {
28
+ cb(PAGE_MY_OWNER_OKR);
27
29
  }
28
30
  } else if (this.isOkrMap()) {
29
31
  cb(PAGE_OKR_MAP);
@@ -32,7 +32,7 @@ export default forwardRef((props: Props, ref) => {
32
32
  } = props;
33
33
 
34
34
  const [maxHeight, setMaxHeight] = useState<number>(() => {
35
- return document.body.offsetHeight - 210;
35
+ return document.body.offsetHeight - 198;
36
36
  });
37
37
  const [expandedKeys, setExpandedKeys] = useState(['myokr']);
38
38
  const [selectedMenuKeys, setSelectedMenuKeys] = useState<string[]>([]);
@@ -159,7 +159,7 @@ export default forwardRef((props: Props, ref) => {
159
159
  const obs = new ResizeObserver(entries => {
160
160
  for (let entry of entries) {
161
161
  const cr = entry.contentRect;
162
- setMaxHeight(cr.height - 210);
162
+ setMaxHeight(cr.height - 198);
163
163
  }
164
164
  })
165
165
  obs.observe(document.body);
@@ -29,7 +29,7 @@
29
29
 
30
30
  &-right {
31
31
  box-sizing: border-box;
32
- width: 192px;
32
+ width: 175px;
33
33
  height: 60px;
34
34
  margin-left: 12px;
35
35
  padding-top: 8px;
@@ -377,8 +377,10 @@ const BaseInfo: FC<IBaseInfoProps> = ({ okrId }) => {
377
377
  <DialogConfirm visible={showDialogConfirm} type="warning">
378
378
  {/* @ts-ignore */}
379
379
  <span type="title">
380
- 确定删除此
381
- {delUserType === 1 ? "参与" : getLocale("OKR_MyO_Butt_Follow")}人吗?
380
+ {delUserType === 1
381
+ ? getLocale("OKR_MyO_Err_Delepar")
382
+ : getLocale("OKR_MyO_Err_Delefol")}
383
+
382
384
  </span>
383
385
  <CancelButton type="button" onClick={cancelDelPerson}>
384
386
  {getLocale("Mod_Cancel")}
@@ -59,7 +59,7 @@ const Principal: FC<IPrincipalProps> = ({user, onChangeUser, canEdit = false}) =
59
59
  ref={popConfirmRef}
60
60
  showArrow={false}
61
61
  style={{ width: 300 }}
62
- title="您确定把负责人的权限转交吗?"
62
+ title={getLocale('OKR_MyO_Err_Transfer')}
63
63
  onCancel={cancelHandler}
64
64
  onConfirm={confirmHandler}
65
65
  >
@@ -5,6 +5,7 @@ import UserSelector from "../../../user-selector";
5
5
  import { GeneralDataContext } from "../../context";
6
6
  import { updateOkrPrincipal } from "../../request-apis";
7
7
  import PopConfirm from "../../../../components-v1/popConfirm";
8
+ import { getLocale } from "../../../../utils/getLocale";
8
9
 
9
10
  interface IProps {
10
11
  editable: boolean;
@@ -79,7 +80,7 @@ const OAvatar = (props: IProps) => {
79
80
  ref={popConfirmRef}
80
81
  showArrow={false}
81
82
  style={{ width: 300 }}
82
- title="您确定把负责人的权限转交吗?"
83
+ title={getLocale('OKR_MyO_Err_Transfer')}
83
84
  onCancel={cancelHandler}
84
85
  onConfirm={confirmHandler}
85
86
  >
@@ -91,8 +91,10 @@ const OScore = (props: IOScoreProps) => {
91
91
  onClose={handleCancel}
92
92
  onOk={handleOk}
93
93
  onCancel={handleCancel}
94
+ getContainer={() => document.body}
94
95
  noHeadLine
95
96
  noFooterLine
97
+ zIndex={1310}
96
98
  >
97
99
  <div ref={formContainerRef} className={`${preCls}__form`}>
98
100
  <Form
@@ -100,7 +100,7 @@ const EditChildOkrWeight = (props: IProps) => {
100
100
  <span className={`${precls}__item-precls`} />
101
101
  <div className={`${precls}__item-name`}>{item.workName}</div>
102
102
  <div className={`${precls}__item-weight`}>
103
- <span className={`${precls}__item-weight-label`}>权重</span>
103
+ <span className={`${precls}__item-weight-label`}>{getLocale('OKR_MyO_Err_Weights')}</span>
104
104
  <WeightInput
105
105
  workId={item.workId}
106
106
  value={item.pweight}
@@ -113,7 +113,7 @@ const EditChildOkrWeight = (props: IProps) => {
113
113
  </Dialog>
114
114
  <DialogConfirm zIndex={1299} visible={showDialogConfirm} type="warning" className={`${precls}__confirm`}>
115
115
  {/* @ts-ignore */}
116
- <span type="title">当前子目标权重合计小于100%,确定要保存吗?</span>
116
+ <span type="title">{getLocale('OKR_MyO_Err_Delefocus')}</span>
117
117
  <CancelButton type="button" onClick={closeDialogConfirm}>
118
118
  {getLocale('Mod_Cancel')}
119
119
  </CancelButton>
@@ -94,10 +94,10 @@ function OkrDetailHeader({ detailInfo }: Props): ReactElement {
94
94
  },
95
95
  onChangeOkrFollow: async (follow: boolean) => {
96
96
  const res = await openOkrHeaderConfirm(
97
- follow ? "确定关注该目标吗?" : "确定取消关注该目标吗?",
97
+ follow ? getLocale('OKR_MyO_Err_Focuson') : getLocale('OKR_MyO_Err_Unfollow'),
98
98
  follow
99
- ? "关注后进展信息将推送到 “动态” 下"
100
- : "取消后进展信息将不在推送到 “动态” 下"
99
+ ? getLocale('OKR_MyO_Err_Payatten')
100
+ : getLocale('OKR_MyO_Err_Progress')
101
101
  );
102
102
  if (res) {
103
103
  follow
@@ -114,7 +114,7 @@ function OkrDetailHeader({ detailInfo }: Props): ReactElement {
114
114
  },
115
115
  onFinishOrReOpen: async (isFinish: boolean) => {
116
116
  const res = await openOkrHeaderConfirm(
117
- isFinish ? getLocale('OKR_MyO_Areycloseobjective') : "确定重启该目标吗?"
117
+ isFinish ? getLocale('OKR_MyO_Areycloseobjective') : getLocale('OKR_MyO_Err_Restart')
118
118
  );
119
119
  if (res) {
120
120
  isFinish
@@ -127,8 +127,8 @@ function OkrDetailHeader({ detailInfo }: Props): ReactElement {
127
127
  },
128
128
  onQuit: async () => {
129
129
  const res = await openOkrHeaderConfirm(
130
- "确定退出吗?",
131
- "再次加入需要联系负责人"
130
+ getLocale('OKR_MyO_Err_Quit'),
131
+ getLocale('OKR_MyO_Err_Inchargec')
132
132
  );
133
133
  if (res) {
134
134
  await deleteUser(loginUserId, detailInfo.workId, 2);
@@ -16,6 +16,7 @@ async function getInstance() {
16
16
  'left': '50%',
17
17
  'position': 'absolute',
18
18
  // 'transform': 'translate(-50%, 0)'
19
+ 'borderRadius': 12
19
20
  },
20
21
  'maxCount': 1,
21
22
  'className': 'document-mouse-event-ignore',
@@ -1,11 +1,14 @@
1
1
  import React from 'react';
2
+ import Tooltip from "../../../../tooltip"
2
3
  import './index.scss';
3
4
 
4
5
  export default props => {
5
6
  const { data } = props;
6
7
  return <div className="perspm-duties">
7
8
  <span className="perspm-duties__name" title="">
8
- <span>{data.name}</span>
9
+ <span>
10
+ <Tooltip.Text text={data.name} isPercent />
11
+ </span>
9
12
  </span>
10
13
  </div>
11
14
  }
@@ -14,7 +14,6 @@
14
14
  line-height: 22px;
15
15
  overflow: hidden;
16
16
  white-space: nowrap;
17
- text-overflow: ellipsis;
18
17
  }
19
18
 
20
19
  &__member-count {
File without changes
Binary file
@@ -2,6 +2,7 @@
2
2
  position: relative;
3
3
  height: 100vh;
4
4
  background: #f0f4fa;
5
+ overflow: hidden;
5
6
 
6
7
  &__header {
7
8
  height: 54px;
@@ -27,13 +28,31 @@
27
28
  &__kefu {
28
29
  width: 42px;
29
30
  height: 42px;
30
- background: url('./kefu.svg') no-repeat;
31
+ background: url('./img/kefu.svg') no-repeat;
31
32
  background-size: 42px;
32
33
  box-shadow: 0px 4px 12px 0px rgba(127, 145, 180, 0.2);
33
34
  cursor: pointer;
34
35
  border-radius: 50%;
35
36
  }
36
-
37
+ &__notice {
38
+ width: 42px;
39
+ height: 42px;
40
+ background: linear-gradient(180deg, #4E90FF 0%, #2879FF 100%);
41
+ box-shadow: 0px 4px 12px 0px rgba(40, 121, 255, 0.3), inset 0px 0px 6px 2px rgba(255, 255, 255, 0.5);
42
+ cursor: pointer;
43
+ border-radius: 50%;
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ position: absolute;
48
+ bottom: 36px;
49
+ right: 24px;
50
+ z-index: 2;
51
+ img {
52
+ width: 32px;
53
+ height: 42px;
54
+ }
55
+ }
37
56
  &__help {
38
57
  position: absolute;
39
58
  bottom: 20px;
@@ -45,7 +64,6 @@
45
64
  display: flex;
46
65
  height: calc(100vh - 74px);
47
66
  padding: 0 16px;
48
- overflow: hidden;
49
67
 
50
68
  &-menu {
51
69
  position: relative;
@@ -42,6 +42,7 @@ const PageLayout = (props) => {
42
42
 
43
43
  const isTrial =
44
44
  window.BSGlobal.tenantAuthentication.Version == 1 && isOfficialSite();
45
+ const isTencentHr = window.BSGlobal.tenantInfo.Source == 964;
45
46
 
46
47
  const onClickKefu = () => {
47
48
  const kefuUrl = isTrial
@@ -50,6 +51,11 @@ const PageLayout = (props) => {
50
51
  window.open(kefuUrl);
51
52
  };
52
53
 
54
+ const onClickNotice = () => {
55
+ const url = `//${location.host}/u/${window.BSGlobal.loginUserInfo.Id}/Home#more/messages?messageType=1&isRead=2&messageSubNav=1`
56
+ window.open(url)
57
+ }
58
+
53
59
  return (
54
60
  <div className={classNames(preCls)}>
55
61
  <div className={classNames(`${preCls}__header`)}>
@@ -59,10 +65,10 @@ const PageLayout = (props) => {
59
65
  <FollowerVisitor />
60
66
  </div>
61
67
  <div className={classNames(`${preCls}__body`)}>{children}</div>
62
- <div className={classNames(`${preCls}__help`)}>
68
+ {!isTencentHr && <div className={classNames(`${preCls}__help`)}>
63
69
  <HelpCard />
64
- </div>
65
- {!isTrial && (
70
+ </div>}
71
+ {!isTrial && !isTencentHr && (
66
72
  <Tooltip
67
73
  overlay={"联系客服"}
68
74
  placement="left"
@@ -74,11 +80,19 @@ const PageLayout = (props) => {
74
80
  />
75
81
  </Tooltip>
76
82
  )}
77
- {isTrial && (
83
+ {isTrial && !isTencentHr &&(
78
84
  <div className={`${preCls}__invite`}>
79
85
  <InvitePeople />
80
86
  </div>
81
87
  )}
88
+ {isTencentHr && (
89
+ <div
90
+ className={classNames(`${preCls}__notice`)}
91
+ onClick={onClickNotice}
92
+ >
93
+ <img src={require('./img/notice.png')}/>
94
+ </div>
95
+ )}
82
96
  <PointDemo />
83
97
  </div>
84
98
  );
@@ -35,10 +35,10 @@ export default props => {
35
35
  visible={visible}
36
36
  >
37
37
  <div className={classNames(`${preCls}__dialog-dele-group-title`)} >
38
- <span className="tu-icon-tishi"/><span className={classNames(`${preCls}__dialog-dele-group-title-text`)}>确定要删除该群组吗?</span>
38
+ <span className="tu-icon-tishi"/><span className={classNames(`${preCls}__dialog-dele-group-title-text`)}>{getLocale('OKR_MyO_Err_Delegroup')}</span>
39
39
  </div>
40
40
  <div className={classNames(`${preCls}__dialog-dele-group-subtitle`)}>
41
- 删除群组不会导致成员从组织架构中删除
41
+ {getLocale('OKR_MyO_Err_Remove')}
42
42
  </div>
43
43
  <div className={classNames(`${preCls}__dialog-dele-group-footer`)}>
44
44
  <div type="button" className="btn btn-default" key="close" onClick={() => setVisible(false)}>
@@ -144,10 +144,10 @@ const LikeRanking: FC = () => {
144
144
  };
145
145
 
146
146
  const handleLinkToPraiseRaking = () => {
147
- window.history.go(-1)
148
- // let href = window.location.href;
149
- // let url = `${href.split("#")[0]}#dynamic`;
150
- // window.open(url, "self");
147
+ // window.history.go(-1)
148
+ let href = window.location.href;
149
+ let url = `${href.split("#")[0]}#dynamic`;
150
+ window.open(url, "self");
151
151
  };
152
152
 
153
153
  return (
@@ -5,7 +5,7 @@ import Dialog from '../../../components/dialog';
5
5
  import preCls from '../precls';
6
6
  import { getShareUrl } from '../request-apis';
7
7
  import { getLocale } from '../../../utils/getLocale';
8
- import Toast from '@titaui/toast';
8
+ import Toast from '../../../components/toast';
9
9
 
10
10
  import './index.scss';
11
11