"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)); }); /***/ }) }]);