@titaui/pc 1.9.20 → 1.9.24
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.
- package/lib/components/okr-detail/components/header/index.js +7 -3
- package/lib/components/okr-detail/components/header/o-score.js +16 -2
- package/lib/components/okr-detail/components/okr-tree/tree-node/e-kr-node/index.js +1 -1
- package/lib/pages/personal-info/components/base-info/index.js +8 -6
- package/lib/pages/personal-info/components/edit-base-info/index.js +26 -22
- package/lib/utils/i18n-front-translate.js +18 -0
- package/package.json +1 -1
- package/src/components/okr-detail/components/header/index.js +2 -2
- package/src/components/okr-detail/components/header/o-score.tsx +17 -4
- package/src/components/okr-detail/components/okr-tree/tree-node/e-kr-node/index.js +1 -1
- package/src/pages/personal-info/components/base-info/index.tsx +42 -21
- package/src/pages/personal-info/components/edit-base-info/index.tsx +151 -141
- package/src/utils/i18n-front-translate.ts +8 -0
|
@@ -64,6 +64,8 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
64
64
|
var precls = "okr-drawer-header";
|
|
65
65
|
|
|
66
66
|
var Header = function Header(props) {
|
|
67
|
+
var _window, _window$BSGlobal, _window$BSGlobal$OkrA, _window$BSGlobal$OkrA2;
|
|
68
|
+
|
|
67
69
|
// 外部取到的 headInfo
|
|
68
70
|
var okrInfo = props.okrInfo;
|
|
69
71
|
|
|
@@ -85,6 +87,7 @@ var Header = function Header(props) {
|
|
|
85
87
|
setGeneralOkrClassify = _useContext.setGeneralOkrClassify,
|
|
86
88
|
showOkrEvalute = _useContext.showOkrEvalute;
|
|
87
89
|
|
|
90
|
+
var showOScore = (_window = window) === null || _window === void 0 ? void 0 : (_window$BSGlobal = _window.BSGlobal) === null || _window$BSGlobal === void 0 ? void 0 : (_window$BSGlobal$OkrA = _window$BSGlobal.OkrAdvancedSetting) === null || _window$BSGlobal$OkrA === void 0 ? void 0 : (_window$BSGlobal$OkrA2 = _window$BSGlobal$OkrA.KRSetting) === null || _window$BSGlobal$OkrA2 === void 0 ? void 0 : _window$BSGlobal$OkrA2.OScore;
|
|
88
91
|
var _okrInfo$progressGrow = okrInfo.progressGrow,
|
|
89
92
|
progressGrow = _okrInfo$progressGrow === void 0 ? 0 : _okrInfo$progressGrow,
|
|
90
93
|
progress = okrInfo.progress;
|
|
@@ -183,10 +186,11 @@ var Header = function Header(props) {
|
|
|
183
186
|
okrId: okrInfo.workId
|
|
184
187
|
})), /*#__PURE__*/_react["default"].createElement("span", {
|
|
185
188
|
className: "".concat(precls, "__action-item")
|
|
186
|
-
}, showOkrEvalute && /*#__PURE__*/_react["default"].createElement(_oScore["default"], {
|
|
187
|
-
editable: editable,
|
|
189
|
+
}, (showOkrEvalute || showOScore || okrInfo.manualEvaluateValue) && /*#__PURE__*/_react["default"].createElement(_oScore["default"], {
|
|
190
|
+
editable: editable && showOScore,
|
|
188
191
|
okrId: okrInfo.workId,
|
|
189
|
-
score: okrInfo.evaluateValue
|
|
192
|
+
score: okrInfo.evaluateValue,
|
|
193
|
+
isEvaluate: okrInfo.manualEvaluateValue || showOkrEvalute && !!okrInfo.evaluateValue
|
|
190
194
|
}))), /*#__PURE__*/_react["default"].createElement(_oProgressUpdate["default"], {
|
|
191
195
|
okrInfo: okrInfo,
|
|
192
196
|
renderContent: renderContent
|
|
@@ -75,8 +75,7 @@ var OScore = function OScore(props) {
|
|
|
75
75
|
refreshAll = _useContext.refreshAll;
|
|
76
76
|
|
|
77
77
|
var _useState3 = (0, _react.useState)({
|
|
78
|
-
score: score
|
|
79
|
-
describe: ""
|
|
78
|
+
score: score == 1 ? '1' : Number(score).toFixed(2) * 1
|
|
80
79
|
}),
|
|
81
80
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
82
81
|
formFiedlsValue = _useState4[0],
|
|
@@ -84,6 +83,11 @@ var OScore = function OScore(props) {
|
|
|
84
83
|
|
|
85
84
|
var formContainerRef = (0, _react.useRef)();
|
|
86
85
|
var formRef = (0, _react.useRef)();
|
|
86
|
+
(0, _react.useEffect)(function () {
|
|
87
|
+
setFormFiedlsValue({
|
|
88
|
+
score: score == 1 ? '1' : Number(score).toFixed(2) * 1
|
|
89
|
+
});
|
|
90
|
+
}, [score]);
|
|
87
91
|
|
|
88
92
|
var changeOScore = function changeOScore() {
|
|
89
93
|
setVisible(true);
|
|
@@ -93,7 +97,17 @@ var OScore = function OScore(props) {
|
|
|
93
97
|
setVisible(false);
|
|
94
98
|
};
|
|
95
99
|
|
|
100
|
+
var checkForm = function checkForm() {
|
|
101
|
+
// @ts-ignore
|
|
102
|
+
var errors = formRef.current.verifing({
|
|
103
|
+
onlyFirstError: true
|
|
104
|
+
});
|
|
105
|
+
if (errors.length) return false;
|
|
106
|
+
return true;
|
|
107
|
+
};
|
|
108
|
+
|
|
96
109
|
var handleOk = function handleOk() {
|
|
110
|
+
if (!checkForm()) return;
|
|
97
111
|
(0, _requestApis.updateOScore)(formFiedlsValue.score, okrId).then(function (res) {
|
|
98
112
|
if (!!res.Code) {
|
|
99
113
|
_toast["default"].Success("".concat((0, _getLocale.getLocale)("OKR_MyO_Ew_Success")));
|
|
@@ -17,6 +17,8 @@ var _editBaseInfo = _interopRequireDefault(require("../edit-base-info"));
|
|
|
17
17
|
|
|
18
18
|
var _openData = require("../../../../utils/open-data");
|
|
19
19
|
|
|
20
|
+
var _getLocale = require("../../../../utils/getLocale");
|
|
21
|
+
|
|
20
22
|
require("./index.css");
|
|
21
23
|
|
|
22
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -50,7 +52,7 @@ var BaseInfo = function BaseInfo() {
|
|
|
50
52
|
name: "",
|
|
51
53
|
email: "",
|
|
52
54
|
mobile: "",
|
|
53
|
-
userId:
|
|
55
|
+
userId: ""
|
|
54
56
|
}),
|
|
55
57
|
_useState2 = _slicedToArray(_useState, 2),
|
|
56
58
|
userInfo = _useState2[0],
|
|
@@ -88,9 +90,9 @@ var BaseInfo = function BaseInfo() {
|
|
|
88
90
|
className: "".concat(prefix, "__header")
|
|
89
91
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
90
92
|
className: "".concat(prefix, "__header-title")
|
|
91
|
-
}, getLocale(
|
|
93
|
+
}, (0, _getLocale.getLocale)("Per_Ass_New_title_text_BasicIn")), /*#__PURE__*/_react["default"].createElement(_button.RectBtn, {
|
|
92
94
|
type: "primary",
|
|
93
|
-
text: getLocale(
|
|
95
|
+
text: (0, _getLocale.getLocale)("Mod_Editor"),
|
|
94
96
|
onClick: handleClickEdit
|
|
95
97
|
}), /*#__PURE__*/_react["default"].createElement(_editBaseInfo["default"], {
|
|
96
98
|
visible: visible,
|
|
@@ -101,7 +103,7 @@ var BaseInfo = function BaseInfo() {
|
|
|
101
103
|
className: "".concat(prefix, "__form")
|
|
102
104
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
103
105
|
className: "".concat(prefix, "__form-title")
|
|
104
|
-
}, "
|
|
106
|
+
}, (0, _getLocale.getLocale)("Mod_UserName")), /*#__PURE__*/_react["default"].createElement("span", {
|
|
105
107
|
className: "".concat(prefix, "__form-value")
|
|
106
108
|
}, /*#__PURE__*/_react["default"].createElement(_openData.OpenUserName, {
|
|
107
109
|
id: userInfo.userId,
|
|
@@ -112,13 +114,13 @@ var BaseInfo = function BaseInfo() {
|
|
|
112
114
|
className: "".concat(prefix, "__form-title")
|
|
113
115
|
}, "\u624B\u673A\u53F7\u7801"), /*#__PURE__*/_react["default"].createElement("span", {
|
|
114
116
|
className: "".concat(prefix, "__form-value")
|
|
115
|
-
}, userInfo.mobile ? userInfo.mobile :
|
|
117
|
+
}, userInfo.mobile ? userInfo.mobile : (0, _getLocale.getLocale)('Data_Notset'))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
116
118
|
className: "".concat(prefix, "__form")
|
|
117
119
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
118
120
|
className: "".concat(prefix, "__form-title")
|
|
119
121
|
}, "\u7535\u5B50\u90AE\u7BB1"), /*#__PURE__*/_react["default"].createElement("span", {
|
|
120
122
|
className: "".concat(prefix, "__form-value")
|
|
121
|
-
}, userInfo.email ? userInfo.email :
|
|
123
|
+
}, userInfo.email ? userInfo.email : (0, _getLocale.getLocale)('Data_Notset'))));
|
|
122
124
|
};
|
|
123
125
|
|
|
124
126
|
var _default = BaseInfo;
|
|
@@ -17,6 +17,10 @@ var _toast = _interopRequireDefault(require("../../../../components/toast"));
|
|
|
17
17
|
|
|
18
18
|
var _dialog = _interopRequireDefault(require("../../../../components/dialog"));
|
|
19
19
|
|
|
20
|
+
var _getLocale = require("../../../../utils/getLocale");
|
|
21
|
+
|
|
22
|
+
var _i18nFrontTranslate = require("../../../../utils/i18n-front-translate");
|
|
23
|
+
|
|
20
24
|
require("./index.css");
|
|
21
25
|
|
|
22
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -66,9 +70,9 @@ var EditBaseInfo = function EditBaseInfo(props) {
|
|
|
66
70
|
setIsEdit = _useState4[1];
|
|
67
71
|
|
|
68
72
|
var _useState5 = (0, _react.useState)({
|
|
69
|
-
name:
|
|
70
|
-
email:
|
|
71
|
-
mobile:
|
|
73
|
+
name: "",
|
|
74
|
+
email: "",
|
|
75
|
+
mobile: ""
|
|
72
76
|
}),
|
|
73
77
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
74
78
|
userInfo = _useState6[0],
|
|
@@ -76,7 +80,7 @@ var EditBaseInfo = function EditBaseInfo(props) {
|
|
|
76
80
|
|
|
77
81
|
var handleNameChange = function handleNameChange(value) {
|
|
78
82
|
setUserInfo(_objectSpread(_objectSpread({}, userInfo), {}, {
|
|
79
|
-
name: value ||
|
|
83
|
+
name: value || ""
|
|
80
84
|
}));
|
|
81
85
|
|
|
82
86
|
if (value.length > 50 || value.length === 0) {
|
|
@@ -90,7 +94,7 @@ var EditBaseInfo = function EditBaseInfo(props) {
|
|
|
90
94
|
|
|
91
95
|
var handlePhoneChange = function handlePhoneChange(value) {
|
|
92
96
|
setUserInfo(_objectSpread(_objectSpread({}, userInfo), {}, {
|
|
93
|
-
mobile: value ||
|
|
97
|
+
mobile: value || ""
|
|
94
98
|
}));
|
|
95
99
|
|
|
96
100
|
if (value.length !== 11) {
|
|
@@ -104,7 +108,7 @@ var EditBaseInfo = function EditBaseInfo(props) {
|
|
|
104
108
|
|
|
105
109
|
var handleEmailChange = function handleEmailChange(value) {
|
|
106
110
|
setUserInfo(_objectSpread(_objectSpread({}, userInfo), {}, {
|
|
107
|
-
email: value ||
|
|
111
|
+
email: value || ""
|
|
108
112
|
}));
|
|
109
113
|
setIsEdit(true);
|
|
110
114
|
};
|
|
@@ -118,7 +122,7 @@ var EditBaseInfo = function EditBaseInfo(props) {
|
|
|
118
122
|
data: userInfo
|
|
119
123
|
}).then(function (resp) {
|
|
120
124
|
if (resp.Code === 1) {
|
|
121
|
-
_toast["default"].Success('
|
|
125
|
+
_toast["default"].Success((0, _getLocale.getLocale)('Per_Ma_form_Updatesuc'), {
|
|
122
126
|
canClose: false
|
|
123
127
|
});
|
|
124
128
|
|
|
@@ -149,7 +153,7 @@ var EditBaseInfo = function EditBaseInfo(props) {
|
|
|
149
153
|
width: 480,
|
|
150
154
|
mask: true,
|
|
151
155
|
centered: true,
|
|
152
|
-
title:
|
|
156
|
+
title: "基本信息设置",
|
|
153
157
|
noHeadLine: true,
|
|
154
158
|
maskClosable: false,
|
|
155
159
|
onClose: function onClose() {
|
|
@@ -170,7 +174,7 @@ var EditBaseInfo = function EditBaseInfo(props) {
|
|
|
170
174
|
email: info.email
|
|
171
175
|
});
|
|
172
176
|
},
|
|
173
|
-
okText:
|
|
177
|
+
okText: (0, _getLocale.getLocale)('Mod_Determiness'),
|
|
174
178
|
noFooterLine: true,
|
|
175
179
|
onOk: handleSaveUserInfo,
|
|
176
180
|
disabled: isDisable
|
|
@@ -184,19 +188,19 @@ var EditBaseInfo = function EditBaseInfo(props) {
|
|
|
184
188
|
}
|
|
185
189
|
}, /*#__PURE__*/_react["default"].createElement(Fields.Input, {
|
|
186
190
|
name: "name",
|
|
187
|
-
label: '
|
|
188
|
-
placeholder: '
|
|
191
|
+
label: (0, _getLocale.getLocale)('Mod_UserName'),
|
|
192
|
+
placeholder: (0, _getLocale.getLocale)('Perf_Indica_Pop_text_Name'),
|
|
189
193
|
type: "text",
|
|
190
194
|
require: true,
|
|
191
195
|
layout: "row",
|
|
192
196
|
verifies: [{
|
|
193
|
-
tip: '
|
|
194
|
-
test:
|
|
197
|
+
tip: (0, _getLocale.getLocale)('OKR_MyO_Ew_Namecant'),
|
|
198
|
+
test: /^[\s\S]+$/
|
|
195
199
|
}, {
|
|
196
|
-
tip:
|
|
200
|
+
tip: "姓名只能为中文,英文字母和数字及下划线的组合",
|
|
197
201
|
test: /^((?!(\uff08|\uff09)).)*$/g
|
|
198
202
|
}, {
|
|
199
|
-
tip:
|
|
203
|
+
tip: (0, _i18nFrontTranslate.i18nLimitCharacters)(50),
|
|
200
204
|
test: /^[\s\S]{0,50}$/
|
|
201
205
|
}],
|
|
202
206
|
value: userInfo.name,
|
|
@@ -204,28 +208,28 @@ var EditBaseInfo = function EditBaseInfo(props) {
|
|
|
204
208
|
}), /*#__PURE__*/_react["default"].createElement(Fields.Input, {
|
|
205
209
|
name: "phone",
|
|
206
210
|
type: "text",
|
|
207
|
-
label:
|
|
208
|
-
placeholder: '
|
|
211
|
+
label: "手机号码",
|
|
212
|
+
placeholder: (0, _getLocale.getLocale)('Pro_page_Ext_Tab_PhoneNumber'),
|
|
209
213
|
require: true,
|
|
210
214
|
layout: "row",
|
|
211
215
|
value: userInfo.mobile,
|
|
212
216
|
verifies: [{
|
|
213
|
-
tip:
|
|
217
|
+
tip: "手机号不能为空",
|
|
214
218
|
test: /^[\s\S]+$/
|
|
215
219
|
}, {
|
|
216
|
-
tip:
|
|
220
|
+
tip: "格式错误,海外手机格式如:(+852)52345678",
|
|
217
221
|
test: /^1[3456789]\d{9}$/
|
|
218
222
|
}],
|
|
219
223
|
onChange: handlePhoneChange
|
|
220
224
|
}), /*#__PURE__*/_react["default"].createElement(Fields.Input, {
|
|
221
225
|
name: "email",
|
|
222
226
|
type: "text",
|
|
223
|
-
label: '
|
|
227
|
+
label: (0, _getLocale.getLocale)('OKR_MyO_Ew_Mail'),
|
|
224
228
|
value: userInfo.email,
|
|
225
229
|
layout: "row",
|
|
226
|
-
placeholder: '
|
|
230
|
+
placeholder: (0, _getLocale.getLocale)('Pro_page_Ext_Tab_Inpuyouremail'),
|
|
227
231
|
verifies: [{
|
|
228
|
-
tip: '
|
|
232
|
+
tip: (0, _getLocale.getLocale)('OKR_MyO_Ew_Emailfor'),
|
|
229
233
|
test: /^([a-zA-Z0-9_-]|\.)+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
|
|
230
234
|
}],
|
|
231
235
|
onChange: handleEmailChange
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.i18nLimitCharacters = void 0;
|
|
7
|
+
|
|
8
|
+
var _getLocale = require("./getLocale");
|
|
9
|
+
|
|
10
|
+
var i18nLimitCharacters = function i18nLimitCharacters(length) {
|
|
11
|
+
if (_getLocale.isEn) {
|
|
12
|
+
return "Up to ".concat(length, " characters can be entered");
|
|
13
|
+
} else {
|
|
14
|
+
return "\u6700\u591A\u53EF\u8F93\u5165".concat(length, "\u4E2A\u5B57");
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
exports.i18nLimitCharacters = i18nLimitCharacters;
|
package/package.json
CHANGED
|
@@ -34,7 +34,7 @@ const Header = (props) => {
|
|
|
34
34
|
setGeneralOkrClassify,
|
|
35
35
|
showOkrEvalute,
|
|
36
36
|
} = useContext(GeneralDataContext);
|
|
37
|
-
|
|
37
|
+
const showOScore = window?.BSGlobal?.OkrAdvancedSetting?.KRSetting?.OScore
|
|
38
38
|
const { progressGrow = 0, progress } = okrInfo;
|
|
39
39
|
|
|
40
40
|
const [auth, setAuth] = useState(false);
|
|
@@ -149,7 +149,7 @@ const Header = (props) => {
|
|
|
149
149
|
<OCycle editable={editable} okrId={okrInfo.workId} />
|
|
150
150
|
</span>
|
|
151
151
|
<span className={`${precls}__action-item`}>
|
|
152
|
-
{showOkrEvalute && <Score editable={editable} okrId={okrInfo.workId} score={okrInfo.evaluateValue} />}
|
|
152
|
+
{(showOkrEvalute || showOScore || okrInfo.manualEvaluateValue) && <Score editable={editable&&showOScore} okrId={okrInfo.workId} score={okrInfo.evaluateValue} isEvaluate={okrInfo.manualEvaluateValue || (showOkrEvalute && !!okrInfo.evaluateValue)} />}
|
|
153
153
|
</span>
|
|
154
154
|
</span>
|
|
155
155
|
<OProgressUpdate okrInfo={okrInfo} renderContent={renderContent} />
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { Fragment, useState, useRef, useContext } from "react";
|
|
1
|
+
import React, { Fragment, useState, useRef,useEffect, useContext } from "react";
|
|
2
2
|
import { CommonContext } from "../../context";
|
|
3
3
|
import { getLocale } from "../../../../utils/getLocale";
|
|
4
4
|
import Score from "../score";
|
|
@@ -18,18 +18,23 @@ interface IOScoreProps {
|
|
|
18
18
|
}
|
|
19
19
|
interface FormFields {
|
|
20
20
|
score: string | number;
|
|
21
|
-
describe: string;
|
|
22
21
|
}
|
|
23
22
|
const OScore = (props: IOScoreProps) => {
|
|
24
23
|
const { score, okrId, editable, ...restProps } = props;
|
|
25
24
|
const [visible, setVisible] = useState(false);
|
|
26
25
|
const { refreshAll } = useContext(CommonContext);
|
|
27
26
|
const [formFiedlsValue, setFormFiedlsValue] = useState<FormFields>({
|
|
28
|
-
score: score
|
|
29
|
-
describe: "",
|
|
27
|
+
score: score == 1 ? '1': Number(score).toFixed(2) * 1
|
|
30
28
|
});
|
|
31
29
|
const formContainerRef = useRef<any>();
|
|
32
30
|
const formRef = useRef<any>();
|
|
31
|
+
|
|
32
|
+
useEffect(()=>{
|
|
33
|
+
setFormFiedlsValue({
|
|
34
|
+
score: score == 1 ? '1': Number(score).toFixed(2) * 1
|
|
35
|
+
})
|
|
36
|
+
},[score])
|
|
37
|
+
|
|
33
38
|
const changeOScore = () => {
|
|
34
39
|
setVisible(true);
|
|
35
40
|
};
|
|
@@ -38,7 +43,15 @@ const OScore = (props: IOScoreProps) => {
|
|
|
38
43
|
setVisible(false);
|
|
39
44
|
};
|
|
40
45
|
|
|
46
|
+
const checkForm = () => {
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
const errors = formRef.current.verifing({ onlyFirstError: true });
|
|
49
|
+
if (errors.length) return false;
|
|
50
|
+
return true;
|
|
51
|
+
};
|
|
52
|
+
|
|
41
53
|
const handleOk = () => {
|
|
54
|
+
if (!checkForm()) return;
|
|
42
55
|
updateOScore(formFiedlsValue.score, okrId)
|
|
43
56
|
.then((res) => {
|
|
44
57
|
if (!!res.Code) {
|
|
@@ -1,58 +1,79 @@
|
|
|
1
1
|
import React, { FC, useState, useEffect } from "react";
|
|
2
|
-
import { getUserInfoFun } from
|
|
2
|
+
import { getUserInfoFun } from "../../request-api";
|
|
3
3
|
import { RectBtn } from "../../../../components/button";
|
|
4
|
-
import EditModle from
|
|
5
|
-
import {OpenUserName} from
|
|
4
|
+
import EditModle from "../edit-base-info";
|
|
5
|
+
import { OpenUserName } from "../../../../utils/open-data";
|
|
6
|
+
import { getLocale } from "../../../../utils/getLocale";
|
|
6
7
|
import "./index.scss";
|
|
7
8
|
|
|
8
9
|
const prefix = "titaui-personal-info-base-info";
|
|
9
10
|
|
|
10
11
|
const BaseInfo: FC = () => {
|
|
11
|
-
const [userInfo, setUserInfo] = useState({
|
|
12
|
+
const [userInfo, setUserInfo] = useState({
|
|
13
|
+
name: "",
|
|
14
|
+
email: "",
|
|
15
|
+
mobile: "",
|
|
16
|
+
userId: "",
|
|
17
|
+
});
|
|
12
18
|
const [visible, setVisible] = useState(false);
|
|
13
19
|
|
|
14
20
|
const handleClickEdit = () => {
|
|
15
21
|
setVisible(true);
|
|
16
|
-
}
|
|
22
|
+
};
|
|
17
23
|
|
|
18
24
|
const handleCancelEdit = () => {
|
|
19
25
|
setVisible(false);
|
|
20
|
-
}
|
|
26
|
+
};
|
|
21
27
|
|
|
22
28
|
const handleSuccessEditBaseInfo = (userInfo) => {
|
|
23
|
-
setUserInfo({...userInfo});
|
|
24
|
-
}
|
|
29
|
+
setUserInfo({ ...userInfo });
|
|
30
|
+
};
|
|
25
31
|
|
|
26
32
|
useEffect(() => {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
getUserInfoFun().then((resp) => {
|
|
34
|
+
if (resp.Code === 1 && resp.Data) {
|
|
35
|
+
setUserInfo({ ...resp.Data, position: resp.Data.positionCode });
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}, []);
|
|
33
39
|
|
|
34
40
|
return (
|
|
35
41
|
<div className={prefix}>
|
|
36
42
|
<div className={`${prefix}__header`}>
|
|
37
|
-
<span className={`${prefix}__header-title`}>
|
|
43
|
+
<span className={`${prefix}__header-title`}>
|
|
44
|
+
{getLocale("Per_Ass_New_title_text_BasicIn")}
|
|
45
|
+
</span>
|
|
38
46
|
<RectBtn
|
|
39
47
|
type={"primary"}
|
|
40
|
-
text={getLocale(
|
|
48
|
+
text={getLocale("Mod_Editor")}
|
|
41
49
|
onClick={handleClickEdit}
|
|
42
50
|
/>
|
|
43
|
-
<EditModle
|
|
51
|
+
<EditModle
|
|
52
|
+
visible={visible}
|
|
53
|
+
onCancel={handleCancelEdit}
|
|
54
|
+
handleSuccessEditBaseInfo={handleSuccessEditBaseInfo}
|
|
55
|
+
info={userInfo}
|
|
56
|
+
/>
|
|
44
57
|
</div>
|
|
45
58
|
<div className={`${prefix}__form`}>
|
|
46
|
-
<div className={`${prefix}__form-title`}
|
|
47
|
-
|
|
59
|
+
<div className={`${prefix}__form-title`}>
|
|
60
|
+
{getLocale("Mod_UserName")}
|
|
61
|
+
</div>
|
|
62
|
+
<span className={`${prefix}__form-value`}>
|
|
63
|
+
<OpenUserName id={userInfo.userId} name={userInfo.name} />
|
|
64
|
+
</span>
|
|
48
65
|
</div>
|
|
49
66
|
<div className={`${prefix}__form`}>
|
|
50
67
|
<div className={`${prefix}__form-title`}>手机号码</div>
|
|
51
|
-
<span className={`${prefix}__form-value`}>
|
|
68
|
+
<span className={`${prefix}__form-value`}>
|
|
69
|
+
{userInfo.mobile ? userInfo.mobile : getLocale('Data_Notset')}
|
|
70
|
+
</span>
|
|
52
71
|
</div>
|
|
53
72
|
<div className={`${prefix}__form`}>
|
|
54
73
|
<div className={`${prefix}__form-title`}>电子邮箱</div>
|
|
55
|
-
<span className={`${prefix}__form-value`}>
|
|
74
|
+
<span className={`${prefix}__form-value`}>
|
|
75
|
+
{userInfo.email ? userInfo.email : getLocale('Data_Notset')}
|
|
76
|
+
</span>
|
|
56
77
|
</div>
|
|
57
78
|
</div>
|
|
58
79
|
);
|
|
@@ -1,172 +1,182 @@
|
|
|
1
|
-
import React, { useState, useRef, useEffect } from
|
|
2
|
-
import Form from
|
|
3
|
-
import { getUserInfoFun, saveUserInfo } from
|
|
4
|
-
import Toast from
|
|
5
|
-
import Dialog from
|
|
6
|
-
import
|
|
1
|
+
import React, { useState, useRef, useEffect } from "react";
|
|
2
|
+
import Form from "../../../../components/form";
|
|
3
|
+
import { getUserInfoFun, saveUserInfo } from "../../request-api";
|
|
4
|
+
import Toast from "../../../../components/toast";
|
|
5
|
+
import Dialog from "../../../../components/dialog";
|
|
6
|
+
import { getLocale } from "../../../../utils/getLocale";
|
|
7
|
+
import { i18nLimitCharacters } from "../../../../utils/i18n-front-translate"
|
|
8
|
+
import "./index.scss";
|
|
7
9
|
|
|
8
10
|
const { Fields } = Form;
|
|
9
11
|
|
|
10
|
-
const prefix = "titaui-edit-personal-info"
|
|
12
|
+
const prefix = "titaui-edit-personal-info";
|
|
11
13
|
|
|
12
14
|
const EditBaseInfo = (props) => {
|
|
13
|
-
|
|
15
|
+
const { visible, onCancel, handleSuccessEditBaseInfo, info } = props;
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
const modalRef = useRef<any>();
|
|
16
18
|
const formContainerRef = useRef<any>();
|
|
17
|
-
|
|
19
|
+
const formRef = useRef<any>();
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
const [isDisable, setIsDisable] = useState(false);
|
|
22
|
+
const [isEdit, setIsEdit] = useState(false);
|
|
23
|
+
const [userInfo, setUserInfo] = useState({ name: "", email: "", mobile: "" });
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if(value.length > 50 || value.length === 0) {
|
|
25
|
+
const handleNameChange = (value) => {
|
|
26
|
+
setUserInfo({
|
|
27
|
+
...userInfo,
|
|
28
|
+
name: value || "",
|
|
29
|
+
});
|
|
30
|
+
if (value.length > 50 || value.length === 0) {
|
|
29
31
|
setIsDisable(true);
|
|
30
32
|
} else {
|
|
31
33
|
setIsDisable(false);
|
|
32
34
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
setIsEdit(true);
|
|
36
|
+
};
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if(value.length !== 11
|
|
38
|
+
const handlePhoneChange = (value) => {
|
|
39
|
+
setUserInfo({
|
|
40
|
+
...userInfo,
|
|
41
|
+
mobile: value || "",
|
|
42
|
+
});
|
|
43
|
+
if (value.length !== 11) {
|
|
42
44
|
setIsDisable(true);
|
|
43
|
-
}else {
|
|
45
|
+
} else {
|
|
44
46
|
setIsDisable(false);
|
|
45
47
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
setIsEdit(true);
|
|
49
|
+
};
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
const handleEmailChange = (value) => {
|
|
52
|
+
setUserInfo({
|
|
53
|
+
...userInfo,
|
|
54
|
+
email: value || "",
|
|
55
|
+
});
|
|
56
|
+
setIsEdit(true);
|
|
57
|
+
};
|
|
56
58
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
const handleSaveUserInfo = () => {
|
|
60
|
+
if (!userInfo.mobile || !userInfo.name || userInfo.name.length > 50) {
|
|
59
61
|
setIsDisable(true);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
return;
|
|
63
|
+
} else {
|
|
64
|
+
saveUserInfo({ data: userInfo }).then((resp) => {
|
|
65
|
+
if (resp.Code === 1) {
|
|
66
|
+
Toast.Success(getLocale('Per_Ma_form_Updatesuc'), { canClose: false });
|
|
65
67
|
handleSuccessEditBaseInfo(userInfo);
|
|
66
68
|
onCancel();
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
} else {
|
|
70
|
+
Toast.Error(resp.Message, { canClose: false });
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
};
|
|
73
75
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
getUserInfoFun().then((resp) => {
|
|
78
|
+
if (resp.Code === 1 && resp.Data) {
|
|
79
|
+
setUserInfo({ ...resp.Data, position: resp.Data.positionCode });
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}, []);
|
|
81
83
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
onCancel();
|
|
94
|
-
setUserInfo({
|
|
84
|
+
return (
|
|
85
|
+
<Dialog
|
|
86
|
+
visible={visible}
|
|
87
|
+
ref={modalRef}
|
|
88
|
+
width={480}
|
|
89
|
+
mask
|
|
90
|
+
centered
|
|
91
|
+
title={"基本信息设置"}
|
|
92
|
+
noHeadLine
|
|
93
|
+
maskClosable={false}
|
|
94
|
+
onClose={() => {
|
|
95
|
+
onCancel();
|
|
96
|
+
setUserInfo({
|
|
97
|
+
name: info.name,
|
|
98
|
+
mobile: info.mobile,
|
|
99
|
+
email: info.email,
|
|
100
|
+
});
|
|
95
101
|
}}
|
|
96
|
-
|
|
102
|
+
onCancel={() => {
|
|
97
103
|
onCancel();
|
|
98
|
-
setUserInfo({
|
|
104
|
+
setUserInfo({
|
|
105
|
+
name: info.name,
|
|
106
|
+
mobile: info.mobile,
|
|
107
|
+
email: info.email,
|
|
108
|
+
});
|
|
99
109
|
}}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
110
|
+
okText={getLocale('Mod_Determiness')}
|
|
111
|
+
noFooterLine
|
|
112
|
+
onOk={handleSaveUserInfo}
|
|
113
|
+
disabled={isDisable}
|
|
114
|
+
>
|
|
105
115
|
<div className={`${prefix}__form`} ref={formContainerRef}>
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
116
|
+
<Form ref={formRef} getFormContainer={() => formContainerRef.current}>
|
|
117
|
+
<Fields.Input
|
|
118
|
+
name={"name"}
|
|
119
|
+
label={getLocale('Mod_UserName')}
|
|
120
|
+
placeholder={getLocale('Perf_Indica_Pop_text_Name')}
|
|
121
|
+
type="text"
|
|
122
|
+
require
|
|
123
|
+
layout="row"
|
|
124
|
+
verifies={[
|
|
125
|
+
{
|
|
126
|
+
tip: getLocale('OKR_MyO_Ew_Namecant'),
|
|
127
|
+
test: /^[\s\S]+$/,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
tip: "姓名只能为中文,英文字母和数字及下划线的组合",
|
|
131
|
+
test: /^((?!(\uff08|\uff09)).)*$/g,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
tip: i18nLimitCharacters(50),
|
|
135
|
+
test: /^[\s\S]{0,50}$/,
|
|
136
|
+
},
|
|
137
|
+
]}
|
|
138
|
+
value={userInfo.name}
|
|
139
|
+
onChange={handleNameChange}
|
|
140
|
+
/>
|
|
141
|
+
<Fields.Input
|
|
142
|
+
name="phone"
|
|
143
|
+
type="text"
|
|
144
|
+
label={"手机号码"}
|
|
145
|
+
placeholder={getLocale('Pro_page_Ext_Tab_PhoneNumber')}
|
|
146
|
+
require
|
|
147
|
+
layout="row"
|
|
148
|
+
value={userInfo.mobile}
|
|
149
|
+
verifies={[
|
|
150
|
+
{
|
|
151
|
+
tip: "手机号不能为空",
|
|
152
|
+
test: /^[\s\S]+$/,
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
tip: "格式错误,海外手机格式如:(+852)52345678",
|
|
156
|
+
test: /^1[3456789]\d{9}$/,
|
|
157
|
+
},
|
|
158
|
+
]}
|
|
159
|
+
onChange={handlePhoneChange}
|
|
160
|
+
/>
|
|
161
|
+
<Fields.Input
|
|
162
|
+
name="email"
|
|
163
|
+
type="text"
|
|
164
|
+
label={getLocale('OKR_MyO_Ew_Mail')}
|
|
165
|
+
value={userInfo.email}
|
|
166
|
+
layout="row"
|
|
167
|
+
placeholder={getLocale('Pro_page_Ext_Tab_Inpuyouremail')}
|
|
168
|
+
verifies={[
|
|
169
|
+
{
|
|
170
|
+
tip: getLocale('OKR_MyO_Ew_Emailfor'),
|
|
171
|
+
test: /^([a-zA-Z0-9_-]|\.)+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/,
|
|
172
|
+
},
|
|
173
|
+
]}
|
|
174
|
+
onChange={handleEmailChange}
|
|
175
|
+
/>
|
|
176
|
+
</Form>
|
|
177
|
+
</div>
|
|
178
|
+
</Dialog>
|
|
179
|
+
);
|
|
170
180
|
};
|
|
171
181
|
|
|
172
182
|
export default EditBaseInfo;
|