|
|
@@ -65,6 +65,8 @@ import {
|
|
|
} from 'lucide-react';
|
|
|
import { toast } from 'sonner';
|
|
|
import * as FormApi from '../api/bpm/form';
|
|
|
+import { DICT_TYPE, getIntDictOptions, setDictOptions, DictDataType } from '../utils/dict';
|
|
|
+import { dictDataApi } from '../api/DictData';
|
|
|
|
|
|
const { TextArea } = Input;
|
|
|
const { Panel } = Collapse;
|
|
|
@@ -1265,6 +1267,40 @@ export default function FormDesigner() {
|
|
|
|
|
|
const [formConfig, setFormConfig] = useState<FormConfig>(defaultFormConfig);
|
|
|
const [formStatus, setFormStatus] = useState<number>(0); // 0-开启 1-关闭(与后端约定保持一致)
|
|
|
+ const [statusOptions, setStatusOptions] = useState(() => getIntDictOptions(DICT_TYPE.COMMON_STATUS));
|
|
|
+
|
|
|
+ // 加载 COMMON_STATUS 字典数据
|
|
|
+ const loadCommonStatusDict = async () => {
|
|
|
+ try {
|
|
|
+ const response = await dictDataApi.getDictDataPage({
|
|
|
+ pageNo: 1,
|
|
|
+ pageSize: -1,
|
|
|
+ dictType: DICT_TYPE.COMMON_STATUS,
|
|
|
+ });
|
|
|
+ const data = (response as any)?.data || response;
|
|
|
+ const dictList = data?.list || [];
|
|
|
+ if (Array.isArray(dictList) && dictList.length > 0) {
|
|
|
+ const dictOptions: DictDataType[] = dictList.map((item: any) => ({
|
|
|
+ dictType: item.dictType,
|
|
|
+ label: item.label,
|
|
|
+ value: item.value,
|
|
|
+ colorType: item.colorType || '',
|
|
|
+ cssClass: item.cssClass || '',
|
|
|
+ }));
|
|
|
+ setDictOptions(DICT_TYPE.COMMON_STATUS, dictOptions);
|
|
|
+ // 更新状态选项
|
|
|
+ setStatusOptions(getIntDictOptions(DICT_TYPE.COMMON_STATUS));
|
|
|
+ console.log('FormDesigner: 获取通用状态字典成功', dictOptions);
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('加载通用状态字典数据失败:', error);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 组件挂载时加载字典数据
|
|
|
+ useEffect(() => {
|
|
|
+ loadCommonStatusDict();
|
|
|
+ }, []);
|
|
|
|
|
|
const updateFormConfig = (updater: Partial<FormConfig> | ((prev: FormConfig) => FormConfig)) => {
|
|
|
setFormConfig(prev => {
|
|
|
@@ -3765,8 +3801,11 @@ export default function FormDesigner() {
|
|
|
size="small"
|
|
|
className="w-full"
|
|
|
>
|
|
|
- <Select.Option value="draft">草稿</Select.Option>
|
|
|
- <Select.Option value="published">已发布</Select.Option>
|
|
|
+ {statusOptions.map((option) => (
|
|
|
+ <Select.Option key={option.value} value={option.value}>
|
|
|
+ {option.label}
|
|
|
+ </Select.Option>
|
|
|
+ ))}
|
|
|
</Select>
|
|
|
</div>
|
|
|
<div>
|