@@ -71,6 +71,7 @@ const createInitialData = () => {
7171 autoIncrement : null ,
7272 comment : null ,
7373 primaryKey : null ,
74+ primaryKeyOrder : null ,
7475 schemaName : null ,
7576 databaseName : null ,
7677 typeName : null ,
@@ -243,6 +244,7 @@ const ColumnList = forwardRef((props: IProps, ref: ForwardedRef<IColumnListRef>)
243244 } }
244245 >
245246 { primaryKey && < Iconfont code = "" /> }
247+ { primaryKey && < span > { record . primaryKeyOrder } </ span > }
246248 </ div >
247249 </ div >
248250 ) ;
@@ -287,22 +289,46 @@ const ColumnList = forwardRef((props: IProps, ref: ForwardedRef<IColumnListRef>)
287289
288290 const handelPrimaryKey = ( _data : IColumnItemNew ) => {
289291 const newData = dataSource . map ( ( item ) => {
292+ let primaryKeyOrder :null | number = item . primaryKeyOrder ;
293+
294+ if ( _data . primaryKey ) {
295+ // 如果当前字段是主键,且当前字段的主键顺序大于当前编辑的字段的主键顺序,那么当前字段的主键顺序减1
296+ if ( _data . primaryKeyOrder && item . primaryKeyOrder && item . primaryKeyOrder >= _data . primaryKeyOrder ) {
297+ primaryKeyOrder = item . primaryKeyOrder - 1 ;
298+ }
299+ }
300+
301+ // 增加主键的时候,主键顺序为当前表的最大主键顺序+1
302+ if ( _data . key === item . key && ! _data . primaryKey ) {
303+ primaryKeyOrder = Math . max ( ...dataSource . map ( i => {
304+ return i . primaryKeyOrder || 0
305+ } ) ) + 1 ;
306+ }
307+
308+
290309 if ( item . key === _data ?. key ) {
291310 // 判断当前数据是新增的数据还是编辑后的数据
292311 let editStatus = item . editStatus ;
293312 if ( editStatus !== EditColumnOperationType . Add ) {
294313 editStatus = EditColumnOperationType . Modify ;
295314 }
315+
296316 const editingDataItem = {
297317 ...item ,
298318 primaryKey : ! item . primaryKey ,
319+ primaryKeyOrder,
299320 nullable : ! item . primaryKey ? NullableType . NotNull : item . nullable ,
300321 editStatus,
301322 } ;
302323 return editingDataItem ;
303324 }
304- return item ;
325+
326+ return {
327+ ...item ,
328+ primaryKeyOrder,
329+ } ;
305330 } ) ;
331+ console . log ( newData )
306332 setDataSource ( newData ) ;
307333 } ;
308334
0 commit comments