declare interface ProjectStateType {
	projectData: Array<ProjectType>
	searchQuery: {
		pageIndex: number,
		pageSize: number,
		searchParams: {
			experimentName: string,
			experimentType: null | number,
		}
	},
	total: 0,
	experimentTypeList: Type []
	allRoomList: RoomType []
}

declare interface ProjectType {
	id?: number | null,
	experimentCode: string,
	experimentName: string,
}


declare interface Type {
	id: number,
	name: string,
}

declare interface ProjectDialogType {
	title: string,
	disabled: boolean,
	projectDialogVisible: boolean,
	projectForm: {
		id: null | number,
		experimentName: string,
		experimentType: null | number,
		liabilityUserId: null | number,
		safeLiabilityUserId: null | number,
		dep: string,
		siteId: null | number,
		experimentStep: string,
		experimentMethod: string,
		process: string,
		keyProcess: string,
		timeout: null | number,
		timeoutManager: string,
		closed: null | number,
		unclosedManager: string,
		explosionProof: string,
		fireProof: string,
		poisonProof: string,
		hazardousWaste: null | number,
		safeManagerMethod: string,
		emergencyPlan: string,
		emergencyDrill: string,
		emergencyPlanName: string,
		emergencyDrillStatus: string,
		partitionCondition: string,
		note: string,
		expectStartTime: null | number,
		persons: SelectPersonType [],
		deviceList: SelectEquipmentType [],
		stuffList: SelectMaterialType [],
		hazardousWasteList: SelectDangerType []
	},
	projectFormRules: {

	},
	allPersonList: Array<AllPersonListType>
	systemPersonList: Array<SystemPersonType>
	allRoomList: Array<RoomType>
}

declare interface SelectDangerType {
	disabled: boolean
	wasteList: Array<WasteType>
	classifyList: Array<Type>
	wasteStorageList: Array<Type>
}

declare interface WasteType {
	classify: null | number,
	wasteStorage: null | number,
	handAmount: null | number,
}


declare interface SelectPersonType {
	disabled: boolean
	personList: Array<AllPersonListType>
	allPersonList: Array<AllPersonListType>
}

declare interface AllPersonListType {
	id: null | number,
	personId?: null | number,
	personName: null,
	personAge: null,
	personGender:'',
	personMajor:'',
	depName:'',
	phone:'',
	aptitude:'',
	training:''
}

declare interface SelectEquipmentType {
	disabled: boolean
	equipmentList: Array<AllEquipmentListType>,
	allEquipmentList: Array<AllEquipmentListType>,
}

declare interface AllEquipmentListType {
	id?: null | number,
	deviceId?: null | number,
	deviceUseCount: null | number,
	deviceCode: string,
	deviceName: string,
	devicePower: string,
	specialDevice: string,
}


declare interface SelectMaterialType {
	disabled: boolean
	materialList: Array<AllMaterialListType>,
	allMaterialList: Array<AllMaterialListType>,
}

declare interface AllMaterialListType {
	id?: null | number,
	stuffId?: null | number,
	stuffUseCount: null | number,
	stuffName: string,
	stuffCode:string,
	stuffType: string,
	stuffStorage: string,
	stuffUnit: string
}


declare interface ApplyStartDialogType {
	title: string,
	applyStartDialogVisible: boolean,
	applyStartForm: {
		id: number | null,
		sisStatus: number | null,
		safeInformationSystem: string,
		startTime: string,
	},
	applyStartFormRules: {

	},
}
