jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
64 lines (63 loc) • 2.04 kB
TypeScript
import React from 'react';
import type { ActionObject, Option } from 'jamis-core';
import type { FormControlProps } from '../types';
import type { CityPickerProps } from './types';
interface CityPickerState {
code: number;
province: string;
provinceCode: number;
city: string;
cityCode: number;
district: string;
districtCode: number;
street: string;
db?: {
province: Array<string>;
city: {
[propName: number]: Array<number>;
};
district: {
[propName: number]: {
[propName: number]: Array<number>;
} | Array<number>;
};
[propName: string]: any;
};
}
export default class CityPicker extends React.Component<CityPickerProps, CityPickerState> {
static defaultProps: {
joinValues: boolean;
extractValue: boolean;
delimiter: string;
allowCity: boolean;
allowDistrict: boolean;
allowStreet: boolean;
};
state: CityPickerState;
componentDidMount(): void;
componentDidUpdate(prevProps: CityPickerProps): void;
loadDb(callback?: () => void): void;
handleProvinceChange(option: Option): void;
handleCityChange(option: Option): void;
handleDistrictChange(option: Option, otherStates?: any): void;
handleStreetChange(e: React.ChangeEvent<HTMLInputElement>): void;
handleStreetEnd(): void;
syncIn(props?: Readonly<CityPickerProps>): void;
syncOut(): void;
render(): JSX.Element;
}
export interface LocationControlProps extends FormControlProps {
allowCity?: boolean;
allowDistrict?: boolean;
extractValue?: boolean;
joinValues?: boolean;
allowStreet?: boolean;
}
export declare class LocationControl extends React.Component<LocationControlProps> {
doAction(action: ActionObject, data: object, throwErrors: boolean): void;
handleChange(value: number | string): Promise<void>;
render(): JSX.Element;
}
export declare class CityControlRenderer extends LocationControl {
}
export {};