From 1b0b16862c1941c5a4e6e8c538e1a27c55d4ab81 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期三, 04 二月 2026 13:04:06 +0800
Subject: [PATCH] #路径流程页

---
 rsf-admin/src/page/components/TaskPathTemplateMergeSelect.jsx |   95 ++++++++++++++++++++---------------------------
 1 files changed, 41 insertions(+), 54 deletions(-)

diff --git a/rsf-admin/src/page/components/TaskPathTemplateMergeSelect.jsx b/rsf-admin/src/page/components/TaskPathTemplateMergeSelect.jsx
index 05a05b5..c6609bc 100644
--- a/rsf-admin/src/page/components/TaskPathTemplateMergeSelect.jsx
+++ b/rsf-admin/src/page/components/TaskPathTemplateMergeSelect.jsx
@@ -1,76 +1,63 @@
+import EditIcon from '@mui/icons-material/Edit';
 import { useState, useEffect } from 'react';
 import {
-    useTranslate, useNotify, required
+    Button, useListContext, SelectInput,
+    required, SelectArrayInput,
+    useTranslate, useNotify,
+    SelectArrayInputClasses
 } from 'react-admin';
-import { useController } from 'react-hook-form';
 import request from '@/utils/request';
-import { Select, MenuItem, FormControl, InputLabel } from '@mui/material';
 
 const TaskPathTemplateMergeSelect = (props) => {
-    const { dictTypeCode, label, name, validate, ...params } = props;
+    const {
+        name,
+        multiple = false,
+        perPage = 100,  // 榛樿姣忛〉鏄剧ず100鏉℃暟鎹�
+        page = 1,       // 榛樿绗竴椤�
+        ...parmas
+    } = props;
     const translate = useTranslate();
     const notify = useNotify();
     const [list, setList] = useState([]);
-
-    // 浣跨敤 useController 涓� react-hook-form 闆嗘垚
-    const { field, fieldState } = useController({
-        name: name,
-        rules: validate ? {
-            validate: (value) => {
-                for (const rule of validate) {
-                    const result = rule(value);
-                    if (result) return result;
-                }
-                return true;
-            }
-        } : undefined
-    });
+    const [loading, setLoading] = useState(false);
 
     useEffect(() => {
         http();
-    }, [dictTypeCode]);
+    }, []);
 
     const http = async () => {
-        const res = await request.post('/taskPathTemplateMerge/createSelectList');
-        if (res?.data?.code === 200) {
-            setList(res.data.data.map((item) => {
-                return {
-                    id: item.id,
-                    name: item.name
-                };
-            }));
-        } else {
-            notify(res.data.msg);
+        setLoading(true);
+        try {
+            const res = await request.post('/taskPathTemplateMerge/createSelectList');
+
+            if (res?.data?.code === 200) {
+                setList(res.data.data.map((item) => {
+                    return {
+                        id: item.id,
+                        name: item.name
+                    }
+                }));
+            } else {
+                notify(res.data.msg);
+            }
+        } catch (error) {
+            notify('鍔犺浇鏁版嵁澶辫触', 'error');
+            console.error('鍔犺浇鏁版嵁澶辫触:', error);
+        } finally {
+            setLoading(false);
         }
     };
 
-    const handleChange = (event) => {
-        const selectedValue = event.target.value;
-        field.onChange(selectedValue);
-    };
-
-    const validValue = list.some(item => item.id === field.value) ? field.value : '';
+    const InputComponent = multiple ? SelectArrayInput : SelectInput;
 
     return (
-        <FormControl required fullWidth error={!!fieldState.error}>
-            <InputLabel id={`${name}-label`}>{label}</InputLabel>
-            <Select
-                labelId={`${name}-label`}
-                value={validValue}
-                variant="filled"
-                onChange={handleChange}
-                size='small'
-            >
-                {list.map((item) => (
-                    <MenuItem
-                        key={item.id}
-                        value={item.id}>
-                        {item.name}
-                    </MenuItem>
-                ))}
-            </Select>
-        </FormControl>
+        <InputComponent
+            source={name}
+            choices={list}
+            isLoading={loading}
+            {...parmas}
+        />
     );
 };
 
-export default TaskPathTemplateMergeSelect;    
\ No newline at end of file
+export default TaskPathTemplateMergeSelect;
\ No newline at end of file

--
Gitblit v1.9.1