{"version":3,"sources":["pages/MyButton.jsx","geo/util.jsx","lib/DanhMucLayer.js","lib/SuKienDataLayer.js","pages/ConfirmDialog.jsx","pages/controls/LatLonEditor.jsx","pages/SuKienXuLyDialog.jsx","pages/SuKienXuLyDiDialog.jsx","pages/SuKienPhuongTienDialog.jsx","pages/SuKienKetThucDialog.jsx","pages/SuKienChiTietDialog.jsx","pages/danhmuc/DoiTacEditDialog.jsx","pages/TestDialog.jsx","pages/controls/FileAttachControl.jsx","pages/controls/SuKienHeaderControl.jsx","pages/controls/SuKienKetQuaControl.jsx","pages/controls/SuKienKetQuaChiTietControl.jsx","pages/controls/SuKienDinhKemControl.jsx","pages/controls/SuKienTrucBanControl.jsx","pages/SuKienEditDialog.jsx","geo/map.jsx","geo/interactions/double-click-zoom.jsx","geo/interactions/drag-and-drop.jsx","geo/interactions/drag-box.jsx","geo/interactions/drag-pan.jsx","geo/interactions/drag-rotate.jsx","geo/interactions/drag-rotate-and-zoom.jsx","geo/interactions/drag-zoom.jsx","geo/interactions/draw.jsx","geo/interactions/extent.jsx","geo/interactions/interactions.jsx","geo/interactions/keyboard-pan.jsx","geo/interactions/keyboard-zoom.jsx","geo/interactions/modify.jsx","geo/interactions/mouse-wheel-zoom.jsx","geo/interactions/pinch-rotate.jsx","geo/interactions/pinch-zoom.jsx","geo/interactions/pointer.jsx","geo/interactions/select.jsx","geo/interactions/snap.jsx","geo/interactions/translate.jsx","geo/interactions/index.jsx","geo/controls/scale-line.jsx","geo/controls/attribution.jsx","geo/controls/full-screen.jsx","geo/controls/mouse-position.jsx","geo/controls/overview-map.jsx","geo/controls/rotate.jsx","geo/controls/zoom-slider.jsx","geo/controls/zoom-to-extent.jsx","geo/controls/zoom.jsx","geo/controls/controls.jsx","geo/controls/index.jsx","pages/danhmuc/ThoiTietEditDialog.jsx","pages/TrucBanDenEditDialog.jsx","pages/TrucBanDiEditDialog.jsx","pages/danhmuc/VungBienEditDialog.jsx","pages/danhmuc/KhuVucEditDialog.jsx","pages/danhmuc/ThietBiEditDialog.jsx","pages/danhmuc/LoaiTauEditDialog.jsx","pages/danhmuc/TaiNanEditDialog.jsx","pages/danhmuc/TauSarEditDialog.jsx","lib/MyLib.js","pages/AlertDialog.jsx","lib/server.js","pages/MapViewControl.jsx","pages/controls/SuKienTimKiemControl.jsx","pages/controls/TrucBanTimKiemControl.jsx","pages/controls/SuKienPhuongTienControl.jsx","pages/controls/SuKienDieuDongControl.jsx","pages/KeHoachTauEditDialog.jsx","pages/danhmuc/CoQuanEditDialog.jsx","pages/danhmuc/QuocGiaEditDialog.jsx","pages/danhmuc/TaiKhoanEditDialog.jsx","data/corner.png","data/arrow.png","lib/TrucBanLayer.js","App.js","pages/HomePage.jsx","pages/SquareSearchEditDialog.jsx","pages/ParallelSearchEditDialog.jsx","pages/SectorSearchEditDialog.jsx","pages/SuKienChiTietOverlay.jsx","pages/SuKienLayer.jsx","pages/DrawLayer.jsx","pages/DrawItemsLayer.jsx","pages/KhuVucLayer.jsx","pages/PointEditDialog.jsx","pages/LineEditDialog.jsx","pages/PolygonEditDialog.jsx","pages/CircleEditDialog.jsx","pages/FilterSuKienDialog.jsx","pages/controls/SuKienTaiNanControl.jsx","pages/controls/SuKienTinhChatControl.jsx","pages/controls/SuKienXuLyControl.jsx","pages/SarTrackLayer.jsx","pages/SuKienPage.jsx","pages/KeHoachTauPage.jsx","pages/controls/KeHoachTauTimKiemControl.jsx","pages/TrucBanPage.jsx","pages/ThongKePage.jsx","pages/ChatOnlinePage.jsx","pages/danhmuc/CoQuanPage.jsx","pages/danhmuc/DoiTacPage.jsx","pages/danhmuc/LoaiTauPage.jsx","pages/danhmuc/QuocGiaPage.jsx","pages/danhmuc/TaiNanPage.jsx","pages/danhmuc/VungBienPage.jsx","pages/danhmuc/KhuVucPage.jsx","pages/danhmuc/TauSarPage.jsx","pages/danhmuc/ThietBiPage.jsx","pages/danhmuc/TaiKhoanPage.jsx","pages/controls/datetimepicker/jquery.datetimepicker.full.js","pages/controls/DateTimePicker.jsx","pages/LoginPage.jsx","logo.svg","pages/DrawLayerUtil.js","lib/KeHoachTauLayer.js","pages/controls/ChatTimKiemControl.jsx","data/KV1.svg","pages/TestPage.jsx","logo.jpg","serviceWorker.js","index.js","geo/layers/tile.jsx","geo/layers/vector.jsx","geo/layers/layers.jsx","geo/layers/heatmap.jsx","geo/layers/image.jsx","geo/layers/vector-tile.jsx","geo/layers/graticule.jsx","geo/layers/index.jsx","geo/overlays/overlays.jsx","geo/custom/popup.jsx","geo/custom/google-street-view-panorama.jsx","geo/custom/style/cluster-style.jsx","geo/providers/util.js","geo/providers/bing.js","geo/providers/google.js","geo/providers/open-street.js","geo/geo-code.js","geo/custom/control/geo-coder-control.jsx","geo/custom/control/geo-coder-component.jsx","geo/custom/index.jsx","geo/custom/style/marker-style.jsx","geo/overlay.jsx"],"names":["useStyles","makeStyles","theme","button","margin","spacing","IconLabelButton","props","classes","variant","color","size","className","startIcon","icon","onClick","text","getPropsKey","eventName","replace","$1","toUpperCase","Util","getOptions","options","key","match","getEvents","events","prop2EventMap","ret","propName","prop","cloneObject","obj","type","toString","call","toLowerCase","typeOf","clone","findChild","children","childType","found","childrenArr","React","toArray","i","length","child","myLib","require","validate","danhmuc","kehoach","result","error","isEmpty","TenCoQuan","trangthai","MaCQ","UserName","LoaiDoiTac","undefined","MaQG","value","chuanHoa","sukien","TenTau","chuyenDoi","label","TenQuocGia","MaVung","TenVung","LoaiTau","TenLoaiTau","chuanHoaSukien","action","TenSK","SoHoSo","ThoiGian","Date","setMilliseconds","ThoiGianBaoNan","ThoiGianBiNan","HoHieu","fromServerTime","MaNguonTin","TenDoiTac","KetThuc","LoaiTB","TenLoaiTB","MaKV","TenKhuVuc","MaTN","TenTaiNan","PhoiHopQT_MaQG","TenQuocGia_PhoiHopQT","PhoiHopQT_MaDoiTac","PhoiHopQT_TenDoiTac","chuyenDoiPhuongTien","phuongtien","chuyenDoiDieuDong","NgayRoi","NgayKetThuc","ThoiGianVT","TrangThai","ConfirmDialog","handleCancel","callback","handleOK","bind","state","disableBackdropClick","disableEscapeKeyDown","maxWidth","aria-labelledby","open","id","dividers","this","message","Component","LatEditor","inputRef","other","ref","inputElement","mask","placeholderChar","showMask","keepCharPositions","guide","style","textTransform","LonEditor","MyLatLonEditor","useState","rawText","setState","htmlFor","name","autoComplete","inputComponent","latlon","latToDMS","lonToDMS","onChange","event","raw","target","endsWith","indexOf","substring","date","latFromDMS","lonFromDMS","styles","form","display","flexDirection","width","heigh","formControl","marginTop","minWidth","formControlLabel","paper","textField","marginLeft","marginRight","SuKienXuLyDialog","handleClickOpen","handleClose","onClose","visible","fullWidth","nguontin","Fragment","Dialog","DialogTitle","DialogContent","noValidate","Grid","container","item","xs","TextField","defaultValue","format","InputLabelProps","shrink","FormControl","InputLabel","Select","labelId","MenuItem","Button","component","hidden","DialogActions","MyButton","SuKienXuLyDiDialog","columns","field","headerName","renderCell","params","getValue","SuKienPhuongTienDialog","dataRows","height","rows","hideFooterPagination","RadioGroup","aria-label","FormControlLabel","control","Radio","server","valueGetter","hanhdong","SuKienChiTietDialog","handleAction","xulyden_dialog_show","xulydi_dialog_show","phuongtien_dialog_show","ketthuc_dialog_show","query","then","response","catch","console","log","SuKienKetThucDialog","DoiTacEditDialog","saveField","fieldName","s","after","dataChanged","isSame","before","canSaved","handleSave","EditMode","check","validateStatus","saving","errorLog","post","MaDoiTac","Object","assign","saved","onSaved","loading_quoctich","source_quoctich","loading_tausar","source_tausar","loadDanhMuc","loadEdit","list","map","index","push","formReady","loading_doitac","position","edge","menuButton","title","textbox","autoFocus","inputProps","maxLength","helperText","autoWidth","labelWidth","disabled","redLabel","normalLabel","placeholder","withStyles","flexGrow","thoigian","uppercaseText","normalPanel","backgroundColor","expandedPanel","withTheme","FileAttachControl","showFile","fileID","fileLink","href","file","FileID","FileName","requestDelete","sukienLayer","SuKienHeaderControl","old_changed","onChanged","MaSK","SoPhuongTien","loadDanhmuc","Accordion","defaultExpanded","AccordionSummary","expandIcon","aria-controls","root","expanded","content","summaryContent","Typography","heading","AccordionDetails","labelError","dateFormat","timeFormat","closeOnSelect","onBlur","tryToDate","toDate","CircularProgress","minHeight","defaultRecord","SuKienThat","KetQuaChung","TimKiem","KQTimKiem","CuuNan","KQCuuNan","SuKienKetQuaControl","JSON","stringify","Checkbox","checked","newState","DuocCuu_NguoiVN","DuocCuu_NguoiNN","DuocCuu_GhiChu","TrucTiep_NguoiVN","TrucTiep_NguoiNN","TrucTiep_GhiChu","GianTiep_NguoiVN","GianTiep_NguoiNN","GianTiep_GhiChu","BiThuong","BiChet","MatTich","TrucTiep_PhuongTien","GianTiep_PhuongTien","BiDam","SuKienKetQuaChiTietControl","onFocus","select","files","SuKienDinhKemControl","formData","FormData","append","upload","mountUploader","fileDinhKem","showConfirmXoa","requestXoaFileID","savedFiles","ok","dataSaved","filesLimit","maxFileSize","showFileNames","dropzoneText","showAlerts","clearOnUnmount","PhuongThucGui","SuKienTrucBanControl","divGrid","autoHeight","rowCount","sortingMode","showCellRightBorder","showColumnRightBorder","hideFooter","menuContainerStyle","zIndex","onCellClick","Editting_TrucBanID","data","TrucBanID","Editting_ChieuDen","ChieuDen","gridContainer","palette","SuKienEditDialog","handleXoa","show","showCloseConfirm","handleDataChanged","changed","expandedTainan","DanhSachPhuongTien","PhuongTien2","PhuongTien3","SoDieuDong","DanhSachDieuDong","DieuDong2","DieuDong3","DinhKem","list_phuongtien","temp","dieudong","list_dieudong","dinhkem","loading_coquan","AppBar","Toolbar","IconButton","SuKienTaiNanControl","SuKienPhuongTienControl","stt","allowAddMore","onAddMore","onRemoved","SuKienTinhChatControl","SuKienXuLyControl","SuKienDieuDongControl","ViTri","AlertDialog","Map","layers","interactions","controls","overlays","pixelRation","keyboardEventTarget","loadTilesWhileAnimation","loadTilesWhileInteractiong","logo","renderer","setCenter","setZoom","setResolution","view","ol_View","controlsCmp","Controls","interactionsCmp","Interactions","ol_control_defaults","extend","ol_interaction_defaults","ol_Map","setTarget","mapDiv","olEvents","on","nextProps","center","getView","zoom","el","mapComp","childContextTypes","PropTypes","instanceOf","DoubleClickZoom","duration","delta","interaction","ol_interaction_DoubleClickZoom","context","removeInteraction","addInteraction","DragAndDrop","formatConstructors","projection","ol_interaction_DragAndDrop","DragBox","condition","boxEndCondition","ol_interaction_DragBox","DragPan","kinetic","ol_interaction_DragPan","DragRotate","ol_interaction_DragRotate","DragRotateAndZoom","ol_interaction_DragRotateAndZoom","DragZoom","out","ol_interaction_DragZoom","Draw","clickTolerance","features","source","snapTolerance","maxPoints","minPoints","finishCondition","geometryFunction","geometryName","freehand","freehandCondition","wrapX","ol_interaction_Draw","Extent","extent","boxStyle","pointerStyle","ol_interaction_Extent","KeyboardPan","pixelDelta","ol_interaction_KeyboardPan","KeyboardZoom","ol_interaction_KeyboardZoom","Modify","deleteCondition","pixelTolerance","ol_interaction_Modify","MouseWheelZoom","timeout","useAnchor","ol_interaction_MouseWheelZoom","PinchRotate","threshold","ol_interaction_PinchRotate","PinchZoom","constrainResolution","ol_interaction_PinchZoom","Pointer","handleDownEvent","handleDragEvent","handleEvent","handleMoveEvent","handleUpEvent","ol_interaction_Pointer","addCondition","removeCondition","toggleCondition","multi","filter","hitTolerance","instance","ol_interaction_Select","Snap","vertex","ol_interaction_Snap","Translate","ol_interaction_Translate","ScaleLine","render","units","ol_control_ScaleLine","Attribution","collapsible","collapsed","tipLabel","collapseLabel","ol_control_Attribution","FullScreen","labelActive","keys","ol_control_FullScreen","MousePosition","coordinateFormat","undefinedHTML","ol_control_MousePosition","OverviewMap","ol_control_OverviewMap","Rotate","autoHide","resetNorth","ol_control_Rotate","ZoomSlider","maxResolution","minResolution","ol_control_ZoomSlider","ZoomToExtent","ol_control_ZoomToExtent","Zoom","zoomInLabel","zoomOutLabel","zoomInTipLabel","zoomOutTipLabel","ol_control_Zoom","attribution","attributionOptions","rotate","rotateOptions","zoomOptions","makv","DC_Huong1","DC_TocDo1","Gio_Huong1","Gio_TocDo1","TT_Min1","TT_Max1","GhiChu1","DC_Huong2","DC_TocDo2","Gio_Huong2","Gio_TocDo2","TT_Min2","TT_Max2","GhiChu2","DC_Huong3","DC_TocDo3","Gio_Huong3","Gio_TocDo3","TT_Min3","TT_Max3","GhiChu3","DC_Huong4","DC_TocDo4","Gio_Huong4","Gio_TocDo4","TT_Min4","TT_Max4","GhiChu4","DC_Huong5","DC_TocDo5","Gio_Huong5","Gio_TocDo5","TT_Min5","TT_Max5","GhiChu5","DC_Huong6","DC_TocDo6","Gio_Huong6","Gio_TocDo6","TT_Min6","TT_Max6","GhiChu6","DC_Huong7","DC_TocDo7","Gio_Huong7","Gio_TocDo7","TT_Min7","TT_Max7","GhiChu7","DC_Huong8","DC_TocDo8","Gio_Huong8","Gio_TocDo8","TT_Min8","TT_Max8","GhiChu8","DC_Huong9","DC_TocDo9","Gio_Huong9","Gio_TocDo9","TT_Min9","TT_Max9","GhiChu9","DC_Huong10","DC_TocDo10","Gio_Huong10","Gio_TocDo10","TT_Min10","TT_Max10","GhiChu10","DC_Huong11","DC_TocDo11","Gio_Huong11","Gio_TocDo11","TT_Min11","TT_Max11","GhiChu11","DC_Huong12","DC_TocDo12","Gio_Huong12","Gio_TocDo12","TT_Min12","TT_Max12","GhiChu12","ThoiTietDialog","getDataToSave","d","DC_Huong","DC_TocDo","Gio_Huong","Gio_TocDo","TT_Min","TT_Max","GhiChu","thang","sv","Thang","loading_tainan","labelThang","TrucBanDenEditDialog","source_doitac","loading_sukien","source_sukien","PhuongThuc","NoiDung","TenNoiNhan","LoaiThongTin","trucban","menuPortalTarget","document","body","menuPortal","base","menuPosition","multiline","InputProps","combo","noidung","rowsMin","inputLabel","TrucBanDiEditDialog","MaNoiNhan","noinhan","isMulti","VungBienEditDialog","LoaiVung","loading_vungbien","KhuVucEditDialog","source_vungbien","KhoangCach","JsonPoints","GeoPoints","loading_khuvuc","isDisabled","ThietBiEditDialog","loading_thietbi","source_thietbi","LoaiTauEditDialog","PhanNhom","IconURL","loading_loaitau","TaiNanEditDialog","TauSarEditDialog","TauID","source_loaitau","formatDate","moment","obj1","obj2","fields","v1","v2","hasOwnProperty","cutTime","isoTime","str","setTime","getTime","currentLocalTimeString","toISOString","convertMaskTextToDateTime","maskChar","dd","idd","parseInt","MM","iMM","yyyy","iyyyy","HH","iHH","mm","imm","ss","iss","lat","isN","Math","abs","floor","m","round","lon","isE","direct","getLineStringLength","feature","getLength","getGeometry","output","getPolygonArea","area","getArea","String","fromCharCode","getRadius","getRadiusValue","geometry","getCenter","radius","edgeCoordinate","getDistance","getQuyen","Code","Name","toRad","degree","PI","toDeg","radians","calculateRhumbLine","coord1","brng","dist","lat1","lon1","distance_NM","tc","cos","q","sqrt","tan","y","x","mod","sin","dateDiff","t1","t2","d1","d2","hours","days","now","day","month","year","getFullYear","hour","minute","e","getServer","config","SERVER","getToken","window","sessionStorage","getItem","getRequest","rq","SERVER_URL","get","fetch","method","headers","res","json","Promise","success","failed","ps","requestOptions","jwt","bearer","Authorization","ErrorCode","Response","ErrorMsg","download","filename","split","blob","FileSaver","saveAs","populateID","MapViewControl","background","borderRadius","padding","opacity","whiteSpace","overlayComp","popupComp","map_onMoveend","frameState","viewState","localConfig","set","map_onPointermove","dragging","drawingType","createMeasureTooltip","measureTooltipElement","parentNode","removeChild","createElement","measureTooltip","ol_Overlay","element","offset","positioning","addOverlay","map_onDrawstart","evt","sketch","coordinate","that","listener","geom","tooltipCoord","getLastCoordinate","getInteriorPoint","getCoordinates","innerHTML","setPosition","map_onDrawend","center_feature","ol_Feature","ol_geom_Point","fake","reference","drawSourceVector","addFeature","unByKey","showTauSar","tracks","trackSars","handleSaveDrawItem","newData","items","drawItems","old","ID","removeFeature","hasFeature","splice","showPopup","center_string","zoom_string","sukien_olLayer","parse","mouseCoordinate","ol_source_Vector","timeChange","showPointEdit","showLineEdit","showSquareSearch","showParallelSearch","showSectorSearch","showPolygonEdit","showCircleEdit","edittingMode","Editting_Feature","khuvucItems","bando_menu_anchor","bando_google_layer","show_layer_hinhve","show_layer_khuvuc","show_overlay_hinhve","show_filter_dialog","sukien_filter_result","sukien_filter_data","LoaiTau_TauHang","LoaiTau_TauCa","LoaiTau_TauKhac","TuNgay","DenNgay","open_edit_sukien","Editting_MaSK","showThoiTiet","Editting_MaKV","links_menu_anchor","links","listChitiets","showGraticule","overlay","lonlat","ol_proj_transform","setContents","coord","custom","MarkerStyle","JsonData","Loai","Coordinates","ol_geom_LineString","ol_geom_Polygon","ol_geom_Circle","BanKinh","loadDrawItems","loadKhuVucItems","loadSuKien","loadLinks","handleFilterResult","danhsach","Lon","Lat","global","mapHeight","currentTarget","anchorEl","keepMounted","Boolean","changeMapType","url","height1","onMoveend","onPointermove","Tile","ol_source_XYZ","crossOrigin","Graticule","strokeStyle","ol_style_Stroke","lineDash","showLabels","Popup","getFeatures","keyID","Ten","toStringHDMS","layer","onSelect","selected","forEach","onDrawstart","onDrawend","User","Quyen","R211","onSearched","SuKienTimKiemControl","handleSearch","pageIndex","search","Page","search_loading","search_result","source_coquan","total","PageSize","PhanLoai","Duyet","find","option","cboMacq","MyMaskMonthEditor","TrucBanTimKiemControl","uuidV4","MaPT","STT","IMO","MMSI","TrongTai","SoNguoi","ThongTin","SatPhone","TuyenDuong1","TuyenDuong2","TenChuTau","DiaChi","Fax","TrucTiep","GianTiep","open_them_loaitau","tracuu_menu_anchor","R131","encodeURIComponent","record","concat","new_item","unshift","MaTau","LoaiHinh","BiBenh","CongSuat","insertHanhTrinh","open_them_tausar","time","R181","KeHoachTauEditDialog","chuanHoaKeHoach","KeHoachID","BatDau","CoQuanEditDialog","TenVietTat","HienThi","QuocGiaEditDialog","loading_quocgia","TaiKhoanEditDialog","loading_user","source_user","user","module","exports","loai","noinhans","TenNoiGui","App","Logged","JWT","setItem","useEffect","checkUser","loading","onExit","onLogged","updateSoTinNhan","grow","appBar","transition","transitions","create","easing","sharp","leavingScreen","appBarShift","drawerWidth","easeOut","enteringScreen","breakpoints","up","shape","fade","common","white","searchIcon","pointerEvents","alignItems","justifyContent","inputRoot","inputInput","paddingLeft","sectionDesktop","sectionMobile","hide","drawer","flexShrink","drawerPaper","drawerHeader","mixins","toolbar","contentShift","bottomPush","bottom","textAlign","paddingBottom","nested","drawerRoot","default_theme","typography","fontSize","HomePage","page","createMuiTheme","viVN","setAnchorEl","mobileMoreAnchorEl","setMobileMoreAnchorEl","currentPage","drawerOpened","getSavedConfig","isMenuOpen","isMobileMenuOpen","handleProfileMenuOpen","handleMobileMenuClose","handleMenuClose","openDrawer","setOpenDrawer","openDanhmuc","setOpenDanhmuc","menuId","renderMenu","anchorOrigin","vertical","horizontal","transformOrigin","renderMobileMenu","badgeContent","aria-haspopup","soTinNhan","setSoTinNhan","divMapHeight","setDivMapHeight","mainDiv","useRef","current","offsetHeight","utils","MomentUtils","clsx","noWrap","anchor","src","alt","primary","in","unmountOnExit","disablePadding","R21","R22","R23","R24","R29","R25","R11","R12","R13","R14","R17","R15","R16","R18","R19","R90","SquareSearchEditDialog","setCoordinates","handleCalculate","toado_moi","first","Square_Number","ToaDo","approach","Square_Course","leg_distancex","Square_Leg","SAR_distance","multiplier","ESdistance","ESheading","next","Square_Speed","Search_Distance","Search_Time","ex","toado","ParallelSearchEditDialog","leg_distancey","Square_Spacing","leg_distancez","first_ship","Square_First","pos","nlegs","SectorSearchEditDialog","soluot","two_cycles","n","SuKienChiTietOverlay","TomTat","closeX","getText","resolution","createTextStyle","ol_style_Text","textBaseline","font","weight","fill","ol_style_Fill","stroke","offsetX","offsetY","placement","maxAngle","overflow","rotation","markerStyle","ol_style_Style","image","ol_style_Icon","scale","pointStyleFunction","SuKienLayer","clear","addFeatures","Vector","DrawLayer","layerStyleFunction","v","ol_style_Circle","DrawItemsLayer","coords","v_point","isSquare","isSector","square","leg","forEachSegment","start","end","dx","dy","atan2","rotateWithView","layerVector","removeLayer","KhuVucLayer","PointEditDialog","LineEditDialog","PolygonEditDialog","CircleEditDialog","setRadius","FilterSuKienDialog","TenNguonTin","TanSo","loaivung","list_combo","list_vungbien","mavung","source_khuvuc","list_khuvuc","loading_nguontin","source_nguontin","open_them_doitac","open_them_thietbi","open_them_vungbien","open_them_khuvuc","R121","R191","R151","R161","TinhTrang","MoTa","source_tainan","R171","open_them_tainan","noidung2","TheoDoi","PhoiHop","KieuPhoiHop","PhoiHopQT","SarTrackLayer","getSourceFromData","hanhtrinh","HanhTrinh","t","f","SuKienPage","lineHeight","Editting_SuKien","arrow","handlePageChange","callbackSearch","totalRows","open_them_sukien","open_chitiet_sukien","showConfirmDuyet","dieukien","func","headerHeight","density","rowHeight","pagination","pageSize","paginationMode","onPageChange","alignSelf","R221","RX1","thongke","DangXL","ChuaDuyet","container1","root1","border","fontFamily","join","WebkitFontSmoothing","letterSpacing","borderRight","borderBottom","borderTop","KeHoachTauPage","Editting_KeHoachID","R231","HoatDong","TrucBanPage","open_den_sukien","open_di_sukien","R241","ThongKePage","ChatOnlinePage","timerHandle","last","FromChatID","NumberRecord","lastID","minID","tensk","hasRead","NoiNhans","DichDanh","HasRead","ChatID","dataItem","ChieuGui","readOnly","NgayCN","avatar","titleColor","reply","status","LastChatID","MinChatID","scrollToBottom","tempList","setInterval","onTimer","clearInterval","maxScrollTop","messageList","scrollHeight","clientHeight","scrollTop","updateSoTinNhan_callback","lockable","toBottomHeight","dataSource","onTitleClick","handleConfirm","inputChat","txtNoiDung","R251","handleSend","CoQuanPage","Editting_MaCQ","R111","LoaiDoiTacNames","DoiTacPage","Editting_MaDoiTac","LoaiTauPage","Editting_LoaiTau","QuocGiaPage","Editting_MaQG","R141","TaiNanPage","Editting_MaTN","VungBienPage","Editting_MaVung","KhuVucPage","TauSarPage","Editting_TauID","Editting_LoaiTB","TaiKhoanPage","Editting_UserName","R901","R902","u","r","a","arguments","dateSettings","daysShort","months","monthsShort","meridiem","ordinal","1","2","3","separators","validParts","intParts","tzParts","tzClip","DateFormatter","prototype","constructor","getMonth","parseDate","o","c","l","h","g","p","min","sec","Error","isNaN","guessDate","test","substr","setMonth","setDate","setFullYear","setHours","setMinutes","setSeconds","parseFormat","j","D","w","getDate","N","getDay","z","Y","W","F","M","L","slice","A","G","B","getUTCHours","getUTCMinutes","getUTCSeconds","getHours","H","getMinutes","getSeconds","getMilliseconds","exec","I","UTC","O","getTimezoneOffset","P","T","pop","Z","U","charAt","$","default_options","i18n","ar","dayOfWeekShort","dayOfWeek","ro","is","bg","fa","ru","uk","en","de","nl","tr","fr","es","th","pl","pt","ch","se","km","kr","it","da","no","ja","vi","sl","cs","hu","az","bs","ca","et","eu","fi","gl","hr","ko","lt","lv","mk","mn","sk","sq","sr","zh","ug","he","hy","kg","rm","ka","ownerDocument","contentWindow","rtl","formatTime","startDate","step","monthChangeSpinner","closeOnDateSelect","closeOnTimeSelect","closeOnWithoutClick","closeOnInputClick","openOnFocus","timepicker","datepicker","weeks","defaultTime","defaultDate","minDate","maxDate","minTime","maxTime","minDateTime","maxDateTime","allowTimes","opened","initTime","inline","touchMovedThreshold","onSelectDate","onSelectTime","onChangeMonth","onGetWeekOfYear","onChangeYear","onChangeDateTime","onShow","onGenerate","withoutCopyright","inverseButton","hours12","prev","dayOfWeekStart","parentID","timeHeightInTimePicker","timepickerScrollbar","todayButton","prevButton","nextButton","defaultSelect","scrollMonth","scrollTime","scrollInput","lazyInit","validateOnBlur","allowBlank","yearStart","yearEnd","monthStart","monthEnd","fixed","roundTime","weekends","highlightedDates","highlightedPeriods","allowDates","allowDateRe","disabledDates","disabledWeekDays","yearOffset","beforeShowDay","enterLikeTab","showApplyButton","insideParent","dateHelper","defaultDateHelper","globalLocale","initDateFormatter","locale","dateFormatters","formatter","isFormatStandard","isValid","formatMask","datetimepicker","setLocale","newLocale","setDateFormatter","dateFormatter","df","standardFormats","RFC_2822","ATOM","ISO_8601","RFC_822","RFC_850","RFC_1036","RFC_1123","RSS","W3C","values","HighlightedDate","desc","getComputedStyle","getPropertyValue","re","b","currentStyle","Array","countDaysInMonth","fn","xdsoftScroller","percent","each","timebox","parentHeight","scrollbar","scroller","timeboxparent","pointerEventToXY","touch","originalEvent","touches","changedTouches","clientX","clientY","maximumOffset","startY","startTop","h1","touchStart","startTopScroll","calcOffset","hasClass","eq","addClass","trigger","css","arguments_callee","off","removeClass","stopPropagation","preventDefault","percentage","setTimeout","noTriggerScroll","sh","top","deltaY","opt","opt2","createDateTimePicker","destroyDateTimePicker","CTRLKEY","ENTER","ESC","ARROWLEFT","ARROWUP","ARROWRIGHT","ARROWDOWN","TAB","F5","AKEY","CKEY","VKEY","ZKEY","YKEY","ctrlDown","isPlainObject","lazyInitTimer","input","xchangeTimer","timerclick","current_time_index","setPos","_xdsoft_datetime","forEachAncestorOf","xdsoft_copyright","month_picker","calendar","applyButton","monthselect","yearselect","triggerAfterOpen","timer","attr","val","currentTime","handleTouchMoved","touchPosition","touchStartPosition","xMovement","yMovement","touchMoved","getCurrentValue","ct","strToDate","strToDateTime","strtotime","isValidDate","setMask","isValidValue","reg","RegExp","setCaretPos","node","getElementById","createTextRange","textRange","collapse","moveEnd","moveStart","setSelectionRange","pastedData","clipboardData","getData","selectionStart","valueBeforeCursor","valueAfterPaste","trim","digit","which","selEnd","selectionEnd","hasSel","maskValueAtCurPos","posShorterThanMaskLength","posGreaterThanZero","metaKey","selLength","defaultBlank","selReplacementRemainder","valueBeforeSel","insertChars","charsAfterSelection","insertChar","valueAfterNextChar","parent","isFunction","getCurrentTime","setOptions","_options","isArray","exDesc","splitData","hDate","keyDate","dateTest","dateEnd","setCurrentTime","toggle","empty","splittedHours","splittedMinutes","dayOfWeekStartPrev","_this","norecursion","dTime","requireValidDate","nextMonth","prevMonth","getWeekOfYear","datetime","week","onejan","ceil","sDateTime","timeOffset","tmpDate","sDate","sTime","currentDate","$this","stop","arguments_callee1","arguments_callee2","clearTimeout","period","arguments_callee4","pheight","arguments_callee5","customDateSettings","line_time","description","maxDateTimeDay","table","today","newRow","currentDay","html","minTimeMinutesOfDay","maxTimeMinutesOfDay","current_time","isALlowTimesInit","currentMinutesOfDay","classType","xdevent","deltaX","$input","nodeName","dateInputOffset","dateInputElem","verticalPosition","left","datetimepickerElem","dateInputHasFixedAncestor","$dateInput","windowWidth","verticalAnchorEdge","datetimepickerCss","windowHeight","windowScrollTop","documentElement","clientWidth","outerWidth","diff","offsetWidth","scrollLeft","ancestorNode","outerHeight","offsetLeft","offsetTop","arguments_callee6","elementSelector","focus","remove","unmousewheel","keyCode","initOnActionCallback","defaults","factory","jQuery","nullLowestDeltaTimeout","lowestDelta","toFix","toBind","documentMode","fixHooks","mouseHooks","special","mousewheel","version","setup","addEventListener","handler","onmousewheel","getLineHeight","getPageHeight","teardown","removeEventListener","removeData","elem","$elem","$parent","settings","adjustOldDeltas","normalizeOffset","orgEvent","args","absDelta","fix","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaMode","pageHeight","max","shouldAdjustOldDeltas","getBoundingClientRect","boundingRect","deltaFactor","nullLowestDelta","dispatch","handle","apply","unbind","LoginPage","Password","Container","CssBaseline","Avatar","required","submit","Box","mt","align","Link","secondary","main","drawStyleFunction","ChatTimKiemControl","TestPage","location","hostname","ReactDOM","StrictMode","navigator","serviceWorker","ready","registration","unregister","preload","useInterimTilesOnError","ol_source_OSM","ol_layer_Tile","setZIndex","addLayer","contextTypes","renderOrder","renderBuffer","updateWhileAnimating","updateWhileInteracting","ol_layer_Vector","Layers","Heatmap","gradient","blur","shadow","ol_layer_Heatmap","Image","ol_layer_Image","VectorTile","renderMode","ol_layer_VectorTile","ol_layer_Graticule","Overlays","contentClose","containerEl","contentEl","bottomDistance","GoogleStreetViewPanorama","GoogleMapsLoader","google","streetView","maps","StreetViewPanorama","initialize","streetViewPanoramaOptions","lng","pov","pitch","ClusterStyle","vectorSource","vectorStyleFunction","currentResolution","calculateClusterInfo","maxFeatureCount","originalFeature","createClusterStyle","selectStyleFunction","invisibleFill","originalFeatures","jj","olExtent","getExtent","clusterFill","clusterStroke","parseFloat","ol_style_RegularShape","radius1","radius2","points","angle","serialize","Bing","address","includeNeighborhood","maxResults","resp","_handleResponse","point","coordinates","formatted","formattedAddress","Google","language","lang","latlng","results","array","details","road","postcode","city","country","anyMatchInArray","some","types","long_name","getDetails","address_components","postalCode","formatted_address","OpenStreet","addressdetails","limit","countrycodes","neighbourhood","town","display_name","addressdetail","GeoCoder","provider","klasses","osm","bing","klass","geolookup","reverse","GeoCoderControl","eventListeners","locate","lonLat","getMap","getProjection","animate","toggleExpand","autocompleteEl","geoCoder","appendChild","buttonEl","getButtonHTML","getAutocompleteHTML","inputEl","autocomplete","ol_control_Control","GeoCoderComponent","Overlay","stopEvent","insertFirst","autoPan","autoPanAnimation","autoPanMargin","querySelector","removeOverlay"],"mappings":"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","file":"static/js/main.56d7c226.chunk.js","sourcesContent":["import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport CloudUploadIcon from '@material-ui/icons/CloudUpload';\r\nimport KeyboardVoiceIcon from '@material-ui/icons/KeyboardVoice';\r\nimport Icon from '@material-ui/core/Icon';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n button: {\r\n margin: theme.spacing(1),\r\n },\r\n }));\r\n \r\n export default function IconLabelButton(props) {\r\n const classes = useStyles();\r\n return (\r\n \r\n {props.text}\r\n \r\n );\r\n }","import * as React from 'react';\r\nfunction getOptions(props) {\r\n let options = {};\r\n for (let key in props) {\r\n if (key !== 'children'\r\n && typeof props[key] !== 'undefined' //exclude undefined ones\r\n && !key.match(/^on[A-Z]/) //exclude events\r\n ) {\r\n options[key] = props[key];\r\n }\r\n }\r\n return options;\r\n}\r\nfunction getPropsKey(eventName) {\r\n return 'on' + eventName\r\n .replace(/(\\:[a-z])/g, $1 => $1.toUpperCase())\r\n .replace(/^[a-z]/, $1 => $1.toUpperCase())\r\n .replace(':', '');\r\n}\r\nfunction getEvents(events = {}, props = {}) {\r\n let prop2EventMap = {};\r\n for (let key in events) {\r\n prop2EventMap[getPropsKey(key)] = key;\r\n }\r\n let ret = {};\r\n for (let propName in props) {\r\n let eventName = prop2EventMap[propName];\r\n let prop = props[propName];\r\n if (typeof prop !== 'undefined' && propName.match(/^on[A-Z]/) && eventName) {\r\n ret[eventName] = prop;\r\n }\r\n }\r\n return ret;\r\n}\r\nlet typeOf = function (obj) {\r\n return ({}).toString.call(obj)\r\n .match(/\\s([a-zA-Z]+)/)[1].toLowerCase();\r\n};\r\nfunction cloneObject(obj) {\r\n var type = typeOf(obj);\r\n if (type == 'object' || type == 'array') {\r\n if (obj.clone) {\r\n return obj.clone();\r\n }\r\n var clone = type == 'array' ? [] : {};\r\n for (var key in obj) {\r\n clone[key] = cloneObject(obj[key]);\r\n }\r\n return clone;\r\n }\r\n return obj;\r\n}\r\nfunction findChild(children, childType) {\r\n let found;\r\n let childrenArr = React.Children.toArray(children);\r\n for (let i = 0; i < childrenArr.length; i++) {\r\n let child = childrenArr[i];\r\n if (child.type == childType) {\r\n found = child;\r\n break;\r\n }\r\n }\r\n return found;\r\n}\r\nexport class Util {\r\n}\r\nUtil.getOptions = getOptions;\r\nUtil.getEvents = getEvents;\r\nUtil.cloneObject = cloneObject;\r\nUtil.findChild = findChild;","const myLib = require(\"./MyLib\");\r\nexport function validate(danhmuc, kehoach) {\r\n var result = { error: false };\r\n switch (danhmuc) {\r\n case \"coquan\":\r\n if (myLib.isEmpty(kehoach.TenCoQuan)) {\r\n result.error = true;\r\n result.TenCoQuan = { error: true, trangthai: \"Chưa có tên\" };\r\n }\r\n break;\r\n case \"nguoidung\":\r\n if (myLib.isEmpty(kehoach.MaCQ)) {\r\n result.error = true;\r\n result.MaCQ = { error: true, trangthai: \"Chưa có cơ quan\" };\r\n }\r\n if (myLib.isEmpty(kehoach.UserName)) {\r\n result.error = true;\r\n result.UserName = { error: true, trangthai: \"Chưa có tài khoản\" };\r\n }\r\n break;\r\n case 'doitac':\r\n if(kehoach.LoaiDoiTac + '' === '2' && (kehoach.MaQG === undefined || kehoach.MaQG.value === null)) {\r\n result.error = true;\r\n result.MaQG = {error: true, trangthai: 'Chưa có quốc gia'};\r\n }\r\n break;\r\n }\r\n\r\n return result;\r\n}\r\nexport function chuanHoa(danhmuc, sukien) {\r\n switch (danhmuc) {\r\n case \"tausar\":\r\n sukien.TenTau = sukien.TenTau.toUpperCase();\r\n break;\r\n default:\r\n break;\r\n }\r\n return sukien;\r\n}\r\nexport function chuyenDoi(danhmuc, sukien) {\r\n switch(danhmuc) {\r\n case 'doitac':\r\n sukien.MaQG = {value: sukien.MaQG, label: sukien.TenQuocGia};\r\n break;\r\n case 'khuvuc':\r\n sukien.MaVung = {value: sukien.MaVung, label: sukien.TenVung};\r\n break;\r\n case 'tausar':\r\n sukien.LoaiTau = {value: sukien.LoaiTau, label: sukien.TenLoaiTau}\r\n break;\r\n }\r\n return sukien;\r\n}\r\n","const myLib = require('../lib/MyLib');\r\n/* Giao tiep voi API ve du lieu su kien */\r\nexport function chuanHoaSukien(action, sukien) {\r\n switch (action) {\r\n case \"header\": //save thong tin ban dau ve su kien\r\n sukien.TenSK = (sukien.TenSK ? sukien.TenSK : '').toUpperCase();\r\n sukien.SoHoSo = (sukien.SoHoSo ? sukien.SoHoSo : '').toUpperCase();\r\n sukien.ThoiGian = sukien.ThoiGian ? new Date(sukien.ThoiGian.setMilliseconds(0)) : sukien.ThoiGian;\r\n break;\r\n case 'tainan': //save thong tin tai nan cua su kien\r\n sukien.ThoiGianBaoNan = sukien.ThoiGianBaoNan ? new Date(sukien.ThoiGianBaoNan.setMilliseconds(0)) : sukien.ThoiGianBaoNan;\r\n sukien.ThoiGianBiNan = sukien.ThoiGianBiNan ? new Date(sukien.ThoiGianBiNan.setMilliseconds(0)) : sukien.ThoiGianBiNan;\r\n break;\r\n case 'phuongtien': //thong tin ve phuong tien\r\n sukien.TenTau = myLib.toString(sukien.TenTau).toUpperCase();\r\n sukien.HoHieu = myLib.toString(sukien.HoHieu).toUpperCase();\r\n break;\r\n case 'tinhchat': //tinh chat tai nan\r\n break;\r\n case 'dieudong':\r\n sukien.TenTau = myLib.toString(sukien.TenTau).toUpperCase();\r\n break;\r\n }\r\n return sukien;\r\n}\r\n//chuyen doi gia kieu du lieu khi query tu server ve client de edit\r\nexport function chuyenDoi(sukien) {\r\n sukien.ThoiGian = myLib.fromServerTime(sukien.ThoiGian); //server dang hieu la local nen phai chuyen thanh utc\r\n sukien.MaNguonTin = {value: sukien.MaNguonTin, label: sukien.TenDoiTac};\r\n //thong tin tai nan\r\n if(sukien.ThoiGianBaoNan !== undefined && sukien.ThoiGianBaoNan !== null) {\r\n sukien.ThoiGianBaoNan = myLib.fromServerTime(sukien.ThoiGianBaoNan);\r\n }\r\n if(sukien.ThoiGianBiNan !== undefined && sukien.ThoiGianBiNan !== null) {\r\n sukien.ThoiGianBiNan = myLib.fromServerTime(sukien.ThoiGianBiNan);\r\n }\r\n if(sukien.KetThuc !== undefined && sukien.KetThuc !== null) {\r\n sukien.KetThuc = myLib.fromServerTime(sukien.KetThuc);\r\n }\r\n if(sukien.LoaiTB !== undefined && sukien.LoaiTB !== null) {\r\n sukien.LoaiTB = {value: sukien.LoaiTB, label: sukien.TenLoaiTB};\r\n }\r\n if(sukien.MaVung !== undefined && sukien.MaVung !== null) {\r\n sukien.MaVung = {value: sukien.MaVung, label: sukien.TenVung};\r\n }\r\n if(sukien.MaKV !== undefined && sukien.MaKV !== null) {\r\n sukien.MaKV = {value: sukien.MaKV, label: sukien.TenKhuVuc};\r\n }\r\n if(sukien.MaTN !== undefined && sukien.MaTN !== null) {\r\n sukien.MaTN = {value: sukien.MaTN , label: sukien.TenTaiNan}\r\n }\r\n if(sukien.PhoiHopQT_MaQG !== undefined && sukien.PhoiHopQT_MaQG !== null) {\r\n sukien.PhoiHopQT_MaQG = {value: sukien.PhoiHopQT_MaQG, label: sukien. TenQuocGia_PhoiHopQT };\r\n }\r\n if(sukien.PhoiHopQT_MaDoiTac !== undefined && sukien.PhoiHopQT_MaDoiTac !== null) {\r\n sukien.PhoiHopQT_MaDoiTac = {value: sukien.PhoiHopQT_MaDoiTac, label: sukien.PhoiHopQT_TenDoiTac };\r\n }\r\n return sukien;\r\n}\r\n//chuyen doi du lieu phuong tien tu server sang dang client de edit\r\nexport function chuyenDoiPhuongTien(phuongtien) {\r\n if(phuongtien.MaQG !== undefined && phuongtien.MaQG !== null) {\r\n phuongtien.MaQG = {value: phuongtien.MaQG, label: phuongtien.TenQuocGia};\r\n }\r\n if(phuongtien.LoaiTau !== undefined && phuongtien.LoaiTau !== null) {\r\n phuongtien.LoaiTau = {value: phuongtien.LoaiTau, label: phuongtien.TenLoaiTau};\r\n }\r\n return phuongtien;\r\n}\r\nexport function chuyenDoiDieuDong(phuongtien) {\r\n if(phuongtien.NgayRoi !== undefined && phuongtien.NgayRoi !== null) {\r\n phuongtien.NgayRoi = myLib.fromServerTime(phuongtien.NgayRoi);\r\n } \r\n if(phuongtien.NgayKetThuc !== undefined && phuongtien.NgayKetThuc !== null) {\r\n phuongtien.NgayKetThuc = myLib.fromServerTime(phuongtien.NgayKetThuc);\r\n } \r\n if(phuongtien.ThoiGianVT !== undefined && phuongtien.ThoiGianVT !== null) {\r\n phuongtien.ThoiGianVT = myLib.fromServerTime(phuongtien.ThoiGianVT);\r\n } \r\n return phuongtien;\r\n}\r\n/*Validate thong tin ve su kien, tra ve thong tin bao gom truong thong tin co van de va hien thi thong bao neu co */\r\nexport function validate(action, sukien) {\r\n var result = {error: false};\r\n switch(action) {\r\n case 'header': //tac dong den header\r\n if (myLib.isEmpty(sukien.ThoiGian)) {\r\n result.error = true;\r\n result.ThoiGian = {error: true, trangthai: 'Chưa có thời gian'};\r\n }\r\n if (myLib.isEmpty(sukien.TenSK)) {\r\n result.error = true;\r\n result.TenSK = {error: true, trangthai: 'Chưa có tên sự vụ!'};\r\n }\r\n if (myLib.isEmpty(sukien.SoHoSo)) {\r\n result.error = true;\r\n result.SoHoSo = {error: true, trangthai: 'Chưa có mã hồ sơ sự vụ'};\r\n }\r\n break;\r\n case 'tainan': //thong tin ve tai nan\r\n if (myLib.toString(sukien.MaNguonTin) === '' || myLib.toString(sukien.MaNguonTin) === '0') {\r\n result.error = true;\r\n result.MaNguonTin = {error: true, trangthai: 'Chưa có nguồn tin'};\r\n }\r\n if (myLib.toString(sukien.ThoiGianBaoNan) === '') {\r\n result.error = true;\r\n result.ThoiGianBaoNan = {error: true, trangthai: 'Chưa có thời gian báo nạn'};\r\n }\r\n if (myLib.toString(sukien.ThoiGianBiNan) === '') {\r\n result.error = true;\r\n result.ThoiGianBiNan = {error: true, trangthai: 'Chưa có thời gian bị nạn'};\r\n }\r\n if (myLib.toString(sukien.LoaiTB) === '') {\r\n result.error = true;\r\n result.LoaiTB = {error: true, trangthai: 'Chưa có loại thiết bị'};\r\n }\r\n break;\r\n case 'phuongtien': //thong tin ve phuong tien\r\n if (myLib.toString(sukien.TenTau) === '') {\r\n result.error = true;\r\n result.TenTau = {error: true, trangthai: 'Chưa có tên tàu '};\r\n }\r\n if (myLib.toString(sukien.LoaiTau) === '') {\r\n result.error = true;\r\n result.LoaiTau = {error: true, trangthai: 'Chưa có loại tàu'};\r\n }\r\n if (myLib.toString(sukien.MaQG) === '') {\r\n result.error = true;\r\n result.MaQG = {error: true, trangthai: 'Chưa có quốc tịch'};\r\n } \r\n break;\r\n case 'dieudong': //thong tin ve phuong tien dieu dong\r\n if (myLib.toString(sukien.TenTau) === '') {\r\n result.error = true;\r\n result.TenTau = {error: true, trangthai: 'Chưa có tên tàu '};\r\n }\r\n if (myLib.toString(sukien.NgayRoi) === '') {\r\n result.error = true;\r\n result.NgayRoi = {error: true, trangthai: 'Chưa có ngày rời bến'};\r\n }\r\n break; \r\n case 'tinhchat': //tinh chat tai nan\r\n if (myLib.toString(sukien.MaTN) === '') {\r\n result.error = true;\r\n result.MaTN = {error: true, trangthai: 'Chưa có tính chất tai nạn'};\r\n }\r\n break;\r\n case 'ketqua':\r\n if(sukien.TrangThai + '' === '1' && myLib.toString(sukien.KetThuc) !== '') {\r\n result.error = true;\r\n result.KetThuc = {error: true, trangthai: 'Đang xử lý thì không có thời gian kết thúc'};\r\n }\r\n if(sukien.TrangThai + '' === '2' && myLib.toString(sukien.KetThuc) === '') {\r\n result.error = true;\r\n result.KetThuc = {error: true, trangthai: 'Chưa có thời gian kết thúc'};\r\n }\r\n break;\r\n }\r\n return result;\r\n}","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport MyButton from \"./MyButton\";\r\n\r\nclass ConfirmDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleCancel = this.handleCancel.bind(this);\r\n this.handleOK = this.handleOK.bind(this);\r\n this.state = {};\r\n }\r\n componentDidMount() {\r\n\r\n } \r\n static getDerivedStateFromProps(props, state) {\r\n return state;\r\n }\r\n handleCancel = () => {\r\n this.props.callback(false);\r\n }\r\n handleOK = () => {\r\n this.props.callback(true);\r\n }\r\n render() {\r\n return \r\n Xác nhận\r\n \r\n
\r\n {this.props.message}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n}\r\nexport default ConfirmDialog;","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Moment from \"moment\";\r\nimport { FormHelperText } from \"@material-ui/core\";\r\nconst myLib = require(\"../../lib/MyLib\");\r\n\r\nfunction LatEditor(props) {\r\n const { inputRef, ...other } = props;\r\n return (\r\n {\r\n inputRef(ref ? ref.inputElement : null);\r\n }}\r\n mask={[\r\n /[0-9]/,\r\n /[0-9]/,\r\n \".\",\r\n /[0-5]/,\r\n /[0-9]/,\r\n \".\",\r\n /[0-5]/,\r\n /[0-9]/,\r\n /[nsNS]/,\r\n ]}\r\n placeholderChar={\"_\"}\r\n showMask\r\n keepCharPositions={true}\r\n guide={true}\r\n style={{ textTransform: \"uppercase\" }}\r\n />\r\n );\r\n}\r\n\r\nLatEditor.propTypes = {\r\n inputRef: PropTypes.func.isRequired,\r\n};\r\nfunction LonEditor(props) {\r\n const { inputRef, ...other } = props;\r\n return (\r\n {\r\n inputRef(ref ? ref.inputElement : null);\r\n }}\r\n mask={[\r\n /[0-1]/,\r\n /[0-9]/,\r\n /[0-9]/,\r\n \".\",\r\n /[0-5]/,\r\n /[0-9]/,\r\n \".\",\r\n /[0-5]/,\r\n /[0-9]/,\r\n /[ewEW]/,\r\n ]}\r\n placeholderChar={\"_\"}\r\n showMask\r\n keepCharPositions={true}\r\n guide={true}\r\n style={{ textTransform: \"uppercase\" }}\r\n />\r\n );\r\n}\r\n\r\nLonEditor.propTypes = {\r\n inputRef: PropTypes.func.isRequired,\r\n};\r\nconst useStyles = makeStyles((theme) => ({\r\n button: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function MyLatLonEditor(props) {\r\n const [state, setState] = React.useState({ error: false, rawText: \"\" });\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n {props.label === undefined ? \"\" : props.label}\r\n \r\n {\r\n //console.log(\"text value:\", event.target.value);\r\n var raw = event.target.value;\r\n if (props.latlon === \"lat\" && !state.rawText.endsWith(\"N\")) {\r\n if (raw.indexOf(\"_\") === raw.length - 1) {\r\n raw = raw.substring(0, raw.length - 1) + \"N\";\r\n }\r\n } else if (props.latlon === \"lon\" && !state.rawText.endsWith(\"E\")) {\r\n if (raw.indexOf(\"_\") === raw.length - 1) {\r\n raw = raw.substring(0, raw.length - 1) + \"E\";\r\n }\r\n }\r\n var date =\r\n props.latlon === \"lat\"\r\n ? myLib.latFromDMS(raw)\r\n : myLib.lonFromDMS(raw);\r\n setState({ error: date === undefined, rawText: raw });\r\n if (props.onChange) {\r\n props.onChange(date);\r\n }\r\n }}\r\n />\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardTimePicker,\r\n KeyboardDatePicker,\r\n} from \"@material-ui/pickers\";\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst styles = {\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n formControlLabel: {\r\n marginTop: 1,\r\n },\r\n paper: {},\r\n textField: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 250,\r\n },\r\n};\r\n\r\nclass SuKienXuLyDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n sukien: {\r\n nguontin: \"HCM RADIO\",\r\n }, //thong tin ve su kien\r\n };\r\n }\r\n render() {\r\n return
Hello
;\r\n }\r\n handleClickOpen = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose();\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n Cập nhật sự vụ - Xử lý thông tin đến\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Nơi gửi đến:\r\n \r\n \r\n HCM RADIO\r\n \r\n VUNG TAU RADIO\r\n \r\n KHAC\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Khu vực:\r\n \r\n \r\n Vịnh Bắc Bộ\r\n \r\n Hoàng Sa\r\n \r\n Trường Sa\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Loại tàu:\r\n \r\n \r\n Tàu dầu\r\n Tàu hàng\r\n Tàu cá\r\n \r\n \r\n \r\n \r\n \r\n \r\n Quốc tịch:\r\n \r\n \r\n Việt Nam\r\n Trung Quốc\r\n Thái Lan\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Tai nạn:\r\n \r\n \r\n Cháy nổ\r\n Đâm va\r\n Chìm tàu\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\nexport default SuKienXuLyDialog;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardTimePicker,\r\n KeyboardDatePicker,\r\n} from \"@material-ui/pickers\";\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst styles = {\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n formControlLabel: {\r\n marginTop: 1,\r\n },\r\n paper: {},\r\n textField: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 250,\r\n },\r\n};\r\n\r\nclass SuKienXuLyDiDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n sukien: {\r\n nguontin: \"HCM RADIO\",\r\n }, //thong tin ve su kien\r\n };\r\n }\r\n render() {\r\n return
Hello
;\r\n }\r\n handleClickOpen = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose();\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n Cập nhật sự vụ - Xử lý thông tin đi\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Nơi nhận:\r\n \r\n \r\n HCM RADIO\r\n \r\n VUNG TAU RADIO\r\n \r\n KHAC\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Loại thông tin:\r\n \r\n \r\n Báo cáo cấp trên\r\n \r\n Thông báo hàng hải\r\n \r\n Thông báo cho chủ tàu\r\n Thông tin khác\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\nexport default SuKienXuLyDiDialog;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Moment from \"react-moment\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardTimePicker,\r\n KeyboardDatePicker,\r\n} from \"@material-ui/pickers\";\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst styles = {\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n formControlLabel: {\r\n marginTop: 1,\r\n },\r\n paper: {},\r\n textField: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 250,\r\n },\r\n};\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n {\r\n field: \"ThoiGian\",\r\n headerName: \"Thời gian\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"ThoiGian\")}\r\n ),\r\n },\r\n { field: \"lat\", headerName: \"VĐ\", width: 70 },\r\n { field: \"lon\", headerName: \"KĐ\", width: 70 },\r\n];\r\n\r\nclass SuKienPhuongTienDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n sukien: {\r\n nguontin: \"HCM RADIO\",\r\n }, //thong tin ve su kien\r\n dataRows: [],\r\n };\r\n }\r\n render() {\r\n return
Hello
;\r\n }\r\n handleClickOpen = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose();\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n Cập nhật sự vụ - Điều động phương tiện\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Loại tàu:\r\n \r\n \r\n Tàu dầu\r\n Tàu hàng\r\n Tàu cá\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\nexport default SuKienPhuongTienDialog;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\n\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardTimePicker,\r\n KeyboardDatePicker,\r\n} from \"@material-ui/pickers\";\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst styles = {\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n formControlLabel: {\r\n marginTop: 1,\r\n },\r\n paper: {},\r\n textField: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 250,\r\n },\r\n};\r\n\r\nclass SuKienXuLyDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n sukien: {\r\n nguontin: \"HCM RADIO\",\r\n }, //thong tin ve su kien\r\n };\r\n }\r\n render() {\r\n return
Hello
;\r\n }\r\n handleClickOpen = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose();\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n \r\n Cập nhật sự vụ - Kết thúc sự vụ\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Khu vực:\r\n \r\n \r\n Vịnh Bắc Bộ\r\n Hoàng Sa\r\n Trường Sa\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Loại tàu:\r\n \r\n \r\n Tàu dầu\r\n Tàu hàng\r\n Tàu cá\r\n \r\n \r\n \r\n \r\n \r\n \r\n Quốc tịch:\r\n \r\n \r\n Việt Nam\r\n Trung Quốc\r\n Thái Lan\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Tai nạn:\r\n \r\n \r\n Cháy nổ\r\n Đâm va\r\n Chìm tàu\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Thật\"\r\n />\r\n \r\n \r\n }\r\n label=\"Giả\"\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\nexport default SuKienXuLyDialog;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Moment from \"react-moment\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardTimePicker,\r\n KeyboardDatePicker,\r\n} from \"@material-ui/pickers\";\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\nimport SuKienXuLyDialog from \"./SuKienXuLyDialog\";\r\nimport SuKienXuLyDiDialog from \"./SuKienXuLyDiDialog\";\r\nimport SuKienPhuongTienDialog from \"./SuKienPhuongTienDialog\";\r\nimport SuKienKetThucDialog from \"./SuKienKetThucDialog\";\r\n\r\nconst server = require(\"../lib/server.js\");\r\nconst myLib = require(\"../lib/MyLib.js\");\r\n\r\nconst styles = {\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n formControlLabel: {\r\n marginTop: 1,\r\n },\r\n paper: {},\r\n textField: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 250,\r\n },\r\n};\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n {\r\n field: \"HanhDong\",\r\n headerName: \"Nhật ký\",\r\n width: 230,\r\n valueGetter: (params) => {\r\n let hanhdong = params.getValue(\"HanhDong\");\r\n return hanhdong === 1\r\n ? \"Thông tin ban đầu\"\r\n : hanhdong === 2\r\n ? \"Xử lý\"\r\n : hanhdong === 3\r\n ? \"Kết thúc\"\r\n : \"\";\r\n },\r\n },\r\n {\r\n field: \"ThoiGian\",\r\n headerName: \"Thời gian\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"ThoiGian\")}\r\n ),\r\n },\r\n { field: \"TenCoQuan\", headerName: \"Trung tâm\", width: 230 },\r\n];\r\n\r\nclass SuKienChiTietDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleAction = this.handleAction.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n sukien: {\r\n nguontin: \"HCM RADIO\",\r\n }, //thong tin ve su kien\r\n dataRows: [],\r\n xulyden_dialog_show: false,\r\n xulydi_dialog_show: false,\r\n phuongtien_dialog_show: false,\r\n ketthuc_dialog_show: false,\r\n };\r\n }\r\n componentDidMount() {\r\n server\r\n .query(\"sukien/getchitiet?mask=1\")\r\n .then((response) => this.setState({ dataRows: response }))\r\n .catch((error) => console.log(error));\r\n }\r\n render() {\r\n return
Hello
;\r\n }\r\n handleClickOpen = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose();\r\n }\r\n };\r\n handleAction = (action) => {\r\n if (action === \"xulyden\") {\r\n this.setState({ xulyden_dialog_show: true });\r\n }\r\n if (action === \"xulydi\") {\r\n this.setState({ xulydi_dialog_show: true });\r\n }\r\n if (action === \"phuongtien\") {\r\n this.setState({ phuongtien_dialog_show: true });\r\n }\r\n if (action === \"ketthuc\") {\r\n this.setState({ ketthuc_dialog_show: true });\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n \r\n Nhật ký xử lý sự vụ\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {\r\n this.handleAction(\"xulyden\");\r\n }}\r\n color=\"primary\"\r\n text=\"Thông tin đến\"\r\n />\r\n {\r\n this.handleAction(\"xulydi\");\r\n }}\r\n color=\"primary\"\r\n text=\"Thông tin đi\"\r\n />\r\n {\r\n this.handleAction(\"phuongtien\");\r\n }}\r\n color=\"primary\"\r\n text=\"Điều động\"\r\n />\r\n {\r\n this.handleAction(\"ketthuc\");\r\n }}\r\n color=\"primary\"\r\n text=\"Kết thúc\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {this.state.xulyden_dialog_show ? (\r\n {\r\n this.setState({ xulyden_dialog_show: false });\r\n }}\r\n />\r\n ) : null}\r\n {this.state.xulydi_dialog_show ? (\r\n {\r\n this.setState({ xulydi_dialog_show: false });\r\n }}\r\n />\r\n ) : null}\r\n {this.state.phuongtien_dialog_show ? (\r\n {\r\n this.setState({ phuongtien_dialog_show: false });\r\n }}\r\n />\r\n ) : null}\r\n {this.state.ketthuc_dialog_show ? (\r\n {\r\n this.setState({ ketthuc_dialog_show: false });\r\n }}\r\n />\r\n ) : null}\r\n
\r\n );\r\n }\r\n}\r\nexport default SuKienChiTietDialog;\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst danhmuc = require(\"../../lib/DanhMucLayer\");\r\n\r\nclass DoiTacEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n //danh muc quoc gia\r\n loading_quoctich: true, // co dang loading danh muc quoc gia khong\r\n source_quoctich: [], //danh muc options cho quoc tich\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n TenDoiTac: \"\",\r\n LoaiDoiTac: props.LoaiDoiTac === undefined ? \"1\" : props.LoaiDoiTac,\r\n MaQG: \"VNM\",\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"TenDoiTac\",\r\n \"LoaiDoiTac\",\r\n \"MaQG\",\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = danhmuc.validate(\"doitac\", this.state.after);\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"doitac/save\", danhmuc.chuanHoa(\"doitac\", this.state.after))\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, MaDoiTac: response.MaDoiTac };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"doitac/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc quoc gia\r\n server\r\n .query(\"quocgia/getall\")\r\n .then((response) => {\r\n var list = [{value: null, label: '------'}];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaQG, label: item.TenQuocGia })\r\n );\r\n this.setState({ source_quoctich: list, loading_quoctich: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_quoctich: false });\r\n });\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaDoiTac;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"doitac/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"doitac\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_doitac: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Danh mục Đơn vị ngoài\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"TenDoiTac\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenDoiTac !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenDoiTac !== undefined\r\n ? this.state.validateStatus.TenDoiTac.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n Phân loại:\r\n \r\n \r\n this.saveField(\"LoaiDoiTac\", event.target.value)\r\n }\r\n >\r\n Khác\r\n Đài CRS\r\n MRCC nước ngoài\r\n Đơn vị trong nước\r\n Tàu trong khu vực\r\n \r\n \r\n \r\n \r\n \r\n Quốc gia:\r\n \r\n {this.state.loading_quoctich ? (\r\n \r\n ) : (\r\n this.saveField(\"MaQG\", item)}\r\n >\r\n )}\r\n \r\n\r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n normalLabel: {\r\n color: \"black\",\r\n },\r\n redLabel: {\r\n color: \"red\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(DoiTacEditDialog);\r\n","import React from 'react';\r\n\r\nclass MaxWidthDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n render() {\r\n return
Hello
\r\n }\r\n}\r\nexport default MaxWidthDialog;\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport CloudUploadIcon from \"@material-ui/icons/CloudUpload\";\r\nimport KeyboardVoiceIcon from \"@material-ui/icons/KeyboardVoice\";\r\nimport Icon from \"@material-ui/core/Icon\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport MyButton from \"../MyButton\";\r\n\r\nclass FileAttachControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.showFile = this.showFile.bind(this);\r\n this.state = {};\r\n }\r\n //khi load component: load cac danh muc can thiet\r\n componentDidMount() {}\r\n static getDerivedStateFromProps(props, state) {\r\n return state;\r\n }\r\n showFile = (fileID) => {\r\n //console.log(fileID);\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n {this.props.file.FileName}\r\n \r\n {\r\n this.props.requestDelete(this.props.file.FileID);\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n button: {\r\n margin: theme.spacing(1),\r\n },\r\n fileLink: {\r\n flexGrow: 1,\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(FileAttachControl);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport DateTimePicker from \"react-datetime\";\r\nimport \"react-datetime/css/react-datetime.css\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\n\r\nclass SuKienHeaderControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n TenSK: \"\",\r\n SoHoSo: null,\r\n SoPhuongTien: 1,\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var old_changed = this.state.dataChanged;\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"ThoiGian\",\r\n \"TenSK\",\r\n \"SoHoSo\",\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n if(this.props.onChanged && old_changed != s.dataChanged) {\r\n this.props.onChanged(s.dataChanged);\r\n }\r\n console.log(\"before\", s.before, \"after\", s.after);\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n console.log(\"after:\", this.state.after);\r\n var check = sukienLayer.validate(\"header\", this.state.after);\r\n console.log(\"check:\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\r\n \"sukien/saveHeader\",\r\n sukienLayer.chuanHoaSukien(\"header\", this.state.after)\r\n )\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, MaSK: response.MaSK };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n if(this.props.onChanged) {\r\n this.props.onChanged(false);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhmuc();\r\n }\r\n loadDanhmuc() {\r\n //load danh muc quoc gia\r\n if (this.props.value === undefined)\r\n server\r\n .query(\"sukien/GetNextSoHoSo\")\r\n .then((response) => {\r\n this.saveField('SoHoSo', response.SoHoSo);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n classes={{\r\n root: classes.normalPanel,\r\n expanded: classes.expandedPanel,\r\n content: classes.summaryContent\r\n }}\r\n >\r\n Sự vụ\r\n \r\n \r\n \r\n \r\n \r\n Thời gian nhận(*):\r\n \r\n {\r\n var text = event.target.value;\r\n if(this.state.after.ThoiGian === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('ThoiGian', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) => {\r\n this.saveField(\r\n \"ThoiGian\",\r\n date && date.toDate ? date.toDate() : null\r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n this.saveField(\"TenSK\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenSK !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenSK !== undefined\r\n ? this.state.validateStatus.TenSK.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n Số hồ sơ(*):\r\n \r\n \r\n this.saveField(\"SoHoSo\", event.target.value)\r\n }\r\n error={this.state.validateStatus.SoHoSo !== undefined}\r\n helperText={\r\n this.state.validateStatus.SoHoSo !== undefined\r\n ? this.state.validateStatus.SoHoSo.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n label: {\r\n margin: 6,\r\n },\r\n labelError: {\r\n margin: 6,\r\n color: \"red\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n color: \"red\",\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n margin: 0,\r\n minHeight: 11,\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n margin: 0,\r\n minHeight: '10px !important',\r\n },\r\n summaryContent: {\r\n margin: '1px !important',\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SuKienHeaderControl);\r\n","/*Edit thong tin ve nguon tin va tai nan, phuong tien bi nan */\r\nimport React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport SelectFilter from \"react-select\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport DateTimePicker from \"react-datetime\";\r\nimport MyLatLonEditor from \"./LatLonEditor\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\n///////////////////////////////////////////////////////////////////\r\nconst defaultRecord = {\r\n SuKienThat: true,\r\n TrangThai: \"1\", // dang xu ly\r\n KetThuc: null, //thoi gian ket thuc su vu\r\n KetQuaChung: \"0\",\r\n TimKiem: false,\r\n KQTimKiem: \"0\",\r\n CuuNan: false,\r\n KQCuuNan: \"0\",\r\n};\r\nclass SuKienKetQuaControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n //danh muc quoc gia\r\n loading_quoctich: true, // co dang loading danh muc quoc gia khong\r\n source_quoctich: [], //danh muc options cho quoc tich\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? defaultRecord\r\n : { ...defaultRecord, ...{...props.value, TrangThai: props.value.TrangThai === 0 ? 1 : props.value.TrangThai} }, //thong tin dang edit (neu draft thi chuyen trang thai thanh 1)\r\n validateStatus: {},\r\n };\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var old_changed = this.state.dataChanged;\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"SuKienThat\",\r\n \"TrangThai\",\r\n \"KetThuc\",\r\n \"KetQuaChung\",\r\n \"TimKiem\",\r\n \"KQTimKiem\",\r\n \"CuuNan\",\r\n \"KQCuuNan\",\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n console.log(s);\r\n if(this.props.onChanged && old_changed != s.dataChanged) {\r\n this.props.onChanged(s.dataChanged);\r\n }\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n console.log(JSON.stringify(this.state.after));\r\n var check = sukienLayer.validate(\"ketqua\", this.state.after);\r\n if (!check.error) {\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\r\n \"sukien/saveKetQua\",\r\n sukienLayer.chuanHoaSukien(\"ketqua\", this.state.after)\r\n )\r\n .then((response) => {\r\n var before = {};\r\n var after = this.state.after;\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n if(this.props.onChanged) {\r\n this.props.onChanged(false);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n };\r\n loadDanhMuc() {\r\n //load danh muc tai nan\r\n server\r\n .query(\"quocgia/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaQG, label: item.TenQuocGia })\r\n );\r\n this.setState({ source_quoctich: list, loading_quoctich: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_quoctich: false });\r\n });\r\n }\r\n //khi load component: load cac danh muc can thiet\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n var newState = { ...state };\r\n //console.log(\"TaiNanControl props:\", props.value);\r\n if (props.value !== undefined && props.value.MaSK !== state.after.MaSK) {\r\n //console.log(\"co su thay doi\");\r\n //co su thay doi\r\n newState = {\r\n ...newState,\r\n after: { ...state.after, ...props.value },\r\n }; //lay thong tin tu parent form truyen vao thong qua props\r\n }\r\n //console.log(\"TaiNanControl new state:\", newState);\r\n return newState;\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n classes={{\r\n root: classes.normalPanel,\r\n expanded: classes.expandedPanel,\r\n content: classes.summaryContent\r\n }}\r\n >\r\n Kết quả\r\n \r\n \r\n \r\n \r\n \r\n \r\n Trạng thái(*):\r\n \r\n \r\n this.saveField(\"TrangThai\", event.target.value)\r\n }\r\n >\r\n Đang xử lý\r\n Kết thúc\r\n \r\n \r\n \r\n \r\n \r\n Kết thúc:\r\n \r\n {\r\n var text = event.target.value;\r\n if(this.state.after.KetThuc === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('KetThuc', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) => {\r\n this.saveField(\"KetThuc\", date && date.toDate ? date.toDate() : null);\r\n }\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"SuKienThat\", event.target.checked)\r\n }\r\n name=\"chkSuKienThat\"\r\n />\r\n }\r\n label=\"Sự kiện thật\"\r\n />\r\n \r\n \r\n \r\n \r\n Kết quả chung:\r\n \r\n \r\n this.saveField(\"KetQuaChung\", event.target.value)\r\n }\r\n >\r\n Không có KQ\r\n Kết quả một phần\r\n Có kết quả\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.saveField(\"TimKiem\", event.target.checked)\r\n }\r\n name=\"chkTimKiem\"\r\n />\r\n }\r\n label=\"Có tìm kiếm\"\r\n />\r\n \r\n \r\n \r\n \r\n Kết quả:\r\n \r\n \r\n this.saveField(\"KQTimKiem\", event.target.value)\r\n }\r\n >\r\n Không có KQ\r\n Kết quả một phần\r\n Có kết quả\r\n \r\n \r\n \r\n \r\n \r\n this.saveField(\"CuuNan\", event.target.checked)\r\n }\r\n name=\"chkCuuNan\"\r\n />\r\n }\r\n label=\"Có cứu nạn\"\r\n />\r\n \r\n \r\n \r\n \r\n Kết quả:\r\n \r\n \r\n this.saveField(\"KQCuuNan\", event.target.value)\r\n }\r\n >\r\n Không có KQ\r\n Kết quả một phần\r\n Có kết quả\r\n \r\n \r\n \r\n \r\n {this.state.canSaved ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n label: {\r\n margin: 6,\r\n },\r\n labelError: {\r\n margin: 6,\r\n color: \"red\",\r\n },\r\n\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: \"100%\",\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n margin: 0,\r\n minHeight: 11,\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n margin: 0,\r\n minHeight: '10px !important',\r\n },\r\n summaryContent: {\r\n margin: '1px !important',\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SuKienKetQuaControl);\r\n","/*Edit thong tin ve nguon tin va tai nan, phuong tien bi nan */\r\nimport React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport SelectFilter from \"react-select\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport MyLatLonEditor from \"./LatLonEditor\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\n///////////////////////////////////////////////////////////////////\r\nconst defaultRecord = {\r\n DuocCuu_NguoiVN: 0,\r\n DuocCuu_NguoiNN: 0,\r\n DuocCuu_GhiChu: null,\r\n TrucTiep_NguoiVN: 0,\r\n TrucTiep_NguoiNN: 0,\r\n TrucTiep_GhiChu: null,\r\n GianTiep_NguoiVN: 0,\r\n GianTiep_NguoiNN: 0,\r\n GianTiep_GhiChu: null,\r\n BiThuong: 0,\r\n BiChet: 0,\r\n MatTich: 0,\r\n TrucTiep_PhuongTien: 0,\r\n GianTiep_PhuongTien: 0,\r\n BiDam: 0,\r\n};\r\n\r\nclass SuKienKetQuaChiTietControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n //danh muc quoc gia\r\n loading_quoctich: true, // co dang loading danh muc quoc gia khong\r\n source_quoctich: [], //danh muc options cho quoc tich\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? defaultRecord\r\n : { ...defaultRecord, ...props.value }, //thong tin dang edit\r\n validateStatus: {}, \r\n };\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var old_changed = this.state.dataChanged;\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, ['DuocCuu_NguoiVN', 'DuocCuu_NguoiNN', 'DuocCuu_GhiChu', 'TrucTiep_NguoiVN', 'TrucTiep_NguoiNN', 'TrucTiep_GhiChu', 'GianTiep_NguoiVN', 'GianTiep_NguoiNN', 'GianTiep_GhiChu', 'BiThuong', 'BiChet', 'MatTich', 'TrucTiep_PhuongTien', 'GianTiep_PhuongTien', 'BiDam']);\r\n s.canSaved = s.dataChanged;\r\n if(this.props.onChanged && old_changed != s.dataChanged) {\r\n this.props.onChanged(s.dataChanged);\r\n }\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n console.log(JSON.stringify(this.state.after));\r\n var check = sukienLayer.validate(\"ketqua\", this.state.after);\r\n if (!check.error) {\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" }); \r\n server\r\n .post(\r\n \"sukien/saveKetQuaChiTiet\",\r\n sukienLayer.chuanHoaSukien(\"ketqua\", this.state.after)\r\n )\r\n .then((response) => {\r\n var before = {};\r\n var after = this.state.after;\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n if(this.props.onChanged) {\r\n this.props.onChanged(false);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n };\r\n loadDanhMuc() {\r\n //load danh muc tai nan\r\n server\r\n .query(\"quocgia/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaQG, label: item.TenQuocGia })\r\n );\r\n this.setState({ source_quoctich: list, loading_quoctich: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_quoctich: false });\r\n });\r\n }\r\n //khi load component: load cac danh muc can thiet\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n var newState = { ...state };\r\n //console.log(\"TaiNanControl props:\", props.value);\r\n if (props.value !== undefined && props.value.MaSK !== state.after.MaSK) {\r\n //console.log(\"co su thay doi\");\r\n //co su thay doi\r\n newState = {\r\n ...newState,\r\n after: { ...state.after, ...props.value },\r\n }; //lay thong tin tu parent form truyen vao thong qua props\r\n }\r\n //console.log(\"TaiNanControl new state:\", newState);\r\n return newState;\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n classes={{\r\n root: classes.normalPanel,\r\n expanded: classes.expandedPanel,\r\n content: classes.summaryContent\r\n }}\r\n >\r\n Chi tiết kết quả\r\n \r\n \r\n \r\n \r\n \r\n this.saveField(\"DuocCuu_NguoiVN\", event.target.value)\r\n }\r\n onFocus={event => {\r\n event.target.select();\r\n }}\r\n />\r\n \r\n \r\n \r\n this.saveField(\"DuocCuu_NguoiNN\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"DuocCuu_GhiChu\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"TrucTiep_NguoiVN\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"TrucTiep_NguoiNN\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"TrucTiep_GhiChu\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"GianTiep_NguoiVN\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"GianTiep_NguoiNN\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"GianTiep_GhiChu\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"BiThuong\", event.target.value)\r\n }\r\n /> \r\n \r\n \r\n \r\n this.saveField(\"BiChet\", event.target.value)\r\n }\r\n /> \r\n \r\n \r\n \r\n this.saveField(\"MatTich\", event.target.value)\r\n }\r\n /> \r\n \r\n \r\n {this.state.canSaved ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: \"100%\",\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n margin: 0,\r\n minHeight: 11,\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n margin: 0,\r\n minHeight: '10px !important',\r\n },\r\n summaryContent: {\r\n margin: '1px !important',\r\n },\r\n normalLabel: {\r\n color: 'black',\r\n },\r\n redLabel: {\r\n color: 'red',\r\n } \r\n});\r\nexport default withStyles(styles, { withTheme: true })(\r\n SuKienKetQuaChiTietControl\r\n);\r\n","/*Edit thong tin ve nguon tin va tai nan, phuong tien bi nan */\r\nimport React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport SelectFilter from \"react-select\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport { DropzoneArea } from \"material-ui-dropzone\";\r\nimport MyLatLonEditor from \"./LatLonEditor\";\r\nimport FileAttachControl from './FileAttachControl';\r\nimport ConfirmDialog from '../ConfirmDialog';\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\n///////////////////////////////////////////////////////////////////\r\nconst defaultRecord = {\r\n files: [], //danh sach file\r\n};\r\n\r\nclass SuKienDinhKemControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n showConfirmXoa: false, //hien thi dialog confirm xoa file\r\n requestXoaFileID: undefined,\r\n //danh muc quoc gia\r\n loading_quoctich: true, // co dang loading danh muc quoc gia khong\r\n source_quoctich: [], //danh muc options cho quoc tich\r\n //danh sach file da upload\r\n fileDinhKem: props.savedFiles === undefined ? [] : props.savedFiles, \r\n showConfirmXoa: false,\r\n requestXoaFileID: 0,\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : props.value, //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? defaultRecord\r\n : { ...defaultRecord, ...props.value }, //thong tin dang edit\r\n validateStatus: {}, \r\n mountUploader: true,\r\n };\r\n console.log(props.savedFiles, 'file dinh kem');\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = true;\r\n s.canSaved = true;\r\n console.log(s);\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n console.log(JSON.stringify('after file ', this.state.after.files));\r\n var check = sukienLayer.validate(\"dinhkem\", this.state.after);\r\n if (!check.error) {\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" }); \r\n const formData = new FormData();\r\n this.state.after.files.map((item, index) => {\r\n if(item.name !== undefined) {\r\n formData.append('file' + index, item, item.name);\r\n }\r\n });\r\n formData.append('MaSK', this.state.after.MaSK);\r\n server\r\n .upload(\r\n \"sukien/SaveDinhKem\",\r\n formData\r\n )\r\n .then((response) => {\r\n console.log('save dinh kem response:', response);\r\n var before = {};\r\n var after = this.state.after;\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n mountUploader: false,\r\n fileDinhKem: response,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n };\r\n loadDanhMuc() {\r\n }\r\n //khi load component: load cac danh muc can thiet\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n var newState = { ...state };\r\n //console.log(\"TaiNanControl props:\", props.value);\r\n if (props.value !== undefined && props.value.MaSK !== state.after.MaSK) {\r\n //console.log(\"co su thay doi\");\r\n //co su thay doi\r\n newState = {\r\n ...newState,\r\n after: { ...state.after, ...props.value },\r\n }; //lay thong tin tu parent form truyen vao thong qua props\r\n }\r\n //console.log(\"TaiNanControl new state:\", newState);\r\n return newState;\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n classes={{\r\n root: classes.normalPanel,\r\n expanded: classes.expandedPanel,\r\n }}\r\n >\r\n Tài liệu đính kèm\r\n \r\n \r\n \r\n \r\n {this.state.fileDinhKem.map((item, index) => \r\n {\r\n //yeu cau xoa\r\n this.setState({showConfirmXoa: true, requestXoaFileID: fileID});\r\n }} />\r\n )\r\n }\r\n {this.state.showConfirmXoa ? {\r\n //thuc hien xoa file\r\n if(ok) {\r\n this.setState({\r\n showConfirmXoa: false,\r\n validateStatus: {},\r\n saving: true,\r\n errorLog: \"\",\r\n });\r\n //call api to clear\r\n server\r\n .post(\"sukien/removeDinhkem\", {FileID: this.state.requestXoaFileID})\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n dataSaved: true,\r\n fileDinhKem: response,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n else {\r\n this.setState({\r\n showConfirmXoa: false,\r\n });\r\n }\r\n }} />:null}\r\n \r\n \r\n {this.state.mountUploader ?\r\n {\r\n console.log(\"Files:\", files);\r\n this.saveField('files', files);\r\n }\r\n }\r\n /> : this.setState({mountUploader: true})} /> }\r\n \r\n \r\n {this.state.canSaved ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: \"100%\",\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SuKienDinhKemControl);\r\n","/*Edit thong tin ve nguon tin va tai nan, phuong tien bi nan */\r\nimport React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport PropTypes from \"prop-types\";\r\nimport SelectFilter from \"react-select\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport MyLatLonEditor from \"./LatLonEditor\";\r\nimport \"../sukien.css\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\n///////////////////////////////////////////////////////////////////\r\nconst defaultRecord = {\r\n DuocCuu_NguoiVN: 0,\r\n DuocCuu_NguoiNN: 0,\r\n DuocCuu_GhiChu: null,\r\n TrucTiep_NguoiVN: 0,\r\n TrucTiep_NguoiNN: 0,\r\n TrucTiep_GhiChu: null,\r\n GianTiep_NguoiVN: 0,\r\n GianTiep_NguoiNN: 0,\r\n GianTiep_GhiChu: null,\r\n BiThuong: 0,\r\n BiChet: 0,\r\n MatTich: 0,\r\n TrucTiep_PhuongTien: 0,\r\n GianTiep_PhuongTien: 0,\r\n BiDam: 0,\r\n};\r\nconst PhuongThucGui = [\"Khác\", \"Thoại\", \"Fax\", \"Email\"];\r\nconst columns = [\r\n {\r\n field: \"ThoiGianNhan\",\r\n headerName: \"Thời gian nhận\",\r\n width: 130,\r\n renderCell: (params) =>\r\n params.getValue(\"ThoiGianNhan\") !== null ? (\r\n \r\n {params.getValue(\"ThoiGianNhan\")}\r\n \r\n ) : (\r\n \"\"\r\n ),\r\n },\r\n {\r\n field: \"NoiGui\",\r\n headerName: \"Nơi gửi\",\r\n width: 230,\r\n renderCell: (params) => params.getValue(\"NoiGui\"),\r\n },\r\n {\r\n field: \"PhuongThucNhan\",\r\n headerName: \"Phương thức\",\r\n width: 130,\r\n renderCell: (params) => PhuongThucGui[params.getValue(\"PhuongThucNhan\")],\r\n },\r\n {\r\n field: \"NoiDungNhan\",\r\n headerName: \"Nội dung\",\r\n width: 200,\r\n renderCell: (params) => (\r\n
{params.getValue(\"NoiDungNhan\")}
\r\n ),\r\n },\r\n {\r\n field: \"ThoiGianGui\",\r\n headerName: \"Thời gian gửi\",\r\n width: 130,\r\n renderCell: (params) =>\r\n params.getValue(\"ThoiGianGui\") !== null ? (\r\n \r\n {params.getValue(\"ThoiGianGui\")}\r\n \r\n ) : (\r\n \"\"\r\n ),\r\n },\r\n {\r\n field: \"NoiNhan\",\r\n headerName: \"Nơi nhận\",\r\n width: 230,\r\n renderCell: (params) => params.getValue(\"NoiNhan\"),\r\n },\r\n {\r\n field: \"PhuongThucGui\",\r\n headerName: \"Phương thức\",\r\n width: 130,\r\n renderCell: (params) => PhuongThucGui[params.getValue(\"PhuongThucGui\")],\r\n },\r\n { field: \"NoiDungGui\", headerName: \"Nội dung\", width: 200,\r\n renderCell: (params) => (\r\n
{params.getValue(\"NoiDungGui\")}
\r\n ),\r\n },\r\n];\r\nclass SuKienTrucBanControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n //danh muc quoc gia\r\n loading_quoctich: true, // co dang loading danh muc quoc gia khong\r\n source_quoctich: [], //danh muc options cho quoc tich\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? defaultRecord\r\n : { ...defaultRecord, ...props.value }, //thong tin dang edit\r\n validateStatus: {}, \r\n dataRows: [], //danh sach ban ghi\r\n };\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var old_changed = this.state.dataChanged;\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, ['DuocCuu_NguoiVN', 'DuocCuu_NguoiNN', 'DuocCuu_GhiChu', 'TrucTiep_NguoiVN', 'TrucTiep_NguoiNN', 'TrucTiep_GhiChu', 'GianTiep_NguoiVN', 'GianTiep_NguoiNN', 'GianTiep_GhiChu', 'BiThuong', 'BiChet', 'MatTich', 'TrucTiep_PhuongTien', 'GianTiep_PhuongTien', 'BiDam']);\r\n s.canSaved = s.dataChanged;\r\n if(this.props.onChanged && old_changed != s.dataChanged) {\r\n this.props.onChanged(s.dataChanged);\r\n }\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n console.log(JSON.stringify(this.state.after));\r\n var check = sukienLayer.validate(\"ketqua\", this.state.after);\r\n if (!check.error) {\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" }); \r\n server\r\n .post(\r\n \"sukien/saveKetQuaChiTiet\",\r\n sukienLayer.chuanHoaSukien(\"ketqua\", this.state.after)\r\n )\r\n .then((response) => {\r\n var before = {};\r\n var after = this.state.after;\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n if(this.props.onChanged) {\r\n this.props.onChanged(false);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n };\r\n loadDanhMuc() {\r\n //load danh muc tai nan\r\n server\r\n .query(\"trucban/GetBySuKien?mask=\" + this.state.after.MaSK )\r\n .then((response) => {\r\n var danhsach = response;\r\n danhsach.map((item, index) => {\r\n item.id = index + 1;\r\n });\r\n this.setState({ dataRows: response });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_quoctich: false });\r\n });\r\n }\r\n //khi load component: load cac danh muc can thiet\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n var newState = { ...state };\r\n //console.log(\"TaiNanControl props:\", props.value);\r\n if (props.value !== undefined && props.value.MaSK !== state.after.MaSK) {\r\n //console.log(\"co su thay doi\");\r\n //co su thay doi\r\n newState = {\r\n ...newState,\r\n after: { ...state.after, ...props.value },\r\n }; //lay thong tin tu parent form truyen vao thong qua props\r\n }\r\n //console.log(\"TaiNanControl new state:\", newState);\r\n return newState;\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n classes={{\r\n root: classes.normalPanel,\r\n expanded: classes.expandedPanel,\r\n content: classes.summaryContent\r\n }}\r\n >\r\n Nhật ký xử lý của trực ban\r\n \r\n \r\n \r\n \r\n
\r\n {\r\n this.setState({\r\n Editting_TrucBanID: params.data.TrucBanID,\r\n Editting_ChieuDen: params.data.ChieuDen,\r\n });\r\n }}\r\n />\r\n
\r\n
\r\n \r\n {this.state.canSaved ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: \"100%\",\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n margin: 0,\r\n minHeight: 11,\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n margin: 0,\r\n minHeight: '10px !important',\r\n },\r\n summaryContent: {\r\n margin: '1px !important',\r\n },\r\n normalLabel: {\r\n color: 'black',\r\n },\r\n redLabel: {\r\n color: 'red',\r\n } ,\r\n gridContainer: {\r\n height: 285,\r\n },\r\n divGrid: {\r\n height: 300,\r\n },\r\n root: {\r\n '& .MuiDataGrid-columnsContainer': {\r\n backgroundColor: theme.palette.type === 'light' ? '#eaeaea' : '#1d1d1d',\r\n },\r\n }\r\n});\r\nexport default withStyles(styles, { withTheme: true })(\r\n SuKienTrucBanControl\r\n);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardTimePicker,\r\n KeyboardDatePicker,\r\n} from \"@material-ui/pickers\";\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\nimport SuKienHeaderControl from \"./controls/SuKienHeaderControl\";\r\nimport SuKienTaiNanControl from \"./controls/SuKienTaiNanControl\";\r\nimport SuKienPhuongTienControl from \"./controls/SuKienPhuongTienControl\";\r\nimport SuKienTinhChatControl from \"./controls/SuKienTinhChatControl\";\r\nimport SuKienXuLyControl from \"./controls/SuKienXuLyControl\";\r\nimport SuKienKetQuaControl from \"./controls/SuKienKetQuaControl\";\r\nimport SuKienKetQuaChiTietControl from \"./controls/SuKienKetQuaChiTietControl\";\r\nimport SuKienDinhKemControl from \"./controls/SuKienDinhKemControl\";\r\nimport SuKienDieuDongControl from \"./controls/SuKienDieuDongControl\";\r\nimport SuKienTrucBanControl from './controls/SuKienTrucBanControl';\r\nimport AlertDialog from \"./AlertDialog\";\r\nimport ConfirmDialog from \"./ConfirmDialog\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\nconst sukienLayer = require(\"../lib/SuKienDataLayer\");\r\n\r\nclass SuKienEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleXoa = this.handleXoa.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleDataChanged = this.handleDataChanged.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"xl\",\r\n formReady: false, //trang thai form san sang\r\n dataSaved: undefined, //du lieu duoc saved\r\n expandedTainan: false, //co expand control tai nan hay khong\r\n //quan ly tong so phuong tien\r\n SoPhuongTien: 0, //so control phuong tien da duoc cap nhat trong DB\r\n DanhSachPhuongTien: [undefined], //index theo stt bat dau tu 1\r\n PhuongTien2: false, //cho phep edit phuong tien thu 2 hay khong\r\n PhuongTien3: false, //cho phep edit phuong tien thu 3 hay khong\r\n //quan ly dieu dong phuong tien\r\n SoDieuDong: 0,\r\n DanhSachDieuDong: [undefined],\r\n DieuDong2: false,\r\n DieuDong3: false,\r\n //danh sach file dinh kem neu co\r\n DinhKem: [],\r\n errorLog: \"\",\r\n //thoat hay khong\r\n dataChanged: 0, //du lieu co bi thay doi hay khong\r\n showCloseConfirm: false,\r\n };\r\n }\r\n handleClickOpen = () => {\r\n this.setState({ open: true });\r\n };\r\n handleXoa = () => {\r\n //xoa su kien\r\n server\r\n .post(\"sukien/xoa\", { MaSK: this.props.MaSK })\r\n .then((response) => {\r\n this.handleClose();\r\n })\r\n .catch((error) => this.setState({ errorLog: error + \"\" }));\r\n };\r\n handleClose = (show) => {\r\n if (show && this.state.dataChanged > 0) {\r\n this.setState({ showCloseConfirm: true });\r\n } else {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose();\r\n }\r\n }\r\n };\r\n componentDidMount() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaSK;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"sukien/get?mask=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response.sukien;\r\n sukien = sukienLayer.chuyenDoi(sukien); //chuyen doi gia tri\r\n //phuong tien\r\n var phuongtien = response.phuongtien;\r\n var list_phuongtien = [undefined];\r\n if (\r\n phuongtien != undefined &&\r\n phuongtien != null &&\r\n phuongtien.length > 0\r\n ) {\r\n phuongtien.map((item, index) => {\r\n var temp = sukienLayer.chuyenDoiPhuongTien(item);\r\n list_phuongtien.push(temp);\r\n });\r\n }\r\n //dieu dong phuong tien\r\n var dieudong = response.dieudong;\r\n var list_dieudong = [undefined];\r\n if (\r\n dieudong != undefined &&\r\n dieudong != null &&\r\n dieudong.length > 0\r\n ) {\r\n dieudong.map((item, index) => {\r\n var temp = sukienLayer.chuyenDoiDieuDong(item);\r\n list_dieudong.push(temp);\r\n });\r\n }\r\n\r\n this.setState({\r\n formReady: true,\r\n dataSaved: sukien,\r\n DanhSachPhuongTien: list_phuongtien,\r\n PhuongTien2: list_phuongtien.length > 2,\r\n DinhKem: response.dinhkem,\r\n DanhSachDieuDong: list_dieudong,\r\n DieuDong2: list_dieudong.length > 2,\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_coquan: false });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleDataChanged = (changed) => {\r\n this.setState({dataChanged: this.state.dataChanged + (changed ? 1 : -1)});\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Thông tin sự vụ\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {this.state.formReady ? (\r\n {\r\n this.setState({ dataSaved: data, expandedTainan: true });\r\n console.log(\"data saved:\", data);\r\n }}\r\n onChanged = {this.handleDataChanged}\r\n />\r\n ) : null}\r\n {this.state.formReady ? (\r\n \r\n ) : null}\r\n {this.state.formReady ? (\r\n {\r\n var has = false;\r\n this.state.DanhSachPhuongTien[1] = data;\r\n this.setState(this.state);\r\n }}\r\n allowAddMore={\r\n this.state.DanhSachPhuongTien[1] !== undefined &&\r\n !this.state.PhuongTien2\r\n }\r\n onAddMore={(stt) => {\r\n this.setState({ PhuongTien2: true });\r\n }}\r\n onChanged = {this.handleDataChanged}\r\n />\r\n ) : null}\r\n {this.state.PhuongTien2 ? (\r\n {\r\n this.state.DanhSachPhuongTien[2] = data;\r\n this.setState(this.state);\r\n }}\r\n onRemoved={(stt) => {\r\n //xoa control\r\n this.setState({ PhuongTien2: false });\r\n }}\r\n onChanged = {this.handleDataChanged}\r\n />\r\n ) : undefined}\r\n {this.state.formReady ? (\r\n \r\n ) : null}\r\n {this.state.formReady ? (\r\n \r\n ) : null}\r\n {this.state.formReady ? (\r\n {\r\n var has = false;\r\n this.state.DanhSachDieuDong[1] = data;\r\n this.setState(this.state);\r\n }}\r\n allowAddMore={\r\n this.state.DanhSachDieuDong[1] !== undefined &&\r\n !this.state.DieuDong2\r\n }\r\n onAddMore={(stt) => {\r\n this.setState({ DieuDong2: true });\r\n }}\r\n onChanged = {this.handleDataChanged}\r\n />\r\n ) : null}\r\n {this.state.DieuDong2 ? (\r\n {\r\n this.state.DanhSachDieuDong[2] = data;\r\n this.setState(this.state);\r\n }}\r\n onRemoved={(stt) => {\r\n //xoa control\r\n this.setState({ DieuDong2: false });\r\n }}\r\n onChanged = {this.handleDataChanged}\r\n />\r\n ) : undefined}\r\n {this.state.formReady ? (\r\n \r\n ) : null} \r\n {this.state.formReady ? (\r\n \r\n ) : null}\r\n {this.state.formReady ? (\r\n \r\n ) : null}\r\n {this.state.formReady ? (\r\n \r\n ) : null}\r\n \r\n {this.state.errorLog === \"\" ? null : (\r\n this.setState({ errorLog: \"\" })}\r\n />\r\n )}\r\n {this.state.showCloseConfirm ? (\r\n {\r\n this.setState({ showCloseConfirm: false });\r\n if (ok) {\r\n this.handleClose(false);\r\n }\r\n }}\r\n />\r\n ) : null}\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n formControlLabel: {\r\n marginTop: 1,\r\n },\r\n paper: {},\r\n textField: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 250,\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SuKienEditDialog);\r\n","import * as React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ol_Map from 'ol/Map';\r\nimport ol_View from 'ol/View';\r\nimport {defaults as ol_control_defaults} from 'ol/control';\r\nimport {defaults as ol_interaction_defaults} from 'ol/interaction';\r\nimport { Util } from './util';\r\nimport './ol.css';\r\nimport './map.css';\r\nimport { Controls } from \"./controls\";\r\nimport { Interactions } from \"./interactions\";\r\n/**\r\n * Implementation of ol_map https://openlayers.org/en/latest/apidoc/ol_Map.html\r\n *\r\n * example:\r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n */\r\nclass Map extends React.Component {\r\n /**\r\n * Component mounting LifeCycle; constructor, componentDidMount, and render\r\n * https://facebook.github.io/react/docs/react-component.html#mounting\r\n */\r\n constructor(props) {\r\n super(props);\r\n this.layers = [];\r\n this.interactions = [];\r\n this.controls = [];\r\n this.overlays = [];\r\n this.options = {\r\n pixelRation: undefined,\r\n keyboardEventTarget: undefined,\r\n loadTilesWhileAnimation: undefined,\r\n loadTilesWhileInteractiong: undefined,\r\n logo: undefined,\r\n renderer: undefined,\r\n //new options for map component : setZoom, SetCenter, setResolution\r\n /* Added by : Harinder Randhawa */\r\n setCenter: undefined,\r\n setZoom: undefined,\r\n setResolution: undefined,\r\n view: new ol_View(props.view),\r\n controls: undefined,\r\n interactions: undefined,\r\n layers: undefined,\r\n overlays: undefined\r\n };\r\n this.events = {\r\n 'change': undefined,\r\n 'change:layerGroup': undefined,\r\n 'change:size': undefined,\r\n 'change:target': undefined,\r\n 'change:view': undefined,\r\n 'click': undefined,\r\n 'dblclick': undefined,\r\n 'moveend': undefined,\r\n 'pointerdrag': undefined,\r\n 'pointermove': undefined,\r\n 'postcompose': undefined,\r\n 'postrender': undefined,\r\n 'precompose': undefined,\r\n 'propertychange': undefined,\r\n 'singleclick': undefined\r\n };\r\n this.map = undefined;\r\n console.log('Map constructor');\r\n }\r\n componentDidMount() {\r\n let options = Util.getOptions(Object.assign(this.options, this.props));\r\n !(options.view instanceof ol_View) && (options.view = new ol_View(options.view));\r\n let controlsCmp = Util.findChild(this.props.children, Controls) || {};\r\n let interactionsCmp = Util.findChild(this.props.children, Interactions) || {};\r\n options.controls = ol_control_defaults(controlsCmp.props).extend(this.controls);\r\n options.interactions = ol_interaction_defaults(interactionsCmp.props).extend(this.interactions);\r\n options.layers = this.layers;\r\n options.overlays = this.overlays;\r\n console.log('map options', options);\r\n this.map = new ol_Map(options);\r\n this.map.setTarget(options.target || this.mapDiv);\r\n //regitster events\r\n let olEvents = Util.getEvents(this.events, this.props);\r\n for (let eventName in olEvents) {\r\n console.log(eventName);\r\n this.map.on(eventName, olEvents[eventName]);\r\n }\r\n }\r\n // update the view with new props\r\n /* Modified by Harinder Randhawa */\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.view && nextProps.view.center !== this.props.view.center) {\r\n this.map.getView().setCenter(nextProps.view.center);\r\n }\r\n if (this.props.view && nextProps.view.zoom !== this.props.view.zoom) {\r\n this.map.getView().setZoom(nextProps.view.zoom);\r\n }\r\n }\r\n render() {\r\n return (React.createElement(\"div\", { className: \"openlayers-map1\", style: this.props.style, ref: (el) => this.mapDiv = el }, this.props.children));\r\n }\r\n /**\r\n * Component Updating LifeCycle\r\n * https://facebook.github.io/react/docs/react-component.html#updating\r\n */\r\n //componentWillReceiveProps(nextProps)\r\n //shouldComponentUpdate(nextProps, nextState)\r\n //componentWillUpdate(nextProps, nextState)\r\n //componentDidUpdate(prevProps, prevState)\r\n /**\r\n * Component Unmounting LifeCycle\r\n * https://facebook.github.io/react/docs/react-component.html#unmounting\r\n */\r\n componentWillUnmount() {\r\n this.map.setTarget(undefined);\r\n }\r\n // Ref. https://facebook.github.io/react/docs/context.html#how-to-use-context\r\n getChildContext() {\r\n return {\r\n mapComp: this,\r\n map: this.map\r\n };\r\n }\r\n}\r\n// Ref. https://facebook.github.io/react/docs/context.html#how-to-use-context\r\nMap.childContextTypes = {\r\n mapComp: PropTypes.instanceOf(Map),\r\n map: PropTypes.instanceOf(ol_Map)\r\n};\r\nexport default Map;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_DoubleClickZoom from 'ol/interaction/DoubleClickZoom';\n\nimport { Util } from \"../util\";\nimport Map from '../map';\n\nexport class DoubleClickZoom extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n duration: undefined,\n delta: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.interaction = new ol_interaction_DoubleClickZoom(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_DoubleClickZoom(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nDoubleClickZoom['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_DragAndDrop from 'ol/interaction/DragAndDrop';\nimport { Util } from \"../util\";\nimport Map from '../map';\n\nexport class DragAndDrop extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n formatConstructors: undefined,\n projection: undefined,\n target: undefined\n };\n this.events = {\n 'addfeatures': undefined,\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n console.log('options', options);\n this.interaction = new ol_interaction_DragAndDrop(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_DragAndDrop(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nDragAndDrop['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_DragBox from 'ol/interaction/DragBox';\nimport { Util } from \"../util\";\nimport Map from '../map';\n\n\nexport class DragBox extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n className: undefined,\n condition: undefined,\n boxEndCondition: undefined\n };\n this.events = {\n 'boxdrag': undefined,\n 'boxend': undefined,\n 'boxstart': undefined,\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n console.log('options', options);\n this.interaction = new ol_interaction_DragBox(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_DragBox(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nDragBox['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_DragPan from 'ol/interaction/DragPan';\nimport { Util } from \"../util\";\nimport Map from '../map';\n\nexport class DragPan extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n condition: undefined,\n kinetic: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n console.log('options', options);\n this.interaction = new ol_interaction_DragPan(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_DragPan(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nDragPan['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_DragRotate from 'ol/interaction/DragRotate';\nimport { Util } from \"../util\";\nimport Map from '../map';\n\nexport class DragRotate extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n condition: undefined,\n duration: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n console.log('options', options);\n this.interaction = new ol_interaction_DragRotate(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_DragRotate(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nDragRotate['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_DragRotateAndZoom from 'ol/interaction/DragRotateAndZoom';\nimport { Util } from \"../util\";\nimport Map from '../map';\n\nexport class DragRotateAndZoom extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n condition: undefined,\n duration: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n console.log('options', options);\n this.interaction = new ol_interaction_DragRotateAndZoom(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_DragRotateAndZoom(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nDragRotateAndZoom['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_DragZoom from 'ol/interaction/DragZoom';\nimport { Util } from \"../util\";\nimport Map from '../map';\n\nexport class DragZoom extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n className: undefined,\n condition: undefined,\n duration: undefined,\n out: undefined\n };\n this.events = {\n 'boxdrag': undefined,\n 'boxend': undefined,\n 'boxstart': undefined,\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n console.log('options', options);\n this.interaction = new ol_interaction_DragZoom(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_DragZoom(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nDragZoom['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_Draw from 'ol/interaction/Draw';\nimport { Util } from \"../util\";\nimport Map from '../map';\n\nexport class Draw extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n clickTolerance: undefined,\n features: undefined,\n source: undefined,\n snapTolerance: undefined,\n type: undefined,\n maxPoints: undefined,\n minPoints: undefined,\n finishCondition: undefined,\n style: undefined,\n geometryFunction: undefined,\n geometryName: undefined,\n condition: undefined,\n freehand: undefined,\n freehandCondition: undefined,\n wrapX: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'drawend': undefined,\n 'drawstart': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.interaction = new ol_interaction_Draw(options);\n this.context.mapComp.interactions.push(this.interaction);\n this.context.mapComp.map.addInteraction(this.interaction); //hoan add dong này\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_Draw(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nDraw['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_Extent from 'ol/interaction/Extent';\nimport { Util } from \"../util\";\nimport Map from '../map';\n\nexport class Extent extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n extent: undefined,\n boxStyle: undefined,\n pointerStyle: undefined,\n wrapX: undefined\n };\n this.events = {\n 'Event': undefined,\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n console.log('options', options);\n this.interaction = new ol_interaction_Extent(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_Extent(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nExtent['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nexport class Interactions extends React.Component {\n render() {\n return (React.createElement(\"div\", null, this.props.children));\n }\n}","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_KeyboardPan from 'ol/interaction/KeyboardPan';\nimport { Util } from \"../util\";\nimport Map from '../map';\nexport class KeyboardPan extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n condition: undefined,\n duration: undefined,\n pixelDelta: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n console.log('options', options);\n this.interaction = new ol_interaction_KeyboardPan(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_KeyboardPan(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nKeyboardPan['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_KeyboardZoom from 'ol/interaction/KeyboardZoom';\nimport { Util } from \"../util\";\nimport Map from '../map';\nexport class KeyboardZoom extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n condition: undefined,\n duration: undefined,\n delta: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n console.log('options', options);\n this.interaction = new ol_interaction_KeyboardZoom(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_KeyboardZoom(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nKeyboardZoom['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_Modify from 'ol/interaction/Modify';\nimport { Util } from \"../util\";\nimport Map from '../map';\nexport class Modify extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n condition: undefined,\n deleteCondition: undefined,\n pixelTolerance: undefined,\n style: undefined,\n features: undefined,\n wrapX: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'modifyend': undefined,\n 'modifystart': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n console.log('options', options);\n this.interaction = new ol_interaction_Modify(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_Modify(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nModify['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_MouseWheelZoom from 'ol/interaction/MouseWheelZoom';\nimport { Util } from \"../util\";\nimport Map from '../map';\nexport class MouseWheelZoom extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n duration: undefined,\n timeout: undefined,\n useAnchor: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n console.log('options', options);\n this.interaction = new ol_interaction_MouseWheelZoom(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_MouseWheelZoom(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nMouseWheelZoom['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_PinchRotate from 'ol/interaction/PinchRotate';\nimport { Util } from \"../util\";\nimport Map from '../map';\nexport class PinchRotate extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n duration: undefined,\n threshold: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.interaction = new ol_interaction_PinchRotate(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_PinchRotate(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nPinchRotate['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_PinchZoom from 'ol/interaction/PinchZoom';\nimport { Util } from \"../util\";\nimport Map from '../map';\nexport class PinchZoom extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n duration: undefined,\n constrainResolution: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n console.log('double-click-zoom options', options);\n this.interaction = new ol_interaction_PinchZoom(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_PinchZoom(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nPinchZoom['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_Pointer from 'ol/interaction/Pointer';\nimport { Util } from \"../util\";\nimport Map from '../map';\nexport class Pointer extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n handleDownEvent: undefined,\n handleDragEvent: undefined,\n handleEvent: undefined,\n handleMoveEvent: undefined,\n handleUpEvent: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.interaction = new ol_interaction_Pointer(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_Pointer(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nPointer['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_Select from 'ol/interaction/Select';\nimport { Util } from \"../util\";\nimport Map from '../map';\nexport class Select extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n addCondition: undefined,\n condition: undefined,\n layers: undefined,\n style: undefined,\n removeCondition: undefined,\n toggleCondition: undefined,\n multi: undefined,\n features: undefined,\n filter: undefined,\n wrapX: undefined,\n hitTolerance: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined,\n 'select': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n if (this.props.instance) {\n this.interaction = this.props.instance;\n }\n else {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.interaction = new ol_interaction_Select(options);\n }\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n if (this.props.instance) {\n this.interaction = this.props.instance;\n }\n else {\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_Select(options);\n }\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nSelect['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_Snap from 'ol/interaction/Snap';\nimport { Util } from \"../util\";\nimport Map from '../map';\nexport class Snap extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n features: undefined,\n edge: undefined,\n vertex: undefined,\n pixelTolerance: undefined,\n source: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.interaction = new ol_interaction_Snap(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_Snap(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nSnap['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_interaction_Translate from 'ol/interaction/Translate';\nimport { Util } from \"../util\";\nimport Map from '../map';\nexport class Translate extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n features: undefined,\n layers: undefined,\n hitTolerance: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:active': undefined,\n 'propertychange': undefined,\n 'translateend': undefined,\n 'translatestart': undefined,\n 'translating': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.interaction = new ol_interaction_Translate(options);\n this.context.mapComp.interactions.push(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n this.context.mapComp.map.removeInteraction(this.interaction);\n let options = Util.getOptions(Object['assign'](this.options, nextProps));\n this.interaction = new ol_interaction_Translate(options);\n this.context.mapComp.map.addInteraction(this.interaction);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.interaction.on(eventName, olEvents[eventName]);\n }\n }\n }\n componentWillUnmount() {\n this.context.mapComp.map.removeInteraction(this.interaction);\n }\n}\nTranslate['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import { DoubleClickZoom } from './double-click-zoom';\nimport { DragAndDrop } from './drag-and-drop';\nimport { DragBox } from './drag-box';\nimport { DragPan } from './drag-pan';\nimport { DragRotate } from './drag-rotate';\nimport { DragRotateAndZoom } from './drag-rotate-and-zoom';\nimport { DragZoom } from './drag-zoom';\nimport { Draw } from './draw';\nimport { Extent } from './extent';\nimport { Interactions } from './interactions';\nimport { KeyboardPan } from './keyboard-pan';\nimport { KeyboardZoom } from './keyboard-zoom';\nimport { Modify } from './modify';\nimport { MouseWheelZoom } from './mouse-wheel-zoom';\nimport { PinchRotate } from './pinch-rotate';\nimport { PinchZoom } from './pinch-zoom';\nimport { Pointer } from './pointer';\nimport { Select } from './select';\nimport { Snap } from './snap';\nimport { Translate } from './translate';\nlet interaction = {\n DoubleClickZoom: DoubleClickZoom,\n DragAndDrop: DragAndDrop,\n DragBox: DragBox,\n DragPan: DragPan,\n DragRotate: DragRotate,\n DragRotateAndZoom: DragRotateAndZoom,\n DragZoom: DragZoom,\n Draw: Draw,\n Extent: Extent,\n KeyboardPan: KeyboardPan,\n KeyboardZoom: KeyboardZoom,\n Modify: Modify,\n MouseWheelZoom: MouseWheelZoom,\n PinchRotate: PinchRotate,\n PinchZoom: PinchZoom,\n Pointer: Pointer,\n Select: Select,\n Snap: Snap,\n Translate: Translate\n};\nexport { Interactions, interaction };","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_control_ScaleLine from 'ol/control/ScaleLine';\nimport { Util } from '../util';\nimport Map from '../map';\n\nexport class ScaleLine extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n className: undefined,\n minWidth: undefined,\n render: undefined,\n target: undefined,\n units: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:units': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object.assign(this.options, this.props));\n this.control = new ol_control_ScaleLine(options);\n this.context.mapComp.controls.push(this.control);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.control.on(eventName, olEvents[eventName]);\n }\n }\n}\nScaleLine['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_control_Attribution from 'ol/control/Attribution';\n\nimport { Util } from '../util';\nimport Map from '../map';\n\nexport class Attribution extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n className: undefined,\n target: undefined,\n collapsible: undefined,\n collapsed: undefined,\n tipLabel: undefined,\n label: undefined,\n collapseLabel: undefined,\n render: undefined\n };\n this.events = {\n 'change': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.control = new ol_control_Attribution(options);\n this.context.mapComp.controls.push(this.control);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.control.on(eventName, olEvents[eventName]);\n }\n }\n}\nAttribution['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_control_FullScreen from 'ol/control/FullScreen';\nimport { Util } from '../util';\nimport Map from '../map';\n\nexport class FullScreen extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n className: undefined,\n label: undefined,\n labelActive: undefined,\n tipLabel: undefined,\n keys: undefined,\n target: undefined,\n source: undefined\n };\n this.events = {\n 'change': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.control = new ol_control_FullScreen(options);\n this.context.mapComp.controls.push(this.control);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.control.on(eventName, olEvents[eventName]);\n }\n }\n}\nFullScreen['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_control_MousePosition from 'ol/control/MousePosition';\n\nimport { Util } from '../util';\nimport Map from '../map';\nexport class MousePosition extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n className: undefined,\n coordinateFormat: undefined,\n projection: undefined,\n render: undefined,\n target: undefined,\n undefinedHTML: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:coordinateFormat': undefined,\n 'change:projection': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.control = new ol_control_MousePosition(options);\n this.context.mapComp.controls.push(this.control);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.control.on(eventName, olEvents[eventName]);\n }\n }\n}\nMousePosition['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_control_OverviewMap from 'ol/control/OverviewMap';\nimport { Util } from '../util';\nimport Map from '../map';\n\nexport class OverviewMap extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n collapsed: undefined,\n collapseLabel: undefined,\n collapsible: undefined,\n label: undefined,\n layers: undefined,\n render: undefined,\n target: undefined,\n tipLabel: undefined,\n view: undefined\n };\n this.events = {\n 'change': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.control = new ol_control_OverviewMap(options);\n this.context.mapComp.controls.push(this.control);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.control.on(eventName, olEvents[eventName]);\n }\n }\n}\nOverviewMap['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_control_Rotate from 'ol/control/Rotate';\nimport { Util } from '../util';\n\nimport Map from '../map';\n\nexport class Rotate extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n className: undefined,\n label: undefined,\n tipLabel: undefined,\n duration: undefined,\n autoHide: undefined,\n render: undefined,\n resetNorth: undefined,\n target: undefined\n };\n this.events = {\n 'change': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.control = new ol_control_Rotate(options);\n this.context.mapComp.controls.push(this.control);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.control.on(eventName, olEvents[eventName]);\n }\n }\n}\nRotate['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_control_ZoomSlider from 'ol/control/ZoomSlider';\nimport { Util } from '../util';\n\nimport Map from '../map';\n\nexport class ZoomSlider extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n duration: undefined,\n className: undefined,\n maxResolution: undefined,\n minResolution: undefined,\n render: undefined\n };\n this.events = {\n 'change': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.control = new ol_control_ZoomSlider(options);\n this.context.mapComp.controls.push(this.control);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.control.on(eventName, olEvents[eventName]);\n }\n }\n}\nZoomSlider['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_control_ZoomToExtent from 'ol/control/ZoomToExtent';\nimport { Util } from '../util';\nimport Map from '../map';\n\nexport class ZoomToExtent extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n className: undefined,\n target: undefined,\n label: undefined,\n tipLabel: undefined,\n extent: undefined\n };\n this.events = {\n 'change': undefined,\n 'propertychange': undefined\n };\n }\n render() { return null; }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.control = new ol_control_ZoomToExtent(options);\n this.context.mapComp.controls.push(this.control);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.control.on(eventName, olEvents[eventName]);\n }\n }\n}\nZoomToExtent['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_control_Zoom from 'ol/control/Zoom';\nimport { Util } from '../util';\nimport Map from '../map';\n\nexport class Zoom extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n duration: undefined,\n className: undefined,\n zoomInLabel: undefined,\n zoomOutLabel: undefined,\n zoomInTipLabel: undefined,\n zoomOutTipLabel: undefined,\n delta: undefined\n };\n this.events = {\n 'change': undefined,\n 'propertychange': undefined\n };\n }\n render() {\n return null;\n }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.control = new ol_control_Zoom(options);\n this.context.mapComp.controls.push(this.control);\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.control.on(eventName, olEvents[eventName]);\n }\n }\n}\nZoom['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport { Util } from '../util';\nimport Map from '../map';\n\n// I wish I can name it as 'layers', not 'Layers'\nexport class Controls extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n attribution: undefined,\n attributionOptions: undefined,\n rotate: undefined,\n rotateOptions: undefined,\n zoom: undefined,\n zoomOptions: undefined\n };\n this.options = Util.getOptions(Object['assign'](this.options, this.props));\n }\n render() {\n return (React.createElement(\"div\", null, this.props.children));\n }\n componentDidMount() { }\n componentWillUnmount() { }\n}\nControls['contextTypes'] = {\n map: PropTypes.instanceOf(ol_Map)\n};","import {ScaleLine} from './scale-line';\nimport {Attribution} from './attribution';\nimport {FullScreen} from './full-screen';\nimport {MousePosition} from './mouse-position';\nimport {OverviewMap} from './overview-map';\nimport {Rotate} from './rotate';\nimport {ZoomSlider} from './zoom-slider';\nimport {ZoomToExtent} from './zoom-to-extent';\nimport {Zoom} from './zoom';\nimport {Controls} from './controls';\n\nlet control = {\n ScaleLine: ScaleLine,\n Attribution: Attribution,\n FullScreen: FullScreen,\n MousePosition: MousePosition,\n OverviewMap: OverviewMap,\n Rotate: Rotate,\n ZoomSlider: ZoomSlider,\n ZoomToExtent: ZoomToExtent,\n Zoom: Zoom\n};\n\nexport { \n Controls,\n control\n};\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst danhmuc = require(\"../../lib/DanhMucLayer\");\r\nfunction defaultRecord(makv) {\r\n var d = {\r\n MaKV: makv,\r\n DC_Huong1: 0,DC_TocDo1: 0,Gio_Huong1: 0,Gio_TocDo1: 0,TT_Min1: 0,TT_Max1: 0,GhiChu1: '',\r\n DC_Huong2: 0,DC_TocDo2: 0,Gio_Huong2: 0,Gio_TocDo2: 0,TT_Min2: 0,TT_Max2: 0,GhiChu2: '',\r\n DC_Huong3: 0,DC_TocDo3: 0,Gio_Huong3: 0,Gio_TocDo3: 0,TT_Min3: 0,TT_Max3: 0,GhiChu3: '',\r\n DC_Huong4: 0,DC_TocDo4: 0,Gio_Huong4: 0,Gio_TocDo4: 0,TT_Min4: 0,TT_Max4: 0,GhiChu4: '',\r\n\r\n DC_Huong5: 0,DC_TocDo5: 0,Gio_Huong5: 0,Gio_TocDo5: 0,TT_Min5: 0,TT_Max5: 0,GhiChu5: '',\r\n DC_Huong6: 0,DC_TocDo6: 0,Gio_Huong6: 0,Gio_TocDo6: 0,TT_Min6: 0,TT_Max6: 0,GhiChu6: '',\r\n DC_Huong7: 0,DC_TocDo7: 0,Gio_Huong7: 0,Gio_TocDo7: 0,TT_Min7: 0,TT_Max7: 0,GhiChu7: '',\r\n DC_Huong8: 0,DC_TocDo8: 0,Gio_Huong8: 0,Gio_TocDo8: 0,TT_Min8: 0,TT_Max8: 0,GhiChu8: '',\r\n\r\n DC_Huong9: 0,DC_TocDo9: 0,Gio_Huong9: 0,Gio_TocDo9: 0,TT_Min9: 0,TT_Max9: 0,GhiChu9: '',\r\n DC_Huong10: 0,DC_TocDo10: 0,Gio_Huong10: 0,Gio_TocDo10: 0,TT_Min10: 0,TT_Max10: 0,GhiChu10: '',\r\n DC_Huong11: 0,DC_TocDo11: 0,Gio_Huong11: 0,Gio_TocDo11: 0,TT_Min11: 0,TT_Max11: 0,GhiChu11: '',\r\n DC_Huong12: 0,DC_TocDo12: 0,Gio_Huong12: 0,Gio_TocDo12: 0,TT_Min12: 0,TT_Max12: 0,GhiChu12: '',\r\n };\r\n return d;\r\n}\r\n//chuyen doi cau truc data tu server\r\nfunction chuyenDoi(sv) {\r\n var d = defaultRecord(0);\r\n sv.map((item, index) => {\r\n d.MaKV = item.MaKV;\r\n d[\"DC_Huong\" + item.Thang] = item.DC_Huong;\r\n d[\"DC_TocDo\" + item.Thang] = item.DC_TocDo;\r\n d[\"Gio_Huong\" + item.Thang] = item.Gio_Huong;\r\n d[\"Gio_TocDo\" + item.Thang] = item.Gio_TocDo;\r\n d[\"TT_Min\" + item.Thang] = item.TT_Min;\r\n d[\"TT_Max\" + item.Thang] = item.TT_Max;\r\n });\r\n return d;\r\n}\r\nclass ThoiTietDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"xl\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? defaultRecord(this.props.MaKV)\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = true;\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n };\r\n getDataToSave = () => {\r\n var d = {\r\n MaKV: this.state.after.MaKV,\r\n DC_Huong: [],\r\n DC_TocDo: [],\r\n Gio_Huong: [],\r\n Gio_TocDo: [],\r\n TT_Min: [],\r\n TT_Max: [],\r\n GhiChu: [],\r\n };\r\n [1,2,3,4,5,6,7,8,9,10,11,12].map((thang, index) => {\r\n d.DC_Huong.push(this.state.after['DC_Huong' + thang]);\r\n d.DC_TocDo.push(this.state.after['DC_TocDo' + thang]);\r\n d.Gio_Huong.push(this.state.after['Gio_Huong' + thang]);\r\n d.Gio_TocDo.push(this.state.after['Gio_TocDo' + thang]);\r\n d.TT_Min.push(this.state.after['TT_Min' + thang]);\r\n d.TT_Max.push(this.state.after['TT_Max' + thang]);\r\n d.GhiChu.push(this.state.after['GhiChu' + thang]);\r\n });\r\n return d;\r\n }\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = {error: false};\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"thoitiet/save\", this.getDataToSave())\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after};\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n \r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n /*\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });*/\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaKV;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"thoitiet/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = chuyenDoi(response);\r\n\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: sukien,\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tainan: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Thời tiết tại khu vực biển\r\n \r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map(\r\n (thang, index) => {\r\n return (\r\n \r\n \r\n this.saveField(\"GhiChu\" + thang, event.target.value)\r\n }\r\n />\r\n \r\n this.saveField(\"DC_Huong\" + thang, event.target.value)\r\n }\r\n />\r\n \r\n this.saveField(\"DC_TocDo\" + thang,event.target.value)\r\n }\r\n />\r\n \r\n this.saveField(\"Gio_Huong\" + thang,event.target.value)\r\n }\r\n />\r\n \r\n this.saveField(\"Gio_TocDo\" + thang, event.target.value)\r\n }\r\n />\r\n \r\n this.saveField(\"TT_Min\" + thang, event.target.value)\r\n }\r\n />\r\n \r\n this.saveField(\"TT_Max\" + thang, event.target.value)\r\n }\r\n />\r\n \r\n );\r\n }\r\n )}\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 20,\r\n marginRight: 1,\r\n width: 160,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n labelThang: {\r\n width: 110,\r\n }\r\n});\r\nexport default withStyles(styles, { withTheme: true })(ThoiTietDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport TextareaAutosize from '@material-ui/core/TextareaAutosize';\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport { DropzoneArea } from \"material-ui-dropzone\";\r\nimport DateTimePicker from \"react-datetime\";\r\nimport SelectFilter from \"react-select\";\r\nimport FileAttachControl from \"./controls/FileAttachControl\";\r\nimport ConfirmDialog from \"./ConfirmDialog\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\nconst sukienLayer = require(\"../lib/TrucBanLayer\");\r\n\r\nclass TrucBanDenEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_doitac: true, // co dang load ding danh muc nguon tin ko\r\n source_doitac: [], //danh muc options cho nguon tin\r\n loading_sukien: true,\r\n source_sukien: [],\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n TrucBanID: 0,\r\n ThoiGian: new Date(),\r\n PhuongThuc: \"1\",\r\n NoiDung: \"\",\r\n MaDoiTac: null,\r\n TenNoiNhan: \"\",\r\n LoaiThongTin: \"0\",\r\n MaSK: null,\r\n }\r\n : props.value, //thong tin dang edit\r\n mountUploader: false,\r\n files: [], //file dinh kem chua saved\r\n fileDinhKem: [], //danh sach file dinh kem da saved\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n if (fieldName === \"files\") {\r\n var s = this.state;\r\n s.files = value;\r\n this.setState(s);\r\n } else {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"ThoiGian\",\r\n \"PhuongThuc\",\r\n \"NoiDung\",\r\n \"MaDoiTac\",\r\n \"TenNoiNhan\",\r\n \"LoaiThongTin\",\r\n \"MaSK\",\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n console.log(\"before\", s.before, \"after\", s.after);\r\n this.setState(s);\r\n }\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = sukienLayer.validate(\"den\", this.state.after);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\r\n \"trucban/saveDen\",\r\n sukienLayer.chuanHoa(\"abc\", this.state.after)\r\n )\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, TrucBanID: response.TrucBanID };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"trucban/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose();\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n server\r\n .query(\"doitac/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaDoiTac, label: item.TenDoiTac })\r\n );\r\n this.setState({ source_doitac: list, loading_doitac: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_doitac: false, errorLog: error + \"\" });\r\n });\r\n //load danh muc su kien co lien quan\r\n server\r\n .query(\r\n \"sukien/getlienquan?trucbanid=\" +\r\n (this.props.TrucBanID === undefined ? 0 : this.props.TrucBanID)\r\n )\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaSK, label: item.TenSK })\r\n );\r\n this.setState({ source_sukien: list, loading_sukien: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_sukien: false, errorLog: error + \"\" });\r\n });\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.TrucBanID;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"trucban/get?TrucBanID=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response.trucban;\r\n sukien = sukienLayer.chuyenDoi(sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n fileDinhKem: response.dinhkem,\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_coquan: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose();\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Thông tin đến\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Nơi nhận(*):\r\n \r\n {this.state.loading_doitac ? (\r\n \r\n ) : (\r\n
\r\n ({ ...base, zIndex: 9999 }),\r\n }}\r\n menuPosition={\"fixed\"}\r\n value={this.state.after.MaDoiTac}\r\n onChange={(item) => this.saveField(\"MaDoiTac\", item)}\r\n >\r\n
\r\n )}\r\n
\r\n \r\n \r\n this.saveField(\"TenNoiNhan\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenNoiNhan !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenNoiNhan !== undefined\r\n ? this.state.validateStatus.TenNoiNhan.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n Thời gian(*):\r\n \r\n {\r\n var text = event.target.value;\r\n if (\r\n this.state.after.ThoiGian === null &&\r\n text != \"\"\r\n ) {\r\n var date = myLib.tryToDate(text);\r\n if (date) {\r\n this.saveField(\"ThoiGian\", date);\r\n }\r\n }\r\n },\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\r\n \"ThoiGian\",\r\n date && date.toDate ? date.toDate() : null\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n Phương thức(*):\r\n \r\n \r\n this.saveField(\"PhuongThuc\", event.target.value)\r\n }\r\n >\r\n Fax\r\n Thoại\r\n Email\r\n Khác\r\n \r\n \r\n \r\n \r\n Nội dung:\r\n \r\n this.saveField(\"NoiDung\", event.target.value)\r\n }\r\n error={this.state.validateStatus.NoiDung !== undefined}\r\n helperText={\r\n this.state.validateStatus.NoiDung !== undefined\r\n ? this.state.validateStatus.NoiDung.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n Sự vụ(*):\r\n {this.state.loading_sukien ? (\r\n \r\n ) : (\r\n
\r\n ({ ...base, zIndex: 9999 }),\r\n }}\r\n menuPosition={\"fixed\"}\r\n value={this.state.after.MaSK}\r\n onChange={(item) => this.saveField(\"MaSK\", item)}\r\n >\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n Loại thông tin:\r\n \r\n \r\n this.saveField(\"LoaiThongTin\", event.target.value)\r\n }\r\n >\r\n Thông tin mới\r\n Thông tin cập nhật\r\n Khác\r\n \r\n \r\n \r\n \r\n {this.state.fileDinhKem.map((item, index) => (\r\n {\r\n //yeu cau xoa\r\n this.setState({\r\n showConfirmXoa: true,\r\n requestXoaFileID: fileID,\r\n });\r\n }}\r\n />\r\n ))}\r\n {this.state.showConfirmXoa ? (\r\n {\r\n //thuc hien xoa file\r\n if (ok) {\r\n this.setState({\r\n showConfirmXoa: false,\r\n validateStatus: {},\r\n saving: true,\r\n errorLog: \"\",\r\n });\r\n //call api to clear\r\n server\r\n .post(\"trucban/removeDinhkem\", {\r\n FileID: this.state.requestXoaFileID,\r\n })\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n dataSaved: true,\r\n fileDinhKem: response,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n } else {\r\n this.setState({\r\n showConfirmXoa: false,\r\n });\r\n }\r\n }}\r\n />\r\n ) : null}\r\n \r\n \r\n {this.state.mountUploader &&\r\n this.props.EditMode !== \"xoa\" ? (\r\n <>\r\n {\r\n console.log(\"Files:\", files);\r\n this.saveField(\"files\", files);\r\n }}\r\n />\r\n {\r\n //save dinh kem\r\n if (this.state.files.length == 0) {\r\n return;\r\n }\r\n this.setState({ saving: true, errorLog: \"\" });\r\n const formData = new FormData();\r\n this.state.files.map((item, index) => {\r\n if (item.name !== undefined) {\r\n formData.append(\r\n \"file\" + index,\r\n item,\r\n item.name\r\n );\r\n }\r\n });\r\n formData.append(\r\n \"TrucBanID\",\r\n this.state.after.TrucBanID\r\n );\r\n server\r\n .upload(\"trucban/SaveDinhKem\", formData)\r\n .then((response) => {\r\n console.log(\r\n \"save dinh kem response:\",\r\n response\r\n );\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n mountUploader: false,\r\n fileDinhKem: response,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n }}\r\n />\r\n \r\n ) : this.state.after.TrucBanID !== 0 &&\r\n this.props.EditMode !== \"xoa\" ? (\r\n this.setState({ mountUploader: true })}\r\n />\r\n ) : null}\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n inputLabel: {\r\n margin: 4,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: \"100%\",\r\n },\r\n combo: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n noidung: {\r\n height: 100,\r\n width: 550,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n margin: 4,\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n label: {\r\n margin: 6,\r\n },\r\n labelError: {\r\n margin: 6,\r\n color: \"red\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(TrucBanDenEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport TextareaAutosize from '@material-ui/core/TextareaAutosize';\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport { DropzoneArea } from \"material-ui-dropzone\";\r\nimport DateTimePicker from \"react-datetime\";\r\nimport SelectFilter from \"react-select\";\r\nimport FileAttachControl from \"./controls/FileAttachControl\";\r\nimport ConfirmDialog from \"./ConfirmDialog\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\nconst sukienLayer = require(\"../lib/TrucBanLayer\");\r\n\r\nclass TrucBanDiEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_doitac: true, // co dang load ding danh muc nguon tin ko\r\n source_doitac: [], //danh muc options cho nguon tin\r\n loading_sukien: true,\r\n source_sukien: [],\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n TrucBanID: 0,\r\n ThoiGian: new Date(),\r\n PhuongThuc: \"1\",\r\n NoiDung: \"\",\r\n MaNoiNhan: [],\r\n TenNoiNhan: \"\",\r\n LoaiThongTin: \"0\",\r\n MaSK: null,\r\n }\r\n : props.value, //thong tin dang edit\r\n mountUploader: false,\r\n files: [], //file dinh kem chua saved\r\n fileDinhKem: [], //danh sach file dinh kem da saved\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n if (fieldName === \"files\") {\r\n var s = this.state;\r\n s.files = value;\r\n this.setState(s);\r\n } else {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"ThoiGian\",\r\n \"PhuongThuc\",\r\n \"NoiDung\",\r\n \"MaNoiNhan\",\r\n \"TenNoiNhan\",\r\n \"LoaiThongTin\",\r\n \"MaSK\",\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n console.log(\"before\", s.before, \"after\", s.after);\r\n this.setState(s);\r\n }\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = sukienLayer.validate(\"di\", this.state.after);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"trucban/saveDi\", sukienLayer.chuanHoa(\"abc\", this.state.after))\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, TrucBanID: response.TrucBanID };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"trucban/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose();\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n server\r\n .query(\"doitac/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaDoiTac, label: item.TenDoiTac })\r\n );\r\n this.setState({ source_doitac: list, loading_doitac: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_doitac: false, errorLog: error + \"\" });\r\n });\r\n //load danh muc su kien co lien quan\r\n server\r\n .query(\r\n \"sukien/getlienquan?trucbanid=\" +\r\n (this.props.TrucBanID === undefined ? 0 : this.props.TrucBanID)\r\n )\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaSK, label: item.TenSK })\r\n );\r\n this.setState({ source_sukien: list, loading_sukien: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_sukien: false, errorLog: error + \"\" });\r\n });\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.TrucBanID;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"trucban/get?TrucBanID=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response.trucban;\r\n sukien = sukienLayer.chuyenDoi(sukien, response.noinhan); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n fileDinhKem: response.dinhkem,\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_coquan: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose();\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Thông tin đi\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Nơi nhận(*):\r\n \r\n {this.state.loading_doitac ? (\r\n \r\n ) : (\r\n
\r\n ({ ...base, zIndex: 9999 }),\r\n }}\r\n menuPosition={\"fixed\"}\r\n isMulti={true}\r\n value={this.state.after.MaNoiNhan}\r\n onChange={(item) => this.saveField(\"MaNoiNhan\", item)}\r\n >\r\n
\r\n )}\r\n
\r\n \r\n \r\n this.saveField(\"TenNoiNhan\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenNoiNhan !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenNoiNhan !== undefined\r\n ? this.state.validateStatus.TenNoiNhan.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n Thời gian(*):\r\n \r\n {\r\n var text = event.target.value;\r\n if(this.state.after.ThoiGian === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('ThoiGian', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\"ThoiGian\", date && date.toDate ? date.toDate() : null)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n Phương thức:\r\n \r\n \r\n this.saveField(\"PhuongThuc\", event.target.value)\r\n }\r\n >\r\n Fax\r\n Thoại\r\n Email\r\n Khác\r\n \r\n \r\n \r\n \r\n Nội dung:\r\n \r\n this.saveField(\"NoiDung\", event.target.value)\r\n }\r\n error={this.state.validateStatus.NoiDung !== undefined}\r\n helperText={\r\n this.state.validateStatus.NoiDung !== undefined\r\n ? this.state.validateStatus.NoiDung.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n Sự vụ(*):\r\n {this.state.loading_sukien ? (\r\n \r\n ) : (\r\n
\r\n ({ ...base, zIndex: 9999 }),\r\n }}\r\n menuPosition={\"fixed\"}\r\n value={this.state.after.MaSK}\r\n onChange={(item) => this.saveField(\"MaSK\", item)}\r\n >\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n Loại thông tin:\r\n \r\n \r\n this.saveField(\"LoaiThongTin\", event.target.value)\r\n }\r\n >\r\n Thông báo hàng hải\r\n Thông báo cho chủ tàu\r\n Khác\r\n \r\n \r\n \r\n \r\n {this.state.fileDinhKem.map((item, index) => (\r\n {\r\n //yeu cau xoa\r\n this.setState({\r\n showConfirmXoa: true,\r\n requestXoaFileID: fileID,\r\n });\r\n }}\r\n />\r\n ))}\r\n {this.state.showConfirmXoa ? (\r\n {\r\n //thuc hien xoa file\r\n if (ok) {\r\n this.setState({\r\n showConfirmXoa: false,\r\n validateStatus: {},\r\n saving: true,\r\n errorLog: \"\",\r\n });\r\n //call api to clear\r\n server\r\n .post(\"trucban/removeDinhkem\", {\r\n FileID: this.state.requestXoaFileID,\r\n })\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n dataSaved: true,\r\n fileDinhKem: response,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n } else {\r\n this.setState({\r\n showConfirmXoa: false,\r\n });\r\n }\r\n }}\r\n />\r\n ) : null}\r\n \r\n \r\n {this.state.mountUploader &&\r\n this.props.EditMode !== \"xoa\" ? (\r\n <>\r\n {\r\n console.log(\"Files:\", files);\r\n this.saveField(\"files\", files);\r\n }}\r\n />\r\n {\r\n //save dinh kem\r\n if (this.state.files.length == 0) {\r\n return;\r\n }\r\n this.setState({ saving: true, errorLog: \"\" });\r\n const formData = new FormData();\r\n this.state.files.map((item, index) => {\r\n if (item.name !== undefined) {\r\n formData.append(\r\n \"file\" + index,\r\n item,\r\n item.name\r\n );\r\n }\r\n });\r\n formData.append(\r\n \"TrucBanID\",\r\n this.state.after.TrucBanID\r\n );\r\n server\r\n .upload(\"trucban/SaveDinhKem\", formData)\r\n .then((response) => {\r\n console.log(\r\n \"save dinh kem response:\",\r\n response\r\n );\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n mountUploader: false,\r\n fileDinhKem: response,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n }}\r\n />\r\n \r\n ) : this.state.after.TrucBanID !== 0 &&\r\n this.props.EditMode !== \"xoa\" ? (\r\n this.setState({ mountUploader: true })}\r\n />\r\n ) : null}\r\n \r\n \r\n {this.state.canSaved ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n inputLabel: {\r\n margin: 4,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: \"100%\",\r\n },\r\n combo: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n noidung: {\r\n height: 100,\r\n width: 550,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n margin: 4,\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n label: {\r\n margin: 6,\r\n },\r\n labelError: {\r\n margin: 6,\r\n color: \"red\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(TrucBanDiEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n DateTimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst danhmuc = require(\"../../lib/DanhMucLayer\");\r\n\r\nclass VungBienEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n TenVung: \"\",\r\n LoaiVung: props.LoaiVung === undefined ? \"1\" : props.LoaiVung ,\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"TenVung\", \"LoaiVung\"]);\r\n s.canSaved = s.dataChanged;\r\n console.log(\"before\", s.before, \"after\", s.after);\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = danhmuc.validate(\"vungbien\", this.state.after);\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"vungbien/save\", danhmuc.chuanHoa(\"vungbien\", this.state.after))\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, MaVung: response.MaVung };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"vungbien/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n /*\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });*/\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaVung;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"vungbien/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"vungbien\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_vungbien: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Danh mục Vùng biển\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"TenVung\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenVung !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenVung !== undefined\r\n ? this.state.validateStatus.TenVung.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n Phân loại:\r\n \r\n \r\n this.saveField(\"LoaiVung\", event.target.value)\r\n }\r\n >\r\n Việt Nam\r\n Nước ngoài\r\n Vùng nước cảng\r\n \r\n \r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(VungBienEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst danhmuc = require(\"../../lib/DanhMucLayer\");\r\n\r\nclass KhuVucEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_vungbien: true, // co dang load ding danh muc nguon tin ko\r\n source_vungbien: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n MaVung: props.MaVung === undefined ? \"\" : props.MaVung,\r\n TenKhuVuc: \"\",\r\n KhoangCach: \"1\",\r\n JsonPoints: \"\",\r\n GeoPoints: \"\",\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"MaVung\", \"TenKhuVuc\", \"KhoangCach\", \"JsonPoints\", \"GeoPoints\"]);\r\n s.canSaved = s.dataChanged;\r\n console.log(\"before\", s.before, \"after\", s.after);\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = danhmuc.validate(\"khuvuc\", this.state.after);\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"khuvuc/save\", danhmuc.chuanHoa(\"khuvuc\", this.state.after))\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, MaKV: response.MaKV };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"khuvuc/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n //load danh muc quoc gia\r\n server\r\n .query(\"vungbien/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaVung, label: item.TenVung })\r\n );\r\n this.setState({ source_vungbien: list, loading_vungbien: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_vungbien: false });\r\n });\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaKV;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"khuvuc/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"khuvuc\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_khuvuc: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Danh mục Khu vực biển\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"TenKhuVuc\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenKhuVuc !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenKhuVuc !== undefined\r\n ? this.state.validateStatus.TenKhuVuc.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n Thuộc vùng:\r\n {this.state.loading_vungbien ? (\r\n \r\n ) : (\r\n this.saveField(\"MaVung\", item)}\r\n >\r\n )}\r\n \r\n \r\n \r\n \r\n Phân loại:\r\n \r\n \r\n this.saveField(\"KhoangCach\", event.target.value)\r\n }\r\n >\r\n Sát bờ\r\n Gần bờ\r\n Khu vực giữa\r\n Xa bờ\r\n Ngoài khơi\r\n Nước ngoài\r\n \r\n \r\n \r\n \r\n \r\n this.saveField(\"JsonPoints\", event.target.value)\r\n }\r\n error={this.state.validateStatus.JsonPoints !== undefined}\r\n helperText={\r\n this.state.validateStatus.JsonPoints !== undefined\r\n ? this.state.validateStatus.JsonPoints.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(KhuVucEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst danhmuc = require(\"../../lib/DanhMucLayer\");\r\n\r\nclass ThietBiEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_thietbi: true, // co dang load ding danh muc nguon tin ko\r\n source_thietbi: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n TenLoaiTB: \"\",\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"TenLoaiTB\"]);\r\n s.canSaved = s.dataChanged;\r\n console.log(\"before\", s.before, \"after\", s.after);\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = danhmuc.validate(\"thietbi\", this.state.after);\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"thietbi/save\", danhmuc.chuanHoa(\"thietbi\", this.state.after))\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, LoaiTB: response.LoaiTB };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"thietbi/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n /*\r\n server\r\n .query(\"thietbi/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenLoaiTB, label: item.TenLoaiTB })\r\n );\r\n this.setState({ source_thietbi: list, loading_thietbi: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_thietbi: false });\r\n });*/\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.LoaiTB;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"thietbi/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"thietbi\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_thietbi: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Danh mục loại thiết bị\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"TenLoaiTB\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenLoaiTB !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenLoaiTB !== undefined\r\n ? this.state.validateStatus.TenLoaiTB.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n\r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(ThietBiEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n DateTimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst danhmuc = require(\"../../lib/DanhMucLayer\");\r\n\r\nclass LoaiTauEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n TenLoaiTau: \"\",\r\n PhanNhom: \"0\",\r\n IconURL: '/images/ship.png',\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"TenLoaiTau\",\r\n \"PhanNhom\",\r\n 'IconURL',\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n console.log(\"before\", s.before, \"after\", s.after);\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = danhmuc.validate(\"loaitau\", this.state.after);\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"loaitau/save\", danhmuc.chuanHoa(\"loaitau\", this.state.after))\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, LoaiTau: response.LoaiTau };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"loaitau/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n /*\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });*/\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.LoaiTau;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"loaitau/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"loaitau\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_loaitau: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Danh mục Loại tàu\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"TenLoaiTau\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenLoaiTau !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenLoaiTau !== undefined\r\n ? this.state.validateStatus.TenLoaiTau.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Phân nhóm:\r\n \r\n \r\n this.saveField(\"PhanNhom\", event.target.value)\r\n }\r\n >\r\n Khác\r\n Tàu SAR\r\n Tàu hàng\r\n Tàu quốc phòng\r\n Tàu cá\r\n Máy bay\r\n \r\n \r\n \r\n \r\n \r\n this.saveField(\"IconURL\", event.target.value)\r\n }\r\n error={this.state.validateStatus.IconURL !== undefined}\r\n helperText={\r\n this.state.validateStatus.IconURL !== undefined\r\n ? this.state.validateStatus.IconURL.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(LoaiTauEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst danhmuc = require(\"../../lib/DanhMucLayer\");\r\n\r\nclass TaiNanEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n TenTaiNan: \"\",\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"TenTaiNan\"]);\r\n s.canSaved = s.dataChanged;\r\n console.log(\"before\", s.before, \"after\", s.after);\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = danhmuc.validate(\"tainan\", this.state.after);\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"tainan/save\", danhmuc.chuanHoa(\"tainan\", this.state.after))\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, MaTN: response.MaTN };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"tainan/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n /*\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });*/\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaTN;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"tainan/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"tainan\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tainan: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Danh mục Tính chất tai nạn\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"TenTaiNan\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenTaiNan !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenTaiNan !== undefined\r\n ? this.state.validateStatus.TenTaiNan.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n\r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(TaiNanEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst danhmuc = require(\"../../lib/DanhMucLayer\");\r\n\r\nclass TauSarEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n //danh muc loai tau\r\n loading_loaitau: true, // co dang loading danh muc loai tau\r\n source_loaitau: [], //danh muc options cho loai tau\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n TenTau: \"\",\r\n LoaiTau: null,\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"TenTau\", \"LoaiTau\"]);\r\n s.canSaved = s.dataChanged;\r\n console.log(\"before\", s.before, \"after\", s.after);\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = danhmuc.validate(\"tausar\", this.state.after);\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"tausar/save\", danhmuc.chuanHoa(\"tausar\", this.state.after))\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...danhmuc.chuanHoa(\"tausar\", this.state.after), TauID: response.TauID };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"tausar/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n \r\n //load danh muc loai tau bao nan\r\n server\r\n .query(\"loaitau/getloaitau\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.LoaiTau, label: item.TenLoaiTau })\r\n );\r\n this.setState({ source_loaitau: list, loading_loaitau: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_loaitau: false });\r\n });\r\n \r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.TauID;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"tausar/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"tausar\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Danh mục tên tàu SAR\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"TenTau\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenTau !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenTau !== undefined\r\n ? this.state.validateStatus.TenTau.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.loading_loaitau ? (\r\n \r\n ) : (\r\n this.saveField(\"LoaiTau\", item)}\r\n >\r\n )}\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(TauSarEditDialog);\r\n","import { getLength, getArea, getDistance } from \"ol/sphere\";\r\nimport moment from 'moment';\r\n\r\nexport function formatDate(date, format) {\r\n return (new moment(date)).format(format);\r\n}\r\n//copy gia tri cua 1 object\r\nexport function cloneObject(obj) {\r\n var newObj = { ...obj };\r\n return newObj;\r\n}\r\n//Kiem tra trong'\r\nexport function isEmpty(data) {\r\n return data === undefined || data === null || data + \"\" === \"\";\r\n}\r\n//chuyen thanh string\r\nexport function toString(data) {\r\n if (isEmpty(data)) {\r\n return \"\";\r\n }\r\n return data.toString();\r\n}\r\n//kiem tra xem 2 doi tuong co giong nhau cac field hay khong\r\nexport function isSame(obj1, obj2, fields) {\r\n var ok = true;\r\n fields.map((item, index) => {\r\n let v1 = obj1[item];\r\n let v2 = obj2[item];\r\n ok = ok && toString(v1) === toString(v2);\r\n if (ok && toString(v1) !== \"\" && toString(v2) !== \"\") {\r\n if (v1.hasOwnProperty(\"value\")) {\r\n ok = ok && toString(v1.value) === toString(v2.value);\r\n }\r\n }\r\n });\r\n return ok;\r\n}\r\n//cut iso string time: 2020-12-08T03:05:22.743Z to 2020-12-08T03:05:22\r\nexport function cutTime(isoTime) {\r\n return isoTime.substring(0, 19);\r\n}\r\n//chuyen doi thoi gian local dang luu tru tren server theo gio HN ve gia tri datetime cua client\r\nexport function fromServerTime(str) {\r\n var date = new Date(str);\r\n date.setTime(date.getTime() - 7 * 3600 * 1000);\r\n return date;\r\n}\r\n//tra ve thoi gian hien tai theo format local\r\nexport function currentLocalTimeString() {\r\n var d = new Date();\r\n d.setTime(d.getTime() + 7 * 3600 * 1000);\r\n return cutTime(d.toISOString());\r\n}\r\n//convert mask text: dd/MM/yyyy HH:mm:ss thanh date time\r\nexport function convertMaskTextToDateTime(text, maskChar) {\r\n var mask = maskChar === undefined ? \"_\" : maskChar;\r\n var dd = text.substring(0, 2);\r\n if (dd.indexOf(mask) >= 0) return undefined;\r\n var idd = parseInt(dd);\r\n if (idd <= 0 || idd > 31) return undefined;\r\n var MM = text.substring(3, 5);\r\n if (MM.indexOf(mask) >= 0) return undefined;\r\n var iMM = parseInt(MM);\r\n if (iMM <= 0 || iMM > 12) return undefined;\r\n var yyyy = text.substring(6, 10);\r\n if (yyyy.indexOf(mask) >= 0) return undefined;\r\n var iyyyy = parseInt(yyyy);\r\n if (iyyyy <= 0 || iyyyy >= 3000) return undefined;\r\n var HH = text.substring(11, 13);\r\n if (HH.indexOf(mask) >= 0) return undefined;\r\n var iHH = parseInt(HH);\r\n if (iHH < 0 || iHH > 23) return undefined;\r\n var mm = text.substring(14, 16);\r\n if (mm.indexOf(mask) >= 0) return undefined;\r\n var imm = parseInt(mm);\r\n if (imm < 0 || imm > 59) return undefined;\r\n var ss = text.substring(17, 19);\r\n if (ss.indexOf(mask) >= 0) return undefined;\r\n var iss = parseInt(ss);\r\n if (iss < 0 || iss > 59) return undefined;\r\n if (\r\n iMM === 2 &&\r\n ((iyyyy % 4 === 0 && idd > 29) || (iyyyy % 4 !== 0 && idd > 28))\r\n )\r\n return undefined;\r\n console.log(\r\n \"date time:\",\r\n yyyy + \"-\" + MM + \"-\" + dd + \"T\" + HH + \":\" + mm + \":\" + ss\r\n );\r\n return new Date(\r\n yyyy + \"-\" + MM + \"-\" + dd + \"T\" + HH + \":\" + mm + \":\" + ss + \".000+07:00\"\r\n );\r\n}\r\n//chuyen doi vi do thanh string\r\nexport function latToDMS(lat, format) {\r\n if (lat === undefined || lat === null) {\r\n return undefined;\r\n }\r\n var isN = lat >= 0;\r\n lat = Math.abs(lat);\r\n var d = Math.floor(lat);\r\n var m = Math.floor((lat - d) * 60);\r\n var s = Math.round((lat - d - m / 60.0) * 3600);\r\n if (s >= 60) {\r\n m += 1;\r\n s = s - 60;\r\n }\r\n if (m >= 60) {\r\n m = m - 60;\r\n d = d + 1;\r\n }\r\n var t =\r\n (d < 10 ? \"0\" : \"\") +\r\n d +\r\n \".\" +\r\n ((m < 10 ? \"0\" : \"\") + m) +\r\n \".\" +\r\n ((s < 10 ? \"0\" : \"\") + s) +\r\n (isN ? \"N\" : \"S\");\r\n return t;\r\n}\r\nexport function lonToDMS(lon, format) {\r\n if (lon === undefined || lon === null) {\r\n return undefined;\r\n }\r\n var isE = lon >= 0;\r\n lon = Math.abs(lon);\r\n var d = Math.floor(lon);\r\n var m = Math.floor((lon - d) * 60);\r\n var s = Math.round((lon - m / 60.0 - d) * 3600);\r\n if (s >= 60) {\r\n m += 1;\r\n s = s - 60;\r\n }\r\n if (m >= 60) {\r\n m = m - 60;\r\n d = d + 1;\r\n }\r\n var t =\r\n (d < 10 ? \"00\" : d < 100 ? \"0\" : \"\") +\r\n d +\r\n \".\" +\r\n ((m < 10 ? \"0\" : \"\") + m) +\r\n \".\" +\r\n ((s < 10 ? \"0\" : \"\") + s) +\r\n (isE ? \"E\" : \"W\");\r\n return t;\r\n}\r\n//chuyen tu text sang gia tri\r\nexport function latFromDMS(text) {\r\n text = text.toUpperCase();\r\n var d = parseInt(text.substring(0, 2));\r\n if (d === undefined) return undefined;\r\n var m = parseInt(text.substring(3, 5));\r\n if (m === undefined) return undefined;\r\n var s = parseInt(text.substring(6, 8));\r\n if (s === undefined) return undefined;\r\n var direct = text.substring(8, 9);\r\n if (direct === undefined || (direct !== \"N\" && direct !== \"S\"))\r\n return undefined;\r\n var lat =\r\n ((direct === \"N\" ? 1.0 : -1.0) *\r\n Math.round((d + m / 60.0 + s / 3600.0) * 10000)) /\r\n 10000.0;\r\n return lat;\r\n}\r\nexport function lonFromDMS(text) {\r\n text = text.toUpperCase();\r\n var d = parseInt(text.substring(0, 3));\r\n if (d === undefined) return undefined;\r\n var m = parseInt(text.substring(4, 6));\r\n if (m === undefined) return undefined;\r\n var s = parseInt(text.substring(7, 9));\r\n if (s === undefined) return undefined;\r\n var direct = text.substring(9, 10);\r\n if (direct === undefined || (direct !== \"E\" && direct !== \"W\"))\r\n return undefined;\r\n var lat =\r\n ((direct === \"E\" ? 1.0 : -1.0) *\r\n Math.round((d + m / 60.0 + s / 3600.0) * 10000)) /\r\n 10000.0;\r\n return lat;\r\n}\r\n\r\nexport function getLineStringLength(feature) {\r\n const length = getLength(feature.getGeometry(), { projection: \"EPSG:4326\" });\r\n var output = \"\";\r\n if (length > 100) {\r\n output = Math.round((length / 1000) * 100) / 100 + \" \" + \"km\";\r\n output += \"(\" + Math.round((length / 1852) * 100) / 100 + \" \" + \"nm)\";\r\n } else {\r\n output = Math.round(length * 100) / 100 + \" \" + \"m\";\r\n }\r\n return output;\r\n}\r\n//thong tin ve dien tich\r\nexport function getPolygonArea(feature) {\r\n const area = getArea(feature.getGeometry(), { projection: \"EPSG:4326\" });\r\n var output;\r\n if (area > 10000) {\r\n output = Math.round((area / 1000000) * 100) / 100 + \" km\" + String.fromCharCode(0x00B2);\r\n output += \"(\" + Math.round((area / (1852 * 1852)) * 100) / 100 + \" nm\" + String.fromCharCode(0x00B2) + ')';\r\n } else {\r\n output = Math.round(area * 100) / 100 + \" m\" + String.fromCharCode(0x00B2);\r\n }\r\n return output;\r\n}\r\nexport function getRadius(feature) {\r\n var area = getRadiusValue(feature);\r\n var output = \"\";\r\n if (area > 1000) {\r\n output = Math.round((area * 100) / 1000) / 100 + \" \" + \"km\";\r\n output += \"(\" + Math.round((area / 1852) * 100) / 100 + \"nm)\";\r\n } else {\r\n output = Math.round(area) + \" \" + \"m\";\r\n }\r\n return output;\r\n}\r\nexport function getRadiusValue(feature) {\r\n var geometry = feature.getGeometry();\r\n var center = geometry.getCenter();\r\n var radius = geometry.getRadius();\r\n var edgeCoordinate = [center[0] + radius, center[1]];\r\n var area = getDistance(center, edgeCoordinate);\r\n return Math.round(area);\r\n}\r\n//tra ve danh sach quyen\r\nexport function getQuyen() {\r\n return [\r\n { Code: \"R11\", Name: \"Danh mục cơ quan\" },\r\n { Code: \"R111\", Name: \"Cập nhật\" },\r\n { Code: \"R12\", Name: \"Danh mục đơn vị ngoài\" },\r\n { Code: \"R121\", Name: \"Cập nhật\" },\r\n { Code: \"R13\", Name: \"Danh mục loại tàu\" },\r\n { Code: \"R131\", Name: \"Cập nhật\" },\r\n { Code: \"R14\", Name: \"Danh mục quốc gia\" },\r\n { Code: \"R141\", Name: \"Cập nhật\" },\r\n { Code: \"R15\", Name: \"Danh mục vùng biển\" },\r\n { Code: \"R151\", Name: \"Cập nhật\" },\r\n { Code: \"R16\", Name: \"Danh mục khu vực biển\" },\r\n { Code: \"R161\", Name: \"Cập nhật\" },\r\n { Code: \"R17\", Name: \"Danh mục tính chất tai nạn\" },\r\n { Code: \"R171\", Name: \"Cập nhật\" },\r\n { Code: \"R18\", Name: \"Danh mục tên tàu SAR\" },\r\n { Code: \"R181\", Name: \"Cập nhật\" },\r\n { Code: \"R19\", Name: \"Danh mục loại thiết bị\" },\r\n { Code: \"R191\", Name: \"Cập nhật\" },\r\n { Code: \"R90\", Name: \"Danh mục người dùng\" },\r\n { Code: \"R901\", Name: \"Cập nhật\" },\r\n { Code: \"R902\", Name: \"Phân quyền\" },\r\n { Code: \"R21\", Name: \"Bản đồ\" },\r\n { Code: \"R211\", Name: \"Cập nhật\" },\r\n { Code: \"R22\", Name: \"Quản lý sự vụ\" },\r\n { Code: \"R221\", Name: \"Cập nhật\" },\r\n { Code: \"R23\", Name: \"Kế hoạch chốt chặn\" },\r\n { Code: \"R231\", Name: \"Cập nhật\" },\r\n { Code: \"R24\", Name: \"Sổ trực ban\" },\r\n { Code: \"R241\", Name: \"Cập nhật\" },\r\n { Code: \"R25\", Name: \"Trao đổi thông tin\" },\r\n { Code: \"R251\", Name: \"Cập nhật\" },\r\n { Code: \"R29\", Name: \"Thống kê\" },\r\n { Code: \"RX1\", Name: \"Admin dữ liệu\" },\r\n ];\r\n}\r\nfunction Tol() {\r\n return 1.0e-9;\r\n}\r\nfunction toRad(degree) {\r\n return (degree * Math.PI) / 180;\r\n}\r\nfunction toDeg(radians) {\r\n return (radians * 180) / Math.PI;\r\n}\r\n//convert NM to radians\r\nfunction NMtorad(distance_NM) {\r\n return (Math.PI / (180 * 60)) * distance_NM;\r\n}\r\n/*\r\nNote on the mod function. This appears to be implemented differently in different languages, with differing conventions on whether\r\nthe sign of the result follows the sign of the divisor or the dividend. (We want the sign to follow the divisor or be Euclidean.\r\nC's fmod and Java's % do not work.) In this document, Mod(y,x) is the remainder on dividing y by x and always lies in the range 0 <=mod Math.PI / 2) return undefined; //\"d too large. You can't go this far along this rhumb line!\"\r\n var q;\r\n if (Math.abs(lat - lat1) < Math.sqrt(Tol())) {\r\n q = Math.cos(lat1);\r\n } else {\r\n var dphi = Math.log(\r\n Math.tan(lat / 2 + Math.PI / 4) / Math.tan(lat1 / 2 + Math.PI / 4)\r\n );\r\n q = (lat - lat1) / dphi;\r\n }\r\n var dlon = (-d * Math.sin(tc)) / q;\r\n lon2 = toDeg(mod(lon1 + dlon + Math.PI, 2 * Math.PI) - Math.PI);\r\n lat2 = toDeg(lat);\r\n return [lon2, lat2];\r\n}\r\nexport function dateDiff(t1, t2) {\r\n var d1 = new Date(t1);\r\n var d2 = new Date(t2);\r\n var time = d1.getTime() - d2.getTime();\r\n var hours = time / 3600000;\r\n var days = Math.floor(hours / 24);\r\n return hours < 24 ? (Math.round(hours) + ' h') : (days + ' n ' + Math.round((hours - days * 24)) + ' h');\r\n}\r\n//thu convert date time ma khong co nhap nam, vd: 11020420->11/02/2021 04:20\r\nexport function tryToDate(str) {\r\n try\r\n {\r\n var now = new Date();\r\n var day = parseInt(str.substring(0,2));\r\n var month = parseInt(str.substring(2,4));\r\n var year = now.getFullYear();\r\n var hour = 0, minute = 0;\r\n if(str.length > 4) {\r\n hour = parseInt(str.substring(4,6));\r\n }\r\n if(str.length > 6) {\r\n minute = parseInt(str.substring(6, 8));\r\n }\r\n return new Date(year, month - 1, day, hour, minute, 0, 0);\r\n }\r\n catch(e) {\r\n console.log(e);\r\n }\r\n return undefined;\r\n}","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport MyButton from \"./MyButton\";\r\n\r\nclass AlertDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleCancel = this.handleCancel.bind(this);\r\n this.handleOK = this.handleOK.bind(this);\r\n }\r\n componentDidMount() {\r\n\r\n } \r\n static getDerivedStateFromProps(props, state) {\r\n return state;\r\n }\r\n handleCancel = () => {\r\n this.props.callback(false);\r\n }\r\n handleOK = () => {\r\n this.props.callback(true);\r\n }\r\n render() {\r\n return \r\n Thông báo\r\n \r\n
\r\n {this.props.message}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n }\r\n}\r\nexport default AlertDialog;","import FileSaver from \"file-saver\";\r\nimport config from \"../config.json\";\r\nexport function getServer() {\r\n return config.SERVER;\r\n}\r\nfunction getToken() {\r\n const jwt = window.sessionStorage.getItem(\"JWT\");\r\n return jwt;\r\n}\r\nexport function getRequest(rq) {\r\n return config.SERVER_URL + rq;\r\n}\r\nexport function get(rq) {\r\n var requestOptions = {\r\n method: \"GET\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Cache-Control\": \"no-cache\",\r\n },\r\n };\r\n return fetch(rq, requestOptions)\r\n .then((res) => res.json())\r\n .then(\r\n (result) =>\r\n new Promise(function (success, failed) {\r\n success(result);\r\n })\r\n )\r\n .catch(\r\n (error) =>\r\n new Promise(function (success, failed) {\r\n failed(error);\r\n })\r\n );\r\n}\r\nexport function query(rq, ps) {\r\n var requestOptions = {\r\n method: \"GET\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Cache-Control\": \"no-cache\",\r\n },\r\n };\r\n //thong tin token key\r\n const jwt = getToken();\r\n if (jwt != undefined) {\r\n var bearer = \"Bearer \" + jwt;\r\n requestOptions.headers = {\r\n ...requestOptions.headers,\r\n Authorization: bearer,\r\n };\r\n }\r\n return fetch(getRequest(rq), requestOptions)\r\n .then((res) => res.json())\r\n .then(\r\n (result) =>\r\n new Promise(function (success, failed) {\r\n if (result.ErrorCode === 0) {\r\n success(result.Response);\r\n } else failed(result.ErrorMsg);\r\n })\r\n )\r\n .catch(\r\n (error) =>\r\n new Promise(function (success, failed) {\r\n failed(error);\r\n })\r\n );\r\n}\r\nexport function post(rq, ps) {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Cache-Control\": \"no-cache\",\r\n },\r\n body: JSON.stringify(ps),\r\n };\r\n //thong tin token key\r\n const jwt = getToken();\r\n if (jwt !== undefined) {\r\n var bearer = \"Bearer \" + getToken();\r\n requestOptions.headers = {\r\n ...requestOptions.headers,\r\n Authorization: bearer,\r\n };\r\n }\r\n return fetch(getRequest(rq), requestOptions)\r\n .then((res) => res.json())\r\n .then(\r\n (result) =>\r\n new Promise(function (success, failed) {\r\n if (result.ErrorCode === 0) {\r\n success(result.Response);\r\n } else failed(result.ErrorMsg);\r\n })\r\n )\r\n .catch(\r\n (error) =>\r\n new Promise(function (success, failed) {\r\n failed(error);\r\n })\r\n );\r\n}\r\nexport function upload(rq, ps) {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: {},\r\n body: ps,\r\n };\r\n //thong tin token key\r\n const jwt = getToken();\r\n if (jwt !== undefined) {\r\n var bearer = \"Bearer \" + jwt;\r\n requestOptions.headers = { ...requestOptions, Authorization: bearer };\r\n }\r\n\r\n return fetch(getRequest(rq), requestOptions)\r\n .then((res) => res.json())\r\n .then(\r\n (result) =>\r\n new Promise(function (success, failed) {\r\n if (result.ErrorCode === 0) {\r\n success(result.Response);\r\n } else failed(result.ErrorMsg);\r\n })\r\n )\r\n .catch(\r\n (error) =>\r\n new Promise(function (success, failed) {\r\n failed(error);\r\n })\r\n );\r\n}\r\nexport function download(rq, ps) {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Cache-Control\": \"no-cache\",\r\n },\r\n body: JSON.stringify(ps),\r\n };\r\n //thong tin token key\r\n const jwt = getToken();\r\n if (jwt !== undefined) {\r\n var bearer = \"Bearer \" + jwt;\r\n requestOptions.headers = { ...requestOptions.headers, Authorization: bearer };\r\n }\r\n var filename = '';\r\n return fetch(getRequest(rq), requestOptions)\r\n .then((response) => {\r\n filename = response.headers.get('Content-Disposition').split(';')[1];\r\n filename = filename.split('=')[1];\r\n while((filename.indexOf('\"') >= 0))\r\n filename = filename.replace('\"', '');\r\n return response.blob();\r\n })\r\n .then((file) => {\r\n FileSaver.saveAs(file, filename );\r\n }\r\n ).catch((error) =>console.log(error));\r\n}\r\n\r\nexport function populateID(list) {\r\n list.map((item, index) => (item.id = index + 1));\r\n return list;\r\n}\r\n","//Hien thi ban do theo format react\r\nimport React from \"react\";\r\nimport {unByKey} from 'ol/Observable';\r\nimport ol_Overlay from 'ol/Overlay';\r\nimport ol_source_XYZ from \"ol/source/XYZ\";\r\nimport ol_source_Vector from \"ol/source/Vector\";\r\nimport ol_geom_Point from \"ol/geom/Point\";\r\nimport ol_geom_LineString from \"ol/geom/LineString\";\r\nimport ol_geom_Polygon from \"ol/geom/Polygon\";\r\nimport ol_geom_Circle from \"ol/geom/Circle\";\r\nimport ol_Feature from \"ol/Feature\";\r\nimport ol_style_Stroke from 'ol/style/Stroke';\r\nimport { transform as ol_proj_transform } from \"ol/proj\";\r\nimport { toStringHDMS } from \"ol/coordinate\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport { DropzoneArea } from \"material-ui-dropzone\";\r\nimport DateTimePicker from \"react-datetime\";\r\nimport SelectFilter from \"react-select\";\r\nimport ThoiTietEditDialog from \"./danhmuc/ThoiTietEditDialog\";\r\nimport SquareSearchEditDialog from \"./SquareSearchEditDialog\";\r\nimport ParallelSearchEditDialog from \"./ParallelSearchEditDialog\";\r\nimport SectorSearchEditDialog from './SectorSearchEditDialog';\r\nimport SuKienChiTietOverlay from './SuKienChiTietOverlay';\r\n\r\nimport Map from \"../geo/map.jsx\";\r\nimport MyButton from \"../pages/MyButton\";\r\n\r\nimport {\r\n interaction,\r\n layer,\r\n custom,\r\n control, //name spaces\r\n Interactions,\r\n Overlays,\r\n Controls, //group\r\n Layers,\r\n Overlay,\r\n Util, //objects\r\n} from \"../geo/index\";\r\nimport \"./mapview.css\";\r\nimport SuKienLayer from \"./SuKienLayer\";\r\nimport localConfig from \"local-storage\";\r\nimport { Draw } from \"ol/interaction\";\r\nimport DrawLayer from \"./DrawLayer.jsx\";\r\nimport DrawItemsLayer from \"./DrawItemsLayer\";\r\nimport KhuVucLayer from \"./KhuVucLayer\";\r\nimport { PlayCircleFilledWhite } from \"@material-ui/icons\";\r\nimport PointEditDialog from \"./PointEditDialog\";\r\nimport LineEditDialog from \"./LineEditDialog\";\r\nimport PolygonEditDialog from \"./PolygonEditDialog\";\r\nimport CircleEditDialog from \"./CircleEditDialog\";\r\nimport FilterSuKienDialog from \"./FilterSuKienDialog\";\r\nimport SuKienEditdialog from \"./SuKienEditDialog\";\r\nimport SarTrackLayer from './SarTrackLayer';\r\n\r\nconst DrawLayerUtil = require(\"./DrawLayerUtil\");\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\n\r\nconst styles = {\r\n mapview: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n //width: 600,\r\n },\r\n drawingItemText: {\r\n backgroundColor: \"#ffcc33ee\",\r\n color: \"black\",\r\n border: \"1px solid white\",\r\n fontSize: 13,\r\n },\r\n drawItemText: {\r\n position: \"relative\",\r\n background: \"rgba(0, 0, 0, 0.5)\",\r\n borderRadius: \"4px\",\r\n color: \"white\",\r\n padding: \"4px 8px\",\r\n opacity: \"0.7\",\r\n whiteSpace: \"nowrap\",\r\n backgroundColor: \"#ffcc33\",\r\n color: \"white\",\r\n border: \"1px solid white\",\r\n borderTop: \"6px solid rgba(0, 0, 0, 0.5)\",\r\n borderRight: \"6px solid transparent\",\r\n borderLeft: \"6px solid transparent\",\r\n content: '\"\"',\r\n position: \"absolute\",\r\n bottom: \"-6px\",\r\n marginLeft: \"-7px\",\r\n left: \"50%\",\r\n },\r\n khuvucItemText: {\r\n backgroundColor: \"#ffcc33\",\r\n color: \"red\",\r\n fontSize: 13,\r\n textAlign: \"center\",\r\n },\r\n};\r\n//Hien thi cac doi tuong tren ban do\r\nclass MapViewControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.showPopup = this.showPopup.bind(this);\r\n this.createMeasureTooltip = this.createMeasureTooltip.bind(this);\r\n this.map_onDrawstart = this.map_onDrawstart.bind(this);\r\n this.map_onDrawend = this.map_onDrawend.bind(this);\r\n this.map_onMoveend = this.map_onMoveend.bind(this);\r\n this.map_onPointermove = this.map_onPointermove.bind(this);\r\n this.handleSaveDrawItem = this.handleSaveDrawItem.bind(this);\r\n this.showTauSar = this.showTauSar.bind(this);\r\n var center_string = localConfig.get(\"map_center\");\r\n var zoom_string = localConfig.get(\"map_zoom\");\r\n this.state = {\r\n sukien_olLayer: undefined, //layer OL hien thi su kien\r\n //cac thong so lien quan den map\r\n center: center_string ? JSON.parse(center_string) : [106, 20],\r\n zoom: zoom_string ? parseInt(zoom_string) : 7,\r\n drawingType: undefined,\r\n mouseCoordinate: undefined, //vi tri chuot khi dnag ve\r\n drawSourceVector: new ol_source_Vector({ wrapX: false }),\r\n timeChange: new Date(),\r\n showPointEdit: false, //hine thi dialog edit point\r\n showLineEdit: false,\r\n showSquareSearch: false, //show square search\r\n showParallelSearch: false,\r\n showSectorSearch: false,\r\n showPolygonEdit: false,\r\n showCircleEdit: false,\r\n edittingMode: \"edit\",\r\n Editting_Feature: undefined, //feature dang edit\r\n //cac drawitems\r\n drawItems: [], //danh sach feature da co trong csdl\r\n khuvucItems: [], //danh sach feature khu vuc\r\n //show menu ban do\r\n bando_menu_anchor: null, //vi tri hien thi ban do\r\n bando_google_layer: localConfig.get(\"bando\")\r\n ? localConfig.get(\"bando\")\r\n : \"m\", //lua chon layer de hien thi\r\n show_layer_hinhve:\r\n localConfig.get(\"show_hinhve\") !== undefined\r\n ? localConfig.get(\"show_hinhve\") === true\r\n : true,\r\n show_layer_khuvuc:\r\n localConfig.get(\"show_khuvuc\") !== undefined\r\n ? localConfig.get(\"show_khuvuc\") === true\r\n : false,\r\n show_overlay_hinhve:localConfig.get(\"show_overlay_hinhve\") !== undefined\r\n ? localConfig.get(\"show_overlay_hinhve\") === true\r\n : false,\r\n //hien thi filter su kien dialog\r\n show_filter_dialog: false,\r\n sukien_filter_result: [], //danh sach features hien thi cho su kien\r\n sukien_filter_data: {\r\n TrangThai: \"1\",\r\n LoaiTau_TauHang: true,\r\n LoaiTau_TauCa: true,\r\n LoaiTau_TauKhac: true,\r\n TuNgay: null,\r\n DenNgay: null,\r\n }, //tieu chi tim kiem\r\n open_edit_sukien: false, //hien thi form chi tiet su kien\r\n Editting_MaSK: 0,\r\n //hien thi thong tin khu vuc\r\n showThoiTiet: false,\r\n Editting_MaKV: 0,\r\n links_menu_anchor: undefined, // hien thi menu\r\n links: [],\r\n //overlays hien thi thong tin su kien\r\n listChitiets: [], \r\n //hien thi luoi toa do\r\n showGraticule: localConfig.get('showGraticule') !== undefined ? localConfig.get('showGraticule') : false,\r\n //hien thi hanh trinh tau sar\r\n trackSars: [], //du lieu hanh trinh tau sar\r\n };\r\n this.state.drawSourceVector.on(\"change\", (event) => {\r\n this.setState({\r\n timeChange: new Date(),\r\n drawSourceVector: this.state.drawSourceVector,\r\n }); //phai co dong code nay thi overlay moi lam viec\r\n });\r\n }\r\n overlayComp = undefined;\r\n popupComp = undefined;\r\n sukienLayer = undefined;\r\n showPopup1(evt) {\r\n this.overlayComp.overlay.setPosition(evt.coordinate);\r\n var lonlat = ol_proj_transform(evt.coordinate, \"EPSG:3857\", \"EPSG:4326\");\r\n this.popupComp.setContents(\r\n `

You clicked here:

${lonlat[0]}, ${lonlat[1]}`\r\n );\r\n this.popupComp.show();\r\n }\r\n showPopup(feature) {\r\n var coord = feature.getGeometry().getCoordinates();\r\n this.overlayComp.overlay.setPosition(coord);\r\n var lonlat = coord;\r\n this.popupComp.setContents(\r\n `

Thông tin về tàu hoặc phương tiện tham gia TKCN`\r\n );\r\n this.popupComp.show();\r\n }\r\n getSelectedFeatureStyle() {\r\n return new custom.style.MarkerStyle(\r\n \"https://openlayers.org/en/latest/examples/data/icon.png\"\r\n ).style;\r\n }\r\n map_onMoveend = (event) => {\r\n var center = event.frameState.viewState.center;\r\n var zoom = event.frameState.viewState.zoom;\r\n //save center, zoom for later\r\n localConfig.set(\"map_center\", JSON.stringify(center));\r\n localConfig.set(\"map_zoom\", zoom + \"\");\r\n };\r\n map_onPointermove = (event) => {\r\n if (event.dragging) {\r\n return;\r\n }\r\n if(this.state.drawingType) {\r\n \r\n }\r\n };\r\n createMeasureTooltip = () => {\r\n if (this.measureTooltipElement) {\r\n this.measureTooltipElement.parentNode.removeChild(this.measureTooltipElement);\r\n }\r\n this.measureTooltipElement = document.createElement('div');\r\n this.measureTooltipElement.className = 'tooltip tooltip-measure';\r\n this.measureTooltip = new ol_Overlay({\r\n element: this.measureTooltipElement,\r\n offset: [0, -15],\r\n positioning: 'bottom-center',\r\n });\r\n this.mapComp.map.addOverlay(this.measureTooltip);\r\n }\r\n map_onDrawstart = (evt) => {\r\n // set sketch\r\n var sketch = evt.feature;\r\n this.createMeasureTooltip(); //tao tooltip \r\n /** @type {import(\"../src/ol/coordinate.js\").Coordinate|undefined} */\r\n var tooltipCoord = evt.coordinate;\r\n var that = this;\r\n this.listener = sketch.getGeometry().on('change', function (evt) {\r\n var geom = evt.target;\r\n var tooltipCoord = 0;\r\n tooltipCoord = geom.getLastCoordinate();\r\n var output = '';\r\n if(that.state.drawingType === 'LineString') {\r\n output = myLib.getLineStringLength(sketch);\r\n }\r\n else if(that.state.drawingType === 'Polygon') {\r\n tooltipCoord = geom.getInteriorPoint().getCoordinates();\r\n output = myLib.getPolygonArea(sketch);\r\n }\r\n else if(that.state.drawingType === 'Circle') {\r\n tooltipCoord = geom.getCenter();\r\n output = myLib.getRadius(sketch);\r\n }\r\n that.measureTooltipElement.innerHTML = output;\r\n that.measureTooltip.setPosition(tooltipCoord);\r\n });\r\n }\r\n map_onDrawend = (event) => {\r\n //console.log(event.feature.getGeometry() + '');\r\n console.log(\"draw end\");\r\n event.feature.set(\"type\", this.state.drawingType);\r\n //neu la polygon, circle thi add them cac center\r\n if (this.state.drawingType === \"Circlexxxxxx\") {\r\n var center = event.feature.getGeometry().getCenter();\r\n var center_feature = new ol_Feature({\r\n geometry: new ol_geom_Point(center),\r\n type: \"Point\",\r\n fake: true,\r\n reference: event.feature, //tham chieu de sau nay remove\r\n });\r\n event.feature.set('center_feature', center_feature);\r\n this.state.drawSourceVector.addFeature(\r\n center_feature\r\n );\r\n }\r\n this.setState({ drawingType: undefined }); //ket thuc drawing\r\n unByKey(this.listener);\r\n this.measureTooltip.setPosition(undefined); //an di tooltip\r\n };\r\n //hien thi tau sar tren ban do\r\n showTauSar = (feature) => {\r\n var data = feature.get('data');\r\n server.query('sukien/getdieudong?mask=' + data.MaSK).then((response) => {\r\n var tracks = this.state.trackSars;\r\n tracks[data.MaSK] = response;\r\n this.setState({trackSars: tracks});\r\n }).catch((error) => console.log(error));\r\n }\r\n //load hinh ve de hien thi\r\n loadDrawItems() {\r\n //thuc hien query ve server va hien thi\r\n server\r\n .query(\"hinhve/gettimkiem\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) => {\r\n item.id = index + 1;\r\n var json = JSON.parse(item.JsonData);\r\n item.JsonData = json;\r\n list.push(\r\n new ol_Feature({\r\n geometry:\r\n item.Loai === \"Point\"\r\n ? new ol_geom_Point(json.Coordinates[0])\r\n : item.Loai === \"LineString\" ||\r\n item.Loai === \"SquareSearch\" ||\r\n item.Loai === \"ParallelSearch\" ||\r\n item.Loai === \"SectorSearch\"\r\n ? new ol_geom_LineString(json.Coordinates)\r\n : item.Loai === \"Polygon\"\r\n ? new ol_geom_Polygon([json.Coordinates])\r\n : item.Loai === \"Circle\"\r\n ? new ol_geom_Circle(\r\n json.Coordinates[0],\r\n json.BanKinh / (1852 * 60)\r\n )\r\n : null,\r\n type: item.Loai,\r\n saved: true, //danh dau feature da co trong csdl\r\n data: item, //du lieu dang luu trong csdl\r\n })\r\n );\r\n if (item.Loai === \"Circlexxxxxxxxx\") {\r\n //add them point of center fake\r\n list.push(\r\n new ol_Feature({\r\n geometry: new ol_geom_Point(json.Coordinates[0]),\r\n type: \"Point\",\r\n fake: true,\r\n })\r\n );\r\n }\r\n });\r\n this.setState({ drawItems: list });\r\n })\r\n .catch((error) => console.log(error));\r\n }\r\n //load va hien thi lien ket\r\n loadLinks() {\r\n //thuc hien query ve server va hien thi\r\n server\r\n .get(\"/links.json\")\r\n .then((response) => {\r\n console.log(response);\r\n this.setState({links: response});\r\n })\r\n .catch((error) => console.log(error));\r\n }\r\n //load hinh ve de hien thi\r\n loadKhuVucItems() {\r\n //thuc hien query ve server va hien thi\r\n server\r\n .query(\"khuvuc/gethinhve\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) => {\r\n item.id = index + 1;\r\n list.push(\r\n new ol_Feature({\r\n geometry: new ol_geom_Polygon([item.Coordinates]),\r\n type: \"Polygon\",\r\n saved: true, //danh dau feature da co trong csdl\r\n data: item, //du lieu dang luu trong csdl\r\n })\r\n );\r\n });\r\n this.setState({ khuvucItems: list });\r\n })\r\n .catch((error) => console.log(error));\r\n }\r\n loadDanhmuc() {}\r\n componentDidMount() {\r\n this.loadDanhmuc();\r\n this.loadDrawItems();\r\n this.loadKhuVucItems();\r\n this.loadSuKien();\r\n this.loadLinks();\r\n }\r\n handleSaveDrawItem = (feature, action) => {\r\n var newData = feature.get(\"data\");\r\n var items = this.state.drawItems;\r\n var index = -1;\r\n items.map((old, i) => {\r\n var data = old.get(\"data\");\r\n if (data && newData && data.ID === newData.ID) {\r\n index = i;\r\n }\r\n });\r\n if (action !== \"xoa\") {\r\n if (index < 0) {\r\n items.push(feature);\r\n this.state.drawSourceVector.removeFeature(feature);\r\n }\r\n } else {\r\n if (this.state.drawSourceVector.hasFeature(feature)) {\r\n if(feature.get('center_feature') !== undefined) { //circle co center feature\r\n this.state.drawSourceVector.removeFeature(feature.get('center_feature')); \r\n }\r\n this.state.drawSourceVector.removeFeature(feature);\r\n }\r\n if (index >= 0) {\r\n items.splice(index, 1);\r\n }\r\n }\r\n this.setState({\r\n drawItems: items,\r\n drawSourceVector: this.state.drawSourceVector,\r\n });\r\n };\r\n changeMapType(type) {\r\n this.setState({ bando_menu_anchor: null, bando_google_layer: type });\r\n localConfig.set(\"bando\", type); //cau hinh cho phien lam viec tiep theo\r\n }\r\n loadSuKien() {\r\n server\r\n .post(\"sukien/filter\", this.state.sukien_filter_data)\r\n .then((response) => {\r\n this.handleFilterResult(this.state.sukien_filter_data, response);\r\n })\r\n .catch((error) => console.log(error));\r\n }\r\n\r\n //Xu ly ket qua tim kiem su kien\r\n handleFilterResult(filter, result) {\r\n //tao lap danh sach features\r\n const list = [];\r\n const danhsach = result.danhsach;\r\n danhsach.map((item, index) => {\r\n list.push(\r\n new ol_Feature({\r\n geometry: new ol_geom_Point([item.Lon, item.Lat]),\r\n name: item.TenSK,\r\n type: \"sukien\",\r\n data: item, //thong tin data\r\n })\r\n );\r\n });\r\n this.setState({\r\n show_filter_dialog: false,\r\n sukien_filter_data: filter,\r\n sukien_filter_result: list,\r\n listChitiets: [], //clear hien thi chi tiet\r\n trackSars: [],\r\n });\r\n }\r\n render() {\r\n const markers = [];\r\n if (global.mapHeight === undefined) {\r\n global.mapHeight = this.props.height;\r\n }\r\n return (\r\n <>\r\n

\r\n this.setState({ show_filter_dialog: true })}\r\n />\r\n {\r\n this.setState({ show_layer_khuvuc: event.target.checked });\r\n localConfig.set(\"show_khuvuc\", event.target.checked);\r\n }}\r\n name=\"chkKhuvuc\"\r\n />\r\n }\r\n label=\"Khu vực biển\"\r\n />\r\n {\r\n this.setState({ show_layer_hinhve: event.target.checked });\r\n localConfig.set(\"show_hinhve\", event.target.checked);\r\n }}\r\n name=\"chkHinhve\"\r\n />\r\n }\r\n label=\"Hình vẽ\"\r\n />\r\n {\r\n this.setState({ show_overlay_hinhve: event.target.checked });\r\n localConfig.set(\"show_overlay_hinhve\", event.target.checked);\r\n }}\r\n name=\"chkHinhve\"\r\n />\r\n }\r\n label=\"Tên hình vẽ\"\r\n />\r\n {\r\n this.setState({ showGraticule: event.target.checked });\r\n localConfig.set(\"showGraticule\", event.target.checked);\r\n }}\r\n name=\"chkHinhve\"\r\n />\r\n }\r\n label=\"Lưới tọa độ\"\r\n />\r\n \r\n this.setState({ bando_menu_anchor: event.currentTarget })\r\n }\r\n />\r\n this.setState({ bando_menu_anchor: null })}\r\n >\r\n this.changeMapType(\"m\")}>\r\n Google Road\r\n \r\n this.changeMapType(\"y\")}>\r\n Google Satellite\r\n \r\n this.changeMapType(\"p\")}>\r\n Google Terrain\r\n \r\n this.changeMapType(\"viet\")}>\r\n Việt Nam\r\n \r\n \r\n this.setState({ drawingType: \"Polygon\" })}\r\n />\r\n this.setState({ drawingType: \"Point\" })}\r\n />\r\n this.setState({ drawingType: \"LineString\" })}\r\n />\r\n this.setState({ drawingType: \"Circle\" })}\r\n />\r\n \r\n this.setState({ links_menu_anchor: event.currentTarget })\r\n }\r\n />\r\n this.setState({ links_menu_anchor: null })}\r\n >\r\n {this.state.links.map((item, index) => {\r\n return (\r\n window.open(item.url, \"_blank\")}>\r\n {item.name}\r\n \r\n );\r\n })}\r\n \r\n
\r\n (this.mapComp = el)}\r\n onPointermove={this.map_onPointermove}\r\n >\r\n \r\n {/*Ban do nen */}\r\n {this.state.bando_google_layer === \"m\" ? (\r\n \r\n ) : null}\r\n {this.state.showGraticule ? (\r\n \r\n ) : null}\r\n {this.state.bando_google_layer === \"s\" ? (\r\n \r\n ) : null}\r\n {this.state.bando_google_layer === \"y\" ? (\r\n \r\n ) : null}\r\n {this.state.bando_google_layer === \"p\" ? (\r\n \r\n ) : null}\r\n {this.state.bando_google_layer === \"viet\" ? (\r\n \r\n ) : null}\r\n {/* Su kien layer */}\r\n {\r\n (this.sukienLayer = el)}\r\n />\r\n }\r\n {/* draw layer */}\r\n {/**/}\r\n \r\n {/**Layer hien thi cac draw item da co trong csdl */}\r\n {this.state.show_layer_hinhve ? (\r\n \r\n ) : null}\r\n {/**Hien thi layer khu vuc */}\r\n {this.state.show_layer_khuvuc ? (\r\n \r\n ) : null}\r\n {/**Hien thi layer hanh trinh tau sar */}\r\n \r\n \r\n \r\n (this.overlayComp = item)}>\r\n (this.popupComp = item)}\r\n >\r\n \r\n {/**Hien thi overlay khi dang drawing */}\r\n {this.state.drawingType ? (\r\n \r\n
\r\n \r\n ) : null}\r\n {/**Hien thi overlay cho cac item draw */}\r\n {this.state.drawSourceVector.getFeatures().map((feature, index) => {\r\n const type = feature.get(\"type\");\r\n const fake = feature.get(\"fake\");\r\n if (true === fake) {\r\n return undefined;\r\n }\r\n const coord =\r\n type === \"Point\"\r\n ? feature.getGeometry().getCoordinates()\r\n : type === \"LineString\" ||\r\n type === \"SquareSearch\" ||\r\n type === \"ParallelSearch\" ||\r\n type === \"SectorSearch\"\r\n ? feature.getGeometry().getLastCoordinate()\r\n : type === \"Polygon\"\r\n ? feature.getGeometry().getInteriorPoint().getCoordinates()\r\n : feature.getGeometry().getCenter();\r\n return (\r\n \r\n
\r\n {\r\n if (type === \"Point\") {\r\n this.setState({\r\n showPointEdit: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n if (type === \"LineString\") {\r\n this.setState({\r\n showLineEdit: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n if (type === \"Polygon\") {\r\n this.setState({\r\n showPolygonEdit: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n if (type === \"Circle\") {\r\n this.setState({\r\n showCircleEdit: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n }}\r\n variant=\"body2\"\r\n >\r\n
\r\n                        {type === \"Point\"\r\n                          ? myLib.latToDMS(coord[1]) +\r\n                            \"-\" +\r\n                            myLib.lonToDMS(coord[0])\r\n                          : type === \"LineString\"\r\n                          ? myLib.getLineStringLength(feature)\r\n                          : type === \"Circle\"\r\n                          ? myLib.getRadius(feature) +\r\n                            \"\\n\" +\r\n                            myLib.latToDMS(coord[1]) +\r\n                            \"-\" +\r\n                            myLib.lonToDMS(coord[0])\r\n                          : myLib.getPolygonArea(feature)}\r\n                      
\r\n \r\n {type === \"LineString\" ? (\r\n <>\r\n {\r\n if (type === \"LineString\") {\r\n this.setState({\r\n showSquareSearch: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n }}\r\n variant=\"body2\"\r\n >\r\n
Square search
\r\n \r\n {\r\n if (type === \"LineString\") {\r\n this.setState({\r\n showParallelSearch: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n }}\r\n variant=\"body2\"\r\n >\r\n
Parallel search
\r\n \r\n {\r\n if (type === \"LineString\") {\r\n this.setState({\r\n showSectorSearch: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n }}\r\n variant=\"body2\"\r\n >\r\n
Sector search
\r\n \r\n \r\n ) : null}\r\n
\r\n \r\n );\r\n })}\r\n {/**Hien thi overlay cho cac item da co trong CSDL */}\r\n {this.state.show_layer_hinhve && this.state.show_overlay_hinhve\r\n ? this.state.drawItems.map((feature, index) => {\r\n const type = feature.get(\"type\");\r\n const fake = feature.get(\"fake\");\r\n const data = feature.get(\"data\");\r\n if (true === fake) {\r\n return undefined;\r\n }\r\n const coord =\r\n type === \"Point\"\r\n ? feature.getGeometry().getCoordinates()\r\n : type === \"LineString\" ||\r\n type === \"SquareSearch\" ||\r\n type === \"ParallelSearch\" ||\r\n type === \"SectorSearch\"\r\n ? feature.getGeometry().getLastCoordinate()\r\n : type === \"Polygon\"\r\n ? feature\r\n .getGeometry()\r\n .getInteriorPoint()\r\n .getCoordinates()\r\n : feature.getGeometry().getCenter();\r\n return (\r\n \r\n
\r\n {\r\n if (type === \"Point\") {\r\n this.setState({\r\n showPointEdit: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n if (type === \"LineString\") {\r\n this.setState({\r\n showLineEdit: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n if (type === \"SquareSearch\") {\r\n this.setState({\r\n showSquareSearch: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n if (type === \"ParallelSearch\") {\r\n this.setState({\r\n showParallelSearch: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n if (type === \"SectorSearch\") {\r\n this.setState({\r\n showSectorSearch: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n if (type === \"Polygon\") {\r\n this.setState({\r\n showPolygonEdit: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n if (type === \"Circle\") {\r\n this.setState({\r\n showCircleEdit: true,\r\n edittingMode: \"edit\",\r\n Editting_Feature: feature,\r\n });\r\n }\r\n }}\r\n variant=\"body2\"\r\n >\r\n
{data.Ten}
\r\n
\r\n {type === \"Point\"\r\n ? myLib.latToDMS(coord[1]) +\r\n \"-\" +\r\n myLib.lonToDMS(coord[0])\r\n : type === \"LineString\" ||\r\n type === \"SquareSearch\" ||\r\n type === \"ParallelSearch\" ||\r\n type === \"SectorSearch\"\r\n ? myLib.getLineStringLength(feature)\r\n : type === \"Circle\"\r\n ? myLib.getRadius(feature)\r\n : myLib.getPolygonArea(feature)}\r\n \r\n
\r\n \r\n );\r\n })\r\n : null}\r\n {/**Hien thi overlay cho cac khu vuc da ve trong csdl */}\r\n {this.state.show_layer_khuvuc && this.state.show_overlay_hinhve\r\n ? this.state.khuvucItems.map((feature, index) => {\r\n const type = \"Polygon\";\r\n const fake = false;\r\n const data = feature.get(\"data\");\r\n if (true === fake) {\r\n return undefined;\r\n }\r\n const coord = feature\r\n .getGeometry()\r\n .getInteriorPoint()\r\n .getCoordinates();\r\n return (\r\n \r\n
\r\n {\r\n this.setState({\r\n showThoiTiet: true,\r\n Editting_MaKV: data.MaKV,\r\n });\r\n }}\r\n variant=\"body2\"\r\n >\r\n
\r\n                            {data.TenKhuVuc + \"\\n(\" + data.MaVung.label + \")\"}\r\n                          
\r\n \r\n
\r\n \r\n );\r\n })\r\n : null}\r\n\r\n {/**Hien thi chi tiet su kien */}\r\n {this.state.listChitiets.map((feature, index) => {\r\n const data = feature.get(\"data\");\r\n const coord = feature.getGeometry().getCoordinates();\r\n return (\r\n \r\n {\r\n if (action === \"chitiet\") {\r\n this.setState({\r\n open_edit_sukien: true,\r\n Editting_MaSK: data.MaSK,\r\n });\r\n }\r\n if (action === \"close\") {\r\n var found = undefined;\r\n var list = this.state.listChitiets;\r\n list.map((item, index) => {\r\n if (item.get(\"data\").MaSK === data.MaSK) {\r\n found = index;\r\n }\r\n });\r\n if (found >= 0) {\r\n list.splice(found, 1);\r\n this.setState({ listChitiets: list });\r\n }\r\n }\r\n if(action === 'sar') { //hien thi tau sar cua su kien\r\n this.showTauSar(feature);\r\n }\r\n }}\r\n />\r\n \r\n );\r\n })}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n if (feature.get(\"type\") === \"sukien\") {\r\n return true;\r\n }\r\n return false;\r\n }}\r\n onSelect={(evt) => {\r\n evt.selected.forEach((feature) => {\r\n //hien thi thong tin su kien\r\n const data = feature.get(\"data\");\r\n const list = this.state.listChitiets;\r\n var found = false;\r\n list.map((item,index) => {\r\n found = found || item.get('data').MaSK === data.MaSK;\r\n })\r\n if(!found) {\r\n list.push(feature);\r\n this.setState({ listChitiets: list });\r\n }\r\n /*\r\n this.setState({\r\n open_edit_sukien: true,\r\n Editting_MaSK: data.MaSK,\r\n });\r\n * */\r\n });\r\n }}\r\n />\r\n {this.state.drawingType ? (\r\n \r\n ) : undefined}\r\n \r\n \r\n {this.state.showPointEdit && global.User.Quyen.R211 ? (\r\n \r\n this.setState(\r\n {\r\n showPointEdit: false,\r\n edittingMode: \"edit\",\r\n },\r\n () => {}\r\n )\r\n }\r\n onSaved={this.handleSaveDrawItem}\r\n />\r\n ) : null}\r\n {this.state.showLineEdit && global.User.Quyen.R211 ? (\r\n \r\n this.setState(\r\n {\r\n showLineEdit: false,\r\n edittingMode: \"edit\",\r\n },\r\n () => {}\r\n )\r\n }\r\n onSaved={this.handleSaveDrawItem}\r\n />\r\n ) : null}\r\n {this.state.showPolygonEdit && global.User.Quyen.R211 ? (\r\n \r\n this.setState(\r\n {\r\n showPolygonEdit: false,\r\n edittingMode: \"edit\",\r\n },\r\n () => {}\r\n )\r\n }\r\n onSaved={this.handleSaveDrawItem}\r\n />\r\n ) : null}\r\n {this.state.showCircleEdit && global.User.Quyen.R211 ? (\r\n \r\n this.setState(\r\n {\r\n showCircleEdit: false,\r\n edittingMode: \"edit\",\r\n },\r\n () => {}\r\n )\r\n }\r\n onSaved={this.handleSaveDrawItem}\r\n />\r\n ) : null}\r\n {this.state.show_filter_dialog ? (\r\n this.setState({ show_filter_dialog: ok })}\r\n onSearched={(filter, result) => {\r\n this.handleFilterResult(filter, result);\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState({\r\n open_edit_sukien: false,\r\n Editting_MaSK: undefined,\r\n })\r\n }\r\n />\r\n ) : null}\r\n {this.state.showThoiTiet ? (\r\n \r\n this.setState(\r\n {\r\n showThoiTiet: false,\r\n Editting_MaKV: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {}\r\n )\r\n }\r\n />\r\n ) : null}\r\n {this.state.showSquareSearch && global.User.Quyen.R211 ? (\r\n \r\n this.setState(\r\n {\r\n showSquareSearch: false,\r\n edittingMode: \"edit\",\r\n },\r\n () => {}\r\n )\r\n }\r\n onSaved={this.handleSaveDrawItem}\r\n />\r\n ) : null}\r\n {this.state.showSectorSearch && global.User.Quyen.R211 ? (\r\n \r\n this.setState(\r\n {\r\n showSectorSearch: false,\r\n edittingMode: \"edit\",\r\n },\r\n () => {}\r\n )\r\n }\r\n onSaved={this.handleSaveDrawItem}\r\n />\r\n ) : null}\r\n {this.state.showParallelSearch && global.User.Quyen.R211 ? (\r\n \r\n this.setState(\r\n {\r\n showParallelSearch: false,\r\n edittingMode: \"edit\",\r\n },\r\n () => {}\r\n )\r\n }\r\n onSaved={this.handleSaveDrawItem}\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nexport default MapViewControl;\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\nimport DateTimePicker from \"react-datetime\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\n\r\nclass SuKienTimKiemControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSearch = this.handleSearch.bind(this);\r\n this.state = {\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_coquan: true, // co dang load ding danh muc nguon tin ko\r\n source_coquan: [], //danh muc options cho nguon tin\r\n //searching\r\n search_loading: false,\r\n search_result: { danhsach: [], total: 0 }, //ket qua tim kiem\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : props.value, //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n Page: 1,\r\n PageSize: 10,\r\n TenTau: \"\", //tim kiem theo ten tau\r\n TuNgay: null,\r\n DenNgay: null,\r\n TrangThai: \"1\",\r\n MaCQ: \"0\", //trung tam xu ly\r\n PhanLoai: \"1\", //su kien that gia\r\n Duyet: \"-1\", //chua duyet\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n componentDidMount() {\r\n if (this.props.callback) {\r\n this.props.callback(this.handleSearch);\r\n }\r\n this.loadDanhMuc();\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n //console.log(\"save field\", fieldName, value);\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = true;\r\n s.canSaved = true;\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSearch = (pageIndex) => {\r\n if (this.state.canSaved) {\r\n var search = {};\r\n Object.assign(search, this.state.after);\r\n search.Page = pageIndex === undefined ? search.Page : pageIndex;\r\n this.setState({ saving: true, errorLog: \"\" });\r\n //console.log(search);\r\n server\r\n .post(\"sukien/search\", search)\r\n .then((response) => {\r\n var after = myLib.cloneObject(this.state.after);\r\n this.setState({\r\n dataChanged: false,\r\n canSaved: true,\r\n saving: false,\r\n errorLog: \"\",\r\n search_loading: false,\r\n search_result: response,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSearched) {\r\n this.props.onSearched(after, response);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n }\r\n };\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n server\r\n .query(\"coquan/getall\")\r\n .then((response) => {\r\n var list = [];\r\n var find = undefined;\r\n response.map((item, index) => {\r\n var option = { value: item.MaCQ, label: item.TenCoQuan };\r\n list.push(option);\r\n if (item.MaCQ === global.User.MaCQ && find === undefined) {\r\n find = option;\r\n }\r\n });\r\n list.push({ value: \"0\", label: \"---Tất cả---\" });\r\n //default theo tai khoan\r\n var after = myLib.cloneObject(this.state.after);\r\n find.value = find.value;\r\n after.MaCQ = find;\r\n var state = {\r\n canSaved: true,\r\n source_coquan: list,\r\n loading_coquan: false,\r\n after: after,\r\n };\r\n this.setState(state, () => this.handleSearch());\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_coquan: false });\r\n });\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n Đơn vị:\r\n {this.state.loading_coquan ? (\r\n \r\n ) : (\r\n
\r\n ({ ...base, zIndex: 9999 }) }}\r\n menuPosition={\"fixed\"}\r\n value={this.state.after.MaCQ}\r\n onChange={(item) => this.saveField(\"MaCQ\", item)}\r\n >\r\n
\r\n )}\r\n
\r\n \r\n this.saveField(\"TenTau\", event.target.value)}\r\n />\r\n \r\n \r\n \r\n Trạng thái:\r\n \r\n this.saveField(\"TrangThai\", event.target.value)\r\n }\r\n >\r\n Đang xử lý\r\n Đã kết thúc\r\n --Tất cả--\r\n \r\n \r\n \r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n\r\n \r\n Từ ngày:\r\n {\r\n var text = event.target.value;\r\n if(this.state.after.TuNgay === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('TuNgay', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\"TuNgay\", date && date.toDate ? date.toDate() : null)\r\n }\r\n />\r\n \r\n \r\n Đến ngày:\r\n {\r\n var text = event.target.value;\r\n if(this.state.after.DenNgay === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('DenNgay', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\"DenNgay\", date && date.toDate ? date.toDate() : null)\r\n }\r\n />\r\n \r\n \r\n \r\n Duyệt:\r\n \r\n this.saveField(\"Duyet\", event.target.value)\r\n }\r\n >\r\n Chưa duyệt\r\n Đã duyệt\r\n --Tất cả--\r\n \r\n \r\n \r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n size=\"normal\"\r\n icon={}\r\n text=\"Tìm kiếm\"\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n cboMacq: {\r\n backgroundColor: \"gray\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SuKienTimKiemControl);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\n\r\nfunction MyMaskMonthEditor(props) {\r\n const { inputRef, ...other } = props;\r\n\r\n return (\r\n {\r\n inputRef(ref ? ref.inputElement : null);\r\n }}\r\n mask={[/[0-1]/, /[0-9]/, \"/\", /[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/]}\r\n placeholderChar={\"_\"}\r\n showMask\r\n keepCharPositions={true}\r\n guide={true}\r\n />\r\n );\r\n}\r\nclass TrucBanTimKiemControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSearch = this.handleSearch.bind(this);\r\n this.state = {\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_coquan: true, // co dang load ding danh muc nguon tin ko\r\n source_coquan: [], //danh muc options cho nguon tin\r\n //searching\r\n search_loading: false,\r\n search_result: { danhsach: [], total: 0 }, //ket qua tim kiem\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : props.value, //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n Page: 1,\r\n PageSize: 10,\r\n MaCQ: \"0\", //trung tam xu ly\r\n Thang: \"\",\r\n TenSK: \"\", //tim kiem theo ten tau\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n componentDidMount() {\r\n if (this.props.callback) {\r\n this.props.callback(this.handleSearch);\r\n }\r\n this.loadDanhMuc();\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = true;\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n console.log(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSearch = (pageIndex) => {\r\n var search = {};\r\n Object.assign(search, this.state.after);\r\n search.Page = pageIndex === undefined ? search.Page : pageIndex;\r\n this.setState({ saving: true, errorLog: \"\" });\r\n console.log(search);\r\n server\r\n .post(\"trucban/search\", search)\r\n .then((response) => {\r\n var before = {};\r\n var after = search;\r\n Object.assign(before, after);\r\n this.setState({\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n search_loading: false,\r\n search_result: response,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSearched) {\r\n this.props.onSearched(after, response);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n server\r\n .query(\"coquan/getall\")\r\n .then((response) => {\r\n var list = [];\r\n var find = undefined;\r\n response.map((item, index) => {\r\n var option = { value: item.MaCQ, label: item.TenCoQuan };\r\n list.push(option);\r\n if (item.MaCQ === global.User.MaCQ && find === undefined) {\r\n find = option;\r\n }\r\n });\r\n list.push({ value: \"0\", label: \"---Tất cả---\" });\r\n //default theo tai khoan\r\n var after = myLib.cloneObject(this.state.after);\r\n after.MaCQ = find;\r\n this.setState({ canSaved: true, source_coquan: list, loading_coquan: false, after: after });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_coquan: false });\r\n });\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n Cơ quan:\r\n {this.state.loading_coquan ? (\r\n \r\n ) : (\r\n
\r\n ({ ...base, zIndex: 9999 }) }}\r\n menuPosition={\"fixed\"}\r\n value={this.state.after.MaCQ}\r\n onChange={(item) => this.saveField(\"MaCQ\", item)}\r\n >\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n Tháng:\r\n \r\n {\r\n this.saveField(\"Thang\", event.target.value);\r\n }}\r\n />\r\n \r\n \r\n \r\n this.saveField(\"TenSK\", event.target.value)}\r\n />\r\n \r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n cboMacq: {\r\n backgroundColor: \"gray\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(TrucBanTimKiemControl);\r\n","/*Edit thong tin ve nguon tin va tai nan, phuong tien bi nan */\r\nimport React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport SelectFilter from \"react-select\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport MyLatLonEditor from \"./LatLonEditor\";\r\nimport ConfirmDialog from \"../ConfirmDialog\";\r\nimport LoaiTauEditDialog from \"../danhmuc/LoaiTauEditDialog\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\nimport { FormHelperText } from \"@material-ui/core\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\nconst uuidV4 = require(\"uuid/v4\");\r\n\r\nconst defaultRecord = {\r\n MaSK: null,\r\n MaPT: null,\r\n STT: 1,\r\n TenTau: null,\r\n HoHieu: null,\r\n IMO: null,\r\n MaQG: { value: \"VNM\", label: \"Viet Nam\" },\r\n MMSI: null,\r\n LoaiTau: null,\r\n TrongTai: null,\r\n SoNguoi: null,\r\n ThongTin: null,\r\n SatPhone: null,\r\n TuyenDuong1: null,\r\n TuyenDuong2: null,\r\n TenChuTau: null,\r\n DiaChi: null,\r\n Fax: null,\r\n TrucTiep: null,\r\n GianTiep: null,\r\n BiDam: null,\r\n};\r\n\r\n///////////////////////////////////////////////////////////////////\r\nclass SuKienPhuongTienControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n dataSaved: props.value !== undefined, //ban ghi da duoc cap nhat hay chua\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n //confirm xoa phuong tien\r\n showConfirmXoa: false,\r\n //danh muc quoc gia\r\n loading_quoctich: true, // co dang loading danh muc quoc gia khong\r\n source_quoctich: [], //danh muc options cho quoc tich\r\n //danh muc loai tau\r\n loading_loaitau: true, // co dang loading danh muc loai tau\r\n source_loaitau: [], //danh muc options cho loai tau\r\n open_them_loaitau: false,\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? { ...defaultRecord, STT: props.stt, MaPT: uuidV4() + \"\" }\r\n : {\r\n ...defaultRecord,\r\n STT: props.stt,\r\n MaPT: uuidV4() + \"\",\r\n ...props.value,\r\n }, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n tracuu_menu_anchor: null, //hien thi menu\r\n };\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var old_changed = this.state.dataChanged;\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"TenTau\",\r\n \"HoHieu\",\r\n \"IMO\",\r\n \"MaQG\",\r\n \"MMSI\",\r\n \"LoaiTau\",\r\n \"TrongTai\",\r\n \"SoNguoi\",\r\n \"ThongTin\",\r\n \"SatPhone\",\r\n \"TuyenDuong1\",\r\n \"TuyenDuong2\",\r\n \"TenChuTau\",\r\n \"DiaChi\",\r\n \"Fax\",\r\n \"TrucTiep\",\r\n \"GianTiep\",\r\n \"BiDam\",\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n console.log(s);\r\n if(this.props.onChanged && old_changed != s.dataChanged) {\r\n this.props.onChanged(s.dataChanged);\r\n } \r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n console.log(\"phuong tien \", JSON.stringify(this.state.after));\r\n var check = sukienLayer.validate(\"phuongtien\", this.state.after);\r\n console.log(\"check \", check);\r\n if (!check.error) {\r\n this.setState({ validateStatus: {}, saving: true, errorLog: \"\" });\r\n server\r\n .post(\r\n \"sukien/savePhuongTien\",\r\n sukienLayer.chuanHoaSukien(\"phuongtien\", this.state.after)\r\n )\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n dataSaved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n if(this.props.onChanged) {\r\n this.props.onChanged(false);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n };\r\n loadDanhMuc() {\r\n //load danh muc quoc gia\r\n server\r\n .query(\"quocgia/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaQG, label: item.TenQuocGia })\r\n );\r\n this.setState({ source_quoctich: list, loading_quoctich: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_quoctich: false });\r\n });\r\n //load danh muc loai tau bao nan\r\n server\r\n .query(\"loaitau/getloaitau\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.LoaiTau, label: item.TenLoaiTau })\r\n );\r\n this.setState({ source_loaitau: list, loading_loaitau: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_loaitau: false });\r\n });\r\n }\r\n //khi load component: load cac danh muc can thiet\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n var newState = { ...state };\r\n if (props.value !== undefined) {\r\n newState.after.MaSK = props.value.MaSK; //lay ma su kien thong qua props\r\n }\r\n return newState;\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n console.log(this.props.allowAddMore, \"adddmore\");\r\n return (\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n classes={{\r\n root: classes.normalPanel,\r\n expanded: classes.expandedPanel,\r\n content: classes.summaryContent\r\n }}\r\n >\r\n \r\n Thông tin phương tiện{\" \"}\r\n {this.props.stt === 1 ? undefined : \" thứ \" + this.props.stt}\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.saveField(\"TenTau\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenTau !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenTau !== undefined\r\n ? this.state.validateStatus.TenTau.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"HoHieu\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n this.saveField(\"IMO\", event.target.value)}\r\n />\r\n \r\n \r\n Quốc tịch(*):\r\n {this.state.loading_quoctich ? (\r\n \r\n ) : (\r\n this.saveField(\"MaQG\", item)}\r\n >\r\n )}\r\n \r\n \r\n this.saveField(\"MMSI\", event.target.value)}\r\n />\r\n \r\n \r\n this.setState({ open_them_loaitau: true })\r\n : undefined\r\n }\r\n >\r\n Loại tàu(*):\r\n \r\n {this.state.loading_loaitau ? (\r\n \r\n ) : (\r\n this.saveField(\"LoaiTau\", item)}\r\n >\r\n )}\r\n \r\n \r\n \r\n this.saveField(\"TrongTai\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"SoNguoi\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"ThongTin\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"SatPhone\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"TuyenDuong1\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"TuyenDuong2\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"TenChutau\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"DiaChi\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n this.saveField(\"Fax\", event.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n this.saveField(\"TrucTiep\", event.target.checked)\r\n }\r\n name=\"chkTrucTiep\"\r\n />\r\n }\r\n label=\"Hỗ trợ trực tiếp\"\r\n />\r\n \r\n \r\n \r\n this.saveField(\"GianTiep\", event.target.checked)\r\n }\r\n name=\"chkGianTiep\"\r\n />\r\n }\r\n label=\"Hỗ trợ gián tiếp\"\r\n />\r\n \r\n \r\n \r\n this.saveField(\"BiDam\", event.target.checked)\r\n }\r\n name=\"chkBiDam\"\r\n />\r\n }\r\n label=\"Bị đắm\"\r\n />\r\n \r\n \r\n {this.state.canSaved ? (\r\n \r\n ) : null}\r\n \r\n \r\n {\r\n this.setState({ tracuu_menu_anchor: event.currentTarget });\r\n }}\r\n color=\"primary\"\r\n text=\"Tra cứu thông tin\"\r\n />\r\n \r\n \r\n {this.state.dataSaved &&\r\n this.props.stt === 1 &&\r\n this.props.allowAddMore ? (\r\n {\r\n if (this.props.onAddMore) {\r\n this.props.onAddMore(this.props.stt);\r\n }\r\n }}\r\n color=\"primary\"\r\n text=\"Thêm phương tiện khác\"\r\n />\r\n ) : null}\r\n \r\n\r\n \r\n {this.props.stt > 1 ? (\r\n {\r\n this.setState({ showConfirmXoa: true });\r\n }}\r\n color=\"primary\"\r\n text=\"Xóa phương tiện\"\r\n />\r\n ) : null}\r\n \r\n\r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n {this.state.showConfirmXoa ? (\r\n {\r\n if (ok) {\r\n this.setState({\r\n showConfirmXoa: false,\r\n validateStatus: {},\r\n saving: true,\r\n errorLog: \"\",\r\n });\r\n server\r\n .post(\"sukien/removePhuongTien\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n dataSaved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onRemoved) {\r\n this.props.onRemoved(this.props.stt);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ showConfirmXoa: false });\r\n }\r\n }}\r\n />\r\n ) : null}\r\n \r\n this.setState({ tracuu_menu_anchor: null })}\r\n >\r\n \r\n window.open(\"http://xm.vr.org.vn/TaubienVR/\", \"_blank\")\r\n }\r\n >\r\n Đăng kiểm Việt Nam\r\n \r\n \r\n window.open(\r\n \"https://www.marinetraffic.com/en/data/?asset_type=vessels&columns=flag,shipname,photo,recognized_next_port,reported_eta,reported_destination,current_port,imo,ship_type&shipname|begins|shipname=\" +\r\n encodeURIComponent(this.state.after.TenTau),\r\n \"_blank\"\r\n )\r\n }\r\n >\r\n MarineTraffic\r\n \r\n \r\n window.open(\r\n \"https://www.vesselfinder.com/vessels?name=\" +\r\n encodeURIComponent(this.state.after.TenTau),\r\n \"_blank\"\r\n )\r\n }\r\n >\r\n VesselFinder\r\n \r\n \r\n {this.state.open_them_loaitau ? (\r\n {\r\n this.setState({ open_them_loaitau: false });\r\n }}\r\n onSaved={(record) => {\r\n var list = [].concat(this.state.source_loaitau);\r\n var new_item = {\r\n value: record.LoaiTau,\r\n label: record.TenLoaiTau,\r\n };\r\n list.unshift(new_item);\r\n this.setState({\r\n source_loaitau: list,\r\n dataChanged: true,\r\n canSaved: true,\r\n after: { ...this.state.after, LoaiTau: new_item },\r\n });\r\n }}\r\n />\r\n ) : null}\r\n \r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: \"100%\",\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n margin: 0,\r\n minHeight: 11,\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n margin: 0,\r\n minHeight: '10px !important',\r\n },\r\n summaryContent: {\r\n margin: '1px !important',\r\n },\r\n normalLabel: {\r\n color: \"black\",\r\n },\r\n redLabel: {\r\n color: \"red\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SuKienPhuongTienControl);\r\n","/*Edit thong tin ve nguon tin va tai nan, phuong tien bi nan */\r\nimport React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport SelectFilter from \"react-select\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport DateTimePicker from \"react-datetime\";\r\nimport MyLatLonEditor from \"./LatLonEditor\";\r\nimport ConfirmDialog from \"../ConfirmDialog\";\r\nimport TauSarEditDialog from '../danhmuc/TauSarEditDialog';\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\nimport { FormHelperText } from \"@material-ui/core\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\nconst uuidV4 = require(\"uuid/v4\");\r\n\r\nconst defaultRecord = {\r\n MaSK: null,\r\n MaTau: null,\r\n STT: 1,\r\n TenTau: null,\r\n LoaiHinh: \"1\",\r\n NgayRoi: null,\r\n NgayKetThuc: null,\r\n BiThuong: 0,\r\n BiBenh: 0,\r\n Lat: null,\r\n Lon: null,\r\n ThoiGianVT: null,\r\n ViTri: null,\r\n TrongTai: null,\r\n CongSuat: null,\r\n GhiChu: '',\r\n};\r\n\r\n///////////////////////////////////////////////////////////////////\r\nclass SuKienDieuDongControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.insertHanhTrinh = this.insertHanhTrinh.bind(this);\r\n this.state = {\r\n dataSaved: props.value !== undefined, //ban ghi da duoc cap nhat hay chua\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n //confirm xoa phuong tien\r\n showConfirmXoa: false,\r\n //danh muc quoc gia\r\n loading_tausar: true, // co dang loading danh muc quoc gia khong\r\n source_tausar: [], //danh muc options cho quoc tich\r\n open_them_tausar: false,\r\n //danh muc loai tau\r\n loading_loaitau: true, // co dang loading danh muc loai tau\r\n source_loaitau: [], //danh muc options cho loai tau\r\n \r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? { ...defaultRecord, STT: props.stt, MaTau: uuidV4() + \"\" }\r\n : {\r\n ...defaultRecord,\r\n STT: props.stt,\r\n MaTau: uuidV4() + \"\",\r\n ...props.value,\r\n }, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var old_changed = this.state.dataChanged;\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"TenTau\",\r\n \"LoaiHinh\",\r\n \"NgayRoi\",\r\n \"NgayKetThuc\",\r\n \"BiThuong\",\r\n \"BiBenh\",\r\n \"Lat\",\r\n \"Lon\",\r\n \"ThoiGianVT\",\r\n \"ViTri\",\r\n \"TrongTai\",\r\n \"CongSuat\",\r\n 'GhiChu',\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n console.log(s);\r\n if(this.props.onChanged && old_changed != s.dataChanged) {\r\n this.props.onChanged(s.dataChanged);\r\n }\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n console.log(\"phuong tien \", JSON.stringify(this.state.after));\r\n var check = sukienLayer.validate(\"dieudong\", this.state.after);\r\n console.log(\"check \", check);\r\n if (!check.error) {\r\n this.setState({ validateStatus: {}, saving: true, errorLog: \"\" });\r\n server\r\n .post(\r\n \"sukien/saveDieudong\",\r\n sukienLayer.chuanHoaSukien(\"dieudong\", this.state.after)\r\n )\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n dataSaved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n if(this.props.onChanged) {\r\n this.props.onChanged(false);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n };\r\n loadDanhMuc() {\r\n //load danh muc ten tau sar\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });\r\n }\r\n //them vao hanh trinh tau\r\n insertHanhTrinh() {\r\n var lat = this.state.after.Lat;\r\n var lon = this.state.after.Lon;\r\n var time = this.state.after.ThoiGianVT;\r\n if(myLib.toString(lat) !== '' && myLib.toString(lon) !== '' && myLib.toString(time)) {\r\n //kiem tra xem trong hanh trinh da co hay chua\r\n var list = this.state.after.ViTri ? this.state.after.ViTri.split(/\\n/) : [];\r\n var item = myLib.latToDMS(lat) + ';' + myLib.lonToDMS(lon) + ';' + myLib.formatDate(time, 'DD/MM/yyyy HH:mm');\r\n var found = false;\r\n console.log(list);\r\n list.map((i,index) => {\r\n if(!found && i === item) {\r\n found = true;\r\n }\r\n });\r\n if(!found) {\r\n this.setState({after: {...this.state.after, ViTri: this.state.after.ViTri + item + '\\n'}});\r\n }\r\n }\r\n }\r\n //khi load component: load cac danh muc can thiet\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n var newState = { ...state };\r\n if (props.value !== undefined) {\r\n newState.after.MaSK = props.value.MaSK; //lay ma su kien thong qua props\r\n }\r\n return newState;\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n classes={{\r\n root: classes.normalPanel,\r\n expanded: classes.expandedPanel,\r\n content: classes.summaryContent\r\n }}\r\n >\r\n \r\n Điều động TKCN\r\n {this.props.stt === 1 ? undefined : \"/Tàu thứ \" + this.props.stt}\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.setState({ open_them_tausar: true })\r\n : undefined\r\n }\r\n >\r\n Tàu SAR(*):\r\n \r\n \r\n this.saveField(\"TenTau\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenTau !== undefined}\r\n >\r\n {this.state.source_tausar.map((item, index) => (\r\n {item.label}\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n Ngày rời(*):\r\n \r\n {\r\n var text = event.target.value;\r\n if(this.state.after.NgayRoi === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('NgayRoi', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\"NgayRoi\", date && date.toDate ? date.toDate() : null)\r\n }\r\n />\r\n \r\n \r\n \r\n Ngày kết thúc(*):\r\n \r\n {\r\n var text = event.target.value;\r\n if(this.state.after.NgayKetThuc === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('NgayKetThuc', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\"NgayKetThuc\", date && date.toDate ? date.toDate() : null)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"BiThuong\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"GhiChu\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n this.saveField(\"Lat\", lat)}\r\n />\r\n \r\n \r\n this.saveField(\"Lon\", lon)}\r\n />\r\n \r\n \r\n \r\n Thời gian vị trí(*):\r\n \r\n {\r\n var text = event.target.value;\r\n if(this.state.after.ThoiGianVT === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('ThoiGianVT', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\"ThoiGianVT\", date && date.toDate ? date.toDate() : null)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.saveField(\"ViTri\", event.target.value)\r\n }\r\n />\r\n \r\n\r\n {/*\r\n \r\n \r\n this.saveField(\"TrongTai\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"CongSuat\", event.target.value)\r\n }\r\n />\r\n */}\r\n \r\n \r\n {this.state.canSaved ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.dataSaved &&\r\n this.props.stt === 1 &&\r\n this.props.allowAddMore ? (\r\n {\r\n if (this.props.onAddMore) {\r\n this.props.onAddMore(this.props.stt);\r\n }\r\n }}\r\n color=\"primary\"\r\n text=\"Thêm phương tiện khác\"\r\n />\r\n ) : null}\r\n \r\n \r\n {this.props.stt > 1 ? (\r\n {\r\n this.setState({ showConfirmXoa: true });\r\n }}\r\n color=\"primary\"\r\n text=\"Xóa phương tiện\"\r\n />\r\n ) : null}\r\n \r\n\r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n {this.state.showConfirmXoa ? (\r\n {\r\n if (ok) {\r\n this.setState({\r\n showConfirmXoa: false,\r\n validateStatus: {},\r\n saving: true,\r\n errorLog: \"\",\r\n });\r\n server\r\n .post(\"sukien/removeDieudong\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n dataSaved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onRemoved) {\r\n this.props.onRemoved(this.props.stt);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ showConfirmXoa: false });\r\n }\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_them_tausar ? (\r\n {\r\n this.setState({ open_them_tausar: false });\r\n }}\r\n onSaved={(record) => {\r\n var list = [].concat(this.state.source_tausar);\r\n var new_item = {\r\n value: record.TenTau,\r\n label: record.TenTau,\r\n };\r\n list.unshift(new_item);\r\n this.setState({\r\n source_tausar: list,\r\n dataChanged: true,\r\n canSaved: true,\r\n after: { ...this.state.after, TenTau: record.TenTau },\r\n });\r\n }}\r\n />\r\n ) : null}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n label: {\r\n margin: 6,\r\n },\r\n labelError: {\r\n margin: 6,\r\n color: \"red\",\r\n },\r\n\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: \"100%\",\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n margin: 0,\r\n minHeight: 11,\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n margin: 0,\r\n minHeight: '10px !important',\r\n },\r\n summaryContent: {\r\n margin: '1px !important',\r\n },\r\n normalLabel: {\r\n color: \"black\",\r\n },\r\n redLabel: {\r\n color: \"red\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SuKienDieuDongControl);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\nimport DateTimePicker from 'react-datetime';\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\nconst sukienLayer = require(\"../lib/KeHoachTauLayer\");\r\n\r\nclass KeHoachTauEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n TenTau: \"\",\r\n BatDau: null,\r\n KetThuc: null,\r\n TrangThai: 1,\r\n ViTri: \"\",\r\n GhiChu: \"\",\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"TenTau\",\r\n \"BatDau\",\r\n \"KetThuc\",\r\n \"TrangThai\",\r\n \"ViTri\",\r\n \"GhiChu\",\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n console.log(\"before\", s.before, \"after\", s.after);\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = sukienLayer.validate(this.state.after);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\r\n \"kehoachtau/saveKehoach\",\r\n sukienLayer.chuanHoaKeHoach(\"abc\", this.state.after)\r\n )\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, KeHoachID: response.KeHoachID };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n }\r\n else {\r\n //thuc hien xoa\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\r\n \"kehoachtau/xoa\",\r\n this.state.after\r\n )\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose();\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.KeHoachID;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"kehoachtau/get?kehoachid=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = sukienLayer.chuyenDoi(sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_coquan: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose();\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Kế hoạch chốt chặn tàu SAR\r\n \r\n {this.props.EditMode === 'xoa' ?\r\n : null}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Tên tàu:\r\n {this.state.loading_tausar ? (\r\n \r\n ) : (\r\n
\r\n ({ ...base, zIndex: 9999 }),\r\n }}\r\n menuPosition={\"fixed\"}\r\n value={this.state.after.TenTau}\r\n onChange={(item) => this.saveField(\"TenTau\", item)}\r\n >\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n Kế hoạch:\r\n \r\n \r\n this.saveField(\"TrangThai\", event.target.value)\r\n }\r\n >\r\n Chốt chặn\r\n Thường trực\r\n \r\n \r\n \r\n \r\n \r\n \r\n Bắt đầu(*):\r\n \r\n {\r\n var text = event.target.value;\r\n if(this.state.after.BatDau === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('BatDau', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\"BatDau\", date && date.toDate ? date.toDate() : null)\r\n }\r\n />\r\n \r\n \r\n \r\n Kết thúc(*):\r\n \r\n {\r\n var text = event.target.value;\r\n if(this.state.after.KetThuc === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('KetThuc', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\"KetThuc\", date && date.toDate ? date.toDate() : null)\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"ViTri\", event.target.value)\r\n }\r\n error={this.state.validateStatus.ViTri !== undefined}\r\n helperText={\r\n this.state.validateStatus.ViTri !== undefined\r\n ? this.state.validateStatus.ViTri.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"GhiChu\", event.target.value)\r\n }\r\n error={this.state.validateStatus.GhiChu !== undefined}\r\n helperText={\r\n this.state.validateStatus.GhiChu !== undefined\r\n ? this.state.validateStatus.GhiChu.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== 'xoa' ? (\r\n \r\n ) : null }\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n label: {\r\n margin: 6,\r\n },\r\n labelError: {\r\n margin: 6,\r\n color: \"red\",\r\n }, \r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(KeHoachTauEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst danhmuc = require(\"../../lib/DanhMucLayer\");\r\n\r\nclass CoQuanEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n TenCoQuan: \"\",\r\n TenVietTat: \"\",\r\n Code: \"\",\r\n HienThi: 0,\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"TenCoQuan\",\r\n \"TenVietTat\",\r\n \"Code\",\r\n \"HienThi\",\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n console.log(\"before\", s.before, \"after\", s.after);\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = danhmuc.validate(\"coquan\", this.state.after);\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"coquan/save\", danhmuc.chuanHoa(\"coquan\", this.state.after))\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, MaCQ: response.MaCQ };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"coquan/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n /*\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });*/\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaCQ;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"coquan/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"coquan\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_coquan: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Danh mục Cơ quan\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"TenCoQuan\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenCoQuan !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenCoQuan !== undefined\r\n ? this.state.validateStatus.TenCoQuan.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"TenVietTat\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenVietTat !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenVietTat !== undefined\r\n ? this.state.validateStatus.TenVietTat.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Code\", event.target.value)\r\n }\r\n error={this.state.validateStatus.Code !== undefined}\r\n helperText={\r\n this.state.validateStatus.Code !== undefined\r\n ? this.state.validateStatus.Code.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"HienThi\", event.target.value)\r\n }\r\n error={this.state.validateStatus.HienThi !== undefined}\r\n helperText={\r\n this.state.validateStatus.HienThi !== undefined\r\n ? this.state.validateStatus.HienThi.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(CoQuanEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst danhmuc = require(\"../../lib/DanhMucLayer\");\r\n\r\nclass QuocGiaEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n TenQuocGia: \"\",\r\n MaQG: \"\",\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"TenQuocGia\", \"MaQG\"]);\r\n s.canSaved = s.dataChanged;\r\n console.log(\"before\", s.before, \"after\", s.after);\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = danhmuc.validate(\"quocgia\", this.state.after);\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"quocgia/save\", danhmuc.chuanHoa(\"quocgia\", this.state.after))\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, MaQG: response.MaQG };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"quocgia/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n /*\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });*/\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaQG;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"quocgia/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"quocgia\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_quocgia: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Danh mục Quốc gia\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"MaQG\", event.target.value)\r\n }\r\n error={this.state.validateStatus.MaQG !== undefined}\r\n helperText={\r\n this.state.validateStatus.MaQG !== undefined\r\n ? this.state.validateStatus.MaQG.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"TenQuocGia\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TenQuocGia !== undefined}\r\n helperText={\r\n this.state.validateStatus.TenQuocGia !== undefined\r\n ? this.state.validateStatus.TenQuocGia.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n\r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(QuocGiaEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst danhmuc = require(\"../../lib/DanhMucLayer\");\r\n\r\nclass TaiKhoanEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n loading_coquan: true,\r\n source_coquan: [],\r\n loading_user: true, //danh sach user chua co\r\n source_user: [],\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n MaCQ: props.UserName === undefined ? null : props.UserName.MaCQ + '' ,\r\n UserName: props.UserName === undefined ? null : {label: props.UserName.UserName, value: props.UserName.UserName} ,\r\n Quyen: props.UserName === undefined ? {} : JSON.parse(props.UserName.Quyen),\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value, check) => {\r\n if (fieldName !== \"Quyen\") {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"UserName\", \"MaCQ\"]);\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n } else {\r\n var s = this.state;\r\n s.after.Quyen[value] = check;\r\n s.dataChanged = true;\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n }\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n if (this.props.EditMode !== \"xoa\") {\r\n var check = danhmuc.validate(\"nguoidung\", this.state.after);\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"taikhoan/save\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after, UserName: response.UserName };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"taikhoan/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n server\r\n .query(\"coquan/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaCQ, label: item.TenCoQuan })\r\n );\r\n this.setState({ source_coquan: list, loading_coquan: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_coquan: false });\r\n });\r\n var user = this.props.UserName;\r\n if (user !== undefined) {\r\n //che do xoa thi hien thi them\r\n var new_item = { value: user.UserName, label: user.UserName };\r\n this.setState({\r\n source_user: [new_item],\r\n loading_user: false,\r\n after: { ...this.state.after, UserName: new_item },\r\n });\r\n } else\r\n server\r\n .query(\"taikhoan/getusers\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.UserName, label: item.UserName })\r\n );\r\n this.setState({ source_user: list, loading_user: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_user: false });\r\n });\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Tài khoản\r\n \r\n {this.props.EditMode === \"xoa\" ? (\r\n \r\n ) : null}\r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Cơ quan:\r\n \r\n \r\n this.saveField(\"MaCQ\", event.target.value)\r\n }\r\n >\r\n {this.state.source_coquan.map((item, index) => (\r\n {item.label}\r\n ))}\r\n \r\n \r\n \r\n \r\n Chọn tài khoản:\r\n {this.state.loading_user ? (\r\n \r\n ) : (\r\n this.saveField(\"UserName\", item)}\r\n >\r\n )}\r\n \r\n {/**Danh muc nguoi dung */}\r\n {myLib.getQuyen().map((item, index) => (\r\n global.User.Quyen[item.Code] === true ?\r\n = 0 ? 4 : 6}>\r\n \r\n this.saveField(\r\n \"Quyen\",\r\n item.Code,\r\n event.target.checked\r\n )\r\n }\r\n name=\"chk1\"\r\n />\r\n }\r\n label={item.Name}\r\n />\r\n : null\r\n ))}\r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(TaiKhoanEditDialog);\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATAgMAAAAPPt5fAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACVBMVEUAAAD/fyf///8hfoSHAAAAAXRSTlMAQObYZgAAAAFiS0dEAmYLfGQAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQflAQQPODACRVUcAAAAF0lEQVQI12MIBYIQBmQyhIGBgXokhvkAHXISeQqBMPgAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDEtMDRUMTU6NTY6MjcrMDA6MDBjjHl+AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTAxLTA0VDE1OjU2OjI3KzAwOjAwEtHBwgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAATCAMAAACTKxybAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAHJQTFRF//////8A//8A/6pV/79A/8wz/9Ur/9Eu/8Q7/8wz/9It/8k2/9Eu/8o1/9Av/8o1/84x/8wz/8wz/8wz/8wz/8wz/8s0/8wz/8s0/8wz/8wz/8wz/8wz/8s0/8wz/8wz/8wz/8wz/8wz/8wz/8wz/8wzo2lg3QAAACV0Uk5TAAECAwQFBgsNDxETFhgbHUNGm6Ckqa2usrW+w8fLztLV1tnc9jtYQ+sAAABdSURBVAjXZc9HDsAwCARAp/fee+X/X8wesIQVbiMELEqVU6B0VS8tocZARGvE8Edoi1leD+0Jy+2gI2U5LXRmLLuB7pxl1dBT6N4Fzf+OnJHb5B2ZwMhmpDb+kZ9+tBQLxwwvvoMAAAAASUVORK5CYII=\"","const myLib = require('./MyLib');\r\nexport function validate(loai, kehoach) {\r\n var result = {error: false};\r\n if(loai === 'den') {\r\n if (myLib.isEmpty(kehoach.MaDoiTac)) {\r\n result.error = true;\r\n result.MaDoiTac = {error: true, trangthai: 'Chưa có nơi gửi!'};\r\n }\r\n }\r\n if (myLib.isEmpty(kehoach.ThoiGian)) {\r\n result.error = true;\r\n result.ThoiGian = {error: true, trangthai: 'Chưa có thời gian bắt đầu'};\r\n }\r\n if (myLib.isEmpty(kehoach.NoiDung)) {\r\n result.error = true;\r\n result.NoiDung = {error: true, trangthai: 'Chưa có nội dung'};\r\n } \r\n if (myLib.isEmpty(kehoach.MaSK)) {\r\n result.error = true;\r\n result.MaSK = {error: true, trangthai: 'Chưa có sự vụ'};\r\n } \r\n if(loai === 'di') {\r\n if(myLib.isEmpty(kehoach.MaNoiNhan)) {\r\n result.error = true;\r\n result.MaNoiNhan = {error: true, trangthai: 'Chưa có nơi nhận!'};\r\n }\r\n }\r\n return result;\r\n}\r\nexport function chuanHoa(action, sukien) {\r\n switch (action) {\r\n case 'abc':\r\n break;\r\n default:\r\n sukien.ThoiGian = sukien.ThoiGian ? new Date(sukien.ThoiGian.setMilliseconds(0)) : sukien.ThoiGian;\r\n break;\r\n }\r\n return sukien;\r\n}\r\nexport function chuyenDoi(sukien, noinhans) {\r\n sukien.ThoiGian = myLib.fromServerTime(sukien.ThoiGian); //server dang hieu la local nen phai chuyen thanh utc\r\n if(sukien.MaDoiTac !== undefined && sukien.MaDoiTac !== null) {\r\n sukien.MaDoiTac = {value: sukien.MaDoiTac, label: sukien.TenNoiGui};\r\n }\r\n if (sukien.MaSK !== undefined && sukien !== null) {\r\n sukien.MaSK = {value: sukien.MaSK, label: sukien.TenSK};\r\n }\r\n if (noinhans !== undefined && noinhans.length > 0) {\r\n sukien.MaNoiNhan = [];\r\n noinhans.map((item, index) => {\r\n sukien.MaNoiNhan.push({value: item.MaNoiNhan, label: item.TenDoiTac});\r\n });\r\n }\r\n //nnoi nhan\r\n console.log('sukien chuyen doi', sukien);\r\n return sukien;\r\n}\r\n","import React from \"react\";\nimport logo from \"./logo.svg\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport \"./App.css\";\nimport localConfig from \"local-storage\";\nimport HomePage from \"./pages/HomePage\";\nimport LoginPage from \"./pages/LoginPage\";\nimport $ from \"jquery\";\nimport { set } from \"local-storage\";\n\nconst server = require(\"./lib/server\");\nconst myLib = require(\"./lib/MyLib\");\n\nfunction App() {\n const [state, setState] = React.useState({\n Logged: false, //trang thai dang nhap\n User: {\n JWT: localConfig.get(\"jwt\"),\n },\n });\n const [connection, setConnection] = React.useState(null); //signlar\n var jwt = window.sessionStorage.getItem(\"JWT\");\n if (myLib.toString(jwt) === \"\" && localConfig.get(\"jwt\") !== undefined) {\n window.sessionStorage.setItem(\"JWT\", localConfig.get(\"jwt\"));\n }\n // Similar to componentDidMount and componentDidUpdate:\n React.useEffect(() => {\n // Update the document title using the browser API\n if (global.checkUser === undefined) {\n global.checkUser = true;\n server\n .query(\"user/get\")\n .then((response) => {\n response.Quyen = JSON.parse(response.Quyen);\n global.User = response;\n setState({ Logged: true, User: response, loading: false });\n })\n .catch((error) => {\n console.log(error);\n setState({ loading: false, Logged: false, User: {} });\n });\n }\n });\n document.body.style.height = \"100% !important\";\n return state.Logged ? (\n setState({ Logged: false, User: {} })}\n />\n ) : (\n {\n window.sessionStorage.setItem(\"JWT\", user.JWT);\n localConfig.set(\"jwt\", user.JWT);\n global.User = user;\n setState({\n Logged: state,\n User: user,\n });\n }}\n />\n );\n}\n\nexport default App;\n","import React from \"react\";\r\nimport {\r\n fade,\r\n makeStyles,\r\n useTheme,\r\n ThemeProvider,\r\n createMuiTheme,\r\n} from \"@material-ui/core/styles\";\r\nimport clsx from \"clsx\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport InputBase from \"@material-ui/core/InputBase\";\r\nimport Badge from \"@material-ui/core/Badge\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport DirectionsBoatIcon from \"@material-ui/icons/DirectionsBoat\";\r\nimport PlaylistAddCheckIcon from \"@material-ui/icons/PlaylistAddCheck\";\r\nimport MenuBookIcon from \"@material-ui/icons/MenuBook\";\r\nimport ForumIcon from \"@material-ui/icons/Forum\";\r\nimport FormatListNumberedIcon from \"@material-ui/icons/FormatListNumbered\";\r\nimport AccountCircle from \"@material-ui/icons/AccountCircle\";\r\nimport DashboardIcon from \"@material-ui/icons/Dashboard\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\nimport BusinessIcon from \"@material-ui/icons/Business\";\r\nimport ExploreIcon from \"@material-ui/icons/Explore\";\r\nimport GroupWorkIcon from \"@material-ui/icons/GroupWork\";\r\nimport NotificationsIcon from \"@material-ui/icons/Notifications\";\r\nimport MoreIcon from \"@material-ui/icons/MoreVert\";\r\nimport FlagIcon from \"@material-ui/icons/Flag\";\r\nimport WavesIcon from \"@material-ui/icons/Waves\";\r\nimport EditLocationIcon from \"@material-ui/icons/EditLocation\";\r\nimport EventIcon from \"@material-ui/icons/Event\";\r\nimport SpellcheckIcon from \"@material-ui/icons/Spellcheck\";\r\nimport RouterIcon from \"@material-ui/icons/Router\";\r\nimport WbSunnyIcon from \"@material-ui/icons/WbSunny\";\r\nimport PeopleIcon from \"@material-ui/icons/People\";\r\nimport Drawer from \"@material-ui/core/Drawer\";\r\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\r\nimport List from \"@material-ui/core/List\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport ChevronLeftIcon from \"@material-ui/icons/ChevronLeft\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport InboxIcon from \"@material-ui/icons/MoveToInbox\";\r\nimport ExpandLess from \"@material-ui/icons/ExpandLess\";\r\nimport ExpandMore from \"@material-ui/icons/ExpandMore\";\r\nimport Collapse from \"@material-ui/core/Collapse\";\r\nimport StarBorder from \"@material-ui/icons/StarBorder\";\r\nimport Box from '@material-ui/core/Box';\r\nimport { viVN } from \"@material-ui/core/locale\";\r\nimport MomentUtils from \"@date-io/moment\";\r\nimport { MuiPickersUtilsProvider } from \"@material-ui/pickers\";\r\n//--user components\r\nimport MapViewControl from \"./MapViewControl\";\r\nimport SuKienPage from \"./SuKienPage\";\r\nimport KeHoachTauPage from \"./KeHoachTauPage\";\r\nimport TrucBanPage from \"./TrucBanPage\";\r\nimport ThongKePage from \"./ThongKePage\";\r\nimport ChatOnlinePage from \"./ChatOnlinePage\";\r\nimport localConfig from \"local-storage\";\r\nimport CoQuanPage from \"./danhmuc/CoQuanPage\";\r\nimport DoiTacPage from \"./danhmuc/DoiTacPage\";\r\nimport LoaiTauPage from \"./danhmuc/LoaiTauPage\";\r\nimport QuocGiaPage from \"./danhmuc/QuocGiaPage\";\r\nimport TaiNanPage from \"./danhmuc/TaiNanPage\";\r\nimport VungBienPage from \"./danhmuc/VungBienPage\";\r\nimport KhuVucPage from \"./danhmuc/KhuVucPage\";\r\nimport TauSarPage from \"./danhmuc/TauSarPage\";\r\nimport ThietBiPage from \"./danhmuc/ThietBiPage\";\r\nimport TaiKhoanPage from \"./danhmuc/TaiKhoanPage\";\r\nimport { globalEval } from \"jquery\";\r\nimport { Button, InputLabel } from \"@material-ui/core\";\r\nimport MyButton from \"./MyButton\";\r\nimport TestPage from './TestPage';\r\nconst drawerWidth = 190;\r\nconst server = require(\"../lib/server\");\r\n\r\nconst updateSoTinNhan = (callback) => {\r\n if (global.updateSoTinNhan === undefined) {\r\n global.updateSoTinNhan = callback;\r\n }\r\n //truy van so tin nhan\r\n server\r\n .query(\"chat/getUnread\")\r\n .then((response) => {\r\n callback(response);\r\n })\r\n .catch((error) => console.log(error));\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n appBar: {\r\n transition: theme.transitions.create([\"margin\", \"width\"], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n },\r\n appBarShift: {\r\n width: `calc(100% - ${drawerWidth + 2}px)`,\r\n marginLeft: drawerWidth,\r\n transition: theme.transitions.create([\"margin\", \"width\"], {\r\n easing: theme.transitions.easing.easeOut,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n search: {\r\n position: \"relative\",\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: fade(theme.palette.common.white, 0.15),\r\n \"&:hover\": {\r\n backgroundColor: fade(theme.palette.common.white, 0.25),\r\n },\r\n marginRight: theme.spacing(2),\r\n marginLeft: 0,\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: theme.spacing(3),\r\n width: \"auto\",\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(1)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: \"1ch\",\r\n },\r\n },\r\n sectionDesktop: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n },\r\n },\r\n sectionMobile: {\r\n display: \"flex\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n hide: {\r\n display: \"none\",\r\n },\r\n drawer: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n drawerPaper: {\r\n width: drawerWidth,\r\n },\r\n drawerHeader: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: theme.spacing(0, 1),\r\n // necessary for content to be below app bar\r\n ...theme.mixins.toolbar,\r\n justifyContent: \"center\",\r\n flexShrink: 0,\r\n },\r\n content: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: '90vh',\r\n padding: theme.spacing(0),\r\n transition: theme.transitions.create(\"margin\", {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n marginLeft: 0,\r\n },\r\n contentShift: {\r\n transition: theme.transitions.create(\"margin\", {\r\n easing: theme.transitions.easing.easeOut,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n marginLeft: drawerWidth,\r\n },\r\n bottomPush: {\r\n position: \"fixed\",\r\n bottom: 0,\r\n textAlign: \"center\",\r\n paddingBottom: 5,\r\n },\r\n nested: {\r\n paddingLeft: theme.spacing(4),\r\n },\r\n drawerRoot: {\r\n minWidth: \"32px !important\",\r\n },\r\n}));\r\nfunction getSavedConfig() {\r\n let currentPage = localConfig.get(\"currentPage\");\r\n let open = localConfig.get(\"drawerOpened\");\r\n console.log(currentPage, open);\r\n return {\r\n currentPage:\r\n currentPage === undefined || currentPage === null ? \"bando\" : currentPage,\r\n drawerOpened: open === undefined || open === null || open === \"true\",\r\n };\r\n}\r\nfunction getTitle(page) {\r\n return page === \"bando\"\r\n ? \"Bản đồ Tìm kiếm cứu nạn\"\r\n : page === \"quanly\"\r\n ? \"Quản lý sự vụ\"\r\n : page === \"thongke\"\r\n ? \"Thống kê số liệu\"\r\n : page === \"kehoachtau\"\r\n ? \"Kế hoạch chốt chặn\"\r\n : page === \"trucban\"\r\n ? \"Sổ trực ban\"\r\n : page === \"chat\"\r\n ? \"Trao đổi thông tin\"\r\n : page === \"coquan\"\r\n ? \"Danh mục Cơ quan\"\r\n : page === \"doitac\"\r\n ? \"Danh mục Đơn vị ngoài\"\r\n : page === \"loaitau\"\r\n ? \"Danh mục Loại tàu\"\r\n : page === \"quocgia\"\r\n ? \"Danh mục Quốc gia\"\r\n : page === \"tainan\"\r\n ? \"Danh mục Tính chất tai nạn\"\r\n : page === \"vungbien\"\r\n ? \"Danh mục vùng biển\"\r\n : page === \"khuvuc\"\r\n ? \"Danh mục Khu vực biển\"\r\n : page === \"tausar\"\r\n ? \"Danh mục tên tàu SAR\"\r\n : page === \"thietbi\"\r\n ? \"Danh mục loại thiết bị\"\r\n : page === \"nguoidung\"\r\n ? \"Tài khoản người sử dụng\"\r\n : \"\";\r\n}\r\nconst default_theme = {\r\n spacing: 4,\r\n typography: {\r\n // In Chinese and Japanese the characters are usually larger,\r\n // so a smaller fontsize may be appropriate.\r\n fontSize: 12,\r\n },\r\n};\r\nexport default function HomePage(props) {\r\n //const theme = useTheme();\r\n const theme = createMuiTheme(default_theme, viVN);\r\n const classes = useStyles(theme);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [mobileMoreAnchorEl, setMobileMoreAnchorEl] = React.useState(null);\r\n\r\n const [state, setState] = React.useState(getSavedConfig());\r\n\r\n const isMenuOpen = Boolean(anchorEl);\r\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\r\n\r\n const handleProfileMenuOpen = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMobileMenuClose = () => {\r\n setMobileMoreAnchorEl(null);\r\n };\r\n\r\n const handleMenuClose = (action) => {\r\n setAnchorEl(null);\r\n handleMobileMenuClose();\r\n if (action === \"exit\") {\r\n window.sessionStorage.setItem(\"JWT\", undefined);\r\n global.User = {};\r\n props.onExit();\r\n }\r\n };\r\n\r\n const handleMobileMenuOpen = (event) => {\r\n setMobileMoreAnchorEl(event.currentTarget);\r\n };\r\n\r\n const [openDrawer, setOpenDrawer] = React.useState(state.drawerOpened);\r\n const toogleDrawer = () => {\r\n setOpenDrawer(!openDrawer);\r\n localConfig.set(\"drawerOpened\", !openDrawer + \"\");\r\n };\r\n const [openDanhmuc, setOpenDanhmuc] = React.useState(false);\r\n\r\n const handleDanhmucClick = () => {\r\n setOpenDanhmuc(!openDanhmuc);\r\n };\r\n const menuId = \"primary-search-account-menu\";\r\n const renderMenu = (\r\n \r\n handleMenuClose(\"exit\")}>Thoát\r\n \r\n );\r\n\r\n const mobileMenuId = \"primary-search-account-menu-mobile\";\r\n const renderMobileMenu = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Notifications

\r\n
\r\n \r\n \r\n \r\n \r\n

Profile

\r\n
\r\n \r\n );\r\n const mapDiv = (\r\n \r\n );\r\n\r\n const [mapControl, setMapControl] = React.useState(undefined);\r\n const [soTinNhan, setSoTinNhan] = React.useState(0);\r\n const [divMapHeight, setDivMapHeight] = React.useState(500);\r\n var mainDiv = React.useRef();\r\n // Similar to componentDidMount and componentDidUpdate:\r\n React.useEffect(() => {\r\n // Update the document title using the browser API\r\n updateSoTinNhan(setSoTinNhan);\r\n console.log(\"main div\", mainDiv.current.offsetHeight);\r\n setDivMapHeight(mainDiv.current.offsetHeight);\r\n\r\n });\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {getTitle(state.currentPage)}\r\n \r\n
\r\n
\r\n {\r\n updateSoTinNhan(setSoTinNhan);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n }\r\n text={global.User.UserName}\r\n >\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {renderMobileMenu}\r\n {renderMenu}\r\n {/**Drawer - thanh cong cu ben trai */}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {[\r\n {\r\n title: \"Bản đồ\",\r\n id: \"bando\",\r\n icon: ,\r\n },\r\n {\r\n title: \"Quản lý sự vụ\",\r\n id: \"quanly\",\r\n icon: ,\r\n },\r\n {\r\n title: \"Kế hoạch chốt chặn\",\r\n id: \"kehoachtau\",\r\n icon: ,\r\n },\r\n {\r\n title: \"Sổ trực ban\",\r\n id: \"trucban\",\r\n icon: ,\r\n },\r\n {\r\n title: \"Trao đổi thông tin\",\r\n id: \"chat\",\r\n icon: ,\r\n },\r\n {\r\n title: \"Thống kê\",\r\n id: \"thongke\",\r\n icon: ,\r\n },\r\n ].map((item, index) => (\r\n {\r\n localConfig.set(\"currentPage\", item.id);\r\n setState({ currentPage: item.id });\r\n }}\r\n >\r\n \r\n {item.icon ? item.icon : }\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {openDanhmuc ? : }\r\n \r\n \r\n \r\n setState({ currentPage: \"coquan\" })}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n setState({ currentPage: \"doitac\" })}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n setState({ currentPage: \"loaitau\" })}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n setState({ currentPage: \"quocgia\" })}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n setState({ currentPage: \"vungbien\" })}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n setState({ currentPage: \"khuvuc\" })}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n setState({ currentPage: \"tainan\" })}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n setState({ currentPage: \"tausar\" })}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n setState({ currentPage: \"thietbi\" })}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setState({ currentPage: \"nguoidung\" })}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n
\r\n \r\n Trung tâm Tìm kiếm cứu nạn
Năm 2020\r\n
\r\n
\r\n */}\r\n \r\n \r\n {state.currentPage === \"bando\" && global.User.Quyen.R21 ? (\r\n \r\n ) : state.currentPage === \"quanly\" && global.User.Quyen.R22 ? (\r\n \r\n ) : state.currentPage === \"kehoachtau\" &&\r\n global.User.Quyen.R23 ? (\r\n \r\n ) : state.currentPage === \"trucban\" && global.User.Quyen.R24 ? (\r\n \r\n ) : state.currentPage === \"thongke\" && global.User.Quyen.R29 ? (\r\n \r\n ) : state.currentPage === \"chat\" && global.User.Quyen.R25 ? (\r\n \r\n ) : state.currentPage === \"coquan\" && global.User.Quyen.R11 ? (\r\n \r\n ) : state.currentPage === \"doitac\" && global.User.Quyen.R12 ? (\r\n \r\n ) : state.currentPage === \"loaitau\" && global.User.Quyen.R13 ? (\r\n \r\n ) : state.currentPage === \"quocgia\" && global.User.Quyen.R14 ? (\r\n \r\n ) : state.currentPage === \"tainan\" && global.User.Quyen.R17 ? (\r\n \r\n ) : state.currentPage === \"vungbien\" && global.User.Quyen.R15 ? (\r\n \r\n ) : state.currentPage === \"khuvuc\" && global.User.Quyen.R16 ? (\r\n \r\n ) : state.currentPage === \"tausar\" && global.User.Quyen.R18 ? (\r\n \r\n ) : state.currentPage === \"thietbi\" && global.User.Quyen.R19 ? (\r\n \r\n ) : state.currentPage === \"nguoidung\" && global.User.Quyen.R90 ? (\r\n \r\n ) : (\r\n
Bạn không có quyền truy cập !
\r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\nconst danhmuc = require(\"../lib/DanhMucLayer\");\r\nconst uuidV4 = require(\"uuid/v4\");\r\n\r\nclass SquareSearchEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.handleCalculate = this.handleCalculate.bind(this);\r\n var feature = {};\r\n if (props.value !== undefined) {\r\n //thong tin feature de edit\r\n var feature = props.value;\r\n var coord = feature.getGeometry().getCoordinates();\r\n var saved = feature.get(\"saved\");\r\n if (true === saved) {\r\n //feature da co trong csdl\r\n var data = feature.get(\"data\");\r\n feature = {\r\n ID: data.ID,\r\n Ten: data.Ten,\r\n Loai: \"SquareSearch\",\r\n ToaDo: data.JsonData.ToaDo,\r\n Square_Course: data.JsonData.Square_Course,\r\n Square_Leg: data.JsonData.Square_Leg,\r\n Square_Number: data.JsonData.Square_Number,\r\n Square_Speed: data.JsonData.Square_Speed,\r\n Search_Distance: data.JsonData.Search_Distance,\r\n Search_Time: data.JsonData.Search_Time,\r\n };\r\n } else {\r\n var toado = \"\";\r\n coord.map(\r\n (item, index) =>\r\n (toado +=\r\n (toado !== \"\" ? \"\\n\" : \"\") +\r\n myLib.latToDMS(item[1]) +\r\n \"-\" +\r\n myLib.lonToDMS(item[0]))\r\n );\r\n feature = {\r\n ID: uuidV4() + \"\",\r\n Ten: \"\",\r\n Loai: \"SquareSearch\",\r\n ToaDo: toado,\r\n //square search\r\n Square_Course: 0,\r\n Square_Leg: 4,\r\n Square_Number: 4,\r\n Square_Speed: 15,\r\n Search_Distance: 0,\r\n Search_Time: 0,\r\n };\r\n }\r\n }\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"md\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n Ten: \"\",\r\n ToaDo: \"\",\r\n }\r\n : feature, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"Ten\", \"ToaDo\"]);\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = (action) => {\r\n if (action !== \"xoa\") {\r\n var check = { error: false };\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/save\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thay doi toa do feature\r\n var feature = this.props.value;\r\n console.log(response.JsonData);\r\n response.JsonData = JSON.parse(response.JsonData);\r\n feature.set(\"data\", response);\r\n feature.set(\"type\", \"SquareSearch\");\r\n feature.set(\"saved\", true);\r\n var coord = response.Coordinates;\r\n feature.getGeometry().setCoordinates(coord);\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n var feature = this.props.value;\r\n if (feature.get(\"saved\") === true) {\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ saving: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n }\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n /*\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });*/\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaTN;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"tainan/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"tainan\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tainan: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n //thuc hien tinh toan toa do va cac gia tri\r\n handleCalculate = () => {\r\n console.log(this.state);\r\n try {\r\n var toado_moi = \"\";\r\n var sodiem = this.state.after.Square_Number * 4; //so diem phai tinh\r\n var first = this.state.after.ToaDo.split(/\\r?\\n/)[0].split(\"-\");\r\n var approach = this.state.after.Square_Course;\r\n var leg_distancex = this.state.after.Square_Leg;\r\n var SAR_distance = 0;\r\n if (first.length > 1) {\r\n var lat = myLib.latFromDMS(first[0]); //xac dinh toa do diem xuat phat\r\n var lon = myLib.lonFromDMS(first[1]);\r\n toado_moi = myLib.latToDMS(lat) + \"-\" + myLib.lonToDMS(lon);\r\n var multiplier = 0;\r\n for (var x = 1; x <= this.state.after.Square_Number; x++) {\r\n var ESdistance = leg_distancex;\r\n var ESheading = 0;\r\n for (var y = 1; y <= 4; y++) {\r\n switch (y) {\r\n case 1: {\r\n ESheading = -approach;\r\n multiplier++;\r\n break;\r\n }\r\n case 2: {\r\n ESheading = -approach - 90.0;\r\n break;\r\n }\r\n case 3: {\r\n ESheading = -approach - 180.0;\r\n multiplier++;\r\n break;\r\n }\r\n case 4: {\r\n ESheading = -approach - 270.0;\r\n break;\r\n }\r\n }\r\n ESdistance = leg_distancex * multiplier;\r\n var next = myLib.calculateRhumbLine(\r\n [lon, lat],\r\n ESheading,\r\n ESdistance\r\n );\r\n console.log(next);\r\n SAR_distance += ESdistance;\r\n toado_moi +=\r\n \"\\n\" + myLib.latToDMS(next[1]) + \"-\" + myLib.lonToDMS(next[0]);\r\n lat = next[1];\r\n lon = next[0];\r\n }\r\n }\r\n var time =\r\n Math.round(\r\n (Math.round(SAR_distance * 100) /\r\n 100 /\r\n this.state.after.Square_Speed) *\r\n 100\r\n ) / 100;\r\n this.setState({\r\n after: {\r\n ...this.state.after,\r\n ToaDo: toado_moi,\r\n Search_Distance: Math.round(SAR_distance * 100) / 100,\r\n Search_Time: time,\r\n },\r\n dataChanged: true,\r\n canSaved: true,\r\n });\r\n }\r\n } catch (ex) {\r\n console.log(ex);\r\n }\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Square Search\r\n \r\n \r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"Ten\", event.target.value)\r\n }\r\n error={this.state.validateStatus.Ten !== undefined}\r\n helperText={\r\n this.state.validateStatus.Ten !== undefined\r\n ? this.state.validateStatus.Ten.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Course\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Square_Course !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Square_Course !== undefined\r\n ? this.state.validateStatus.Square_Course.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Leg\", event.target.value)\r\n }\r\n error={this.state.validateStatus.Square_Leg !== undefined}\r\n helperText={\r\n this.state.validateStatus.Square_Leg !== undefined\r\n ? this.state.validateStatus.Square_Leg.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Number\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Square_Number !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Square_Number !== undefined\r\n ? this.state.validateStatus.Square_Number.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Speed\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Square_Speed !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Square_Speed !== undefined\r\n ? this.state.validateStatus.Square_Speed.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Search_Distance\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Search_Distance !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Search_Distance !== undefined\r\n ? this.state.validateStatus.Search_Distance.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Search_Distance\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Search_Time !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Search_Time !== undefined\r\n ? this.state.validateStatus.Search_Time.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.saveField(\"ToaDo\", event.target.value)\r\n }\r\n error={this.state.validateStatus.ToaDo !== undefined}\r\n helperText={\r\n this.state.validateStatus.ToaDo !== undefined\r\n ? this.state.validateStatus.ToaDo.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SquareSearchEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\nconst danhmuc = require(\"../lib/DanhMucLayer\");\r\nconst uuidV4 = require(\"uuid/v4\");\r\n\r\nclass ParallelSearchEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.handleCalculate = this.handleCalculate.bind(this);\r\n var feature = {};\r\n if (props.value !== undefined) {\r\n //thong tin feature de edit\r\n var feature = props.value;\r\n var coord = feature.getGeometry().getCoordinates();\r\n var saved = feature.get(\"saved\");\r\n if (true === saved) {\r\n //feature da co trong csdl\r\n var data = feature.get(\"data\");\r\n feature = {\r\n ID: data.ID,\r\n Ten: data.Ten,\r\n Loai: \"ParallelSearch\",\r\n ToaDo: data.JsonData.ToaDo,\r\n Square_Course: data.JsonData.Square_Course,\r\n Square_Leg: data.JsonData.Square_Leg,\r\n Square_Spacing: data.JsonData.Square_Spacing,\r\n Square_Number: data.JsonData.Square_Number,\r\n Square_Speed: data.JsonData.Square_Speed,\r\n Square_First: data.JsonData.Square_First,\r\n Search_Distance: data.JsonData.Search_Distance,\r\n Search_Time: data.JsonData.Search_Time,\r\n };\r\n } else {\r\n var toado = \"\";\r\n coord.map(\r\n (item, index) =>\r\n (toado +=\r\n (toado !== \"\" ? \"\\n\" : \"\") +\r\n myLib.latToDMS(item[1]) +\r\n \"-\" +\r\n myLib.lonToDMS(item[0]))\r\n );\r\n feature = {\r\n ID: uuidV4() + \"\",\r\n Ten: \"\",\r\n Loai: \"ParallelSearch\",\r\n ToaDo: toado,\r\n //square search\r\n Square_Course: 0,\r\n Square_Leg: 4,\r\n Square_Spacing: 1,\r\n Square_Number: 4,\r\n Square_Speed: 15,\r\n Square_First: true,\r\n Search_Distance: 0,\r\n Search_Time: 0,\r\n };\r\n }\r\n }\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"md\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n Ten: \"\",\r\n ToaDo: \"\",\r\n }\r\n : feature, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"Ten\", \"ToaDo\"]);\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = (action) => {\r\n if (action !== \"xoa\") {\r\n var check = { error: false };\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/save\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thay doi toa do feature\r\n var feature = this.props.value;\r\n console.log(response.JsonData);\r\n response.JsonData = JSON.parse(response.JsonData);\r\n feature.set(\"data\", response);\r\n feature.set(\"type\", \"ParallelSearch\");\r\n feature.set(\"saved\", true);\r\n var coord = response.Coordinates;\r\n feature.getGeometry().setCoordinates(coord);\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n var feature = this.props.value;\r\n if (feature.get(\"saved\") === true) {\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ saving: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n }\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n /*\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });*/\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaTN;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"tainan/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"tainan\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tainan: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n //thuc hien tinh toan toa do va cac gia tri\r\n handleCalculate = () => {\r\n console.log(this.state);\r\n try {\r\n var toado_moi = \"\";\r\n var sodiem = this.state.after.Square_Number * 4; //so diem phai tinh\r\n var first = this.state.after.ToaDo.split(/\\r?\\n/)[0].split(\"-\");\r\n var approach = this.state.after.Square_Course;\r\n var leg_distancex = this.state.after.Square_Leg;\r\n var leg_distancey = this.state.after.Square_Spacing;\r\n var leg_distancez = leg_distancey;\r\n var SAR_distance = 0;\r\n var first_ship = !this.state.after.Square_First;\r\n if (first.length > 1) {\r\n var lat = myLib.latFromDMS(first[0]); //xac dinh toa do diem xuat phat\r\n var lon = myLib.lonFromDMS(first[1]);\r\n toado_moi = myLib.latToDMS(lat) + \"-\" + myLib.lonToDMS(lon);\r\n var n = 0;\r\n //int multiplier=1;\r\n var ESheading = approach + 180.0,\r\n ESdistance = leg_distancex / 2;\r\n //calculate start position\r\n var pos = myLib.calculateRhumbLine([lon, lat], -ESheading, ESdistance);\r\n lat = pos[1];\r\n lon = pos[0];\r\n //toado_moi += \"\\n\" + myLib.latToDMS(lat) + \"-\" + myLib.lonToDMS(lon);\r\n ESheading = !first_ship ? approach + 90.0 : approach - 90.0;\r\n pos = myLib.calculateRhumbLine(\r\n [lon, lat],\r\n -ESheading,\r\n leg_distancez / 2\r\n );\r\n lat = pos[1];\r\n lon = pos[0];\r\n toado_moi += \"\\n\" + myLib.latToDMS(lat) + \"-\" + myLib.lonToDMS(lon);\r\n var nlegs = this.state.after.Square_Number;\r\n for (var x = 1; x <= nlegs; x++) {\r\n //Loop over the number of legs\r\n for (var y = 0; y <= 1; y++) {\r\n //Loop over the tracks\r\n if (y == 0) {\r\n if (x % 2 != 0) {\r\n ESheading = approach;\r\n } else {\r\n ESheading = approach + 180.0;\r\n }\r\n ESdistance = leg_distancex;\r\n } else {\r\n ESdistance = leg_distancey;\r\n if (!first_ship) ESheading = approach + 90.0;\r\n else ESheading = approach - 90.0;\r\n }\r\n\r\n n++;\r\n\r\n var pos = myLib.calculateRhumbLine(\r\n [lon, lat],\r\n -ESheading,\r\n ESdistance\r\n );\r\n SAR_distance += ESdistance;\r\n lat = pos[1];\r\n lon = pos[0];\r\n toado_moi += \"\\n\" + myLib.latToDMS(lat) + \"-\" + myLib.lonToDMS(lon);\r\n }\r\n }\r\n var time =\r\n Math.round(\r\n (Math.round(SAR_distance * 100) /\r\n 100 /\r\n this.state.after.Square_Speed) *\r\n 100\r\n ) / 100;\r\n this.setState({\r\n after: {\r\n ...this.state.after,\r\n ToaDo: toado_moi,\r\n Search_Distance: Math.round(SAR_distance * 100) / 100,\r\n Search_Time: time,\r\n },\r\n dataChanged: true,\r\n canSaved: true,\r\n });\r\n }\r\n } catch (ex) {\r\n console.log(ex);\r\n }\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Square Search\r\n \r\n \r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"Ten\", event.target.value)\r\n }\r\n error={this.state.validateStatus.Ten !== undefined}\r\n helperText={\r\n this.state.validateStatus.Ten !== undefined\r\n ? this.state.validateStatus.Ten.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Course\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Square_Course !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Square_Course !== undefined\r\n ? this.state.validateStatus.Square_Course.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Leg\", event.target.value)\r\n }\r\n error={this.state.validateStatus.Square_Leg !== undefined}\r\n helperText={\r\n this.state.validateStatus.Square_Leg !== undefined\r\n ? this.state.validateStatus.Square_Leg.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Spacing\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Square_Spacing !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Square_Spacing !== undefined\r\n ? this.state.validateStatus.Square_Spacing.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Number\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Square_Number !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Square_Number !== undefined\r\n ? this.state.validateStatus.Square_Number.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Speed\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Square_Speed !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Square_Speed !== undefined\r\n ? this.state.validateStatus.Square_Speed.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_First\", event.target.checked)\r\n }\r\n name=\"chkTimKiem\"\r\n />\r\n }\r\n label=\"First ship\"\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Search_Distance\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Search_Distance !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Search_Distance !== undefined\r\n ? this.state.validateStatus.Search_Distance.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Search_Distance\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Search_Time !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Search_Time !== undefined\r\n ? this.state.validateStatus.Search_Time.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.saveField(\"ToaDo\", event.target.value)\r\n }\r\n error={this.state.validateStatus.ToaDo !== undefined}\r\n helperText={\r\n this.state.validateStatus.ToaDo !== undefined\r\n ? this.state.validateStatus.ToaDo.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(\r\n ParallelSearchEditDialog\r\n);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\nconst danhmuc = require(\"../lib/DanhMucLayer\");\r\nconst uuidV4 = require(\"uuid/v4\");\r\n\r\nclass SectorSearchEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.handleCalculate = this.handleCalculate.bind(this);\r\n var feature = {};\r\n if (props.value !== undefined) {\r\n //thong tin feature de edit\r\n var feature = props.value;\r\n var coord = feature.getGeometry().getCoordinates();\r\n var saved = feature.get(\"saved\");\r\n if (true === saved) {\r\n //feature da co trong csdl\r\n var data = feature.get(\"data\");\r\n feature = {\r\n ID: data.ID,\r\n Ten: data.Ten,\r\n Loai: \"SectorSearch\",\r\n ToaDo: data.JsonData.ToaDo,\r\n Square_Course: data.JsonData.Square_Course,\r\n Square_Leg: data.JsonData.Square_Leg,\r\n Square_Number: data.JsonData.Square_Number,\r\n Square_Speed: data.JsonData.Square_Speed,\r\n Search_Distance: data.JsonData.Search_Distance,\r\n Search_Time: data.JsonData.Search_Time,\r\n };\r\n } else {\r\n var toado = \"\";\r\n coord.map(\r\n (item, index) =>\r\n (toado +=\r\n (toado !== \"\" ? \"\\n\" : \"\") +\r\n myLib.latToDMS(item[1]) +\r\n \"-\" +\r\n myLib.lonToDMS(item[0]))\r\n );\r\n feature = {\r\n ID: uuidV4() + \"\",\r\n Ten: \"\",\r\n Loai: \"SectorSearch\",\r\n ToaDo: toado,\r\n //square search\r\n Square_Course: 0,\r\n Square_Leg: 8,\r\n Square_Number: 2,\r\n Square_Speed: 15,\r\n Search_Distance: 0,\r\n Search_Time: 0,\r\n };\r\n }\r\n }\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"md\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n Ten: \"\",\r\n ToaDo: \"\",\r\n }\r\n : feature, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"Ten\", \"ToaDo\"]);\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = (action) => {\r\n if (action !== \"xoa\") {\r\n var check = { error: false };\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/save\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thay doi toa do feature\r\n var feature = this.props.value;\r\n console.log(response.JsonData);\r\n response.JsonData = JSON.parse(response.JsonData);\r\n feature.set(\"data\", response);\r\n feature.set(\"type\", \"SectorSearch\");\r\n feature.set(\"saved\", true);\r\n var coord = response.Coordinates;\r\n feature.getGeometry().setCoordinates(coord);\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n var feature = this.props.value;\r\n if (feature.get(\"saved\") === true) {\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ saving: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n }\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n /*\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });*/\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaTN;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"tainan/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"tainan\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tainan: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n //thuc hien tinh toan toa do va cac gia tri\r\n handleCalculate = () => {\r\n console.log(this.state);\r\n try {\r\n var toado_moi = \"\";\r\n var soluot = this.state.after.Square_Number; //so diem phai tinh\r\n var first = this.state.after.ToaDo.split(/\\r?\\n/)[0].split(\"-\");\r\n var approach = this.state.after.Square_Course;\r\n var leg_distancex = this.state.after.Square_Leg;\r\n var SAR_distance = 0;\r\n var two_cycles = soluot == 2;\r\n if (first.length > 1) {\r\n var lat = myLib.latFromDMS(first[0]); //xac dinh toa do diem xuat phat\r\n var lon = myLib.lonFromDMS(first[1]);\r\n toado_moi = myLib.latToDMS(lat) + \"-\" + myLib.lonToDMS(lon);\r\n var multiplier = 0;\r\n var ESheading = -approach;\r\n var n = 0, nleg = 0;\r\n for ( var x = 1; x <= ((two_cycles) ? 18 : 9); x++ ) { //Loop over the legs\r\n n++;\r\n var pos = myLib.calculateRhumbLine([lon, lat], ESheading,leg_distancex);\r\n lat = pos[1];\r\n lon = pos[0];\r\n SAR_distance += leg_distancex;\r\n if ( n % 3 != 0 ) {\r\n ESheading -= 120.0;\r\n nleg++;\r\n toado_moi += '\\n' + myLib.latToDMS(lat) + \"-\" + myLib.lonToDMS(lon);\r\n\r\n }\r\n\r\n if ( n % 9 ==0 ) {\r\n nleg++;\r\n toado_moi += '\\n' + myLib.latToDMS(lat) + \"-\" + myLib.lonToDMS(lon);\r\n if (two_cycles) ESheading-=30;\r\n }\r\n }\r\n var time =\r\n Math.round(\r\n (Math.round(SAR_distance * 100) /\r\n 100 /\r\n this.state.after.Square_Speed) *\r\n 100\r\n ) / 100;\r\n this.setState({\r\n after: {\r\n ...this.state.after,\r\n ToaDo: toado_moi,\r\n Search_Distance: Math.round(SAR_distance * 100) / 100,\r\n Search_Time: time,\r\n },\r\n dataChanged: true,\r\n canSaved: true,\r\n });\r\n }\r\n } catch (ex) {\r\n console.log(ex);\r\n }\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Sector Search\r\n \r\n \r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"Ten\", event.target.value)\r\n }\r\n error={this.state.validateStatus.Ten !== undefined}\r\n helperText={\r\n this.state.validateStatus.Ten !== undefined\r\n ? this.state.validateStatus.Ten.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Course\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Square_Course !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Square_Course !== undefined\r\n ? this.state.validateStatus.Square_Course.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Leg\", event.target.value)\r\n }\r\n error={this.state.validateStatus.Square_Leg !== undefined}\r\n helperText={\r\n this.state.validateStatus.Square_Leg !== undefined\r\n ? this.state.validateStatus.Square_Leg.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Number\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Square_Number !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Square_Number !== undefined\r\n ? this.state.validateStatus.Square_Number.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Square_Speed\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Square_Speed !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Square_Speed !== undefined\r\n ? this.state.validateStatus.Square_Speed.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Search_Distance\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Search_Distance !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Search_Distance !== undefined\r\n ? this.state.validateStatus.Search_Distance.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"Search_Distance\", event.target.value)\r\n }\r\n error={\r\n this.state.validateStatus.Search_Time !== undefined\r\n }\r\n helperText={\r\n this.state.validateStatus.Search_Time !== undefined\r\n ? this.state.validateStatus.Search_Time.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.saveField(\"ToaDo\", event.target.value)\r\n }\r\n error={this.state.validateStatus.ToaDo !== undefined}\r\n helperText={\r\n this.state.validateStatus.ToaDo !== undefined\r\n ? this.state.validateStatus.ToaDo.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SectorSearchEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport Moment from \"react-moment\";\r\nimport MyButton from \"./MyButton\";\r\nimport \"./mapview.css\";\r\n\r\nclass SuKienChiTietOverlay extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleCancel = this.handleCancel.bind(this);\r\n this.handleOK = this.handleOK.bind(this);\r\n this.state = {};\r\n }\r\n componentDidMount() {}\r\n static getDerivedStateFromProps(props, state) {\r\n return state;\r\n }\r\n handleCancel = () => {\r\n this.props.callback(false);\r\n };\r\n handleOK = () => {\r\n this.props.callback(true);\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n const data = this.props.feature.get(\"data\");\r\n return (\r\n \r\n
\r\n
this.props.callback('close')}>\r\n X\r\n
\r\n
\r\n {data.TenSK}\r\n
\r\n
\r\n * Bị nạn:{\" \"}\r\n {data.ThoiGianBiNan}\r\n
\r\n
\r\n * {data.TenTaiNan}\r\n
\r\n
\r\n
\r\n            * {data.TomTat}\r\n            
\r\n
\r\n \r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n closeX: {\r\n\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n formControlLabel: {\r\n marginTop: 1,\r\n },\r\n paper: {},\r\n textField: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 250,\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SuKienChiTietOverlay);\r\n","//Hien thi ban do theo format react\r\nimport React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport ol_Map from \"ol/Map\";\r\nimport ol_style_Style from \"ol/style/Style\";\r\nimport ol_style_Fill from \"ol/style/Fill\";\r\nimport ol_style_Icon from \"ol/style/Icon\";\r\nimport ol_style_Text from \"ol/style/Text\";\r\nimport ol_style_Stroke from \"ol/style/Stroke\";\r\nimport ol_Feature from \"ol/Feature\";\r\nimport ol_source_Vector from \"ol/source/Vector\";\r\nimport ol_geom_Point from \"ol/geom/Point\";\r\n\r\nimport {\r\n interaction,\r\n layer,\r\n custom,\r\n control, //name spaces\r\n Interactions,\r\n Overlays,\r\n Controls, //group\r\n Layers,\r\n Overlay,\r\n Util, //objects\r\n Map,\r\n} from \"../geo/index\";\r\nconst server = require(\"../lib/server.js\");\r\nconst myLib = require(\"../lib/MyLib.js\");\r\n\r\nvar openSansAdded = false;\r\n// http://stackoverflow.com/questions/14484787/wrap-text-in-javascript\r\nfunction stringDivider(str, width, spaceReplacer) {\r\n if (str.length > width) {\r\n var p = width;\r\n while (p > 0 && str[p] !== \" \" && str[p] !== \"-\") {\r\n p--;\r\n }\r\n if (p > 0) {\r\n var left;\r\n if (str.substring(p, p + 1) === \"-\") {\r\n left = str.substring(0, p + 1);\r\n } else {\r\n left = str.substring(0, p);\r\n }\r\n var right = str.substring(p + 1);\r\n return left + spaceReplacer + stringDivider(right, width, spaceReplacer);\r\n }\r\n }\r\n return str;\r\n}\r\n\r\nvar getText = function (feature, resolution) {\r\n var type = \"normal\";\r\n var maxResolution = 0.02;\r\n var text = feature.get(\"name\");\r\n var placement = undefined;\r\n if (resolution > maxResolution) {\r\n text = \"\";\r\n } else if (type === \"hide\") {\r\n text = \"\";\r\n } else if (type === \"shorten\") {\r\n text = text.trunc(12);\r\n } else if (type === \"wrap\" && (!placement || placement !== \"line\")) {\r\n text = stringDivider(text, 16, \"\\n\");\r\n }\r\n return text;\r\n};\r\n\r\nvar createTextStyle = function (feature, resolution) {\r\n var align = \"center\";\r\n var baseline = \"bottom\";\r\n var size = \"14px\";\r\n var height = 1;\r\n var offsetX = 0;\r\n var offsetY = -16;\r\n var weight = \"normal\";\r\n var placement = undefined;\r\n var maxAngle = undefined;\r\n var overflow = undefined;\r\n var rotation = 0;\r\n var font = weight + \" \" + size + \"/\" + height + \" Arial\";\r\n var fillColor = \"#003300\";\r\n var outlineColor = \"white\";\r\n var outlineWidth = 3;\r\n\r\n var t = new ol_style_Text({\r\n textAlign: align == \"\" ? undefined : align,\r\n textBaseline: baseline,\r\n font: font,\r\n text: getText(feature, resolution),\r\n fill: new ol_style_Fill({ color: fillColor }),\r\n stroke: new ol_style_Stroke({ color: outlineColor, width: outlineWidth }),\r\n offsetX: offsetX,\r\n offsetY: offsetY,\r\n placement: placement,\r\n maxAngle: maxAngle,\r\n overflow: overflow,\r\n rotation: rotation,\r\n });\r\n return t;\r\n};\r\n\r\nvar markerStyle = new ol_style_Style({\r\n image: new ol_style_Icon({\r\n color: \"#4271AE\",\r\n crossOrigin: \"anonymous\",\r\n src: \"../data/bigdot.png\",\r\n scale: 0.2,\r\n }),\r\n});\r\n\r\n// Points\r\nfunction pointStyleFunction(feature, resolution) {\r\n const data = feature.get(\"data\");\r\n return new ol_style_Style({\r\n image: new ol_style_Icon({\r\n crossOrigin: \"anonymous\",\r\n src: data.IconURL,\r\n scale: 1,\r\n }),\r\n text: createTextStyle(feature, resolution),\r\n });\r\n}\r\nfunction pointSelectedStyleFunction(feature) {\r\n return new ol_style_Style({\r\n image: new ol_style_Icon({\r\n color: \"#4271AE\",\r\n crossOrigin: \"anonymous\",\r\n src: \"../data/bigdot.png\",\r\n scale: 0.5,\r\n }),\r\n text: createTextStyle(feature, 0),\r\n });\r\n}\r\nvar marker = new custom.style.MarkerStyle(\r\n \"https://openlayers.org/en/latest/examples/data/icon.png\"\r\n);\r\nlet selectedMarkerStyle = Object.assign({}, markerStyle);\r\n\r\nclass SuKienLayer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n source: new ol_source_Vector({ features: props.features }),\r\n };\r\n }\r\n \r\n componentDidMount() {}\r\n componentWillReceiveProps(nextProps) {\r\n this.state.source.clear();\r\n this.state.source.addFeatures(nextProps.features);\r\n \r\n }\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\nSuKienLayer[\"contextTypes\"] = {\r\n mapComp: PropTypes.instanceOf(Map),\r\n map: PropTypes.instanceOf(ol_Map),\r\n};\r\nexport default SuKienLayer;\r\n","//Hien thi ban do theo format react\r\nimport React from \"react\";\r\nimport * as ReactDOM from 'react-dom';\r\nimport ol_style_Style from 'ol/style/Style';\r\nimport ol_style_Fill from 'ol/style/Fill';\r\nimport ol_style_Icon from 'ol/style/Icon';\r\nimport ol_style_Text from 'ol/style/Text';\r\nimport ol_style_Stroke from 'ol/style/Stroke';\r\nimport ol_style_Circle from \"ol/style/Circle\";\r\nimport ol_Feature from 'ol/Feature';\r\nimport ol_source_Vector from 'ol/source/Vector';\r\nimport ol_geom_Point from 'ol/geom/Point';\r\nimport ol_Overlay from 'ol/Overlay';\r\n\r\n\r\nimport {\r\n interaction,\r\n layer,\r\n custom,\r\n control, //name spaces\r\n Interactions,\r\n Overlays,\r\n Controls, //group\r\n Layers,\r\n Overlay,\r\n Util, //objects\r\n Map,\r\n} from \"../geo/index\";\r\nconst server = require(\"../lib/server.js\");\r\nconst myLib = require(\"../lib/MyLib.js\");\r\n\r\nvar openSansAdded = false;\r\n// http://stackoverflow.com/questions/14484787/wrap-text-in-javascript\r\nfunction stringDivider(str, width, spaceReplacer) {\r\n if (str.length > width) {\r\n var p = width;\r\n while (p > 0 && str[p] !== \" \" && str[p] !== \"-\") {\r\n p--;\r\n }\r\n if (p > 0) {\r\n var left;\r\n if (str.substring(p, p + 1) === \"-\") {\r\n left = str.substring(0, p + 1);\r\n } else {\r\n left = str.substring(0, p);\r\n }\r\n var right = str.substring(p + 1);\r\n return left + spaceReplacer + stringDivider(right, width, spaceReplacer);\r\n }\r\n }\r\n return str;\r\n}\r\n\r\nvar getText = function (feature, resolution) {\r\n var type = \"normal\";\r\n var maxResolution = 0.02;\r\n var text = feature.get(\"name\");\r\n var placement = undefined;\r\n if (resolution > maxResolution) {\r\n text = \"\";\r\n } else if (type === \"hide\") {\r\n text = \"\";\r\n } else if (type === \"shorten\") {\r\n text = text.trunc(12);\r\n } else if (type === \"wrap\" && (!placement || placement !== \"line\")) {\r\n text = stringDivider(text, 16, \"\\n\");\r\n }\r\n return text;\r\n};\r\n\r\nvar createTextStyle = function (feature, resolution) {\r\n var align = \"center\";\r\n var baseline = \"bottom\";\r\n var size = \"14px\";\r\n var height = 1;\r\n var offsetX = 0;\r\n var offsetY = 24;\r\n var weight = \"normal\";\r\n var placement = undefined;\r\n var maxAngle = undefined;\r\n var overflow = undefined;\r\n var rotation = 0;\r\n var font = weight + \" \" + size + \"/\" + height + \" Arial\";\r\n var fillColor = \"#aa3300\";\r\n var outlineColor = \"white\";\r\n var outlineWidth = 3;\r\n\r\n var t = new ol_style_Text({\r\n textAlign: align == \"\" ? undefined : align,\r\n textBaseline: baseline,\r\n font: font,\r\n text: getText(feature, resolution),\r\n fill: new ol_style_Fill({ color: fillColor }),\r\n stroke: new ol_style_Stroke({ color: outlineColor, width: outlineWidth }),\r\n offsetX: offsetX,\r\n offsetY: offsetY,\r\n placement: placement,\r\n maxAngle: maxAngle,\r\n overflow: overflow,\r\n rotation: rotation,\r\n });\r\n return t;\r\n};\r\n\r\nvar markerStyle = new ol_style_Style({\r\n image: new ol_style_Icon({\r\n color: \"#4271AE\",\r\n crossOrigin: \"anonymous\",\r\n src: \"../data/bigdot.png\",\r\n scale: 0.2,\r\n }),\r\n});\r\n\r\n// style\r\n\r\nfunction pointSelectedStyleFunction(feature) {\r\n return new ol_style_Style({\r\n image: new ol_style_Icon({\r\n color: \"#4271AE\",\r\n crossOrigin: \"anonymous\",\r\n src: \"../data/bigdot.png\",\r\n scale: 0.5,\r\n }),\r\n text: createTextStyle(feature, 0),\r\n });\r\n}\r\nvar marker = new custom.style.MarkerStyle(\r\n 'https://openlayers.org/en/latest/examples/data/icon.png'\r\n );\r\nlet selectedMarkerStyle = Object.assign({}, markerStyle);\r\n\r\n//hien thi cac draw items\r\nclass DrawLayer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.layerStyleFunction = this.layerStyleFunction.bind(this);\r\n this.state = {\r\n source: this.props.source,\r\n };\r\n }\r\n layerStyleFunction = (feature, resolution) => {\r\n const type = feature.get('type');\r\n var v = undefined;\r\n switch(type) {\r\n case 'Point':\r\n v = new ol_style_Style({\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n stroke: new ol_style_Stroke({\r\n color: \"rgba(245, 117, 66,1)\",\r\n width: 2,\r\n }),\r\n fill: new ol_style_Fill({\r\n color: \"#ffcc33\",\r\n }),\r\n }),\r\n }); \r\n break;\r\n case 'LineString':\r\n v = new ol_style_Style({\r\n fill: new ol_style_Fill({\r\n color: 'rgba(150, 150, 150, 0.5)'\r\n }),\r\n stroke: new ol_style_Stroke({\r\n color: 'rgba(0,0,255,0.5)',\r\n width: 2\r\n }),\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n fill: new ol_style_Fill({\r\n color: '#ffcc33'\r\n })\r\n })\r\n });\r\n break;\r\n case 'Polygon':\r\n v = new ol_style_Style({\r\n fill: new ol_style_Fill({\r\n color: 'rgba(150, 150, 150, 0.5)'\r\n }),\r\n stroke: new ol_style_Stroke({\r\n color: 'rgba(0,0,255,0.5)',\r\n width: 2\r\n }),\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n fill: new ol_style_Fill({\r\n color: '#ffcc33'\r\n })\r\n })\r\n });\r\n break;\r\n case \"Circle\":\r\n v = new ol_style_Style({\r\n fill: new ol_style_Fill({\r\n color: \"rgba(150, 150, 150, 0.5)\",\r\n }),\r\n stroke: new ol_style_Stroke({\r\n color: \"rgba(0,0,255,0.5)\",\r\n width: 2,\r\n }),\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n fill: new ol_style_Fill({\r\n color: \"#ffcc33\",\r\n }),\r\n }),\r\n });\r\n var v_center = new ol_style_Style({\r\n geometry: new ol_geom_Point(feature.getGeometry().getCenter()),\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n fill: new ol_style_Fill({\r\n color: \"#ffcc33\",\r\n })}),\r\n })\r\n return [v, v_center];\r\n break;\r\n }\r\n return v;\r\n }\r\n componentDidMount() {\r\n }\r\n componentWillReceiveProps() {\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n );\r\n }\r\n}\r\nexport default DrawLayer;\r\n","//Hien thi ban do theo format react\r\nimport React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport ol_style_Style from \"ol/style/Style\";\r\nimport ol_style_Fill from \"ol/style/Fill\";\r\nimport ol_style_Icon from \"ol/style/Icon\";\r\nimport ol_style_Text from \"ol/style/Text\";\r\nimport ol_style_Stroke from \"ol/style/Stroke\";\r\nimport ol_style_Circle from \"ol/style/Circle\";\r\nimport ol_Feature from \"ol/Feature\";\r\nimport ol_source_Vector from \"ol/source/Vector\";\r\nimport ol_geom_Point from \"ol/geom/Point\";\r\nimport ol_Overlay from \"ol/Overlay\";\r\n\r\nimport {\r\n interaction,\r\n layer,\r\n custom,\r\n control, //name spaces\r\n Interactions,\r\n Overlays,\r\n Controls, //group\r\n Layers,\r\n Overlay,\r\n Util, //objects\r\n Map,\r\n} from \"../geo/index\";\r\nconst server = require(\"../lib/server.js\");\r\nconst myLib = require(\"../lib/MyLib.js\");\r\n\r\nvar openSansAdded = false;\r\n// http://stackoverflow.com/questions/14484787/wrap-text-in-javascript\r\nfunction stringDivider(str, width, spaceReplacer) {\r\n if (str.length > width) {\r\n var p = width;\r\n while (p > 0 && str[p] !== \" \" && str[p] !== \"-\") {\r\n p--;\r\n }\r\n if (p > 0) {\r\n var left;\r\n if (str.substring(p, p + 1) === \"-\") {\r\n left = str.substring(0, p + 1);\r\n } else {\r\n left = str.substring(0, p);\r\n }\r\n var right = str.substring(p + 1);\r\n return left + spaceReplacer + stringDivider(right, width, spaceReplacer);\r\n }\r\n }\r\n return str;\r\n}\r\n\r\nvar getText = function (feature, resolution) {\r\n var type = \"normal\";\r\n var maxResolution = 0.02;\r\n var text = feature.get(\"name\");\r\n var placement = undefined;\r\n if (resolution > maxResolution) {\r\n text = \"\";\r\n } else if (type === \"hide\") {\r\n text = \"\";\r\n } else if (type === \"shorten\") {\r\n text = text.trunc(12);\r\n } else if (type === \"wrap\" && (!placement || placement !== \"line\")) {\r\n text = stringDivider(text, 16, \"\\n\");\r\n }\r\n return text;\r\n};\r\n\r\nvar createTextStyle = function (text) {\r\n var align = \"center\";\r\n var baseline = \"bottom\";\r\n var size = \"14px\";\r\n var height = 1;\r\n var offsetX = 0;\r\n var offsetY = 28;\r\n var weight = \"normal\";\r\n var placement = undefined;\r\n var maxAngle = undefined;\r\n var overflow = undefined;\r\n var rotation = 0;\r\n var font = weight + \" \" + size + \"/\" + height + \" Arial\";\r\n var fillColor = \"#aa3300\";\r\n var outlineColor = \"white\";\r\n var outlineWidth = 3;\r\n\r\n var t = new ol_style_Text({\r\n textAlign: align == \"\" ? undefined : align,\r\n textBaseline: baseline,\r\n font: font,\r\n text: text,\r\n fill: new ol_style_Fill({ color: fillColor }),\r\n stroke: new ol_style_Stroke({ color: outlineColor, width: outlineWidth }),\r\n offsetX: offsetX,\r\n offsetY: offsetY,\r\n placement: placement,\r\n maxAngle: maxAngle,\r\n overflow: overflow,\r\n rotation: rotation,\r\n });\r\n return t;\r\n};\r\n\r\nvar markerStyle = new ol_style_Style({\r\n image: new ol_style_Icon({\r\n color: \"#4271AE\",\r\n crossOrigin: \"anonymous\",\r\n src: \"../data/bigdot.png\",\r\n scale: 0.2,\r\n }),\r\n});\r\n\r\n// style\r\n\r\nfunction pointSelectedStyleFunction(feature) {\r\n return new ol_style_Style({\r\n image: new ol_style_Icon({\r\n color: \"#4271AE\",\r\n crossOrigin: \"anonymous\",\r\n src: \"../data/bigdot.png\",\r\n scale: 0.5,\r\n }),\r\n text: createTextStyle(feature, 0),\r\n });\r\n}\r\nvar marker = new custom.style.MarkerStyle(\r\n \"https://openlayers.org/en/latest/examples/data/icon.png\"\r\n);\r\nlet selectedMarkerStyle = Object.assign({}, markerStyle);\r\n\r\n//hien thi cac draw items da luu trong csdl\r\nclass DrawItemsLayer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.layerStyleFunction = this.layerStyleFunction.bind(this);\r\n this.state = {\r\n source: new ol_source_Vector({ wrapX: false, features: props.features }),\r\n };\r\n }\r\n layerStyleFunction = (feature, resolution) => {\r\n const type = feature.get(\"type\");\r\n var v = undefined;\r\n switch (type) {\r\n case \"Point\":\r\n v = new ol_style_Style({\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n stroke: new ol_style_Stroke({\r\n color: \"rgba(245, 117, 66,1)\",\r\n width: 2,\r\n }),\r\n fill: new ol_style_Fill({\r\n color: \"#ffcc33\",\r\n }),\r\n }),\r\n });\r\n break;\r\n case \"LineString\":\r\n case \"Polygon\":\r\n var geometry = feature.getGeometry();\r\n var styles = [\r\n new ol_style_Style({\r\n fill: new ol_style_Fill({\r\n color: \"rgba(150, 150, 150, 0.5)\",\r\n }),\r\n stroke: new ol_style_Stroke({\r\n color: \"rgba(0,0,255,0.5)\",\r\n width: 2,\r\n }),\r\n }),\r\n ];\r\n if (resolution < 0.003)\r\n {\r\n var coords = geometry.getCoordinates();\r\n if(type === 'Polygon')\r\n coords = coords[0]; //why?\r\n coords.map((position, index) => {\r\n var v_point = new ol_style_Style({\r\n geometry: new ol_geom_Point(position),\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n stroke: new ol_style_Stroke({\r\n color: \"rgba(245, 117, 66,1)\",\r\n width: 1,\r\n }),\r\n fill: new ol_style_Fill({\r\n color: \"#ffcc33\",\r\n }),\r\n }),\r\n });\r\n if (styles.length === 100000000) {\r\n styles.push(\r\n new ol_style_Style({\r\n geometry: new ol_geom_Point(position),\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n stroke: new ol_style_Stroke({\r\n color: \"rgba(245, 117, 66,1)\",\r\n width: 1,\r\n }),\r\n fill: new ol_style_Fill({\r\n color: \"#ffcc33\",\r\n }),\r\n }),\r\n })\r\n );\r\n }\r\n styles.push(v_point);\r\n });\r\n }\r\n return styles;\r\n break;\r\n case \"SquareSearch\":\r\n case \"ParallelSearch\":\r\n case \"SectorSearch\":\r\n {\r\n var isSquare = type === \"SquareSearch\";\r\n var isSector = type === \"SectorSearch\";\r\n var geometry = feature.getGeometry();\r\n var styles = [\r\n // linestring\r\n new ol_style_Style({\r\n stroke: new ol_style_Stroke({\r\n color: \"#ff0000\",\r\n width: 2,\r\n }),\r\n }),\r\n ];\r\n var first = true;\r\n var index = 0,\r\n square = 1,\r\n leg = 0;\r\n if (resolution < 0.003)\r\n geometry.forEachSegment(function (start, end) {\r\n var dx = end[0] - start[0];\r\n var dy = end[1] - start[1];\r\n var rotation = Math.atan2(dy, dx);\r\n square = Math.floor(index / 4) + 1;\r\n if (first) {\r\n styles.push(\r\n new ol_style_Style({\r\n geometry: new ol_geom_Point(start),\r\n image: new ol_style_Icon({\r\n src: require(\"../data/corner.png\"),\r\n anchor: [0.5, 0.5],\r\n rotateWithView: true,\r\n rotation: -rotation,\r\n }),\r\n text: createTextStyle(\"Datum\"),\r\n })\r\n );\r\n first = false;\r\n }\r\n if (isSector) leg++;\r\n else if (index % 2 === 1) leg++;\r\n var text1 = \"Sq(\" + square + \") Pts(\" + (index + 1) + \")\";\r\n var text2 =\r\n index === 0\r\n ? \"Start\"\r\n : \"Leg (\" + leg + \") Pts(\" + (index % 2 == 1 ? 1 : 2);\r\n var text3 = \"Leg (\" + leg + \")\";\r\n var text = isSquare ? text1 : isSector ? text3 : text2;\r\n styles.push(\r\n new ol_style_Style({\r\n geometry: new ol_geom_Point(end),\r\n image: new ol_style_Icon({\r\n src: require(\"../data/corner.png\"),\r\n anchor: [0.5, 0.5],\r\n rotateWithView: true,\r\n rotation: -rotation,\r\n }),\r\n text: createTextStyle(text),\r\n })\r\n );\r\n index++;\r\n // arrows\r\n styles.push(\r\n new ol_style_Style({\r\n geometry: new ol_geom_Point([\r\n start[0] + dx / 2,\r\n start[1] + dy / 2,\r\n ]),\r\n image: new ol_style_Icon({\r\n src: require(\"../data/arrow.png\"),\r\n anchor: [0.75, 0.5],\r\n rotateWithView: true,\r\n rotation: -rotation,\r\n }),\r\n })\r\n );\r\n });\r\n\r\n return styles;\r\n }\r\n break;\r\n case \"Circle\":\r\n v = new ol_style_Style({\r\n fill: new ol_style_Fill({\r\n color: \"rgba(150, 150, 150, 0.5)\",\r\n }),\r\n stroke: new ol_style_Stroke({\r\n color: \"rgba(0,0,255,0.5)\",\r\n width: 2,\r\n }),\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n fill: new ol_style_Fill({\r\n color: \"#ffcc33\",\r\n }),\r\n }),\r\n });\r\n var v_center = new ol_style_Style({\r\n geometry: new ol_geom_Point(feature.getGeometry().getCenter()),\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n fill: new ol_style_Fill({\r\n color: \"#ffcc33\",\r\n }),\r\n }),\r\n });\r\n return [v, v_center];\r\n break;\r\n }\r\n return v;\r\n };\r\n componentDidMount() {}\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props !== nextProps) {\r\n this.setState({\r\n source: new ol_source_Vector({\r\n wrapX: false,\r\n features: nextProps.features,\r\n }),\r\n });\r\n }\r\n }\r\n componentWillUnmount() {\r\n this.layerVector.context.map.removeLayer(this.layerVector.layer);\r\n }\r\n render() {\r\n return (\r\n (this.layerVector = el)}\r\n >\r\n );\r\n }\r\n}\r\nexport default DrawItemsLayer;\r\n","//Hien thi ban do theo format react\r\nimport React from \"react\";\r\nimport * as ReactDOM from 'react-dom';\r\nimport ol_style_Style from 'ol/style/Style';\r\nimport ol_style_Fill from 'ol/style/Fill';\r\nimport ol_style_Icon from 'ol/style/Icon';\r\nimport ol_style_Text from 'ol/style/Text';\r\nimport ol_style_Stroke from 'ol/style/Stroke';\r\nimport ol_style_Circle from \"ol/style/Circle\";\r\nimport ol_Feature from 'ol/Feature';\r\nimport ol_source_Vector from 'ol/source/Vector';\r\nimport ol_geom_Point from 'ol/geom/Point';\r\nimport ol_Overlay from 'ol/Overlay';\r\n\r\n\r\nimport {\r\n interaction,\r\n layer,\r\n custom,\r\n control, //name spaces\r\n Interactions,\r\n Overlays,\r\n Controls, //group\r\n Layers,\r\n Overlay,\r\n Util, //objects\r\n Map,\r\n} from \"../geo/index\";\r\nconst server = require(\"../lib/server.js\");\r\nconst myLib = require(\"../lib/MyLib.js\");\r\n\r\nvar openSansAdded = false;\r\n// http://stackoverflow.com/questions/14484787/wrap-text-in-javascript\r\nfunction stringDivider(str, width, spaceReplacer) {\r\n if (str.length > width) {\r\n var p = width;\r\n while (p > 0 && str[p] !== \" \" && str[p] !== \"-\") {\r\n p--;\r\n }\r\n if (p > 0) {\r\n var left;\r\n if (str.substring(p, p + 1) === \"-\") {\r\n left = str.substring(0, p + 1);\r\n } else {\r\n left = str.substring(0, p);\r\n }\r\n var right = str.substring(p + 1);\r\n return left + spaceReplacer + stringDivider(right, width, spaceReplacer);\r\n }\r\n }\r\n return str;\r\n}\r\n\r\nvar getText = function (feature, resolution) {\r\n var type = \"normal\";\r\n var maxResolution = 0.02;\r\n var text = feature.get(\"name\");\r\n var placement = undefined;\r\n if (resolution > maxResolution) {\r\n text = \"\";\r\n } else if (type === \"hide\") {\r\n text = \"\";\r\n } else if (type === \"shorten\") {\r\n text = text.trunc(12);\r\n } else if (type === \"wrap\" && (!placement || placement !== \"line\")) {\r\n text = stringDivider(text, 16, \"\\n\");\r\n }\r\n return text;\r\n};\r\n\r\nvar createTextStyle = function (feature, resolution) {\r\n var align = \"center\";\r\n var baseline = \"bottom\";\r\n var size = \"14px\";\r\n var height = 1;\r\n var offsetX = 0;\r\n var offsetY = 24;\r\n var weight = \"normal\";\r\n var placement = undefined;\r\n var maxAngle = undefined;\r\n var overflow = undefined;\r\n var rotation = 0;\r\n var font = weight + \" \" + size + \"/\" + height + \" Arial\";\r\n var fillColor = \"#aa3300\";\r\n var outlineColor = \"white\";\r\n var outlineWidth = 3;\r\n\r\n var t = new ol_style_Text({\r\n textAlign: align == \"\" ? undefined : align,\r\n textBaseline: baseline,\r\n font: font,\r\n text: getText(feature, resolution),\r\n fill: new ol_style_Fill({ color: fillColor }),\r\n stroke: new ol_style_Stroke({ color: outlineColor, width: outlineWidth }),\r\n offsetX: offsetX,\r\n offsetY: offsetY,\r\n placement: placement,\r\n maxAngle: maxAngle,\r\n overflow: overflow,\r\n rotation: rotation,\r\n });\r\n return t;\r\n};\r\n\r\nvar markerStyle = new ol_style_Style({\r\n image: new ol_style_Icon({\r\n color: \"#4271AE\",\r\n crossOrigin: \"anonymous\",\r\n src: \"../data/bigdot.png\",\r\n scale: 0.2,\r\n }),\r\n});\r\n\r\n// style\r\n\r\nfunction pointSelectedStyleFunction(feature) {\r\n\r\n return new ol_style_Style({\r\n image: new ol_style_Icon({\r\n color: \"#4271AE\",\r\n crossOrigin: \"anonymous\",\r\n src: \"../data/bigdot.png\",\r\n scale: 0.5,\r\n }),\r\n text: createTextStyle(feature, 0),\r\n });\r\n}\r\nvar marker = new custom.style.MarkerStyle(\r\n 'https://openlayers.org/en/latest/examples/data/icon.png'\r\n );\r\nlet selectedMarkerStyle = Object.assign({}, markerStyle);\r\n\r\n//hien thi cac draw items da luu trong csdl\r\nclass KhuVucLayer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.layerStyleFunction = this.layerStyleFunction.bind(this);\r\n this.state = {\r\n source: new ol_source_Vector({ wrapX: false, features: props.features }),\r\n };\r\n console.log('drawitems:', props.features);\r\n }\r\n layerStyleFunction = (feature, resolution) => {\r\n const type = feature.get('type');\r\n var v = undefined;\r\n switch(type) {\r\n case 'Point':\r\n v = new ol_style_Style({\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n stroke: new ol_style_Stroke({\r\n color: \"rgba(245, 117, 66,1)\",\r\n width: 2,\r\n }),\r\n fill: new ol_style_Fill({\r\n color: \"#ffcc33\",\r\n }),\r\n }),\r\n }); \r\n break;\r\n case 'LineString':\r\n v = new ol_style_Style({\r\n fill: new ol_style_Fill({\r\n color: 'rgba(150, 150, 150, 0.5)'\r\n }),\r\n stroke: new ol_style_Stroke({\r\n color: 'rgba(0,0,255,0.5)',\r\n width: 2\r\n }),\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n fill: new ol_style_Fill({\r\n color: '#ffcc33'\r\n })\r\n })\r\n });\r\n break;\r\n case 'Polygon':case 'Circle':\r\n v = new ol_style_Style({\r\n fill: new ol_style_Fill({\r\n color: 'rgba(150, 150, 150, 0.5)'\r\n }),\r\n stroke: new ol_style_Stroke({\r\n color: 'rgba(0,0,255,0.5)',\r\n width: 2\r\n }),\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n fill: new ol_style_Fill({\r\n color: '#ffcc33'\r\n })\r\n })\r\n });\r\n break;\r\n }\r\n return v;\r\n }\r\n componentDidMount() {\r\n \r\n }\r\n componentWillReceiveProps(nextProps) {\r\n if(this.props !== nextProps) {\r\n this.setState({\r\n source: new ol_source_Vector({ wrapX: false, features: nextProps.features }),\r\n });\r\n }\r\n }\r\n componentWillUnmount() {\r\n this.layerVector.context.map.removeLayer(this.layerVector.layer);\r\n }\r\n render() {\r\n return (\r\n this.layerVector = el}\r\n >\r\n \r\n );\r\n }\r\n}\r\nexport default KhuVucLayer;\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\nconst danhmuc = require(\"../lib/DanhMucLayer\");\r\nconst uuidV4 = require(\"uuid/v4\");\r\n\r\nclass PointEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n var feature = {};\r\n if (props.value !== undefined) {\r\n //thong tin feature de edit\r\n var feature = props.value;\r\n var coord = feature.getGeometry().getCoordinates();\r\n var saved = feature.get(\"saved\");\r\n if (true === saved) {\r\n //feature da co trong csdl\r\n var data = feature.get(\"data\");\r\n feature = {\r\n ID: data.ID,\r\n Ten: data.Ten,\r\n Loai: \"Point\",\r\n ToaDo: data.JsonData.ToaDo,\r\n };\r\n } else {\r\n feature = {\r\n ID: uuidV4() + \"\",\r\n Ten: \"\",\r\n Loai: \"Point\",\r\n ToaDo: myLib.latToDMS(coord[1]) + \"-\" + myLib.lonToDMS(coord[0]),\r\n };\r\n }\r\n }\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n Ten: \"\",\r\n ToaDo: \"\",\r\n }\r\n : feature, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"Ten\", \"ToaDo\"]);\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = (action) => {\r\n if (action !== \"xoa\") {\r\n var check = { error: false };\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/save\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thay doi toa do feature\r\n var feature = this.props.value;\r\n console.log(response.JsonData);\r\n response.JsonData = JSON.parse(response.JsonData);\r\n feature.set(\"data\", response);\r\n feature.set(\"saved\", true);\r\n var coord = response.Coordinates[0];\r\n feature.getGeometry().setCoordinates(coord);\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n var feature = this.props.value;\r\n if (feature.get(\"saved\") === true) {\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ saving: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n }\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n \r\n }\r\n loadEdit() {\r\n \r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Vẽ điểm\r\n \r\n \r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"Ten\", event.target.value)\r\n }\r\n error={this.state.validateStatus.Ten !== undefined}\r\n helperText={\r\n this.state.validateStatus.Ten !== undefined\r\n ? this.state.validateStatus.Ten.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"ToaDo\", event.target.value)\r\n }\r\n error={this.state.validateStatus.ToaDo !== undefined}\r\n helperText={\r\n this.state.validateStatus.ToaDo !== undefined\r\n ? this.state.validateStatus.ToaDo.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(PointEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\nconst danhmuc = require(\"../lib/DanhMucLayer\");\r\nconst uuidV4 = require(\"uuid/v4\");\r\n\r\nclass LineEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n var feature = {};\r\n if (props.value !== undefined) {\r\n //thong tin feature de edit\r\n var feature = props.value;\r\n var coord = feature.getGeometry().getCoordinates();\r\n var saved = feature.get(\"saved\");\r\n if (true === saved) {\r\n //feature da co trong csdl\r\n var data = feature.get(\"data\");\r\n feature = {\r\n ID: data.ID,\r\n Ten: data.Ten,\r\n Loai: \"LineString\",\r\n ToaDo: data.JsonData.ToaDo,\r\n };\r\n } else {\r\n var toado = '';\r\n coord.map((item, index) => toado += (toado !== '' ? '\\n' : '') + myLib.latToDMS(item[1]) + \"-\" + myLib.lonToDMS(item[0]));\r\n feature = {\r\n ID: uuidV4() + \"\",\r\n Ten: \"\",\r\n Loai: \"LineString\",\r\n ToaDo: toado,\r\n };\r\n }\r\n }\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n Ten: \"\",\r\n ToaDo: \"\",\r\n }\r\n : feature, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"Ten\", \"ToaDo\"]);\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = (action) => {\r\n if (action !== \"xoa\") {\r\n var check = { error: false };\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/save\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thay doi toa do feature\r\n var feature = this.props.value;\r\n console.log(response.JsonData);\r\n response.JsonData = JSON.parse(response.JsonData);\r\n feature.set(\"data\", response);\r\n feature.set(\"saved\", true);\r\n var coord = response.Coordinates;\r\n feature.getGeometry().setCoordinates(coord);\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n var feature = this.props.value;\r\n if (feature.get(\"saved\") === true) {\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ saving: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n }\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n /*\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });*/\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaTN;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"tainan/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"tainan\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tainan: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Vẽ đoạn thẳng\r\n \r\n \r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"Ten\", event.target.value)\r\n }\r\n error={this.state.validateStatus.Ten !== undefined}\r\n helperText={\r\n this.state.validateStatus.Ten !== undefined\r\n ? this.state.validateStatus.Ten.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"ToaDo\", event.target.value)\r\n }\r\n error={this.state.validateStatus.ToaDo !== undefined}\r\n helperText={\r\n this.state.validateStatus.ToaDo !== undefined\r\n ? this.state.validateStatus.ToaDo.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n height: 100,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(LineEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\nconst danhmuc = require(\"../lib/DanhMucLayer\");\r\nconst uuidV4 = require(\"uuid/v4\");\r\n\r\nclass PolygonEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n var feature = {};\r\n if (props.value !== undefined) {\r\n //thong tin feature de edit\r\n var feature = props.value;\r\n var coord = feature.getGeometry().getCoordinates()[0];\r\n var saved = feature.get(\"saved\");\r\n if (true === saved) {\r\n //feature da co trong csdl\r\n var data = feature.get(\"data\");\r\n feature = {\r\n ID: data.ID,\r\n Ten: data.Ten,\r\n Loai: \"Polygon\",\r\n ToaDo: data.JsonData.ToaDo,\r\n };\r\n } else {\r\n var toado = '';\r\n console.log(coord);\r\n coord.map((item, index) => console.log('item', item));\r\n coord.map((item, index) => toado += (toado !== '' ? '\\n' : '') + myLib.latToDMS(item[1]) + \"-\" + myLib.lonToDMS(item[0]));\r\n feature = {\r\n ID: uuidV4() + \"\",\r\n Ten: \"\",\r\n Loai: \"Polygon\",\r\n ToaDo: toado,\r\n };\r\n }\r\n }\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n Ten: \"\",\r\n ToaDo: \"\",\r\n }\r\n : feature, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"Ten\", \"ToaDo\"]);\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = (action) => {\r\n if (action !== \"xoa\") {\r\n var check = { error: false };\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/save\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thay doi toa do feature\r\n var feature = this.props.value;\r\n console.log(response.JsonData);\r\n response.JsonData = JSON.parse(response.JsonData);\r\n feature.set(\"data\", response);\r\n feature.set(\"saved\", true);\r\n var coord = response.Coordinates;\r\n feature.getGeometry().setCoordinates([coord]);\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n var feature = this.props.value;\r\n if (feature.get(\"saved\") === true) {\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ saving: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n }\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n /*\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });*/\r\n }\r\n loadEdit() {\r\n //kiem tra xem co phai che do edit hay khong\r\n var mask = this.props.MaTN;\r\n if (mask !== undefined) {\r\n //load va hien thi thong tin su kien\r\n server\r\n .query(\"tainan/get?maso=\" + mask)\r\n .then((response) => {\r\n //thong tin su kien\r\n var sukien = response;\r\n sukien = danhmuc.chuyenDoi(\"tainan\", sukien); //chuyen doi gia tri\r\n console.log(sukien, \"chuyen doi\");\r\n this.setState({\r\n formReady: true,\r\n before: sukien,\r\n after: myLib.cloneObject(sukien),\r\n });\r\n console.log(\"ket qua truy van\", sukien);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tainan: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n this.setState({ formReady: true });\r\n }\r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Vẽ đa giác\r\n \r\n \r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"Ten\", event.target.value)\r\n }\r\n error={this.state.validateStatus.Ten !== undefined}\r\n helperText={\r\n this.state.validateStatus.Ten !== undefined\r\n ? this.state.validateStatus.Ten.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"ToaDo\", event.target.value)\r\n }\r\n error={this.state.validateStatus.ToaDo !== undefined}\r\n helperText={\r\n this.state.validateStatus.ToaDo !== undefined\r\n ? this.state.validateStatus.ToaDo.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n height: 100,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(PolygonEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\nconst danhmuc = require(\"../lib/DanhMucLayer\");\r\nconst uuidV4 = require(\"uuid/v4\");\r\n\r\nclass CircleEditDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n var feature = {};\r\n if (props.value !== undefined) {\r\n //thong tin feature de edit\r\n var feature = props.value;\r\n var coord = feature.getGeometry().getCenter();\r\n var saved = feature.get(\"saved\");\r\n if (true === saved) {\r\n //feature da co trong csdl\r\n var data = feature.get(\"data\");\r\n feature = {\r\n ID: data.ID,\r\n Ten: data.Ten,\r\n Loai: \"Circle\",\r\n ToaDo: data.JsonData.ToaDo,\r\n BanKinh: data.JsonData.BanKinh,\r\n };\r\n } else {\r\n feature = {\r\n ID: uuidV4() + \"\",\r\n Ten: \"\",\r\n Loai: \"Circle\",\r\n ToaDo: myLib.latToDMS(coord[1]) + \"-\" + myLib.lonToDMS(coord[0]),\r\n BanKinh: myLib.getRadiusValue(feature),\r\n };\r\n }\r\n }\r\n this.state = {\r\n open: props.visible,\r\n fullWidth: true,\r\n maxWidth: \"sm\",\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n Ten: \"\",\r\n ToaDo: \"\",\r\n }\r\n : feature, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\"Ten\", \"ToaDo\"]);\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = (action) => {\r\n if (action !== \"xoa\") {\r\n var check = { error: false };\r\n console.log(\"check\", check);\r\n if (!check.error) {\r\n //console.log(JSON.stringify(this.state.after));\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/save\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n var after = { ...this.state.after };\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saved: true,\r\n });\r\n //thay doi toa do feature\r\n var feature = this.props.value;\r\n console.log(response.JsonData);\r\n response.JsonData = JSON.parse(response.JsonData);\r\n feature.set(\"data\", response);\r\n feature.set(\"saved\", true);\r\n var coord = response.Coordinates[0];\r\n feature.getGeometry().setCenter(coord);\r\n feature.getGeometry().setRadius(response.BanKinh / (1852*60));\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(true);\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n } else {\r\n //thuc hien xoa\r\n var feature = this.props.value;\r\n if (feature.get(\"saved\") === true) {\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"hinhve/xoa\", this.state.after)\r\n .then((response) => {\r\n var before = {};\r\n this.setState({\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ saving: false, errorLog: error + \"\" });\r\n });\r\n } else {\r\n if (this.props.onSaved) {\r\n this.props.onSaved(feature, action);\r\n }\r\n this.handleClose(action);\r\n }\r\n }\r\n };\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.loadEdit();\r\n }\r\n loadDanhMuc() {\r\n \r\n }\r\n loadEdit() {\r\n \r\n }\r\n handleClose = (result) => {\r\n this.setState({ open: false });\r\n if (this.props.onClose) {\r\n this.props.onClose(result);\r\n }\r\n };\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Vẽ đường tròn\r\n \r\n \r\n this.handleClose(this.state.saved === true)}\r\n >\r\n Thoát\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n this.saveField(\"Ten\", event.target.value)\r\n }\r\n error={this.state.validateStatus.Ten !== undefined}\r\n helperText={\r\n this.state.validateStatus.Ten !== undefined\r\n ? this.state.validateStatus.Ten.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"ToaDo\", event.target.value)\r\n }\r\n error={this.state.validateStatus.ToaDo !== undefined}\r\n helperText={\r\n this.state.validateStatus.ToaDo !== undefined\r\n ? this.state.validateStatus.ToaDo.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n this.saveField(\"BanKinh\", event.target.value)\r\n }\r\n error={this.state.validateStatus.BanKinh !== undefined}\r\n helperText={\r\n this.state.validateStatus.BanKinh !== undefined\r\n ? this.state.validateStatus.BanKinh.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved && this.props.EditMode !== \"xoa\" ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 450,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(CircleEditDialog);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport { DropzoneArea } from \"material-ui-dropzone\";\r\nimport DateTimePicker from \"react-datetime\";\r\nimport SelectFilter from \"react-select\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport MyButton from \"./MyButton\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\n\r\nclass FilterSuKienDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleCancel = this.handleCancel.bind(this);\r\n this.handleOK = this.handleOK.bind(this);\r\n this.state = {\r\n canSaved: true, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_sukien: false,\r\n source_sukien: [],\r\n before: props.value === undefined ? {} : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n TrangThai: \"1\",\r\n LoaiTau_TauHang: true,\r\n LoaiTau_TauCa: true,\r\n LoaiTau_TauKhac: true,\r\n TuNgay: null,\r\n DenNgay: null,\r\n }\r\n : props.value, //thong tin dang edit\r\n };\r\n }\r\n componentDidMount() {}\r\n static getDerivedStateFromProps(props, state) {\r\n return state;\r\n }\r\n handleCancel = () => {\r\n this.props.callback(false);\r\n };\r\n handleOK = () => {\r\n //thuc hien tim kiem\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"sukien/filter\", this.state.after)\r\n .then((response) => {\r\n var after = myLib.cloneObject(this.state.after);\r\n this.setState({\r\n dataChanged: false,\r\n canSaved: true,\r\n saving: false,\r\n errorLog: \"\",\r\n search_result: response,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSearched) {\r\n this.props.onSearched(after, response);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"TrangThai\",\r\n \"LoaiTau_TauHang\",\r\n \"LoaiTau_TauCa\",\r\n \"LoaiTau_TauKhac\",\r\n \"TuNgay\",\r\n \"DenNgay\",\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n Lọc và hiển thị sự vụ\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Trạng thái:\r\n \r\n \r\n this.saveField(\"TrangThai\", event.target.value)\r\n }\r\n >\r\n Đang xử lý\r\n Kết thúc\r\n Tất cả\r\n \r\n \r\n \r\n \r\n \r\n Từ ngày:\r\n {\r\n var text = event.target.value;\r\n if(this.state.after.TuNgay === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('TuNgay', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\r\n \"TuNgay\",\r\n date && date.toDate ? date.toDate() : null\r\n )\r\n }\r\n />\r\n \r\n \r\n Đến ngày:\r\n {\r\n var text = event.target.value;\r\n if(this.state.after.DenNgay === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('DenNgay', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\r\n \"DenNgay\",\r\n date && date.toDate ? date.toDate() : null\r\n )\r\n }\r\n />\r\n \r\n \r\n {/**Loc theo loai tau */}\r\n \r\n this.saveField(\"LoaiTau_TauHang\", event.target.checked)\r\n }\r\n name=\"chk1\"\r\n />\r\n }\r\n label=\"Tàu hàng\"\r\n />\r\n \r\n this.saveField(\"LoaiTau_TauCa\", event.target.checked)\r\n }\r\n name=\"chk2\"\r\n />\r\n }\r\n label=\"Tàu cá\"\r\n />\r\n \r\n this.saveField(\"LoaiTau_TauKhac\", event.target.checked)\r\n }\r\n name=\"chk3\"\r\n />\r\n }\r\n label=\"Tàu khác\"\r\n />\r\n \r\n \r\n
\r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(FilterSuKienDialog);\r\n","/*Edit thong tin ve nguon tin va tai nan, phuong tien bi nan */\r\nimport React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport SelectFilter from \"react-select\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport MyLatLonEditor from \"./LatLonEditor\";\r\nimport DateTimePicker from \"react-datetime\";\r\nimport DoiTacEditDialog from \"../danhmuc/DoiTacEditDialog\";\r\nimport VungBienEditDialog from \"../danhmuc/VungBienEditDialog\";\r\nimport KhuVucEditDialog from \"../danhmuc/KhuVucEditDialog\";\r\nimport ThietBiEditDialog from '../danhmuc/ThietBiEditDialog';\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\nimport { ContactSupportOutlined } from \"@material-ui/icons\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\n\r\nconst defaultRecord = {\r\n MaNguonTin: null,\r\n TenNguonTin: null,\r\n PhuongThuc: \"1\",\r\n ThoiGianBaoNan: new Date(),\r\n ThoiGianBiNan: new Date(),\r\n LoaiTB: null,\r\n TanSo: null,\r\n Lat: null,\r\n Lon: null,\r\n LoaiVung: \"1\", //default la vung bien viet nam\r\n MaVung: null,\r\n MaKV: null,\r\n ViTri: null,\r\n};\r\n\r\nclass SuKienTaiNanControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n expanded: false,\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n //danh muc nguon tin\r\n loading_nguontin: true, // co dang load ding danh muc nguon tin ko\r\n source_nguontin: [], //danh muc options cho nguon tin\r\n open_them_doitac: false,\r\n //danh muc loai thiet bi\r\n loading_thietbi: true, //dang load danh muc thiet bi\r\n source_thietbi: [],\r\n open_them_thietbi: false,\r\n //danh muc vung bien\r\n loading_vungbien: true, //dang load danh muc vung bien\r\n source_vungbien: [],\r\n list_vungbien: [], //danh sach vung bien dang hien thi\r\n open_them_vungbien: false,\r\n //danh muc khu vuc bien\r\n loading_khuvuc: true,\r\n source_khuvuc: [],\r\n list_khuvuc: [],\r\n open_them_khuvuc: false,\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? defaultRecord\r\n : { ...defaultRecord, ...props.value }, //thong tin dang edit\r\n validateStatus: { error: false },\r\n };\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var old_changed = this.state.dataChanged;\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"MaNguonTin\",\r\n \"TenNguonTin\",\r\n \"PhuongThuc\",\r\n \"ThoiGianBaoNan\",\r\n \"ThoiGianBiNan\",\r\n \"LoaiTB\",\r\n \"TanSo\",\r\n \"Lat\",\r\n \"Lon\",\r\n \"LoaiVung\",\r\n \"MaVung\",\r\n \"MaKV\",\r\n \"ViTri\",\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n //thay doi hien thi combo\r\n if (fieldName === \"LoaiVung\") {\r\n var loaivung = value;\r\n var list_combo = [];\r\n this.state.source_vungbien.map((item, index) => {\r\n if (item.LoaiVung + \"\" === loaivung) {\r\n list_combo.push({ value: item.MaVung, label: item.TenVung });\r\n }\r\n });\r\n s.list_vungbien = list_combo;\r\n s.after.MaVung = \"\"; //clear\r\n }\r\n if (fieldName === \"LoaiVung\" || fieldName === \"MaVung\") {\r\n var mavung = s.after.MaVung.value + \"\";\r\n console.log(mavung, \"ma vung day nay\", this.state.source_khuvuc);\r\n var list_combo = [];\r\n this.state.source_khuvuc.map((item, index) => {\r\n console.log(\"compare\", item.MaVung, mavung);\r\n if (item.MaVung + \"\" === mavung) {\r\n list_combo.push({ value: item.MaKV, label: item.TenKhuVuc });\r\n }\r\n });\r\n s.list_khuvuc = list_combo;\r\n s.after.MaKV = \"\"; //clear\r\n console.log(list_combo);\r\n }\r\n if(this.props.onChanged && old_changed != s.dataChanged) {\r\n this.props.onChanged(s.dataChanged);\r\n }\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n console.log(JSON.stringify(this.state.after));\r\n var check = sukienLayer.validate(\"tainan\", this.state.after);\r\n if (!check.error) {\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\r\n \"sukien/saveTainan\",\r\n sukienLayer.chuanHoaSukien(\"tainan\", this.state.after)\r\n )\r\n .then((response) => {\r\n var before = {};\r\n var after = this.state.after;\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n if(this.props.onChanged) {\r\n this.props.onChanged(false);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n };\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n server\r\n .query(\"doitac/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaDoiTac, label: item.TenDoiTac })\r\n );\r\n this.setState({ source_nguontin: list, loading_nguontin: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_nguontin: false });\r\n });\r\n //load danh muc thiet bi\r\n server\r\n .query(\"thietbi/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.LoaiTB, label: item.TenLoaiTB })\r\n );\r\n this.setState({ source_thietbi: list, loading_thietbi: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_thietbi: false });\r\n });\r\n //load danh muc vung bien\r\n server\r\n .query(\"vungbien/getall\")\r\n .then((response) => {\r\n var list = [];\r\n var list_combo = []; //danh sach de hien thi tren combo\r\n var loaivung = this.state.after.LoaiVung + \"\";\r\n response.map((item, index) => {\r\n list.push(item);\r\n if (item.LoaiVung + \"\" === loaivung) {\r\n list_combo.push({ value: item.MaVung, label: item.TenVung });\r\n }\r\n });\r\n this.setState({\r\n source_vungbien: list,\r\n list_vungbien: list_combo,\r\n loading_vungbien: false,\r\n });\r\n console.log(\"loai vung =\", loaivung, \" danh muc:\", list_combo);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_vungbien: false });\r\n });\r\n //load danh muc khu vuc\r\n server\r\n .query(\"khuvuc/getall\")\r\n .then((response) => {\r\n var list = [];\r\n var list_combo = []; //danh sach de hien thi tren combo\r\n var mavung =\r\n (this.state.after.MaVung &&\r\n this.state.after.MaVung.hasOwnProperty(\"value\")\r\n ? this.state.after.MaVung.value\r\n : this.state.after.MaVung) + \"\";\r\n response.map((item, index) => {\r\n list.push(item);\r\n if (item.MaVung + \"\" === mavung) {\r\n list_combo.push({ value: item.MaKV, label: item.TenKhuVuc });\r\n }\r\n });\r\n this.setState({\r\n source_khuvuc: list,\r\n list_khuvuc: list_combo,\r\n loading_khuvuc: false,\r\n });\r\n console.log(\"ma vung=\", mavung, \"danh muc:\", list_combo);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_khuvuc: false });\r\n });\r\n }\r\n //khi load component: load cac danh muc can thiet\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n var newState = { ...state };\r\n //console.log(\"TaiNanControl props:\", props.value);\r\n if (props.value !== undefined && props.value.MaSK !== state.after.MaSK) {\r\n //console.log(\"co su thay doi\");\r\n //co su thay doi\r\n newState = {\r\n ...newState,\r\n expanded:\r\n props.expanded !== state.expanded ? props.expanded : state.expanded,\r\n after: { ...state.after, ...props.value },\r\n }; //lay thong tin tu parent form truyen vao thong qua props\r\n }\r\n //console.log(\"TaiNanControl new state:\", newState);\r\n return newState;\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n this.setState({ expanded: expanded })}\r\n >\r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n classes={{\r\n root: classes.normalPanel,\r\n expanded: classes.expandedPanel,\r\n content: classes.summaryContent\r\n }}\r\n >\r\n Thông tin tai nạn\r\n \r\n \r\n \r\n \r\n this.setState({ open_them_doitac: true })\r\n : undefined\r\n }\r\n className={\r\n this.state.validateStatus.MaNguonTin !== undefined\r\n ? classes.redLabel\r\n : classes.normalLabel\r\n }\r\n >\r\n Nguồn tin:\r\n \r\n {this.state.loading_nguontin ? (\r\n \r\n ) : (\r\n {\r\n this.saveField(\"MaNguonTin\", item);\r\n }}\r\n >\r\n )}\r\n \r\n \r\n \r\n this.saveField(\"TenNguonTin\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n Phương thức:\r\n \r\n \r\n this.saveField(\"PhuongThuc\", event.target.value)\r\n }\r\n >\r\n Fax\r\n Điện thoại\r\n Email\r\n Khác\r\n \r\n \r\n \r\n \r\n \r\n T.gian báo nạn(*):\r\n \r\n {\r\n var text = event.target.value;\r\n if(this.state.after.ThoiGianBaoNan === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('ThoiGianBaoNan', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\r\n \"ThoiGianBaoNan\",\r\n date && date.toDate ? date.toDate() : null\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n T.gian bị nạn(*):\r\n \r\n {\r\n var text = event.target.value;\r\n if(this.state.after.ThoiGianBiNan === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('ThoiGianBiNan', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\r\n \"ThoiGianBiNan\",\r\n date && date.toDate ? date.toDate() : null\r\n )\r\n }\r\n />\r\n \r\n \r\n this.setState({ open_them_thietbi: true })\r\n : undefined\r\n }\r\n >\r\n Thiết bị:\r\n \r\n {this.state.loading_nguontin ? (\r\n \r\n ) : (\r\n this.saveField(\"LoaiTB\", value)}\r\n >\r\n )}\r\n \r\n \r\n \r\n this.saveField(\"TanSo\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n this.saveField(\"Lat\", lat)}\r\n />\r\n \r\n \r\n this.saveField(\"Lon\", lon)}\r\n />\r\n \r\n \r\n \r\n this.saveField(\"ViTri\", event.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n Thuộc:\r\n \r\n this.saveField(\"LoaiVung\", event.target.value)\r\n }\r\n >\r\n Việt Nam\r\n Nước ngoài\r\n Vùng nước cảng\r\n \r\n \r\n \r\n \r\n this.setState({ open_them_vungbien: true })\r\n : undefined\r\n }\r\n >\r\n Vùng biển:\r\n \r\n {this.state.loading_vungbien ? (\r\n \r\n ) : (\r\n this.saveField(\"MaVung\", value)}\r\n >\r\n )}\r\n \r\n \r\n this.setState({ open_them_khuvuc: true })\r\n : undefined\r\n }\r\n >\r\n Khu vực:\r\n \r\n {this.state.loading_khuvuc ? (\r\n \r\n ) : (\r\n this.saveField(\"MaKV\", value)}\r\n >\r\n )}\r\n \r\n \r\n\r\n \r\n {this.state.canSaved ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n {this.state.open_them_doitac ? (\r\n {\r\n this.setState({ open_them_doitac: false }, () =>\r\n console.log(result)\r\n );\r\n }}\r\n onSaved={(record) => {\r\n var list = [].concat(this.state.source_nguontin);\r\n var new_item = {\r\n value: record.MaDoiTac,\r\n label: record.TenDoiTac,\r\n };\r\n list.unshift(new_item);\r\n this.setState({\r\n source_nguontin: list,\r\n dataChanged: true,\r\n canSaved: true,\r\n after: { ...this.state.after, MaNguonTin: new_item },\r\n });\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_them_vungbien ? (\r\n {\r\n this.setState({ open_them_vungbien: false });\r\n }}\r\n onSaved={(record) => {\r\n var source = [].concat(this.state.source_vungbien);\r\n var new_item = { value: record.MaVung, label: record.TenVung };\r\n source.unshift(new_item);\r\n var list = [].concat(this.state.list_vungbien);\r\n list.unshift(new_item);\r\n this.setState(\r\n {\r\n source_vungbien: source,\r\n list_vungbien: list,\r\n dataChanged: true,\r\n canSaved: true,\r\n after: {\r\n ...this.state.after,\r\n LoaiVung: record.LoaiVung,\r\n MaVung: new_item,\r\n },\r\n },\r\n () => console.log(\"state\", this.state)\r\n );\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_them_khuvuc ? (\r\n {\r\n this.setState({ open_them_khuvuc: false });\r\n }}\r\n onSaved={(record) => {\r\n var source = [].concat(this.state.source_khuvuc);\r\n var new_item = { value: record.MaKV, label: record.TenKhuVuc };\r\n source.unshift(new_item);\r\n var list = [].concat(this.state.list_khuvuc);\r\n list.unshift(new_item);\r\n this.setState(\r\n {\r\n source_khuvuc: source,\r\n list_khuvuc: list,\r\n dataChanged: true,\r\n canSaved: true,\r\n after: {\r\n ...this.state.after,\r\n MaKV: new_item,\r\n },\r\n },\r\n () => console.log(\"state\", this.state)\r\n );\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_them_thietbi ? (\r\n {\r\n this.setState({ open_them_thietbi: false }\r\n );\r\n }}\r\n onSaved={(record) => {\r\n var list = [].concat(this.state.source_thietbi);\r\n var new_item = {\r\n value: record.LoaiTB,\r\n label: record.TenLoaiTB,\r\n };\r\n list.unshift(new_item);\r\n this.setState({\r\n source_thietbi: list,\r\n dataChanged: true,\r\n canSaved: true,\r\n after: { ...this.state.after, LoaiTB: new_item },\r\n });\r\n }}\r\n />\r\n ) : null}\r\n\r\n \r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n label: {\r\n margin: 6,\r\n },\r\n labelError: {\r\n margin: 6,\r\n color: \"red\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: \"100%\",\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n margin: 0,\r\n minHeight: 11,\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n margin: 0,\r\n minHeight: '10px !important',\r\n },\r\n summaryContent: {\r\n margin: '1px !important',\r\n },\r\n normalLabel: {\r\n color: \"black\",\r\n },\r\n redLabel: {\r\n color: \"red\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SuKienTaiNanControl);\r\n","/*Edit thong tin ve nguon tin va tai nan, phuong tien bi nan */\r\nimport React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport SelectFilter from \"react-select\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport TextareaAutosize from '@material-ui/core/TextareaAutosize';\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport MyLatLonEditor from \"./LatLonEditor\";\r\nimport TaiNanEditDialog from \"../danhmuc/TaiNanEditDialog\";\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\n///////////////////////////////////////////////////////////////////\r\n\r\nconst defaultRecord = {\r\n MaTN: null,\r\n TinhTrang: '',\r\n TomTat: '',\r\n MoTa: '',\r\n};\r\nclass SuKienTinhChatControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n //danh muc tinh chat tai nan\r\n loading_tainan: true, // co dang loading danh muc quoc gia khong\r\n source_tainan: [], //danh muc options cho quoc tich\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? defaultRecord\r\n : { ...defaultRecord, ...props.value }, //thong tin dang edit\r\n validateStatus: {},\r\n };\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var old_changed = this.state.dataChanged;\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"MaTN\",\r\n \"TinhTrang\",\r\n \"TomTat\",\r\n \"MoTa\",\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n console.log(s);\r\n if(this.props.onChanged && old_changed != s.dataChanged) {\r\n this.props.onChanged(s.dataChanged);\r\n }\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n console.log(JSON.stringify(this.state.after));\r\n var check = sukienLayer.validate(\"tinhchat\", this.state.after);\r\n if (!check.error) {\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\r\n \"sukien/saveTinhchat\",\r\n sukienLayer.chuanHoaSukien(\"tinhchat\", this.state.after)\r\n )\r\n .then((response) => {\r\n var before = {};\r\n var after = this.state.after;\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n if(this.props.onChanged) {\r\n this.props.onChanged(false);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n };\r\n loadDanhMuc() {\r\n //load danh muc tai nan\r\n server\r\n .query(\"tainan/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaTN, label: item.TenTaiNan })\r\n );\r\n this.setState({ source_tainan: list, loading_tainan: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tainan: false });\r\n });\r\n }\r\n //khi load component: load cac danh muc can thiet\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n var newState = { ...state };\r\n //console.log(\"TaiNanControl props:\", props.value);\r\n if (props.value !== undefined && props.value.MaSK !== state.after.MaSK) {\r\n //console.log(\"co su thay doi\");\r\n //co su thay doi\r\n newState = {\r\n ...newState,\r\n after: { ...state.after, ...props.value },\r\n }; //lay thong tin tu parent form truyen vao thong qua props\r\n }\r\n //console.log(\"TaiNanControl new state:\", newState);\r\n return newState;\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n classes={{\r\n root: classes.normalPanel,\r\n expanded: classes.expandedPanel,\r\n content: classes.summaryContent,\r\n }}\r\n >\r\n Mô tả sự vụ\r\n \r\n \r\n \r\n \r\n this.setState({ open_them_tainan: true })\r\n : undefined\r\n }\r\n >\r\n Tai nạn(*):\r\n \r\n {this.state.loading_tainan ? (\r\n \r\n ) : (\r\n this.saveField(\"MaTN\", item)}\r\n >\r\n )}\r\n \r\n \r\n \r\n Tình trạng:\r\n \r\n \r\n this.saveField(\"TinhTrang\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TinhTrang !== undefined}\r\n helperText={\r\n this.state.validateStatus.TinhTrang !== undefined\r\n ? this.state.validateStatus.TinhTrang.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n Tóm tắt:\r\n \r\n \r\n this.saveField(\"TomTat\", event.target.value)\r\n }\r\n error={this.state.validateStatus.TomTat !== undefined}\r\n helperText={\r\n this.state.validateStatus.TomTat !== undefined\r\n ? this.state.validateStatus.TomTat.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n Mô tả chi tiết:\r\n \r\n \r\n this.saveField(\"MoTa\", event.target.value)\r\n }\r\n error={this.state.validateStatus.MoTa !== undefined}\r\n helperText={\r\n this.state.validateStatus.MoTa !== undefined\r\n ? this.state.validateStatus.MoTa.trangthai\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n {this.state.canSaved ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n {this.state.open_them_tainan ? (\r\n {\r\n this.setState({ open_them_tainan: false });\r\n }}\r\n onSaved={(record) => {\r\n var list = [].concat(this.state.source_tainan);\r\n var new_item = {\r\n value: record.MaTN,\r\n label: record.TenTaiNan,\r\n };\r\n list.unshift(new_item);\r\n this.setState({\r\n source_tainan: list,\r\n dataChanged: true,\r\n canSaved: true,\r\n after: { ...this.state.after, MaTN: new_item },\r\n });\r\n }}\r\n />\r\n ) : null}\r\n \r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: \"100%\",\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n margin: 0,\r\n minHeight: 11,\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n margin: 0,\r\n minHeight: '10px !important',\r\n },\r\n summaryContent: {\r\n margin: '1px !important',\r\n },\r\n normalLabel: {\r\n color: \"black\",\r\n },\r\n redLabel: {\r\n color: \"red\",\r\n },\r\n noidung: {\r\n height: 100,\r\n width: 500,\r\n },\r\n noidung2: {\r\n height: 100,\r\n width: 1020,\r\n },\r\n label: {\r\n margin: 6,\r\n },\r\n labelError: {\r\n margin: 6,\r\n color: \"red\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SuKienTinhChatControl);\r\n","/*Edit thong tin ve nguon tin va tai nan, phuong tien bi nan */\r\nimport React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport SelectFilter from \"react-select\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport MyLatLonEditor from \"./LatLonEditor\";\r\nimport DoiTacEditDialog from '../danhmuc/DoiTacEditDialog';\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\n///////////////////////////////////////////////////////////////////\r\nconst defaultRecord = {\r\n TheoDoi: false, //theo doi vu viec hay khong\r\n PhoiHop: false,\r\n KieuPhoiHop: \"1\",\r\n PhoiHopQT: false, //co phoi hop quoc te khong\r\n PhoiHopQT_MaQG: null,\r\n};\r\n\r\nclass SuKienXuLyControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.state = {\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n //danh muc quoc gia\r\n loading_doitac: true, // co dang loading danh muc quoc gia khong\r\n source_doitac: [], //danh muc options cho quoc tich\r\n open_them_doitac: false,\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : myLib.cloneObject(props.value), //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? defaultRecord\r\n : { ...defaultRecord, ...props.value }, //thong tin dang edit\r\n validateStatus: {},\r\n \r\n };\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var old_changed = this.state.dataChanged;\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = !myLib.isSame(s.before, s.after, [\r\n \"TheoDoi\",\r\n \"PhoiHop\",\r\n \"KieuPhoiHop\",\r\n \"PhoiHopQT\",\r\n \"PhoiHopQT_MaQG\",\r\n ]);\r\n s.canSaved = s.dataChanged;\r\n console.log(s);\r\n if(this.props.onChanged && old_changed != s.dataChanged) {\r\n this.props.onChanged(s.dataChanged);\r\n }\r\n this.setState(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSave = () => {\r\n console.log(JSON.stringify(this.state.after));\r\n var check = sukienLayer.validate(\"xuly\", this.state.after);\r\n if (!check.error) {\r\n this.setState({ validateStatus: check, saving: true, errorLog: \"\" });\r\n server\r\n .post(\r\n \"sukien/saveXuly\",\r\n sukienLayer.chuanHoaSukien(\"xuly\", this.state.after)\r\n )\r\n .then((response) => {\r\n var before = {};\r\n var after = this.state.after;\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSaved) {\r\n this.props.onSaved(after);\r\n }\r\n if(this.props.onChanged) {\r\n this.props.onChanged(false);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, errorLog: error + \"\" })\r\n );\r\n } else {\r\n this.setState({ validateStatus: check });\r\n }\r\n };\r\n loadDanhMuc() {\r\n //load danh muc tai nan\r\n server\r\n .query(\"doitac/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) => {\r\n if (item.LoaiDoiTac === 2) {\r\n list.push({ value: item.MaDoiTac, label: item.TenDoiTac });\r\n }\r\n });\r\n this.setState({ source_doitac: list, loading_doitac: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_doitac: false });\r\n });\r\n }\r\n //khi load component: load cac danh muc can thiet\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n var newState = { ...state };\r\n //console.log(\"TaiNanControl props:\", props.value);\r\n if (props.value !== undefined && props.value.MaSK !== state.after.MaSK) {\r\n //console.log(\"co su thay doi\");\r\n //co su thay doi\r\n newState = {\r\n ...newState,\r\n after: { ...state.after, ...props.value },\r\n }; //lay thong tin tu parent form truyen vao thong qua props\r\n }\r\n //console.log(\"TaiNanControl new state:\", newState);\r\n return newState;\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n classes={{\r\n root: classes.normalPanel,\r\n expanded: classes.expandedPanel,\r\n content: classes.summaryContent\r\n }}\r\n >\r\n Hoạt động xử lý\r\n \r\n \r\n \r\n \r\n \r\n this.saveField(\"TheoDoi\", event.target.checked)\r\n }\r\n name=\"chkTheoDoi\"\r\n />\r\n }\r\n label=\"Theo dõi\"\r\n />\r\n \r\n \r\n \r\n this.saveField(\"PhoiHop\", event.target.checked)\r\n }\r\n name=\"chkPhoiHop\"\r\n />\r\n }\r\n label=\"Phối hợp\"\r\n />\r\n \r\n \r\n \r\n \r\n Loại phối hợp:\r\n \r\n \r\n this.saveField(\"KieuPhoiHop\", event.target.value)\r\n }\r\n >\r\n Tàu tự cứu\r\n Tàu trong khu vực\r\n Tàu quân sự\r\n Phối hợp quốc tế\r\n Khác\r\n \r\n \r\n \r\n\r\n \r\n this.setState({ open_them_doitac: true })\r\n : undefined\r\n }\r\n >Cơ quan phối hợp:\r\n {this.state.loading_doitac ? (\r\n \r\n ) : (\r\n \r\n this.saveField(\"PhoiHopQT_MaDoiTac\", item)\r\n }\r\n >\r\n )}\r\n \r\n \r\n \r\n \r\n Hoạt động:\r\n \r\n \r\n this.saveField(\"PhoiHopQT\", event.target.value)\r\n }\r\n >\r\n Chỉ cung cấp thông tin\r\n Phối hợp hoạt động\r\n Điều động phương tiện\r\n Khác\r\n \r\n \r\n \r\n \r\n {this.state.canSaved ? (\r\n \r\n ) : null}\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n \r\n {this.state.open_them_doitac ? (\r\n {\r\n this.setState({ open_them_doitac: false });\r\n }}\r\n onSaved={(record) => {\r\n var list = [].concat(this.state.source_doitac);\r\n var new_item = {\r\n value: record.MaDoiTac,\r\n label: record.TenDoiTac,\r\n };\r\n list.unshift(new_item);\r\n this.setState({\r\n source_doitac: list,\r\n dataChanged: true,\r\n canSaved: true,\r\n after: { ...this.state.after, PhoiHopQT_MaDoiTac: new_item },\r\n });\r\n }}\r\n />\r\n ) : null}\r\n \r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: 2,\r\n minWidth: 120,\r\n },\r\n\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: \"100%\",\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n margin: 0,\r\n minHeight: 11,\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n margin: 0,\r\n minHeight: '10px !important',\r\n },\r\n summaryContent: {\r\n margin: '1px !important',\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SuKienXuLyControl);\r\n","//Hien thi ban do theo format react\r\nimport React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport ol_style_Style from \"ol/style/Style\";\r\nimport ol_style_Fill from \"ol/style/Fill\";\r\nimport ol_style_Icon from \"ol/style/Icon\";\r\nimport ol_style_Text from \"ol/style/Text\";\r\nimport ol_style_Stroke from \"ol/style/Stroke\";\r\nimport ol_style_Circle from \"ol/style/Circle\";\r\nimport ol_geom_LineString from \"ol/geom/LineString\";\r\nimport ol_Feature from \"ol/Feature\";\r\nimport ol_source_Vector from \"ol/source/Vector\";\r\nimport ol_geom_Point from \"ol/geom/Point\";\r\nimport ol_Overlay from \"ol/Overlay\";\r\n\r\nimport {\r\n interaction,\r\n layer,\r\n custom,\r\n control, //name spaces\r\n Interactions,\r\n Overlays,\r\n Controls, //group\r\n Layers,\r\n Overlay,\r\n Util, //objects\r\n Map,\r\n} from \"../geo/index\";\r\nconst server = require(\"../lib/server.js\");\r\nconst myLib = require(\"../lib/MyLib.js\");\r\n\r\nvar openSansAdded = false;\r\n// http://stackoverflow.com/questions/14484787/wrap-text-in-javascript\r\nfunction stringDivider(str, width, spaceReplacer) {\r\n if (str.length > width) {\r\n var p = width;\r\n while (p > 0 && str[p] !== \" \" && str[p] !== \"-\") {\r\n p--;\r\n }\r\n if (p > 0) {\r\n var left;\r\n if (str.substring(p, p + 1) === \"-\") {\r\n left = str.substring(0, p + 1);\r\n } else {\r\n left = str.substring(0, p);\r\n }\r\n var right = str.substring(p + 1);\r\n return left + spaceReplacer + stringDivider(right, width, spaceReplacer);\r\n }\r\n }\r\n return str;\r\n}\r\n\r\nvar getText = function (feature, resolution) {\r\n var type = \"normal\";\r\n var maxResolution = 0.02;\r\n var text = feature.get(\"name\");\r\n var placement = undefined;\r\n if (resolution > maxResolution) {\r\n text = \"\";\r\n } else if (type === \"hide\") {\r\n text = \"\";\r\n } else if (type === \"shorten\") {\r\n text = text.trunc(12);\r\n } else if (type === \"wrap\" && (!placement || placement !== \"line\")) {\r\n text = stringDivider(text, 16, \"\\n\");\r\n }\r\n return text;\r\n};\r\n\r\nvar createTextStyle = function (text, resolution) {\r\n var align = \"center\";\r\n var baseline = \"bottom\";\r\n var size = \"14px\";\r\n var height = 1;\r\n var offsetX = 0;\r\n var offsetY = -16;\r\n var weight = \"normal\";\r\n var placement = undefined;\r\n var maxAngle = undefined;\r\n var overflow = undefined;\r\n var rotation = 0;\r\n var font = weight + \" \" + size + \"/\" + height + \" Arial\";\r\n var fillColor = \"red\";\r\n var outlineColor = \"white\";\r\n var outlineWidth = 3;\r\n\r\n var t = new ol_style_Text({\r\n textAlign: align == \"\" ? undefined : align,\r\n textBaseline: baseline,\r\n font: font,\r\n text: text,\r\n fill: new ol_style_Fill({ color: fillColor }),\r\n stroke: new ol_style_Stroke({ color: outlineColor, width: outlineWidth }),\r\n offsetX: offsetX,\r\n offsetY: offsetY,\r\n placement: placement,\r\n maxAngle: maxAngle,\r\n overflow: overflow,\r\n rotation: rotation,\r\n });\r\n return t;\r\n};\r\n\r\nvar markerStyle = new ol_style_Style({\r\n image: new ol_style_Icon({\r\n color: \"#4271AE\",\r\n crossOrigin: \"anonymous\",\r\n src: \"../data/bigdot.png\",\r\n scale: 0.2,\r\n }),\r\n});\r\n\r\n// style\r\n\r\nfunction pointSelectedStyleFunction(feature) {\r\n return new ol_style_Style({\r\n image: new ol_style_Icon({\r\n color: \"#4271AE\",\r\n crossOrigin: \"anonymous\",\r\n src: \"../data/bigdot.png\",\r\n scale: 0.5,\r\n }),\r\n text: createTextStyle(feature, 0),\r\n });\r\n}\r\nvar marker = new custom.style.MarkerStyle(\r\n \"https://openlayers.org/en/latest/examples/data/icon.png\"\r\n);\r\nlet selectedMarkerStyle = Object.assign({}, markerStyle);\r\n\r\n//hien thi cac draw items da luu trong csdl\r\nclass SarTrackLayer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.layerStyleFunction = this.layerStyleFunction.bind(this);\r\n this.getSourceFromData = this.getSourceFromData.bind(this);\r\n this.state = {\r\n source: this.getSourceFromData(props),\r\n };\r\n }\r\n layerStyleFunction = (feature, resolution) => {\r\n const type = feature.get(\"type\");\r\n var v = undefined;\r\n switch (type) {\r\n case \"LineString\":\r\n var geometry = feature.getGeometry();\r\n var styles = [\r\n new ol_style_Style({\r\n fill: new ol_style_Fill({\r\n color: \"rgba(150, 150, 150, 0.5)\",\r\n }),\r\n stroke: new ol_style_Stroke({\r\n color: \"rgba(100,0,255,0.5)\",\r\n width: 2,\r\n }),\r\n }),\r\n ];\r\n if (resolution < 0.003)\r\n {\r\n var coords = geometry.getCoordinates();\r\n if(type === 'Polygon')\r\n coords = coords[0]; //why?\r\n coords.map((position, index) => {\r\n var options = {\r\n geometry: new ol_geom_Point(position),\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n stroke: new ol_style_Stroke({\r\n color: \"rgba(245, 117, 66,1)\",\r\n width: 1,\r\n }),\r\n fill: new ol_style_Fill({\r\n color: \"#ffcc33\",\r\n }),\r\n }),\r\n }\r\n if(index === coords.length - 1) { //diem cuoi cung \r\n options.text = createTextStyle(feature.get('data').TenTau, resolution);\r\n }\r\n var v_point = new ol_style_Style(options);\r\n styles.push(v_point);\r\n });\r\n }\r\n geometry.forEachSegment((start, end) => {\r\n var dx = end[0] - start[0];\r\n var dy = end[1] - start[1];\r\n var rotation = Math.atan2(dy, dx);\r\n styles.push(\r\n new ol_style_Style({\r\n geometry: new ol_geom_Point([\r\n start[0] + dx / 2,\r\n start[1] + dy / 2,\r\n ]),\r\n image: new ol_style_Icon({\r\n src: require(\"../data/arrow.png\"),\r\n anchor: [0.75, 0.5],\r\n rotateWithView: true,\r\n rotation: -rotation,\r\n }),\r\n })\r\n );\r\n });\r\n return styles;\r\n break;\r\n \r\n }\r\n return v;\r\n };\r\n getSourceFromData = (props) => {\r\n var list = props.tracks; //theo cau truc danh sach, moi item la danh sach track cua 1 su vu\r\n var features = [];\r\n list.map((tracks) => {\r\n tracks.map((item, index) => {\r\n var hanhtrinh = item.HanhTrinh;\r\n var coords = [];\r\n hanhtrinh.map((t, i) => {\r\n coords.push([t.Lon, t.Lat]);\r\n });\r\n coords.push([item.Lon, item.Lat]);\r\n if(coords.length === 1) { //de cho thanh 1 line\r\n coords.push([item.Lon, item.Lat]);\r\n }\r\n //line string\r\n var f = new ol_Feature({\r\n geometry: new ol_geom_LineString(coords),\r\n type: 'LineString',\r\n data: item, //du lieu dang luu trong csdl\r\n });\r\n console.log(coords);\r\n features.push(f);\r\n });\r\n }); \r\n return new ol_source_Vector({\r\n wrapX: false,\r\n features: features,\r\n });\r\n }\r\n componentDidMount() {}\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props !== nextProps) {\r\n this.setState({\r\n source: this.getSourceFromData(nextProps)\r\n });\r\n }\r\n }\r\n componentWillUnmount() {\r\n this.layerVector.context.map.removeLayer(this.layerVector.layer);\r\n }\r\n render() {\r\n return (\r\n (this.layerVector = el)}\r\n >\r\n );\r\n }\r\n}\r\nexport default SarTrackLayer;\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ImportExportIcon from \"@material-ui/icons/ImportExport\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"./MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FileSaver from \"file-saver\";\r\nimport Moment from \"react-moment\";\r\nimport MaxWidthDialog from \"./TestDialog\";\r\nimport SuKienEditdialog from \"./SuKienEditDialog\";\r\nimport SuKienChiTietDialog from \"./SuKienChiTietDialog\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport SuKienTimKiemControl from \"./controls/SuKienTimKiemControl\";\r\nimport ConfirmDialog from \"./ConfirmDialog\";\r\nimport AlertDialog from \"./AlertDialog\";\r\nimport \"./sukien.css\";\r\n\r\nconst server = require(\"../lib/server.js\");\r\nconst myLib = require(\"../lib/MyLib.js\");\r\n\r\nclass SuKienPage extends React.Component {\r\n columns = [\r\n { field: \"id\", headerName: \"STT\", width: 40 },\r\n { field: \"MaSK\", headerName: \"Mã số\", width: 50 },\r\n { field: \"TenNguonBao\", headerName: \"Nguồn báo\", width: 230,\r\n renderCell: (params) => {\r\n return
{params.getValue('TenNguonBao')}
\r\n }\r\n },\r\n {\r\n field: \"TenSK\",\r\n headerName: \"Tên/Quốc tịch\",\r\n width: 150,\r\n renderCell: (params) => {\r\n //console.log(params);\r\n return (\r\n
\r\n {\r\n this.setState({\r\n Editting_MaSK: params.getValue(\"MaSK\"),\r\n Editting_SuKien: params.data,\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n >\r\n
{params.getValue(\"TenSK\")}
\r\n
{params.getValue(\"TenQuocGia\")}
\r\n \r\n
\r\n );\r\n },\r\n },\r\n {\r\n field: \"ThoiGian\",\r\n headerName: \"Thời gian\",\r\n width: 120,\r\n renderCell: (params) => (\r\n
\r\n
\r\n \r\n {params.getValue(\"ThoiGianBiNan\")}\r\n \r\n
\r\n
\r\n \r\n {params.getValue(\"ThoiGianBaoNan\")}\r\n \r\n
\r\n
\r\n \r\n {params.getValue(\"ThoiGian\")}\r\n \r\n
\r\n
\r\n (\r\n {myLib.dateDiff(\r\n params.getValue(\"ThoiGianBaoNan\"),\r\n params.getValue(\"ThoiGianBiNan\")\r\n )}\r\n )\r\n
\r\n
\r\n ),\r\n },\r\n {\r\n field: \"Lat\",\r\n headerName: \"Tọa độ\",\r\n width: 85,\r\n renderCell: (params) => (\r\n
\r\n
\r\n {params.getValue(\"Lat\") !== null\r\n ? myLib.latToDMS(params.getValue(\"Lat\"))\r\n : \"\"}\r\n
\r\n
\r\n {params.getValue(\"Lon\") !== null\r\n ? myLib.lonToDMS(params.getValue(\"Lon\"))\r\n : \"\"}\r\n
\r\n
\r\n ),\r\n },\r\n {\r\n field: \"ViTri\",\r\n headerName: \"Vị trí\",\r\n width: 150,\r\n renderCell: (params) => (\r\n {params.getValue(\"ViTri\")}

}>\r\n
{params.getValue(\"ViTri\")}
\r\n
\r\n ),\r\n },\r\n {\r\n field: \"TinhTrang\",\r\n headerName: \"Tình trạng/Tóm tắt\",\r\n width: 250,\r\n renderCell: (params) => (\r\n
\r\n
{params.getValue(\"TinhTrang\")}
\r\n
{params.getValue(\"TomTat\")}
\r\n
\r\n ),\r\n },\r\n { field: \"TenTaiNan\", headerName: \"Tai nạn\", width: 130 },\r\n {\r\n field: \"TrangThai\",\r\n headerName: \"Trạng thái\",\r\n width: 130,\r\n valueGetter: (params) =>\r\n params.getValue(\"TrangThai\") === 1 ? \"Đang xử lý\" : \"Kết thúc\",\r\n },\r\n { field: \"TenVietTat\", headerName: \"Đơn vị\", width: 200 },\r\n ];\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_MaSK: undefined,\r\n showConfirmXoa: false,\r\n Editting_SuKien: undefined,\r\n showConfirmDuyet: false,\r\n errorLog: \"\",\r\n };\r\n }\r\n\r\n popupComp = undefined;\r\n\r\n componentDidMount() {}\r\n //call khi user thay doi trang\r\n handlePageChange = (params) => {\r\n if (this.callbackSearch) {\r\n this.callbackSearch(params.page);\r\n }\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n {\r\n var total = data.total;\r\n data.danhsach.map((item, index) => {\r\n item.id = index + 1 + (dieukien.Page - 1) * dieukien.PageSize;\r\n });\r\n var search = {};\r\n Object.assign(search, dieukien);\r\n this.setState({\r\n search: search,\r\n dataRows: data.danhsach,\r\n totalRows: data.total,\r\n search_result: data,\r\n });\r\n }}\r\n callback={(func) => (this.callbackSearch = func)}\r\n />\r\n \r\n\r\n \r\n {\r\n //console.log(params);\r\n this.setState({\r\n Editting_MaSK: params.data.MaSK,\r\n Editting_SuKien: params.data,\r\n });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n //truy van tu server\r\n server\r\n .query(\"sukien/getdraft\")\r\n .then((response) => {\r\n if (response === null) {\r\n this.setState({ open_them_sukien: true });\r\n } else {\r\n this.setState({\r\n Editting_MaSK: response.MaSK,\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ open_them_sukien: true });\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Sửa\"}\r\n disabled={\r\n this.state.Editting_MaSK === undefined || (!global.User.Quyen.RX1 && (!global.User.Quyen.R221 || this.state.Editting_SuKien.MaCQ !== global.User.MaCQ))\r\n }\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n disabled={\r\n this.state.Editting_MaSK === undefined || (!global.User.Quyen.RX1 && (!global.User.Quyen.R221 || this.state.Editting_SuKien.MaCQ !== global.User.MaCQ))\r\n }\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: true,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Duyệt\"}\r\n disabled={\r\n this.state.Editting_MaSK === undefined || !global.User.Quyen.RX1 || this.state.Editting_SuKien.Duyet\r\n }\r\n onClick={() => {\r\n console.log(this.state.Editting_SuKien);\r\n this.setState({\r\n showConfirmDuyet: true,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xuất Excel\"}\r\n onClick={() => {\r\n server\r\n .download(\"sukien/xuatexcel\", this.state.search)\r\n .then((response) => {})\r\n .catch((error) => console.log(error));\r\n }}\r\n />\r\n {this.state.search_result !== undefined &&\r\n this.state.search_result.thongke !== undefined ? (\r\n \r\n [Tổng số sự vụ:{\" \"}\r\n {this.state.search_result.thongke.DangXL +\r\n this.state.search_result.thongke.KetThuc}]\r\n [ Chưa duyệt: {this.state.search_result.thongke.ChuaDuyet}]\r\n [Đang xử lý: {this.state.search_result.thongke.DangXL} ][Đã kết\r\n thúc: {this.state.search_result.thongke.KetThuc}]\r\n \r\n ) : null}\r\n \r\n {this.state.open_them_sukien ? (\r\n this.setState({ open_them_sukien: false })}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState({\r\n open_edit_sukien: false,\r\n Editting_MaSK: undefined,\r\n })\r\n }\r\n />\r\n ) : null}\r\n {this.state.open_chitiet_sukien ? (\r\n this.setState({ open_chitiet_sukien: false })}\r\n />\r\n ) : null}\r\n {this.state.showConfirmDuyet ? (\r\n {\r\n //call server\r\n if (ok) {\r\n server\r\n .post(\"sukien/duyet\", { MaSK: this.state.Editting_MaSK })\r\n .then((response) => {\r\n //reload\r\n this.state.Editting_SuKien.Duyet = true;\r\n this.setState({ showConfirmDuyet: false, errorLog: \"\" });\r\n })\r\n .catch((error) => this.setState({ errorLog: error + \"\" }));\r\n }\r\n else\r\n {\r\n this.setState({ showConfirmDuyet: false });\r\n }\r\n }}\r\n />\r\n ) : null}\r\n {this.state.errorLog === \"\" ? null : (\r\n this.setState({ errorLog: \"\" })}\r\n />\r\n )}\r\n \r\n );\r\n }\r\n}\r\nfunction customCheckbox(theme) {\r\n return {\r\n \"& .MuiCheckbox-root svg\": {\r\n width: 16,\r\n height: 16,\r\n backgroundColor: \"transparent\",\r\n border: `1px solid ${\r\n theme.palette.type === \"light\" ? \"#494949\" : \"rgb(67, 67, 67)\"\r\n }`,\r\n borderRadius: 2,\r\n },\r\n \"& .MuiCheckbox-root svg path\": {\r\n display: \"none\",\r\n },\r\n \"& .MuiCheckbox-root.Mui-checked:not(.MuiCheckbox-indeterminate) svg\": {\r\n backgroundColor: \"#1890ff\",\r\n borderColor: \"#1890ff\",\r\n },\r\n \"& .MuiCheckbox-root.Mui-checked .MuiIconButton-label:after\": {\r\n position: \"absolute\",\r\n display: \"table\",\r\n border: \"2px solid #fff\",\r\n borderTop: 0,\r\n borderLeft: 0,\r\n transform: \"rotate(45deg) translate(-50%,-50%)\",\r\n opacity: 1,\r\n transition: \"all .2s cubic-bezier(.12,.4,.29,1.46) .1s\",\r\n content: '\"\"',\r\n top: \"50%\",\r\n left: \"39%\",\r\n width: 5.71428571,\r\n height: 9.14285714,\r\n },\r\n \"& .MuiCheckbox-root.MuiCheckbox-indeterminate .MuiIconButton-label:after\": {\r\n width: 8,\r\n height: 8,\r\n backgroundColor: \"#1890ff\",\r\n transform: \"none\",\r\n top: \"39%\",\r\n border: 0,\r\n },\r\n };\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n container1: {\r\n height: \"100%\",\r\n backgroundColor: \"skyblue\",\r\n },\r\n gridContainer: {\r\n height: \"100vh\",\r\n },\r\n root: {\r\n \"& .MuiDataGrid-columnsContainer\": {\r\n backgroundColor: theme.palette.type === \"light\" ? \"#eaeaea\" : \"#1d1d1d\",\r\n },\r\n },\r\n root1: {\r\n border: 0,\r\n color:\r\n theme.palette.type === \"light\"\r\n ? \"rgba(0,0,0,.85)\"\r\n : \"rgba(255,255,255,0.85)\",\r\n fontFamily: [\r\n \"-apple-system\",\r\n \"BlinkMacSystemFont\",\r\n '\"Segoe UI\"',\r\n \"Roboto\",\r\n '\"Helvetica Neue\"',\r\n \"Arial\",\r\n \"sans-serif\",\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(\",\"),\r\n WebkitFontSmoothing: \"auto\",\r\n letterSpacing: \"normal\",\r\n \"& .MuiDataGrid-columnsContainer\": {\r\n backgroundColor: theme.palette.type === \"light\" ? \"#5a5a5a\" : \"#1d1d1d\",\r\n },\r\n \"& .MuiDataGrid-iconSeparator\": {\r\n display: \"none\",\r\n },\r\n \"& .MuiDataGrid-colCell, .MuiDataGrid-cell\": {\r\n borderRight: `1px solid ${\r\n theme.palette.type === \"light\" ? \"#505050\" : \"#303030\"\r\n }`,\r\n },\r\n \"& .MuiDataGrid-columnsContainer\": {\r\n borderBottom: `1px solid ${\r\n theme.palette.type === \"light\" ? \"#505050\" : \"#303030\"\r\n }`,\r\n borderTop: `1px solid ${\r\n theme.palette.type === \"light\" ? \"#505050\" : \"#303030\"\r\n }`,\r\n overflow: \"visible\",\r\n },\r\n \"& .MuiDataGrid-cell\": {\r\n borderBottom: `1px solid ${\r\n theme.palette.type === \"light\" ? \"#505050\" : \"#303030\"\r\n }`,\r\n color:\r\n theme.palette.type === \"light\"\r\n ? \"rgba(0,0,0,.85)\"\r\n : \"rgba(255,255,255,0.65)\",\r\n },\r\n \"& .MuiPaginationItem-root\": {\r\n borderRadius: 0,\r\n },\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(SuKienPage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"./MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport MaxWidthDialog from \"./TestDialog\";\r\nimport SuKienChiTietDialog from \"./SuKienChiTietDialog\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport KeHoachTauTimKiemControl from \"./controls/KeHoachTauTimKiemControl\";\r\nimport KeHoachTauEditDialog from \"./KeHoachTauEditDialog\";\r\n\r\nconst server = require(\"../lib/server.js\");\r\nconst myLib = require(\"../lib/MyLib.js\");\r\n\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"KeHoachID\", headerName: \"Mã số\", width: 80 },\r\n { field: \"TenTau\", headerName: \"Tên tàu\", width: 230 },\r\n {\r\n field: \"TrangThai\",\r\n headerName: \"Kế hoạch\",\r\n width: 130,\r\n renderCell: (params) =>\r\n params.getValue(\"TrangThai\") == 0 ? \"Thường trực\" : \"Chốt chặn\",\r\n },\r\n {\r\n field: \"BatDau\",\r\n headerName: \"Bắt đầu\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"BatDau\")}\r\n ),\r\n },\r\n {\r\n field: \"KetThuc\",\r\n headerName: \"Kết thúc\",\r\n width: 130,\r\n renderCell: (params) =>\r\n params.getValue(\"KetThuc\") ? (\r\n {params.getValue(\"KetThuc\")}\r\n ) : null,\r\n },\r\n { field: \"ViTri\", headerName: \"Vị trí\", width: 200 },\r\n {\r\n field: \"HoatDong\",\r\n headerName: \"Trạng thái\",\r\n width: 130,\r\n valueGetter: (params) =>\r\n params.getValue(\"HoatDong\") === true ? \"Lần cuối\" : \"Lịch sử\",\r\n },\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass KeHoachTauPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_KeHoachID: undefined,\r\n showConfirmXoa: false,\r\n };\r\n }\r\n\r\n popupComp = undefined;\r\n\r\n componentDidMount() {}\r\n //call khi user thay doi trang\r\n handlePageChange = (params) => {\r\n if (this.callbackSearch) {\r\n this.callbackSearch(params.page);\r\n }\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n {\r\n var total = data.total;\r\n console.log(\"ket qua\", dieukien);\r\n data.danhsach.map((item, index) => {\r\n item.id = index + 1 + (dieukien.Page - 1) * dieukien.PageSize;\r\n });\r\n var search = {};\r\n Object.assign(search, dieukien);\r\n this.setState({\r\n search: search,\r\n dataRows: data.danhsach,\r\n totalRows: data.total,\r\n });\r\n }}\r\n callback={(func) => (this.callbackSearch = func)}\r\n />\r\n \r\n \r\n {\r\n console.log(params);\r\n this.setState({ Editting_KeHoachID: params.data.KeHoachID });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n this.setState({ open_them_sukien: true });\r\n }}\r\n />\r\n }\r\n text={\"Sửa\"}\r\n onClick={() => {\r\n this.setState({ open_edit_sukien: true, showConfirmXoa: false });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n onClick={() => {\r\n this.setState({ open_edit_sukien: true, showConfirmXoa: true });\r\n }}\r\n />\r\n \r\n {this.state.open_them_sukien ? (\r\n this.setState({ open_them_sukien: false })}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState({\r\n open_edit_sukien: false,\r\n Editting_KeHoachID: undefined,\r\n showConfirmXoa: false,\r\n })\r\n }\r\n />\r\n ) : null}\r\n {this.state.open_chitiet_sukien ? (\r\n this.setState({ open_chitiet_sukien: false })}\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: \"100vh\",\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(KeHoachTauPage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\nimport DateTimePicker from 'react-datetime';\r\n\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\n\r\nclass SuKienTimKiemControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSearch = this.handleSearch.bind(this);\r\n this.state = {\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_tausar: true, // co dang load ding danh muc nguon tin ko\r\n source_tausar: [], //danh muc options cho nguon tin\r\n //searching\r\n search_loading: false,\r\n search_result: {danhsach: [], total : 0}, //ket qua tim kiem\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : props.value, //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n Page: 1, \r\n PageSize: 10,\r\n TenTau: \"\", //tim kiem theo ten tau\r\n ThoiGian: new Date(),\r\n TrangThai: \"-1\",\r\n HoatDong: \"1\",\r\n MaCQ: '0', //trung tam xu ly\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n componentDidMount() {\r\n if(this.props.callback) {\r\n this.props.callback(this.handleSearch);\r\n }\r\n this.loadDanhMuc();\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = true;\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n console.log(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSearch = (pageIndex) => {\r\n var search = {};\r\n Object.assign(search, this.state.after);\r\n search.Page = pageIndex === undefined ? search.Page : pageIndex;\r\n this.setState({ saving: true, errorLog: \"\" });\r\n console.log(search);\r\n server\r\n .post(\r\n \"kehoachtau/search\",\r\n search\r\n )\r\n .then((response) => {\r\n var before = {};\r\n var after = search;\r\n Object.assign(before, after);\r\n this.setState({\r\n before: before,\r\n after: after,\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n search_loading: false,\r\n search_result: response,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSearched) {\r\n this.props.onSearched(after, response);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({ saving: false, search_loading: false, errorLog: error + \"\" })\r\n );\r\n };\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n server\r\n .query(\"tausar/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.TenTau, label: item.TenTau })\r\n );\r\n list.push({value: '0', label: '---Tất cả---'});\r\n this.setState({ source_tausar: list, loading_tausar: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_tausar: false });\r\n });\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n Tên tàu:\r\n {this.state.loading_tausar ? (\r\n \r\n ) : (\r\n
\r\n ({ ...base, zIndex: 9999 }) }}\r\n menuPortalTarget={document.body}\r\n menuPosition={'fixed'} \r\n value={this.state.after.TenTau}\r\n onChange={(item) => this.saveField(\"TenTau\", item)}\r\n >\r\n
\r\n )}\r\n
\r\n \r\n \r\n Kế hoạch:\r\n \r\n this.saveField(\"TrangThai\", event.target.value)\r\n }\r\n >\r\n --Tất cả--\r\n Chốt chặn\r\n Thường trực\r\n \r\n \r\n \r\n \r\n \r\n Ngày:\r\n \r\n {\r\n var text = event.target.value;\r\n if(this.state.after.ThoiGian === null && text != '') {\r\n var date = myLib.tryToDate(text);\r\n if(date) {\r\n this.saveField('ThoiGian', date);\r\n }\r\n }\r\n }\r\n }}\r\n onChange={(date) =>\r\n this.saveField(\"ThoiGian\", date && date.toDate ? date.toDate() : null)\r\n }\r\n /> \r\n \r\n \r\n \r\n Trạng thái:\r\n \r\n this.saveField(\"HoatDong\", event.target.value)\r\n }\r\n >\r\n --Tất cả--\r\n Lần cuối\r\n Lịch sử\r\n \r\n \r\n \r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n cboMacq: {\r\n backgroundColor: 'gray',\r\n }\r\n});\r\nexport default withStyles(styles, { withTheme: true })(SuKienTimKiemControl);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"./MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport MaxWidthDialog from \"./TestDialog\";\r\nimport SuKienChiTietDialog from \"./SuKienChiTietDialog\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport TrucBanTimKiemControl from \"./controls/TrucBanTimKiemControl\";\r\nimport TrucBanDenEditDialog from \"./TrucBanDenEditDialog\";\r\nimport TrucBanDiEditDialog from \"./TrucBanDiEditDialog\";\r\n\r\nconst server = require(\"../lib/server.js\");\r\nconst myLib = require(\"../lib/MyLib.js\");\r\nconst PhuongThucGui = [\"Khác\", \"Thoại\", \"Fax\", \"Email\"];\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"TrucBanID\", headerName: \"Mã số\", width: 80 },\r\n {\r\n field: \"ChieuDen\",\r\n headerName: \"Chiều\",\r\n width: 130,\r\n renderCell: (params) => {\r\n return params.getValue(\"ChieuDen\") === true ? \"Đến\" : \"Đi\";\r\n },\r\n },\r\n {\r\n field: \"TenNoiGui\",\r\n headerName: \"Nơi gửi\",\r\n width: 230,\r\n renderCell: (params) =>\r\n params.getValue(\"ChieuDen\") === true\r\n ? params.getValue(\"TenNoiGui\")\r\n : params.getValue(\"TenCoQuan\"),\r\n },\r\n {\r\n field: \"TenNoiNhan\",\r\n headerName: \"Nơi nhận\",\r\n width: 230,\r\n renderCell: (params) =>\r\n params.getValue(\"ChieuDen\") === true\r\n ? params.getValue(\"TenCoQuan\")\r\n : params.getValue(\"TenNoiNhan\"),\r\n },\r\n\r\n {\r\n field: \"ThoiGian\",\r\n headerName: \"Thời gian\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"ThoiGian\")}\r\n ),\r\n },\r\n {\r\n field: \"PhuongThuc\",\r\n headerName: \"Phương thức\",\r\n width: 130,\r\n renderCell: (params) => PhuongThucGui[params.getValue(\"PhuongThuc\")],\r\n },\r\n { field: \"TenSK\", headerName: \"Sự kiện liên quan\", width: 230 },\r\n { field: \"NoiDung\", headerName: \"Nội dung\", width: 200 },\r\n\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass TrucBanPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_den_sukien: false, //hien thi form nhap moi su kien\r\n open_di_sukien: false,\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_TrucBanID: undefined,\r\n Editting_ChieuDen: false,\r\n showConfirmXoa: false,\r\n };\r\n }\r\n\r\n popupComp = undefined;\r\n\r\n componentDidMount() {}\r\n //call khi user thay doi trang\r\n handlePageChange = (params) => {\r\n if (this.callbackSearch) {\r\n this.callbackSearch(params.page);\r\n }\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n {\r\n var total = data.total;\r\n console.log(\"ket qua\", dieukien);\r\n data.danhsach.map((item, index) => {\r\n item.id = index + 1 + (dieukien.Page - 1) * dieukien.PageSize;\r\n });\r\n var search = {};\r\n Object.assign(search, dieukien);\r\n this.setState({\r\n search: search,\r\n dataRows: data.danhsach,\r\n totalRows: data.total,\r\n });\r\n }}\r\n callback={(func) => (this.callbackSearch = func)}\r\n />\r\n \r\n \r\n {\r\n console.log(params);\r\n this.setState({\r\n Editting_TrucBanID: params.data.TrucBanID,\r\n Editting_ChieuDen: params.data.ChieuDen,\r\n });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thông tin đến\"}\r\n onClick={() => {\r\n this.setState({ open_den_sukien: true });\r\n }}\r\n />\r\n }\r\n text={\"Thông tin đi\"}\r\n onClick={() => {\r\n this.setState({ open_di_sukien: true });\r\n }}\r\n />\r\n }\r\n disabled={\r\n this.state.Editting_TrucBanID === undefined ||\r\n !global.User.Quyen.R241\r\n }\r\n text={\"Sửa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n disabled={\r\n this.state.Editting_TrucBanID === undefined ||\r\n !global.User.Quyen.R241\r\n }\r\n onClick={() => {\r\n this.setState({ open_edit_sukien: true, showConfirmXoa: true });\r\n }}\r\n />\r\n \r\n {this.state.open_den_sukien ? (\r\n this.setState({ open_den_sukien: false })}\r\n />\r\n ) : null}\r\n {this.state.open_di_sukien ? (\r\n this.setState({ open_di_sukien: false })}\r\n />\r\n ) : null}\r\n\r\n {this.state.open_edit_sukien ? (\r\n this.state.Editting_ChieuDen ? (\r\n \r\n this.setState({\r\n open_edit_sukien: false,\r\n Editting_TrucBanID: undefined,\r\n })\r\n }\r\n />\r\n ) : (\r\n \r\n this.setState({\r\n open_edit_sukien: false,\r\n Editting_TrucBanID: undefined,\r\n })\r\n }\r\n />\r\n )\r\n ) : null}\r\n {this.state.open_chitiet_sukien ? (\r\n this.setState({ open_chitiet_sukien: false })}\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: \"10vh\",\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(TrucBanPage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"./MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport MaxWidthDialog from \"./TestDialog\";\r\nimport SuKienChiTietDialog from \"./SuKienChiTietDialog\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport TrucBanTimKiemControl from \"./controls/TrucBanTimKiemControl\";\r\nimport TrucBanDenEditDialog from \"./TrucBanDenEditDialog\";\r\nimport TrucBanDiEditDialog from \"./TrucBanDiEditDialog\";\r\n\r\nconst server = require(\"../lib/server.js\");\r\nconst myLib = require(\"../lib/MyLib.js\");\r\nconst PhuongThucGui = [\"Khác\", \"Thoại\", \"Fax\", \"Email\"];\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"TrucBanID\", headerName: \"Mã số\", width: 80 },\r\n {\r\n field: \"ChieuDen\",\r\n headerName: \"Chiều\",\r\n width: 130,\r\n renderCell: (params) => {\r\n return params.getValue(\"ChieuDen\") === true ? \"Đến\" : \"Đi\";\r\n },\r\n },\r\n {\r\n field: \"TenNoiGui\",\r\n headerName: \"Nơi gửi\",\r\n width: 230,\r\n renderCell: (params) =>\r\n params.getValue(\"ChieuDen\") === true\r\n ? params.getValue(\"TenNoiGui\")\r\n : params.getValue(\"TenCoQuan\"),\r\n },\r\n {\r\n field: \"TenNoiNhan\",\r\n headerName: \"Nơi nhận\",\r\n width: 230,\r\n renderCell: (params) =>\r\n params.getValue(\"ChieuDen\") === true\r\n ? params.getValue(\"TenCoQuan\")\r\n : params.getValue(\"TenNoiNhan\"),\r\n },\r\n\r\n {\r\n field: \"ThoiGian\",\r\n headerName: \"Thời gian\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"ThoiGian\")}\r\n ),\r\n },\r\n {\r\n field: \"PhuongThuc\",\r\n headerName: \"Phương thức\",\r\n width: 130,\r\n renderCell: (params) => PhuongThucGui[params.getValue(\"PhuongThuc\")],\r\n },\r\n { field: \"TenSK\", headerName: \"Sự kiện liên quan\", width: 230 },\r\n { field: \"NoiDung\", headerName: \"Nội dung\", width: 200 },\r\n\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass ThongKePage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_den_sukien: false, //hien thi form nhap moi su kien\r\n open_di_sukien: false,\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_TrucBanID: undefined,\r\n Editting_ChieuDen: false,\r\n };\r\n }\r\n\r\n popupComp = undefined;\r\n\r\n componentDidMount() {}\r\n //call khi user thay doi trang\r\n handlePageChange = (params) => {\r\n if (this.callbackSearch) {\r\n this.callbackSearch(params.page);\r\n }\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n 01 - Báo cáo tổng hợp tình hình hoạt động phối hợp TKCN\r\n \r\n \r\n \r\n \r\n 02 - Báo cáo phân tích thông tin báo nạn\r\n \r\n \r\n \r\n \r\n 03 - Báo cáo phân tích thiết bị báo nạn\r\n \r\n \r\n \r\n \r\n 04 - Báo cáo phân tích hoạt động TKCN và phối hợp\r\n \r\n \r\n \r\n \r\n 05 - Báo cáo phân tích hoạt động phối hợp TKCN hàng hải\r\n \r\n \r\n \r\n \r\n 07 - Báo cáo tổng hợp tình hình hoạt động TKCN - Trường Sa,Hoàng\r\n Sa\r\n \r\n \r\n \r\n \r\n 10 - Báo cáo tổng hợp tình hình hoạt động phối hợp TKCN khi tàu\r\n chốt chặn\r\n \r\n \r\n \r\n \r\n 11 - Báo cáo phân tích hoạt động phối hợp quốc tế\r\n \r\n \r\n \r\n \r\n 13 - Báo cáo tổng hợp thu nhan thong tin theo năm\r\n \r\n \r\n \r\n \r\n 14 - Báo cáo tổng hợp loại hình tai nạn theo năm\r\n \r\n \r\n \r\n \r\n 15 - Báo cáo tổng hợp cứu nạn hỗ trợ tàu và người theo năm\r\n \r\n \r\n \r\n \r\n 16 - Báo cáo tổng hợp cứu nạn hỗ trợ tàu và người tại Hoàng Sa,\r\n Trường Sa theo năm\r\n \r\n \r\n \r\n \r\n 17 - Báo cáo tổng hợp tình hình hoạt động phối hợp TKCN tàu SB,\r\n hạn chế III\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: 500,\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(ThongKePage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport SendIcon from \"@material-ui/icons/Send\";\r\n\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"./MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport MaxWidthDialog from \"./TestDialog\";\r\nimport SuKienChiTietDialog from \"./SuKienChiTietDialog\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ChatTimKiemControl from \"./controls/ChatTimKiemControl\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport \"react-chat-elements/dist/main.css\";\r\nimport TrucBanDenEditDialog from \"./TrucBanDenEditDialog\";\r\nimport TrucBanDiEditDialog from \"./TrucBanDiEditDialog\";\r\nimport SelectFilter from \"react-select\";\r\nimport { MessageList } from \"react-chat-elements\";\r\nimport \"./chat.css\";\r\nimport \"./controls/ChatBubble.css\";\r\nimport { none } from \"ol/centerconstraint\";\r\nconst server = require(\"../lib/server.js\");\r\nconst myLib = require(\"../lib/MyLib.js\");\r\nconst PhuongThucGui = [\"Khác\", \"Thoại\", \"Fax\", \"Email\"];\r\n\r\nclass ChatOnlinePage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n\r\n loading_coquan: true, // co dang load ding danh muc nguon tin ko\r\n source_coquan: [], //danh muc options cho nguon tin\r\n loading_sukien: true,\r\n source_sukien: [],\r\n LastChatID: 0,\r\n MinChatID : 0,\r\n\r\n NoiDung: \"\",\r\n MaNoiNhan: [],\r\n MaSK: null,\r\n\r\n saving: false,\r\n errorLog: \"\",\r\n tempList: [],\r\n };\r\n }\r\n\r\n popupComp = undefined;\r\n timerHandle = undefined;\r\n handleSend() {\r\n //send chat\r\n this.setState({ saving: true, errorLog: \"\" });\r\n server\r\n .post(\"chat/send\", {\r\n NoiDung: this.state.NoiDung,\r\n MaSK: this.state.MaSK,\r\n MaNoiNhan: this.state.MaNoiNhan,\r\n })\r\n .then((response) => {\r\n this.setState(\r\n {\r\n saving: false,\r\n errorLog: \"\",\r\n MaNoiNhan: [],\r\n MaSK: null,\r\n NoiDung: '',\r\n },\r\n () => {\r\n this.handleSearch(0);\r\n }\r\n );\r\n })\r\n .catch((error) => this.setState({ saving: false, errorLog: error + \"\" }));\r\n }\r\n componentDidMount() {\r\n this.loadDanhMuc();\r\n this.handleSearch();\r\n var that = this;\r\n this.timerHandle = setInterval(() => {\r\n that.onTimer();\r\n }, 10000);\r\n }\r\n componentWillUnmount() {\r\n clearInterval(this.timerHandle);\r\n }\r\n onTimer() {\r\n //console.log(new Date());\r\n this.handleSearch(0);\r\n }\r\n //call khi user thay doi trang\r\n handleSearch = (last) => {\r\n this.setState({ search_loading: true, errorLog: \"\" });\r\n server\r\n .post(\"chat/searchchats\", { FromChatID: last, NumberRecord: 10 })\r\n .then((response) => {\r\n //tao danh sach hien thi\r\n var list = [];\r\n var lastID = 0, minID = 0;\r\n response.map((item, index) => {\r\n var text = item.NoiDung;\r\n var tensk = item.TenSK ? item.TenSK : \"-\";\r\n var noinhans = \"\";\r\n var hasRead = false;\r\n item.NoiNhans.map((n, i) => {\r\n if (n.DichDanh) {\r\n noinhans += (noinhans !== \"\" ? \",@\" : \"@\") + n.TenVietTat;\r\n }\r\n if (n.MaCQ == global.User.MaCQ) {\r\n //cung tai khoan\r\n hasRead = n.HasRead;\r\n }\r\n if (n.ChatID > lastID) lastID = n.ChatID;\r\n if(n.ChatID < minID) minID = n.ChatID;\r\n });\r\n list.push({\r\n dataItem: item,\r\n position: item.ChieuGui ? \"right\" : \"left\",\r\n type: \"text\",\r\n text: (\r\n \r\n {text}\r\n \r\n ),\r\n title: item.ChieuGui ? undefined : item.TenNoiGui,\r\n date: myLib.fromServerTime(item.NgayCN),\r\n avatar: require(\"../data/KV1.svg\"),\r\n titleColor: \"blue\",\r\n reply: {\r\n title: noinhans === \"\" ? \"@All\" : noinhans,\r\n titleColor: \"#8717ae\",\r\n message: tensk,\r\n },\r\n status: hasRead ? \"read\" : undefined,\r\n });\r\n });\r\n //console.log(list.length, lastID, this.state.LastChatID, minID, this.state.MinChatID)\r\n if (list.length > 0 && (lastID > this.state.LastChatID || minID < this.state.MinChatID)) {\r\n this.setState(\r\n {\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n search_loading: false,\r\n search_result: list,\r\n LastChatID:\r\n lastID > this.state.LastChatID ? lastID : this.state.LastChatID,\r\n MinChatID: minID < this.state.MinChatID ? minID : this.state.MinChatID,\r\n },\r\n () => {\r\n this.scrollToBottom();\r\n }\r\n );\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n server\r\n .query(\"coquan/getall\")\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) => {\r\n if (item.MaCQ !== global.User.MaCQ) {\r\n list.push({ value: item.MaCQ, label: item.TenCoQuan });\r\n }\r\n });\r\n this.setState({ source_coquan: list, loading_coquan: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_coquan: false, errorLog: error + \"\" });\r\n });\r\n //load danh muc su kien co lien quan\r\n server\r\n .query(\r\n \"sukien/getlienquan?trucbanid=\" +\r\n (this.props.TrucBanID === undefined ? 0 : this.props.TrucBanID)\r\n )\r\n .then((response) => {\r\n var list = [];\r\n response.map((item, index) =>\r\n list.push({ value: item.MaSK, label: item.TenSK })\r\n );\r\n this.setState({ source_sukien: list, loading_sukien: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_sukien: false, errorLog: error + \"\" });\r\n });\r\n }\r\n scrollToBottom() {\r\n const scrollHeight = this.messageList.scrollHeight;\r\n const height = this.messageList.clientHeight;\r\n const maxScrollTop = scrollHeight - height;\r\n this.messageList.scrollTop = maxScrollTop > 0 ? maxScrollTop : 0;\r\n }\r\n handleConfirm(item) {\r\n //xac nhan 1 item da duoc xac nhan da doc\r\n server\r\n .post(\"chat/confirmRead\", { ChatID: item.dataItem.ChatID })\r\n .then((response) => {\r\n //hien thi lai tin nhan\r\n item.dataItem.NoiNhans.map((n, i) => {\r\n if (n.MaCQ == global.User.MaCQ) {\r\n n.HasRead = true;\r\n item.status = \"read\";\r\n }\r\n });\r\n this.setState({ search_result: this.state.search_result });\r\n //cap nhat global\r\n //global.func_tinnhan(response);\r\n global.updateSoTinNhan(global.updateSoTinNhan_callback);\r\n })\r\n .catch((error) => console.log(error));\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n
\r\n {\r\n this.messageList = el;\r\n }}\r\n >\r\n this.handleConfirm(event)}\r\n />\r\n
\r\n
\r\n \r\n \r\n \r\n Nơi nhận(*):\r\n {this.state.loading_coquan ? (\r\n \r\n ) : (\r\n
\r\n ({\r\n ...base,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n menuPosition={\"fixed\"}\r\n isMulti={true}\r\n value={this.state.MaNoiNhan}\r\n onChange={(item) => this.setState({ MaNoiNhan: item })}\r\n >\r\n
\r\n )}\r\n
\r\n \r\n Sự vụ liên quan:\r\n {this.state.loading_sukien ? (\r\n \r\n ) : (\r\n
\r\n ({\r\n ...base,\r\n zIndex: 9999,\r\n }),\r\n }}\r\n menuPosition={\"fixed\"}\r\n value={this.state.MaSK}\r\n onChange={(item) => this.setState({ MaSK: item })}\r\n >\r\n
\r\n )}\r\n
\r\n \r\n \r\n this.setState({ NoiDung: event.target.value })\r\n }\r\n ref={(el) => {\r\n this.txtNoiDung = el;\r\n }}\r\n value = {this.state.NoiDung}\r\n />\r\n {this.state.saving ? (\r\n \r\n ) : (\r\n {\r\n this.handleSend();\r\n }}\r\n >\r\n \r\n \r\n )}\r\n {this.state.errorLog !== \"\" ? this.state.errorLog : undefined}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n textbox: {\r\n width: 500,\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(ChatOnlinePage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"../MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport MyButton from \"../MyButton\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nimport CoQuanEditDialog from \"./CoQuanEditDialog\";\r\n\r\nconst server = require(\"../../lib/server.js\");\r\nconst myLib = require(\"../../lib/MyLib.js\");\r\n\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"MaCQ\", headerName: \"Mã số\", width: 80 },\r\n { field: \"TenCoQuan\", headerName: \"Tên cơ quan\", width: 230 },\r\n { field: \"TenVietTat\", headerName: \"Tên viết tắt\", width: 230 },\r\n { field: \"Code\", headerName: \"Ký hiệu\", width: 230 },\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass CoQuanPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n search_loading: false,\r\n errorLog: \"\",\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_MaCQ: undefined,\r\n showConfirmXoa: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.handleSearch();\r\n }\r\n handleSearch = () => {\r\n this.setState({ search_loading: true, errorLog: \"\" });\r\n server\r\n .query(\"coquan/gettimkiem\")\r\n .then((response) => {\r\n response.map((item, index) => {\r\n item.id = index + 1;\r\n });\r\n this.setState({\r\n errorLog: \"\",\r\n search_loading: false,\r\n dataRows: response,\r\n totalRows: response.length,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n {this.state.search_loading ? : null}\r\n {this.state.errorLog !== \"\" ? this.state.errorLog : undefined}\r\n \r\n\r\n \r\n {\r\n console.log(params);\r\n this.setState({\r\n Editting_MaCQ: params.data.MaCQ,\r\n });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n this.setState({ open_them_sukien: true });\r\n }}\r\n />\r\n }\r\n text={\"Sửa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: true,\r\n });\r\n }}\r\n />\r\n \r\n\r\n {this.state.open_them_sukien ? (\r\n {\r\n this.setState({ open_them_sukien: false }, () =>\r\n this.handleSearch()\r\n );\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState(\r\n {\r\n open_edit_sukien: false,\r\n Editting_MaCQ: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {\r\n if (result === true) this.handleSearch();\r\n }\r\n )\r\n }\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: \"100vh\",\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(CoQuanPage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"../MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport MyButton from \"../MyButton\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nimport DoiTacEditDialog from \"./DoiTacEditDialog\";\r\n\r\nconst server = require(\"../../lib/server.js\");\r\nconst myLib = require(\"../../lib/MyLib.js\");\r\n\r\nconst LoaiDoiTacNames = [\r\n \"Khác\",\r\n \"CRS\",\r\n \"MRCC nước ngoài\",\r\n \"Đơn vị trong nước\",\r\n \"Tàu tại khu vực\",\r\n];\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"MaDoiTac\", headerName: \"Mã số\", width: 80 },\r\n { field: \"TenDoiTac\", headerName: \"Tên đơn vị\", width: 230 },\r\n {\r\n field: \"LoaiDoiTac\",\r\n headerName: \"Phân loại\",\r\n width: 130,\r\n renderCell: (params) => LoaiDoiTacNames[params.getValue(\"LoaiDoiTac\")],\r\n },\r\n { field: \"MaQG\", headerName: \"Mã quốc gia\", width: 130 },\r\n { field: \"TenQuocGia\", headerName: \"Tên quốc gia\", width: 200 },\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass DoiTacPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n search_loading: false,\r\n errorLog: \"\",\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_MaDoiTac: undefined,\r\n showConfirmXoa: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.handleSearch();\r\n }\r\n handleSearch = () => {\r\n this.setState({ search_loading: true, errorLog: \"\" });\r\n server\r\n .query(\"doitac/gettimkiem\")\r\n .then((response) => {\r\n response.map((item, index) => {\r\n item.id = index + 1;\r\n });\r\n this.setState({\r\n errorLog: \"\",\r\n search_loading: false,\r\n dataRows: response,\r\n totalRows: response.length,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n {this.state.search_loading ? : null}\r\n \r\n\r\n \r\n {\r\n console.log(params);\r\n this.setState({\r\n Editting_MaDoiTac: params.data.MaDoiTac,\r\n });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n this.setState({ open_them_sukien: true });\r\n }}\r\n />\r\n }\r\n text={\"Sửa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: true,\r\n });\r\n }}\r\n />\r\n \r\n {this.state.open_them_sukien ? (\r\n {\r\n this.setState({ open_them_sukien: false }, () =>\r\n this.handleSearch()\r\n );\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState(\r\n {\r\n open_edit_sukien: false,\r\n Editting_MaDoiTac: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {\r\n if (result === true) this.handleSearch();\r\n }\r\n )\r\n }\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: '1vh',\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(DoiTacPage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"../MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport MyButton from \"../MyButton\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nimport LoaiTauEditDialog from \"./LoaiTauEditDialog\";\r\n\r\nconst server = require(\"../../lib/server.js\");\r\nconst myLib = require(\"../../lib/MyLib.js\");\r\n\r\nconst LoaiDoiTacNames = [\r\n \"Khác\",\r\n \"Tàu SAR\",\r\n \"Tàu hàng\",\r\n \"Tàu quốc phòng\",\r\n \"Tàu cá\",\r\n \"Máy bay\",\r\n \"\",\r\n];\r\n/*1-tau sar, 2-tau hang, 3-tau quoc phong,4-tau ca, 5-may bay, 6-khac*/\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"LoaiTau\", headerName: \"Mã số\", width: 80 },\r\n { field: \"TenLoaiTau\", headerName: \"Tên cơ quan\", width: 230 },\r\n {\r\n field: \"PhanNhom\",\r\n headerName: \"Phân nhóm\",\r\n width: 230,\r\n renderCell: (params) => LoaiDoiTacNames[params.getValue(\"PhanNhom\")],\r\n },\r\n {\r\n field: \"IconURL\",\r\n headerName: \"Hình ảnh\",\r\n width: 230,\r\n renderCell: (params) => ,\r\n },\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass LoaiTauPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n search_loading: false,\r\n errorLog: \"\",\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_LoaiTau: undefined,\r\n showConfirmXoa: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.handleSearch();\r\n }\r\n handleSearch = () => {\r\n this.setState({ search_loading: true, errorLog: \"\" });\r\n server\r\n .query(\"loaitau/gettimkiem\")\r\n .then((response) => {\r\n response.map((item, index) => {\r\n item.id = index + 1;\r\n });\r\n this.setState({\r\n errorLog: \"\",\r\n search_loading: false,\r\n dataRows: response,\r\n totalRows: response.length,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n {this.state.search_loading ? : null}\r\n {this.state.errorLog !== \"\" ? this.state.errorLog : undefined}\r\n \r\n\r\n \r\n {\r\n console.log(params);\r\n this.setState({\r\n Editting_LoaiTau: params.data.LoaiTau,\r\n });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n this.setState({ open_them_sukien: true });\r\n }}\r\n />\r\n }\r\n text={\"Sửa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: true,\r\n });\r\n }}\r\n />\r\n \r\n {this.state.open_them_sukien ? (\r\n {\r\n this.setState({ open_them_sukien: false }, () =>\r\n this.handleSearch()\r\n );\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState(\r\n {\r\n open_edit_sukien: false,\r\n Editting_LoaiTau: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {\r\n if (result === true) this.handleSearch();\r\n }\r\n )\r\n }\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: \"1vh\",\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(LoaiTauPage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"../MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport MyButton from \"../MyButton\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nimport QuocGiaEditDialog from \"./QuocGiaEditDialog\";\r\n\r\nconst server = require(\"../../lib/server.js\");\r\nconst myLib = require(\"../../lib/MyLib.js\");\r\n\r\nconst LoaiDoiTacNames = [\r\n \"Khác\",\r\n \"Tàu SAR\",\r\n \"Tàu hàng\",\r\n \"Tàu quốc phòng\",\r\n \"Tàu cá\",\r\n \"Máy bay\",\r\n \"\",\r\n];\r\n/*1-tau sar, 2-tau hang, 3-tau quoc phong,4-tau ca, 5-may bay, 6-khac*/\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"MaQG\", headerName: \"Mã số\", width: 80 },\r\n { field: \"TenQuocGia\", headerName: \"Tên quốc gia\", width: 230 },\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass QuocGiaPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n search_loading: false,\r\n errorLog: \"\",\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_MaQG: undefined,\r\n showConfirmXoa: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.handleSearch();\r\n }\r\n handleSearch = () => {\r\n this.setState({ search_loading: true, errorLog: \"\" });\r\n server\r\n .query(\"quocgia/gettimkiem\")\r\n .then((response) => {\r\n response.map((item, index) => {\r\n item.id = index + 1;\r\n });\r\n this.setState({\r\n errorLog: \"\",\r\n search_loading: false,\r\n dataRows: response,\r\n totalRows: response.length,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n {this.state.search_loading ? : null}\r\n {this.state.errorLog !== \"\" ? this.state.errorLog : undefined}\r\n \r\n\r\n \r\n {\r\n console.log(params);\r\n this.setState({\r\n Editting_MaQG: params.data.MaQG,\r\n });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n this.setState({ open_them_sukien: true });\r\n }}\r\n />\r\n }\r\n text={\"Sửa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: true,\r\n });\r\n }}\r\n />\r\n \r\n {this.state.open_them_sukien ? (\r\n {\r\n this.setState({ open_them_sukien: false }, () =>\r\n this.handleSearch()\r\n );\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState(\r\n {\r\n open_edit_sukien: false,\r\n Editting_MaQG: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {\r\n if (result === true) this.handleSearch();\r\n }\r\n )\r\n }\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: \"1vh\",\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(QuocGiaPage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"../MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport MyButton from \"../MyButton\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nimport TaiNanEditDialog from \"./TaiNanEditDialog\";\r\n\r\nconst server = require(\"../../lib/server.js\");\r\nconst myLib = require(\"../../lib/MyLib.js\");\r\n\r\nconst LoaiDoiTacNames = [\r\n \"Khác\",\r\n \"Tàu SAR\",\r\n \"Tàu hàng\",\r\n \"Tàu quốc phòng\",\r\n \"Tàu cá\",\r\n \"Máy bay\",\r\n \"\"\r\n];\r\n/*1-tau sar, 2-tau hang, 3-tau quoc phong,4-tau ca, 5-may bay, 6-khac*/\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"MaTN\", headerName: \"Mã số\", width: 80 },\r\n { field: \"TenTaiNan\", headerName: \"Tên quốc gia\", width: 230 },\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass TaiNanPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n search_loading: false,\r\n errorLog: \"\",\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_MaTN: undefined,\r\n showConfirmXoa: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.handleSearch();\r\n }\r\n handleSearch = () => {\r\n this.setState({ search_loading: true, errorLog: \"\" });\r\n server\r\n .query(\"tainan/gettimkiem\")\r\n .then((response) => {\r\n response.map((item, index) => {\r\n item.id = index + 1;\r\n });\r\n this.setState({\r\n errorLog: \"\",\r\n search_loading: false,\r\n dataRows: response,\r\n totalRows: response.length,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n {this.state.search_loading ? : null}\r\n {this.state.errorLog !== '' ? this.state.errorLog : undefined}\r\n \r\n\r\n \r\n {\r\n console.log(params);\r\n this.setState({\r\n Editting_MaTN: params.data.MaTN,\r\n });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n this.setState({ open_them_sukien: true });\r\n }}\r\n />\r\n }\r\n text={\"Sửa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: true,\r\n });\r\n }}\r\n />\r\n \r\n {this.state.open_them_sukien ? (\r\n {\r\n this.setState({ open_them_sukien: false }, () =>\r\n this.handleSearch()\r\n );\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState(\r\n {\r\n open_edit_sukien: false,\r\n Editting_MaTN: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {\r\n if (result === true) this.handleSearch();\r\n }\r\n )\r\n }\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: '100vh',\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(TaiNanPage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"../MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport MyButton from \"../MyButton\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nimport VungBienEditDialog from \"./VungBienEditDialog\";\r\n\r\nconst server = require(\"../../lib/server.js\");\r\nconst myLib = require(\"../../lib/MyLib.js\");\r\n\r\nconst LoaiDoiTacNames = [\"\", \"Việt Nam\", \"Nước ngoài\", \"Vùng nước cảng\"];\r\n/*1-tau sar, 2-tau hang, 3-tau quoc phong,4-tau ca, 5-may bay, 6-khac*/\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"MaVung\", headerName: \"Mã số\", width: 80 },\r\n { field: \"TenVung\", headerName: \"Tên vùng biển\", width: 230 },\r\n {\r\n field: \"LoaiVung\",\r\n headerName: \"Phân loại\",\r\n width: 230,\r\n renderCell: (params) => LoaiDoiTacNames[params.getValue(\"LoaiVung\")],\r\n },\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass VungBienPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n search_loading: false,\r\n errorLog: \"\",\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_MaVung: undefined,\r\n showConfirmXoa: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.handleSearch();\r\n }\r\n handleSearch = () => {\r\n this.setState({ search_loading: true, errorLog: \"\" });\r\n server\r\n .query(\"vungbien/gettimkiem\")\r\n .then((response) => {\r\n response.map((item, index) => {\r\n item.id = index + 1;\r\n });\r\n this.setState({\r\n errorLog: \"\",\r\n search_loading: false,\r\n dataRows: response,\r\n totalRows: response.length,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n {this.state.search_loading ? : null}\r\n {this.state.errorLog !== \"\" ? this.state.errorLog : undefined}\r\n \r\n\r\n \r\n {\r\n console.log(params);\r\n this.setState({\r\n Editting_MaVung: params.data.MaVung,\r\n });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n this.setState({ open_them_sukien: true });\r\n }}\r\n />\r\n }\r\n text={\"Sửa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: true,\r\n });\r\n }}\r\n />\r\n \r\n {this.state.open_them_sukien ? (\r\n {\r\n this.setState({ open_them_sukien: false }, () =>\r\n this.handleSearch()\r\n );\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState(\r\n {\r\n open_edit_sukien: false,\r\n Editting_MaVung: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {\r\n if (result === true) this.handleSearch();\r\n }\r\n )\r\n }\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: \"100vh\",\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(VungBienPage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"../MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport MyButton from \"../MyButton\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nimport KhuVucEditDialog from \"./KhuVucEditDialog\";\r\nimport ThoiTietEditDialog from \"./ThoiTietEditDialog\";\r\n\r\nconst server = require(\"../../lib/server.js\");\r\nconst myLib = require(\"../../lib/MyLib.js\");\r\n\r\nconst LoaiDoiTacNames = [\r\n \"\",\r\n \"Sát bờ\",\r\n \"Gần bờ\",\r\n \"Khu vực giữa\",\r\n \"Xa bờ\",\r\n \"Ngoài khơi\",\r\n \"Nước ngoài\",\r\n];\r\n/*1-tau sar, 2-tau hang, 3-tau quoc phong,4-tau ca, 5-may bay, 6-khac*/\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"MaKV\", headerName: \"Mã số\", width: 80 },\r\n { field: \"TenKhuVuc\", headerName: \"Tên khu vực\", width: 230 },\r\n { field: \"TenVung\", headerName: \"Tên vùng biển\", width: 230 },\r\n {\r\n field: \"KhoangCach\",\r\n headerName: \"Phân loại\",\r\n width: 230,\r\n renderCell: (params) => LoaiDoiTacNames[params.getValue(\"KhoangCach\")],\r\n },\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass KhuVucPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n search_loading: false,\r\n errorLog: \"\",\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_MaKV: undefined,\r\n showConfirmXoa: false,\r\n showThoiTiet: false, //show form de edit thong tin thoi tiet\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.handleSearch();\r\n }\r\n handleSearch = () => {\r\n this.setState({ search_loading: true, errorLog: \"\" });\r\n server\r\n .query(\"khuvuc/gettimkiem\")\r\n .then((response) => {\r\n response.map((item, index) => {\r\n item.id = index + 1;\r\n });\r\n this.setState({\r\n errorLog: \"\",\r\n search_loading: false,\r\n dataRows: response,\r\n totalRows: response.length,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n {this.state.search_loading ? : null}\r\n {this.state.errorLog !== \"\" ? this.state.errorLog : undefined}\r\n \r\n\r\n \r\n {\r\n console.log(params);\r\n this.setState({\r\n Editting_MaKV: params.data.MaKV,\r\n });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n this.setState({ open_them_sukien: true });\r\n }}\r\n />\r\n }\r\n text={\"Sửa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: true,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Thời tiết\"}\r\n onClick={() => {\r\n this.setState({\r\n showThoiTiet: true,\r\n });\r\n }}\r\n />\r\n \r\n {this.state.open_them_sukien ? (\r\n {\r\n this.setState({ open_them_sukien: false }, () =>\r\n this.handleSearch()\r\n );\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState(\r\n {\r\n open_edit_sukien: false,\r\n Editting_MaKV: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {\r\n if (result === true) this.handleSearch();\r\n }\r\n )\r\n }\r\n />\r\n ) : null}\r\n {this.state.showThoiTiet ? (\r\n \r\n this.setState(\r\n {\r\n showThoiTiet: false,\r\n Editting_MaKV: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {\r\n if (result === true) this.handleSearch();\r\n }\r\n )\r\n }\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: \"1vh\",\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(KhuVucPage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"../MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport MyButton from \"../MyButton\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nimport TauSarEditDialog from \"./TauSarEditDialog\";\r\n\r\nconst server = require(\"../../lib/server.js\");\r\nconst myLib = require(\"../../lib/MyLib.js\");\r\n\r\nconst LoaiDoiTacNames = [\r\n \"Khác\",\r\n \"Tàu SAR\",\r\n \"Tàu hàng\",\r\n \"Tàu quốc phòng\",\r\n \"Tàu cá\",\r\n \"Máy bay\",\r\n \"\",\r\n];\r\n/*1-tau sar, 2-tau hang, 3-tau quoc phong,4-tau ca, 5-may bay, 6-khac*/\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"TauID\", headerName: \"Mã số\", width: 80 },\r\n { field: \"TenTau\", headerName: \"Tên tàu\", width: 230 },\r\n { field: \"TenLoaiTau\", headerName: \"Loại tàu\", width: 230 },\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass TauSarPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n search_loading: false,\r\n errorLog: \"\",\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_TauID: undefined,\r\n showConfirmXoa: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.handleSearch();\r\n }\r\n handleSearch = () => {\r\n this.setState({ search_loading: true, errorLog: \"\" });\r\n server\r\n .query(\"tausar/gettimkiem\")\r\n .then((response) => {\r\n response.map((item, index) => {\r\n item.id = index + 1;\r\n });\r\n this.setState({\r\n errorLog: \"\",\r\n search_loading: false,\r\n dataRows: response,\r\n totalRows: response.length,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n {this.state.search_loading ? : null}\r\n {this.state.errorLog !== \"\" ? this.state.errorLog : undefined}\r\n \r\n\r\n \r\n {\r\n console.log(params);\r\n this.setState({\r\n Editting_TauID: params.data.TauID,\r\n });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n this.setState({ open_them_sukien: true });\r\n }}\r\n />\r\n }\r\n text={\"Sửa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: true,\r\n });\r\n }}\r\n />\r\n \r\n {this.state.open_them_sukien ? (\r\n {\r\n this.setState({ open_them_sukien: false }, () =>\r\n this.handleSearch()\r\n );\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState(\r\n {\r\n open_edit_sukien: false,\r\n Editting_TauID: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {\r\n if (result === true) this.handleSearch();\r\n }\r\n )\r\n }\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: \"100vh\",\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(TauSarPage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"../MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport MyButton from \"../MyButton\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nimport ThietBiEditDialog from \"./ThietBiEditDialog\";\r\n\r\nconst server = require(\"../../lib/server.js\");\r\nconst myLib = require(\"../../lib/MyLib.js\");\r\n\r\nconst LoaiDoiTacNames = [\r\n \"Khác\",\r\n \"Tàu SAR\",\r\n \"Tàu hàng\",\r\n \"Tàu quốc phòng\",\r\n \"Tàu cá\",\r\n \"Máy bay\",\r\n \"\",\r\n];\r\n/*1-tau sar, 2-tau hang, 3-tau quoc phong,4-tau ca, 5-may bay, 6-khac*/\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"LoaiTB\", headerName: \"Mã số\", width: 80 },\r\n { field: \"TenLoaiTB\", headerName: \"Tên loại thiết bị\", width: 230 },\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass TauSarPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n search_loading: false,\r\n errorLog: \"\",\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_LoaiTB: undefined,\r\n showConfirmXoa: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.handleSearch();\r\n }\r\n handleSearch = () => {\r\n this.setState({ search_loading: true, errorLog: \"\" });\r\n server\r\n .query(\"thietbi/gettimkiem\")\r\n .then((response) => {\r\n response.map((item, index) => {\r\n item.id = index + 1;\r\n });\r\n this.setState({\r\n errorLog: \"\",\r\n search_loading: false,\r\n dataRows: response,\r\n totalRows: response.length,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n {this.state.search_loading ? : null}\r\n {this.state.errorLog !== \"\" ? this.state.errorLog : undefined}\r\n \r\n\r\n \r\n {\r\n console.log(params);\r\n this.setState({\r\n Editting_LoaiTB: params.data.LoaiTB,\r\n });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n this.setState({ open_them_sukien: true });\r\n }}\r\n />\r\n }\r\n text={\"Sửa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: true,\r\n });\r\n }}\r\n />\r\n \r\n {this.state.open_them_sukien ? (\r\n {\r\n this.setState({ open_them_sukien: false }, () =>\r\n this.handleSearch()\r\n );\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState(\r\n {\r\n open_edit_sukien: false,\r\n Editting_LoaiTB: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {\r\n if (result === true) this.handleSearch();\r\n }\r\n )\r\n }\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: \"100vh\",\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(TauSarPage);\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"../MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Moment from \"react-moment\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport MyButton from \"../MyButton\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nimport TaiKhoanEditDialog from \"./TaiKhoanEditDialog\";\r\n\r\nconst server = require(\"../../lib/server.js\");\r\nconst myLib = require(\"../../lib/MyLib.js\");\r\n\r\n/*1-tau sar, 2-tau hang, 3-tau quoc phong,4-tau ca, 5-may bay, 6-khac*/\r\nconst columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"UserName\", headerName: \"Tài khoản\", width: 150 },\r\n { field: \"TenCoQuan\", headerName: \"Cơ quan\", width: 250 },\r\n { field: \"NguoiCN\", headerName: \"Người CN\", width: 120 },\r\n {\r\n field: \"NgayCN\",\r\n headerName: \"Ngày CN\",\r\n width: 130,\r\n renderCell: (params) => (\r\n {params.getValue(\"NgayCN\")}\r\n ),\r\n },\r\n];\r\n\r\nclass TaiKhoanPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n search_loading: false,\r\n errorLog: \"\",\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_UserName: undefined,\r\n showConfirmXoa: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.handleSearch();\r\n }\r\n handleSearch = () => {\r\n this.setState({ search_loading: true, errorLog: \"\" });\r\n server\r\n .query(\"taikhoan/getall\")\r\n .then((response) => {\r\n response.map((item, index) => {\r\n item.id = index + 1;\r\n });\r\n this.setState({\r\n errorLog: \"\",\r\n search_loading: false,\r\n dataRows: response,\r\n totalRows: response.length,\r\n });\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n {this.state.search_loading ? : null}\r\n {this.state.errorLog !== \"\" ? this.state.errorLog : undefined}\r\n \r\n\r\n \r\n {\r\n console.log(params);\r\n this.setState({\r\n Editting_UserName: params.data,\r\n });\r\n }}\r\n />\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n this.setState({ open_them_sukien: true });\r\n }}\r\n />\r\n\r\n }\r\n text={\"Xóa\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: true,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Phân quyền\"}\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n \r\n {this.state.open_them_sukien ? (\r\n {\r\n this.setState({ open_them_sukien: false }, () =>\r\n this.handleSearch()\r\n );\r\n }}\r\n />\r\n ) : null}\r\n {this.state.open_edit_sukien ? (\r\n \r\n this.setState(\r\n {\r\n open_edit_sukien: false,\r\n Editting_UserName: undefined,\r\n Editting_MaCQ: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {\r\n if (result === true) this.handleSearch();\r\n }\r\n )\r\n }\r\n />\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n gridContainer: {\r\n height: \"100vh\",\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(TaiKhoanPage);\r\n","/*!\n * @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 - 2016\n * @version 1.3.4\n *\n * Date formatter utility library that allows formatting date/time variables or Date objects using PHP DateTime format.\n * @see http://php.net/manual/en/function.date.php\n *\n * For more JQuery plugins visit http://plugins.krajee.com\n * For more Yii related demos visit http://demos.krajee.com\n */\nimport jQuery from 'jquery';\nimport $ from 'jquery';\nimport moment from 'moment';\nvar DateFormatter;\nfunction test() {\n var t, e, r, n, a, u, i,\n u = 864e5, i = 3600, t = function(t, e) {\n return \"string\" == typeof t && \"string\" == typeof e && t.toLowerCase() === e.toLowerCase()\n }, e = function(t, r, n) {\n var a = n || \"0\",\n u = t.toString();\n return u.length < r ? e(a + u, r) : u;\n }, r = function(t) {\n var e, n;\n for (t = t || {}, e = 1; e < arguments.length; e++)\n if (n = arguments[e])\n for (var a in n) n.hasOwnProperty(a) && (\"object\" == typeof n[a] ? r(t[a], n[a]) : t[a] = n[a]);\n return t;\n }, n = function(t, e) {\n for (var r = 0; r < e.length; r++)\n if (e[r].toLowerCase() === t.toLowerCase()) return r;\n return -1;\n }, a = {\n dateSettings: {\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n daysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n monthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n meridiem: [\"AM\", \"PM\"],\n ordinal: function(t) {\n var e = t % 10,\n r = {\n 1: \"st\",\n 2: \"nd\",\n 3: \"rd\"\n };\n return 1 !== Math.floor(t % 100 / 10) && r[e] ? r[e] : \"th\"\n }\n },\n separators: /[ \\-+\\/\\.T:@]/g,\n validParts: /[dDjlNSwzWFmMntLoYyaABgGhHisueTIOPZcrU]/g,\n intParts: /[djwNzmnyYhHgGis]/g,\n tzParts: /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g,\n tzClip: /[^-+\\dA-Z]/g\n }, DateFormatter = function(t) {\n var e = this,n = r(a, t);\n\t\te.dateSettings = n.dateSettings;\n\t\te.separators = n.separators;\n\t\te.validParts = n.validParts;\n\t\te.intParts = n.intParts;\n\t\te.tzParts = n.tzParts;\n\t\te.tzClip = n.tzClip;\n }; DateFormatter.prototype = {\n constructor: DateFormatter,\n getMonth: function(t) {\n var e, r = this;\n return e = n(t, r.dateSettings.monthsShort) + 1, 0 === e && (e = n(t, r.dateSettings.months) + 1), e\n },\n parseDate: function(e, r) {\n var n, a, u, i, s, o, c, f, l, h, d = this,\n g = !1,\n m = !1,\n p = d.dateSettings,\n y = {\n date: null,\n year: null,\n month: null,\n day: null,\n hour: 0,\n min: 0,\n sec: 0\n };\n if (!e) return null;\n if (e instanceof Date) return e;\n if (\"U\" === r) return u = parseInt(e), u ? new Date(1e3 * u) : e;\n switch (typeof e) {\n case \"number\":\n return new Date(e);\n case \"string\":\n break;\n default:\n return null\n }\n if (n = r.match(d.validParts), !n || 0 === n.length) throw new Error(\"Invalid date format definition.\");\n for (a = e.replace(d.separators, \"\\x00\").split(\"\\x00\"), u = 0; u < a.length; u++) switch (i = a[u], s = parseInt(i), n[u]) {\n case \"y\":\n case \"Y\":\n if (!s) return null;\n\t\t\t\t\tl = i.length; \n\t\t\t\t\ty.year = 2 === l ? parseInt((70 > s ? \"20\" : \"19\") + i) : s;\n\t\t\t\t\tg = !0;\n break;\n case \"m\":\n case \"n\":\n case \"M\":\n case \"F\":\n if (isNaN(s)) {\n if (o = d.getMonth(i), !(o > 0)) return null;\n y.month = o\n } else {\n if (!(s >= 1 && 12 >= s)) return null;\n y.month = s\n }\n g = !0;\n break;\n case \"d\":\n case \"j\":\n if (!(s >= 1 && 31 >= s)) return null;\n\t\t\t\t\ty.day = s;\n\t\t\t\t\tg = !0;\n break;\n case \"g\":\n case \"h\": //sua\n\t\t\t\t\tif(c = n.indexOf(\"a\") > -1 ? n.indexOf(\"a\") : n.indexOf(\"A\") > -1 ? n.indexOf(\"A\") : -1, h = a[c], c > -1) \n\t\t\t\t\t{\n\t\t\t\t\t\tf = t(h, p.meridiem[0]) ? 0 : t(h, p.meridiem[1]) ? 12 : -1;\n\t\t\t\t\t\ts >= 1 && 12 >= s && f > -1 ? y.hour = s + f - 1 : s >= 0 && 23 >= s && (y.hour = s);\n\t\t\t\t\t}\n else {\n if (!(s >= 0 && 23 >= s)) return null;\n y.hour = s\n }\n m = !0;\n break;\n case \"G\":\n case \"H\":\n if (!(s >= 0 && 23 >= s)) return null;\n\t\t\t\t\ty.hour = s;\n\t\t\t\t\t m = !0;\n break;\n case \"i\":\n if (!(s >= 0 && 59 >= s)) return null;\n\t\t\t\t\ty.min = s;\n\t\t\t\t\t m = !0;\n break;\n case \"s\":\n if (!(s >= 0 && 59 >= s)) return null;\n\t\t\t\t\ty.sec = s;\n\t\t\t\t\t m = !0\n }\n if (g === !0 && y.year && y.month && y.day) y.date = new Date(y.year, y.month - 1, y.day, y.hour, y.min, y.sec, 0);\n else {\n if (m !== !0) return null;\n y.date = new Date(0, 0, 0, y.hour, y.min, y.sec, 0)\n }\n return y.date\n },\n guessDate: function(t, e) {\n if (\"string\" != typeof t) return t;\n var r, n, a, u, i, s, o = this,\n c = t.replace(o.separators, \"\\x00\").split(\"\\x00\"),\n f = /^[djmn]/g,\n l = e.match(o.validParts),\n h = new Date,\n d = 0;\n if (!f.test(l[0])) return t;\n for (a = 0; a < c.length; a++) {\n if (d = 2, i = c[a], s = parseInt(i.substr(0, 2)), isNaN(s)) return null;\n switch (a) {\n case 0:\n \"m\" === l[0] || \"n\" === l[0] ? h.setMonth(s - 1) : h.setDate(s);\n break;\n case 1:\n \"m\" === l[0] || \"n\" === l[0] ? h.setDate(s) : h.setMonth(s - 1);\n break;\n case 2:\n if (n = h.getFullYear(), r = i.length, d = 4 > r ? r : 4, n = parseInt(4 > r ? n.toString().substr(0, 4 - r) + i : i.substr(0, 4)), !n) return null;\n h.setFullYear(n);\n break;\n case 3:\n h.setHours(s);\n break;\n case 4:\n h.setMinutes(s);\n break;\n case 5:\n h.setSeconds(s)\n }\n\t\t\t\tu = i.substr(d);\n\t\t\t\tu.length > 0 && c.splice(a + 1, 0, u);\n }\n return h\n },\n parseFormat: function(t, r) {\n var n, a = this,\n s = a.dateSettings,\n o = /\\\\?(.?)/gi,\n c = function(t, e) {\n return n[t] ? n[t]() : e\n };\n return n = {\n d: function() {\n return e(n.j(), 2)\n },\n D: function() {\n return s.daysShort[n.w()]\n },\n j: function() {\n return r.getDate()\n },\n l: function() {\n return s.days[n.w()]\n },\n N: function() {\n return n.w() || 7\n },\n w: function() {\n return r.getDay()\n },\n z: function() {\n var t = new Date(n.Y(), n.n() - 1, n.j()),\n e = new Date(n.Y(), 0, 1);\n return Math.round((t - e) / u)\n },\n W: function() {\n var t = new Date(n.Y(), n.n() - 1, n.j() - n.N() + 3),\n r = new Date(t.getFullYear(), 0, 4);\n return e(1 + Math.round((t - r) / u / 7), 2)\n },\n F: function() {\n return s.months[r.getMonth()]\n },\n m: function() {\n return e(n.n(), 2)\n },\n M: function() {\n return s.monthsShort[r.getMonth()]\n },\n n: function() {\n return r.getMonth() + 1\n },\n t: function() {\n return new Date(n.Y(), n.n(), 0).getDate()\n },\n L: function() {\n var t = n.Y();\n return t % 4 === 0 && t % 100 !== 0 || t % 400 === 0 ? 1 : 0\n },\n o: function() {\n var t = n.n(),\n e = n.W(),\n r = n.Y();\n return r + (12 === t && 9 > e ? 1 : 1 === t && e > 9 ? -1 : 0)\n },\n Y: function() {\n return r.getFullYear()\n },\n y: function() {\n return n.Y().toString().slice(-2)\n },\n a: function() {\n return n.A().toLowerCase()\n },\n A: function() {\n var t = n.G() < 12 ? 0 : 1;\n return s.meridiem[t]\n },\n B: function() {\n var t = r.getUTCHours() * i,\n n = 60 * r.getUTCMinutes(),\n a = r.getUTCSeconds();\n return e(Math.floor((t + n + a + i) / 86.4) % 1e3, 3)\n },\n g: function() {\n return n.G() % 12 || 12\n },\n G: function() {\n return r.getHours()\n },\n h: function() {\n return e(n.g(), 2)\n },\n H: function() {\n return e(n.G(), 2)\n },\n i: function() {\n return e(r.getMinutes(), 2)\n },\n s: function() {\n return e(r.getSeconds(), 2)\n },\n u: function() {\n return e(1e3 * r.getMilliseconds(), 6)\n },\n e: function() {\n var t = /\\((.*)\\)/.exec(String(r))[1];\n return t || \"Coordinated Universal Time\"\n },\n I: function() {\n var t = new Date(n.Y(), 0),\n e = Date.UTC(n.Y(), 0),\n r = new Date(n.Y(), 6),\n a = Date.UTC(n.Y(), 6);\n return t - e !== r - a ? 1 : 0\n },\n O: function() {\n var t = r.getTimezoneOffset(),\n n = Math.abs(t);\n return (t > 0 ? \"-\" : \"+\") + e(100 * Math.floor(n / 60) + n % 60, 4)\n },\n P: function() {\n var t = n.O();\n return t.substr(0, 3) + \":\" + t.substr(3, 2)\n },\n T: function() {\n var t = (String(r).match(a.tzParts) || [\"\"]).pop().replace(a.tzClip, \"\");\n return t || \"UTC\"\n },\n Z: function() {\n return 60 * -r.getTimezoneOffset()\n },\n c: function() {\n return \"Y-m-d\\\\TH:i:sP\".replace(o, c)\n },\n r: function() {\n return \"D, d M Y H:i:s O\".replace(o, c)\n },\n U: function() {\n return r.getTime() / 1e3 || 0\n }\n }, c(t, t)\n },\n formatDate: function(t, e) {\n var r, n, a, u, i, s = this,\n o = \"\",\n c = \"\\\\\";\n if (\"string\" == typeof t && (t = s.parseDate(t, e), !t)) return null;\n if (t instanceof Date) {\n\t\t\t\tfor (a = e.length, r = 0; a > r; r++) \n\t\t\t\t{\n\t\t\t\t\ti = e.charAt(r);\n\t\t\t\t\t\"S\" !== i && i !== c && r > 0 && e.charAt(r - 1) === c ? o += i : (u = s.parseFormat(i, t));\n\t\t\t\t\tr !== a - 1 && s.intParts.test(i) && \"S\" === e.charAt(r + 1) && (n = parseInt(u) || 0);\n\t\t\t\t\tu += s.dateSettings.ordinal(n);\n\t\t\t\t\to += u;\n\t\t\t\t}\n return o\n }\n return \"\"\n }\n };\n};\ntest();\n/**\n/* @preserve jQuery DateTimePicker\n * @homepage http://xdsoft.net/jqplugins/datetimepicker/\n * @author Chupurnov Valeriy ()\n */\n\n/**\n * @param {jQuery} $\n */\nvar datetimepickerFactory = function ($) {\n\t'use strict';\n\n\tvar default_options = {\n\t\ti18n: {\n\t\t\tar: { // Arabic\n\t\t\t\tmonths: [\n\t\t\t\t\t\"كانون الثاني\", \"شباط\", \"آذار\", \"نيسان\", \"مايو\", \"حزيران\", \"تموز\", \"آب\", \"أيلول\", \"تشرين الأول\", \"تشرين الثاني\", \"كانون الأول\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"ن\", \"ث\", \"ع\", \"خ\", \"ج\", \"س\", \"ح\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"الأحد\", \"الاثنين\", \"الثلاثاء\", \"الأربعاء\", \"الخميس\", \"الجمعة\", \"السبت\", \"الأحد\"]\n\t\t\t},\n\t\t\tro: { // Romanian\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Ianuarie\", \"Februarie\", \"Martie\", \"Aprilie\", \"Mai\", \"Iunie\", \"Iulie\", \"August\", \"Septembrie\", \"Octombrie\", \"Noiembrie\", \"Decembrie\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Du\", \"Lu\", \"Ma\", \"Mi\", \"Jo\", \"Vi\", \"Sâ\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Duminică\", \"Luni\", \"Marţi\", \"Miercuri\", \"Joi\", \"Vineri\", \"Sâmbătă\"]\n\t\t\t},\n\t\t\tid: { // Indonesian\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Januari\", \"Februari\", \"Maret\", \"April\", \"Mei\", \"Juni\", \"Juli\", \"Agustus\", \"September\", \"Oktober\", \"November\", \"Desember\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Min\", \"Sen\", \"Sel\", \"Rab\", \"Kam\", \"Jum\", \"Sab\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Minggu\", \"Senin\", \"Selasa\", \"Rabu\", \"Kamis\", \"Jumat\", \"Sabtu\"]\n\t\t\t},\n\t\t\tis: { // Icelandic\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Janúar\", \"Febrúar\", \"Mars\", \"Apríl\", \"Maí\", \"Júní\", \"Júlí\", \"Ágúst\", \"September\", \"Október\", \"Nóvember\", \"Desember\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Sun\", \"Mán\", \"Þrið\", \"Mið\", \"Fim\", \"Fös\", \"Lau\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Sunnudagur\", \"Mánudagur\", \"Þriðjudagur\", \"Miðvikudagur\", \"Fimmtudagur\", \"Föstudagur\", \"Laugardagur\"]\n\t\t\t},\n\t\t\tbg: { // Bulgarian\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Януари\", \"Февруари\", \"Март\", \"Април\", \"Май\", \"Юни\", \"Юли\", \"Август\", \"Септември\", \"Октомври\", \"Ноември\", \"Декември\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Нд\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Неделя\", \"Понеделник\", \"Вторник\", \"Сряда\", \"Четвъртък\", \"Петък\", \"Събота\"]\n\t\t\t},\n\t\t\tfa: { // Persian/Farsi\n\t\t\t\tmonths: [\n\t\t\t\t\t'فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t'یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"یک‌شنبه\", \"دوشنبه\", \"سه‌شنبه\", \"چهارشنبه\", \"پنج‌شنبه\", \"جمعه\", \"شنبه\", \"یک‌شنبه\"]\n\t\t\t},\n\t\t\tru: { // Russian\n\t\t\t\tmonths: [\n\t\t\t\t\t'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Вс\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Воскресенье\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"Пятница\", \"Суббота\"]\n\t\t\t},\n\t\t\tuk: { // Ukrainian\n\t\t\t\tmonths: [\n\t\t\t\t\t'Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Ндл\", \"Пнд\", \"Втр\", \"Срд\", \"Чтв\", \"Птн\", \"Сбт\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Неділя\", \"Понеділок\", \"Вівторок\", \"Середа\", \"Четвер\", \"П'ятниця\", \"Субота\"]\n\t\t\t},\n\t\t\ten: { // English\n\t\t\t\tmonths: [\n\t\t\t\t\t\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\n\t\t\t},\n\t\t\tel: { // Ελληνικά\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Ιανουάριος\", \"Φεβρουάριος\", \"Μάρτιος\", \"Απρίλιος\", \"Μάιος\", \"Ιούνιος\", \"Ιούλιος\", \"Αύγουστος\", \"Σεπτέμβριος\", \"Οκτώβριος\", \"Νοέμβριος\", \"Δεκέμβριος\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Κυρ\", \"Δευ\", \"Τρι\", \"Τετ\", \"Πεμ\", \"Παρ\", \"Σαβ\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Κυριακή\", \"Δευτέρα\", \"Τρίτη\", \"Τετάρτη\", \"Πέμπτη\", \"Παρασκευή\", \"Σάββατο\"]\n\t\t\t},\n\t\t\tde: { // German\n\t\t\t\tmonths: [\n\t\t\t\t\t'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Sonntag\", \"Montag\", \"Dienstag\", \"Mittwoch\", \"Donnerstag\", \"Freitag\", \"Samstag\"]\n\t\t\t},\n\t\t\tnl: { // Dutch\n\t\t\t\tmonths: [\n\t\t\t\t\t\"januari\", \"februari\", \"maart\", \"april\", \"mei\", \"juni\", \"juli\", \"augustus\", \"september\", \"oktober\", \"november\", \"december\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"zo\", \"ma\", \"di\", \"wo\", \"do\", \"vr\", \"za\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"zondag\", \"maandag\", \"dinsdag\", \"woensdag\", \"donderdag\", \"vrijdag\", \"zaterdag\"]\n\t\t\t},\n\t\t\ttr: { // Turkish\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Ocak\", \"Şubat\", \"Mart\", \"Nisan\", \"Mayıs\", \"Haziran\", \"Temmuz\", \"Ağustos\", \"Eylül\", \"Ekim\", \"Kasım\", \"Aralık\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Paz\", \"Pts\", \"Sal\", \"Çar\", \"Per\", \"Cum\", \"Cts\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Pazar\", \"Pazartesi\", \"Salı\", \"Çarşamba\", \"Perşembe\", \"Cuma\", \"Cumartesi\"]\n\t\t\t},\n\t\t\tfr: { //French\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Janvier\", \"Février\", \"Mars\", \"Avril\", \"Mai\", \"Juin\", \"Juillet\", \"Août\", \"Septembre\", \"Octobre\", \"Novembre\", \"Décembre\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Dim\", \"Lun\", \"Mar\", \"Mer\", \"Jeu\", \"Ven\", \"Sam\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"dimanche\", \"lundi\", \"mardi\", \"mercredi\", \"jeudi\", \"vendredi\", \"samedi\"]\n\t\t\t},\n\t\t\tes: { // Spanish\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Dom\", \"Lun\", \"Mar\", \"Mié\", \"Jue\", \"Vie\", \"Sáb\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Domingo\", \"Lunes\", \"Martes\", \"Miércoles\", \"Jueves\", \"Viernes\", \"Sábado\"]\n\t\t\t},\n\t\t\tth: { // Thai\n\t\t\t\tmonths: [\n\t\t\t\t\t'มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม'\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t'อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"อาทิตย์\", \"จันทร์\", \"อังคาร\", \"พุธ\", \"พฤหัส\", \"ศุกร์\", \"เสาร์\", \"อาทิตย์\"]\n\t\t\t},\n\t\t\tpl: { // Polish\n\t\t\t\tmonths: [\n\t\t\t\t\t\"styczeń\", \"luty\", \"marzec\", \"kwiecień\", \"maj\", \"czerwiec\", \"lipiec\", \"sierpień\", \"wrzesień\", \"październik\", \"listopad\", \"grudzień\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"nd\", \"pn\", \"wt\", \"śr\", \"cz\", \"pt\", \"sb\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"niedziela\", \"poniedziałek\", \"wtorek\", \"środa\", \"czwartek\", \"piątek\", \"sobota\"]\n\t\t\t},\n\t\t\tpt: { // Portuguese\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sab\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\"]\n\t\t\t},\n\t\t\tch: { // Simplified Chinese\n\t\t\t\tmonths: [\n\t\t\t\t\t\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"\n\t\t\t\t]\n\t\t\t},\n\t\t\tse: { // Swedish\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Januari\", \"Februari\", \"Mars\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"Augusti\", \"September\", \"Oktober\", \"November\", \"December\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Sön\", \"Mån\", \"Tis\", \"Ons\", \"Tor\", \"Fre\", \"Lör\"\n\t\t\t\t]\n\t\t\t},\n\t\t\tkm: { // Khmer (ភាសាខ្មែរ)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"មករា​\", \"កុម្ភៈ\", \"មិនា​\", \"មេសា​\", \"ឧសភា​\", \"មិថុនា​\", \"កក្កដា​\", \"សីហា​\", \"កញ្ញា​\", \"តុលា​\", \"វិច្ឆិកា\", \"ធ្នូ​\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\"អាទិ​\", \"ច័ន្ទ​\", \"អង្គារ​\", \"ពុធ​\", \"ព្រហ​​\", \"សុក្រ​\", \"សៅរ៍\"],\n\t\t\t\tdayOfWeek: [\"អាទិត្យ​\", \"ច័ន្ទ​\", \"អង្គារ​\", \"ពុធ​\", \"ព្រហស្បតិ៍​\", \"សុក្រ​\", \"សៅរ៍\"]\n\t\t\t},\n\t\t\tkr: { // Korean\n\t\t\t\tmonths: [\n\t\t\t\t\t\"1월\", \"2월\", \"3월\", \"4월\", \"5월\", \"6월\", \"7월\", \"8월\", \"9월\", \"10월\", \"11월\", \"12월\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"일요일\", \"월요일\", \"화요일\", \"수요일\", \"목요일\", \"금요일\", \"토요일\"]\n\t\t\t},\n\t\t\tit: { // Italian\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Gennaio\", \"Febbraio\", \"Marzo\", \"Aprile\", \"Maggio\", \"Giugno\", \"Luglio\", \"Agosto\", \"Settembre\", \"Ottobre\", \"Novembre\", \"Dicembre\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Dom\", \"Lun\", \"Mar\", \"Mer\", \"Gio\", \"Ven\", \"Sab\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Domenica\", \"Lunedì\", \"Martedì\", \"Mercoledì\", \"Giovedì\", \"Venerdì\", \"Sabato\"]\n\t\t\t},\n\t\t\tda: { // Dansk\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Januar\", \"Februar\", \"Marts\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"December\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Søn\", \"Man\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"søndag\", \"mandag\", \"tirsdag\", \"onsdag\", \"torsdag\", \"fredag\", \"lørdag\"]\n\t\t\t},\n\t\t\tno: { // Norwegian\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Januar\", \"Februar\", \"Mars\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Desember\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Søn\", \"Man\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag']\n\t\t\t},\n\t\t\tja: { // Japanese\n\t\t\t\tmonths: [\n\t\t\t\t\t\"1月\", \"2月\", \"3月\", \"4月\", \"5月\", \"6月\", \"7月\", \"8月\", \"9月\", \"10月\", \"11月\", \"12月\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"日曜\", \"月曜\", \"火曜\", \"水曜\", \"木曜\", \"金曜\", \"土曜\"]\n\t\t\t},\n\t\t\tvi: { // Vietnamese\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Tháng 1\", \"Tháng 2\", \"Tháng 3\", \"Tháng 4\", \"Tháng 5\", \"Tháng 6\", \"Tháng 7\", \"Tháng 8\", \"Tháng 9\", \"Tháng 10\", \"Tháng 11\", \"Tháng 12\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"CN\", \"T2\", \"T3\", \"T4\", \"T5\", \"T6\", \"T7\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Chủ nhật\", \"Thứ hai\", \"Thứ ba\", \"Thứ tư\", \"Thứ năm\", \"Thứ sáu\", \"Thứ bảy\"]\n\t\t\t},\n\t\t\tsl: { // Slovenščina\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Januar\", \"Februar\", \"Marec\", \"April\", \"Maj\", \"Junij\", \"Julij\", \"Avgust\", \"September\", \"Oktober\", \"November\", \"December\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Ned\", \"Pon\", \"Tor\", \"Sre\", \"Čet\", \"Pet\", \"Sob\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Nedelja\", \"Ponedeljek\", \"Torek\", \"Sreda\", \"Četrtek\", \"Petek\", \"Sobota\"]\n\t\t\t},\n\t\t\tcs: { // Čeština\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Leden\", \"Únor\", \"Březen\", \"Duben\", \"Květen\", \"Červen\", \"Červenec\", \"Srpen\", \"Září\", \"Říjen\", \"Listopad\", \"Prosinec\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Ne\", \"Po\", \"Út\", \"St\", \"Čt\", \"Pá\", \"So\"\n\t\t\t\t]\n\t\t\t},\n\t\t\thu: { // Hungarian\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Január\", \"Február\", \"Március\", \"Április\", \"Május\", \"Június\", \"Július\", \"Augusztus\", \"Szeptember\", \"Október\", \"November\", \"December\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Va\", \"Hé\", \"Ke\", \"Sze\", \"Cs\", \"Pé\", \"Szo\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"vasárnap\", \"hétfő\", \"kedd\", \"szerda\", \"csütörtök\", \"péntek\", \"szombat\"]\n\t\t\t},\n\t\t\taz: { //Azerbaijanian (Azeri)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Yanvar\", \"Fevral\", \"Mart\", \"Aprel\", \"May\", \"Iyun\", \"Iyul\", \"Avqust\", \"Sentyabr\", \"Oktyabr\", \"Noyabr\", \"Dekabr\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"B\", \"Be\", \"Ça\", \"Ç\", \"Ca\", \"C\", \"Ş\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Bazar\", \"Bazar ertəsi\", \"Çərşənbə axşamı\", \"Çərşənbə\", \"Cümə axşamı\", \"Cümə\", \"Şənbə\"]\n\t\t\t},\n\t\t\tbs: { //Bosanski\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Januar\", \"Februar\", \"Mart\", \"April\", \"Maj\", \"Jun\", \"Jul\", \"Avgust\", \"Septembar\", \"Oktobar\", \"Novembar\", \"Decembar\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Ned\", \"Pon\", \"Uto\", \"Sri\", \"Čet\", \"Pet\", \"Sub\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Nedjelja\",\"Ponedjeljak\", \"Utorak\", \"Srijeda\", \"Četvrtak\", \"Petak\", \"Subota\"]\n\t\t\t},\n\t\t\tca: { //Català\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Gener\", \"Febrer\", \"Març\", \"Abril\", \"Maig\", \"Juny\", \"Juliol\", \"Agost\", \"Setembre\", \"Octubre\", \"Novembre\", \"Desembre\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Dg\", \"Dl\", \"Dt\", \"Dc\", \"Dj\", \"Dv\", \"Ds\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Diumenge\", \"Dilluns\", \"Dimarts\", \"Dimecres\", \"Dijous\", \"Divendres\", \"Dissabte\"]\n\t\t\t},\n\t\t\t'en-GB': { //English (British)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\n\t\t\t},\n\t\t\tet: { //\"Eesti\"\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Jaanuar\", \"Veebruar\", \"Märts\", \"Aprill\", \"Mai\", \"Juuni\", \"Juuli\", \"August\", \"September\", \"Oktoober\", \"November\", \"Detsember\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"P\", \"E\", \"T\", \"K\", \"N\", \"R\", \"L\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Pühapäev\", \"Esmaspäev\", \"Teisipäev\", \"Kolmapäev\", \"Neljapäev\", \"Reede\", \"Laupäev\"]\n\t\t\t},\n\t\t\teu: { //Euskara\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Urtarrila\", \"Otsaila\", \"Martxoa\", \"Apirila\", \"Maiatza\", \"Ekaina\", \"Uztaila\", \"Abuztua\", \"Iraila\", \"Urria\", \"Azaroa\", \"Abendua\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Ig.\", \"Al.\", \"Ar.\", \"Az.\", \"Og.\", \"Or.\", \"La.\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: ['Igandea', 'Astelehena', 'Asteartea', 'Asteazkena', 'Osteguna', 'Ostirala', 'Larunbata']\n\t\t\t},\n\t\t\tfi: { //Finnish (Suomi)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Tammikuu\", \"Helmikuu\", \"Maaliskuu\", \"Huhtikuu\", \"Toukokuu\", \"Kesäkuu\", \"Heinäkuu\", \"Elokuu\", \"Syyskuu\", \"Lokakuu\", \"Marraskuu\", \"Joulukuu\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Su\", \"Ma\", \"Ti\", \"Ke\", \"To\", \"Pe\", \"La\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"sunnuntai\", \"maanantai\", \"tiistai\", \"keskiviikko\", \"torstai\", \"perjantai\", \"lauantai\"]\n\t\t\t},\n\t\t\tgl: { //Galego\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Xan\", \"Feb\", \"Maz\", \"Abr\", \"Mai\", \"Xun\", \"Xul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dec\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Dom\", \"Lun\", \"Mar\", \"Mer\", \"Xov\", \"Ven\", \"Sab\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Domingo\", \"Luns\", \"Martes\", \"Mércores\", \"Xoves\", \"Venres\", \"Sábado\"]\n\t\t\t},\n\t\t\thr: { //Hrvatski\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Siječanj\", \"Veljača\", \"Ožujak\", \"Travanj\", \"Svibanj\", \"Lipanj\", \"Srpanj\", \"Kolovoz\", \"Rujan\", \"Listopad\", \"Studeni\", \"Prosinac\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Ned\", \"Pon\", \"Uto\", \"Sri\", \"Čet\", \"Pet\", \"Sub\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Nedjelja\", \"Ponedjeljak\", \"Utorak\", \"Srijeda\", \"Četvrtak\", \"Petak\", \"Subota\"]\n\t\t\t},\n\t\t\tko: { //Korean (한국어)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"1월\", \"2월\", \"3월\", \"4월\", \"5월\", \"6월\", \"7월\", \"8월\", \"9월\", \"10월\", \"11월\", \"12월\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"일요일\", \"월요일\", \"화요일\", \"수요일\", \"목요일\", \"금요일\", \"토요일\"]\n\t\t\t},\n\t\t\tlt: { //Lithuanian (lietuvių)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Sausio\", \"Vasario\", \"Kovo\", \"Balandžio\", \"Gegužės\", \"Birželio\", \"Liepos\", \"Rugpjūčio\", \"Rugsėjo\", \"Spalio\", \"Lapkričio\", \"Gruodžio\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Sek\", \"Pir\", \"Ant\", \"Tre\", \"Ket\", \"Pen\", \"Šeš\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Sekmadienis\", \"Pirmadienis\", \"Antradienis\", \"Trečiadienis\", \"Ketvirtadienis\", \"Penktadienis\", \"Šeštadienis\"]\n\t\t\t},\n\t\t\tlv: { //Latvian (Latviešu)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Janvāris\", \"Februāris\", \"Marts\", \"Aprīlis \", \"Maijs\", \"Jūnijs\", \"Jūlijs\", \"Augusts\", \"Septembris\", \"Oktobris\", \"Novembris\", \"Decembris\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Sv\", \"Pr\", \"Ot\", \"Tr\", \"Ct\", \"Pk\", \"St\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Svētdiena\", \"Pirmdiena\", \"Otrdiena\", \"Trešdiena\", \"Ceturtdiena\", \"Piektdiena\", \"Sestdiena\"]\n\t\t\t},\n\t\t\tmk: { //Macedonian (Македонски)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"јануари\", \"февруари\", \"март\", \"април\", \"мај\", \"јуни\", \"јули\", \"август\", \"септември\", \"октомври\", \"ноември\", \"декември\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"нед\", \"пон\", \"вто\", \"сре\", \"чет\", \"пет\", \"саб\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Недела\", \"Понеделник\", \"Вторник\", \"Среда\", \"Четврток\", \"Петок\", \"Сабота\"]\n\t\t\t},\n\t\t\tmn: { //Mongolian (Монгол)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"1-р сар\", \"2-р сар\", \"3-р сар\", \"4-р сар\", \"5-р сар\", \"6-р сар\", \"7-р сар\", \"8-р сар\", \"9-р сар\", \"10-р сар\", \"11-р сар\", \"12-р сар\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Дав\", \"Мяг\", \"Лха\", \"Пүр\", \"Бсн\", \"Бям\", \"Ням\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Даваа\", \"Мягмар\", \"Лхагва\", \"Пүрэв\", \"Баасан\", \"Бямба\", \"Ням\"]\n\t\t\t},\n\t\t\t'pt-BR': { //Português(Brasil)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\"]\n\t\t\t},\n\t\t\tsk: { //Slovenčina\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Január\", \"Február\", \"Marec\", \"Apríl\", \"Máj\", \"Jún\", \"Júl\", \"August\", \"September\", \"Október\", \"November\", \"December\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Ne\", \"Po\", \"Ut\", \"St\", \"Št\", \"Pi\", \"So\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Nedeľa\", \"Pondelok\", \"Utorok\", \"Streda\", \"Štvrtok\", \"Piatok\", \"Sobota\"]\n\t\t\t},\n\t\t\tsq: { //Albanian (Shqip)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Janar\", \"Shkurt\", \"Mars\", \"Prill\", \"Maj\", \"Qershor\", \"Korrik\", \"Gusht\", \"Shtator\", \"Tetor\", \"Nëntor\", \"Dhjetor\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Die\", \"Hën\", \"Mar\", \"Mër\", \"Enj\", \"Pre\", \"Shtu\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"E Diel\", \"E Hënë\", \"E Martē\", \"E Mërkurë\", \"E Enjte\", \"E Premte\", \"E Shtunë\"]\n\t\t\t},\n\t\t\t'sr-YU': { //Serbian (Srpski)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Januar\", \"Februar\", \"Mart\", \"April\", \"Maj\", \"Jun\", \"Jul\", \"Avgust\", \"Septembar\", \"Oktobar\", \"Novembar\", \"Decembar\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Ned\", \"Pon\", \"Uto\", \"Sre\", \"čet\", \"Pet\", \"Sub\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Nedelja\",\"Ponedeljak\", \"Utorak\", \"Sreda\", \"Četvrtak\", \"Petak\", \"Subota\"]\n\t\t\t},\n\t\t\tsr: { //Serbian Cyrillic (Српски)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"јануар\", \"фебруар\", \"март\", \"април\", \"мај\", \"јун\", \"јул\", \"август\", \"септембар\", \"октобар\", \"новембар\", \"децембар\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"нед\", \"пон\", \"уто\", \"сре\", \"чет\", \"пет\", \"суб\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Недеља\",\"Понедељак\", \"Уторак\", \"Среда\", \"Четвртак\", \"Петак\", \"Субота\"]\n\t\t\t},\n\t\t\tsv: { //Svenska\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Januari\", \"Februari\", \"Mars\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"Augusti\", \"September\", \"Oktober\", \"November\", \"December\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Sön\", \"Mån\", \"Tis\", \"Ons\", \"Tor\", \"Fre\", \"Lör\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Söndag\", \"Måndag\", \"Tisdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lördag\"]\n\t\t\t},\n\t\t\t'zh-TW': { //Traditional Chinese (繁體中文)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\"]\n\t\t\t},\n\t\t\tzh: { //Simplified Chinese (简体中文)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\"]\n\t\t\t},\n\t\t\tug:{ // Uyghur(ئۇيغۇرچە)\n\t\t\t\tmonths: [\n\t\t\t\t\t\"1-ئاي\",\"2-ئاي\",\"3-ئاي\",\"4-ئاي\",\"5-ئاي\",\"6-ئاي\",\"7-ئاي\",\"8-ئاي\",\"9-ئاي\",\"10-ئاي\",\"11-ئاي\",\"12-ئاي\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\n\t\t\t\t\t\"يەكشەنبە\", \"دۈشەنبە\",\"سەيشەنبە\",\"چارشەنبە\",\"پەيشەنبە\",\"جۈمە\",\"شەنبە\"\n\t\t\t\t]\n\t\t\t},\n\t\t\the: { //Hebrew (עברית)\n\t\t\t\tmonths: [\n\t\t\t\t\t'ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t'א\\'', 'ב\\'', 'ג\\'', 'ד\\'', 'ה\\'', 'ו\\'', 'שבת'\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"ראשון\", \"שני\", \"שלישי\", \"רביעי\", \"חמישי\", \"שישי\", \"שבת\", \"ראשון\"]\n\t\t\t},\n\t\t\thy: { // Armenian\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Հունվար\", \"Փետրվար\", \"Մարտ\", \"Ապրիլ\", \"Մայիս\", \"Հունիս\", \"Հուլիս\", \"Օգոստոս\", \"Սեպտեմբեր\", \"Հոկտեմբեր\", \"Նոյեմբեր\", \"Դեկտեմբեր\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Կի\", \"Երկ\", \"Երք\", \"Չոր\", \"Հնգ\", \"Ուրբ\", \"Շբթ\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"Կիրակի\", \"Երկուշաբթի\", \"Երեքշաբթի\", \"Չորեքշաբթի\", \"Հինգշաբթի\", \"Ուրբաթ\", \"Շաբաթ\"]\n\t\t\t},\n\t\t\tkg: { // Kyrgyz\n\t\t\t\tmonths: [\n\t\t\t\t\t'Үчтүн айы', 'Бирдин айы', 'Жалган Куран', 'Чын Куран', 'Бугу', 'Кулжа', 'Теке', 'Баш Оона', 'Аяк Оона', 'Тогуздун айы', 'Жетинин айы', 'Бештин айы'\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Жек\", \"Дүй\", \"Шей\", \"Шар\", \"Бей\", \"Жум\", \"Ише\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\n\t\t\t\t\t\"Жекшемб\", \"Дүйшөмб\", \"Шейшемб\", \"Шаршемб\", \"Бейшемби\", \"Жума\", \"Ишенб\"\n\t\t\t\t]\n\t\t\t},\n\t\t\trm: { // Romansh\n\t\t\t\tmonths: [\n\t\t\t\t\t\"Schaner\", \"Favrer\", \"Mars\", \"Avrigl\", \"Matg\", \"Zercladur\", \"Fanadur\", \"Avust\", \"Settember\", \"October\", \"November\", \"December\"\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"Du\", \"Gli\", \"Ma\", \"Me\", \"Gie\", \"Ve\", \"So\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\n\t\t\t\t\t\"Dumengia\", \"Glindesdi\", \"Mardi\", \"Mesemna\", \"Gievgia\", \"Venderdi\", \"Sonda\"\n\t\t\t\t]\n\t\t\t},\n\t\t\tka: { // Georgian\n\t\t\t\tmonths: [\n\t\t\t\t\t'იანვარი', 'თებერვალი', 'მარტი', 'აპრილი', 'მაისი', 'ივნისი', 'ივლისი', 'აგვისტო', 'სექტემბერი', 'ოქტომბერი', 'ნოემბერი', 'დეკემბერი'\n\t\t\t\t],\n\t\t\t\tdayOfWeekShort: [\n\t\t\t\t\t\"კვ\", \"ორშ\", \"სამშ\", \"ოთხ\", \"ხუთ\", \"პარ\", \"შაბ\"\n\t\t\t\t],\n\t\t\t\tdayOfWeek: [\"კვირა\", \"ორშაბათი\", \"სამშაბათი\", \"ოთხშაბათი\", \"ხუთშაბათი\", \"პარასკევი\", \"შაბათი\"]\n\t\t\t}\n\t\t},\n\n\t\townerDocument: document,\n\t\tcontentWindow: window,\n\n\t\tvalue: '',\n\t\trtl: false,\n\n\t\tformat:\t'Y/m/d H:i',\n\t\tformatTime:\t'H:i',\n\t\tformatDate:\t'Y/m/d',\n\n\t\tstartDate:\tfalse, // new Date(), '1986/12/08', '-1970/01/05','-1970/01/05',\n\t\tstep: 60,\n\t\tmonthChangeSpinner: true,\n\n\t\tcloseOnDateSelect: false,\n\t\tcloseOnTimeSelect: true,\n\t\tcloseOnWithoutClick: true,\n\t\tcloseOnInputClick: true,\n\t\topenOnFocus: true,\n\n\t\ttimepicker: true,\n\t\tdatepicker: true,\n\t\tweeks: false,\n\n\t\tdefaultTime: false,\t// use formatTime format (ex. '10:00' for formatTime:\t'H:i')\n\t\tdefaultDate: false,\t// use formatDate format (ex new Date() or '1986/12/08' or '-1970/01/05' or '-1970/01/05')\n\n\t\tminDate: false,\n\t\tmaxDate: false,\n\t\tminTime: false,\n\t\tmaxTime: false,\n\t\tminDateTime: false,\n\t\tmaxDateTime: false,\n\n\t\tallowTimes: [],\n\t\topened: false,\n\t\tinitTime: true,\n\t\tinline: false,\n\t\ttheme: '',\n\t\ttouchMovedThreshold: 5,\n\n\t\tonSelectDate: function () {},\n\t\tonSelectTime: function () {},\n\t\tonChangeMonth: function () {},\n\t\tonGetWeekOfYear: function () {},\n\t\tonChangeYear: function () {},\n\t\tonChangeDateTime: function () {},\n\t\tonShow: function () {},\n\t\tonClose: function () {},\n\t\tonGenerate: function () {},\n\n\t\twithoutCopyright: true,\n\t\tinverseButton: false,\n\t\thours12: false,\n\t\tnext: 'xdsoft_next',\n\t\tprev : 'xdsoft_prev',\n\t\tdayOfWeekStart: 0,\n\t\tparentID: 'body',\n\t\ttimeHeightInTimePicker: 25,\n\t\ttimepickerScrollbar: true,\n\t\ttodayButton: true,\n\t\tprevButton: true,\n\t\tnextButton: true,\n\t\tdefaultSelect: true,\n\n\t\tscrollMonth: true,\n\t\tscrollTime: true,\n\t\tscrollInput: true,\n\n\t\tlazyInit: false,\n\t\tmask: false,\n\t\tvalidateOnBlur: true,\n\t\tallowBlank: true,\n\t\tyearStart: 1950,\n\t\tyearEnd: 2050,\n\t\tmonthStart: 0,\n\t\tmonthEnd: 11,\n\t\tstyle: '',\n\t\tid: '',\n\t\tfixed: false,\n\t\troundTime: 'round', // ceil, floor\n\t\tclassName: '',\n\t\tweekends: [],\n\t\thighlightedDates: [],\n\t\thighlightedPeriods: [],\n\t\tallowDates : [],\n\t\tallowDateRe : null,\n\t\tdisabledDates : [],\n\t\tdisabledWeekDays: [],\n\t\tyearOffset: 0,\n\t\tbeforeShowDay: null,\n\n\t\tenterLikeTab: true,\n showApplyButton: false,\n insideParent: false,\n\t};\n\n\tvar dateHelper = null,\n\t\tdefaultDateHelper = null,\n\t\tglobalLocaleDefault = 'en',\n\t\tglobalLocale = 'en';\n\n\tvar dateFormatterOptionsDefault = {\n\t\tmeridiem: ['AM', 'PM']\n\t};\n\n\tvar initDateFormatter = function(){\n\t\tvar locale = default_options.i18n[globalLocale],\n\t\t\topts = {\n\t\t\t\tdays: locale.dayOfWeek,\n\t\t\t\tdaysShort: locale.dayOfWeekShort,\n\t\t\t\tmonths: locale.months,\n\t\t\t\tmonthsShort: $.map(locale.months, function(n){ return n.substring(0, 3) })\n\t\t\t};\n\n\t\tif (typeof DateFormatter === 'function') {\n\t\t\tdateHelper = defaultDateHelper = new DateFormatter({\n\t\t\t\tdateSettings: $.extend({}, dateFormatterOptionsDefault, opts)\n\t\t\t});\n\t\t}\n\t};\n\n\tvar dateFormatters = {\n\t\tmoment: {\n\t\t\tdefault_options:{\n\t\t\t\tformat: 'YYYY/MM/DD HH:mm',\n\t\t\t\tformatDate: 'YYYY/MM/DD',\n\t\t\t\tformatTime: 'HH:mm',\n\t\t\t},\n\t\t\tformatter: {\n\t\t\t\tparseDate: function (date, format) {\n\t\t\t\t\tif(isFormatStandard(format)){\n\t\t\t\t\t\treturn defaultDateHelper.parseDate(date, format);\n\t\t\t\t\t} \n\t\t\t\t\tvar d = moment(date, format);\n\t\t\t\t\treturn d.isValid() ? d.toDate() : false;\n\t\t\t\t},\n\n\t\t\t\tformatDate: function (date, format) {\n\t\t\t\t\tif(isFormatStandard(format)){\n\t\t\t\t\t\treturn defaultDateHelper.formatDate(date, format);\n\t\t\t\t\t} \n\t\t\t\t\treturn moment(date).format(format);\n\t\t\t\t},\n\n\t\t\t\tformatMask: function(format){\n\t\t\t\t\treturn format\n\t\t\t\t\t\t.replace(/Y{4}/g, '9999')\n\t\t\t\t\t\t.replace(/Y{2}/g, '99')\n\t\t\t\t\t\t.replace(/M{2}/g, '19')\n\t\t\t\t\t\t.replace(/D{2}/g, '39')\n\t\t\t\t\t\t.replace(/H{2}/g, '29')\n\t\t\t\t\t\t.replace(/m{2}/g, '59')\n\t\t\t\t\t\t.replace(/s{2}/g, '59');\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\t// for locale settings\n\t$.datetimepicker = {\n\t\tsetLocale: function(locale){\n\t\t\tvar newLocale = default_options.i18n[locale] ? locale : globalLocaleDefault;\n\t\t\tif (globalLocale !== newLocale) {\n\t\t\t\tglobalLocale = newLocale;\n\t\t\t\t// reinit date formatter\n\t\t\t\tinitDateFormatter();\n\t\t\t}\n\t\t},\n\n\t\tsetDateFormatter: function(dateFormatter) {\n\t\t\tif(typeof dateFormatter === 'string' && dateFormatters.hasOwnProperty(dateFormatter)){\n\t\t\t\tvar df = dateFormatters[dateFormatter];\n\t\t\t\t$.extend(default_options, df.default_options);\n\t\t\t\tdateHelper = df.formatter; \n\t\t\t}\n\t\t\telse {\n\t\t\t\tdateHelper = dateFormatter;\n\t\t\t}\n\t\t},\n\t};\n\n\tvar standardFormats = {\n\t\tRFC_2822: 'D, d M Y H:i:s O',\n\t\tATOM: 'Y-m-d\\TH:i:sP',\n\t\tISO_8601: 'Y-m-d\\TH:i:sO',\n\t\tRFC_822: 'D, d M y H:i:s O',\n\t\tRFC_850: 'l, d-M-y H:i:s T',\n\t\tRFC_1036: 'D, d M y H:i:s O',\n\t\tRFC_1123: 'D, d M Y H:i:s O',\n\t\tRSS: 'D, d M Y H:i:s O',\n\t\tW3C: 'Y-m-d\\TH:i:sP'\n\t}\n\n\tvar isFormatStandard = function(format){\n\t\treturn Object.values(standardFormats).indexOf(format) === -1 ? false : true;\n\t}\n\n\t$.extend($.datetimepicker, standardFormats);\n\n\t// first init date formatter\n\tinitDateFormatter();\n\n\t// fix for ie8\n\tif (!window.getComputedStyle) {\n\t\twindow.getComputedStyle = function (el) {\n\t\t\tthis.el = el;\n\t\t\tthis.getPropertyValue = function (prop) {\n\t\t\t\tvar re = /(-([a-z]))/g;\n\t\t\t\tif (prop === 'float') {\n\t\t\t\t\tprop = 'styleFloat';\n\t\t\t\t}\n\t\t\t\tif (re.test(prop)) {\n\t\t\t\t\tprop = prop.replace(re, function (a, b, c) {\n\t\t\t\t\t\treturn c.toUpperCase();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn el.currentStyle[prop] || null;\n\t\t\t};\n\t\t\treturn this;\n\t\t};\n\t}\n\tif (!Array.prototype.indexOf) {\n\t\tArray.prototype.indexOf = function (obj, start) {\n\t\t\tvar i, j;\n\t\t\tfor (i = (start || 0), j = this.length; i < j; i += 1) {\n\t\t\t\tif (this[i] === obj) { return i; }\n\t\t\t}\n\t\t\treturn -1;\n\t\t};\n\t}\n\n\tDate.prototype.countDaysInMonth = function () {\n\t\treturn new Date(this.getFullYear(), this.getMonth() + 1, 0).getDate();\n\t};\n\n\t$.fn.xdsoftScroller = function (options, percent) {\n\t\treturn this.each(function () {\n\t\t\tvar timeboxparent = $(this),\n\t\t\t\tpointerEventToXY = function (e) {\n\t\t\t\t\tvar out = {x: 0, y: 0},\n\t\t\t\t\t\ttouch;\n\t\t\t\t\tif (e.type === 'touchstart' || e.type === 'touchmove' || e.type === 'touchend' || e.type === 'touchcancel') {\n\t\t\t\t\t\ttouch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];\n\t\t\t\t\t\tout.x = touch.clientX;\n\t\t\t\t\t\tout.y = touch.clientY;\n\t\t\t\t\t} else if (e.type === 'mousedown' || e.type === 'mouseup' || e.type === 'mousemove' || e.type === 'mouseover' || e.type === 'mouseout' || e.type === 'mouseenter' || e.type === 'mouseleave') {\n\t\t\t\t\t\tout.x = e.clientX;\n\t\t\t\t\t\tout.y = e.clientY;\n\t\t\t\t\t}\n\t\t\t\t\treturn out;\n\t\t\t\t},\n\t\t\t\ttimebox,\n\t\t\t\tparentHeight,\n\t\t\t\theight,\n\t\t\t\tscrollbar,\n\t\t\t\tscroller,\n\t\t\t\tmaximumOffset = 100,\n\t\t\t\tstart = false,\n\t\t\t\tstartY = 0,\n\t\t\t\tstartTop = 0,\n\t\t\t\th1 = 0,\n\t\t\t\ttouchStart = false,\n\t\t\t\tstartTopScroll = 0,\n\t\t\t\tcalcOffset = function () {};\n\n\t\t\tif (percent === 'hide') {\n\t\t\t\ttimeboxparent.find('.xdsoft_scrollbar').hide();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!$(this).hasClass('xdsoft_scroller_box')) {\n\t\t\t\ttimebox = timeboxparent.children().eq(0);\n\t\t\t\tparentHeight = timeboxparent[0].clientHeight;\n\t\t\t\theight = timebox[0].offsetHeight;\n\t\t\t\tscrollbar = $('
');\n\t\t\t\tscroller = $('
');\n\t\t\t\tscrollbar.append(scroller);\n\n\t\t\t\ttimeboxparent.addClass('xdsoft_scroller_box').append(scrollbar);\n\t\t\t\tcalcOffset = function calcOffset(event) {\n\t\t\t\t\tvar offset = pointerEventToXY(event).y - startY + startTopScroll;\n\t\t\t\t\tif (offset < 0) {\n\t\t\t\t\t\toffset = 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (offset + scroller[0].offsetHeight > h1) {\n\t\t\t\t\t\toffset = h1 - scroller[0].offsetHeight;\n\t\t\t\t\t}\n\t\t\t\t\ttimeboxparent.trigger('scroll_element.xdsoft_scroller', [maximumOffset ? offset / maximumOffset : 0]);\n\t\t\t\t};\n\n\t\t\t\tscroller\n\t\t\t\t\t.on('touchstart.xdsoft_scroller mousedown.xdsoft_scroller', function (event) {\n\t\t\t\t\t\tif (!parentHeight) {\n\t\t\t\t\t\t\ttimeboxparent.trigger('resize_scroll.xdsoft_scroller', [percent]);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstartY = pointerEventToXY(event).y;\n\t\t\t\t\t\tstartTopScroll = parseInt(scroller.css('margin-top'), 10);\n\t\t\t\t\t\th1 = scrollbar[0].offsetHeight;\n\n\t\t\t\t\t\tif (event.type === 'mousedown' || event.type === 'touchstart') {\n\t\t\t\t\t\t\tif (options.ownerDocument) {\n\t\t\t\t\t\t\t\t$(options.ownerDocument.body).addClass('xdsoft_noselect');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$([options.ownerDocument.body, options.contentWindow]).on('touchend mouseup.xdsoft_scroller', function arguments_callee() {\n\t\t\t\t\t\t\t\t$([options.ownerDocument.body, options.contentWindow]).off('touchend mouseup.xdsoft_scroller', arguments_callee)\n\t\t\t\t\t\t\t\t\t.off('mousemove.xdsoft_scroller', calcOffset)\n\t\t\t\t\t\t\t\t\t.removeClass('xdsoft_noselect');\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t$(options.ownerDocument.body).on('mousemove.xdsoft_scroller', calcOffset);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttouchStart = true;\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.on('touchmove', function (event) {\n\t\t\t\t\t\tif (touchStart) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tcalcOffset(event);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.on('touchend touchcancel', function () {\n\t\t\t\t\t\ttouchStart = false;\n\t\t\t\t\t\tstartTopScroll = 0;\n\t\t\t\t\t});\n\n\t\t\t\ttimeboxparent\n\t\t\t\t\t.on('scroll_element.xdsoft_scroller', function (event, percentage) {\n\t\t\t\t\t\tif (!parentHeight) {\n\t\t\t\t\t\t\ttimeboxparent.trigger('resize_scroll.xdsoft_scroller', [percentage, true]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpercentage = percentage > 1 ? 1 : (percentage < 0 || isNaN(percentage)) ? 0 : percentage;\n\n\t\t\t\t\t\tscroller.css('margin-top', maximumOffset * percentage);\n\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\ttimebox.css('marginTop', -parseInt((timebox[0].offsetHeight - parentHeight) * percentage, 10));\n\t\t\t\t\t\t}, 10);\n\t\t\t\t\t})\n\t\t\t\t\t.on('resize_scroll.xdsoft_scroller', function (event, percentage, noTriggerScroll) {\n\t\t\t\t\t\tvar percent, sh;\n\t\t\t\t\t\tparentHeight = timeboxparent[0].clientHeight;\n\t\t\t\t\t\theight = timebox[0].offsetHeight;\n\t\t\t\t\t\tpercent = parentHeight / height;\n\t\t\t\t\t\tsh = percent * scrollbar[0].offsetHeight;\n\t\t\t\t\t\tif (percent > 1) {\n\t\t\t\t\t\t\tscroller.hide();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscroller.show();\n\t\t\t\t\t\t\tscroller.css('height', parseInt(sh > 10 ? sh : 10, 10));\n\t\t\t\t\t\t\tmaximumOffset = scrollbar[0].offsetHeight - scroller[0].offsetHeight;\n\t\t\t\t\t\t\tif (noTriggerScroll !== true) {\n\t\t\t\t\t\t\t\ttimeboxparent.trigger('scroll_element.xdsoft_scroller', [percentage || Math.abs(parseInt(timebox.css('marginTop'), 10)) / (height - parentHeight)]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\ttimeboxparent.on('mousewheel', function (event) {\n\t\t\t\t\tvar top = Math.abs(parseInt(timebox.css('marginTop'), 10));\n\n\t\t\t\t\ttop = top - (event.deltaY * 20);\n\t\t\t\t\tif (top < 0) {\n\t\t\t\t\t\ttop = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\ttimeboxparent.trigger('scroll_element.xdsoft_scroller', [top / (height - parentHeight)]);\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\n\t\t\t\ttimeboxparent.on('touchstart', function (event) {\n\t\t\t\t\tstart = pointerEventToXY(event);\n\t\t\t\t\tstartTop = Math.abs(parseInt(timebox.css('marginTop'), 10));\n\t\t\t\t});\n\n\t\t\t\ttimeboxparent.on('touchmove', function (event) {\n\t\t\t\t\tif (start) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tvar coord = pointerEventToXY(event);\n\t\t\t\t\t\ttimeboxparent.trigger('scroll_element.xdsoft_scroller', [(startTop - (coord.y - start.y)) / (height - parentHeight)]);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\ttimeboxparent.on('touchend touchcancel', function () {\n\t\t\t\t\tstart = false;\n\t\t\t\t\tstartTop = 0;\n\t\t\t\t});\n\t\t\t}\n\t\t\ttimeboxparent.trigger('resize_scroll.xdsoft_scroller', [percent]);\n\t\t});\n\t};\n\n\t$.fn.datetimepicker = function (opt, opt2) {\n\t\tvar result = this,\n\t\t\tKEY0 = 48,\n\t\t\tKEY9 = 57,\n\t\t\t_KEY0 = 96,\n\t\t\t_KEY9 = 105,\n CTRLKEY = 17,\n CMDKEY = 91,\n\t\t\tDEL = 46,\n\t\t\tENTER = 13,\n\t\t\tESC = 27,\n\t\t\tBACKSPACE = 8,\n\t\t\tARROWLEFT = 37,\n\t\t\tARROWUP = 38,\n\t\t\tARROWRIGHT = 39,\n\t\t\tARROWDOWN = 40,\n\t\t\tTAB = 9,\n\t\t\tF5 = 116,\n\t\t\tAKEY = 65,\n\t\t\tCKEY = 67,\n\t\t\tVKEY = 86,\n\t\t\tZKEY = 90,\n\t\t\tYKEY = 89,\n ctrlDown\t=\tfalse,\n cmdDown = false,\n\t\t\toptions = ($.isPlainObject(opt) || !opt) ? $.extend(true, {}, default_options, opt) : $.extend(true, {}, default_options),\n\n\t\t\tlazyInitTimer = 0,\n\t\t\tcreateDateTimePicker,\n\t\t\tdestroyDateTimePicker,\n\n\t\t\tlazyInit = function (input) {\n\t\t\t\tinput\n\t\t\t\t\t.on('open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart', function initOnActionCallback() {\n\t\t\t\t\t\tif (input.is(':disabled') || input.data('xdsoft_datetimepicker')) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclearTimeout(lazyInitTimer);\n\t\t\t\t\t\tlazyInitTimer = setTimeout(function () {\n\n\t\t\t\t\t\t\tif (!input.data('xdsoft_datetimepicker')) {\n\t\t\t\t\t\t\t\tcreateDateTimePicker(input);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinput\n\t\t\t\t\t\t\t\t.off('open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart', initOnActionCallback)\n\t\t\t\t\t\t\t\t.trigger('open.xdsoft');\n\t\t\t\t\t\t}, 100);\n\t\t\t\t\t});\n\t\t\t};\n\n\t\tcreateDateTimePicker = function (input) {\n\t\t\tvar datetimepicker = $('
'),\n\t\t\t\txdsoft_copyright = $(''),\n\t\t\t\tdatepicker = $('
'),\n\t\t\t\tmonth_picker = $('
' +\n\t\t\t\t\t'
' +\n\t\t\t\t\t'
' +\n\t\t\t\t\t'
'),\n\t\t\t\tcalendar = $('
'),\n\t\t\t\ttimepicker = $('
'),\n\t\t\t\ttimeboxparent = timepicker.find('.xdsoft_time_box').eq(0),\n\t\t\t\ttimebox = $('
'),\n\t\t\t\tapplyButton = $(''),\n\n\t\t\t\tmonthselect = $('
'),\n\t\t\t\tyearselect = $('
'),\n\t\t\t\ttriggerAfterOpen = false,\n\t\t\t\tXDSoft_datetime,\n\n\t\t\t\txchangeTimer,\n\t\t\t\ttimerclick,\n\t\t\t\tcurrent_time_index,\n\t\t\t\tsetPos,\n\t\t\t\ttimer = 0,\n\t\t\t\t_xdsoft_datetime,\n\t\t\t\tforEachAncestorOf;\n\n\t\t\tif (options.id) {\n\t\t\t\tdatetimepicker.attr('id', options.id);\n\t\t\t}\n\t\t\tif (options.style) {\n\t\t\t\tdatetimepicker.attr('style', options.style);\n\t\t\t}\n\t\t\tif (options.weeks) {\n\t\t\t\tdatetimepicker.addClass('xdsoft_showweeks');\n\t\t\t}\n\t\t\tif (options.rtl) {\n\t\t\t\tdatetimepicker.addClass('xdsoft_rtl');\n\t\t\t}\n\n\t\t\tdatetimepicker.addClass('xdsoft_' + options.theme);\n\t\t\tdatetimepicker.addClass(options.className);\n\n\t\t\tmonth_picker\n\t\t\t\t.find('.xdsoft_month span')\n\t\t\t\t.after(monthselect);\n\t\t\tmonth_picker\n\t\t\t\t.find('.xdsoft_year span')\n\t\t\t\t.after(yearselect);\n\n\t\t\tmonth_picker\n\t\t\t\t.find('.xdsoft_month,.xdsoft_year')\n\t\t\t\t.on('touchstart mousedown.xdsoft', function (event) {\n\t\t\t\t\tvar select = $(this).find('.xdsoft_select').eq(0),\n\t\t\t\t\t\tval = 0,\n\t\t\t\t\t\ttop = 0,\n\t\t\t\t\t\tvisible = select.is(':visible'),\n\t\t\t\t\t\titems,\n\t\t\t\t\t\ti;\n\n\t\t\t\t\tmonth_picker\n\t\t\t\t\t\t.find('.xdsoft_select')\n\t\t\t\t\t\t.hide();\n\t\t\t\t\tif (_xdsoft_datetime.currentTime) {\n\t\t\t\t\t\tval = _xdsoft_datetime.currentTime[$(this).hasClass('xdsoft_month') ? 'getMonth' : 'getFullYear']();\n\t\t\t\t\t}\n\n\t\t\t\t\tselect[visible ? 'hide' : 'show']();\n\t\t\t\t\tfor (items = select.find('div.xdsoft_option'), i = 0; i < items.length; i += 1) {\n\t\t\t\t\t\tif (items.eq(i).data('value') === val) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttop += items[0].offsetHeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tselect.xdsoftScroller(options, top / (select.children()[0].offsetHeight - (select[0].clientHeight)));\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\n\t\t\tvar handleTouchMoved = function (event) {\n\t\t\t\tvar evt = event.originalEvent;\n\t\t\t\tvar touchPosition = evt.touches ? evt.touches[0] : evt;\n\t\t\t\tthis.touchStartPosition = this.touchStartPosition || touchPosition;\n\t\t\t\tvar xMovement = Math.abs(this.touchStartPosition.clientX - touchPosition.clientX);\n\t\t\t\tvar yMovement = Math.abs(this.touchStartPosition.clientY - touchPosition.clientY);\n\t\t\t\tvar distance = Math.sqrt(xMovement * xMovement + yMovement * yMovement);\n\t\t\t\tif(distance > options.touchMovedThreshold) {\n\t\t\t\t\tthis.touchMoved = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmonth_picker\n\t\t\t\t.find('.xdsoft_select')\n\t\t\t\t.xdsoftScroller(options)\n\t\t\t\t.on('touchstart mousedown.xdsoft', function (event) {\n\t\t\t\t\tvar evt = event.originalEvent;\n\t\t\t\t\tthis.touchMoved = false;\n\t\t\t\t\tthis.touchStartPosition = evt.touches ? evt.touches[0] : evt;\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t})\n\t\t\t\t.on('touchmove', '.xdsoft_option', handleTouchMoved)\n\t\t\t\t.on('touchend mousedown.xdsoft', '.xdsoft_option', function () {\n\t\t\t\t\tif (!this.touchMoved) {\n\t\t\t\t\t\tif (_xdsoft_datetime.currentTime === undefined || _xdsoft_datetime.currentTime === null) {\n\t\t\t\t\t\t\t_xdsoft_datetime.currentTime = _xdsoft_datetime.now();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar year = _xdsoft_datetime.currentTime.getFullYear();\n\t\t\t\t\t\tif (_xdsoft_datetime && _xdsoft_datetime.currentTime) {\n\t\t\t\t\t\t\t_xdsoft_datetime.currentTime[$(this).parent().parent().hasClass('xdsoft_monthselect') ? 'setMonth' : 'setFullYear']($(this).data('value'));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$(this).parent().parent().hide();\n\n\t\t\t\t\t\tdatetimepicker.trigger('xchange.xdsoft');\n\t\t\t\t\t\tif (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {\n\t\t\t\t\t\t\toptions.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (year !== _xdsoft_datetime.currentTime.getFullYear() && $.isFunction(options.onChangeYear)) {\n\t\t\t\t\t\t\toptions.onChangeYear.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\tdatetimepicker.getValue = function () {\n\t\t\t\treturn _xdsoft_datetime.getCurrentTime();\n\t\t\t};\n\n\t\t\tdatetimepicker.setOptions = function (_options) {\n\t\t\t\tvar highlightedDates = {};\n\n\t\t\t\toptions = $.extend(true, {}, options, _options);\n\n\t\t\t\tif (_options.allowTimes && $.isArray(_options.allowTimes) && _options.allowTimes.length) {\n\t\t\t\t\toptions.allowTimes = $.extend(true, [], _options.allowTimes);\n\t\t\t\t}\n\n\t\t\t\tif (_options.weekends && $.isArray(_options.weekends) && _options.weekends.length) {\n\t\t\t\t\toptions.weekends = $.extend(true, [], _options.weekends);\n\t\t\t\t}\n\n\t\t\t\tif (_options.allowDates && $.isArray(_options.allowDates) && _options.allowDates.length) {\n\t\t\t\t\toptions.allowDates = $.extend(true, [], _options.allowDates);\n\t\t\t\t}\n\n\t\t\t\tif (_options.allowDateRe && Object.prototype.toString.call(_options.allowDateRe)===\"[object String]\") {\n\t\t\t\t\toptions.allowDateRe = new RegExp(_options.allowDateRe);\n\t\t\t\t}\n\n\t\t\t\tif (_options.highlightedDates && $.isArray(_options.highlightedDates) && _options.highlightedDates.length) {\n\t\t\t\t\t$.each(_options.highlightedDates, function (index, value) {\n\t\t\t\t\t\tvar splitData = $.map(value.split(','), $.trim),\n\t\t\t\t\t\t\texDesc,\n\t\t\t\t\t\t\thDate = new HighlightedDate(dateHelper.parseDate(splitData[0], options.formatDate), splitData[1], splitData[2]), // date, desc, style\n\t\t\t\t\t\t\tkeyDate = dateHelper.formatDate(hDate.date, options.formatDate);\n\t\t\t\t\t\tif (highlightedDates[keyDate] !== undefined) {\n\t\t\t\t\t\t\texDesc = highlightedDates[keyDate].desc;\n\t\t\t\t\t\t\tif (exDesc && exDesc.length && hDate.desc && hDate.desc.length) {\n\t\t\t\t\t\t\t\thighlightedDates[keyDate].desc = exDesc + \"\\n\" + hDate.desc;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\thighlightedDates[keyDate] = hDate;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\toptions.highlightedDates = $.extend(true, [], highlightedDates);\n\t\t\t\t}\n\n\t\t\t\tif (_options.highlightedPeriods && $.isArray(_options.highlightedPeriods) && _options.highlightedPeriods.length) {\n\t\t\t\t\thighlightedDates = $.extend(true, [], options.highlightedDates);\n\t\t\t\t\t$.each(_options.highlightedPeriods, function (index, value) {\n\t\t\t\t\t\tvar dateTest, // start date\n\t\t\t\t\t\t\tdateEnd,\n\t\t\t\t\t\t\tdesc,\n\t\t\t\t\t\t\thDate,\n\t\t\t\t\t\t\tkeyDate,\n\t\t\t\t\t\t\texDesc,\n\t\t\t\t\t\t\tstyle;\n\t\t\t\t\t\tif ($.isArray(value)) {\n\t\t\t\t\t\t\tdateTest = value[0];\n\t\t\t\t\t\t\tdateEnd = value[1];\n\t\t\t\t\t\t\tdesc = value[2];\n\t\t\t\t\t\t\tstyle = value[3];\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar splitData = $.map(value.split(','), $.trim);\n\t\t\t\t\t\t\tdateTest = dateHelper.parseDate(splitData[0], options.formatDate);\n\t\t\t\t\t\t\tdateEnd = dateHelper.parseDate(splitData[1], options.formatDate);\n\t\t\t\t\t\t\tdesc = splitData[2];\n\t\t\t\t\t\t\tstyle = splitData[3];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twhile (dateTest <= dateEnd) {\n\t\t\t\t\t\t\thDate = new HighlightedDate(dateTest, desc, style);\n\t\t\t\t\t\t\tkeyDate = dateHelper.formatDate(dateTest, options.formatDate);\n\t\t\t\t\t\t\tdateTest.setDate(dateTest.getDate() + 1);\n\t\t\t\t\t\t\tif (highlightedDates[keyDate] !== undefined) {\n\t\t\t\t\t\t\t\texDesc = highlightedDates[keyDate].desc;\n\t\t\t\t\t\t\t\tif (exDesc && exDesc.length && hDate.desc && hDate.desc.length) {\n\t\t\t\t\t\t\t\t\thighlightedDates[keyDate].desc = exDesc + \"\\n\" + hDate.desc;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\thighlightedDates[keyDate] = hDate;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\toptions.highlightedDates = $.extend(true, [], highlightedDates);\n\t\t\t\t}\n\n\t\t\t\tif (_options.disabledDates && $.isArray(_options.disabledDates) && _options.disabledDates.length) {\n\t\t\t\t\toptions.disabledDates = $.extend(true, [], _options.disabledDates);\n\t\t\t\t}\n\n\t\t\t\tif (_options.disabledWeekDays && $.isArray(_options.disabledWeekDays) && _options.disabledWeekDays.length) {\n\t\t\t\t\toptions.disabledWeekDays = $.extend(true, [], _options.disabledWeekDays);\n\t\t\t\t}\n\n\t\t\t\tif ((options.open || options.opened) && (!options.inline)) {\n\t\t\t\t\tinput.trigger('open.xdsoft');\n\t\t\t\t}\n\n\t\t\t\tif (options.inline) {\n\t\t\t\t\ttriggerAfterOpen = true;\n\t\t\t\t\tdatetimepicker.addClass('xdsoft_inline');\n\t\t\t\t\tinput.after(datetimepicker).hide();\n\t\t\t\t}\n\n\t\t\t\tif (options.inverseButton) {\n\t\t\t\t\toptions.next = 'xdsoft_prev';\n\t\t\t\t\toptions.prev = 'xdsoft_next';\n\t\t\t\t}\n\n\t\t\t\tif (options.datepicker) {\n\t\t\t\t\tdatepicker.addClass('active');\n\t\t\t\t} else {\n\t\t\t\t\tdatepicker.removeClass('active');\n\t\t\t\t}\n\n\t\t\t\tif (options.timepicker) {\n\t\t\t\t\ttimepicker.addClass('active');\n\t\t\t\t} else {\n\t\t\t\t\ttimepicker.removeClass('active');\n\t\t\t\t}\n\n\t\t\t\tif (options.value) {\n\t\t\t\t\t_xdsoft_datetime.setCurrentTime(options.value);\n\t\t\t\t\tif (input && input.val) {\n\t\t\t\t\t\tinput.val(_xdsoft_datetime.str);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (isNaN(options.dayOfWeekStart)) {\n\t\t\t\t\toptions.dayOfWeekStart = 0;\n\t\t\t\t} else {\n\t\t\t\t\toptions.dayOfWeekStart = parseInt(options.dayOfWeekStart, 10) % 7;\n\t\t\t\t}\n\n\t\t\t\tif (!options.timepickerScrollbar) {\n\t\t\t\t\ttimeboxparent.xdsoftScroller(options, 'hide');\n\t\t\t\t}\n\n\t\t\t\tif (options.minDate && /^[\\+\\-](.*)$/.test(options.minDate)) {\n\t\t\t\t\toptions.minDate = dateHelper.formatDate(_xdsoft_datetime.strToDateTime(options.minDate), options.formatDate);\n\t\t\t\t}\n\n\t\t\t\tif (options.maxDate && /^[\\+\\-](.*)$/.test(options.maxDate)) {\n\t\t\t\t\toptions.maxDate = dateHelper.formatDate(_xdsoft_datetime.strToDateTime(options.maxDate), options.formatDate);\n\t\t\t\t}\n\n if (options.minDateTime && /^\\+(.*)$/.test(options.minDateTime)) {\n \toptions.minDateTime = _xdsoft_datetime.strToDateTime(options.minDateTime).dateFormat(options.formatDate);\n }\n\n if (options.maxDateTime && /^\\+(.*)$/.test(options.maxDateTime)) {\n \toptions.maxDateTime = _xdsoft_datetime.strToDateTime(options.maxDateTime).dateFormat(options.formatDate);\n }\n\n\t\t\t\tapplyButton.toggle(options.showApplyButton);\n\n\t\t\t\tmonth_picker\n\t\t\t\t\t.find('.xdsoft_today_button')\n\t\t\t\t\t.css('visibility', !options.todayButton ? 'hidden' : 'visible');\n\n\t\t\t\tmonth_picker\n\t\t\t\t\t.find('.' + options.prev)\n\t\t\t\t\t.css('visibility', !options.prevButton ? 'hidden' : 'visible');\n\n\t\t\t\tmonth_picker\n\t\t\t\t\t.find('.' + options.next)\n\t\t\t\t\t.css('visibility', !options.nextButton ? 'hidden' : 'visible');\n\n\t\t\t\tsetMask(options);\n\n\t\t\t\tif (options.validateOnBlur) {\n\t\t\t\t\tinput\n\t\t\t\t\t\t.off('blur.xdsoft')\n\t\t\t\t\t\t.on('blur.xdsoft', function () {\n\t\t\t\t\t\t\tif (options.allowBlank && (!$.trim($(this).val()).length ||\n\t\t\t\t\t\t\t\t\t(typeof options.mask === \"string\" && $.trim($(this).val()) === options.mask.replace(/[0-9]/g, '_')))) {\n\t\t\t\t\t\t\t\t$(this).val(null);\n\t\t\t\t\t\t\t\tdatetimepicker.data('xdsoft_datetime').empty();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar d = dateHelper.parseDate($(this).val(), options.format);\n\t\t\t\t\t\t\t\tif (d) { // parseDate() may skip some invalid parts like date or time, so make it clear for user: show parsed date/time\n\t\t\t\t\t\t\t\t\t$(this).val(dateHelper.formatDate(d, options.format));\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar splittedHours = +([$(this).val()[0], $(this).val()[1]].join('')),\n\t\t\t\t\t\t\t\t\t\tsplittedMinutes = +([$(this).val()[2], $(this).val()[3]].join(''));\n\n\t\t\t\t\t\t\t\t\t// parse the numbers as 0312 => 03:12\n\t\t\t\t\t\t\t\t\tif (!options.datepicker && options.timepicker && splittedHours >= 0 && splittedHours < 24 && splittedMinutes >= 0 && splittedMinutes < 60) {\n\t\t\t\t\t\t\t\t\t\t$(this).val([splittedHours, splittedMinutes].map(function (item) {\n\t\t\t\t\t\t\t\t\t\t\treturn item > 9 ? item : '0' + item;\n\t\t\t\t\t\t\t\t\t\t}).join(':'));\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t$(this).val(dateHelper.formatDate(_xdsoft_datetime.now(), options.format));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdatetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdatetimepicker.trigger('changedatetime.xdsoft');\n\t\t\t\t\t\t\tdatetimepicker.trigger('close.xdsoft');\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\toptions.dayOfWeekStartPrev = (options.dayOfWeekStart === 0) ? 6 : options.dayOfWeekStart - 1;\n\n\t\t\t\tdatetimepicker\n\t\t\t\t\t.trigger('xchange.xdsoft')\n\t\t\t\t\t.trigger('afterOpen.xdsoft');\n\t\t\t};\n\n\t\t\tdatetimepicker\n\t\t\t\t.data('options', options)\n\t\t\t\t.on('touchstart mousedown.xdsoft', function (event) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tyearselect.hide();\n\t\t\t\t\tmonthselect.hide();\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\n\t\t\t//scroll_element = timepicker.find('.xdsoft_time_box');\n\t\t\ttimeboxparent.append(timebox);\n\t\t\ttimeboxparent.xdsoftScroller(options);\n\n\t\t\tdatetimepicker.on('afterOpen.xdsoft', function () {\n\t\t\t\ttimeboxparent.xdsoftScroller(options);\n\t\t\t});\n\n\t\t\tdatetimepicker\n\t\t\t\t.append(datepicker)\n\t\t\t\t.append(timepicker);\n\n\t\t\tif (options.withoutCopyright !== true) {\n\t\t\t\tdatetimepicker\n\t\t\t\t\t.append(xdsoft_copyright);\n\t\t\t}\n\n\t\t\tdatepicker\n\t\t\t\t.append(month_picker)\n\t\t\t\t.append(calendar)\n\t\t\t\t.append(applyButton);\n\n if (options.insideParent) {\n $(input).parent().append(datetimepicker);\n } else {\n $(options.parentID).append(datetimepicker);\n }\n\n\t\t\tXDSoft_datetime = function () {\n\t\t\t\tvar _this = this;\n\t\t\t\t_this.now = function (norecursion) {\n\t\t\t\t\tvar d = new Date(),\n\t\t\t\t\t\tdate,\n\t\t\t\t\t\ttime;\n\n\t\t\t\t\tif (!norecursion && options.defaultDate) {\n\t\t\t\t\t\tdate = _this.strToDateTime(options.defaultDate);\n\t\t\t\t\t\td.setFullYear(date.getFullYear());\n\t\t\t\t\t\td.setMonth(date.getMonth());\n\t\t\t\t\t\td.setDate(date.getDate());\n\t\t\t\t\t}\n\n\t\t\t\t\td.setFullYear(d.getFullYear());\n\n\t\t\t\t\tif (!norecursion && options.defaultTime) {\n\t\t\t\t\t\ttime = _this.strtotime(options.defaultTime);\n\t\t\t\t\t\td.setHours(time.getHours());\n\t\t\t\t\t\td.setMinutes(time.getMinutes());\n\t\t\t\t\t\td.setSeconds(time.getSeconds());\n\t\t\t\t\t\td.setMilliseconds(time.getMilliseconds());\n\t\t\t\t\t}\n\t\t\t\t\treturn d;\n\t\t\t\t};\n\n\t\t\t\t_this.isValidDate = function (d) {\n\t\t\t\t\tif (Object.prototype.toString.call(d) !== \"[object Date]\") {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn !isNaN(d.getTime());\n\t\t\t\t};\n\n\t\t\t\t_this.setCurrentTime = function (dTime, requireValidDate) {\n\t\t\t\t\tif (typeof dTime === 'string') {\n\t\t\t\t\t\t_this.currentTime = _this.strToDateTime(dTime);\n\t\t\t\t\t}\n\t\t\t\t\telse if (_this.isValidDate(dTime)) {\n\t\t\t\t\t\t_this.currentTime = dTime;\n\t\t\t\t\t}\n\t\t\t\t\telse if (!dTime && !requireValidDate && options.allowBlank && !options.inline) {\n\t\t\t\t\t\t_this.currentTime = null;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t_this.currentTime = _this.now();\n\t\t\t\t\t}\n\n\t\t\t\t\tdatetimepicker.trigger('xchange.xdsoft');\n\t\t\t\t};\n\n\t\t\t\t_this.empty = function () {\n\t\t\t\t\t_this.currentTime = null;\n\t\t\t\t};\n\n\t\t\t\t_this.getCurrentTime = function () {\n\t\t\t\t\treturn _this.currentTime;\n\t\t\t\t};\n\n\t\t\t\t_this.nextMonth = function () {\n\n\t\t\t\t\tif (_this.currentTime === undefined || _this.currentTime === null) {\n\t\t\t\t\t\t_this.currentTime = _this.now();\n\t\t\t\t\t}\n\n\t\t\t\t\tvar month = _this.currentTime.getMonth() + 1,\n\t\t\t\t\t\tyear;\n\t\t\t\t\tif (month === 12) {\n\t\t\t\t\t\t_this.currentTime.setFullYear(_this.currentTime.getFullYear() + 1);\n\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tyear = _this.currentTime.getFullYear();\n\n\t\t\t\t\t_this.currentTime.setDate(\n\t\t\t\t\t\tMath.min(\n\t\t\t\t\t\t\tnew Date(_this.currentTime.getFullYear(), month + 1, 0).getDate(),\n\t\t\t\t\t\t\t_this.currentTime.getDate()\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t\t_this.currentTime.setMonth(month);\n\n\t\t\t\t\tif (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {\n\t\t\t\t\t\toptions.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (year !== _this.currentTime.getFullYear() && $.isFunction(options.onChangeYear)) {\n\t\t\t\t\t\toptions.onChangeYear.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));\n\t\t\t\t\t}\n\n\t\t\t\t\tdatetimepicker.trigger('xchange.xdsoft');\n\t\t\t\t\treturn month;\n\t\t\t\t};\n\n\t\t\t\t_this.prevMonth = function () {\n\n\t\t\t\t\tif (_this.currentTime === undefined || _this.currentTime === null) {\n\t\t\t\t\t\t_this.currentTime = _this.now();\n\t\t\t\t\t}\n\n\t\t\t\t\tvar month = _this.currentTime.getMonth() - 1;\n\t\t\t\t\tif (month === -1) {\n\t\t\t\t\t\t_this.currentTime.setFullYear(_this.currentTime.getFullYear() - 1);\n\t\t\t\t\t\tmonth = 11;\n\t\t\t\t\t}\n\t\t\t\t\t_this.currentTime.setDate(\n\t\t\t\t\t\tMath.min(\n\t\t\t\t\t\t\tnew Date(_this.currentTime.getFullYear(), month + 1, 0).getDate(),\n\t\t\t\t\t\t\t_this.currentTime.getDate()\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t\t_this.currentTime.setMonth(month);\n\t\t\t\t\tif (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {\n\t\t\t\t\t\toptions.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));\n\t\t\t\t\t}\n\t\t\t\t\tdatetimepicker.trigger('xchange.xdsoft');\n\t\t\t\t\treturn month;\n\t\t\t\t};\n\n\t\t\t\t_this.getWeekOfYear = function (datetime) {\n\t\t\t\t\tif (options.onGetWeekOfYear && $.isFunction(options.onGetWeekOfYear)) {\n\t\t\t\t\t\tvar week = options.onGetWeekOfYear.call(datetimepicker, datetime);\n\t\t\t\t\t\tif (typeof week !== 'undefined') {\n\t\t\t\t\t\t\treturn week;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar onejan = new Date(datetime.getFullYear(), 0, 1);\n\n\t\t\t\t\t//First week of the year is th one with the first Thursday according to ISO8601\n\t\t\t\t\tif (onejan.getDay() !== 4) {\n\t\t\t\t\t\tonejan.setMonth(0, 1 + ((4 - onejan.getDay()+ 7) % 7));\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.ceil((((datetime - onejan) / 86400000) + onejan.getDay() + 1) / 7);\n\t\t\t\t};\n\n\t\t\t\t_this.strToDateTime = function (sDateTime) {\n\t\t\t\t\tvar tmpDate = [], timeOffset, currentTime;\n\n\t\t\t\t\tif (sDateTime && sDateTime instanceof Date && _this.isValidDate(sDateTime)) {\n\t\t\t\t\t\treturn sDateTime;\n\t\t\t\t\t}\n\n\t\t\t\t\ttmpDate = /^([+-]{1})(.*)$/.exec(sDateTime);\n\n\t\t\t\t\tif (tmpDate) {\n\t\t\t\t\t\ttmpDate[2] = dateHelper.parseDate(tmpDate[2], options.formatDate);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (tmpDate && tmpDate[2]) {\n\t\t\t\t\t\ttimeOffset = tmpDate[2].getTime() - (tmpDate[2].getTimezoneOffset()) * 60000;\n\t\t\t\t\t\tcurrentTime = new Date((_this.now(true)).getTime() + parseInt(tmpDate[1] + '1', 10) * timeOffset);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentTime = sDateTime ? dateHelper.parseDate(sDateTime, options.format) : _this.now();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!_this.isValidDate(currentTime)) {\n\t\t\t\t\t\tcurrentTime = _this.now();\n\t\t\t\t\t}\n\n\t\t\t\t\treturn currentTime;\n\t\t\t\t};\n\n\t\t\t\t_this.strToDate = function (sDate) {\n\t\t\t\t\tif (sDate && sDate instanceof Date && _this.isValidDate(sDate)) {\n\t\t\t\t\t\treturn sDate;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar currentTime = sDate ? dateHelper.parseDate(sDate, options.formatDate) : _this.now(true);\n\t\t\t\t\tif (!_this.isValidDate(currentTime)) {\n\t\t\t\t\t\tcurrentTime = _this.now(true);\n\t\t\t\t\t}\n\t\t\t\t\treturn currentTime;\n\t\t\t\t};\n\n\t\t\t\t_this.strtotime = function (sTime) {\n\t\t\t\t\tif (sTime && sTime instanceof Date && _this.isValidDate(sTime)) {\n\t\t\t\t\t\treturn sTime;\n\t\t\t\t\t}\n\t\t\t\t\tvar currentTime = sTime ? dateHelper.parseDate(sTime, options.formatTime) : _this.now(true);\n\t\t\t\t\tif (!_this.isValidDate(currentTime)) {\n\t\t\t\t\t\tcurrentTime = _this.now(true);\n\t\t\t\t\t}\n\t\t\t\t\treturn currentTime;\n\t\t\t\t};\n\n\t\t\t\t_this.str = function () {\n\t\t\t\t\tvar format = options.format;\n\t\t\t\t\tif (options.yearOffset) {\n\t\t\t\t\t\tformat = format.replace('Y', _this.currentTime.getFullYear() + options.yearOffset);\n\t\t\t\t\t\tformat = format.replace('y', String(_this.currentTime.getFullYear() + options.yearOffset).substring(2, 4));\n\t\t\t\t\t}\n\t\t\t\t\treturn dateHelper.formatDate(_this.currentTime, format);\n\t\t\t\t};\n\t\t\t\t_this.currentTime = this.now();\n\t\t\t};\n\n\t\t\t_xdsoft_datetime = new XDSoft_datetime();\n\n\t\t\tapplyButton.on('touchend click', function (e) {//pathbrite\n\t\t\t\te.preventDefault();\n\t\t\t\tdatetimepicker.data('changed', true);\n\t\t\t\t_xdsoft_datetime.setCurrentTime(getCurrentValue());\n\t\t\t\tinput.val(_xdsoft_datetime.str());\n\t\t\t\tdatetimepicker.trigger('close.xdsoft');\n\t\t\t});\n\t\t\tmonth_picker\n\t\t\t\t.find('.xdsoft_today_button')\n\t\t\t\t.on('touchend mousedown.xdsoft', function () {\n\t\t\t\t\tdatetimepicker.data('changed', true);\n\t\t\t\t\t_xdsoft_datetime.setCurrentTime(0, true);\n\t\t\t\t\tdatetimepicker.trigger('afterOpen.xdsoft');\n\t\t\t\t}).on('dblclick.xdsoft', function () {\n\t\t\t\tvar currentDate = _xdsoft_datetime.getCurrentTime(), minDate, maxDate;\n\t\t\t\tcurrentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());\n\t\t\t\tminDate = _xdsoft_datetime.strToDate(options.minDate);\n\t\t\t\tminDate = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate());\n\t\t\t\tif (currentDate < minDate) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmaxDate = _xdsoft_datetime.strToDate(options.maxDate);\n\t\t\t\tmaxDate = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate());\n\t\t\t\tif (currentDate > maxDate) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tinput.val(_xdsoft_datetime.str());\n\t\t\t\tinput.trigger('change');\n\t\t\t\tdatetimepicker.trigger('close.xdsoft');\n\t\t\t});\n\t\t\tmonth_picker\n\t\t\t\t.find('.xdsoft_prev,.xdsoft_next')\n\t\t\t\t.on('touchend mousedown.xdsoft', function () {\n\t\t\t\t\tvar $this = $(this),\n\t\t\t\t\t\ttimer = 0,\n\t\t\t\t\t\tstop = false;\n\n\t\t\t\t\t(function arguments_callee1(v) {\n\t\t\t\t\t\tif ($this.hasClass(options.next)) {\n\t\t\t\t\t\t\t_xdsoft_datetime.nextMonth();\n\t\t\t\t\t\t} else if ($this.hasClass(options.prev)) {\n\t\t\t\t\t\t\t_xdsoft_datetime.prevMonth();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (options.monthChangeSpinner) {\n\t\t\t\t\t\t\tif (!stop) {\n\t\t\t\t\t\t\t\ttimer = setTimeout(arguments_callee1, v || 100);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}(500));\n\n\t\t\t\t\t$([options.ownerDocument.body, options.contentWindow]).on('touchend mouseup.xdsoft', function arguments_callee2() {\n\t\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\t\tstop = true;\n\t\t\t\t\t\t$([options.ownerDocument.body, options.contentWindow]).off('touchend mouseup.xdsoft', arguments_callee2);\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\ttimepicker\n\t\t\t\t.find('.xdsoft_prev,.xdsoft_next')\n\t\t\t\t.on('touchend mousedown.xdsoft', function () {\n\t\t\t\t\tvar $this = $(this),\n\t\t\t\t\t\ttimer = 0,\n\t\t\t\t\t\tstop = false,\n\t\t\t\t\t\tperiod = 110;\n\t\t\t\t\t(function arguments_callee4(v) {\n\t\t\t\t\t\tvar pheight = timeboxparent[0].clientHeight,\n\t\t\t\t\t\t\theight = timebox[0].offsetHeight,\n\t\t\t\t\t\t\ttop = Math.abs(parseInt(timebox.css('marginTop'), 10));\n\t\t\t\t\t\tif ($this.hasClass(options.next) && (height - pheight) - options.timeHeightInTimePicker >= top) {\n\t\t\t\t\t\t\ttimebox.css('marginTop', '-' + (top + options.timeHeightInTimePicker) + 'px');\n\t\t\t\t\t\t} else if ($this.hasClass(options.prev) && top - options.timeHeightInTimePicker >= 0) {\n\t\t\t\t\t\t\ttimebox.css('marginTop', '-' + (top - options.timeHeightInTimePicker) + 'px');\n\t\t\t\t\t\t}\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Fixed bug:\n\t\t\t\t\t\t * When using css3 transition, it will cause a bug that you cannot scroll the timepicker list.\n\t\t\t\t\t\t * The reason is that the transition-duration time, if you set it to 0, all things fine, otherwise, this\n\t\t\t\t\t\t * would cause a bug when you use jquery.css method.\n\t\t\t\t\t\t * Let's say: * { transition: all .5s ease; }\n\t\t\t\t\t\t * jquery timebox.css('marginTop') will return the original value which is before you clicking the next/prev button,\n\t\t\t\t\t\t * meanwhile the timebox[0].style.marginTop will return the right value which is after you clicking the\n\t\t\t\t\t\t * next/prev button.\n\t\t\t\t\t\t *\n\t\t\t\t\t\t * What we should do:\n\t\t\t\t\t\t * Replace timebox.css('marginTop') with timebox[0].style.marginTop.\n\t\t\t\t\t\t */\n\t\t\t\t\t\ttimeboxparent.trigger('scroll_element.xdsoft_scroller', [Math.abs(parseInt(timebox[0].style.marginTop, 10) / (height - pheight))]);\n\t\t\t\t\t\tperiod = (period > 10) ? 10 : period - 10;\n\t\t\t\t\t\tif (!stop) {\n\t\t\t\t\t\t\ttimer = setTimeout(arguments_callee4, v || period);\n\t\t\t\t\t\t}\n\t\t\t\t\t}(500));\n\t\t\t\t\t$([options.ownerDocument.body, options.contentWindow]).on('touchend mouseup.xdsoft', function arguments_callee5() {\n\t\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\t\tstop = true;\n\t\t\t\t\t\t$([options.ownerDocument.body, options.contentWindow])\n\t\t\t\t\t\t\t.off('touchend mouseup.xdsoft', arguments_callee5);\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\txchangeTimer = 0;\n\t\t\t// base handler - generating a calendar and timepicker\n\t\t\tdatetimepicker\n\t\t\t\t.on('xchange.xdsoft', function (event) {\n\t\t\t\t\tclearTimeout(xchangeTimer);\n\t\t\t\t\txchangeTimer = setTimeout(function () {\n\n\t\t\t\t\t\tif (_xdsoft_datetime.currentTime === undefined || _xdsoft_datetime.currentTime === null) {\n\t\t\t\t\t\t\t_xdsoft_datetime.currentTime = _xdsoft_datetime.now();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar table =\t'',\n\t\t\t\t\t\t\tstart = new Date(_xdsoft_datetime.currentTime.getFullYear(), _xdsoft_datetime.currentTime.getMonth(), 1, 12, 0, 0),\n\t\t\t\t\t\t\ti = 0,\n\t\t\t\t\t\t\tj,\n\t\t\t\t\t\t\ttoday = _xdsoft_datetime.now(),\n\t\t\t\t\t\t\tmaxDate = false,\n\t\t\t\t\t\t\tminDate = false,\n\t\t\t\t\t\t\tminDateTime = false,\n\t\t\t\t\t\t\tmaxDateTime = false,\n\t\t\t\t\t\t\thDate,\n\t\t\t\t\t\t\tday,\n\t\t\t\t\t\t\td,\n\t\t\t\t\t\t\ty,\n\t\t\t\t\t\t\tm,\n\t\t\t\t\t\t\tw,\n\t\t\t\t\t\t\tclasses = [],\n\t\t\t\t\t\t\tcustomDateSettings,\n\t\t\t\t\t\t\tnewRow = true,\n\t\t\t\t\t\t\ttime = '',\n\t\t\t\t\t\t\th,\n\t\t\t\t\t\t\tline_time,\n\t\t\t\t\t\t\tdescription;\n\n\t\t\t\t\t\twhile (start.getDay() !== options.dayOfWeekStart) {\n\t\t\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttable += '';\n\n\t\t\t\t\t\tif (options.weeks) {\n\t\t\t\t\t\t\ttable += '';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (j = 0; j < 7; j += 1) {\n\t\t\t\t\t\t\ttable += '';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttable += '';\n\t\t\t\t\t\ttable += '';\n\n\t\t\t\t\t\tif (options.maxDate !== false) {\n\t\t\t\t\t\t\tmaxDate = _xdsoft_datetime.strToDate(options.maxDate);\n\t\t\t\t\t\t\tmaxDate = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate(), 23, 59, 59, 999);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.minDate !== false) {\n\t\t\t\t\t\t\tminDate = _xdsoft_datetime.strToDate(options.minDate);\n\t\t\t\t\t\t\tminDate = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate());\n\t\t\t\t\t\t}\n\n if (options.minDateTime !== false) {\n\t\t\t\t\t\t\tminDateTime = _xdsoft_datetime.strToDate(options.minDateTime);\n\t\t\t\t\t\t\tminDateTime = new Date(minDateTime.getFullYear(), minDateTime.getMonth(), minDateTime.getDate(), minDateTime.getHours(), minDateTime.getMinutes(), minDateTime.getSeconds());\n\t\t\t\t\t\t}\n\n if (options.maxDateTime !== false) {\n\t\t\t\t\t\t\tmaxDateTime = _xdsoft_datetime.strToDate(options.maxDateTime);\n\t\t\t\t\t\t\tmaxDateTime = new Date(maxDateTime.getFullYear(), maxDateTime.getMonth(), maxDateTime.getDate(), maxDateTime.getHours(), maxDateTime.getMinutes(), maxDateTime.getSeconds());\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar maxDateTimeDay;\n\t\t\t\t\t\tif (maxDateTime !== false) {\n\t\t\t\t\t\t\tmaxDateTimeDay = ((maxDateTime.getFullYear() * 12) + maxDateTime.getMonth()) * 31 + maxDateTime.getDate();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twhile (i < _xdsoft_datetime.currentTime.countDaysInMonth() || start.getDay() !== options.dayOfWeekStart || _xdsoft_datetime.currentTime.getMonth() === start.getMonth()) {\n\t\t\t\t\t\t\tclasses = [];\n\t\t\t\t\t\t\ti += 1;\n\n\t\t\t\t\t\t\tday = start.getDay();\n\t\t\t\t\t\t\td = start.getDate();\n\t\t\t\t\t\t\ty = start.getFullYear();\n\t\t\t\t\t\t\tm = start.getMonth();\n\t\t\t\t\t\t\tw = _xdsoft_datetime.getWeekOfYear(start);\n\t\t\t\t\t\t\tdescription = '';\n\n\t\t\t\t\t\t\tclasses.push('xdsoft_date');\n\n\t\t\t\t\t\t\tif (options.beforeShowDay && $.isFunction(options.beforeShowDay.call)) {\n\t\t\t\t\t\t\t\tcustomDateSettings = options.beforeShowDay.call(datetimepicker, start);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcustomDateSettings = null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif(options.allowDateRe && Object.prototype.toString.call(options.allowDateRe) === \"[object RegExp]\"){\n\t\t\t\t\t\t\t\tif(!options.allowDateRe.test(dateHelper.formatDate(start, options.formatDate))){\n\t\t\t\t\t\t\t\t\tclasses.push('xdsoft_disabled');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(options.allowDates && options.allowDates.length>0){\n\t\t\t\t\t\t\t\tif(options.allowDates.indexOf(dateHelper.formatDate(start, options.formatDate)) === -1){\n\t\t\t\t\t\t\t\t\tclasses.push('xdsoft_disabled');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar currentDay = ((start.getFullYear() * 12) + start.getMonth()) * 31 + start.getDate();\n\t\t\t\t\t\t\tif ((maxDate !== false && start > maxDate) || (minDateTime !== false && start < minDateTime) || (minDate !== false && start < minDate) || (maxDateTime !== false && currentDay > maxDateTimeDay) || (customDateSettings && customDateSettings[0] === false)) {\n\t\t\t\t\t\t\t\tclasses.push('xdsoft_disabled');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (options.disabledDates.indexOf(dateHelper.formatDate(start, options.formatDate)) !== -1) {\n\t\t\t\t\t\t\t\tclasses.push('xdsoft_disabled');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (options.disabledWeekDays.indexOf(day) !== -1) {\n\t\t\t\t\t\t\t\tclasses.push('xdsoft_disabled');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (input.is('[disabled]')) {\n\t\t\t\t\t\t\t\tclasses.push('xdsoft_disabled');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (customDateSettings && customDateSettings[1] !== \"\") {\n\t\t\t\t\t\t\t\tclasses.push(customDateSettings[1]);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (_xdsoft_datetime.currentTime.getMonth() !== m) {\n\t\t\t\t\t\t\t\tclasses.push('xdsoft_other_month');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ((options.defaultSelect || datetimepicker.data('changed')) && dateHelper.formatDate(_xdsoft_datetime.currentTime, options.formatDate) === dateHelper.formatDate(start, options.formatDate)) {\n\t\t\t\t\t\t\t\tclasses.push('xdsoft_current');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (dateHelper.formatDate(today, options.formatDate) === dateHelper.formatDate(start, options.formatDate)) {\n\t\t\t\t\t\t\t\tclasses.push('xdsoft_today');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (start.getDay() === 0 || start.getDay() === 6 || options.weekends.indexOf(dateHelper.formatDate(start, options.formatDate)) !== -1) {\n\t\t\t\t\t\t\t\tclasses.push('xdsoft_weekend');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (options.highlightedDates[dateHelper.formatDate(start, options.formatDate)] !== undefined) {\n\t\t\t\t\t\t\t\thDate = options.highlightedDates[dateHelper.formatDate(start, options.formatDate)];\n\t\t\t\t\t\t\t\tclasses.push(hDate.style === undefined ? 'xdsoft_highlighted_default' : hDate.style);\n\t\t\t\t\t\t\t\tdescription = hDate.desc === undefined ? '' : hDate.desc;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (options.beforeShowDay && $.isFunction(options.beforeShowDay)) {\n\t\t\t\t\t\t\t\tclasses.push(options.beforeShowDay(start));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (newRow) {\n\t\t\t\t\t\t\t\ttable += '';\n\t\t\t\t\t\t\t\tnewRow = false;\n\t\t\t\t\t\t\t\tif (options.weeks) {\n\t\t\t\t\t\t\t\t\ttable += '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttable += '';\n\n\t\t\t\t\t\t\tif (start.getDay() === options.dayOfWeekStartPrev) {\n\t\t\t\t\t\t\t\ttable += '';\n\t\t\t\t\t\t\t\tnewRow = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tstart.setDate(d + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttable += '
' + options.i18n[globalLocale].dayOfWeekShort[(j + options.dayOfWeekStart) % 7] + '
' + w + '' +\n\t\t\t\t\t\t\t\t'
' + d + '
' +\n\t\t\t\t\t\t\t\t'
';\n\n\t\t\t\t\t\tcalendar.html(table);\n\n\t\t\t\t\t\tmonth_picker.find('.xdsoft_label span').eq(0).text(options.i18n[globalLocale].months[_xdsoft_datetime.currentTime.getMonth()]);\n\t\t\t\t\t\tmonth_picker.find('.xdsoft_label span').eq(1).text(_xdsoft_datetime.currentTime.getFullYear() + options.yearOffset);\n\n\t\t\t\t\t\t// generate timebox\n\t\t\t\t\t\ttime = '';\n\t\t\t\t\t\th = '';\n\t\t\t\t\t\tm = '';\n\n\t\t\t\t\t\tvar minTimeMinutesOfDay = 0;\n\t\t\t\t\t\tif (options.minTime !== false) {\n\t\t\t\t\t\t var t = _xdsoft_datetime.strtotime(options.minTime);\n\t\t\t\t\t\t minTimeMinutesOfDay = 60 * t.getHours() + t.getMinutes();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar maxTimeMinutesOfDay = 24 * 60;\n\t\t\t\t\t\tif (options.maxTime !== false) {\n\t\t\t\t\t\t var t = _xdsoft_datetime.strtotime(options.maxTime);\n\t\t\t\t\t\t maxTimeMinutesOfDay = 60 * t.getHours() + t.getMinutes();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.minDateTime !== false) {\n\t\t\t\t\t\t\tvar t = _xdsoft_datetime.strToDateTime(options.minDateTime);\n\t\t\t\t\t\t var currentDayIsMinDateTimeDay = dateHelper.formatDate(_xdsoft_datetime.currentTime, options.formatDate) === dateHelper.formatDate(t, options.formatDate);\n\t\t\t\t\t\t\tif (currentDayIsMinDateTimeDay) {\n\t\t\t\t\t\t\t\tvar m = 60 * t.getHours() + t.getMinutes();\n\t\t\t\t\t\t\t\tif (m > minTimeMinutesOfDay) minTimeMinutesOfDay = m;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.maxDateTime !== false) {\n\t\t\t\t\t\t\tvar t = _xdsoft_datetime.strToDateTime(options.maxDateTime);\n\t\t\t\t\t\t var currentDayIsMaxDateTimeDay = dateHelper.formatDate(_xdsoft_datetime.currentTime, options.formatDate) === dateHelper.formatDate(t, options.formatDate);\n\t\t\t\t\t\t\tif (currentDayIsMaxDateTimeDay) {\n\t\t\t\t\t\t\t\tvar m = 60 * t.getHours() + t.getMinutes();\n\t\t\t\t\t\t\t\tif (m < maxTimeMinutesOfDay) maxTimeMinutesOfDay = m;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tline_time = function line_time(h, m) {\n\t\t\t\t\t\t\tvar now = _xdsoft_datetime.now(), current_time,\n\t\t\t\t\t\t\t\tisALlowTimesInit = options.allowTimes && $.isArray(options.allowTimes) && options.allowTimes.length;\n\t\t\t\t\t\t\tnow.setHours(h);\n\t\t\t\t\t\t\th = parseInt(now.getHours(), 10);\n\t\t\t\t\t\t\tnow.setMinutes(m);\n\t\t\t\t\t\t\tm = parseInt(now.getMinutes(), 10);\n\t\t\t\t\t\t\tclasses = [];\n\t\t\t\t\t\t\tvar currentMinutesOfDay = 60 * h + m;\n\t\t\t\t\t\t\tif (input.is('[disabled]') || (currentMinutesOfDay >= maxTimeMinutesOfDay) || (currentMinutesOfDay < minTimeMinutesOfDay)) {\n\t\t\t\t\t\t\t\tclasses.push('xdsoft_disabled');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcurrent_time = new Date(_xdsoft_datetime.currentTime);\n\t\t\t\t\t\t\tcurrent_time.setHours(parseInt(_xdsoft_datetime.currentTime.getHours(), 10));\n\n\t\t\t\t\t\t\tif (!isALlowTimesInit) {\n\t\t\t\t\t\t\t\tcurrent_time.setMinutes(Math[options.roundTime](_xdsoft_datetime.currentTime.getMinutes() / options.step) * options.step);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ((options.initTime || options.defaultSelect || datetimepicker.data('changed')) && current_time.getHours() === parseInt(h, 10) && ((!isALlowTimesInit && options.step > 59) || current_time.getMinutes() === parseInt(m, 10))) {\n\t\t\t\t\t\t\t\tif (options.defaultSelect || datetimepicker.data('changed')) {\n\t\t\t\t\t\t\t\t\tclasses.push('xdsoft_current');\n\t\t\t\t\t\t\t\t} else if (options.initTime) {\n\t\t\t\t\t\t\t\t\tclasses.push('xdsoft_init_time');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (parseInt(today.getHours(), 10) === parseInt(h, 10) && parseInt(today.getMinutes(), 10) === parseInt(m, 10)) {\n\t\t\t\t\t\t\t\tclasses.push('xdsoft_today');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttime += '
' + dateHelper.formatDate(now, options.formatTime) + '
';\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!options.allowTimes || !$.isArray(options.allowTimes) || !options.allowTimes.length) {\n\t\t\t\t\t\t\tfor (i = 0, j = 0; i < (options.hours12 ? 12 : 24); i += 1) {\n\t\t\t\t\t\t\t\tfor (j = 0; j < 60; j += options.step) {\n\t\t\t\t\t\t\t\t var currentMinutesOfDay = i * 60 + j;\n\t\t\t\t\t\t\t\t if (currentMinutesOfDay < minTimeMinutesOfDay) continue;\n\t\t\t\t\t\t\t\t if (currentMinutesOfDay >= maxTimeMinutesOfDay) continue;\n\t\t\t\t\t\t\t\t\th = (i < 10 ? '0' : '') + i;\n\t\t\t\t\t\t\t\t\tm = (j < 10 ? '0' : '') + j;\n\t\t\t\t\t\t\t\t\tline_time(h, m);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (i = 0; i < options.allowTimes.length; i += 1) {\n\t\t\t\t\t\t\t\th = _xdsoft_datetime.strtotime(options.allowTimes[i]).getHours();\n\t\t\t\t\t\t\t\tm = _xdsoft_datetime.strtotime(options.allowTimes[i]).getMinutes();\n\t\t\t\t\t\t\t\tline_time(h, m);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttimebox.html(time);\n\n\t\t\t\t\t\topt = '';\n\n\t\t\t\t\t\tfor (i = parseInt(options.yearStart, 10); i <= parseInt(options.yearEnd, 10); i += 1) {\n\t\t\t\t\t\t\topt += '
' + (i + options.yearOffset) + '
';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tyearselect.children().eq(0)\n\t\t\t\t\t\t\t.html(opt);\n\n\t\t\t\t\t\tfor (i = parseInt(options.monthStart, 10), opt = ''; i <= parseInt(options.monthEnd, 10); i += 1) {\n\t\t\t\t\t\t\topt += '
' + options.i18n[globalLocale].months[i] + '
';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmonthselect.children().eq(0).html(opt);\n\t\t\t\t\t\t$(datetimepicker)\n\t\t\t\t\t\t\t.trigger('generate.xdsoft');\n\t\t\t\t\t}, 10);\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t})\n\t\t\t\t.on('afterOpen.xdsoft', function () {\n\t\t\t\t\tif (options.timepicker) {\n\t\t\t\t\t\tvar classType, pheight, height, top;\n\t\t\t\t\t\tif (timebox.find('.xdsoft_current').length) {\n\t\t\t\t\t\t\tclassType = '.xdsoft_current';\n\t\t\t\t\t\t} else if (timebox.find('.xdsoft_init_time').length) {\n\t\t\t\t\t\t\tclassType = '.xdsoft_init_time';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (classType) {\n\t\t\t\t\t\t\tpheight = timeboxparent[0].clientHeight;\n\t\t\t\t\t\t\theight = timebox[0].offsetHeight;\n\t\t\t\t\t\t\ttop = timebox.find(classType).index() * options.timeHeightInTimePicker + 1;\n\t\t\t\t\t\t\tif ((height - pheight) < top) {\n\t\t\t\t\t\t\t\ttop = height - pheight;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttimeboxparent.trigger('scroll_element.xdsoft_scroller', [parseInt(top, 10) / (height - pheight)]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeboxparent.trigger('scroll_element.xdsoft_scroller', [0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\ttimerclick = 0;\n\t\t\tcalendar\n\t\t\t\t.on('touchend click.xdsoft', 'td', function (xdevent) {\n\t\t\t\t\txdevent.stopPropagation(); // Prevents closing of Pop-ups, Modals and Flyouts in Bootstrap\n\t\t\t\t\ttimerclick += 1;\n\t\t\t\t\tvar $this = $(this),\n\t\t\t\t\t\tcurrentTime = _xdsoft_datetime.currentTime;\n\n\t\t\t\t\tif (currentTime === undefined || currentTime === null) {\n\t\t\t\t\t\t_xdsoft_datetime.currentTime = _xdsoft_datetime.now();\n\t\t\t\t\t\tcurrentTime = _xdsoft_datetime.currentTime;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ($this.hasClass('xdsoft_disabled')) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrentTime.setDate(1);\n\t\t\t\t\tcurrentTime.setFullYear($this.data('year'));\n\t\t\t\t\tcurrentTime.setMonth($this.data('month'));\n\t\t\t\t\tcurrentTime.setDate($this.data('date'));\n\n\t\t\t\t\tdatetimepicker.trigger('select.xdsoft', [currentTime]);\n\n\t\t\t\t\tinput.val(_xdsoft_datetime.str());\n\n\t\t\t\t\tif (options.onSelectDate &&\t$.isFunction(options.onSelectDate)) {\n\t\t\t\t\t\toptions.onSelectDate.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), xdevent);\n\t\t\t\t\t}\n\n\t\t\t\t\tdatetimepicker.data('changed', true);\n\t\t\t\t\tdatetimepicker.trigger('xchange.xdsoft');\n\t\t\t\t\tdatetimepicker.trigger('changedatetime.xdsoft');\n\t\t\t\t\tif ((timerclick > 1 || (options.closeOnDateSelect === true || (options.closeOnDateSelect === false && !options.timepicker))) && !options.inline) {\n\t\t\t\t\t\tdatetimepicker.trigger('close.xdsoft');\n\t\t\t\t\t}\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\ttimerclick = 0;\n\t\t\t\t\t}, 200);\n\t\t\t\t});\n\n\t\t\ttimebox\n\t\t\t\t.on('touchstart', 'div', function (xdevent) {\n\t\t\t\t\tthis.touchMoved = false;\n\t\t\t\t})\n\t\t\t\t.on('touchmove', 'div', handleTouchMoved)\n\t\t\t\t.on('touchend click.xdsoft', 'div', function (xdevent) {\n\t\t\t\t\tif (!this.touchMoved) {\n\t\t\t\t\t\txdevent.stopPropagation();\n\t\t\t\t\t\tvar $this = $(this),\n\t\t\t\t\t\t\tcurrentTime = _xdsoft_datetime.currentTime;\n\n\t\t\t\t\t\tif (currentTime === undefined || currentTime === null) {\n\t\t\t\t\t\t\t_xdsoft_datetime.currentTime = _xdsoft_datetime.now();\n\t\t\t\t\t\t\tcurrentTime = _xdsoft_datetime.currentTime;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ($this.hasClass('xdsoft_disabled')) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentTime.setHours($this.data('hour'));\n\t\t\t\t\t\tcurrentTime.setMinutes($this.data('minute'));\n\t\t\t\t\t\tdatetimepicker.trigger('select.xdsoft', [currentTime]);\n\n\t\t\t\t\t\tdatetimepicker.data('input').val(_xdsoft_datetime.str());\n\n\t\t\t\t\t\tif (options.onSelectTime && $.isFunction(options.onSelectTime)) {\n\t\t\t\t\t\t\toptions.onSelectTime.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), xdevent);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdatetimepicker.data('changed', true);\n\t\t\t\t\t\tdatetimepicker.trigger('xchange.xdsoft');\n\t\t\t\t\t\tdatetimepicker.trigger('changedatetime.xdsoft');\n\t\t\t\t\t\tif (options.inline !== true && options.closeOnTimeSelect === true) {\n\t\t\t\t\t\t\tdatetimepicker.trigger('close.xdsoft');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\tdatepicker\n\t\t\t\t.on('mousewheel.xdsoft', function (event) {\n\t\t\t\t\tif (!options.scrollMonth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (event.deltaY < 0) {\n\t\t\t\t\t\t_xdsoft_datetime.nextMonth();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_xdsoft_datetime.prevMonth();\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\n\t\t\tinput\n\t\t\t\t.on('mousewheel.xdsoft', function (event) {\n\t\t\t\t\tif (!options.scrollInput) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (!options.datepicker && options.timepicker) {\n\t\t\t\t\t\tcurrent_time_index = timebox.find('.xdsoft_current').length ? timebox.find('.xdsoft_current').eq(0).index() : 0;\n\t\t\t\t\t\tif (current_time_index + event.deltaY >= 0 && current_time_index + event.deltaY < timebox.children().length) {\n\t\t\t\t\t\t\tcurrent_time_index += event.deltaY;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (timebox.children().eq(current_time_index).length) {\n\t\t\t\t\t\t\ttimebox.children().eq(current_time_index).trigger('mousedown');\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (options.datepicker && !options.timepicker) {\n\t\t\t\t\t\tdatepicker.trigger(event, [event.deltaY, event.deltaX, event.deltaY]);\n\t\t\t\t\t\tif (input.val) {\n\t\t\t\t\t\t\tinput.val(_xdsoft_datetime.str());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdatetimepicker.trigger('changedatetime.xdsoft');\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\tdatetimepicker\n\t\t\t\t.on('changedatetime.xdsoft', function (event) {\n\t\t\t\t\tif (options.onChangeDateTime && $.isFunction(options.onChangeDateTime)) {\n\t\t\t\t\t\tvar $input = datetimepicker.data('input');\n\t\t\t\t\t\toptions.onChangeDateTime.call(datetimepicker, _xdsoft_datetime.currentTime, $input, event);\n\t\t\t\t\t\tdelete options.value;\n\t\t\t\t\t\t$input.trigger('change');\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.on('generate.xdsoft', function () {\n\t\t\t\t\tif (options.onGenerate && $.isFunction(options.onGenerate)) {\n\t\t\t\t\t\toptions.onGenerate.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));\n\t\t\t\t\t}\n\t\t\t\t\tif (triggerAfterOpen) {\n\t\t\t\t\t\tdatetimepicker.trigger('afterOpen.xdsoft');\n\t\t\t\t\t\ttriggerAfterOpen = false;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.on('click.xdsoft', function (xdevent) {\n\t\t\t\t\txdevent.stopPropagation();\n\t\t\t\t});\n\n\t\t\tcurrent_time_index = 0;\n\n\t\t\t/**\n\t\t\t * Runs the callback for each of the specified node's ancestors.\n\t\t\t *\n\t\t\t * Return FALSE from the callback to stop ascending.\n\t\t\t *\n\t\t\t * @param {DOMNode} node\n\t\t\t * @param {Function} callback\n\t\t\t * @returns {undefined}\n\t\t\t */\n\t\t\tforEachAncestorOf = function (node, callback) {\n\t\t\t\tdo {\n\t\t\t\t\tnode = node.parentNode;\n\n\t\t\t\t\tif (!node || callback(node) === false) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} while (node.nodeName !== 'HTML');\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Sets the position of the picker.\n\t\t\t *\n\t\t\t * @returns {undefined}\n\t\t\t */\n\t\t\tsetPos = function () {\n\t\t\t\tvar dateInputOffset,\n\t\t\t\t\tdateInputElem,\n\t\t\t\t\tverticalPosition,\n\t\t\t\t\tleft,\n\t\t\t\t\tposition,\n\t\t\t\t\tdatetimepickerElem,\n\t\t\t\t\tdateInputHasFixedAncestor,\n\t\t\t\t\t$dateInput,\n\t\t\t\t\twindowWidth,\n\t\t\t\t\tverticalAnchorEdge,\n\t\t\t\t\tdatetimepickerCss,\n\t\t\t\t\twindowHeight,\n\t\t\t\t\twindowScrollTop;\n\n\t\t\t\t$dateInput = datetimepicker.data('input');\n\t\t\t\tdateInputOffset = $dateInput.offset();\n\t\t\t\tdateInputElem = $dateInput[0];\n\n\t\t\t\tverticalAnchorEdge = 'top';\n\t\t\t\tverticalPosition = (dateInputOffset.top + dateInputElem.offsetHeight) - 1;\n\t\t\t\tleft = dateInputOffset.left;\n\t\t\t\tposition = \"absolute\";\n\n\t\t\t\twindowWidth = $(options.contentWindow).width();\n\t\t\t\twindowHeight = $(options.contentWindow).height();\n\t\t\t\twindowScrollTop = $(options.contentWindow).scrollTop();\n\n\t\t\t\tif ((options.ownerDocument.documentElement.clientWidth - dateInputOffset.left) < datepicker.parent().outerWidth(true)) {\n\t\t\t\t\tvar diff = datepicker.parent().outerWidth(true) - dateInputElem.offsetWidth;\n\t\t\t\t\tleft = left - diff;\n\t\t\t\t}\n\n\t\t\t\tif ($dateInput.parent().css('direction') === 'rtl') {\n\t\t\t\t\tleft -= (datetimepicker.outerWidth() - $dateInput.outerWidth());\n\t\t\t\t}\n\n\t\t\t\tif (options.fixed) {\n\t\t\t\t\tverticalPosition -= windowScrollTop;\n\t\t\t\t\tleft -= $(options.contentWindow).scrollLeft();\n\t\t\t\t\tposition = \"fixed\";\n\t\t\t\t} else {\n\t\t\t\t\tdateInputHasFixedAncestor = false;\n\n\t\t\t\t\tforEachAncestorOf(dateInputElem, function (ancestorNode) {\n\t\t\t\t\t\tif (ancestorNode === null) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.contentWindow.getComputedStyle(ancestorNode).getPropertyValue('position') === 'fixed') {\n\t\t\t\t\t\t\tdateInputHasFixedAncestor = true;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (dateInputHasFixedAncestor && !options.insideParent) {\n\t\t\t\t\t\tposition = 'fixed';\n\n\t\t\t\t\t\t//If the picker won't fit entirely within the viewport then display it above the date input.\n\t\t\t\t\t\tif (verticalPosition + datetimepicker.outerHeight() > windowHeight + windowScrollTop) {\n\t\t\t\t\t\t\tverticalAnchorEdge = 'bottom';\n\t\t\t\t\t\t\tverticalPosition = (windowHeight + windowScrollTop) - dateInputOffset.top;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tverticalPosition -= windowScrollTop;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (verticalPosition + datetimepicker[0].offsetHeight > windowHeight + windowScrollTop) {\n\t\t\t\t\t\t\tverticalPosition = dateInputOffset.top - datetimepicker[0].offsetHeight + 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (verticalPosition < 0) {\n\t\t\t\t\t\tverticalPosition = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (left + dateInputElem.offsetWidth > windowWidth) {\n\t\t\t\t\t\tleft = windowWidth - dateInputElem.offsetWidth;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdatetimepickerElem = datetimepicker[0];\n\n\t\t\t\tforEachAncestorOf(datetimepickerElem, function (ancestorNode) {\n\t\t\t\t\tvar ancestorNodePosition;\n\n\t\t\t\t\tancestorNodePosition = options.contentWindow.getComputedStyle(ancestorNode).getPropertyValue('position');\n\n\t\t\t\t\tif (ancestorNodePosition === 'relative' && windowWidth >= ancestorNode.offsetWidth) {\n\t\t\t\t\t\tleft = left - ((windowWidth - ancestorNode.offsetWidth) / 2);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tdatetimepickerCss = {\n\t\t\t\t\tposition: position,\n\t\t\t\t\tleft: options.insideParent ? dateInputElem.offsetLeft : left,\n\t\t\t\t\ttop: '', //Initialize to prevent previous values interfering with new ones.\n\t\t\t\t\tbottom: '' //Initialize to prevent previous values interfering with new ones.\n\t\t\t\t};\n\n\t\t\t\tif (options.insideParent) {\n datetimepickerCss[verticalAnchorEdge] = dateInputElem.offsetTop + dateInputElem.offsetHeight;\n } else {\n datetimepickerCss[verticalAnchorEdge] = verticalPosition;\n }\n\n\t\t\t\tdatetimepicker.css(datetimepickerCss);\n\t\t\t};\n\n\t\t\tdatetimepicker\n\t\t\t\t.on('open.xdsoft', function (event) {\n\t\t\t\t\tvar onShow = true;\n\t\t\t\t\tif (options.onShow && $.isFunction(options.onShow)) {\n\t\t\t\t\t\tonShow = options.onShow.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), event);\n\t\t\t\t\t}\n\t\t\t\t\tif (onShow !== false) {\n\t\t\t\t\t\tdatetimepicker.show();\n\t\t\t\t\t\tsetPos();\n\t\t\t\t\t\t$(options.contentWindow)\n\t\t\t\t\t\t\t.off('resize.xdsoft', setPos)\n\t\t\t\t\t\t\t.on('resize.xdsoft', setPos);\n\n\t\t\t\t\t\tif (options.closeOnWithoutClick) {\n\t\t\t\t\t\t\t$([options.ownerDocument.body, options.contentWindow]).on('touchstart mousedown.xdsoft', function arguments_callee6() {\n\t\t\t\t\t\t\t\tdatetimepicker.trigger('close.xdsoft');\n\t\t\t\t\t\t\t\t$([options.ownerDocument.body, options.contentWindow]).off('touchstart mousedown.xdsoft', arguments_callee6);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.on('close.xdsoft', function (event) {\n\t\t\t\t\tvar onClose = true;\n\t\t\t\t\tmonth_picker\n\t\t\t\t\t\t.find('.xdsoft_month,.xdsoft_year')\n\t\t\t\t\t\t.find('.xdsoft_select')\n\t\t\t\t\t\t.hide();\n\t\t\t\t\tif (options.onClose && $.isFunction(options.onClose)) {\n\t\t\t\t\t\tonClose = options.onClose.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), event);\n\t\t\t\t\t}\n\t\t\t\t\tif (onClose !== false && !options.opened && !options.inline) {\n\t\t\t\t\t\tdatetimepicker.hide();\n\t\t\t\t\t}\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t})\n\t\t\t\t.on('toggle.xdsoft', function () {\n\t\t\t\t\tif (datetimepicker.is(':visible')) {\n\t\t\t\t\t\tdatetimepicker.trigger('close.xdsoft');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdatetimepicker.trigger('open.xdsoft');\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.data('input', input);\n\n\t\t\ttimer = 0;\n\n\t\t\tdatetimepicker.data('xdsoft_datetime', _xdsoft_datetime);\n\t\t\tdatetimepicker.setOptions(options);\n\n\t\t\tfunction getCurrentValue() {\n\t\t\t\tvar ct = false, time;\n\n\t\t\t\tif (options.startDate) {\n\t\t\t\t\tct = _xdsoft_datetime.strToDate(options.startDate);\n\t\t\t\t} else {\n\t\t\t\t\tct = options.value || ((input && input.val && input.val()) ? input.val() : '');\n\t\t\t\t\tif (ct) {\n\t\t\t\t\t\tct = _xdsoft_datetime.strToDateTime(ct);\n\t\t\t\t\t\tif (options.yearOffset) {\n\t\t\t\t\t\t\tct = new Date(ct.getFullYear() - options.yearOffset, ct.getMonth(), ct.getDate(), ct.getHours(), ct.getMinutes(), ct.getSeconds(), ct.getMilliseconds());\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (options.defaultDate) {\n\t\t\t\t\t\tct = _xdsoft_datetime.strToDateTime(options.defaultDate);\n\t\t\t\t\t\tif (options.defaultTime) {\n\t\t\t\t\t\t\ttime = _xdsoft_datetime.strtotime(options.defaultTime);\n\t\t\t\t\t\t\tct.setHours(time.getHours());\n\t\t\t\t\t\t\tct.setMinutes(time.getMinutes());\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (ct && _xdsoft_datetime.isValidDate(ct)) {\n\t\t\t\t\tdatetimepicker.data('changed', true);\n\t\t\t\t} else {\n\t\t\t\t\tct = '';\n\t\t\t\t}\n\n\t\t\t\treturn ct || 0;\n\t\t\t}\n\n\t\t\tfunction setMask(options) {\n\n\t\t\t\tvar isValidValue = function (mask, value) {\n\t\t\t\t\t\tvar reg = mask\n\t\t\t\t\t\t\t.replace(/([\\[\\]\\/\\{\\}\\(\\)\\-\\.\\+]{1})/g, '\\\\$1')\n\t\t\t\t\t\t\t.replace(/_/g, '{digit+}')\n\t\t\t\t\t\t\t.replace(/([0-9]{1})/g, '{digit$1}')\n\t\t\t\t\t\t\t.replace(/\\{digit([0-9]{1})\\}/g, '[0-$1_]{1}')\n\t\t\t\t\t\t\t.replace(/\\{digit[\\+]\\}/g, '[0-9_]{1}');\n\t\t\t\t\t\treturn (new RegExp(reg)).test(value);\n\t\t\t\t\t},\n\t\t\t\t\tgetCaretPos = function (input) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (options.ownerDocument.selection && options.ownerDocument.selection.createRange) {\n\t\t\t\t\t\t\t\tvar range = options.ownerDocument.selection.createRange();\n\t\t\t\t\t\t\t\treturn range.getBookmark().charCodeAt(2) - 2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (input.setSelectionRange) {\n\t\t\t\t\t\t\t\treturn input.selectionStart;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\treturn 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tsetCaretPos = function (node, pos) {\n\t\t\t\t\t\tnode = (typeof node === \"string\" || node instanceof String) ? options.ownerDocument.getElementById(node) : node;\n\t\t\t\t\t\tif (!node) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (node.createTextRange) {\n\t\t\t\t\t\t\tvar textRange = node.createTextRange();\n\t\t\t\t\t\t\ttextRange.collapse(true);\n\t\t\t\t\t\t\ttextRange.moveEnd('character', pos);\n\t\t\t\t\t\t\ttextRange.moveStart('character', pos);\n\t\t\t\t\t\t\ttextRange.select();\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (node.setSelectionRange) {\n\t\t\t\t\t\t\tnode.setSelectionRange(pos, pos);\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t};\n\n\t\t\t\tif(options.mask) {\n\t\t\t\t\tinput.off('keydown.xdsoft');\n\t\t\t\t}\n\n\t\t\t\tif (options.mask === true) {\n\t\t\t\t\tif (dateHelper.formatMask) {\n\t\t\t\t\t\toptions.mask = dateHelper.formatMask(options.format)\n\t\t\t\t\t} else {\n\t\t\t\t\t\toptions.mask = options.format\n\t\t\t\t\t\t\t.replace(/Y/g, '9999')\n\t\t\t\t\t\t\t.replace(/F/g, '9999')\n\t\t\t\t\t\t\t.replace(/m/g, '19')\n\t\t\t\t\t\t\t.replace(/d/g, '39')\n\t\t\t\t\t\t\t.replace(/H/g, '29')\n\t\t\t\t\t\t\t.replace(/i/g, '59')\n\t\t\t\t\t\t\t.replace(/s/g, '59');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ($.type(options.mask) === 'string') {\n\t\t\t\t\tif (!isValidValue(options.mask, input.val())) {\n\t\t\t\t\t\tinput.val(options.mask.replace(/[0-9]/g, '_'));\n\t\t\t\t\t\tsetCaretPos(input[0], 0);\n\t\t\t\t\t}\n\n\t\t\t\t\tinput.on('paste.xdsoft', function (event) {\n\t\t\t\t\t // couple options here\n\t\t\t\t\t // 1. return false - tell them they can't paste\n\t\t\t\t\t // 2. insert over current characters - minimal validation\n\t\t\t\t\t // 3. full fledged parsing and validation\n\t\t\t\t\t // let's go option 2 for now\n\n\t\t\t\t\t // fires multiple times for some reason\n\n\t\t\t\t\t // https://stackoverflow.com/a/30496488/1366033\n\t\t\t\t\t var clipboardData = event.clipboardData || event.originalEvent.clipboardData || window.clipboardData,\n\t\t\t\t\t\tpastedData = clipboardData.getData('text'),\n\t\t\t\t\t\tval = this.value,\n\t\t\t\t\t\tpos = this.selectionStart\n\n\t\t\t\t\t var valueBeforeCursor = val.substr(0, pos);\n\t\t\t\t\t var valueAfterPaste = val.substr(pos + pastedData.length);\n\n\t\t\t\t\t val = valueBeforeCursor + pastedData + valueAfterPaste; \n\t\t\t\t\t pos += pastedData.length;\n\n\t\t\t\t\t if (isValidValue(options.mask, val)) {\n\t\t\t\t\t\tthis.value = val;\n\t\t\t\t\t\tsetCaretPos(this, pos);\n\t\t\t\t\t } else if ($.trim(val) === '') {\n\t\t\t\t\t\tthis.value = options.mask.replace(/[0-9]/g, '_');\n\t\t\t\t\t } else {\n\t\t\t\t\t\tinput.trigger('error_input.xdsoft');\n\t\t\t\t\t }\n\n\t\t\t\t\t event.preventDefault();\n\t\t\t\t\t return false;\n\t\t\t\t\t });\n\n\t\t\t\t\t input.on('keydown.xdsoft', function (event) {\n\t\t\t\t\t var val = this.value,\n\t\t\t\t\t\tkey = event.which,\n\t\t\t\t\t\tpos = this.selectionStart,\n\t\t\t\t\t\tselEnd = this.selectionEnd,\n\t\t\t\t\t\thasSel = pos !== selEnd,\n\t\t\t\t\t\tdigit;\n\n\t\t\t\t\t // only alow these characters\n\t\t\t\t\t if (((key >= KEY0 && key <= KEY9) ||\n\t\t\t\t\t\t (key >= _KEY0 && key <= _KEY9)) || \n\t\t\t\t\t\t (key === BACKSPACE || key === DEL)) {\n\n\t\t\t\t\t // get char to insert which is new character or placeholder ('_')\n\t\t\t\t\t digit = (key === BACKSPACE || key === DEL) ? '_' :\n\t\t\t\t\t\t\t String.fromCharCode((_KEY0 <= key && key <= _KEY9) ? key - KEY0 : key);\n\n\t\t\t\t\t\t// we're deleting something, we're not at the start, and have normal cursor, move back one\n\t\t\t\t\t\t// if we have a selection length, cursor actually sits behind deletable char, not in front\n\t\t\t\t\t\tif (key === BACKSPACE && pos && !hasSel) {\n\t\t\t\t\t\t pos -= 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// don't stop on a separator, continue whatever direction you were going\n\t\t\t\t\t\t// value char - keep incrementing position while on separator char and we still have room\n\t\t\t\t\t\t// del char - keep decrementing position while on separator char and we still have room\n\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t var maskValueAtCurPos = options.mask.substr(pos, 1);\n\t\t\t\t\t\t var posShorterThanMaskLength = pos < options.mask.length;\n\t\t\t\t\t\t var posGreaterThanZero = pos > 0;\n\t\t\t\t\t\t var notNumberOrPlaceholder = /[^0-9_]/;\n\t\t\t\t\t\t var curPosOnSep = notNumberOrPlaceholder.test(maskValueAtCurPos);\n\t\t\t\t\t\t var continueMovingPosition = curPosOnSep && posShorterThanMaskLength && posGreaterThanZero\n\n\t\t\t\t\t\t // if we hit a real char, stay where we are\n\t\t\t\t\t\t if (!continueMovingPosition) break;\n\n\t\t\t\t\t\t // hitting backspace in a selection, you can possibly go back any further - go forward\n\t\t\t\t\t\t pos += (key === BACKSPACE && !hasSel) ? -1 : 1;\n\n }\n \n if (event.metaKey) { // cmd has been pressed\n pos = 0;\n hasSel = true;\n }\n\n\t\t\t\t\t\tif (hasSel) {\n\t\t\t\t\t\t // pos might have moved so re-calc length\n\t\t\t\t\t\t var selLength = selEnd - pos\n\n\t\t\t\t\t\t // if we have a selection length we will wipe out entire selection and replace with default template for that range\n\t\t\t\t\t\t var defaultBlank = options.mask.replace(/[0-9]/g, '_');\n\t\t\t\t\t\t var defaultBlankSelectionReplacement = defaultBlank.substr(pos, selLength); \n\t\t\t\t\t\t var selReplacementRemainder = defaultBlankSelectionReplacement.substr(1) // might be empty\n\n\t\t\t\t\t\t var valueBeforeSel = val.substr(0, pos);\n\t\t\t\t\t\t var insertChars = digit + selReplacementRemainder;\n\t\t\t\t\t\t var charsAfterSelection = val.substr(pos + selLength);\n\n\t\t\t\t\t\t val = valueBeforeSel + insertChars + charsAfterSelection\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t var valueBeforeCursor = val.substr(0, pos);\n\t\t\t\t\t\t var insertChar = digit;\n\t\t\t\t\t\t var valueAfterNextChar = val.substr(pos + 1);\n\n\t\t\t\t\t\t val = valueBeforeCursor + insertChar + valueAfterNextChar\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ($.trim(val) === '') {\n\t\t\t\t\t\t // if empty, set to default\n\t\t\t\t\t\t val = defaultBlank\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t // if at the last character don't need to do anything\n\t\t\t\t\t\t if (pos === options.mask.length) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t }\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// resume cursor location\n\t\t\t\t\t\tpos += (key === BACKSPACE) ? 0 : 1;\n\t\t\t\t\t\t// don't stop on a separator, continue whatever direction you were going\n\t\t\t\t\t\twhile (/[^0-9_]/.test(options.mask.substr(pos, 1)) && pos < options.mask.length && pos > 0) {\n\t\t\t\t\t\t pos += (key === BACKSPACE) ? 0 : 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (isValidValue(options.mask, val)) {\n\t\t\t\t\t\t this.value = val;\n\t\t\t\t\t\t setCaretPos(this, pos);\n\t\t\t\t\t\t} else if ($.trim(val) === '') {\n\t\t\t\t\t\t this.value = options.mask.replace(/[0-9]/g, '_');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t input.trigger('error_input.xdsoft');\n\t\t\t\t\t\t}\n\t\t\t\t\t } else {\n\t\t\t\t\t\tif (([AKEY, CKEY, VKEY, ZKEY, YKEY].indexOf(key) !== -1 && ctrlDown) || [ESC, ARROWUP, ARROWDOWN, ARROWLEFT, ARROWRIGHT, F5, CTRLKEY, TAB, ENTER].indexOf(key) !== -1) {\n\t\t\t\t\t\t return true;\n\t\t\t\t\t\t}\n\t\t\t\t\t }\n\n\t\t\t\t\t event.preventDefault();\n\t\t\t\t\t return false;\n\t\t\t\t\t });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_xdsoft_datetime.setCurrentTime(getCurrentValue());\n\n\t\t\tinput\n\t\t\t\t.data('xdsoft_datetimepicker', datetimepicker)\n\t\t\t\t.on('open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart', function () {\n\t\t\t\t\tif (input.is(':disabled') || (input.data('xdsoft_datetimepicker').is(':visible') && options.closeOnInputClick)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (!options.openOnFocus) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\ttimer = setTimeout(function () {\n\t\t\t\t\t\tif (input.is(':disabled')) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttriggerAfterOpen = true;\n\t\t\t\t\t\t_xdsoft_datetime.setCurrentTime(getCurrentValue(), true);\n\t\t\t\t\t\tif(options.mask) {\n\t\t\t\t\t\t\tsetMask(options);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdatetimepicker.trigger('open.xdsoft');\n\t\t\t\t\t}, 100);\n\t\t\t\t})\n\t\t\t\t.on('keydown.xdsoft', function (event) {\n\t\t\t\t\tvar elementSelector,\n\t\t\t\t\t\tkey = event.which;\n\t\t\t\t\tif ([ENTER].indexOf(key) !== -1 && options.enterLikeTab) {\n\t\t\t\t\t\telementSelector = $(\"input:visible,textarea:visible,button:visible,a:visible\");\n\t\t\t\t\t\tdatetimepicker.trigger('close.xdsoft');\n\t\t\t\t\t\telementSelector.eq(elementSelector.index(this) + 1).focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif ([TAB].indexOf(key) !== -1) {\n\t\t\t\t\t\tdatetimepicker.trigger('close.xdsoft');\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.on('blur.xdsoft', function () {\n\t\t\t\t\tdatetimepicker.trigger('close.xdsoft');\n\t\t\t\t});\n\t\t};\n\t\tdestroyDateTimePicker = function (input) {\n\t\t\tvar datetimepicker = input.data('xdsoft_datetimepicker');\n\t\t\tif (datetimepicker) {\n\t\t\t\tdatetimepicker.data('xdsoft_datetime', null);\n\t\t\t\tdatetimepicker.remove();\n\t\t\t\tinput\n\t\t\t\t\t.data('xdsoft_datetimepicker', null)\n\t\t\t\t\t.off('.xdsoft');\n\t\t\t\t$(options.contentWindow).off('resize.xdsoft');\n\t\t\t\t$([options.contentWindow, options.ownerDocument.body]).off('mousedown.xdsoft touchstart');\n\t\t\t\tif (input.unmousewheel) {\n\t\t\t\t\tinput.unmousewheel();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\t$(options.ownerDocument)\n .off('keydown.xdsoftctrl keyup.xdsoftctrl')\n .off('keydown.xdsoftcmd keyup.xdsoftcmd')\n\t\t\t.on('keydown.xdsoftctrl', function (e) {\n\t\t\t\tif (e.keyCode === CTRLKEY) {\n\t\t\t\t\tctrlDown = true;\n }\n\t\t\t})\n\t\t\t.on('keyup.xdsoftctrl', function (e) {\n\t\t\t\tif (e.keyCode === CTRLKEY) {\n\t\t\t\t\tctrlDown = false;\n }\n })\n .on('keydown.xdsoftcmd', function (e) {\n if (e.keyCode === CMDKEY) {\n cmdDown = true;\n }\n\t\t\t})\n\t\t\t.on('keyup.xdsoftcmd', function (e) {\n if (e.keyCode === CMDKEY) {\n cmdDown = false;\n }\n\t\t\t});\n\n\t\tthis.each(function () {\n\t\t\tvar datetimepicker = $(this).data('xdsoft_datetimepicker'), $input;\n\t\t\tif (datetimepicker) {\n\t\t\t\tif ($.type(opt) === 'string') {\n\t\t\t\t\tswitch (opt) {\n\t\t\t\t\t\tcase 'show':\n\t\t\t\t\t\t\t$(this).select().focus();\n\t\t\t\t\t\t\tdatetimepicker.trigger('open.xdsoft');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'hide':\n\t\t\t\t\t\t\tdatetimepicker.trigger('close.xdsoft');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'toggle':\n\t\t\t\t\t\t\tdatetimepicker.trigger('toggle.xdsoft');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'destroy':\n\t\t\t\t\t\t\tdestroyDateTimePicker($(this));\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'reset':\n\t\t\t\t\t\t\tthis.value = this.defaultValue;\n\t\t\t\t\t\t\tif (!this.value || !datetimepicker.data('xdsoft_datetime').isValidDate(dateHelper.parseDate(this.value, options.format))) {\n\t\t\t\t\t\t\t\tdatetimepicker.data('changed', false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdatetimepicker.data('xdsoft_datetime').setCurrentTime(this.value);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'validate':\n\t\t\t\t\t\t\t$input = datetimepicker.data('input');\n\t\t\t\t\t\t\t$input.trigger('blur.xdsoft');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif (datetimepicker[opt] && $.isFunction(datetimepicker[opt])) {\n\t\t\t\t\t\t\t\tresult = datetimepicker[opt](opt2);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdatetimepicker\n\t\t\t\t\t\t.setOptions(opt);\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif ($.type(opt) !== 'string') {\n\t\t\t\tif (!options.lazyInit || options.open || options.inline) {\n\t\t\t\t\tcreateDateTimePicker($(this));\n\t\t\t\t} else {\n\t\t\t\t\tlazyInit($(this));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t};\n\n\t$.fn.datetimepicker.defaults = default_options;\n\n\tfunction HighlightedDate(date, desc, style) {\n\t\t\"use strict\";\n\t\tthis.date = date;\n\t\tthis.desc = desc;\n\t\tthis.style = style;\n\t}\n};\n\n;(function (factory) {\n\tfactory(jQuery);\n\treturn;\n\t/*\n\tif ( typeof define === 'function' && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine(['jquery', 'jquery-mousewheel'], factory);\n\t} else if (typeof exports === 'object') {\n\t\t// Node/CommonJS style for Browserify\n\t\tmodule.exports = factory(require('jquery'));;\n\t} else {\n\t\t// Browser globals\n\t\tfactory(jQuery);\n\t}*/\n}(datetimepickerFactory));\n\n\n/*!\n * jQuery Mousewheel 3.1.13\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n */\n\n(function (factory) {\n\tfactory(jQuery);\n\t/*\n if ( typeof define === 'function' && define.amd ) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS style for Browserify\n module.exports = factory;\n } else {\n // Browser globals\n factory(jQuery);\n }*/\n}(function ($) {\n\n var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],\n toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?\n ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],\n slice = Array.prototype.slice,\n nullLowestDeltaTimeout, lowestDelta;\n\n if ( $.event.fixHooks ) {\n for ( var i = toFix.length; i; ) {\n $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;\n }\n }\n\n var special = $.event.special.mousewheel = {\n version: '3.1.12',\n\n setup: function() {\n if ( this.addEventListener ) {\n for ( var i = toBind.length; i; ) {\n this.addEventListener( toBind[--i], handler, false );\n }\n } else {\n this.onmousewheel = handler;\n }\n // Store the line height and page height for this particular element\n $.data(this, 'mousewheel-line-height', special.getLineHeight(this));\n $.data(this, 'mousewheel-page-height', special.getPageHeight(this));\n },\n\n teardown: function() {\n if ( this.removeEventListener ) {\n for ( var i = toBind.length; i; ) {\n this.removeEventListener( toBind[--i], handler, false );\n }\n } else {\n this.onmousewheel = null;\n }\n // Clean up the data we added to the element\n $.removeData(this, 'mousewheel-line-height');\n $.removeData(this, 'mousewheel-page-height');\n },\n\n getLineHeight: function(elem) {\n var $elem = $(elem),\n $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();\n if (!$parent.length) {\n $parent = $('body');\n }\n return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;\n },\n\n getPageHeight: function(elem) {\n return $(elem).height();\n },\n\n settings: {\n adjustOldDeltas: true, // see shouldAdjustOldDeltas() below\n normalizeOffset: true // calls getBoundingClientRect for each event\n }\n };\n\n $.fn.extend({\n mousewheel: function(fn) {\n return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');\n },\n\n unmousewheel: function(fn) {\n return this.unbind('mousewheel', fn);\n }\n });\n\n\n function handler(event) {\n var orgEvent = event || window.event,\n args = slice.call(arguments, 1),\n delta = 0,\n deltaX = 0,\n deltaY = 0,\n absDelta = 0,\n offsetX = 0,\n offsetY = 0;\n event = $.event.fix(orgEvent);\n event.type = 'mousewheel';\n\n // Old school scrollwheel delta\n if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; }\n if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; }\n if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; }\n if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }\n\n // Firefox < 17 horizontal scrolling related to DOMMouseScroll event\n if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {\n deltaX = deltaY * -1;\n deltaY = 0;\n }\n\n // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy\n delta = deltaY === 0 ? deltaX : deltaY;\n\n // New school wheel delta (wheel event)\n if ( 'deltaY' in orgEvent ) {\n deltaY = orgEvent.deltaY * -1;\n delta = deltaY;\n }\n if ( 'deltaX' in orgEvent ) {\n deltaX = orgEvent.deltaX;\n if ( deltaY === 0 ) { delta = deltaX * -1; }\n }\n\n // No change actually happened, no reason to go any further\n if ( deltaY === 0 && deltaX === 0 ) { return; }\n\n // Need to convert lines and pages to pixels if we aren't already in pixels\n // There are three delta modes:\n // * deltaMode 0 is by pixels, nothing to do\n // * deltaMode 1 is by lines\n // * deltaMode 2 is by pages\n if ( orgEvent.deltaMode === 1 ) {\n var lineHeight = $.data(this, 'mousewheel-line-height');\n delta *= lineHeight;\n deltaY *= lineHeight;\n deltaX *= lineHeight;\n } else if ( orgEvent.deltaMode === 2 ) {\n var pageHeight = $.data(this, 'mousewheel-page-height');\n delta *= pageHeight;\n deltaY *= pageHeight;\n deltaX *= pageHeight;\n }\n\n // Store lowest absolute delta to normalize the delta values\n absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );\n\n if ( !lowestDelta || absDelta < lowestDelta ) {\n lowestDelta = absDelta;\n\n // Adjust older deltas if necessary\n if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\n lowestDelta /= 40;\n }\n }\n\n // Adjust older deltas if necessary\n if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\n // Divide all the things by 40!\n delta /= 40;\n deltaX /= 40;\n deltaY /= 40;\n }\n\n // Get a whole, normalized value for the deltas\n delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta);\n deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);\n deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);\n\n // Normalise offsetX and offsetY properties\n if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {\n var boundingRect = this.getBoundingClientRect();\n offsetX = event.clientX - boundingRect.left;\n offsetY = event.clientY - boundingRect.top;\n }\n\n // Add information to the event object\n event.deltaX = deltaX;\n event.deltaY = deltaY;\n event.deltaFactor = lowestDelta;\n event.offsetX = offsetX;\n event.offsetY = offsetY;\n // Go ahead and set deltaMode to 0 since we converted to pixels\n // Although this is a little odd since we overwrite the deltaX/Y\n // properties with normalized deltas.\n event.deltaMode = 0;\n\n // Add event and delta to the front of the arguments\n args.unshift(event, delta, deltaX, deltaY);\n\n // Clearout lowestDelta after sometime to better\n // handle multiple device types that give different\n // a different lowestDelta\n // Ex: trackpad = 3 and mouse wheel = 120\n if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }\n nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);\n\n return ($.event.dispatch || $.event.handle).apply(this, args);\n }\n\n function nullLowestDelta() {\n lowestDelta = null;\n }\n\n function shouldAdjustOldDeltas(orgEvent, absDelta) {\n // If this is an older event and the delta is divisable by 120,\n // then we are assuming that the browser is treating this as an\n // older mouse wheel event and that we should divide the deltas\n // by 40 to try and get a more usable deltaFactor.\n // Side note, this actually impacts the reported scroll distance\n // in older browsers and can cause scrolling to be slower than native.\n // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.\n return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;\n }\n\n}));\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Moment from \"moment\";\r\nimport $ from \"jquery\";\r\nimport \"./datetimepicker/jquery.datetimepicker.full.js\";\r\nimport \"./datetimepicker/jquery.datetimepicker.min.css\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n \"& > *\": {\r\n margin: theme.spacing(1),\r\n },\r\n },\r\n}));\r\n\r\nclass DateTimePicker extends React.Component {\r\n componentDidMount() {\r\n this.$el = $(this.el);\r\n this.$el.datetimepicker({\r\n\t});\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n (this.el = el)} />\r\n
\r\n );\r\n }\r\n}\r\nexport default DateTimePicker;\r\n","import React from \"react\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport LockOutlinedIcon from \"@material-ui/icons/LockOutlined\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport DateTimePicker from \"./controls/DateTimePicker\";\r\nimport Datetime from \"react-datetime\";\r\nimport \"react-datetime/css/react-datetime.css\";\r\nimport ThoiTietEditDialog from \"./danhmuc/ThoiTietEditDialog\";\r\nimport MapViewControl from \"./MapViewControl\";\r\nimport localConfig from \"local-storage\";\r\n\r\nconst myLib = require(\"../lib/MyLib\");\r\nconst server = require(\"../lib/server\");\r\n\r\nclass LoginPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_coquan: false, // co dang load ding danh muc nguon tin ko\r\n source_coquan: [], //danh muc options cho nguon tin\r\n UserName: localConfig.get(\"username\") === undefined ? '' : localConfig.get('username'),\r\n Password: \"\",\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.loadDanhmuc();\r\n }\r\n loadDanhmuc() {\r\n }\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s[fieldName] = value;\r\n s.dataChanged = true;\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n {1 === 0 ?\r\n
\r\n \r\n
: null\r\n }\r\n {1 === 1 ? (\r\n
\r\n \r\n \r\n \r\n \r\n Đăng nhập\r\n \r\n
\r\n \r\n this.saveField(\"UserName\", event.target.value)\r\n }\r\n />\r\n \r\n this.saveField(\"Password\", event.target.value)\r\n }\r\n />\r\n {this.state.saving ? (\r\n \r\n ) : (\r\n {\r\n //submit login\r\n this.setState({ saving: true, errorLog: \"\" });\r\n var user = {\r\n UserName: this.state.UserName,\r\n Password: this.state.Password,\r\n };\r\n server\r\n .post(\"user/login\", user)\r\n .then((response) => {\r\n localConfig.set('username', user.UserName);\r\n response.Quyen = JSON.parse(response.Quyen);\r\n this.setState({\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n saving: false,\r\n });\r\n if (this.props.onLogged) {\r\n this.props.onLogged(true, response);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n }}\r\n >\r\n Đăng nhập\r\n \r\n )}\r\n \r\n \r\n \r\n {this.state.errorLog !== \"\" ? this.state.errorLog : null}\r\n \r\n \r\n \r\n \r\n
\r\n ) : null}\r\n \r\n \r\n {\"Bản quyền © \"}\r\n \r\n Trung tâm Phối hợp Tìm kiếm Cứu nạn\r\n {\" \"}\r\n {new Date().getFullYear()}\r\n {\".\"}\r\n \r\n {1 == 0 ? (\r\n \r\n this.setState(\r\n {\r\n open_edit_sukien: false,\r\n Editting_MaKV: undefined,\r\n showConfirmXoa: false,\r\n },\r\n () => {\r\n if (result === true) this.handleSearch();\r\n }\r\n )\r\n }\r\n />\r\n ) : null}\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n paper: {\r\n marginTop: theme.spacing(8),\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n form: {\r\n width: \"100%\", // Fix IE 11 issue.\r\n marginTop: theme.spacing(1),\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(LoginPage);\r\n","module.exports = __webpack_public_path__ + \"static/media/logo.5d5d9eef.svg\";","//Cugn cap cac style cho viec drawing\r\nimport React from \"react\";\r\nimport ol_style_Style from \"ol/style/Style\";\r\nimport ol_style_Fill from \"ol/style/Fill\";\r\nimport ol_style_Icon from \"ol/style/Icon\";\r\nimport ol_style_Text from \"ol/style/Text\";\r\nimport ol_style_Stroke from \"ol/style/Stroke\";\r\nimport ol_style_Circle from \"ol/style/Circle\";\r\nimport ol_Feature from \"ol/Feature\";\r\nimport ol_source_Vector from \"ol/source/Vector\";\r\nimport ol_geom_Point from \"ol/geom/Point\";\r\n\r\nconst myLib = require('../lib/MyLib');\r\n\r\nvar openSansAdded = false;\r\n// http://stackoverflow.com/questions/14484787/wrap-text-in-javascript\r\nfunction stringDivider(str, width, spaceReplacer) {\r\n if (str.length > width) {\r\n var p = width;\r\n while (p > 0 && str[p] !== \" \" && str[p] !== \"-\") {\r\n p--;\r\n }\r\n if (p > 0) {\r\n var left;\r\n if (str.substring(p, p + 1) === \"-\") {\r\n left = str.substring(0, p + 1);\r\n } else {\r\n left = str.substring(0, p);\r\n }\r\n var right = str.substring(p + 1);\r\n return left + spaceReplacer + stringDivider(right, width, spaceReplacer);\r\n }\r\n }\r\n return str;\r\n}\r\n\r\nvar getText = function (feature, resolution) {\r\n var type = \"normal\";\r\n var maxResolution = 0.02;\r\n var geo = feature.get(\"type\"); //xac dinh loai\r\n var text = \"\";\r\n if (geo === \"Point\") {\r\n var toado = feature.getGeometry().getCoordinates();\r\n var lon = toado[0];\r\n var lat = toado[1];\r\n text = '' + myLib.latToDMS(lat) + '-' + myLib.lonToDMS(lon) + '';\r\n }\r\n var placement = undefined;\r\n if (resolution > maxResolution) {\r\n text = \"\";\r\n } else if (type === \"hide\") {\r\n text = \"\";\r\n } else if (type === \"shorten\") {\r\n text = text.trunc(12);\r\n } else if (type === \"wrap\" && (!placement || placement !== \"line\")) {\r\n text = stringDivider(text, 16, \"\\n\");\r\n }\r\n return text;\r\n};\r\n\r\nfunction createTextStyle(feature, resolution) {\r\n var align = \"center\";\r\n var baseline = \"bottom\";\r\n var size = \"14px\";\r\n var height = 1;\r\n var offsetX = 0;\r\n var offsetY = 24;\r\n var weight = \"normal\";\r\n var placement = undefined;\r\n var maxAngle = undefined;\r\n var overflow = undefined;\r\n var rotation = 0;\r\n var font = weight + \" \" + size + \"/\" + height + \" Arial\";\r\n var fillColor = \"#aa3300\";\r\n var outlineColor = \"white\";\r\n var outlineWidth = 3;\r\n\r\n var t = new ol_style_Text({\r\n textAlign: align == \"\" ? undefined : align,\r\n textBaseline: baseline,\r\n font: font,\r\n text: getText(feature, resolution),\r\n fill: new ol_style_Fill({ color: fillColor }),\r\n stroke: new ol_style_Stroke({ color: outlineColor, width: outlineWidth }),\r\n offsetX: offsetX,\r\n offsetY: offsetY,\r\n placement: placement,\r\n maxAngle: maxAngle,\r\n overflow: overflow,\r\n rotation: rotation,\r\n });\r\n return t;\r\n}\r\nexport function drawStyleFunction(feature, resolution) {\r\n const type = feature.get(\"type\");\r\n console.log(\"type of featur:\", type);\r\n if (type === \"Point\") {\r\n return new ol_style_Style({\r\n image: new ol_style_Circle({\r\n radius: 5,\r\n stroke: new ol_style_Stroke({\r\n color: \"rgba(0,0,255,0.5)\",\r\n width: 2,\r\n }),\r\n fill: new ol_style_Fill({\r\n color: \"#ffcc33\",\r\n }),\r\n }),\r\n });\r\n }\r\n return undefined;\r\n}\r\n","const myLib = require('../lib/MyLib');\r\nexport function validate(kehoach) {\r\n var result = {error: false};\r\n if (myLib.isEmpty(kehoach.TenTau)) {\r\n result.error = true;\r\n result.TenTau = {error: true, trangthai: 'Chưa có tên tàu!'};\r\n }\r\n if (myLib.isEmpty(kehoach.BatDau)) {\r\n result.error = true;\r\n result.BatDau = {error: true, trangthai: 'Chưa có thời gian bắt đầu'};\r\n }\r\n return result;\r\n}\r\nexport function chuanHoaKeHoach(action, sukien) {\r\n switch (action) {\r\n case 'abc':\r\n break;\r\n default:\r\n sukien.TenTau = (sukien.TenTau ? sukien.TenTau : '').toUpperCase();\r\n sukien.BatDau = sukien.BatDau ? new Date(sukien.BatDau.setMilliseconds(0)) : sukien.BatDau;\r\n sukien.KetThuc = sukien.KetThuc ? new Date(sukien.KetThuc.setMilliseconds(0)) : sukien.KetThuc;\r\n break;\r\n }\r\n return sukien;\r\n}\r\nexport function chuyenDoi(sukien) {\r\n sukien.BatDau = myLib.fromServerTime(sukien.BatDau); //server dang hieu la local nen phai chuyen thanh utc\r\n sukien.KetThuc = sukien.KetThuc !== undefined && sukien.KetThuc != null ? myLib.fromServerTime(sukien.KetThuc) : undefined; //server dang hieu la local nen phai chuyen thanh utc\r\n sukien.TenTau = {value: sukien.TenTau, label: sukien.TenTau};\r\n return sukien;\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Input from \"@material-ui/core/Input\";\r\nimport MaskedInput from \"react-text-mask\";\r\nimport PropTypes from \"prop-types\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport SelectFilter from \"react-select\";\r\nimport DateTimePicker from 'react-datetime';\r\nimport {\r\n DatePicker,\r\n TimePicker,\r\n MuiPickersUtilsProvider,\r\n KeyboardDateTimePicker,\r\n} from \"@material-ui/pickers\";\r\n\r\nimport moment from \"moment\";\r\n\r\nimport MyButton from \"../MyButton\";\r\n\r\nconst myLib = require(\"../../lib/MyLib\");\r\nconst server = require(\"../../lib/server\");\r\nconst sukienLayer = require(\"../../lib/SuKienDataLayer\");\r\n\r\nfunction MyMaskMonthEditor(props) {\r\n const { inputRef, ...other } = props;\r\n\r\n return (\r\n {\r\n inputRef(ref ? ref.inputElement : null);\r\n }}\r\n mask={[/[0-1]/, /[0-9]/, \"/\", /[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/]}\r\n placeholderChar={\"_\"}\r\n showMask\r\n keepCharPositions={true}\r\n guide={true}\r\n />\r\n );\r\n}\r\nclass ChatTimKiemControl extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveField = this.saveField.bind(this);\r\n this.handleSearch = this.handleSearch.bind(this);\r\n this.state = {\r\n canSaved: false, //cho phep save hay khong\r\n dataChanged: false, //du lieu co su thay doi hay khong\r\n saving: false, //co dang save du lieu hay khong\r\n errorLog: \"\", //mo ta loi neu co\r\n loading_coquan: true, // co dang load ding danh muc nguon tin ko\r\n source_coquan: [], //danh muc options cho nguon tin\r\n //searching\r\n search_loading: false,\r\n search_result: { danhsach: [], total: 0 }, //ket qua tim kiem\r\n before:\r\n props.value === undefined\r\n ? {\r\n ThoiGian: new Date(),\r\n }\r\n : props.value, //thong tin truoc khi edit\r\n after:\r\n props.value === undefined\r\n ? {\r\n Page: 1,\r\n PageSize: 10,\r\n MaCQ: \"0\", //trung tam xu ly gui thong tin\r\n Thang: \"\",\r\n TenSK: \"\", //tim kiem theo ten tau\r\n }\r\n : props.value, //thong tin dang edit\r\n validateStatus: { error: false }, //trang thai validate\r\n };\r\n }\r\n componentDidMount() {\r\n if (this.props.callback) {\r\n this.props.callback(this.handleSearch);\r\n }\r\n this.loadDanhMuc();\r\n }\r\n //ghi nhan gia tri nhap\r\n saveField = (fieldName, value) => {\r\n var s = this.state;\r\n s.after[fieldName] = value;\r\n s.dataChanged = true;\r\n s.canSaved = s.dataChanged;\r\n this.setState(s);\r\n console.log(s);\r\n };\r\n //submit thong tin ve DB\r\n handleSearch = (pageIndex) => {\r\n var search = {};\r\n Object.assign(search, this.state.after);\r\n search.Page = pageIndex === undefined ? search.Page : pageIndex;\r\n this.setState({ saving: true, errorLog: \"\" });\r\n console.log(search);\r\n server\r\n .post(\"chat/search\", search)\r\n .then((response) => {\r\n var before = {};\r\n var after = search;\r\n Object.assign(before, after);\r\n this.setState({\r\n dataChanged: false,\r\n canSaved: false,\r\n saving: false,\r\n errorLog: \"\",\r\n search_loading: false,\r\n search_result: response,\r\n });\r\n //thong bao cho parent biet co data duoc saved\r\n if (this.props.onSearched) {\r\n this.props.onSearched(after, response);\r\n }\r\n })\r\n .catch((error) =>\r\n this.setState({\r\n saving: false,\r\n search_loading: false,\r\n errorLog: error + \"\",\r\n })\r\n );\r\n };\r\n loadDanhMuc() {\r\n //load danh muc doi tac\r\n server\r\n .query(\"coquan/getall\")\r\n .then((response) => {\r\n var list = [];\r\n var find = undefined;\r\n response.map((item, index) => {\r\n var option = { value: item.MaCQ, label: item.TenCoQuan };\r\n list.push(option);\r\n if (item.MaCQ === global.User.MaCQ && find === undefined) {\r\n find = option;\r\n }\r\n });\r\n list.push({ value: \"0\", label: \"---Tất cả---\" });\r\n this.setState({ canSaved: true, source_coquan: list, loading_coquan: false });\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ loading_coquan: false });\r\n });\r\n }\r\n static getDerivedStateFromProps(props, state) {\r\n return { ...state };\r\n }\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n \r\n \r\n Nơi gửi:\r\n {this.state.loading_coquan ? (\r\n \r\n ) : (\r\n
\r\n ({ ...base, zIndex: 9999 }) }}\r\n menuPosition={\"fixed\"}\r\n value={this.state.after.MaCQ}\r\n onChange={(item) => this.saveField(\"MaCQ\", item)}\r\n >\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n Tháng:\r\n \r\n {\r\n this.saveField(\"Thang\", event.target.value);\r\n }}\r\n />\r\n \r\n \r\n \r\n this.saveField(\"TenSK\", event.target.value)}\r\n />\r\n \r\n \r\n this.handleSearch()}\r\n color=\"primary\"\r\n text=\"Tìm kiếm\"\r\n />\r\n \r\n \r\n {this.state.saving ? (\r\n \r\n ) : this.state.errorLog === \"\" ? null : (\r\n this.state.errorLog\r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n thoigian: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n textbox: {\r\n marginLeft: 1,\r\n marginRight: 1,\r\n width: 200,\r\n },\r\n uppercaseText: {\r\n textTransform: \"uppercase\",\r\n },\r\n normalPanel: {\r\n backgroundColor: \"lightskyblue\",\r\n },\r\n expandedPanel: {\r\n backgroundColor: \"skyblue\",\r\n },\r\n cboMacq: {\r\n backgroundColor: \"gray\",\r\n },\r\n});\r\nexport default withStyles(styles, { withTheme: true })(ChatTimKiemControl);\r\n","module.exports = __webpack_public_path__ + \"static/media/KV1.08b9a5a0.svg\";","import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { DataGrid } from \"@material-ui/data-grid\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport MapIcon from \"@material-ui/icons/Map\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ImportExportIcon from \"@material-ui/icons/ImportExport\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport SaveAlt from \"@material-ui/icons/SaveAlt\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport IconLabelButton from \"./MyButton\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport FileSaver from \"file-saver\";\r\nimport Moment from \"react-moment\";\r\nimport MaxWidthDialog from \"./TestDialog\";\r\nimport SuKienEditdialog from \"./SuKienEditDialog\";\r\nimport SuKienChiTietDialog from \"./SuKienChiTietDialog\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport { sizing, maxHeight } from \"@material-ui/system\";\r\nimport { Height } from \"@material-ui/icons\";\r\nimport SuKienTimKiemControl from \"./controls/SuKienTimKiemControl\";\r\nimport ConfirmDialog from \"./ConfirmDialog\";\r\n\r\nconst server = require(\"../lib/server.js\");\r\nconst myLib = require(\"../lib/MyLib.js\");\r\n\r\nclass TestPage extends React.Component {\r\n columns = [\r\n { field: \"id\", headerName: \"STT\", width: 70 },\r\n { field: \"MaSK\", headerName: \"Mã số\", width: 80 },\r\n { field: \"TenNguonBao\", headerName: \"Nguồn báo\", width: 230 },\r\n {\r\n field: \"TenSK\",\r\n headerName: \"Tên/Quốc tịch\",\r\n width: 230,\r\n renderCell: (params) => {\r\n console.log(params);\r\n return (\r\n
\r\n {\r\n this.setState({\r\n Editting_MaSK: params.getValue(\"MaSK\"),\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n >\r\n
{params.getValue(\"TenSK\")}
{\" \"}\r\n
{params.getValue(\"TenQuocGia\")}
\r\n \r\n
\r\n );\r\n },\r\n },\r\n {\r\n field: \"ThoiGian\",\r\n headerName: \"Thời gian\",\r\n width: 130,\r\n renderCell: (params) => (\r\n
\r\n
\r\n \r\n {params.getValue(\"ThoiGianBiNan\")}\r\n \r\n
\r\n
\r\n \r\n {params.getValue(\"ThoiGian\")}\r\n \r\n
\r\n
\r\n (\r\n {myLib.dateDiff(\r\n params.getValue(\"ThoiGian\"),\r\n params.getValue(\"ThoiGianBiNan\")\r\n )}\r\n )\r\n
\r\n
\r\n ),\r\n },\r\n {\r\n field: \"Lat\",\r\n headerName: \"Tọa độ\",\r\n width: 100,\r\n renderCell: (params) => (\r\n
\r\n
\r\n {params.getValue(\"Lat\") !== null\r\n ? myLib.latToDMS(params.getValue(\"Lat\"))\r\n : \"\"}\r\n
\r\n
\r\n {params.getValue(\"Lon\") !== null\r\n ? myLib.lonToDMS(params.getValue(\"Lon\"))\r\n : \"\"}\r\n
\r\n
\r\n ),\r\n },\r\n {\r\n field: \"ViTri\",\r\n headerName: \"Vị trí\",\r\n width: 150,\r\n renderCell: (params) => (\r\n {params.getValue(\"ViTri\")}

}>\r\n
{params.getValue(\"ViTri\")}
\r\n
\r\n ),\r\n },\r\n {\r\n field: \"TinhTrang\",\r\n headerName: \"Tình trạng/Tóm tắt\",\r\n width: 200,\r\n renderCell: (params) => (\r\n
\r\n
{params.getValue(\"TinhTrang\")}
\r\n
{params.getValue(\"TomTat\")}
\r\n
\r\n ),\r\n },\r\n { field: \"TenTaiNan\", headerName: \"Tai nạn\", width: 130 },\r\n {\r\n field: \"DangXL\",\r\n headerName: \"Trạng thái\",\r\n width: 130,\r\n valueGetter: (params) =>\r\n params.getValue(\"DangXL\") === true ? \"Đang xử lý\" : \"Kết thúc\",\r\n },\r\n { field: \"TenVietTat\", headerName: \"Đơn vị\", width: 200 },\r\n ];\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: { Page: 1, PageSize: 10 }, //dieu kien tim kiem hien thoi\r\n dataRows: [], //danh sach ban ghi\r\n totalRows: 0, //tong so ban ghi\r\n open_them_sukien: false, //hien thi form nhap moi su kien\r\n open_chitiet_sukien: false,\r\n open_edit_sukien: false, //hien thi form edit su kien\r\n Editting_MaSK: undefined,\r\n showConfirmXoa: false,\r\n };\r\n }\r\n\r\n popupComp = undefined;\r\n\r\n componentDidMount() {}\r\n //call khi user thay doi trang\r\n handlePageChange = (params) => {\r\n if (this.callbackSearch) {\r\n this.callbackSearch(params.page);\r\n }\r\n };\r\n render() {\r\n const { classes, theme } = this.props;\r\n return (\r\n <>\r\n
\r\n \r\n
1111111111
\r\n
\r\n\r\n \r\n \r\n 222222222232323232\r\n
\r\n \r\n \r\n }\r\n text={\"Thêm mới\"}\r\n onClick={() => {\r\n //truy van tu server\r\n server\r\n .query(\"sukien/getdraft\")\r\n .then((response) => {\r\n if (response === null) {\r\n this.setState({ open_them_sukien: true });\r\n } else {\r\n this.setState({\r\n Editting_MaSK: response.MaSK,\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.setState({ open_them_sukien: true });\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Sửa\"}\r\n disabled={\r\n this.state.Editting_MaSK === undefined || !global.User.Quyen.R221\r\n }\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: false,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xóa\"}\r\n disabled={\r\n this.state.Editting_MaSK === undefined || !global.User.Quyen.R221\r\n }\r\n onClick={() => {\r\n this.setState({\r\n open_edit_sukien: true,\r\n showConfirmXoa: true,\r\n });\r\n }}\r\n />\r\n }\r\n text={\"Xuất Excel\"}\r\n onClick={() => {\r\n server\r\n .download(\"sukien/xuatexcel\", this.state.search)\r\n .then((response) => {})\r\n .catch((error) => console.log(error));\r\n }}\r\n />\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nconst styles = (theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n heigh: \"fit-content\",\r\n },\r\n container1: {\r\n height: \"100%\",\r\n backgroundColor: \"skyblue\",\r\n },\r\n gridContainer: {\r\n height: \"600px !important\",\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { withTheme: true })(TestPage);\r\n","module.exports = __webpack_public_path__ + \"static/media/logo.0007811d.jpg\";","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_source_OSM from 'ol/source/OSM';\nimport ol_layer_Tile from 'ol/layer/Tile';\nimport {Util} from '../util';\nimport Map from '../map';\n\nexport class Tile extends React.Component {\n\n layer: ol_layer_Tile;\n\n options: any = {\n zIndex: undefined,\n opacity: undefined,\n preload: undefined,\n source: undefined,\n visible: undefined,\n extent: undefined,\n minResolution: undefined,\n maxResolution: undefined,\n useInterimTilesOnError: undefined\n };\n\n events: any = {\n 'change': undefined,\n 'change:extent': undefined,\n 'change:maxResolution': undefined,\n 'change:minResolution': undefined,\n 'change:opacity': undefined,\n 'change:preload': undefined,\n 'change:source': undefined,\n 'change:useInterimTilesOnError': undefined,\n 'change:visible': undefined,\n 'change:zIndex': undefined,\n 'postcompose': undefined,\n 'precompose': undefined,\n 'propertychange': undefined,\n 'render': undefined\n };\n\n constructor(props) {\n super(props);\n console.log('Tile constructor');\n }\n\n render() {\n return null;\n console.log('Tile render() .....');\n }\n\n componentDidMount () {\n console.log('Tile componentDidMount() .....');\n let options = Util.getOptions(Object.assign(this.options, this.props));\n options.source = options.source || new ol_source_OSM();\n this.layer = new ol_layer_Tile(options);\n if(this.props.zIndex){\n this.layer.setZIndex(this.props.zIndex);\n }\n this.context.mapComp.layers.push(this.layer);\n if(this.context.mapComp.map)\n this.context.mapComp.map.addLayer(this.layer); //hoan add dongnay\n let olEvents = Util.getEvents(this.events, this.props);\n for(let eventName in olEvents) {\n this.layer.on(eventName, olEvents[eventName]);\n }\n }\n\n componentWillReceiveProps (nextProps) {\n if(nextProps != this.props && false){ //hoand add false vao de tranh flick man hinh\n console.log('Tile componentWillReceiveProps() .....'); \n let options = Util.getOptions(Object.assign(this.options, this.props));\n this.context.mapComp.map.removeLayer(this.layer);\n this.layer = new ol_layer_Tile(options);\n if(this.props.zIndex){\n this.layer.setZIndex(this.props.zIndex);\n }\n this.context.mapComp.map.addLayer(this.layer);\n\n let olEvents = Util.getEvents(this.events, this.props);\n for(let eventName in olEvents) {\n this.layer.on(eventName, olEvents[eventName]);\n }\n }\n }\n \n componentWillUnmount () {\n console.log('tile unmount'); \n this.context.mapComp.map.removeLayer(this.layer);\n }\n\n}\n\nTile.contextTypes = {\n mapComp: PropTypes.instanceOf(Map)\n};\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_layer_Vector from 'ol/layer/Vector';\nimport ol_Feature from 'ol/Feature';\nimport ol_geom_Point from 'ol/geom/Point';\nimport ol_source_Vector from 'ol/source/Vector';\nimport {Util} from \"../util\";\nimport Map from '../map';\n\nexport class Vector extends React.Component {\n\n layer: ol_layer_Vector;\n\n options: any = {\n renderOrder: undefined,\n extent: undefined,\n minResolution: undefined,\n maxResolution: undefined,\n opacity: undefined,\n renderBuffer: undefined,\n source: undefined,\n style: undefined,\n updateWhileAnimating: undefined,\n updateWhileInteracting: undefined,\n visible: undefined\n };\n\n events: any = {\n 'change': undefined,\n 'change:extent': undefined,\n 'change:maxResolution': undefined,\n 'change:minResolution': undefined,\n 'change:opacity': undefined,\n 'change:preload': undefined,\n 'change:source': undefined,\n 'change:visible': undefined,\n 'change:zIndex': undefined,\n 'postcompose': undefined,\n 'precompose': undefined,\n 'propertychange': undefined,\n 'render': undefined\n };\n\n constructor(props) {\n super(props);\n }\n\n render() {\n return null;\n }\n\n componentDidMount () {\n let options = Util.getOptions(Object.assign(this.options, this.props));\n this.layer = new ol_layer_Vector(options);\n if(this.props.zIndex){\n this.layer.setZIndex(this.props.zIndex);\n } \n this.context.mapComp.layers.push(this.layer);\n\n let olEvents = Util.getEvents(this.events, this.props);\n for(let eventName in olEvents) {\n this.layer.on(eventName, olEvents[eventName]);\n }\n //hoan add dong nay de khi bat tat' layer moi hien thi\n if(this.context.mapComp.map) {\n this.context.mapComp.map.addLayer(this.layer);\n }\n console.log('vector layer did mount');\n }\n\n componentWillReceiveProps (nextProps) {\n if(nextProps !== this.props){\n let options = Util.getOptions(Object.assign(this.options, nextProps));\n this.context.mapComp.map.removeLayer(this.layer);\n this.layer = new ol_layer_Vector(options);\n if(this.props.zIndex){\n this.layer.setZIndex(this.props.zIndex);\n }\n this.context.mapComp.map.addLayer(this.layer);\n let olEvents = Util.getEvents(this.events, this.props);\n for(let eventName in olEvents) {\n this.layer.on(eventName, olEvents[eventName]);\n }\n }\n }\n \n componentWillUnmount () {\n this.context.mapComp.map.removeLayer(this.layer);\n console.log('vector layer un mounttttttttttttt');\n }\n\n}\n\nVector['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};\n","import * as React from 'react';\n\n// I wish I can name it as 'layers', not 'Layers'\nexport class Layers extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (
{this.props.children}
);\n }\n}\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_layer_Heatmap from 'ol/layer/Heatmap';\nimport { Util } from \"../util\";\nimport Map from '../map';\n\nexport class Heatmap extends React.Component {\n\n layer: ol_layer_Heatmap;\n\n options: any = {\n gradient: undefined,\n radius: undefined,\n blur: undefined,\n shadow: undefined,\n weight: undefined,\n extent: undefined,\n minResolution: undefined,\n maxResolution: undefined,\n opacity: undefined,\n source: undefined,\n visible: undefined\n };\n\n events: any = {\n 'change': undefined,\n 'change:blur': undefined,\n 'change:extent': undefined,\n 'change:gradient': undefined,\n 'change:maxResolution': undefined,\n 'change:minResolution': undefined,\n 'change:opacity': undefined,\n 'change:radius': undefined,\n 'change:source': undefined,\n 'change:visible': undefined,\n 'change:zIndex': undefined,\n 'postcompose': undefined,\n 'precompose': undefined,\n 'propertychange': undefined,\n 'render': undefined\n };\n\n constructor(props) { super(props); }\n\n render() { return null; }\n\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.layer = new ol_layer_Heatmap(options);\n if(this.props.zIndex){\n this.layer.setZIndex(this.props.zIndex);\n }\n this.context.mapComp.layers.push(this.layer);\n\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.layer.on(eventName, olEvents[eventName]);\n }\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps !== this.props) {\n let options = Util.getOptions(Object.assign(this.options, this.props));\n this.context.mapComp.map.removeLayer(this.layer);\n this.layer = new ol_layer_Heatmap(options);\n if (this.props.zIndex) {\n this.layer.setZIndex(this.props.zIndex);\n }\n this.context.mapComp.map.addLayer(this.layer);\n\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.layer.on(eventName, olEvents[eventName]);\n }\n }\n }\n\n componentWillUnmount() {\n this.context.mapComp.map.removeLayer(this.layer);\n }\n\n}\n\nHeatmap['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_layer_Image from 'ol/layer/Image';\nimport {Util} from \"../util\";\nimport Map from '../map';\n\nexport class Image extends React.Component {\n\n layer: ol_layer_Image;\n\n options: any = {\n opacity: undefined,\n source: undefined,\n visible: undefined,\n extent: undefined,\n minResolution: undefined,\n maxResolution: undefined\n };\n\n events: any = {\n 'change': undefined,\n 'change:extent': undefined,\n 'change:gradient': undefined,\n 'change:maxResolution': undefined,\n 'change:minResolution': undefined,\n 'change:opacity': undefined,\n 'change:source': undefined,\n 'change:visible': undefined,\n 'change:zIndex': undefined,\n 'postcompose': undefined,\n 'precompose': undefined,\n 'propertychange': undefined,\n 'render': undefined\n };\n\n constructor(props) { \n super(props);\n }\n\n render() { return null; }\n\n componentDidMount () {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.layer = new ol_layer_Image(options);\n if(this.props.zIndex){\n this.layer.setZIndex(this.props.zIndex);\n }\n this.context.mapComp.layers.push(this.layer);\n\n let olEvents = Util.getEvents(this.events, this.props);\n for(let eventName in olEvents) {\n this.layer.on(eventName, olEvents[eventName]);\n }\n }\n\n componentWillReceiveProps (nextProps) {\n if(nextProps !== this.props){\n let options = Util.getOptions(Object.assign(this.options, this.props));\n this.context.mapComp.map.removeLayer(this.layer);\n this.layer = new ol_layer_Image(options);\n if(this.props.zIndex){\n this.layer.setZIndex(this.props.zIndex);\n }\n this.context.mapComp.map.addLayer(this.layer);\n\n let olEvents = Util.getEvents(this.events, this.props);\n for(let eventName in olEvents) {\n this.layer.on(eventName, olEvents[eventName]);\n }\n }\n }\n \n componentWillUnmount () {\n this.context.mapComp.map.removeLayer(this.layer);\n }\n\n}\n\nImage['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_layer_VectorTile from 'ol/layer/VectorTile';\nimport {Util} from \"../util\";\nimport Map from '../map';\n\nexport class VectorTile extends React.Component {\n\n layer: ol_layer_VectorTile;\n\n options: any = {\n renderBuffer: undefined,\n renderMode: undefined,\n renderOrder: undefined,\n extent: undefined,\n minResolution: undefined,\n maxResolution: undefined,\n opacity: undefined,\n preload: undefined,\n source: undefined,\n style: undefined,\n updateWhileAnimating: undefined,\n updateWhileInteracting: undefined,\n visible: undefined\n };\n\n events: any = {\n 'change': undefined,\n 'change:extent': undefined,\n 'change:maxResolution': undefined,\n 'change:minResolution': undefined,\n 'change:opacity': undefined,\n 'change:preload': undefined,\n 'change:source': undefined,\n 'change:useInterimTilesOnError': undefined,\n 'change:visible': undefined,\n 'change:zIndex': undefined,\n 'postcompose': undefined,\n 'precompose': undefined,\n 'propertychange': undefined,\n 'render': undefined\n };\n\n constructor(props) {\n super(props);\n }\n\n render() {\n return null;\n }\n\n componentDidMount () {\n let options = Util.getOptions(Object.assign(this.options, this.props));\n this.layer = new ol_layer_VectorTile(options);\n if (this.options.callback) {\n this.options.callback(this.layer);\n }\n if(this.props.zIndex){\n this.layer.setZIndex(this.props.zIndex);\n }\n this.context.mapComp.layers.push(this.layer);\n \n let olEvents = Util.getEvents(this.events, this.props);\n for(let eventName in olEvents) {\n this.layer.on(eventName, olEvents[eventName]);\n }\n }\n\n componentWillReceiveProps (nextProps) {\n if(nextProps !== this.props){\n let options = Util.getOptions(Object.assign(this.options, this.props));\n this.context.mapComp.map.removeLayer(this.layer);\n this.layer = new ol_layer_VectorTile(options);\n if (this.options.callback) {\n this.options.callback(this.layer);\n }\n if(this.props.zIndex){\n this.layer.setZIndex(this.props.zIndex);\n }\n this.context.mapComp.map.addLayer(this.layer);\n\n let olEvents = Util.getEvents(this.events, this.props);\n for(let eventName in olEvents) {\n this.layer.on(eventName, olEvents[eventName]);\n }\n }\n }\n \n componentWillUnmount () {\n this.context.mapComp.map.removeLayer(this.layer);\n }\n\n}\n\nVectorTile['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_layer_Graticule from 'ol/layer/Graticule';\nimport ol_Feature from 'ol/Feature';\nimport ol_geom_Point from 'ol/geom/Point';\nimport {Util} from \"../util\";\nimport Map from '../map';\n\nexport class Graticule extends React.Component {\n\n\n options: any = {\n renderOrder: undefined,\n extent: undefined,\n minResolution: undefined,\n maxResolution: undefined,\n opacity: undefined,\n renderBuffer: undefined,\n source: undefined,\n style: undefined,\n updateWhileAnimating: undefined,\n updateWhileInteracting: undefined,\n visible: undefined\n };\n\n events: any = {\n 'change': undefined,\n 'change:extent': undefined,\n 'change:maxResolution': undefined,\n 'change:minResolution': undefined,\n 'change:opacity': undefined,\n 'change:preload': undefined,\n 'change:source': undefined,\n 'change:visible': undefined,\n 'change:zIndex': undefined,\n 'postcompose': undefined,\n 'precompose': undefined,\n 'propertychange': undefined,\n 'render': undefined\n };\n\n constructor(props) {\n super(props);\n }\n\n render() {\n return null;\n }\n\n componentDidMount () {\n let options = Util.getOptions(Object.assign(this.options, this.props));\n this.layer = new ol_layer_Graticule(options);\n if(this.props.zIndex){\n this.layer.setZIndex(this.props.zIndex);\n } \n this.context.mapComp.layers.push(this.layer);\n\n let olEvents = Util.getEvents(this.events, this.props);\n for(let eventName in olEvents) {\n this.layer.on(eventName, olEvents[eventName]);\n }\n //hoan add dong nay de khi bat tat' layer moi hien thi\n if(this.context.mapComp.map) {\n this.context.mapComp.map.addLayer(this.layer);\n }\n }\n\n componentWillReceiveProps (nextProps) {\n if(nextProps !== this.props){\n let options = Util.getOptions(Object.assign(this.options, nextProps));\n this.context.mapComp.map.removeLayer(this.layer);\n this.layer = new ol_layer_Graticule(options);\n if(this.props.zIndex){\n this.layer.setZIndex(this.props.zIndex);\n }\n this.context.mapComp.map.addLayer(this.layer);\n let olEvents = Util.getEvents(this.events, this.props);\n for(let eventName in olEvents) {\n this.layer.on(eventName, olEvents[eventName]);\n }\n }\n }\n \n componentWillUnmount () {\n this.context.mapComp.map.removeLayer(this.layer);\n }\n\n}\n\nGraticule['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};\n","import {Tile} from './tile';\nimport {Vector} from './vector';\nimport {Layers} from './layers';\nimport {Heatmap} from './heatmap';\nimport {Image} from './image';\nimport {VectorTile} from './vector-tile';\nimport { Graticule } from './graticule';\n\nlet layer = {\n Tile: Tile,\n Vector: Vector,\n Heatmap: Heatmap,\n Image: Image,\n VectorTile: VectorTile,\n Graticule: Graticule,\n};\n\nexport { \n Layers,\n layer,\n Heatmap,\n Image,\n VectorTile,\n Graticule,\n};\n","import * as React from 'react';\nexport class Overlays extends React.Component {\n render() {\n return (React.createElement(\"div\", null, this.props.children));\n }\n}","import * as React from 'react';\nimport './popup.css';\nexport class Popup extends React.Component {\n constructor(props) {\n super(props);\n }\n componentDidMount() {\n this.contentClose.addEventListener(\"click\", () => {\n this.containerEl.style.display = 'none';\n });\n }\n render() {\n return (React.createElement(\"div\", { className: \"olPopup\", ref: el => this.containerEl = el },\n React.createElement(\"a\", { className: \"olPopupCloser\", href: \"javascript:void(0)\", ref: el => this.contentClose = el }),\n React.createElement(\"div\", { className: \"olPopupContents\", ref: el => this.contentEl = el })));\n }\n setContents(html) {\n this.contentEl.innerHTML = html;\n }\n show(bottomDistance = '12px') {\n this.containerEl.style.bottom = bottomDistance;\n this.containerEl.style.display = 'block';\n }\n}","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as GoogleMapsLoader from 'google-maps';\nexport class GoogleStreetViewPanorama extends React.Component {\n constructor() {\n super();\n }\n render() {\n return (React.createElement(\"div\", { style: { height: '100%' } }));\n }\n initialize() {\n GoogleMapsLoader.load(google => {\n this.streetView = new google.maps.StreetViewPanorama(ReactDOM.findDOMNode(this), this.props);\n });\n }\n componentDidMount() {\n this.initialize();\n }\n componentDidUpdate() {\n this.initialize();\n }\n}\nGoogleStreetViewPanorama['defaultProps'] = {\n streetViewPanoramaOptions: {\n position: { lat: 46.9171876, lng: 17.8951832 },\n pov: { heading: 0, pitch: 0 },\n zoom: 1\n }\n};","import ol_Map from 'ol/Map';\nimport ol_style_Style from 'ol/style/Style';\nimport ol_style_Circle from 'ol/style/Circle';\nimport ol_style_Fill from 'ol/style/Fill';\nimport ol_style_Stroke from 'ol/style/Stroke';\nimport ol_style_Text from 'ol/style/Text';\nimport ol_style_RegularShape from 'ol/style/RegularShape';\nimport * as olExtent from 'ol/extent';\n\nexport class ClusterStyle {\n constructor(vectorSource) {\n this.vectorStyleFunction = (feature, resolution) => {\n if (resolution != this.currentResolution) {\n this.calculateClusterInfo(resolution);\n this.currentResolution = resolution;\n }\n var style;\n var size = feature.get('features').length;\n if (size > 1) {\n style = new ol_style_Style({\n image: new ol_style_Circle({\n radius: feature.get('radius'),\n fill: new ol_style_Fill({\n color: [255, 153, 0, Math.min(0.8, 0.4 + (size / this.maxFeatureCount))]\n })\n }),\n text: new ol_style_Text({\n text: size.toString(),\n fill: new ol_style_Fill({ color: '#fff' }),\n stroke: new ol_style_Stroke({ color: 'rgba(0, 0, 0, 0.6)', width: 3 })\n })\n });\n }\n else {\n var originalFeature = feature.get('features')[0];\n style = this.createClusterStyle(originalFeature);\n }\n return style;\n };\n this.selectStyleFunction = (feature) => {\n var invisibleFill = new ol_style_Fill({ color: 'rgba(255, 255, 255, 0.01)' });\n var styles = [new ol_style_Style({\n image: new ol_style_Circle({\n radius: feature.get('radius'),\n fill: invisibleFill\n })\n })];\n var originalFeatures = feature.get('features');\n var originalFeature;\n for (var i = originalFeatures.length - 1; i >= 0; --i) {\n originalFeature = originalFeatures[i];\n styles.push(this.createClusterStyle(originalFeature));\n }\n return styles;\n };\n this.source = vectorSource;\n }\n calculateClusterInfo(resolution) {\n this.maxFeatureCount = 0;\n var features = this.source.getFeatures();\n var feature, radius;\n for (var i = features.length - 1; i >= 0; --i) {\n feature = features[i];\n var originalFeatures = feature.get('features');\n var extent = olExtent.createEmpty();\n var j, jj;\n for (j = 0, jj = originalFeatures.length; j < jj; ++j) {\n olExtent.extend(extent, originalFeatures[j].getGeometry().getExtent());\n }\n this.maxFeatureCount = Math.max(this.maxFeatureCount, jj);\n radius = 0.25 * (olExtent.getWidth(extent) + olExtent.getHeight(extent)) /\n resolution;\n feature.set('radius', radius);\n }\n }\n createClusterStyle(feature) {\n var clusterFill = new ol_style_Fill({ color: 'rgba(255, 153, 0, 0.8)' });\n var clusterStroke = new ol_style_Stroke({ color: 'rgba(255, 204, 0, 0.2)', width: 1 });\n // 2012_Earthquakes_Mag5.kml stores the magnitude of each earthquake in a\n // standards-violating tag in each Placemark. We extract it\n // from the Placemark's name instead.\n var name = feature.get('name');\n var magnitude = parseFloat(name.substr(2));\n var radius = 5 + 20 * (magnitude - 5);\n return new ol_style_Style({\n geometry: feature.getGeometry(),\n image: new ol_style_RegularShape({\n radius1: radius,\n radius2: 3,\n points: 5,\n angle: Math.PI,\n fill: clusterFill,\n stroke: clusterStroke\n })\n });\n }\n}","export function serialize(obj) {\n var str = [];\n for(var p in obj)\n if (obj.hasOwnProperty(p)) {\n str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\n }\n return str.join(\"&\");\n}","import {serialize, jsonp} from './util.js';\n\n/**\n * Bing geolookup / reverse lookup\n */\nexport class Bing {\n\n constructor(options) {\n this.options = options || {};\n }\n\n geolookup(address) {\n let url = 'https://dev.virtualearth.net/REST/v1/Locations';\n let params = {\n query: address,\n key: this.options.key,\n includeNeighborhood: this.options.includeNeighborhood || 0,\n maxResults: this.options.maxResults || 10\n };\n\n return fetch(`${url}?${serialize(params)}`)\n .then(resp => resp.json())\n .then(json => this._handleResponse(json))\n }\n\n reverse(lat, lng) {\n let url = \n `http://dev.virtualearth.net/REST/v1/Locations/${lat},${lng}`;\n let params = {\n includeNeighborhood: this.options.includeNeighborhood || 0,\n key: this.options.key\n };\n\n return fetch(`${url}?${serialize(params)}`)\n .then(resp => resp.json())\n .then(json => {\n let address = json['resourceSets'][0]['resources'][0]['name'];\n return {\n source: 'Bing',\n address: address,\n raw: json\n };\n });\n }\n\n _handleResponse(json) {\n let results = json['resourceSets'][0]['resources'];\n return results.map(result => {\n return {\n source: 'Bing',\n lng: parseFloat(result.point.coordinates[1]),\n lat: parseFloat(result.point.coordinates[0]),\n address: {\n name: result.name\n },\n formatted: result.address.formattedAddress,\n raw: result\n };\n });\n }\n\n}\n ","import {serialize} from './util.js';\n\nexport class Google {\n\n constructor(options) {\n this.options = options || {};\n }\n\n geolookup(address) {\n let url = 'https://maps.googleapis.com/maps/api/geocode/json';\n let params = {\n address: address,\n key: this.options.key,\n language: this.options.lang || 'en-US'\n };\n url = `${url}?${serialize(params)}`\n\n return fetch(url)\n .then(resp => resp.json())\n .then(json => this._handleResponse(json))\n }\n\n reverse(lat, lng) {\n let url = 'https://maps.googleapis.com/maps/api/geocode/json';\n let params = {\n latlng: `${lat},${lng}`,\n key: this.options.key,\n language: this.options.lang || 'en-US'\n };\n\n return fetch(`${url}?${serialize(params)}`)\n .then(resp => resp.json())\n .then(json => {\n return {\n source: 'Google',\n address: json['results'][0]['formatted_address'],\n raw: json\n }\n })\n }\n\n _handleResponse(json) {\n let results = json.results && json.results.length ? json.results : undefined;\n if (results) {\n /*\n * @param {Array} details - address_components\n */\n const getDetails = function(details) {\n let name, road, postcode, city, state, country;\n let anyMatchInArray = function(source, target) {\n return source.some(each => target.indexOf(each) >= 0);\n };\n\n details.forEach(detail => {\n if (anyMatchInArray(detail.types, [ 'point_of_interest', 'establishment', 'natural_feature', 'airport' ])) {\n name = detail.long_name;\n } else if (anyMatchInArray(detail.types, ['street_address', 'route', 'sublocality_level_5', 'intersection'])) {\n road = detail.long_name;\n } else if (anyMatchInArray(detail.types, ['postal_code'])) {\n postcode = detail.long_name;\n } else if (anyMatchInArray(detail.types, ['locality'])) {\n city = detail.long_name;\n } else if (anyMatchInArray(detail.types, ['administrative_area_level_1'])) {\n state = detail.long_name;\n } else if (anyMatchInArray(detail.types, ['country'])) {\n country = detail.long_name;\n }\n });\n\n if (name || road || postcode || city || state || country) {\n return {name, road, postcode, city, state, country};\n } else {\n return null;\n }\n };\n\n let array = [];\n\n results.forEach(result => {\n let details = getDetails(result.address_components);\n\n if (details) {\n array.push({\n source: 'Google',\n lng: parseFloat(result.geometry.location.lng),\n lat: parseFloat(result.geometry.location.lat),\n address: {\n name: details.name || '',\n postalCode: details.postcode || '',\n road: details.road || '',\n city: details.city || '',\n state: details.state || '',\n country: details.country || ''\n },\n formatted: result.formatted_address,\n raw: result\n });\n }\n });\n\n return array;\n } else {\n throw \"Invalid response\" + json;\n }\n\n }\n\n}","import {serialize} from './util.js';\n\nexport class OpenStreet {\n \n constructor(options) {\n this.options = options || {};\n }\n\n geolookup(address) {\n let url = 'https://nominatim.openstreetmap.org/search/';\n let params = {\n q: address,\n format: 'json',\n addressdetails: 1,\n limit: this.options.limit || 10,\n countrycodes: this.options.countrycodes || '',\n 'accept-language': this.options.lang || 'en-US'\n };\n url = `${url}?${serialize(params)}`\n\n return fetch(url)\n .then(resp => resp.json())\n .then(json => \n json['map'](result => {\n return {\n source: 'OpenStreetMap',\n lng: parseFloat(result.lon),\n lat: parseFloat(result.lat),\n address: {\n name: result.address.neighbourhood || '',\n road: result.address.road || '',\n postalCode: result.address.postcode,\n city: result.address.city || result.address.town,\n state: result.address.state,\n country: result.address.country\n },\n formatted: result.display_name,\n raw: result\n }\n })\n );\n }\n\n reverse(lat, lng) {\n let url = 'https://nominatim.openstreetmap.org/reverse';\n let params = {\n format: 'json',\n lat: lat,\n lon: lng,\n zoom: this.options.zoom || 18,\n addressdetails: this.options.addressdetail || 1,\n 'accept-language': this.options.lang || 'en-US'\n };\n url = `${url}?${serialize(params)}`\n\n return fetch(url)\n .then(resp => resp.json())\n .then(json => {\n return {\n source: 'OpenStreetMap',\n address: json['display_name'],\n raw: json\n }\n }\n );\n }\n}\n","import { Bing } from './providers/bing.js';\nimport { Google } from './providers/google.js';\nimport { OpenStreet } from './providers/open-street.js';\n\nexport class GeoCoder {\n\n constructor(provider = 'osm', options = {}) {\n this.provider = provider;\n this.options = options;\n this.klasses = {osm: OpenStreet, bing: Bing, google: Google};\n }\n\n geolookup(address) {\n let klass = this.klasses[this.provider];\n let instance = new klass(this.options);\n return instance.geolookup(address);\n }\n\n reverse(lat, lng) {\n let klass = this.klasses[this.provider];\n let instance = new klass(this.options);\n return instance.reverse(lat, lng);\n }\n\n}\n(typeof window !== 'undefined') && (window.GeoCoder = GeoCoder);\n\n","import ol_Map from 'ol/Map';\nimport { transform as ol_proj_transform} from 'ol/proj';\nimport ol_control_Control from 'ol/control/Control';\nimport PropTypes from 'prop-types';\nimport { GeoCoder } from '../../geo-code';\nimport './geo-coder.css';\nlet element = document.createElement('div');\n\nexport class GeoCoderControl extends ol_control_Control {\n constructor(options = {}) {\n super({ element: element });\n this.eventListeners = {};\n this.expanded = false;\n this.locate = (options) => {\n let lonLat = [parseFloat(options.lon), parseFloat(options.lat)];\n let projection = this.getMap().getView().getProjection();\n let coord = ol_proj_transform(lonLat, 'EPSG:4326', projection);\n let view = this.getMap().getView();\n let duration = options.duration || 500;\n let resolution = options.resolution || 2.388657133911758;\n view.animate({ duration: duration, resolution: resolution }, { duration: duration, center: coord });\n };\n this.toggleExpand = () => {\n this.expanded = !this.expanded;\n this.autocompleteEl.style.display = this.expanded ? '' : 'none';\n };\n this.geoCoder = new GeoCoder(options);\n element.innerHTML = ''; //it may contain the previous element\n element.className = 'ol-control geo-coder';\n element.appendChild(this.buttonEl = this.getButtonHTML());\n element.appendChild(this.autocompleteEl = this.getAutocompleteHTML());\n }\n on(eventName, listener, option) {\n this.eventListeners[eventName] = listener;\n return listener;\n }\n getButtonHTML() {\n let buttonEl = document.createElement('button');\n buttonEl.innerHTML = 'G';\n buttonEl.addEventListener('click', this.toggleExpand, false);\n return buttonEl;\n }\n getAutocompleteHTML() {\n let autocompleteEl = document.createElement('div');\n autocompleteEl.className = 'autocomplete';\n autocompleteEl.style.display = 'none';\n let inputEl = document.createElement('input');\n inputEl.className = 'address';\n autocompleteEl.appendChild(inputEl);\n this.geoCoder.autocomplete(inputEl);\n inputEl.addEventListener('place_changed', (event) => {\n //this.locate(event.detail.lat, event.detail.lon);\n this.eventListeners['place_changed'](event);\n });\n return autocompleteEl;\n }\n}","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\n\nimport { GeoCoderControl } from './geo-coder-control';\nimport { Util } from '../../util';\nimport Map from '../../map';\n\nexport class GeoCoderComponent extends React.Component {\n constructor(props) {\n super(props);\n this.options = {\n provider: undefined,\n key: undefined\n };\n this.events = {\n 'place_changed': undefined\n };\n }\n render() {\n return (React.createElement(\"div\", null, this.props.children));\n }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n this.control = new GeoCoderControl(options);\n this.geoCoder = this.control.geoCoder;\n this.context.mapComp.controls.push(this.control);\n this.geoCoder = this.control.geoCoder;\n //regitster events\n let olEvents = Util.getEvents(this.events, this.props);\n for (let eventName in olEvents) {\n this.control.on(eventName, olEvents[eventName]);\n }\n }\n}\nGeoCoderComponent['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Map),\n map: PropTypes.instanceOf(ol_Map)\n};","import { Popup } from './popup';\nimport { GoogleStreetViewPanorama } from './google-street-view-panorama';\nimport { ClusterStyle } from './style/cluster-style';\nimport { MarkerStyle } from './style/marker-style';\nimport { GeoCoderControl } from './control/geo-coder-control';\nimport { GeoCoderComponent } from './control/geo-coder-component';\nlet custom = {\n style: {\n MarkerStyle: MarkerStyle,\n ClusterStyle: ClusterStyle\n },\n control: {\n GeoCoderControl: GeoCoderControl,\n GeoCoderComponent: GeoCoderComponent\n },\n Popup: Popup,\n GoogleStreetViewPanorama: GoogleStreetViewPanorama\n};\nexport { custom };","import ol_style_Style from 'ol/style/Style';\nimport ol_style_Icon from 'ol/style/Icon';\n\nexport class MarkerStyle {\n constructor(src) {\n this.src = 'https://openlayers.org/en/latest/examples/data/icon.png';\n this.style = new ol_style_Style({\n image: new ol_style_Icon(/** @type {olx.style.IconOptions} */ ({\n src: this.src\n }))\n });\n this.selectStyleFunction = (feature) => {\n return new ol_style_Style({\n image: new ol_style_Icon({\n anchor: [0.5, 0.96],\n color: '#4271AE',\n src: 'https://openlayers.org/en/latest/examples/data/dot.png'\n })\n });\n };\n this.src = src;\n }\n}","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport ol_Map from 'ol/Map';\nimport ol_Overlay from 'ol/Overlay';\nimport * as ReactDOM from 'react-dom';\nimport { Util } from './util';\n\nexport class Overlay extends React.Component {\n constructor() {\n super(...arguments);\n this.options = {\n id: undefined,\n element: undefined,\n offset: undefined,\n position: undefined,\n stopEvent: undefined,\n insertFirst: undefined,\n autoPan: undefined,\n autoPanAnimation: undefined,\n autoPanMargin: undefined\n };\n this.events = {\n 'change': undefined,\n 'change:element': undefined,\n 'change:map': undefined,\n 'change:offset': undefined,\n 'change:position': undefined,\n 'change:positioning': undefined,\n 'propertychange': undefined\n };\n }\n render() {\n return (React.createElement(\"div\", null, this.props.children));\n }\n componentDidMount() {\n let options = Util.getOptions(Object['assign'](this.options, this.props));\n options.element = ReactDOM.findDOMNode(this).querySelector('div');\n //console.log('options.element', options.element);\n this.overlay = new ol_Overlay(options);\n this.context.mapComp.overlays.push(this.overlay);\n if(this.context.map) {\n this.context.map.addOverlay(this.overlay); //hoan:code plugin ko co cai nay nen ko hien thi\n }\n //console.log('mount overlay id', this.props.keyID);\n }\n componentWillReceiveProps(nextProps) {\n this.overlay.setPosition(nextProps.position);\n }\n componentWillUnmount() {\n this.context.mapComp.overlays.splice(this.overlay); //hoan add dong nay\n this.context.mapComp.map.removeOverlay(this.overlay); //hoan add dong nay\n console.log('remove overlay id', this.props.keyID);\n }\n}\nOverlay['contextTypes'] = {\n mapComp: PropTypes.instanceOf(Object),\n map: PropTypes.instanceOf(ol_Map)\n};"],"sourceRoot":""}