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...

676 lines
24 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"use strict";
(self["webpackChunk"] = self["webpackChunk"] || []).push([[27182],{
/***/ 45562:
/*!******************************************************************!*\
!*** ./src/components/User/RegisterPanel/unlock.tsx + 1 modules ***!
\******************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ unlock; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(7557);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(41498);
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(79800);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(82242);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
;// CONCATENATED MODULE: ./src/components/User/RegisterPanel/unlock.less
// extracted by mini-css-extract-plugin
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/CloseOutlined.js + 1 modules
var CloseOutlined = __webpack_require__(53043);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/CheckOutlined.js + 1 modules
var CheckOutlined = __webpack_require__(9516);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/DoubleRightOutlined.js + 1 modules
var DoubleRightOutlined = __webpack_require__(67235);
// EXTERNAL MODULE: ./src/utils/util.tsx
var util = __webpack_require__(27876);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/components/User/RegisterPanel/unlock.tsx
var initialState = {
moveX: 0,
verify: 0
};
var Types = /*#__PURE__*/function (Types) {
Types[Types["SET_MOVEX"] = 0] = "SET_MOVEX";
Types[Types["VERIFY"] = 1] = "VERIFY";
return Types;
}(Types || {});
function reducer(state, action) {
switch (action.type) {
case Types.SET_MOVEX:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
moveX: action.payload
});
case Types.VERIFY:
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
default:
throw new Error();
}
}
//antd 自定义表单项
/* harmony default export */ var unlock = (function (_ref) {
var value = _ref.value,
onChange = _ref.onChange,
onValidate = _ref.onValidate;
var _useReducer = (0,_react_17_0_2_react.useReducer)(reducer, initialState),
_useReducer2 = slicedToArray_default()(_useReducer, 2),
state = _useReducer2[0],
dispatch = _useReducer2[1];
var moveX = state.moveX,
verify = state.verify;
var handlerEl = (0,_react_17_0_2_react.useRef)();
var wrapperEL = (0,_react_17_0_2_react.useRef)();
var bgEl = (0,_react_17_0_2_react.useRef)();
var startDrag = (0,_react_17_0_2_react.useRef)();
var wrapperRect = (0,_react_17_0_2_react.useMemo)(function () {
if (wrapperEL.current) {
return wrapperEL.current.getBoundingClientRect();
}
}, [wrapperEL.current]);
(0,_react_17_0_2_react.useEffect)(function () {
if (wrapperRect) {
var onMove = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee(e) {
var pageX;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
if (!startDrag.current) {
_context.next = 15;
break;
}
pageX = e.pageX - left;
if (isMobile) {
pageX = e.changedTouches[0].pageX - left;
}
if (pageX < 0) {
pageX = 0;
}
if (!(pageX >= distance)) {
_context.next = 14;
break;
}
startDrag.current = false;
pageX = distance;
_context.next = 9;
return onValidate();
case 9:
flag = _context.sent;
dispatch({
type: Types.VERIFY,
payload: {
moveX: pageX,
verify: flag
}
});
onChange(flag);
_context.next = 15;
break;
case 14:
dispatch({
type: Types.SET_MOVEX,
payload: pageX
});
case 15:
case "end":
return _context.stop();
}
}, _callee);
}));
return function onMove(_x) {
return _ref2.apply(this, arguments);
};
}();
var onMouseUp = function onMouseUp() {
startDrag.current = false;
if (flag === 0) {
handlerEl.current.style.transition = 'left .5s ease';
bgEl.current.style.transition = 'width .5s ease';
dispatch({
type: Types.VERIFY,
payload: {
moveX: 0
}
});
}
};
var flag = 0;
var width = wrapperRect.width,
left = wrapperRect.left;
var distance = width - 48;
var isMobile = !(0,util/* isPc */.b9)();
if (!isMobile) {
window.addEventListener('mousemove', onMove);
window.addEventListener('mouseup', onMouseUp);
} else {
window.addEventListener('touchmove', onMove);
window.addEventListener('touchend', onMouseUp);
}
return function () {
if (!isMobile) {
window.removeEventListener('mousemove', onMove);
window.removeEventListener('mouseup', onMouseUp);
} else {
window.removeEventListener('touchmove', onMove);
window.removeEventListener('touchend', onMouseUp);
}
};
}
}, [wrapperRect, util/* isPc */.b9]);
(0,_react_17_0_2_react.useEffect)(function () {
dispatch({
type: Types.VERIFY,
payload: {
verify: value,
moveX: value ? (wrapperRect === null || wrapperRect === void 0 ? void 0 : wrapperRect.width) - 48 : 0
}
});
}, [value]);
function onStartDrag() {
if (!verify) {
startDrag.current = true;
handlerEl.current.style.transition = '';
bgEl.current.style.transition = '';
}
}
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
ref: wrapperEL,
className: "unlock-wrapper",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: bgEl,
className: verify === 1 ? 'unlock-error-bg' : 'unlock-bg',
style: {
width: moveX
}
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: "unlock-text",
children: verify ? verify === 1 ? '验证失败' : '验证通过' : '拖动滑块至右侧验证'
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
ref: handlerEl,
onTouchStart: onStartDrag,
onMouseDown: onStartDrag,
style: {
left: moveX
},
className: "unlock-handler",
children: verify ? verify === 1 ? /*#__PURE__*/(0,jsx_runtime.jsx)(CloseOutlined/* default */.Z, {}) : /*#__PURE__*/(0,jsx_runtime.jsx)(CheckOutlined/* default */.Z, {}) : /*#__PURE__*/(0,jsx_runtime.jsx)(DoubleRightOutlined/* default */.Z, {})
})]
});
});
/***/ }),
/***/ 26057:
/*!********************************************!*\
!*** ./src/pages/User/Register/service.ts ***!
\********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Ol: function() { return /* binding */ validateName; },
/* harmony export */ c0: function() { return /* binding */ resetPassword; },
/* harmony export */ o1: function() { return /* binding */ getValidateCode; },
/* harmony export */ z2: function() { return /* binding */ register; }
/* harmony export */ });
/* unused harmony export wechatRegister */
/* harmony import */ var _utils_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils/fetch */ 49105);
//type 1 表示用户注册 2 忘记密码 3 绑定手机/邮箱
function validateName(params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .get */ .U2)('accounts/valid_email_and_phone.json', params);
}
//type 1用户注册注册 2忘记密码 3绑定手机 4: 绑定邮箱5: 验收手机号有效
function getValidateCode(params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .get */ .U2)('accounts/get_verification_code.json', params);
}
function register(params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)('accounts/register.json', params);
}
function wechatRegister(params) {
return post('weapps/register.json', params);
}
function resetPassword(params) {
return (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_0__/* .post */ .v_)('accounts/reset_password.json', params);
}
/***/ }),
/***/ 31547:
/*!************************************************************!*\
!*** ./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.6@@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(82242);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(7557);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(41498);
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.6@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(79800);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/form/index.js + 19 modules
var es_form = __webpack_require__(78241);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 3 modules
var input = __webpack_require__(92832);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
var es_button = __webpack_require__(3113);
// EXTERNAL MODULE: ./src/components/User/RegisterPanel/unlock.tsx + 1 modules
var unlock = __webpack_require__(45562);
// EXTERNAL MODULE: ./src/utils/util.tsx
var util = __webpack_require__(27876);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts
var _umi_production_exports = __webpack_require__(80608);
// 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__(26057);
;// 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));
});
/***/ })
}]);