Преглед изворни кода

表单保存状态下拉修复

pm пре 3 месеци
родитељ
комит
ee31f42698
1 измењених фајлова са 41 додато и 2 уклоњено
  1. 41 2
      src/components/FormDesigner.tsx

+ 41 - 2
src/components/FormDesigner.tsx

@@ -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>