You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NewEduCoderBuild/p__User__ResetPassword__ind...

416 lines
14 KiB

"use strict";
(self["webpackChunk"] = self["webpackChunk"] || []).push([[27182],{
/***/ 38921:
/*!************************************************************!*\
!*** ./src/pages/User/ResetPassword/index.tsx + 1 modules ***!
\************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"default": function() { return /* binding */ ResetPassword; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(26801);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(10574);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(39343);
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(11006);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/_antd@5.7.1@antd/es/form/index.js + 17 modules
var es_form = __webpack_require__(58112);
// EXTERNAL MODULE: ./node_modules/_antd@5.7.1@antd/es/input/index.js + 5 modules
var input = __webpack_require__(56613);
// EXTERNAL MODULE: ./node_modules/_antd@5.7.1@antd/es/button/index.js
var es_button = __webpack_require__(5436);
// EXTERNAL MODULE: ./src/components/User/RegisterPanel/unlock.tsx + 1 modules
var unlock = __webpack_require__(80440);
// EXTERNAL MODULE: ./src/utils/util.tsx
var util = __webpack_require__(27291);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts
var _umi_production_exports = __webpack_require__(51649);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/components/User/ResetPasswordPanel/index.tsx
var inputStyle = {
height: 40
};
var loginRegex = /(\b[\w\.-]+@[\w\.-]+\.\w{2,4}\b)|([1][3,4,5,6,7,8,9][0-9]{9})/i;
var initialState = {
timer: 0,
verifyCodeMessage: '',
verifyNameMessage: ''
};
var Types = /*#__PURE__*/function (Types) {
Types[Types["setTimer"] = 0] = "setTimer";
Types[Types["setVerifyCodeMessage"] = 1] = "setVerifyCodeMessage";
Types[Types["setVerifyNameMessage"] = 2] = "setVerifyNameMessage";
return Types;
}(Types || {});
function reducer(state, action) {
switch (action.type) {
case Types.setTimer:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
timer: action.payload
});
case Types.setVerifyCodeMessage:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
verifyCodeMessage: action.payload
});
case Types.setVerifyNameMessage:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
verifyNameMessage: action.payload
});
default:
throw new Error();
}
}
/* harmony default export */ var ResetPasswordPanel = (function (_ref) {
var validateName = _ref.validateName,
getCode = _ref.getCode,
callback = _ref.callback,
_ref$style = _ref.style,
style = _ref$style === void 0 ? {} : _ref$style;
var location = (0,_umi_production_exports.useLocation)();
var _Form$useForm = es_form/* default */.Z.useForm(),
_Form$useForm2 = slicedToArray_default()(_Form$useForm, 1),
form = _Form$useForm2[0];
var _useReducer = (0,_react_17_0_2_react.useReducer)(reducer, initialState),
_useReducer2 = slicedToArray_default()(_useReducer, 2),
state = _useReducer2[0],
dispatch = _useReducer2[1];
var verifyCodeMessage = state.verifyCodeMessage,
verifyNameMessage = state.verifyNameMessage,
timer = state.timer;
var _useState = (0,_react_17_0_2_react.useState)('/rucaptcha'),
_useState2 = slicedToArray_default()(_useState, 2),
ImgSrc = _useState2[0],
setImgsrc = _useState2[1];
function onFinish(_x) {
return _onFinish.apply(this, arguments);
}
function _onFinish() {
_onFinish = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(values) {
var login, new_password, code, new_password_confirmation, _yield$callback, message, status, _location$query, from;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
login = values.login, new_password = values.new_password, code = values.code, new_password_confirmation = values.new_password_confirmation;
_context.next = 3;
return callback({
login: login,
new_password_confirmation: new_password_confirmation,
new_password: new_password,
code: code
});
case 3:
_yield$callback = _context.sent;
message = _yield$callback.message;
status = _yield$callback.status;
if (status > 0) {
from = (_location$query = location.query) === null || _location$query === void 0 ? void 0 : _location$query.from;
if (from && from.indexOf('login') < 0) {
_umi_production_exports.history.replace(from);
} else {
_umi_production_exports.history.replace('/');
}
} else {
dispatch({
type: Types.setVerifyCodeMessage,
payload: message
});
}
case 7:
case "end":
return _context.stop();
}
}, _callee);
}));
return _onFinish.apply(this, arguments);
}
function onResetVerify() {
form.setFieldsValue({
verify: false
});
dispatch({
type: Types.setVerifyNameMessage,
payload: ''
});
}
function onValidateName() {
return _onValidateName.apply(this, arguments);
}
function _onValidateName() {
_onValidateName = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
var login, _yield$validateName, status, message, isOk;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
login = form.getFieldValue('login');
if (!loginRegex.test(login)) {
_context2.next = 10;
break;
}
_context2.next = 4;
return validateName({
login: login,
type: 2
});
case 4:
_yield$validateName = _context2.sent;
status = _yield$validateName.status;
message = _yield$validateName.message;
isOk = status > 0;
if (!isOk) {
dispatch({
type: Types.setVerifyNameMessage,
payload: message
});
}
return _context2.abrupt("return", isOk);
case 10:
return _context2.abrupt("return", false);
case 11:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return _onValidateName.apply(this, arguments);
}
function onGetCode() {
var verify = form.getFieldValue('verify');
var login = form.getFieldValue('login');
if (!verify) {
form.validateFields(['verify']);
} else {
dispatch({
type: Types.setVerifyCodeMessage,
payload: ''
});
var _getCode = getCode({
login: login,
type: 2,
smscode: (0,util/* setmiyah */.M)(login)
}),
status = _getCode.status,
message = _getCode.message;
if (status < 0) {
dispatch({
type: Types.setVerifyCodeMessage,
payload: message
});
}
dispatch({
type: Types.setTimer,
payload: 60
});
}
}
function validatePassword(_, value) {
var len = value.length;
if (len >= 8 && len <= 16) {
return Promise.resolve();
} else {
return Promise.reject('密码的长度在8到16位之间');
}
}
(0,_react_17_0_2_react.useEffect)(function () {
if (timer > 0) {
setTimeout(function () {
dispatch({
type: Types.setTimer,
payload: timer - 1
});
}, 1000);
}
}, [timer]);
return /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, {
layout: "vertical",
form: form,
style: style,
initialValues: {
autologin: true,
protool: true
},
onFinish: onFinish,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: "login",
extra: verifyNameMessage ? /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "error",
children: verifyNameMessage
}) : null,
rules: [{
required: true,
message: '请输入有效的手机号/邮箱'
}, {
pattern: loginRegex,
message: '手机号或者邮箱格式有误'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
style: inputStyle,
size: "large",
placeholder: "\u8BF7\u8F93\u5165\u6709\u6548\u7684\u624B\u673A\u53F7/\u90AE\u7BB1\u53F7",
onChange: onResetVerify
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: "verify",
rules: [{
validator: function validator(_, value) {
return value ? Promise.resolve() : Promise.reject('请拖动滑块验证');
}
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(unlock/* default */.Z, {
onValidate: onValidateName
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
extra: verifyCodeMessage ? /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "error",
children: verifyCodeMessage
}) : null,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: "flex-container",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: "code",
noStyle: true,
rules: [{
required: true,
message: '请输入验证码'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
style: {
width: 'calc(100% - 100px)',
height: 40,
marginRight: 6
},
placeholder: "\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801",
size: "large"
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_button/* default */.ZP, {
size: "large",
type: "primary",
style: inputStyle,
onClick: onGetCode,
disabled: timer > 0,
children: [' ', timer === 0 ? '获取验证码' : "\u91CD\u65B0\u53D1\u9001".concat(timer, "s")]
})]
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: "new_password",
rules: [{
required: true,
message: '请输入密码'
}, {
validator: validatePassword
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z.Password, {
style: inputStyle,
size: "large",
placeholder: "\u8F93\u51658\uFF5E16\u4F4D\u5BC6\u7801\uFF0C\u533A\u5206\u5927\u5C0F\u5199",
visibilityToggle: false
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: "new_password_confirmation",
rules: [{
required: true,
message: '请再次输入新密码'
}, function (_ref2) {
var getFieldValue = _ref2.getFieldValue;
return {
validator: function validator(_, value) {
if (!value || getFieldValue('new_password') === value) {
return Promise.resolve();
}
return Promise.reject('两次密码不一致');
}
};
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z.Password, {
style: inputStyle,
size: "large",
placeholder: "\u518D\u6B21\u8F93\u5165\u65B0\u5BC6\u7801",
visibilityToggle: false
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_button/* default */.ZP, {
size: "large",
type: "primary",
htmlType: "submit",
block: true,
style: inputStyle,
children: [' ', "\u5B8C\u6210", ' ']
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(_umi_production_exports.Link, {
to: "/user/login",
children: "\u8FD4\u56DE\u767B\u5F55"
})
})]
});
});
// EXTERNAL MODULE: ./src/pages/User/Register/service.ts
var service = __webpack_require__(11933);
;// CONCATENATED MODULE: ./src/pages/User/ResetPassword/index.tsx
/* harmony default export */ var ResetPassword = (function () {
var panelProps = {
getCode: service/* getValidateCode */.o1,
callback: function () {
var _callback = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(values) {
var response;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return (0,service/* resetPassword */.c0)(values);
case 2:
response = _context.sent;
return _context.abrupt("return", response);
case 4:
case "end":
return _context.stop();
}
}, _callee);
}));
function callback(_x) {
return _callback.apply(this, arguments);
}
return callback;
}(),
validateName: service/* validateName */.Ol
};
return /*#__PURE__*/(0,jsx_runtime.jsx)(ResetPasswordPanel, objectSpread2_default()({}, panelProps));
});
/***/ })
}]);