add new props for /route route
				
					
				
			This commit is contained in:
		| @@ -12,7 +12,7 @@ interface CustomDataGridProps extends DataGridProps { | |||||||
|   resource?: string // Add this prop |   resource?: string // Add this prop | ||||||
| } | } | ||||||
|  |  | ||||||
| const DEV_FIELDS = ['id', 'code', 'country_code', 'city_id', 'carrier_id', 'main_color', 'left_color', 'right_color', 'logo', 'slogan', 'filename', 'arms', 'thumbnail'] as const | const DEV_FIELDS = ['id', 'code', 'country_code', 'city_id', 'carrier_id', 'main_color', 'left_color', 'right_color', 'logo', 'slogan', 'filename', 'arms', 'thumbnail', 'route_sys_number', 'governor_appeal', 'scale_min', 'scale_max', 'rotate', 'center_latitude', 'center_longitude'] as const | ||||||
|  |  | ||||||
| export const CustomDataGrid = ({hasCoordinates = false, columns = [], resource, ...props}: CustomDataGridProps) => { | export const CustomDataGrid = ({hasCoordinates = false, columns = [], resource, ...props}: CustomDataGridProps) => { | ||||||
|   // const isDev = import.meta.env.DEV |   // const isDev = import.meta.env.DEV | ||||||
|   | |||||||
| @@ -113,6 +113,104 @@ export const RouteCreate = () => { | |||||||
|           name="path" |           name="path" | ||||||
|           placeholder="[[1.1, 2.2], [2.1, 4.5]]" |           placeholder="[[1.1, 2.2], [2.1, 4.5]]" | ||||||
|         /> |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('route_sys_number', { | ||||||
|  |             required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.route_sys_number} | ||||||
|  |           helperText={(errors as any)?.route_sys_number?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Системный номер маршрута *'} | ||||||
|  |           name="route_sys_number" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('governor_appeal', { | ||||||
|  |             // required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.governor_appeal} | ||||||
|  |           helperText={(errors as any)?.governor_appeal?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Обращение губернатора'} | ||||||
|  |           name="governor_appeal" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('scale_min', { | ||||||
|  |             // required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.scale_min} | ||||||
|  |           helperText={(errors as any)?.scale_min?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Масштаб (мин)'} | ||||||
|  |           name="scale_min" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('scale_max', { | ||||||
|  |             // required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.scale_max} | ||||||
|  |           helperText={(errors as any)?.scale_max?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Масштаб (макс)'} | ||||||
|  |           name="scale_max" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('rotate', { | ||||||
|  |             // required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.rotate} | ||||||
|  |           helperText={(errors as any)?.rotate?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Поворот'} | ||||||
|  |           name="rotate" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('center_latitude', { | ||||||
|  |             // required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.center_latitude} | ||||||
|  |           helperText={(errors as any)?.center_latitude?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Центр. широта'} | ||||||
|  |           name="center_latitude" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('center_longitude', { | ||||||
|  |             // required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.center_longitude} | ||||||
|  |           helperText={(errors as any)?.center_longitude?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Центр. долгота'} | ||||||
|  |           name="center_longitude" | ||||||
|  |         /> | ||||||
|       </Box> |       </Box> | ||||||
|     </Create> |     </Create> | ||||||
|   ) |   ) | ||||||
|   | |||||||
| @@ -124,6 +124,104 @@ export const RouteEdit = () => { | |||||||
|             /> |             /> | ||||||
|           )} |           )} | ||||||
|         /> |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('route_sys_number', { | ||||||
|  |             required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.route_sys_number} | ||||||
|  |           helperText={(errors as any)?.route_sys_number?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Системный номер маршрута *'} | ||||||
|  |           name="route_sys_number" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('governor_appeal', { | ||||||
|  |             // required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.governor_appeal} | ||||||
|  |           helperText={(errors as any)?.governor_appeal?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Обращение губернатора'} | ||||||
|  |           name="governor_appeal" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('scale_min', { | ||||||
|  |             // required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.scale_min} | ||||||
|  |           helperText={(errors as any)?.scale_min?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Масштаб (мин)'} | ||||||
|  |           name="scale_min" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('scale_max', { | ||||||
|  |             // required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.scale_max} | ||||||
|  |           helperText={(errors as any)?.scale_max?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Масштаб (макс)'} | ||||||
|  |           name="scale_max" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('rotate', { | ||||||
|  |             // required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.rotate} | ||||||
|  |           helperText={(errors as any)?.rotate?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Поворот'} | ||||||
|  |           name="rotate" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('center_latitude', { | ||||||
|  |             // required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.center_latitude} | ||||||
|  |           helperText={(errors as any)?.center_latitude?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Центр. широта'} | ||||||
|  |           name="center_latitude" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <TextField | ||||||
|  |           {...register('center_longitude', { | ||||||
|  |             // required: 'Это поле является обязательным', | ||||||
|  |           })} | ||||||
|  |           error={!!(errors as any)?.center_longitude} | ||||||
|  |           helperText={(errors as any)?.center_longitude?.message} | ||||||
|  |           margin="normal" | ||||||
|  |           fullWidth | ||||||
|  |           InputLabelProps={{shrink: true}} | ||||||
|  |           type="number" | ||||||
|  |           label={'Центр. долгота'} | ||||||
|  |           name="center_longitude" | ||||||
|  |         /> | ||||||
|       </Box> |       </Box> | ||||||
|  |  | ||||||
|       {routeId && ( |       {routeId && ( | ||||||
|   | |||||||
| @@ -44,7 +44,70 @@ export const RouteList = () => { | |||||||
|         field: 'route_number', |         field: 'route_number', | ||||||
|         headerName: 'Номер маршрута', |         headerName: 'Номер маршрута', | ||||||
|         type: 'string', |         type: 'string', | ||||||
|         minWidth: 170, |         minWidth: 150, | ||||||
|  |         display: 'flex', | ||||||
|  |         align: 'left', | ||||||
|  |         headerAlign: 'left', | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         field: 'route_sys_number', | ||||||
|  |         headerName: 'Системный номер маршрута', | ||||||
|  |         type: 'string', | ||||||
|  |         minWidth: 120, | ||||||
|  |         display: 'flex', | ||||||
|  |         align: 'left', | ||||||
|  |         headerAlign: 'left', | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         field: 'governor_appeal', | ||||||
|  |         headerName: 'Обращение губернатора', | ||||||
|  |         type: 'number', | ||||||
|  |         minWidth: 120, | ||||||
|  |         display: 'flex', | ||||||
|  |         align: 'left', | ||||||
|  |         headerAlign: 'left', | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         field: 'scale_min', | ||||||
|  |         headerName: 'Масштаб (мин)', | ||||||
|  |         type: 'number', | ||||||
|  |         minWidth: 120, | ||||||
|  |         display: 'flex', | ||||||
|  |         align: 'left', | ||||||
|  |         headerAlign: 'left', | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         field: 'scale_max', | ||||||
|  |         headerName: 'Масштаб (макс)', | ||||||
|  |         type: 'number', | ||||||
|  |         minWidth: 120, | ||||||
|  |         display: 'flex', | ||||||
|  |         align: 'left', | ||||||
|  |         headerAlign: 'left', | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         field: 'rotate', | ||||||
|  |         headerName: 'Поворот', | ||||||
|  |         type: 'number', | ||||||
|  |         minWidth: 120, | ||||||
|  |         display: 'flex', | ||||||
|  |         align: 'left', | ||||||
|  |         headerAlign: 'left', | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         field: 'center_latitude', | ||||||
|  |         headerName: 'Центр. широта', | ||||||
|  |         type: 'number', | ||||||
|  |         minWidth: 120, | ||||||
|  |         display: 'flex', | ||||||
|  |         align: 'left', | ||||||
|  |         headerAlign: 'left', | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         field: 'center_longitude', | ||||||
|  |         headerName: 'Центр. долгота', | ||||||
|  |         type: 'number', | ||||||
|  |         minWidth: 120, | ||||||
|         display: 'flex', |         display: 'flex', | ||||||
|         align: 'left', |         align: 'left', | ||||||
|         headerAlign: 'left', |         headerAlign: 'left', | ||||||
| @@ -56,6 +119,7 @@ export const RouteList = () => { | |||||||
|         display: 'flex', |         display: 'flex', | ||||||
|         align: 'left', |         align: 'left', | ||||||
|         headerAlign: 'left', |         headerAlign: 'left', | ||||||
|  |         minWidth: 120, | ||||||
|         flex: 1, |         flex: 1, | ||||||
|         renderCell: ({value}) => <Typography style={{color: value ? '#48989f' : '#7f6b58'}}>{value ? 'прямое' : 'обратное'}</Typography>, |         renderCell: ({value}) => <Typography style={{color: value ? '#48989f' : '#7f6b58'}}>{value ? 'прямое' : 'обратное'}</Typography>, | ||||||
|       }, |       }, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user