@@ -30,7 +30,7 @@ function CustomTag({
3030 return (
3131 < div
3232 key = { tag . id }
33- className = "flex items-center justify-between px-4 py-2 border border-gray-100 rounded-md hover:bg-gray-50"
33+ className = "flex items-center justify-between px-4 py-2 border-card hover:bg-gray-50"
3434 >
3535 { editingTag ?. id === tag . id ? (
3636 < div className = "flex gap-2 flex-1" >
@@ -92,17 +92,6 @@ function CustomTag({
9292 ) ;
9393}
9494
95- export const mockPreparedTags = [
96- { id : "1" , name : "重要" } ,
97- { id : "2" , name : "待处理" } ,
98- { id : "3" , name : "已完成" } ,
99- { id : "4" , name : "审核中" } ,
100- { id : "5" , name : "高优先级" } ,
101- { id : "6" , name : "低优先级" } ,
102- { id : "7" , name : "客户A" } ,
103- { id : "8" , name : "客户B" } ,
104- ] ;
105-
10695const TagManager : React . FC = ( {
10796 onFetch,
10897 onCreate,
@@ -112,7 +101,7 @@ const TagManager: React.FC = ({
112101 onFetch : ( ) => Promise < any > ;
113102 onCreate : ( tag : Pick < TagItem , "name" > ) => Promise < { ok : boolean } > ;
114103 onDelete : ( tagId : number ) => Promise < { ok : boolean } > ;
115- onUpdate : ( oldTagId : number , newTag : string ) => Promise < { ok : boolean } > ;
104+ onUpdate : ( tag : TagItem ) => Promise < { ok : boolean } > ;
116105} ) => {
117106 const [ showTagManager , setShowTagManager ] = useState ( false ) ;
118107 const { message } = App . useApp ( ) ;
@@ -121,9 +110,6 @@ const TagManager: React.FC = ({
121110 const [ editingTag , setEditingTag ] = useState < string | null > ( null ) ;
122111 const [ editingTagValue , setEditingTagValue ] = useState ( "" ) ;
123112
124- // 预置标签
125- const [ preparedTags , setPreparedTags ] = useState ( mockPreparedTags ) ;
126-
127113 // 获取标签列表
128114 const fetchTags = async ( ) => {
129115 if ( ! onFetch ) return ;
@@ -161,7 +147,7 @@ const TagManager: React.FC = ({
161147
162148 const updateTag = async ( oldTag : TagItem , newTag : string ) => {
163149 try {
164- await onUpdate ?.( oldTag . id , { ...oldTag , name : newTag } ) ;
150+ await onUpdate ?.( { ...oldTag , name : newTag } ) ;
165151 fetchTags ( ) ;
166152 message . success ( "标签更新成功" ) ;
167153 } catch ( error ) {
@@ -213,54 +199,47 @@ const TagManager: React.FC = ({
213199 title = "标签管理"
214200 width = { 500 }
215201 >
216- < div className = "space-y-4" >
202+ < div className = "space-y-4 flex-overflow " >
217203 { /* Add New Tag */ }
218- < div className = "space-y-2" >
219- < div className = "flex gap-2" >
220- < Input
221- placeholder = "输入标签名称..."
222- value = { newTag }
223- allowClear
224- onChange = { ( e ) => setNewTag ( e . target . value ) }
225- onKeyPress = { ( e ) => {
226- if ( e . key === "Enter" ) {
227- addTag ( e . target . value ) ;
228- }
229- } }
230- />
231- < Button
232- type = "primary"
233- onClick = { handleCreateNewTag }
234- disabled = { ! newTag . trim ( ) }
235- icon = { < PlusOutlined /> }
236- >
237- 添加
238- </ Button >
239- </ div >
240- </ div >
241-
242- < h2 className = "font-large font-bold w-full" > 预置标签</ h2 >
243- < div className = "grid grid-cols-2 gap-2" >
244- { preparedTags . length > 0 &&
245- preparedTags . map ( ( tag ) => < CustomTag key = { tag . id } tag = { tag } /> ) }
204+ < div className = "flex gap-2" >
205+ < Input
206+ placeholder = "输入标签名称..."
207+ value = { newTag }
208+ allowClear
209+ onChange = { ( e ) => setNewTag ( e . target . value ) }
210+ onKeyPress = { ( e ) => {
211+ if ( e . key === "Enter" ) {
212+ addTag ( e . target . value ) ;
213+ }
214+ } }
215+ />
216+ < Button
217+ type = "primary"
218+ onClick = { handleCreateNewTag }
219+ disabled = { ! newTag . trim ( ) }
220+ icon = { < PlusOutlined /> }
221+ >
222+ 添加
223+ </ Button >
246224 </ div >
247225
248- < h2 className = "font-large font-bold w-full" > 自定义标签</ h2 >
249- < div className = "grid grid-cols-2 gap-2 mt-4" >
250- { tags . map ( ( tag ) => (
251- < CustomTag
252- isEditable
253- key = { tag . id }
254- tag = { tag }
255- editingTag = { editingTag }
256- editingTagValue = { editingTagValue }
257- setEditingTag = { setEditingTag }
258- setEditingTagValue = { setEditingTagValue }
259- handleEditTag = { handleEditTag }
260- handleCancelEdit = { handleCancelEdit }
261- handleDeleteTag = { handleDeleteTag }
262- />
263- ) ) }
226+ < div className = "flex-overflow" >
227+ < div className = "overflow-auto grid grid-cols-2 gap-2" >
228+ { tags . map ( ( tag ) => (
229+ < CustomTag
230+ isEditable
231+ key = { tag . id }
232+ tag = { tag }
233+ editingTag = { editingTag }
234+ editingTagValue = { editingTagValue }
235+ setEditingTag = { setEditingTag }
236+ setEditingTagValue = { setEditingTagValue }
237+ handleEditTag = { handleEditTag }
238+ handleCancelEdit = { handleCancelEdit }
239+ handleDeleteTag = { handleDeleteTag }
240+ />
241+ ) ) }
242+ </ div >
264243 </ div >
265244 </ div >
266245 </ Drawer >
0 commit comments