feat(add): 新增多页面新增和编辑表单功能
- 添加编辑和新增收货地址页面,支持表单数据加载和提交 - 新增应用密钥凭证、新增应用操作动态、新增应用成员、新增应用版本页面配置 - 实现文章新增及编辑页面,包含图片上传及多种文章属性配置 - 增加注册会员页面,支持头像上传、手机号获取和邀请人关系处理 - 引入统一表单提交成功和失败处理,支持编辑模式数据回显 - 配置统一eslint和editorconfig规则,增强代码规范和编辑体验 - 新增.gitignore规则,屏蔽无关文件和目录,优化版本管理
This commit is contained in:
50
src/hooks/useConfig.ts
Normal file
50
src/hooks/useConfig.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import { useEffect, useState } from 'react';
|
||||
import Taro from '@tarojs/taro';
|
||||
import { configWebsiteField } from '@/api/cms/cmsWebsiteField';
|
||||
import { Config } from '@/api/cms/cmsWebsiteField/model';
|
||||
|
||||
/**
|
||||
* 自定义Hook用于获取和管理网站配置数据
|
||||
* @returns {Object} 包含配置数据和加载状态的对象
|
||||
*/
|
||||
export const useConfig = () => {
|
||||
const [config, setConfig] = useState<Config | null>(null);
|
||||
const [loading, setLoading] = useState<boolean>(true);
|
||||
const [error, setError] = useState<Error | null>(null);
|
||||
|
||||
useEffect(() => {
|
||||
const fetchConfig = async () => {
|
||||
try {
|
||||
setLoading(true);
|
||||
const data = await configWebsiteField();
|
||||
setConfig(data);
|
||||
Taro.setStorageSync('config', data);
|
||||
|
||||
// 设置主题
|
||||
if (data.theme && !Taro.getStorageSync('user_theme')) {
|
||||
Taro.setStorageSync('user_theme', data.theme);
|
||||
}
|
||||
} catch (err) {
|
||||
setError(err instanceof Error ? err : new Error('获取配置失败'));
|
||||
console.error('获取网站配置失败:', err);
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
fetchConfig();
|
||||
}, []);
|
||||
|
||||
return { config, loading, error, refetch: () => {
|
||||
setLoading(true);
|
||||
setError(null);
|
||||
configWebsiteField().then(data => {
|
||||
setConfig(data);
|
||||
Taro.setStorageSync('config', data);
|
||||
setLoading(false);
|
||||
}).catch(err => {
|
||||
setError(err instanceof Error ? err : new Error('获取配置失败'));
|
||||
setLoading(false);
|
||||
});
|
||||
}};
|
||||
};
|
||||
Reference in New Issue
Block a user