个人设置-头像
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Button, DatePicker, Form, Input, notification, Select } from 'antd';
|
||||
import { App, Button, DatePicker, Form, Input, Select } from 'antd';
|
||||
import TextArea from 'antd/lib/input/TextArea';
|
||||
import dayjs from 'dayjs';
|
||||
import { stringify } from 'qs';
|
||||
@@ -23,11 +23,12 @@ export const CompanyEditModal: React.FC<IProps> = (props) => {
|
||||
const [title, setTitle] = useState('');
|
||||
const [form] = Form.useForm();
|
||||
const [data, setData] = useState<any>(null);
|
||||
const { notification } = App.useApp();
|
||||
|
||||
// 请求成功回调
|
||||
const success = (res: any) => {
|
||||
if (res.err_code === 0) {
|
||||
notification.success({ message: '保存成功' });
|
||||
notification.success({ title: '保存成功' });
|
||||
props.onCallback?.();
|
||||
setOpen(false);
|
||||
form.resetFields(); // 提交成功重置表单
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Button, Form, Input, notification, Upload } from 'antd';
|
||||
import { App, Button, Form, Input, Upload } from 'antd';
|
||||
import type React from 'react';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { AdminServices } from '@/services/AdminServices';
|
||||
@@ -19,11 +19,12 @@ export const ProfileEditForm: React.FC<IProps> = (props) => {
|
||||
const userInfo = useUserStore().user;
|
||||
const [previewUrl, setPreviewUrl] = useState<string>();
|
||||
const avatarFileRef = useRef<File | null>(null);
|
||||
const { notification } = App.useApp();
|
||||
|
||||
// 保存回调
|
||||
const success = (res: any) => {
|
||||
if (res.err_code === 0) {
|
||||
notification.success({ message: '保存成功' });
|
||||
notification.success({ title: '保存成功' });
|
||||
props.onCallback?.();
|
||||
}
|
||||
};
|
||||
@@ -55,12 +56,6 @@ export const ProfileEditForm: React.FC<IProps> = (props) => {
|
||||
formData.append('avatar', avatarFileRef.current);
|
||||
}
|
||||
|
||||
//console.log('formData entries:');
|
||||
// formData.forEach((value, key) => {
|
||||
// console.log(key, value);
|
||||
// });
|
||||
//console.log('formData', formData);
|
||||
// 调用 useRequest
|
||||
editRequest(formData);
|
||||
} catch (error) {
|
||||
console.log('表单验证未通过', error);
|
||||
@@ -68,16 +63,25 @@ export const ProfileEditForm: React.FC<IProps> = (props) => {
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
const uri = `${userInfo.avatar}?v=${encodeURIComponent(userInfo.update_date)}`;
|
||||
console.log('uri', uri);
|
||||
const avatar = userInfo.avatar;
|
||||
|
||||
// 只在「没选择新头像」时,使用后端头像
|
||||
if (!avatarFileRef.current) {
|
||||
const uri = avatar ? `/api/${avatar}?v=${encodeURIComponent(userInfo.update_date)}` : '';
|
||||
|
||||
setPreviewUrl(uri);
|
||||
}
|
||||
|
||||
form.setFieldsValue({
|
||||
username: userInfo.username,
|
||||
mobile: userInfo.mobile,
|
||||
email: userInfo.email,
|
||||
nickname: userInfo.nickname,
|
||||
avatar: uri, // 默认头像
|
||||
//avatar: uri, // 默认头像
|
||||
});
|
||||
setPreviewUrl(userInfo.avatar);
|
||||
//setPreviewUrl(uri);
|
||||
|
||||
avatarFileRef.current = null;
|
||||
}, [userInfo]);
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Button, Form, Input, notification, Select } from 'antd';
|
||||
import { App, Button, Form, Input, Select } from 'antd';
|
||||
import TextArea from 'antd/lib/input/TextArea';
|
||||
import { stringify } from 'qs';
|
||||
import type React from 'react';
|
||||
@@ -22,11 +22,12 @@ export const AdminDepEditModal: React.FC<IProps> = (props) => {
|
||||
const [title, setTitle] = useState('');
|
||||
const [form] = Form.useForm();
|
||||
const [data, setData] = useState<any>(null);
|
||||
const { notification } = App.useApp();
|
||||
|
||||
// 请求成功回调
|
||||
const success = (res: any) => {
|
||||
if (res.err_code === 0) {
|
||||
notification.success({ message: '保存成功' });
|
||||
notification.success({ title: '保存成功' });
|
||||
props.onCallback?.();
|
||||
setOpen(false);
|
||||
form.resetFields(); // 提交成功重置表单
|
||||
|
||||
@@ -48,7 +48,7 @@ const DepListForm: React.FC = () => {
|
||||
const { request: deleteAdminDepartmentRequest } = useRequest(AdminDepartmentServices.del, {
|
||||
onSuccessCodeZero: (res) => {
|
||||
if (res.err_code == 0) {
|
||||
notification.success({ message: '删除成功' });
|
||||
notification.success({ title: '删除成功' });
|
||||
page(params.curr_page);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Button, Form, Input, notification, Select, Space, Tree } from 'antd';
|
||||
import { App, Button, Form, Input, Select, Space, Tree } from 'antd';
|
||||
import TextArea from 'antd/lib/input/TextArea';
|
||||
import { stringify } from 'qs';
|
||||
import type React from 'react';
|
||||
@@ -26,11 +26,12 @@ export const AdminGrpEditModal: React.FC<IProps> = (props) => {
|
||||
const [menuTree, setMenuTree] = useState<any[]>([]);
|
||||
const [checkedKeys, setCheckedKeys] = useState<React.Key[]>([]);
|
||||
const [expandedKeys, setExpandedKeys] = useState<React.Key[]>([]);
|
||||
const { notification } = App.useApp();
|
||||
|
||||
// 请求成功回调
|
||||
const success = (res: any) => {
|
||||
if (res.err_code === 0) {
|
||||
notification.success({ message: '保存成功' });
|
||||
notification.success({ title: '保存成功' });
|
||||
props.onCallback?.();
|
||||
setOpen(false);
|
||||
form.resetFields();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Button, DatePicker, Input, notification, Popconfirm, Select } from 'antd';
|
||||
import { App, Button, DatePicker, Input, Popconfirm, Select } from 'antd';
|
||||
import { stringify } from 'qs';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { FormItemPlugin, FormPlugin } from '@/components/FormPlugin';
|
||||
@@ -33,6 +33,7 @@ const GrpListForm: React.FC = () => {
|
||||
const [ajaxData, setAjaxData] = useState<IAjaxData>({ count: 0, data: [] });
|
||||
//const [showMoreSearch, setShowMoreSearch] = useState(false);
|
||||
const AdminGrpEditModalRef = useRef<IAdminGrpEditModalType>(null);
|
||||
const { notification } = App.useApp();
|
||||
|
||||
const { loading: listLoading, request: listRequest } = useRequest(AdminGroupServices.getAdminGroupList, {
|
||||
onSuccessCodeZero: (res) => {
|
||||
@@ -46,7 +47,7 @@ const GrpListForm: React.FC = () => {
|
||||
const { request: deleteAdminGroupRequest } = useRequest(AdminGroupServices.del, {
|
||||
onSuccessCodeZero: (res) => {
|
||||
if (res.err_code == 0) {
|
||||
notification.success({ message: '删除成功' });
|
||||
notification.success({ title: '删除成功' });
|
||||
page(params.curr_page);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Button, Form, Input, notification, Select } from 'antd';
|
||||
import { App, Button, Form, Input, Select } from 'antd';
|
||||
import { stringify } from 'qs';
|
||||
import type React from 'react';
|
||||
import { useImperativeHandle, useState } from 'react';
|
||||
@@ -26,6 +26,7 @@ export const AdminEditModal: React.FC<IProps> = (props) => {
|
||||
const [data, setData] = useState<any>(null);
|
||||
const [department, setDepartment] = useState<IOption[]>([]);
|
||||
const [group, setGroup] = useState<IOption[]>([]);
|
||||
const { notification } = App.useApp();
|
||||
|
||||
const { request: getAdminDepartmentAjaxListRequest } = useRequest(
|
||||
AdminDepartmentServices.getAdminDepartmentAjaxList,
|
||||
@@ -45,7 +46,7 @@ export const AdminEditModal: React.FC<IProps> = (props) => {
|
||||
// 请求成功回调
|
||||
const success = (res: any) => {
|
||||
if (res.err_code === 0) {
|
||||
notification.success({ message: '保存成功' });
|
||||
notification.success({ title: '保存成功' });
|
||||
props.onCallback?.();
|
||||
setOpen(false);
|
||||
form.resetFields(); // 提交成功重置表单
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Button, DatePicker, Input, notification, Popconfirm, Select } from 'antd';
|
||||
import { App, Button, DatePicker, Input, Popconfirm, Select } from 'antd';
|
||||
import { stringify } from 'qs';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { FormItemPlugin, FormPlugin } from '@/components/FormPlugin';
|
||||
@@ -39,6 +39,7 @@ const AdminListForm: React.FC = () => {
|
||||
const [ajaxData, setAjaxData] = useState<IAjaxData>({ count: 0, data: [] });
|
||||
const [showMoreSearch, setShowMoreSearch] = useState(false);
|
||||
const AdminEditModalRef = useRef<IAdminEditModalType>(null);
|
||||
const { notification } = App.useApp();
|
||||
|
||||
const { loading: listLoading, request: listRequest } = useRequest(AdminServices.getAdminList, {
|
||||
onSuccessCodeZero: (res) => {
|
||||
@@ -52,7 +53,7 @@ const AdminListForm: React.FC = () => {
|
||||
const { request: deleteAdminRequest } = useRequest(AdminServices.del, {
|
||||
onSuccessCodeZero: (res) => {
|
||||
if (res.err_code == 0) {
|
||||
notification.success({ message: '删除成功' });
|
||||
notification.success({ title: '删除成功' });
|
||||
page(params.curr_page);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Button, Form, Input, notification, Select } from 'antd';
|
||||
import { App, Button, Form, Input, Select } from 'antd';
|
||||
import TextArea from 'antd/lib/input/TextArea';
|
||||
import { stringify } from 'qs';
|
||||
import type React from 'react';
|
||||
@@ -22,11 +22,12 @@ export const UserEditModal: React.FC<IProps> = (props) => {
|
||||
const [title, setTitle] = useState('');
|
||||
const [form] = Form.useForm();
|
||||
const [data, setData] = useState<any>(null);
|
||||
const { notification } = App.useApp();
|
||||
|
||||
// 请求成功回调
|
||||
const success = (res: any) => {
|
||||
if (res.err_code === 0) {
|
||||
notification.success({ message: '保存成功' });
|
||||
notification.success({ title: '保存成功' });
|
||||
props.onCallback?.();
|
||||
setOpen(false);
|
||||
form.resetFields(); // 提交成功重置表单
|
||||
|
||||
@@ -19,11 +19,21 @@ import type { IAjaxDataBase } from './type';
|
||||
|
||||
const ajax = async (method: string, url: string, data: any, config?: any) => {
|
||||
try {
|
||||
const res: IAjaxDataBase = await fetch(pathAddApiString(url), {
|
||||
headers: {
|
||||
const headers: Record<string, string> = {
|
||||
'X-Requested-With': 'XMLHttpRequest',
|
||||
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
||||
},
|
||||
...config?.headers,
|
||||
};
|
||||
|
||||
// 判断是否是 FormData
|
||||
if (!(data instanceof FormData)) {
|
||||
headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
|
||||
}
|
||||
const res: IAjaxDataBase = await fetch(pathAddApiString(url), {
|
||||
// headers: {
|
||||
// 'X-Requested-With': 'XMLHttpRequest',
|
||||
// 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
||||
// },
|
||||
headers,
|
||||
method: method,
|
||||
body: data,
|
||||
credentials: 'include',
|
||||
|
||||
Reference in New Issue
Block a user