+
+
+
+ <>
+
+ >
+
+
+ <>
+
+ methods.update({
+ name: e.target.value,
+ })
+ }
+ value={name}
+ />
+ >
+
+
+ <>
+
+ methods.update({
+ nickname: e.target.value,
+ })
+ }
+ value={nickname}
+ />
+ >
+
+
+
+ {
+ methods.update({ gender: value });
+ }}
+ />
+
+
+
+ <>
+ {
+ if (
+ dayjs(current).valueOf() >
+ dayjs().valueOf()
+ ) {
+ return true;
+ }
+ return false;
+ }}
+ onChange={(value) => {
+ if (value) {
+ methods.update({
+ birth: dayjs(value).valueOf(),
+ });
+ }
+ }}
+ />
+ >
+
+
+
+ {/* */}
+
+
+
+
+
+
+
+
+
+
+ {mobile || '未设置'}
+
+
+
+
+
+ {'********'}
+
+
+
+ {process.env.NODE_ENV === 'development' && (
+
+ <>
+ {wechatUser ? (
+
+
+ {wechatUser.nickname}
+
+
+
+ ) : (
+
+ )}
+ >
+
+ )}
+ {isRoot && (
+
+
+
+ )}
+
+
+ {
+ setOpen(false);
+ }}
+ >
+ {
+ setOpen(false);
+ }}
+ oakPath="$user/info-mobile/login"
+ oakAutoUnmount={true}
+ />
+
+
+ {
+ setOpen2(false);
+ }}
+ >
+
+
+ setOpen3(false)}>
+ {t('cancel')}
+ ,
+ ,
+ ]}
+ maskClosable={false}
+ onCancel={() => {
+ setOpen3(false);
+ }}
+ >
+
+
+ 请输入
+ {mobile &&
+ mobile.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')}
+ 收到的验证码
+
+
+ {
+ setCaptcha(e.target.value);
+ }}
+ className={Style['loginbox-input']}
+ suffix={
+
+ }
+ />
+
+
+
+
+ );
+}
diff --git a/src/components/user/info/web.tsx b/src/components/user/info/web.tsx
new file mode 100644
index 000000000..b3708e82f
--- /dev/null
+++ b/src/components/user/info/web.tsx
@@ -0,0 +1,256 @@
+import React, { RefObject } from 'react';
+import {
+ List,
+ DatePicker,
+ Avatar,
+ Popup,
+ Form,
+ Button,
+ Input,
+ Radio,
+ Space,
+} from 'antd-mobile';
+import type { DatePickerRef } from 'antd-mobile/es/components/date-picker';
+import dayjs from 'dayjs';
+import { WebComponentProps } from 'oak-frontend-base';
+import { EntityDict } from '../../../oak-app-domain';
+import OakAvatar from '../../../components/extraFile/avatar';
+import Style from './mobile.module.less';
+
+
+type DataProps = {
+ visible: boolean;
+ nickname: string;
+ name: string;
+ birth: string;
+ gender: string;
+ mobile: string;
+ avatarUrl: string;
+ attr: string;
+ genderOptions: Array<{ label: string; value: string }>;
+ attrs: Record