@@ -10,7 +10,7 @@ import { CSS } from '@dnd-kit/utilities';
1010import { Context } from '../index' ;
1111import { IColumnItemNew , IColumnTypes } from '@/typings' ;
1212import i18n from '@/i18n' ;
13- import { EditColumnOperationType , DatabaseTypeCode } from '@/constants' ;
13+ import { EditColumnOperationType , DatabaseTypeCode , NullableType } from '@/constants' ;
1414import CustomSelect from '@/components/CustomSelect' ;
1515import Iconfont from '@/components/Iconfont' ;
1616
@@ -129,6 +129,7 @@ const ColumnList = forwardRef((props: IProps, ref: ForwardedRef<IColumnListRef>)
129129 key : uuidv4 ( ) ,
130130 } ;
131131 } ) || [ ] ;
132+ setEditingConfig ( null ) ;
132133 setDataSource ( list ) ;
133134 }
134135 } , [ tableDetails ] ) ;
@@ -213,15 +214,18 @@ const ColumnList = forwardRef((props: IProps, ref: ForwardedRef<IColumnListRef>)
213214 title : i18n ( 'editTable.label.nullable' ) ,
214215 dataIndex : 'nullable' ,
215216 width : '100px' ,
216- render : ( nullable : number , record : IColumnItemNew ) => {
217- const editable = isEditing ( record ) ;
218- return editable ? (
219- < Form . Item name = "nullable" style = { { margin : 0 } } valuePropName = "checked" >
220- < Checkbox checked = { nullable === 1 } disabled = { ! editingConfig ?. supportNullable } />
221- </ Form . Item >
222- ) : (
217+ render : ( nullable : NullableType | null , record : IColumnItemNew ) => {
218+ console . log ( nullable ) ;
219+ // const editable = isEditing(record);
220+ return (
223221 < div >
224- < Checkbox checked = { nullable === 1 } />
222+ < Checkbox
223+ onChange = { ( ) => {
224+ handelNullable ( record ) ;
225+ } }
226+ checked = { nullable === NullableType . Null }
227+ disabled = { editingConfig ?. supportNullable === false || ! ! record . primaryKey }
228+ />
225229 </ div >
226230 ) ;
227231 } ,
@@ -233,11 +237,13 @@ const ColumnList = forwardRef((props: IProps, ref: ForwardedRef<IColumnListRef>)
233237 render : ( primaryKey : boolean , record : IColumnItemNew ) => {
234238 return (
235239 < div >
236- < div className = { styles . keyBox } onClick = { ( ) => { handelPrimaryKey ( record ) } } >
237- {
238- primaryKey &&
239- < Iconfont code = "" />
240- }
240+ < div
241+ className = { styles . keyBox }
242+ onClick = { ( ) => {
243+ handelPrimaryKey ( record ) ;
244+ } }
245+ >
246+ { primaryKey && < Iconfont code = "" /> }
241247 </ div >
242248 </ div >
243249 ) ;
@@ -280,7 +286,7 @@ const ColumnList = forwardRef((props: IProps, ref: ForwardedRef<IColumnListRef>)
280286 } ,
281287 ] ;
282288
283- const handelPrimaryKey = ( _data : IColumnItemNew ) => {
289+ const handelPrimaryKey = ( _data : IColumnItemNew ) => {
284290 const newData = dataSource . map ( ( item ) => {
285291 if ( item . key === _data ?. key ) {
286292 // 判断当前数据是新增的数据还是编辑后的数据
@@ -291,14 +297,35 @@ const ColumnList = forwardRef((props: IProps, ref: ForwardedRef<IColumnListRef>)
291297 const editingDataItem = {
292298 ...item ,
293299 primaryKey : ! item . primaryKey ,
300+ nullable : ! item . primaryKey ? NullableType . NotNull : item . nullable ,
294301 editStatus,
295302 } ;
296303 return editingDataItem ;
297304 }
298305 return item ;
299306 } ) ;
300307 setDataSource ( newData ) ;
301- }
308+ } ;
309+
310+ const handelNullable = ( _data : IColumnItemNew ) => {
311+ const newData = dataSource . map ( ( item ) => {
312+ if ( item . key === _data ?. key ) {
313+ // 判断当前数据是新增的数据还是编辑后的数据
314+ let editStatus = item . editStatus ;
315+ if ( editStatus !== EditColumnOperationType . Add ) {
316+ editStatus = EditColumnOperationType . Modify ;
317+ }
318+ const editingDataItem = {
319+ ...item ,
320+ nullable : ! item . nullable ? NullableType . Null : NullableType . NotNull ,
321+ editStatus,
322+ } ;
323+ return editingDataItem ;
324+ }
325+ return item ;
326+ } ) ;
327+ setDataSource ( newData ) ;
328+ } ;
302329
303330 const onDragEnd = ( { active, over } : DragEndEvent ) => {
304331 if ( active . id !== over ?. id ) {
@@ -315,7 +342,7 @@ const ColumnList = forwardRef((props: IProps, ref: ForwardedRef<IColumnListRef>)
315342 const { name : nameList } = field [ 0 ] ;
316343 const name = nameList [ 0 ] ;
317344 if ( name === 'nullable' ) {
318- value = value ? 1 : 0 ;
345+ value = value ? NullableType . Null : NullableType . NotNull ;
319346 }
320347
321348 const newData = dataSource . map ( ( item ) => {
@@ -453,7 +480,7 @@ const ColumnList = forwardRef((props: IProps, ref: ForwardedRef<IColumnListRef>)
453480 </ Form . Item >
454481 ) }
455482 { editingConfig ?. supportScale && (
456- < Form . Item labelCol = { labelCol } label = { i18n ( 'editTable.label.decimalPoint' ) } name = "decimalPoint " >
483+ < Form . Item labelCol = { labelCol } label = { i18n ( 'editTable.label.decimalPoint' ) } name = "decimalDigits " >
457484 < Input autoComplete = "off" />
458485 </ Form . Item >
459486 ) }
0 commit comments