mirror of
https://github.com/dream-num/univer.git
synced 2026-08-29 07:13:59 +08:00
feat: add page setup precision (#6294)
Co-authored-by: r.sergeev <r.sergeev@yadro.com>
This commit is contained in:
@@ -35,6 +35,10 @@ export interface IPageSettings {
|
||||
left: number;
|
||||
right: number;
|
||||
};
|
||||
pageSise: {
|
||||
width: number;
|
||||
height: number;
|
||||
};
|
||||
}
|
||||
|
||||
const getPaperSize = (size: ISize) => {
|
||||
@@ -60,6 +64,10 @@ export function PageSettings(props: IConfirmChildrenProps) {
|
||||
const localeService = useDependency(LocaleService);
|
||||
const [settings, setSettings] = useState<IPageSettings>(() => ({
|
||||
paperSize: getPaperSize(documentStyle.pageSize!),
|
||||
pageSise: {
|
||||
width: documentStyle.pageSize?.width ?? 0,
|
||||
height: documentStyle.pageSize?.height ?? 0,
|
||||
},
|
||||
orientation: documentStyle.pageOrient ?? PageOrientType.PORTRAIT,
|
||||
margins: {
|
||||
top: documentStyle.marginTop ?? 0,
|
||||
@@ -80,11 +88,15 @@ export function PageSettings(props: IConfirmChildrenProps) {
|
||||
}, [settings]);
|
||||
|
||||
const handlePaperSizeChange = (value: string) => {
|
||||
setSettings((prev) => ({ ...prev, paperSize: value }));
|
||||
setSettings((prev) => ({ ...prev, paperSize: value, pageSise: PAGE_SIZE[value as PaperType] }));
|
||||
};
|
||||
|
||||
const handleOrientationChange = (value: PageOrientType) => {
|
||||
setSettings((prev) => ({ ...prev, orientation: value }));
|
||||
setSettings((prev) => ({
|
||||
...prev,
|
||||
orientation: value,
|
||||
pageSise: { width: settings.pageSise.height, height: settings.pageSise.width },
|
||||
}));
|
||||
};
|
||||
|
||||
const handleMarginChange = (position: keyof IPageSettings['margins'], value: number | null) => {
|
||||
@@ -134,6 +146,8 @@ export function PageSettings(props: IConfirmChildrenProps) {
|
||||
{localeService.t('page-settings.top')}
|
||||
</label>
|
||||
<InputNumber
|
||||
precision={2}
|
||||
max={settings.pageSise.height / 2}
|
||||
value={settings.margins.top}
|
||||
onChange={(e) => handleMarginChange('top', e)}
|
||||
/>
|
||||
@@ -143,6 +157,8 @@ export function PageSettings(props: IConfirmChildrenProps) {
|
||||
{localeService.t('page-settings.bottom')}
|
||||
</label>
|
||||
<InputNumber
|
||||
precision={2}
|
||||
max={settings.pageSise.height / 2}
|
||||
value={settings.margins.bottom}
|
||||
onChange={(e) => handleMarginChange('bottom', e)}
|
||||
/>
|
||||
@@ -154,6 +170,8 @@ export function PageSettings(props: IConfirmChildrenProps) {
|
||||
{localeService.t('page-settings.left')}
|
||||
</label>
|
||||
<InputNumber
|
||||
precision={2}
|
||||
max={settings.pageSise.width / 2}
|
||||
value={settings.margins.left}
|
||||
onChange={(e) => handleMarginChange('left', e)}
|
||||
/>
|
||||
@@ -163,6 +181,8 @@ export function PageSettings(props: IConfirmChildrenProps) {
|
||||
{localeService.t('page-settings.right')}
|
||||
</label>
|
||||
<InputNumber
|
||||
precision={2}
|
||||
max={settings.pageSise.width / 2}
|
||||
value={settings.margins.right}
|
||||
onChange={(e) => handleMarginChange('right', e)}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user