{"version":3,"sources":["components/api-authorization/AuthorizeRoute.js","components/api-authorization/Login.js","pages/apiauthorization/ApiAuthorizationRoutes.js","pages/home/Home.js","components/api/LoginApi.js","pages/apiauthorization/LoginForm.js","components/input/selectlist/MstDivisionsSelectList.js","components/input/textbox/PhoneNumberTextBox.js","components/text/TitleText.js","pages/contact/ContactConfirm.js","pages/contact/ContactMain.js","pages/contact/ContactThanks.js","components/api-authorization/ClaimAuthorizeRoute.js","components/list/InteractiveList.js","components/drawer/ClipedDrawer.js","components/api-authorization/UnauthorizeRedirector.js","components/input/button/EditScreenButtons.js","components/input/textbox/SearchInputDateGrid.js","components/input/textbox/SearchInputGrid.js","components/table/PagenationTable2.js","components/table/TableHeaderCell.js","components/text/TitleWithSubTitleText.js","components/input/button/SearchButton.js","components/text/ListText.js","components/input/selectlist/MstDivisionsSelectListNoLabel.js","pages/admin/ContactList.js","pages/admin/Index.js","components/dialog/ConfirmDialog.js","components/input/switch/IOSSwitch.js","components/toolTip/HelpToolTip.js","pages/admin/ClaimsEditCommon.js","pages/admin/RoleClaimsEdit.js","components/common/FormHelper.js","components/paper/ManageMenuPaper.js","pages/admin/RoleEdit.js","components/drawer/ListTitleDrawer.js","components/input/button/LinkFab.js","components/table/TableBorderedRow.js","pages/admin/Roles.js","pages/admin/UserClaimsEdit.js","components/input/selectlist/DropDownListNative.js","components/input/textbox/BootstrapInput.js","components/input/selectlist/HospitalSelectList.js","components/input/selectlist/RoleSelectList.js","pages/admin/UserEdit.js","components/modal/SearchModal.js","pages/admin/Users.js","pages/admin/hospital/Hospitals.js","pages/admin/hospitalDept/HospitalDepts.js","components/image/ImageCompressor.js","components/image/ImagesUpload.js","components/input/selectlist/DropDownList.js","components/input/selectlist/DepartmentSelectList.js","components/input/radio/MstDivisionsRadio.js","components/text/SectionTitleText.js","components/input/selectlist/TemplateMsgSelectList.js","components/tab/CommonTab.js","components/modal/PreScreenEditCommon.js","components/api/HospitalDeptScreensApi.js","pages/admin/hospitalDept/HospitalDeptEdit.js","pages/admin/doctor/Doctors.js","pages/admin/doctor/DoctorEdit.js","components/api/TimeTableApi.js","components/modal/ModalStyle.js","components/text/DialogTitleText.js","components/input/textbox/KeybordTimePicker.js","components/calendar/DayCalendar.js","components/calendar/WeekCalendar.js","components/input/textbox/KeybordDatePickerJp.js","pages/admin/timeTableDetail/ExaminationTimeRange.js","pages/admin/timeTableDetail/TimeTableEdit.js","components/api/CalendarApi.js","components/input/textbox/YearMonthPicker.js","pages/admin/hospitalCalendar/HospitalCalendar.js","components/api/CommonApi.js","components/api/HolidayApi.js","components/table/ReservationTable.js","pages/admin/rest/Rest.js","components/table/InformationTable.js","components/card/SimpleContentCard.js","components/calendar/MonthCalendar.js","pages/manage/Index.js","pages/manage/account/AccountIndex.js","pages/manage/account/AccountEdit.js","pages/manage/account/PasswordEdit.js","components/dialog/MemoDialog.js","components/behavior/Timer.js","components/dialog/PhoneCallDialog.js","components/dialog/TextInputDialog.js","components/api/CardsApi.js","components/common/LineConfig.js","components/api/LINELoginApi.js","components/qrcode/GenerateQr.js","components/api/BookingsApi.js","components/common/DownloadBlob.js","components/input/selectlist/YmdSelectList.js","components/dialog/BookingConfirmDialog.js","components/api/ReservationApi.js","components/input/radio/MstDivisionsRadioWithLabel.js","components/dialog/SearchResultsDialog.js","pages/manage/booking/Bookings.js","components/api/InformationApi.js","components/input/button/EditIconButton.js","components/input/button/SaveIconButton.js","components/input/button/UndoIconButton.js","pages/manage/information/InformationList.js","img/calendarIcons/monthEdited.svg","img/calendarIcons/weekEdited.svg","img/calendarIcons/todayEdited.svg","pages/manage/information/InformationRegister.js","pages/manage/notices/Notices.js","components/api/NoticesApi.js","pages/manage/notices/NoticesEdit.js","pages/manage/cards/ExamCards.js","pages/manage/cards/ExamCardEdit.js","components/common/CheckRevisionComponent.js","pages/manage/hospitalPotal/HospitalPotal.js","pages/register/Register.js","components/api/FeedbackApi.js","components/common/Feedback.js","components/api/HospitalScreensApi.js","components/input/textbox/AddressTextBox.js","pages/admin/hospital/hospitalEdit/HospitalEditBaseInfo.js","components/input/textbox/TextBoxWithCopy.js","pages/admin/hospital/hospitalEdit/HospitalEditHomePageInfo.js","pages/admin/hospital/hospitalEdit/HospitalEditReservationInfo.js","pages/admin/hospital/hospitalEdit/HospitalEditSep.js","pages/manage/ManageRoute.js","pages/admin/information/InformationList.js","pages/admin/information/InformationRegister.js","pages/admin/AdminRoute.js","pages/auth/ForgotPassword.js","pages/auth/ResetPassword.js","pages/auth/ForgotConfirm.js","components/common/SessionStorageController.js","pages/reservation/Main.js","pages/reservation/Entry.js","components/dialog/ScrollDialog.js","pages/reservation/Confirm.js","components/input/button/ChevronRightButton.js","components/input/button/OutlinedFab.js","pages/reservation/SelectDept.js","components/dialog/MailDialog.js","components/input/button/MailButton.js","components/input/button/LineButton.js","pages/reservation/Thanks.js","pages/reservation/SelectConfirm.js","pages/reservation/PreConfirm.js","components/input/button/IconButtonBorder.js","pages/reservation/When.js","pages/reservation/Print.js","pages/reservation/ReserveRoute.js","pages/mypage/MyPageAuth.js","pages/mypage/MyPage.js","pages/mypage/MyPageRoute.js","pages/line/RemindResult.js","AppRouter.js"],"names":["AuthorizeRoute","props","component","render","AuthGuarder","userctx","useContext","UserContext","history","useReactRouter","Component","others","useEffect","a","authService","isAuthenticated","push","setUser","asyncFunc","Login","state","message","undefined","action","this","LoginActions","login","getReturnUrl","LoginCallback","processLoginCallback","LoginFailed","error","URLSearchParams","window","location","search","get","QueryParameterNames","Message","setState","Profile","redirectToProfile","Register","redirectToRegister","Error","CircularProgress","size","color","returnUrl","signIn","result","status","url","href","completeSignIn","fromQuery","ReturnUrl","startsWith","origin","redirectToApiAuthorizationPath","ApplicationPaths","IdentityRegisterPath","encodeURI","IdentityManagePath","apiAuthorizationPath","redirectUrl","replace","repUrl","withRouter","ApiAuthorizationRoutes","path","loginAction","name","useStyles","makeStyles","theme","space","breakpoints","up","marginLeft","xsonly","display","xsnone","down","pic1","right","top","position","animation","width","pic2","pic3","left","pic4","bubble","height","backgroundColor","border","borderRadius","paddingTop","toptext1","padding","fontWeight","fontSize","fontFamily","headerLogo","toptext2","toptext3","coronaText1","spacing","coronaImg","placeItems","mainImgDiv","mainImg","mockup","main","margin","textAlign","marginTop","topbtn","cursor","textDecoration","transition","btnMail","background","btnLogin","aboutEmidel","aboutEmidelContent","maintext1","lineHeight","mainIcon","iconTitle","moreEmidelText","moreEmidel","moreItem","justifyContent","alignItems","btnEmidelLink","medicalList","footer","footmenu","footmenuA","fab","zIndex","opacity","boxShadow","bottom","fabIcon","fabName","Home","unmountRef","useUnmountRef","classes","useTheme","useSafeState","imgLoaded","setImgLoaded","layoutCtx","LayoutContext","setIsMypage","link","document","createElement","rel","head","appendChild","meta","httpEquiv","content","removeChild","PageTitle","title","Scroll","Toolbar","Grid","container","style","className","clsx","src","alt","Typography","item","xs","sm","md","onClick","pathname","icon","faSignInAlt","variant","borderBottom","justify","fade","faExternalLinkAlt","ApiPostLogin","json","axios","post","then","response","catch","ApiPostReflesh","token","JSON","stringify","headers","root","closeButton","palette","grey","box","LoginFormContainer","Helmet","Paper","LoginForm","isSuccess","setIsSuccess","setValidationErrorsForaxios","useErrorMessageProvider","submitDisabled","setSubmitDisabled","useHistory","loginId","yup","required","GetErrMsg","ErrMsgKey","loginPwd","schemaData","schema","shape","useForm","resolver","yupResolver","register","handleSubmit","errors","setError","clearErrors","onSubmit","useCallback","data","e","Object","keys","sessionStorageKeys","map","index","Revision","sessionStorage","removeItem","FormData","getElementById","loginid","isRememberMe","localStorage","setItem","localStorageKeys","LoginJWT","refreshUser","type","unexpected","handleKeyPressEnter","key","commonStyle","id","noValidate","autoComplete","Box","errMsg","TextField","autoFocus","label","inputRef","onKeyPress","FormControlLabel","control","Checkbox","value","Button","disabled","to","formControl","marginBottom","minWidth","selectEmpty","MstDivisionsSelectList","selected","setValue","divisionkey","dispnone","addSchemaData","readOnly","msg","setMsg","selectedValue","setSelectedValue","selectItemData","setSelectItemData","open","setOpen","snackbarSeverity","setSnackbarSeverity","GetSelectItems","divisionValue","console","log","f","DefaultSnackbar","onClose","event","autoHideDuration","severity","anchorOrigin","vertical","horizontal","FormControl","InputLabel","Select","labelId","onChange","target","inputProps","MenuItem","divisionText1","PhoneNumberTextBox","matches","validationConst","phone_reg_exp","phoneNumber","excludeEmptyString","InputLabelProps","fullWidth","defaultValue","titleTextItem","titleText","TitleText","isNotSetPageTitle","children","titleTextContainer","direction","alignContent","textField","recaptchaBox","wrapper","ClaimAuthorizeRoute","authenticated","setAuthenticated","protocol","host","hash","contextClaims","claim","claimErrorPath","flexGrow","maxWidth","listRoot","paper","nested","paddingLeft","paddingRight","iconColor","iconBgColor","GenerateListItem","ListItem","button","isAvatar","ListItemAvatar","Avatar","ListItemIcon","ListItemText","primary","primaryText","secondary","secondaryText","primaryTypographyProps","secondaryTypographyProps","subItems","List","GenerateListItems","items","InteractiveList","dense","ToggleMain","appBar","drawer","flexShrink","drawerPaper","drawerContainer","overflow","flexDirection","drawerHeader","mixins","toolbar","drawContent","transitions","create","easing","sharp","duration","leavingScreen","drawShift","easeOut","enteringScreen","contentShift","avatorColor","ClippedDrawer","userName","setUserName","roleName","setRoleName","hospitalName","setHospitalName","user","contactPersonName","hospital","LoginName","Link","Person","noWrap","Divider","light","Hidden","lgUp","implementation","Drawer","isDrawerOpen","anchor","bottomItems","paddingBottom","mdDown","onScroll","UnauthorizeRedirector","interceptors","handlers","length","use","originalRequest","config","jwt","getItem","isRefleshSuccess","Promise","reject","promise","test","buttonRadius","buttonBox","EditScreenButtons","onClick1","onClick2","onClick3","color1","color2","color3","className1","className2","className3","text1","text2","text3","type1","type2","type3","isDisable1","isDisable2","isDisable3","isUse1","isUse2","isUse3","isPaperInner","other","btn3Click","goBack","btnCount","Number","xsSize","lg","defaultProps","Edit","DeleteForever","ChevronLeft","jaLocale","options","weekStartsOn","calendar_root","ExtendedUtils","date","format","locale","DateFnsUtils","SearchInputDateGrid","text","okLabel","cancelLabel","selectedDate","setSelectedDate","utils","KeyboardButtonProps","DialogProps","clearLabel","autoOk","clearable","SearchInputGrid","errContent","htmlFor","Input","pagenation","marginRight","flexWrap","table_pagenation","table","whiteSpace","PagenationTable2","storageName","rowsPerPageOptions","rowsPerPageDefault","countDefault","pageDefault","searchFunction","requireHeader","requireFooter","refreshTable","isFirstSearch","body","isTableRowSpan","preSessionPageNo","rowsPerPage","setRowsPerPage","page","setPage","count","setCount","dispHeader","dispFooter","firstSearched","setFirstSearched","labelDisplayedRows","from","handleChangePage","newPage","handleChangeRowsPerPage","parseInt","Search","pagination","TablePagination","onChangePage","onChangeRowsPerPage","labelRowsPerPage","tablePagenation","smUp","xsDown","TableContainer","maxHeight","elevation","Table","stickyHeader","aria-label","TableHead","TableRow","TableBody","TableHeaderCell","withStyles","contrastText","TableCell","subTitleText","TitleWithSubTitleText","subTitle","titleTextStyle","SearchButton","popover","dark","overflowWrap","ListText","anchorEl","setAnchorEl","Boolean","anchorButton","aria-describedby","currentTarget","String","substr","Popover","transformOrigin","MstDivisionsSelectListNoLabel","Axios","edit_button","input_span","input_span_text_right","button_wide","list_btn_center","nowrap","ContactList","msgctx","MessageContext","itemData","setItemData","setProcessedData","contactDivData","setcontactDivData","setRefreshTable","isExpand","setIsExpand","getDeleted","proccessed","fromDate","dayjs","Date","now","add","toDate","searchCondition","setSearchCondition","handleClickComplete","object","getAccessToken","put","Accept","Authorization","cloned","find","x","dcoId","dcoProccessed","enqueue","GetDatas","skip","take","values","changeSearchCondition","val","parse","tableHeaderDef","checked","rowSpan","tableBodyDef","align","dcoCompanyName","dcoPhoneNumber","dcoContactDiv","dcoCreateYmd","dcoPersonName","dcoEmail","dcoUpdateYmd","colSpan","Alert","Textsms","dcoContactDetail","TableSkeleton","numOfRow","numOfCol","GetDivisions","ExpandLess","ExpandMore","HospitalDeptsPageNo","Index","ConfirmDialog","handleClose","message2","disable1","parameter","Dialog","DialogTitle","DialogContent","DialogContentText","DialogActions","IOSSwitchStyle","switchBase","transform","common","white","thumb","track","focusVisible","Switch","focusVisibleClassName","disableRipple","IOSSwitch","labelStyle","HelpToolTip","handleTooltipClose","handleTooltipOpen","ClickAwayListener","onClickAway","Tooltip","PopperProps","disablePortal","disableFocusListener","disableTouchListener","HelpOutline","onMouseOver","HelperIsNewPatient","HelperIsUseReserve","ClaimsEditCommon","claimList","handleChange","dialogOpen","preOrder","isBreak","floorOrder","Math","floor","search_root","text_right","RoleClaimsEdit","roleId","qs","ignoreQueryPrefix","role_id","role_name","confirmDialogOpen","setConfirmDialogOpen","setClaimList","GetMstClaims","ar","mclClaimTitle","mclClaimType","mclShowOrder","mclDescription","GetRoleClaims","clonedClaim","claimType","deleteList","insertList","object2","queryString","delete","toString","object3","FormDataToJson","formName","formData","forEach","GlobalCss","paperReception","borderTop","paperBox","ManageMenuPaper","tableTd","delete_button","overflowY","RoleEdit","alert","list","ListTitleDrawer","buttons","lists","drawerOpen","setDrawerOpen","toggleDrawer","smDown","mdUp","IconButton","edge","Menu","role","onKeyDown","LinkButton","hoverTextColor","LinkFab","ref","Fab","TableBorderedRow","hover","TableBorderedRowOdd","Roles","MyComponent","React","forwardRef","canCreate","setCanCreate","canEdit","setCanEdit","GetRoles","VerifiedUser","buttonsDef","Add","listsDef","claims","hasClaim","Claims","Role_Create","RoleClaims_Edit","RolesPageNo","warning_sign","UserClaimsEdit","pushRoot","indexOf","userId","user_id","user_name","GetUserClaims","GetUser","enqueueNotClose","checkHospitalDept","DropDownListNative","jsonData","titlesFieldName","valuesFieldName","setItems","isInitialized","setIsInitialized","i","NativeSelect","BootstrapInput","input","join","borderColor","InputBase","shrink","BootstrapInputWithLabel","helperText","FormHelperText","HospitalSelectList","hospitals","setHospitals","GetHospitals","ApiGetHospitals","HospitalDeptWithHospitalSelectList","hid","depts","setDepts","GetDepts","ApiSearchDept","MyDeptsSelectList","deptId","ApiGetMyDepts","TimeTableSelectList","setVal","timeTables","setTimeTables","hospitalId","onTimeTableChange","isShowAll","ApiGetTimeTables","GetTimeTable","HospitalDeptTimeTableSelectList","time","isShowAllTime","isShowPlzSelectTime","isShowAllDept","fullWidthDept","fullWidthTime","nameOfDeptSelect","nameOfTimeTableSelect","onSelectedDeptChange","onSelectedTimeChange","collapseTimeIfDeptNotSelected","deptValue","setDeptValue","onHospitalDeptChange","Collapse","in","RoleSelectList","setvalue","dispAdmin","dataSelected","setDataSelected","roleData","setRoleData","UserEdit","useParams","dispPtn","setDispPtn","roleClaims","setRoleClaims","canDelete","setCanDelete","confirmMsg","setConfirmMsg","toggleDeleteUrl","setToggleDeleteUrl","email","setSchemaData","unregister","getValues","watch","dialogClose","getRoleClaims","setStateValue","delSchemaData","delSchemaDataFunc","addSchemaDataFunc","ToggleDelete","User_Delete","notHospital","Not_Require_Hospital_Id","notHospitalDept","Not_Require_Hospital_Dept_Id","hasAllClaims","Has_All_Claims","InputProps","isDelete","modal","shadows","SearchModal","inputs","Modal","Users","searchModalOpen","setSearchModalOpen","setRoleId","setHospitalId","setDeptId","setGetDeleted","canClaimsEdit","setCanClaimsEdit","handleSearchModalOpen","GetUsers","getUrl","changeName","changeRole","changeHospitalId","changeDeptId","changeGetDeleted","deptName","Change_Password_Others","VpnKey","User_Create","User_Edit","UserClaims_Edit","UsersPageNo","Hospitals","setErrorMessage","hospitalKindData","setHospitalKindData","prefNameData","setPrefNameData","Holiday_Read","Schedule","Common_Time_Table_Read","ViewModule","Hospital_Dept_Read","Assignment","Calendar_Read","Event","kind","prefName","prefCd","GetHospitalAddressTxt","cityName","address","tel","Manage_All_Hospitals","Hospital_Create","Hospital_Edit","HospitalsPageNo","HospitalDepts","hospitalid","Time_Table_Read","Manage_All_Depts","GetHospitalData","Hospital_Dept_Create","Hospital_Dept_Edit","ImageCompressor","images","compressSize","compSize","imageConst","hospital_image_compress_size","compressOptions","maxSizeMB","all","image","imageCompression","blob","img","mainGrid","childGrid","ImagesUpload","componentRef","setImages","textLabel","maxImages","isLogo","isImgSizing","textStyle","oneSize","useState","isSameError","setIsSameError","isNumberError","setIsNumberError","isFileTypeError","setIsFileTypeError","confirmFunction","setConfirmFunction","deleteTarget","resetErrors","handleFile","files","concat","pickedImages","filter","file","includes","some","concatImages","slice","handleCancel","modifyImages","splice","handleClear","clickInsert","click","registerdImage","URL","createObjectURL","Clear","noImage","FormLabel","Array","_","AddAPhoto","HighlightOff","accept","multiple","DropDownList","DepartmentSelectList","setData","GetData","MstDivisionsRadio","ignoreValues","radioVerticallyClassName","labelMarginClassName","RadioGroup","row","Radio","Skeleton","sectionTitle","sectionBorder","SectionTitleText","TemplateMsgSelectList","templateMsg","templateName","objectBox","CommonTab","panels","errorTabNoArr","tabValue","setTabValue","Tabs","newValue","indicatorColor","textColor","panel","Tab","ReportProblem","PreScreenList","isChangeOrder","fields","remove","swap","insert","defaultsJson","setDefaultsJson","confirmDialogMsg","setConfirmDialogMsg","confirmDialogMsg2","setConfirmDialogMsg2","setDeleteTarget","pl","dragHandleSelector","lockAxis","onDrop","dragResult","removedIndex","addedIndex","payload","applyDrag","field","PreScreenEditModal","modalClose","screens","hasErr","setHasErr","divider","DragHandle","alignItmes","ListItemSecondaryAction","success","Close","keepMounted","PreScrrenTab","selects","setSelects","handleTemplateSelect","copySelects","setErrorTabNoArr","pageNamesArr","errorTabNos","screensErr","err","names","as","button1Name","defaultChecked","isNewPatient1","button2Name","isNewPatient2","isUseReserve","WysiWygEditor","startIcon","ApiHospitalDeptScreensGet","did","notchedOutline","secondLine","cancellSelect","selectInputBox","selectInput","secondLineBorder","radioVertically","labelMargin","HospitalDeptEdit","setHospital","isDisable","setIsDisable","setIsChangeOrder","errProvider","editorTextLength","editorCompleteSentenceTextLength","fieldSchema","showOrder","typeError","number","positive","integer","trim","parent","max","description","isRecieveReservedMail","isRecieveCanceldMail","bookableDays","bookableType","showDays","bookableTime","bookableDeadlineType","bookableDeadlineDays","bookableDeadlineTime","cancellationAvailability","cancellationType","cancelableDays","cancelableTime","departmentId","useHomePage","nullable","isAllowOnlySpecifyIp","allowIpAddress1","allowIpAddress2","allowIpAddress3","ip_reg_exp","ipRegEx","of","useFieldArray","append","handleAddScreenClick","completeSentence","GetScreens","GetImage","imageList","imageData","bin","atob","buffer","Uint8Array","charCodeAt","File","extention","mhdButtonName1","mhdButtonName2","mhdText","mhdIsUseReserve","mhdShowOrder","mhdTitle","mhdIsNewPatient1","mhdIsNewPatient2","compressedImageData","form_data","aveTime","f2","Hospital_Dept_Delete","hospital_dept_image_max_count","native","OutlinedInput","displayEmpty","endAdornment","InputAdornment","divName","divLabel","divData","dateName","dateData","dateDndAdornment","timeName","timeData","TimeToDamyDatetime","watchGridClassName","endSentence","namePhoneticItemRequire","sexItemRequire","phoneNumberItemRequire","noteItemRequire","noteItemName","maxLength","notePlaceHolder","multiline","rows","note2ItemRequire","note2ItemName","note2PlaceHolder","editorStyle","setEditorTextLength","isVisible","isUseMonthCalendar","bookedMailTextHeader","bookedMailTextBottom","remainderTextHeader","remainderTextBottom","placeholder","pt","pb","decorateDescription","isVisibleHomePage","MstDivisionsRadioCustom","TimePicker","ampm","inputVariant","Doctors","Doctor_Create","Doctor_Edit","DoctorsPageNo","formLabelsTheme","createMuiTheme","overrides","MuiFormLabel","asterisk","DoctorEdit","doctorId","Doctor_Delete","doctor_image_max_count","GetWeeklyDatas","GetExceptDatas","GetTimeTableOfDay","targetDate","InsertTimeTable","bgnDate","endDate","isShowLimit","isForce","isSpot","eventList","events","newEvent","start","end","bookLimit","resourceId","otherWeeks","isInvisible","focus","UpdateTimeTable","timeTableId","map1","js","bc","resource","getDay","Delete","CopyGet","hId","copyTarget","OverflowModalStyle","dialogTitleText","DialogTitleText","textCenterClassName","KeybordTimePicker","selectedTime","setSelectedTime","isTimeOpen","setIsTimeOpen","keyboardIcon","borderTopColor","calendar_row_big","minHeight","localizedFormat","require","extend","locales","ja","localizer","dateFnsLocalizer","startOfWeek","getUniqueStr","myStrong","strong","getTime","random","DayCalendar","setEvents","setDeleteList","modalOpen","setModalOpen","modalId","setModalId","modalResourceId","setModalResourceId","modalName","setModalName","modalIsInvisible","setModalIsInvisible","modalStart","setModalStart","modalEnd","setModalEnd","modalBookLimit","setModalBookLimit","moreThan","modalCloseFnc","modalOk","isInvalid","validate","abortEarly","inner","allDay","newEvents","obj","modalDelete","strVal","resourceIdList","resourceMap","resourceTitle","changeRow","setChangeRow","changeStyle","setChangeStyle","st","watchTime","match","rc","getResourceTitle","minutesStep","Height","tooltipAccessor","selectable","step","timeslots","defaultDate","defaultView","Views","DAY","onSelectEvent","views","onSelectSlot","resources","resourceIdAccessor","resourceTitleAccessor","scrollToTime","eventPropGetter","calendarStyle","culture","calendar_col_big","WeekCalendar","modalWeeks","setModalWeeks","findSameRcd","isSame","y","z","copyResourceId","notHoliday","deleteTargetList","eventDeleteTargetList","strVal2","handleCheckAll","patternIndex","objects","getElementsByName","call","element","changeCol","setChangeCol","UseEffect2","weekDayMap","otherWeeksMap","WeekChkBox","convertedObjects","handleCheckWeeks","ResourceChkBox","SettingsEthernet","check","setCheck","arrow","verticalAlign","arrowColor","KeybordDatePickerJp","onChangeSearch","isShowPrevArrow","isShowNextArrow","handleDateChange","handlePrevArrowClick","setDate","getDate","handleNextArrowClick","isCalendarOpen","setIsCalendarOpen","handleClick","onFocus","InputAdornmentProps","invalidDateMessage","TextFieldComponent","startAdornment","ChevronRight","date_space","ExaminationTimeRange","newFlg","eventsList","handleSnackbarOpen","getData","setIsDisable1","isInProgress","useRef","timeTableDelete","current","targetEvents","Common_Time_Table_Delete","Common_Time_Table_Edit","Common_Time_Table_Create","Time_Table_Delete","Time_Table_Edit","Time_Table_Create","dateMsg","setDateMsg","dateKind","tab_root","TabPanel","hidden","aria-labelledby","p","a11yProps","TimeTableEdit","deptid","hospitalDeptName","setHospitalDeptName","datas","setDatas","exceptDatas","setExceptDatas","GetHospitalDeptData","setter","GetExceptData","handleCopyClick","handleAddClick","FileCopy","timeRangeAccordion","Accordion","TransitionProps","unmountOnExit","defaultExpanded","AccordionSummary","expandIcon","aria-controls","AccordionDetails","copyDept","setCopyDept","modalClass","copyDeptTimeTable","setCopyDeptTimeTable","setCopyTarget","handleHospitalDeptChange","handleCopy","AppBar","ApiGetCalendar","ApiPostCalendar","ApiPutCalendar","ApiDeleteCalendar","YearMonthPicker","DatePicker","openTo","formats","dateFormat","dayFormat","monthHeaderFormat","CustomToolbar","navigate","onNavigate","NavigateBefore","NavigateNext","HospitalCalendar","toDay","dateList","setDateList","dateKinds","setDateKinds","setTarget","createDisable","setCreateDisable","editDisable","setEditDisable","deleteDisable","setDeleteDisable","calendarDate","setCalendarDate","min","colors","isSelected","colorId","handleTabChange","modalOpenFnc","handleSelectSlot","handleSelectEvent","dataEdit","diffDays","diff","startDate","getCalendar","dataDelete","preObj","note","subtract","getFullYear","Chip","listEditButton","Edit_Common_Calendar","createClaim","Calendar_Create","editClaim","Calendar_Edit","deleteClaim","Calendar_Delete","useMemo","Month","components","handleCreateClick","listComp","requireRed","commonErrorTypo","button1Text","editButton","ApiGetWithToken","parameters","responseType","tkn","params","ApiPatchWithToken","patch","ApiPostWithToken","ApiPutWithToken","ApiGetHolidays","PostHoliday","timeTableDetailId","holidayKind","DeleteHoliday","holidayId","isSuspend","header","borderRight","cell","titleCell","btn","ReservationTable","onClickStop","onClickCurrentTime","onClickClose","dispFlg","reflesh","setReflesh","onShowDaysChange","onClickReturnMonth","styles","reservationTable","setReservationTable","tableRows","setTableRows","tableHeaderCells","setTableHeaderCells","deptSelected","setDeptSelected","setShowDays","isSizeSm","useMediaQuery","ApiGetDepts","GetReservationTable","days","ApiGetReservationTables","GetDept","foundDepts","Initialize","dept","headerCells","showDate","cls","sundayColor","saturdayColor","wday","GetDayofWeekJp","headerCell","scope","mappedValues","sort","item1","item2","bgnTime","m1","m2","isAfter","cells","c","titleRow","iCnt","filterdItems","r","CompareDate","dayOfWeek","sunday","saturday","cellKey","Remove","filterdItem","bgnDateTime","DateTime","endDateTime","endTime","bookableBeginDateTime","hour","minute","second","bookableDeadlineDateTime","isBefore","holIdTimeTable","handleStopButtonClick","NotInterested","bookedCount","handleCloseButtonClick","handleButtonClick","inBookableDays","RadioButtonUnchecked","reserveInfo","sessionDeptId","ReservationTableDeptId","Container","draggable","tableLayout","Rest","hidSelected","setHidSelected","didSelected","setDidSelected","showBeginDate","setShowBeginDate","canPost","setCanPost","confirmDept","setConfirmDept","confirmReserveInfo","setConfirmReserveInfo","isReserveStop","setIsReserveStop","refIsReserveStop","holidays","setHolidays","GetHolidays","deletePgm","deleteStop","holidayKindText","Holiday_Delete","Holiday_Create","maxWidh","holiday","dialogOpenOnStopInList","dialogOpenInList","adminBadge","warning","badge","cardIcon","InformationTable","informationContent","setInformationContent","isNotTitle","isMyPage","isMyPageOpen","userCtx","referenceHid","setReferenceHid","errorMessage","GetInformation","Info","info","minInformationDate","toLocaleDateString","minIsAdmin","minIsMypage","wordBreak","minText","categoryTitle","categoryContent","cardContent","cardContentPadding","SimpleContentCard","handleCardClick","iconTag","Card","CardActionArea","CardContent","gutterBottom","SimpleGraphCard","SimpleCard","tableHead","isShowDashboard","tableRow","MonthCalendar","onClickDate","setTargetDate","setReserveInfo","calendar","getCalendarArray","today","setHours","isSizeMdUp","isSizeSmDown","isStaff","GetHospital","ApiGetHospital","GetReserveInfo","ApiGetMonthlyReservationTables","objList","reservedCt","limitCt","limitCount","bookingStatus","bookableCount","subMonths","isSameMonth","addMonths","weekRow","rowNum","CalendarTableCell","isTargetMonth","isToday","isSameDay","dateReserveInfo","rowStyle","eachWeekOfInterval","startOfMonth","endOfMonth","eachDayOfInterval","endOfWeek","useCalendarCellStyles","calendarCell","red","blue","cellClasses","isSizeXs","clickable","isIgnoreLimitOnReserveMain","dialogBox","cardBox","svgIcon","fill","manage","setManage","weekData","handleContentClick","GetManage","Today","reserveCount","CheckCircle","afterMedicalExaminationCount","isCancel","Cancel","cancelCount","DoubleArrow","tomorrowReserveCount","Timeline","dataKey","stroke","strokeDasharray","strokeWidth","EventNote","defaultDeptId","DeptIconImage","cellTitle","cellContent","AccountIndex","setDept","ApiGetDept","Edit_Account_Info","readOnlyTextField","AccountEdit","onSubmitData","PasswordEdit","pUserName","dispOk","setDispOk","password","passwordPolicy","confirmPassword","oneOf","passwordUnmatch","isSelf","logout","fn","cenerTitleInBox","algin","actions","isReadOnly","MemoDialog","onSave","isEdit","setIsEdit","isOpenConfirmDialog","setIsOpenConfirmDialog","setText","isSave","setIsSave","saveTitle","setSaveTitle","saveMsg","setSaveMsg","savedValue","setSavedValue","close","handleTextChanged","handleSave","confirmDialogSubmit","AlertTitle","rowsMax","LockOpen","Lock","Save","Create","useTimer","interval","setTime","timeoutId","setTimeout","clearTimeout","PhoneCallDialog","my","Phone","textDialogInput","TextInputDialog","formId","fieldLabel","isShowResultAlert","isShowResultSnackbar","isSaveAndClose","watchTextValue","form","ApiGetCard","cno","birthDay","card","ApiPostCardAsync","mcdBirthDay","ApiPutCardAsync","ApiDeleteCardAsync","cardNo","ApiPutCardForUpdateGuid","lineUrl","GenerateLineParameter","guId","clientId","cl","hostUrl","hostname","port","encodeURIComponent","ApiGetLine","query","setLinePage","setLineData","ApiGetLineClientID","LineQrcodeGenerator","lineParam","setLineParam","qrGenerate","setQrGenerate","handleClickQrGenerate","GetCard","ApiGetBookingsCsv","ApiPostSendDeleteMail","booking","ApiPostSendDeleteLine","ApiPostSendDeleteMailToDept","ApiPostSendUndoDeleteMail","ApiPostSendUndoDeleteLine","ApiPostSendUndoDeleteMailToDept","DownloadCsvBlob","filename","Blob","contentDisposition","fileName","GetFileName","setAttribute","yearSelect","monthSelect","YmdSelect","unmount","showBeginYear","showEndYear","defaultYear","defaultMonth","defaultDay","isReverse","years","setYears","months","setMonths","setDays","selectedYear","setSelectedYear","selectedMonth","setSelectedMonth","selectedDay","setSelectedDay","GetDays","year","month","d","limit","bgnYear","endYear","m","BookingConfirmDialog","ApiPostSendMail","bookingDate","bookOrder","ApiPostSendLine","ApiPostSendMailToDept","MstDivisionsRadioWithLabel","resizable","PaperComponent","handle","cancel","memo","DraggableDialog","handleRowClick","setIsShowCanceled","isShowCanceled","sexNameData","searchResults","setSearchResults","searchResultsCount","setSearchResultsCount","GetAllBookings","keyword","bookings","selectedRowId","setSelectedRowId","searchText","setSearchText","SearchAll","hashSave","sx","preventDefault","ml","flex","minConstraints","ontouchstart","onTouchStart","overflowX","bookCard","timeTableDetail","isNewPatient","cardNumber","lastName","firstName","lastNamePhonetic","firstNamePhonetic","sexId","bh","birthday","yearPosi","dispBirthday","printOnly","print","noPrint","printTc","visibility","goingOutSelected","noTopBottom","thinBottom","thinLR","TitleBox","tableHeader","linePattern","contentRow","lineTextBox","lineUserDatas","qrUserDatas","lineColonCell","lineCell","lineDetailBox","inputText","backDrop","backdropFilter","StyledToggleButtonGroup","grouped","ToggleButtonGroup","Bookings","session","BookingsSelectedDate","bookData","setBookData","csvDeptId","setCsvDeptId","disableNextTime","setDisableNextTime","disablePrevTime","setDisablePrevTime","selectedBookingItem","setSelectedBookingItem","setMemo","openMemoDialog","setOpenMemoDialog","openSnackbar","setOpenSnackbar","useSendMessageBtn","setUseSendMessageBtn","openSuccessSnackbar","setOpenSuccessSnackbar","snackbarMsg","setSnackbarMsg","openConfirmDialog","setOpenConfirmDialog","confirmDialogParamter","setConfirmDialogParamter","setPhoneNumber","openPhoneCallDialog","setOpenPhoneCallDialog","openCardNumberDialog","setOpenCardNumberDialog","isAutoRefresh","setIsAutoRefresh","isNowAutoRefresh","setIsNowAutoRefresh","isNarrow","isOpenCsvDrawer","setIsOpenCsvDrawer","csvBgnDate","csvEndDate","schemaDataCsv","schemaCsv","registerCsv","handleSubmitCsv","errorsCsv","setErrorCsv","clearErrorsCsv","getValuesCsv","setValueCsv","Refresh","isSilent","tid","GetBookings","findIndex","tt","isEditing","setIsEditing","setSexNameData","bgn","messages","dt","ttId","handleCancelClick","tblIndex","rowIndex","book","handleDeptChange","handleNextTimeClick","handlePrevTimeClick","handleFlagClick","copy","bookRow","copyTbl","copyRow","mcdIsAttension","mcdHospitalId","mcdId","handleMemoClick","mcdNote","handlePhoneClick","handleCardNumberClick","handleLabelPrintClick","bookInfo","GetTime","h","reservation","GetReservationInfo","handleEditClick","handleFollowUpClick","persons","isFollowUp","ticketNumber","newPatient","mcdEmail","note2","EntryDefaultValues","reservationPath","validateSelectedBookingItem","handleMemoSave","ret","handleMemoClose","handleCardNumberSave","sendMessage","linesItem","setSendMessageValue","handleCloseLine","openLineDialog","setOpenLineDialog","setLinesItem","qrGenerateItem","setqrGenerateItem","openQRGenerateDialog","setOpenQRGenerateDialog","handleSendIconClick","handleQrClick","handleCloseQrGenerate","sendData","massagePattern","setMassagePattern","sendMessageValue","handleLineDisableClick","onStatusChanged","statusChangedTime","elapsedTime","MoveCallOrder","counter","row1","row2","callOrder","ElapsedTime","toolTip","AccessTimeTwoTone","DateToString","GetNewBooking","branchId","receiptNumber","isGoingOut","goingOutTime","createUser","createYmd","updateUser","updateYmd","mcdIsSendNotice","mcdLineUserId","mcdToken","mcdTokenExpire","mcdCreateUser","mcdCreateYmd","mcdUpdateUser","mcdUpdateYmd","isNew","OnClickReserveButton","selectedTimeTable","newDatas","showReserveButton","PlaylistAdd","hiddenSm","wrapMenuItemIfNarrow","menuOnClick","wrapOtherMenuItemIfNarrow","DisableEmailButton","faEnvelopeSquare","showFunctionIconButtons","otherContent","keyIndex","stopPropagation","Replay","faLine","Flag","FlagOutlined","Announcement","AnnouncementOutlined","Print","PhoneDisabled","CloseMenu","anc","aria-haspopup","MoreVert","faUser","elem","elements","bookingSendLineText","BackdropProps","GetCsv","GetApp","float","txt","hiddenXs","hiddenMd","mt","BookTable","deptS","setDeptS","statusData","index2","ButtonGroup","orientation","noBorder","exclusive","v","ToggleButton","visibleSm","onGoinOutChanged","noteRow","LineBreakToBr","RegisterRow","noteHelperText","setNoteHelperText","handleNoteChange","note2HelperText","setNote2HelperText","handleNote2Change","btnDisabled","setBtnDisabled","phone_reg_exp_no_hyphen","phoneNumberNoHyphen","birthYear","birthMonth","defaultValues","elmIsNewPatientButton","elmCardNumber","isNewPatientReservable","isRequireMail","vals","Reservation","Persons","finally","onSubmitEdit","vm","copyTable","onCancel","fullwidth","PatchShowOrder","informations","EditIconButton","buttonOption","tooltipTitle","SaveIconButton","UndoIconButton","Undo","smartLineUpLeft","smartLineUpRight","deliveryTitle","deliveryStatus","chip","cancelText","inputBottom","flexBasis","Information","showOrderEditSchema","informationLists","showOrderRegister","showOrderErrors","showOrderSetErrors","showOrderGetValues","showOrderClearErrors","setReadingHospital","isEditShowOrder","setIsEditShowOrder","handleSearchModalClose","GetInformations","Information_Edit","infoDetail","minInformationId","minShowOrder","minShowBgnDateTime","minShowEndDateTime","changeDateSearchCondition","Information_Create","InformationListPageNo","rightContentCell","InformationRegister","isMypage","selectedId","openDeleteDialog","setOpenDeleteDialog","informationDate","showBgnDate","showBgnTime","showEndDate","showEndTime","getHours","getMinutes","onDelete","TableCellNoBorder","isEnabled","Information_Delete","input_ie","Notices","createUrl","no","Notices_Create","NoticesPageNo","ApiPostNoticeAsync","ApiPostSampleEmailAsync","NoticesEdit","queryS","pattern","sampleEmailSchema","sampleEmail","handleSendSampleEmail","Send","isValid","ExamCards","changeSearchConditionSelect","changeSearchConditionEvent","Card_Create","Card_Edit","ExamCardsPageNo","ExamCardEdit","setHid","setConfirmDialogSubmit","setErrorCommon","targetMcdId","targetMcdBirthDay","handleReturn","handleDelete","Card_Delete","dialogMsg","CheckRevisionComponent","axiosInterCepter","axiosInterCept","timer","init","isFirst","setIsFirst","serverVersion","ServerRevision","reload","Reload","request","CheckRevision","fn2","eject","iconSize","cardRoot","HospitalPotal","menues","setMenus","tempMenus","LocalHospital","User_Read","People","menu","xm","MenuCard","ApiPostFeedbackAsync","commentGrid","rating","loginLink","FeedbackCommon","comment","handleCommentChange","dispThanks","setDispThanks","Rating","FeedbackModal","feedbackOpen","setFeedbackOpen","ApiHospitalScreensGet","modal_root","modal_title","AddressTextBox","postalName","postalDefaultValue","cityDefaultValue","addressName","addressDefaultValue","prefCdName","prefCdDefaultValue","setAddress","city","setCity","prefCdSelected","setPrefCdSelected","modalData","setModalData","inputShrink","setInputShrink","postal_reg_exp","postalCodeRegEx","onChangePostal","postalCode","results","address2","address3","prefcode","handleAddressSelect","address1","HospitalEditBaseInfo","scoreClassId","englishName","companyName","managerName","fax","TextBoxWithCopy","setInput","openTip","setOpenTip","disableHoverListener","placement","assign","HospitalEditHomePageInfo","canAllowUseHomepage","directorImages","setDirectorImages","logo","setLogo","homeUrl","primaryColor","secondaryColor","selectedColor","setSelectedColor","isOpenColorPickerPrimary","setIsOpenColorPickerPrimary","isOpenColorPickerSeconary","setIsOpenColorPickerSecondary","colorData","setColorData","mtcPrimaryColor","mtcSecondaryColor","isSearchable","templatePattern","cd","mtcId","mtcDescription","cover","onChangeComplete","hex","logo_image_max_count","hospital_image_max_count","trafficInformation","holidayInformation","businessInforMation","isUseDirector","useDirectorBox","director_image_max_count","directorsName","directorsText","ExtraScreenComp","screensValue","HospitalEditReservationInfo","regUrl","isReservationSearchable","isEnableLine","useBookNow","color_picker","HospitalEditSep","setCanAllowUseHomepage","notistackKey","setNotistackKey","halfAlphaNumericSymbole","trimEnd","GetLogo","GetDirectorsImage","mhsButtonName1","mhsButtonName2","mhsText","mhsIsUseReserve","mhsShowOrder","mhsTitle","mhsIsNewPatient1","mhsIsNewPatient2","lastModifiedDate","Hospital_Delete","Allow_Use_Homepage","changeNotReservationSearchableMsg","closeSnackbar","enqueueWithOption","persist","ManageRoute","listItems","setListItems","bottomListItems","setBottomListItems","bottomList","PostAdd","Card_Read","RecentActors","Information_Read","Notifications","Notices_Read","MailOutline","Can_Use_Various_Settings","SettingsApplications","Web","ShoppingCart","ThumbUp","Can_Use_Admin_Menu","Settings","GetMenu","exact","admin","readingHospital","nameDisplay","setNameDisplay","searchHospitalId","setSearchHospitalId","setPrefCd","setHospitalSetter","pref","AllInformation_Edit","AllInformation_Create","GetHospitalByChangePref","AllInformation_Read","InformationListAdminPageNo","Admin","setlistItems","Roles_Read","AssignmentInd","Hospital_Read","ContactList_Read","GetAdminMenu","fixed","Doctor_Read","ForgotPassword","ResetPassword","setToken","isSnackbarOpen","setIsSnackbarOpen","ForgotConfirm","RemoveEntryDefaultValues","jsnoValues","AddPreConfirmSelectValue","sid","preConfirmSelectValue","PreConfirmSelectValue","preValue","CheckPreConfirmSelectValue","isOk","mhsHospitalId","mhsId","destScreens","mhdHospitalId","mhdDeptId","CheckPreConfirmEntry","noPaddingSmDown","ReserveMain","rsrvCtx","ReserveContext","isOpenOverTimeDialog","setIsOpenOverTimeDialog","dispMonth","setDispMonth","swiperInstance","refreshDept","handleArrowClick","handleShowDaysChange","postHoliday","mx","mb","WhiteSpaseBreakToBr","letterSpacing","ArrowBack","Slide","mountOnEnter","exit","tableTitleCell","tableContentCell","typo","toggleDefault","toggleGroupDefault","shrinkLabel","ReserveEntry","setDefaultValues","param","NewPatient","noPaddingXs","JsonDateTimeToDate","GetTimeRangeStr","ScrollDialog","scroll","descriptionElementRef","descriptionElement","dividers","tabIndex","tableColon","agree","ReserveConfirm","chkAgree","isAgree","setIsAgree","personInfo","executeRecaptcha","useGoogleReCaptcha","recaptchaVersion","setRecaptchaVersion","recaptchaObj","setRecaptchaObj","recaptchaV2","recaptchaV2Token","setRecaptchaV2Token","recaptchaV3Token","setRecaptchaV3Token","isOpenTermOfUseDialog","setIsOpenTermOfUseDialog","ShowError","recaptchaToken","version","handleReCaptchaVerify","reset","summary","isBot","handleIsAgreeChange","onSendButtonClick","handleReCaptchaV2Change","handleTermOfUseDialogClose","termOfUseHtml","Warning","patientConst","new_patient","not","bgcolor","onVerify","sitekey","RecaptchaSiteKeyV2","ChevronRightButton","textFontSize","disableElevation","buttom","OutlinedFab","listItem","listSkeleton","flexColumnIe11","SelectDept","seoKeywords","setSeoKeywords","seoDescription","setSeoDescription","keywords","SetSeoKeywords","SetSeoDescription","DeptButtons","xl","LinkButtonComp","setUrl","setScreens","mailDialogInput","MailDialog","watchMailValue","MailButton","shortButton","isOpenMailDialog","setIsOpenMailDialog","isOpenSnackbar","setIsOpenSnackbar","handleAlertMailClick","handleMailDialogClose","handleMailDialogSave","mailObj","apiTarget","handleSnackbarClose","LineButton","lineUserId","handleReleaseLine","notifyAlert","centerButton","marginVertical","marginHorizontal","triangle","borderLeft","brIphone","toolBar","ReserveThanks","reservectx","mailAddress","setMailAddress","cardData","setCardData","isEmptyDept","setIsEmptyDept","setNewPatient","asyncF","handleMailSave","LineDelete","closeFollowupNotistack","toolbarHidden","lineBreak","titleStyle","SelectConfirm","prefix","screen","setScreen","disp","setDisp","nextUrl","setNextUrl","defaultNextUrl","isSizeXsDown","SetNextURL","next","deptScreens","setDeptScreens","PreConfirm","nextScreenUrl","setNextScreenUrl","selectConfirmUri","IconButtonBorder","disableFocusRipple","ButtonBase","capitalize","edgeStart","edgeEnd","centerRipple","focusRipple","typography","pxToRem","active","shortest","colorInherit","colorPrimary","colorSecondary","colorWarning","colorError","sizeSmall","ReserveWhen","isReady","setIsReady","timeTable","setTimeTable","setBookableTime","refreshHospital","GetBookableTime","handleReserveNowClick","LabelPrintGlobalCss","ReservePrint","back","KeyboardBackspace","createContext","ReserveRoute","keyRef","SetHospitalId","Provider","hnm","px","notifyButton","flexCenter","MyPage","setParam","openCancelDialog","setOpenCancelDialog","cancelParameter","setCancelParameter","lineClientId","setLineClientId","GetMyBookings","handleCancelDialogSubmit","bookingBgnTime","MyPageRoute","MyPageAuth","textBox","lineBox","RemindResult","linePageSetter","setLinePageSetter","linePage","lineData","setIsRemindResult","GuIdSetter","getParam","regex","RegExp","exec","decodeURIComponent","GetLINE","AppRouter","Layout","menuBtn","ApiAuthorizationPrefix","NotFound","displayName"],"mappings":"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","file":"static/js/14.a7df0255.chunk.js","sourcesContent":["import authService from \"components/api-authorization/AuthorizeService\";\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { UserContext } from \"./UserContext\";\r\n\r\nexport default function AuthorizeRoute(props) {\r\n const { component, ...others } = props;\r\n\r\n return (\r\n }\r\n />\r\n );\r\n // return (\r\n // {\r\n // if (authenticated) {\r\n // return ;\r\n // } else {\r\n // return <>;\r\n // }\r\n // }}\r\n // />\r\n // );\r\n}\r\n\r\n// 未ログインの場合はログイン画面に戻らせる共通処理\r\nconst AuthGuarder = (props) => {\r\n const userctx = useContext(UserContext);\r\n const { history } = useReactRouter();\r\n const { component: Component, ...others } = props;\r\n useEffect(() => {\r\n const asyncFunc = async () => {\r\n var isAuthenticated = await authService.isAuthenticated();\r\n\r\n if (isAuthenticated) return;\r\n\r\n history && history.push(\"/login\");\r\n userctx && userctx.setUser(null);\r\n };\r\n asyncFunc();\r\n }, []);\r\n\r\n return ;\r\n};\r\n\r\n// import React from \"react\";\r\n// import { Component } from \"react\";\r\n// import { Route, Redirect } from \"react-router-dom\";\r\n// import {\r\n// ApplicationPaths,\r\n// QueryParameterNames,\r\n// } from \"components/api-authorization/ApiAuthorizationConstants\";\r\n// import authService from \"components/api-authorization/AuthorizeService\";\r\n\r\n// //TODO UserContext使うように変えた方が良いかも\r\n// //subscribeのChangedをどうするかが課題だが\r\n// export default class AuthorizeRoute extends Component {\r\n// constructor(props) {\r\n// super(props);\r\n\r\n// this.state = {\r\n// ready: false,\r\n// authenticated: false,\r\n// };\r\n// }\r\n\r\n// componentDidMount() {\r\n// this._subscription = authService.subscribe(() =>\r\n// this.authenticationChanged()\r\n// );\r\n// this.populateAuthenticationState();\r\n// }\r\n\r\n// componentWillUnmount() {\r\n// authService.unsubscribe(this._subscription);\r\n// }\r\n\r\n// render() {\r\n// const { ready, authenticated } = this.state;\r\n// var link = document.createElement(\"a\");\r\n// link.href = this.props.path;\r\n// const returnUrl = `${link.protocol}//${link.host}${link.pathname}${link.search}${link.hash}`;\r\n// const redirectUrl = `${ApplicationPaths.Login}?${\r\n// QueryParameterNames.ReturnUrl\r\n// }=${encodeURI(returnUrl)}`;\r\n// if (!ready) {\r\n// return
;\r\n// } else {\r\n// const { component: Component, ...rest } = this.props; //この行がEdgeではエラーになって何も表示されない\r\n// return (\r\n// {\r\n// if (authenticated) {\r\n// return ;\r\n// } else {\r\n// return ;\r\n// }\r\n// }}\r\n// />\r\n// );\r\n// // return {\r\n// // if (authenticated) {\r\n// // return \r\n// // } else {\r\n// // return \r\n// // }\r\n// // }} />\r\n// }\r\n// }\r\n\r\n// async populateAuthenticationState() {\r\n// const authenticated = await authService.isAuthenticated();\r\n// this.setState({ ready: true, authenticated });\r\n// }\r\n\r\n// async authenticationChanged() {\r\n// this.setState({ ready: false, authenticated: false });\r\n// await this.populateAuthenticationState();\r\n// }\r\n// }\r\n","import React from \"react\";\r\nimport { Component } from \"react\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport { AuthenticationResultStatus } from \"components/api-authorization/AuthorizeService\";\r\nimport {\r\n LoginActions,\r\n QueryParameterNames,\r\n ApplicationPaths,\r\n} from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport { CircularProgress } from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router\";\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\nclass Login extends Component {\r\n static propTypes = {\r\n match: PropTypes.object.isRequired,\r\n location: PropTypes.object.isRequired,\r\n history: PropTypes.object.isRequired,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LoginActions.Login:\r\n this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const params = new URLSearchParams(window.location.search);\r\n const error = params.get(QueryParameterNames.Message);\r\n this.setState({ message: error });\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n render() {\r\n const action = this.props.action;\r\n const { message } = this.state;\r\n\r\n if (!!message) {\r\n return
{message}
;\r\n } else {\r\n switch (action) {\r\n case LoginActions.Login:\r\n return (\r\n
\r\n ログインしています \r\n \r\n
\r\n );\r\n case LoginActions.LoginCallback:\r\n return
Processing login callback
;\r\n case LoginActions.LoginFailed:\r\n case LoginActions.Profile:\r\n case LoginActions.Register:\r\n return
;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async login(returnUrl) {\r\n const state = { returnUrl };\r\n const result = await authService.signIn(state);\r\n switch (result.status) {\r\n default:\r\n throw new Error(`Invalid status result ${result.status}.`);\r\n }\r\n }\r\n\r\n async processLoginCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignIn(url);\r\n switch (result.status) {\r\n default:\r\n throw new Error(\r\n `Invalid authentication result status '${result.status}'.`\r\n );\r\n }\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\r\n \"Invalid return url. The return url needs to have the same origin as the current page.\"\r\n );\r\n }\r\n\r\n // return (state && state.returnUrl) || fromQuery || `${window.location.origin}/mypage`; //ここの最後のURLを変えるとデフォルトのリダイレクト先が変わる\r\n return (state && state.returnUrl) || fromQuery || `/manage`; //ここの最後のURLを変えるとデフォルトのリダイレクト先が変わる\r\n }\r\n\r\n redirectToRegister() {\r\n this.redirectToApiAuthorizationPath(\r\n `${ApplicationPaths.IdentityRegisterPath}?${\r\n QueryParameterNames.ReturnUrl\r\n }=${encodeURI(ApplicationPaths.Login)}`\r\n );\r\n }\r\n\r\n redirectToProfile() {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n redirectToApiAuthorizationPath(apiAuthorizationPath) {\r\n // const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\r\n const redirectUrl = `${apiAuthorizationPath}`;\r\n\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser he gets sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n // window.location.replace(redirectUrl);\r\n\r\n this.props.history.replace(redirectUrl);\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n // window.location.replace(returnUrl);\r\n\r\n var repUrl = returnUrl.replace(`${window.location.origin}`, \"\");\r\n\r\n this.props.history.replace(repUrl);\r\n // this.props.history.replace(returnUrl);\r\n }\r\n}\r\n\r\nexport default withRouter(Login);\r\n","/**\r\n * @file ログイン処理の結果に対してのルーティングを提供します\r\n */\r\nimport React, { Component, Fragment } from \"react\";\r\nimport { Route } from \"react-router\";\r\nimport Login from \"components/api-authorization/Login\";\r\nimport {\r\n ApplicationPaths,\r\n LoginActions,\r\n LogoutActions,\r\n} from \"components/api-authorization/ApiAuthorizationConstants\";\r\n\r\nexport default class ApiAuthorizationRoutes extends Component {\r\n render() {\r\n return (\r\n \r\n loginAction(LoginActions.Login)}\r\n />\r\n loginAction(LoginActions.LoginFailed)}\r\n />\r\n loginAction(LoginActions.LoginCallback)}\r\n />\r\n \r\n );\r\n }\r\n}\r\n\r\nfunction loginAction(name) {\r\n return ;\r\n}\r\n","/**\r\n * @file えみでるのトップページです\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\"\r\nimport React, { useEffect, useContext } from \"react\"\r\nimport { Grid, Typography, Toolbar, Fab } from \"@material-ui/core\"\r\nimport { makeStyles, useTheme, fade } from \"@material-ui/core/styles\"\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\"\r\nimport { LayoutContext } from \"pages/Layout\"\r\nimport { PageTitle } from \"components/common/PageTitle\"\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\r\nimport { faEnvelope } from \"@fortawesome/free-regular-svg-icons\"\r\nimport {\r\n faSignInAlt,\r\n faExternalLinkAlt,\r\n faPaperPlane,\r\n} from \"@fortawesome/free-solid-svg-icons\"\r\nimport \"topKeyFrames.css\"\r\nimport clsx from \"clsx\"\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n space: {\r\n [theme.breakpoints.up(\"sm\")]: { marginLeft: \"10px\" },\r\n },\r\n xsonly: {\r\n [theme.breakpoints.up(\"sm\")]: { display: \"none\" },\r\n },\r\n xsnone: {\r\n [theme.breakpoints.down(\"sm\")]: { display: \"none\" },\r\n },\r\n pic1: {\r\n right: \"5%\",\r\n top: \"20%\",\r\n position: \"absolute\",\r\n animation: \"wobbling_x 3.5s ease-in-out infinite alternate\",\r\n [theme.breakpoints.down(\"sm\")]: { right: \"5%\" },\r\n \"& > img\": {\r\n animation: \"wobbling_y 4.5s ease-in-out infinite alternate\",\r\n [theme.breakpoints.down(\"sm\")]: { width: \"10vw\" },\r\n },\r\n },\r\n pic2: {\r\n right: \"7%\",\r\n top: \"70%\",\r\n position: \"absolute\",\r\n animation: \"wobbling_x 4.5s ease-in infinite alternate\",\r\n [theme.breakpoints.down(\"sm\")]: { right: \"3%\" },\r\n \"& > img\": {\r\n animation: \"wobbling_y 3.5s ease-in infinite alternate\",\r\n [theme.breakpoints.down(\"sm\")]: { width: \"10vw\" },\r\n },\r\n },\r\n pic3: {\r\n left: \"10%\",\r\n top: \"30%\",\r\n position: \"absolute\",\r\n animation: \"wobbling_x 3.5s ease-in-out infinite alternate\",\r\n [theme.breakpoints.down(\"sm\")]: { left: \"0%\" },\r\n \"& > img\": {\r\n animation: \"wobbling_y 4s ease-in-out infinite alternate\",\r\n [theme.breakpoints.down(\"sm\")]: { width: \"10vw\" },\r\n },\r\n },\r\n pic4: {\r\n left: \"5%\",\r\n top: \"70%\",\r\n position: \"absolute\",\r\n animation: \"wobbling_x 4s ease-in infinite alternate\",\r\n [theme.breakpoints.down(\"sm\")]: { left: \"-4%\" },\r\n \"& > img\": {\r\n animation: \"wobbling_y 3s ease-in infinite alternate\",\r\n [theme.breakpoints.down(\"sm\")]: { width: \"10vw\" },\r\n },\r\n },\r\n bubble: {\r\n position: \"absolute\",\r\n width: \"40px\",\r\n height: \"40px\",\r\n backgroundColor: \"transparent\",\r\n border: \"1px solid rgba(255, 255, 255, 0.39)\",\r\n borderRadius: \"50%\",\r\n animation:\r\n \"wobbling_bx 4s ease-in-out infinite alternate, wobbling_by 3s ease-in-out infinite alternate\",\r\n \"&:nth-child(1)\": {\r\n width: \"100px\",\r\n height: \"100px\",\r\n top: \"15%\",\r\n left: \"1%\",\r\n border: \"1px solid rgb(255, 255, 255, 0.39)\",\r\n animation:\r\n \"wobbling_bx 3s ease-in-out infinite alternate, wobbling_by 4s ease-in-out infinite alternate\",\r\n },\r\n \"&:nth-child(2)\": {\r\n width: \"30px\",\r\n height: \"30px\",\r\n top: \"40%\",\r\n right: \"10%\",\r\n border: \"3px solid rgb(255, 255, 255, 0.39)\",\r\n animation:\r\n \"wobbling_bx 3s ease-in-out infinite alternate, wobbling_by 3s ease-in-out infinite alternate\",\r\n },\r\n \"&:nth-child(3)\": {\r\n width: \"30px\",\r\n height: \"30px\",\r\n top: \"45%\",\r\n left: \"10%\",\r\n border: \"2px solid rgb(255, 255, 255, 0.39)\",\r\n animation:\r\n \"wobbling_bx 4s ease-in-out infinite alternate, wobbling_by 4s ease-in-out infinite alternate\",\r\n },\r\n \"&:nth-child(4)\": {\r\n width: \"50px\",\r\n height: \"50px\",\r\n top: \"60%\",\r\n left: \"15%\",\r\n border: \"3px solid rgb(255, 255, 255, 0.39)\",\r\n animation:\r\n \"wobbling_bx 4s ease-in-out infinite alternate, wobbling_by 3s ease-in-out infinite alternate\",\r\n },\r\n \"&:nth-child(5)\": {\r\n width: \"20px\",\r\n height: \"20px\",\r\n top: \"14%\",\r\n left: \"20%\",\r\n border: \"3px solid rgb(255, 255, 255, 0.39)\",\r\n animation:\r\n \"wobbling_bx 3s ease-in-out infinite alternate, wobbling_by 5s ease-in-out infinite alternate\",\r\n },\r\n \"&:nth-child(6)\": {\r\n width: \"40px\",\r\n height: \"40px\",\r\n top: \"15%\",\r\n right: \"20%\",\r\n border: \"1px solid rgb(255, 255, 255, 0.39)\",\r\n animation:\r\n \"wobbling_bx 3.5s ease-in-out infinite alternate, wobbling_by 3.5s ease-in-out infinite alternate\",\r\n },\r\n \"&:nth-child(7)\": {\r\n width: \"60px\",\r\n height: \"60px\",\r\n top: \"50%\",\r\n right: \"15%\",\r\n border: \"3px solid rgb(255, 255, 255, 0.39)\",\r\n animation:\r\n \"wobbling_bx 3.7s ease-in-out infinite alternate, wobbling_by 4.7s ease-in-out infinite alternate\",\r\n },\r\n \"&:nth-child(8)\": {\r\n width: \"70px\",\r\n height: \"70px\",\r\n top: \"80%\",\r\n right: \"5%\",\r\n border: \"1px solid rgb(255, 255, 255, 0.39)\",\r\n animation:\r\n \"wobbling_bx 3.3s ease-in-out infinite alternate, wobbling_by 3s ease-in-out infinite alternate\",\r\n },\r\n },\r\n\r\n top: {\r\n display: \"inline-block\",\r\n paddingTop: \"5%\",\r\n color: \"white\",\r\n [theme.breakpoints.down(\"xs\")]: { paddingTop: \"10%\" },\r\n },\r\n toptext1: {\r\n padding: \"0 1px 30px 1px\",\r\n fontWeight: \"bold\",\r\n fontSize: \"230%\",\r\n fontFamily:\r\n \"UD デジタル 教科書体 NP-R, Hiragino Maru Gothic ProN W4, Yu Gothic, Meiryo UI\",\r\n [theme.breakpoints.down(\"xs\")]: { fontSize: \"139%\" },\r\n },\r\n headerLogo: {\r\n width: \"20%\",\r\n [theme.breakpoints.down(\"sm\")]: { width: \"35%\" },\r\n \"@media screen and (max-width: 500px) \": {\r\n width: \"45%\",\r\n },\r\n },\r\n toptext2: {\r\n padding: \"30px 10px 0 10px\",\r\n fontSize: \"120%\",\r\n fontFamily:\r\n \"UD デジタル 教科書体 NP-R, Hiragino Maru Gothic ProN W4, Yu Gothic, Meiryo UI\",\r\n [theme.breakpoints.down(\"sm\")]: { fontSize: \"110%\" },\r\n },\r\n toptext3: {\r\n padding: \"30px 10px 0 10px\",\r\n fontSize: \"150%\",\r\n fontFamily:\r\n \"UD デジタル 教科書体 NP-R, Hiragino Maru Gothic ProN W4, Yu Gothic, Meiryo UI\",\r\n [theme.breakpoints.down(\"sm\")]: { fontSize: \"110%\" },\r\n },\r\n coronaText1: {\r\n fontSize: \"150%\",\r\n fontFamily:\r\n \"UD デジタル 教科書体 NP-R, Hiragino Maru Gothic ProN W4, Yu Gothic, Meiryo UI\",\r\n [theme.breakpoints.down(\"sm\")]: { fontSize: \"130%\" },\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(2),\r\n },\r\n coronaImg: {\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"grid\",\r\n placeItems: \"center\",\r\n },\r\n },\r\n mainImgDiv: {\r\n position: \"relative\",\r\n \"@media screen and (max-width: 500px) \": {\r\n height: \"200px\",\r\n },\r\n \"@media screen and (min-width: 500px) \": {\r\n height: \"250px\",\r\n },\r\n \"@media screen and (min-width: 800px) \": {\r\n height: \"300px\",\r\n },\r\n \"@media screen and (min-width: 1200px) \": {\r\n height: \"350px\",\r\n },\r\n },\r\n mainImg: {\r\n position: \"absolute\",\r\n width: \"100%\",\r\n top: \"10px\",\r\n },\r\n mockup: {\r\n width: \"600px\",\r\n \"@media screen and (max-width: 900px) \": {\r\n width: \"80%\",\r\n },\r\n \"@media screen and (min-width: 900px) \": {\r\n width: \"700px\",\r\n },\r\n \"@media screen and (min-width: 1200px) \": {\r\n width: \"800px\",\r\n },\r\n },\r\n main: {\r\n margin: \"200px 5% 0 5%\",\r\n textAlign: \"center\",\r\n \"@media screen and (max-width: 400px) \": {\r\n marginTop: \"5%\",\r\n },\r\n \"@media screen and (min-width: 400px) \": {\r\n marginTop: \"15%\",\r\n },\r\n \"@media screen and (min-width: 600px) \": {\r\n marginTop: \"22%\",\r\n },\r\n \"@media screen and (min-width: 700px) \": {\r\n marginTop: \"200px\",\r\n },\r\n },\r\n topbtn: {\r\n cursor: \"default\",\r\n fontSize: \"large\",\r\n fontWeight: \"bold\",\r\n width: \"100%\",\r\n padding: \"2% 0\",\r\n display: \"block\",\r\n textDecoration: \"none\",\r\n transition: \".4s\",\r\n [theme.breakpoints.down(\"xs\")]: { fontSize: \"15px\" },\r\n },\r\n btnMail: {\r\n color: \"white\",\r\n border: \"solid 2px #6473D3\",\r\n background: \"#6473D3\",\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n background: \"white\",\r\n color: \"#6473D3\",\r\n border: \"solid 2px #6473D3\",\r\n },\r\n },\r\n btnLogin: {\r\n color: \"#6473D3\",\r\n border: \"solid 2px #6473D3\",\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n background: \"#6473D3\",\r\n color: \"white\",\r\n },\r\n },\r\n aboutEmidel: {\r\n margin: \"15% 0px 5% 0px\",\r\n [theme.breakpoints.down(\"xs\")]: { marginTop: \"20%\" },\r\n [theme.breakpoints.up(\"lg\")]: { marginTop: \"10%\" },\r\n },\r\n aboutEmidelContent: {\r\n \"@media screen and (min-width: 1500px) \": {\r\n padding: \"0px 7%\",\r\n },\r\n },\r\n maintext1: {\r\n fontSize: \"200%\",\r\n lineHeight: \"50px\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n fontSize: \"140%\",\r\n lineHeight: \"40px\",\r\n },\r\n },\r\n mainIcon: {\r\n padding: \"5%\",\r\n \"@media screen and (min-width: 1500px) \": {\r\n padding: \"2%\",\r\n },\r\n },\r\n iconTitle: {\r\n fontWeight: \"bold\",\r\n fontSize: \"large\",\r\n margin: \"3%\",\r\n },\r\n moreEmidelText: {\r\n margin: \"7% 0px 5% 0px\",\r\n [theme.breakpoints.up(\"lg\")]: { marginTop: \"6%\" },\r\n [theme.breakpoints.down(\"sm\")]: { marginTop: \"15%\" },\r\n },\r\n moreEmidel: {\r\n border: \"1px solid #AEC5CC\",\r\n margin: \"2%\",\r\n padding: \"30px 0\",\r\n height: \"200px\",\r\n lineHeight: \"20px\",\r\n },\r\n moreItem: {\r\n marginTop: \"5px\",\r\n height: \"70px\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n },\r\n btnEmidelLink: {\r\n fontSize: \"large\",\r\n fontWeight: \"bold\",\r\n width: \"100%\",\r\n padding: \"10% 0\",\r\n display: \"block\",\r\n textDecoration: \"none\",\r\n color: \"white\",\r\n border: \"solid 2px #9ABECA\",\r\n background: \"#9ABECA\",\r\n transition: \".4s\",\r\n [theme.breakpoints.down(\"sm\")]: { fontSize: \"100%\" },\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n background: \"white\",\r\n color: \"#9ABECA\",\r\n border: \"solid 2px #9ABECA\",\r\n },\r\n },\r\n medicalList: {\r\n marginTop: \"10%\",\r\n backgroundColor: \"#EEF0F4\",\r\n padding: \"50px 0px 100px 0px\",\r\n textAlign: \"center\",\r\n [theme.breakpoints.down(\"xs\")]: { marginTop: \"20%\" },\r\n },\r\n footer: {\r\n [theme.breakpoints.up(\"sm\")]: { display: \"flex\" },\r\n display: \"block\",\r\n padding: \"5%\",\r\n backgroundColor: \"#6473D3\",\r\n color: \"white\",\r\n marginBottom: \"-21px\",\r\n },\r\n footmenu: {\r\n [theme.breakpoints.up(\"sm\")]: { marginLeft: \"auto\" },\r\n [theme.breakpoints.down(\"xs\")]: { margin: \"8% 0\" },\r\n },\r\n footmenuA: {\r\n color: \"white\",\r\n transition: \".4s\",\r\n \"&:hover\": {\r\n transition: \".4s\",\r\n color: \"black\",\r\n textDecoration: \"none\",\r\n },\r\n },\r\n fab: {\r\n zIndex: \"100\",\r\n position: \"fixed\",\r\n opacity: \"0.9\",\r\n background: \"#f8b500\",\r\n color: \"white\",\r\n width: \"140px\",\r\n height: \"140px\",\r\n transition: \".4s\",\r\n boxShadow: \"0 0 0 10px\",\r\n bottom: theme.spacing(6),\r\n right: theme.spacing(6),\r\n [theme.breakpoints.down(\"sm\")]: {\r\n width: \"100px\",\r\n height: \"100px\",\r\n right: theme.spacing(3),\r\n boxShadow: \"0 0 0 3px\",\r\n },\r\n [theme.breakpoints.down(\"xs\")]: {\r\n bottom: theme.spacing(2),\r\n right: theme.spacing(2),\r\n width: \"65px\",\r\n height: \"65px\",\r\n },\r\n \"&:hover\": {\r\n background: \"#f8b500\",\r\n color: \"white\",\r\n animation: \"changecolor 2s ease forwards\",\r\n },\r\n },\r\n fabIcon: {\r\n fontSize: \"40px\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n fontSize: \"1.8rem\",\r\n },\r\n },\r\n fabName: {\r\n fontSize: \"0.8rem\",\r\n fontWeight: \"bold\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n fontSize: \"0.8rem\",\r\n },\r\n [theme.breakpoints.down(\"xs\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n}))\r\n\r\nexport default function Home(props) {\r\n const unmountRef = useUnmountRef()\r\n const classes = useStyles()\r\n const theme = useTheme()\r\n const [imgLoaded, setImgLoaded] = useSafeState(unmountRef, false)\r\n\r\n const layoutCtx = useContext(LayoutContext)\r\n\r\n useEffect(() => {\r\n setImgLoaded(true)\r\n })\r\n useEffect(() => {\r\n layoutCtx.setIsMypage(false)\r\n }, [])\r\n\r\n // Canonicalリンクを設定する\r\n useEffect(() => {\r\n const link = document.createElement('link');\r\n link.rel = 'canonical';\r\n link.href = 'https://www.tokyop.co.jp/emidel/index.html';\r\n document.head.appendChild(link);\r\n\r\n // メタタグを設定する\r\n const meta = document.createElement('meta');\r\n meta.httpEquiv = 'refresh';\r\n meta.content = '0; url=https://www.tokyop.co.jp/emidel/index.html';\r\n document.head.appendChild(meta);\r\n\r\n // クリーンアップ関数(コンポーネントがアンマウントされたときにリンクを削除する)\r\n return () => {\r\n document.head.removeChild(link);\r\n document.head.removeChild(meta);\r\n };\r\n }, []);\r\n\r\n if (!imgLoaded) {\r\n return (\r\n
\r\n \r\n \r\n Loading...\r\n
\r\n )\r\n } else {\r\n return (\r\n
\r\n \r\n {/* 利用者からのお問合せが多いのでコメントアウト */}\r\n {/* {\r\n props.history.push({\r\n pathname: `/contact`,\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 医療機関の予約受付業務を、Webで\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 病院・診療所の予約\r\n
\r\n 受付業務をWebで効率化\r\n
\r\n カンタン操作で、らくらく予約\r\n
\r\n 医療従事者の皆様の負担を軽減するWeb予約システムです\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 props.history.push({\r\n pathname: `/contact`,\r\n });\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n お問い合わせ\r\n
*/}\r\n {\r\n props.history.push({\r\n pathname: `/login`,\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 \"LINE連携\"\r\n \r\n LINE連携\r\n \r\n LINE連携で\r\n \r\n 診療前日のリマインダー\r\n \r\n や、診療時の呼出\r\n などの通知が送信できます。\r\n \r\n \r\n \r\n \"簡単Web予約\"\r\n \r\n \r\n 簡単Web予約\r\n \r\n \r\n 簡単な操作\r\n で予約でき、スマートフォン等の端末から気軽にご利用いただけます。\r\n \r\n \r\n \r\n \"24時間受付\"\r\n \r\n \r\n 24時間受付\r\n \r\n \r\n Web予約なら24時間受付のため、時間に左右されず\r\n お好きなタイミング\r\n でご予約いただけます。\r\n \r\n \r\n \r\n \"混雑回避\"\r\n \r\n 混雑回避\r\n \r\n Web予約により\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\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n メール又は\r\n LINEでの\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 Web予約システムとして、必要なものが揃っています\r\n \r\n \r\n えみでるは、ご利用者様の入力された予約情報が診察終了後に自動削除されるため、安心です。\r\n
\r\n 予約前に表示したい案内がある場合など、医療機関さまの運用スタイルに合わせて予約前に表示する画面を設定いただけます。\r\n
\r\n また、すぐに予約枠を作成・変更でき、急な休診などにも対応できます。\r\n
\r\n メール又はLINEでの呼出・お知らせが可能で、\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 通常のWeb予約とは別に、新型コロナワクチン接種の予約枠を設定することが可能です。\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 東杏印刷株式会社は東証上場企業、株式会社イムラ封筒の子会社です。1966年創業。歴史の中で磨かれた技術が信頼の品質を生み出します。\r\n
\r\n
\r\n \r\n 所在地\r\n \r\n :〒167-0023\r\n
\r\n \r\n 東京都杉並区上井草2-44-10第2KIビル2階\r\n
\r\n \r\n TEL\r\n \r\n :03-6913-9500\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 props.history.push({\r\n pathname: `/contact`,\r\n });\r\n }}\r\n >\r\n お問い合わせ\r\n \r\n \r\n \r\n \r\n
*/}\r\n {\r\n props.history.push({\r\n pathname: `/login`,\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","import axios from \"axios\";\r\n\r\n/**\r\n * ログインします。\r\n * @param {*} json - ログイン情報\r\n */\r\nexport async function ApiPostLogin(json) {\r\n let result;\r\n await axios\r\n .post(`api/login`, json)\r\n .then(function (response) {\r\n if (response.status === 200) result = response;\r\n })\r\n .catch(function (error) {\r\n throw error;\r\n });\r\n return result;\r\n}\r\n\r\n/**\r\n * ログインします。\r\n * @param {*} json - ログイン情報\r\n */\r\nexport async function ApiPostReflesh(token) {\r\n let result;\r\n\r\n var json = JSON.stringify({ token });\r\n\r\n await axios\r\n .post(`api/login/reflesh`, json, {\r\n headers: {\r\n \"content-type\": \"application/json\",\r\n },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) result = response;\r\n })\r\n .catch(function (error) {\r\n throw error;\r\n });\r\n return result;\r\n}\r\n","/**\r\n * @file ログイン画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n TextField,\r\n FormControlLabel,\r\n Checkbox,\r\n Grid,\r\n Toolbar,\r\n Paper,\r\n} from \"@material-ui/core/\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\r\nimport Login from \"components/api-authorization/Login\";\r\nimport { LoginActions } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport {\r\n ErrMsgKey,\r\n GetErrMsg,\r\n ErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\n// import { FormDataToJson } from 'components/common/FormHelper';\r\nimport axios from \"axios\";\r\nimport * as yup from \"yup\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport { LayoutContext } from \"pages/Layout\";\r\nimport { localStorageKeys, sessionStorageKeys } from \"components/common/Const\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { ApiPostLogin } from \"components/api/LoginApi\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n box: {\r\n textAlign: \"center\",\r\n margin: theme.spacing(3),\r\n },\r\n}));\r\n\r\nexport default function LoginFormContainer(props) {\r\n const layoutCtx = useContext(LayoutContext);\r\n useEffect(() => {\r\n layoutCtx.setIsMypage(false);\r\n }, []);\r\n return (\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 function LoginForm(props) {\r\n const unmountRef = useUnmountRef();\r\n const userctx = useContext(UserContext);\r\n const [isSuccess, setIsSuccess] = useSafeState(unmountRef);\r\n const { setValidationErrorsForaxios } = useErrorMessageProvider();\r\n\r\n const [submitDisabled, setSubmitDisabled] = useSafeState(unmountRef, false); //submitボタンの活性制御\r\n\r\n const layoutCtx = useContext(LayoutContext);\r\n const history = useHistory();\r\n\r\n //入力チェックのスキーマ定義\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n loginId: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n loginPwd: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n const { register, handleSubmit, errors, setError, clearErrors } = useForm({\r\n resolver: yupResolver(schema),\r\n });\r\n\r\n useEffect(() => {\r\n layoutCtx.setIsMypage(false);\r\n }, []);\r\n\r\n const onSubmit = useCallback(async (data, e) => {\r\n // ボタン非活性\r\n setSubmitDisabled(true);\r\n\r\n // セッションストレージを消す\r\n Object.keys(sessionStorageKeys).map((item, index) => {\r\n if (sessionStorageKeys[item] !== sessionStorageKeys.Revision)\r\n sessionStorage.removeItem(sessionStorageKeys[item]);\r\n });\r\n\r\n const formData = new FormData(document.getElementById(\"login-form\"));\r\n let json = {\r\n loginid: data.loginId,\r\n loginPwd: data.loginPwd,\r\n isRememberMe: data.isRememberMe,\r\n };\r\n await ApiPostLogin(json)\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n localStorage.setItem(localStorageKeys.LoginJWT, response.data.token);\r\n\r\n userctx.refreshUser();\r\n history.push(\"/manage\");\r\n }\r\n })\r\n .catch(function (error) {\r\n setIsSuccess(false); //非同期なのでこの直後で呼び出しても変わってないことがある\r\n setSubmitDisabled(false);\r\n if (error.response.status === 400)\r\n setValidationErrorsForaxios(error, setError);\r\n else {\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: GetErrMsg(ErrMsgKey.unexpected),\r\n });\r\n }\r\n });\r\n\r\n // axios\r\n // .post(\"api/login\", json)\r\n // .then(function (response) {\r\n // if (response.status === 200) {\r\n // setIsSuccess(true);\r\n // }\r\n // })\r\n // .catch(function (error) {\r\n // setIsSuccess(false); //非同期なのでこの直後で呼び出しても変わってないことがある\r\n // setSubmitDisabled(false);\r\n // if (error.response.status === 400)\r\n // setValidationErrorsForaxios(error, setError);\r\n // else {\r\n // setError(\"summary\", {\r\n // type: \"manual\",\r\n // message: GetErrMsg(ErrMsgKey.unexpected),\r\n // });\r\n // }\r\n // });\r\n });\r\n\r\n const handleKeyPressEnter = useCallback((e) => {\r\n if (e.key === \"Enter\") {\r\n clearErrors();\r\n handleSubmit(onSubmit);\r\n }\r\n // handleClick(e);\r\n });\r\n\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n\r\n return (\r\n
\r\n \r\n \r\n \"ロゴ\"\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n {!isSuccess && errors[\"summary\"] === undefined && (\r\n
\r\n
IDとパスワードを入力して
\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=\"ログイン状態を保持する\"\r\n inputRef={register}\r\n />\r\n
\r\n
\r\n \r\n {\r\n clearErrors();\r\n }}\r\n disabled={submitDisabled}\r\n >\r\n ログイン\r\n \r\n \r\n \r\n パスワードを忘れた方\r\n \r\n \r\n
\r\n );\r\n}\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport axios from \"axios\";\r\nimport * as yup from \"yup\";\r\nimport {\r\n ErrMsgKey,\r\n GetErrMsg,\r\n ErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n minWidth: 120,\r\n width: \"100%\",\r\n textAlign: \"left\",\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\n/**\r\n * 指定した区分値のセレクトリストを返します。\r\n * @module MstDivisionsSelectList\r\n * @example\r\n * 「ConactMain」のDivisionsSelectorの使い方と一緒の想定\r\n function addSchemaDataFunc(id, value, state){\r\n state[id] = value;\r\n return state;\r\n }\r\n const addSchemaData = (id, value) => {\r\n setSchemaData(addSchemaDataFunc(id,value,schemaData));\r\n };\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n \r\n\r\n * @param {Object} props - 指定の引数以外は受け取れません。\r\n * @param {string} selected - 初期選択値\r\n * @param {string} divisionkey - 指定の区分値のキー\r\n * @param {bool} dispnone - 選択肢「なし」の表示可否\r\n * @param {function} addSchemaData - yupスキーマを追加する処理\r\n * @param {bool} required - 必須の場合true\r\n * @param {bool} inputRef - refを設定\r\n * @param {string} variant - 表示のスタイル\r\n * @param {string} name - name\r\n * @param {string} label - 項目名\r\n * @param {errors} errors - エラーがある\r\n * @param {bool} readOnly - 読み取り専用\r\n * @param {bool} setValue - stateを変更する処理\r\n */\r\nexport default function MstDivisionsSelectList(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const {\r\n selected,\r\n setValue,\r\n name,\r\n divisionkey,\r\n dispnone,\r\n addSchemaData,\r\n required,\r\n inputRef,\r\n variant,\r\n label,\r\n readOnly,\r\n errors,\r\n ...others\r\n } = props;\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n const [selectedValue, setSelectedValue] = useSafeState(unmountRef, selected);\r\n const [selectItemData, setSelectItemData] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n );\r\n\r\n // ドロップダウンリスト変更時の処理\r\n const handleChange = (event) => {\r\n setSelectedValue(event.target.value);\r\n // setValue && setValue(name, event.target.value);\r\n };\r\n\r\n const handleSnackbarClose = (event) => {\r\n setOpen(false);\r\n };\r\n\r\n async function GetSelectItems() {\r\n await axios.get(\"api/divisions?key=\" + divisionkey)\r\n .then(function (json) {\r\n // 正常の場合\r\n // ドロップダウンを設定\r\n setSelectItemData(json.data);\r\n // 初期値が設定されていない場合、一件目を初期値とする。\r\n dispnone === false &&\r\n !selected &&\r\n setSelectedValue(json.data[0].divisionValue);\r\n dispnone === false &&\r\n !selected &&\r\n setValue &&\r\n setValue(name, json.data[0].divisionValue);\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetSelectItems error\", error);\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n // MstDivisionよりデータを取り込む\r\n GetSelectItems();\r\n\r\n addSchemaData\r\n ? required\r\n ? // 必須チェック\r\n addSchemaData(\r\n name,\r\n yup.string().required(GetErrMsg(ErrMsgKey.required))\r\n )\r\n : // 必須チェックなし\r\n addSchemaData(name, yup.string())\r\n : console.log(\"\");\r\n };\r\n f();\r\n }, []);\r\n\r\n useEffect(() => {\r\n // refを引き渡せないmaterialUiのコンポーネントをregisterに設定する\r\n inputRef && inputRef(name); // custom register Antd input\r\n }, [inputRef]);\r\n\r\n useEffect(() => {\r\n setValue && setValue(name, selectedValue);\r\n }, [selectedValue]);\r\n useEffect(() => {\r\n setSelectedValue(selected);\r\n }, [selected]);\r\n\r\n return (\r\n
\r\n \r\n {msg}\r\n \r\n {selectItemData && (\r\n \r\n {required ? (\r\n \r\n {label}\r\n \r\n ) : (\r\n {label}\r\n )}\r\n \r\n {dispnone === true && (\r\n \r\n なし\r\n \r\n )}\r\n {selectItemData &&\r\n selectItemData.map((item, index) => (\r\n \r\n {item.divisionText1}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n {errors && (\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { TextField } from \"@material-ui/core\";\r\nimport { validationConst } from \"components/common/Const\";\r\nimport {\r\n\tErrMsg,\r\n\tErrMsgKey,\r\n\tGetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport * as yup from \"yup\";\r\n\r\nexport default function PhoneNumberTextBox(props) {\r\n\t// const classes = useStyles();\r\n\tconst style = commonStyle();\r\n\tuseEffect(() => {\r\n\t\t//ここに通常更新時のロジックを書く\r\n\t\treturn function cleanup() {\r\n\t\t\t//ここにはUnmount時のロジックを書く\r\n\t\t};\r\n\t});\r\n\tuseEffect(() => {\r\n\t\t// 初回読み込み時にyupスキーマを変更する。\r\n\t\t// 追加用の関数?が渡されている場合\r\n\r\n\t\tprops.addSchemaData\r\n\t\t\t? props.required\r\n\t\t\t\t? // 必須チェック\r\n\t\t\t\t props.addSchemaData(\r\n\t\t\t\t\t\tprops.name,\r\n\t\t\t\t\t\tyup\r\n\t\t\t\t\t\t\t.string()\r\n\t\t\t\t\t\t\t.matches(validationConst.phone_reg_exp, {\r\n\t\t\t\t\t\t\t\tmessage: GetErrMsg(ErrMsgKey.phoneNumber),\r\n\t\t\t\t\t\t\t\texcludeEmptyString: true,\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.required(GetErrMsg(ErrMsgKey.required))\r\n\t\t\t\t )\r\n\t\t\t\t: // 必須チェックなし\r\n\t\t\t\t props.addSchemaData(\r\n\t\t\t\t\t\tprops.name,\r\n\t\t\t\t\t\tyup\r\n\t\t\t\t\t\t\t.string()\r\n\t\t\t\t\t\t\t.matches(validationConst.phone_reg_exp, {\r\n\t\t\t\t\t\t\t\tmessage: GetErrMsg(ErrMsgKey.phoneNumber),\r\n\t\t\t\t\t\t\t\texcludeEmptyString: true,\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t )\r\n\t\t\t: console.log(\"\");\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{props.required ? (\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{props.errors && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n}\r\n","import React, { Fragment } from \"react\";\r\nimport { Grid, Typography } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport clsx from \"clsx\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n titleTextItem: {\r\n marginTop: theme.spacing(4),\r\n marginBottom: theme.spacing(4),\r\n },\r\n titleText: {\r\n border: 1,\r\n borderRadius: 3,\r\n fontWeight: \"600\",\r\n },\r\n}));\r\n\r\n/**\r\n * ページタイトル用の文字列を表示するコンポーネントです。\r\n * @param {Object} props\r\n * @param {boolean} props.isNotSetPageTitle - ブラウザのページタイトルにセットするかどうか\r\n */\r\nexport default function TitleText(props) {\r\n const classes = useStyles();\r\n const { isNotSetPageTitle } = props;\r\n return (\r\n \r\n {isNotSetPageTitle !== true && }\r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","/**\r\n * @file お問合せ入力確認画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useCallback, useEffect, useRef } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n Checkbox,\r\n Container,\r\n FormControlLabel,\r\n Grid,\r\n Paper,\r\n TextField,\r\n Toolbar,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport MstDivisionsSelectList from \"components/input/selectlist/MstDivisionsSelectList\";\r\nimport PhoneNumberTextBox from \"components/input/textbox/PhoneNumberTextBox\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { GoogleReCaptcha, useGoogleReCaptcha } from \"react-google-recaptcha-v3\";\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport { RecaptchaSiteKeyV2 } from \"components/common/Const\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport * as yup from \"yup\";\r\nimport { Fragment } from \"react\";\r\nimport { ErrMsg } from \"components/common/ErrorMessageProvider\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n textField: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n recaptchaBox: {\r\n marginTop: theme.spacing(1),\r\n },\r\n wrapper: {\r\n position: \"relative\",\r\n },\r\n}));\r\n\r\nexport default function ContactConfirm2(props) {\r\n const unmountRef = useUnmountRef();\r\n const { values, hideConfirmation } = props;\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n //react-hooks-form\r\n const schema = yup.object().shape({\r\n chkAgree: yup\r\n .boolean()\r\n .required()\r\n .oneOf([true], \"利用規約に同意されないと、ご利用頂けません。\"),\r\n });\r\n const {\r\n register,\r\n handleSubmit,\r\n // watch,\r\n errors,\r\n setError,\r\n clearErrors,\r\n } = useForm({\r\n resolver: yupResolver(schema),\r\n });\r\n const { history, location, match } = useReactRouter();\r\n // const [inputData, setInputData] = useSafeState(unmountRef, JSON.parse(history.location.state));\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n );\r\n const [submitDisabled, setSubmitDisabled] = useSafeState(unmountRef, false); //submitボタンの活性制御\r\n\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n const [recaptchaVersion, setRecaptchaVersion] = useSafeState(unmountRef, 3);\r\n const [recaptchaObj, setRecaptchaObj] = useSafeState(unmountRef);\r\n const recaptchaV2 = useRef(null);\r\n const [recaptchaV2Token, setRecaptchaV2Token] = useSafeState(\r\n unmountRef,\r\n null\r\n );\r\n const [recaptchaV3Token, setRecaptchaV3Token] = useSafeState(\r\n unmountRef,\r\n null\r\n );\r\n const [isAgree, setIsAgree] = useSafeState(unmountRef, false);\r\n const handleIsAgreeChange = useCallback((e) => {\r\n setIsAgree(e.target.checked);\r\n });\r\n\r\n useEffect(() => {\r\n //ここに通常更新時のロジックを書く\r\n return function cleanup() {\r\n //ここにはUnmount時のロジックを書く\r\n };\r\n });\r\n const handleSnackbarClose = (event) => {\r\n setOpen(false);\r\n };\r\n\r\n const handleReCaptchaVerify = useCallback(\r\n (token) => {\r\n setRecaptchaV3Token(token);\r\n },\r\n [setRecaptchaV3Token]\r\n ); //こうしておかないと無限ループになる\r\n\r\n const handleReCaptchaV2Change = useCallback((token) => {\r\n setRecaptchaV2Token(token);\r\n });\r\n function onSubmit() {\r\n const recaptchaToken =\r\n recaptchaVersion === 3 ? recaptchaV3Token : recaptchaV2Token;\r\n values[\"token\"] = recaptchaToken;\r\n values[\"version\"] = recaptchaVersion;\r\n // ボタン非活性\r\n setSubmitDisabled(true);\r\n console.log(values);\r\n // Contactデータ登録API\r\n axios\r\n .post(\"api/Contacts\", JSON.stringify(values), {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n })\r\n .then((response) => {\r\n //ReCaptcha v3のリセット\r\n if (recaptchaVersion === 3) {\r\n executeRecaptcha().then((token) => {\r\n handleReCaptchaVerify(token);\r\n });\r\n }\r\n\r\n //ReCaptcha v2のリセット\r\n if (recaptchaV2.current) recaptchaV2.current.reset();\r\n\r\n // 最新の履歴を置き換えることで、stateを消す。\r\n let jsonObject = JSON.stringify(response.data);\r\n history.replace({\r\n pathname: \"contact/thanks\",\r\n state: jsonObject,\r\n });\r\n })\r\n .catch((error) => {\r\n // ボタン活性\r\n setSubmitDisabled(false);\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n\r\n if (error.response && error.response.data) {\r\n var data = error.response.data;\r\n if (data.summary) {\r\n //validationのエラー\r\n // setError(\"summary\", { type: \"manual\", message: data.summary });\r\n } else if (data.errors) {\r\n //ReCaptchaによるエラー\r\n data.errors.forEach((item) => {\r\n if (item.isBot) {\r\n setRecaptchaVersion(2);\r\n setMsg(data.message);\r\n // setError(\"summary\", {\r\n // type: \"manual\",\r\n // message: data.message,\r\n // });\r\n }\r\n });\r\n } else {\r\n // ShowError(error);\r\n }\r\n } else {\r\n //status code 500の際はunmountされるので注意\r\n // ShowError(error);\r\n }\r\n })\r\n .finally(function () {\r\n //ReCaptcha v2のリセット\r\n if (recaptchaV2.current) recaptchaV2.current.reset();\r\n setSubmitDisabled(false);\r\n });\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 \r\n \r\n \r\n お問合せ内容確認\r\n \r\n {msg}\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={\r\n \r\n 個人情報保護方針に同意します\r\n
\r\n \r\n 個人情報保護方針\r\n \r\n をご確認ください。\r\n
\r\n
\r\n }\r\n className={classes.agree}\r\n />\r\n \r\n \r\n \r\n \r\n {recaptchaVersion === 3 && (\r\n \r\n )}\r\n {recaptchaVersion === 2 && (\r\n
\r\n setRecaptchaObj(e)}\r\n />\r\n
\r\n )}\r\n
\r\n
\r\n {/* \r\n
\r\n {recaptchaVersion === 3 && (\r\n \r\n )}\r\n {recaptchaVersion === 2 && (\r\n
\r\n setRecaptchaObj(e)}\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 * @file お問合せ入力画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport {\r\n\tButton,\r\n\tContainer,\r\n\tGrid,\r\n\tPaper,\r\n\tTextField,\r\n\tToolbar,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n\tErrMsg,\r\n\tErrMsgKey,\r\n\tGetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport MstDivisionsSelectList from \"components/input/selectlist/MstDivisionsSelectList\";\r\nimport PhoneNumberTextBox from \"components/input/textbox/PhoneNumberTextBox\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport * as yup from \"yup\";\r\nimport ContactConfirm from \"./ContactConfirm\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\ttextField: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t\tmarginBottom: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\n// state更新用の関数\r\nfunction addSchemaDataFunc(id, value, state) {\r\n\tstate[id] = value;\r\n\treturn state;\r\n}\r\n\r\nexport default function ContactMain2() {\r\n const unmountRef = useUnmountRef();\r\n\tconst classes = useStyles();\r\n\tconst style = commonStyle();\r\n\tconst theme = useTheme();\r\n\tconst { history } = useReactRouter();\r\n\r\n\t//useFormを呼び出して使いたいメソッドを書く\r\n\tconst [isConfirmationVisible, setIsConfirmationVisible] = useSafeState(unmountRef, false);\r\n\t//isConfirmationVisibleにstateを持たせて、入力内容確認画面の表示・非表示をコントロール\r\n\t//isConfirmationVisibleの初期値はfalseで入力内容確認画面は非表示に\r\n\tconst hideConfirmation = () => setIsConfirmationVisible(false);\r\n\t//入力内容確認画面の閉じるボタンを押した時非表示にする関数を宣言\r\n\tconst onSubmitData = () => {\r\n\t\tconsole.log(getValues());\r\n\t\tsetIsConfirmationVisible(true);\r\n\t};\r\n\t//submitボタンを押した時、入力内容確認画面を表示させる\r\n\r\n\t// yap のスキーマデータを他コンポーネントでも更新するためにstateに入れておく\r\n\tconst [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n\t\tdcoCompanyName: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n\t\tdcoContactDetail: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n\t\t// contactDiv: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n\t\tdcoEmail: yup.string().email(GetErrMsg(ErrMsgKey.email)),\r\n\t\t// dcoPhoneNumber: yup.string().matches(phoneRegExp,{message:GetErrMsg(ErrMsgKey.dcoPhoneNumber), excludeEmptyString:true}),\r\n\t});\r\n\tconst schema = yup.object().shape(schemaData);\r\n\r\n\t// 普通にstateにセットすると、最後に実行されたもののみが処理される。\r\n\t// stateをfunctionを用いて更新することで、遅延評価時に順次実行されるっぽい。\r\n\t// https://career.levtech.jp/guide/knowhow/article/394/\r\n\tconst addSchemaData = (id, value) => {\r\n\t\tsetSchemaData(addSchemaDataFunc(id, value, schemaData));\r\n\t};\r\n\t//react-hooks-form\r\n\tconst { register, handleSubmit, errors, setValue, getValues } = useForm({\r\n\t\tresolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n\t});\r\n\t// const { history, location, match } = useReactRouter();\r\n\r\n\tuseEffect(() => {\r\n\t\t//ここに通常更新時のロジックを書く\r\n\t\tconsole.log(schemaData);\r\n\t\treturn function cleanup() {\r\n\t\t\t//ここにはUnmount時のロジックを書く\r\n\t\t};\r\n\t});\r\n\r\n\t// コンポーネント内でstateを変更するための処理\r\n\tconst setStateValue = (id, val) => {\r\n\t\tsetValue(id, val);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tお問合せ\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tWeb予約システムにお問合せ頂き、\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tありがとうございます。\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t以下の必要事項にご入力いただき、\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t確認ボタンをクリックしてください。\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t確認\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t history.goBack()}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t戻る\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\r\n\r\n\t\t\t{/* */}\r\n\t\t\t{isConfirmationVisible && ( //trueの時だけ入力内容確認画面を表示\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n}","/**\r\n * @file 問い合わせ受付完了画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport { Container, Grid, Paper, Toolbar } from \"@material-ui/core\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport LinkButton from \"components/input/button/LinkButton\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport React, { useEffect } from \"react\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n textField: {\r\n margin: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function ContactThanks(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n ////react-hooks-form\r\n const { history, location, match } = useReactRouter();\r\n const [inputData, setInputData] = useSafeState(\r\n unmountRef,\r\n JSON.parse(history.location.state)\r\n );\r\n\r\n useEffect(() => {\r\n //ここに通常更新時のロジックを書く\r\n return function cleanup() {\r\n //ここにはUnmount時のロジックを書く\r\n };\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 \r\n \r\n \r\n 受付番号: {inputData.dcoId}\r\n
\r\n お問合せを受け付けました\r\n
\r\n
\r\n \r\n TOPへ戻る\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n );\r\n}\r\n\r\n// export default withStyles(commonStyle)(ContactThanks)\r\n","import React, { useEffect } from \"react\";\r\nimport { Component } from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\nimport {\r\n ApplicationPaths,\r\n QueryParameterNames,\r\n} from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\n\r\nexport default function ClaimAuthorizeRoute(props) {\r\n const unmountRef = useUnmountRef();\r\n const [authenticated, setAuthenticated] = useSafeState(unmountRef);\r\n\r\n var link = document.createElement(\"a\");\r\n link.href = props.path;\r\n const returnUrl = `${link.protocol}//${link.host}${link.pathname}${link.search}${link.hash}`;\r\n const redirectUrl = `${ApplicationPaths.Login}?${\r\n QueryParameterNames.ReturnUrl\r\n }=${encodeURI(returnUrl)}`;\r\n\r\n useEffect(() => {\r\n var f = async () => {\r\n setAuthenticated(await authService.isAuthenticated());\r\n };\r\n\r\n f();\r\n }, []);\r\n\r\n useEffect(() => {\r\n var f = async () => {\r\n setAuthenticated(await authService.isAuthenticated());\r\n };\r\n\r\n f();\r\n });\r\n\r\n return (\r\n {\r\n if (this.props.contextClaims && !this.props.claim) {\r\n return ;\r\n } else if (this.props.contextClaims && authenticated) {\r\n return ;\r\n } else {\r\n return <>;\r\n }\r\n }}\r\n />\r\n );\r\n}\r\n\r\n// import React from \"react\";\r\n// import { Component } from \"react\";\r\n// import { Route, Redirect } from \"react-router-dom\";\r\n// import {\r\n// ApplicationPaths,\r\n// QueryParameterNames,\r\n// } from \"components/api-authorization/ApiAuthorizationConstants\";\r\n// import authService from \"components/api-authorization/AuthorizeService\";\r\n\r\n// export default class ClaimAuthorizeRoute extends Component {\r\n// constructor(props) {\r\n// super(props);\r\n\r\n// this.state = {\r\n// ready: false,\r\n// authenticated: false,\r\n// };\r\n// }\r\n\r\n// componentDidMount() {\r\n// this._subscription = authService.subscribe(() =>\r\n// this.authenticationChanged()\r\n// );\r\n// this.populateAuthenticationState();\r\n// }\r\n\r\n// componentWillUnmount() {\r\n// authService.unsubscribe(this._subscription);\r\n// }\r\n\r\n// render() {\r\n// const { ready, authenticated } = this.state;\r\n// var link = document.createElement(\"a\");\r\n// link.href = this.props.path;\r\n// const returnUrl = `${link.protocol}//${link.host}${link.pathname}${link.search}${link.hash}`;\r\n// const redirectUrl = `${ApplicationPaths.Login}?${\r\n// QueryParameterNames.ReturnUrl\r\n// }=${encodeURI(returnUrl)}`;\r\n// if (!ready) {\r\n// return
;\r\n// } else {\r\n// const { component: Component, ...rest } = this.props; //この行がEdgeではエラーになって何も表示されない\r\n// return (\r\n// {\r\n// if (this.props.contextClaims && !this.props.claim) {\r\n// return ;\r\n// } else if (this.props.contextClaims && authenticated) {\r\n// return ;\r\n// } else if (this.props.contextClaims) {\r\n// return ;\r\n// }\r\n// // if (authenticated) {\r\n// // return \r\n// // } else {\r\n// // return \r\n// // }\r\n// }}\r\n// />\r\n// );\r\n// // return {\r\n// // if (authenticated) {\r\n// // return \r\n// // } else {\r\n// // return \r\n// // }\r\n// // }} />\r\n// }\r\n// }\r\n\r\n// async populateAuthenticationState() {\r\n// const authenticated = await authService.isAuthenticated();\r\n// this.setState({ ready: true, authenticated });\r\n// }\r\n\r\n// async authenticationChanged() {\r\n// this.setState({ ready: false, authenticated: false });\r\n// await this.populateAuthenticationState();\r\n// }\r\n// }\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { Fragment, useContext } from \"react\";\r\nimport { makeStyles, fade } from \"@material-ui/core/styles\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Paper, ListItemIcon } from \"@material-ui/core\";\r\n\r\nimport { LayoutContext } from \"pages/Layout\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n maxWidth: 752,\r\n },\r\n listRoot: {\r\n backgroundColor: theme.palette.background.paper,\r\n width: \"100%\",\r\n },\r\n title: {\r\n margin: theme.spacing(4, 0, 2),\r\n },\r\n nested: {\r\n //'& a': {\r\n // transition: '0.3s',\r\n // '&:hover': {\r\n // backgroundColor: fade(theme.palette.primary.light, 0.15),\r\n\r\n // }\r\n //},\r\n //paddingLeft: theme.spacing(2),\r\n \"& .subItems\": {\r\n paddingLeft: theme.spacing(10),\r\n paddingRight: theme.spacing(4),\r\n\r\n //左から右下線\r\n //textDecoration: \"none\",\r\n //paddingBottom: \"3px\",\r\n //color: \"#000\",\r\n //display: \"block\",\r\n\r\n //'&:after': {\r\n // content: '',\r\n // width: \"0\",\r\n // transition: \"all 0.3s ease\",\r\n // borderBottom: \"3px solid #000\",\r\n // display: \"block\",\r\n //},\r\n\r\n //'&:hover::after': {\r\n // width: \"100%\",\r\n // borderBottom: \"3px solid #000\",\r\n //}\r\n },\r\n },\r\n icon: {\r\n color: (props) => (props.iconColor ? props.iconColor : \"\"),\r\n backgroundColor: (props) => (props.iconBgColor ? props.iconBgColor : \"\"),\r\n },\r\n}));\r\n\r\nfunction GenerateListItem(props) {\r\n const classes = useStyles(props.item);\r\n const item = props.item;\r\n\r\n return (\r\n \r\n \r\n {item.icon &&\r\n item.isAvatar && ( //条件付きレンダー\r\n \r\n {item.icon}\r\n \r\n )}\r\n {item.icon && !item.isAvatar && (\r\n \r\n {\r\n item.icon //条件付きレンダー\r\n }\r\n \r\n )}\r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n {item.subItems && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nfunction GenerateListItems(props) {\r\n const items = props.items;\r\n return items.map((item) => );\r\n}\r\n\r\n/**\r\n * リストを表示するコンポーネントです。\r\n * ネスト、アイコン表示、リンク設定が可能です。\r\n * @module InteractiveList\r\n * @example\r\n * const listItems = [\r\n * {\r\n * primaryText: \"商品検索\",\r\n * secondaryText: \"\",\r\n * key: \"商品検索\",\r\n * icon: ,\r\n * iconColor: iconColor,\r\n * iconBgColor: iconBgColor,\r\n * subItems:\r\n * [\r\n * {\r\n * primaryText: \"別製品\",\r\n * key: \"特注品\",\r\n * component: Link,\r\n * to: \"/mypage/custom-products/search\",\r\n * },\r\n * {\r\n * primaryText: \"既製品\",\r\n * key: \"既製品\",\r\n * component: Link,\r\n * to: \"/mypage/standard-products/search\",\r\n * },\r\n * ]\r\n * },\r\n * ]\r\n * return (\r\n * \r\n * \r\n * );\r\n * @param {any} props.items - リストに表示する内容\r\n *\r\n */\r\nexport default function InteractiveList(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const [dense /*, setDense*/] = useSafeState(unmountRef, false);\r\n const layoutCtx = useContext(LayoutContext);\r\n // const [secondary, setSecondary] = useSafeState(unmountRef, false);\r\n // console.log(props);\r\n return (\r\n \r\n {/* \r\n setDense(event.target.checked)} />\r\n }\r\n label=\"Enable dense\"\r\n />\r\n setSecondary(event.target.checked)}\r\n />\r\n }\r\n label=\"Enable secondary text\"\r\n />\r\n */}\r\n {props.title && (\r\n \r\n {props.title}\r\n \r\n )}\r\n {/* */}\r\n \r\n \r\n \r\n {/* */}\r\n \r\n );\r\n}\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect, useContext } from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Drawer from \"@material-ui/core/Drawer\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport List from \"@material-ui/core/List\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport { LayoutContext } from \"pages/Layout\";\r\nimport { Link } from \"react-router-dom\";\r\nimport InteractiveList from \"components/list/InteractiveList\";\r\nimport Hidden from \"@material-ui/core/Hidden\";\r\nimport { Avatar, Box } from \"@material-ui/core\";\r\nimport { Person } from \"@material-ui/icons\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\n\r\nconst drawerWidth = 240;\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n },\r\n appBar: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n },\r\n drawer: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n },\r\n drawerPaper: {\r\n width: drawerWidth,\r\n },\r\n drawerContainer: {\r\n overflow: \"auto\",\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\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: \"flex-end\",\r\n },\r\n drawContent: {\r\n position: \"absolute\",\r\n zIndex: 99,\r\n flexDirection: \"column\",\r\n\r\n \"& > div\": {\r\n flexGrow: 1,\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: -drawerWidth,\r\n },\r\n },\r\n drawShift: {\r\n \"& > div\": {\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: 0,\r\n },\r\n },\r\n content: {\r\n //[theme.breakpoints.up(\"md\")]: {\r\n // marginLeft: drawerWidth,\r\n //},\r\n [theme.breakpoints.up(\"lg\")]: {\r\n marginLeft: drawerWidth,\r\n },\r\n },\r\n contentShift: {\r\n [theme.breakpoints.down(\"md\")]: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n display: \"block\",\r\n position: \"fixed\",\r\n content: \"\",\r\n backgroundColor: \"gray\",\r\n opacity: 0.5,\r\n zIndex: \"2\",\r\n },\r\n },\r\n avatorColor: {\r\n // color: theme.palette.getContrastText(theme.palette.secondary.dark),\r\n // backgroundColor: theme.palette.secondary.dark,\r\n },\r\n}));\r\n\r\nexport default function ClippedDrawer(props, state) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const layoutCtx = useContext(LayoutContext);\r\n const userctx = useContext(UserContext);\r\n\r\n const [userName, setUserName] = useSafeState(unmountRef);\r\n const [roleName, setRoleName] = useSafeState(unmountRef);\r\n const [hospitalName, setHospitalName] = useSafeState(unmountRef);\r\n\r\n useEffect(() => {\r\n if (userctx && userctx.user) {\r\n setRoleName(userctx.user.roleName);\r\n\r\n if (userctx.user.contactPersonName)\r\n setUserName(userctx.user.contactPersonName);\r\n if (!userctx.user.contactPersonName) setUserName(\"ようこそ\");\r\n }\r\n\r\n if (userctx && userctx.hospital) {\r\n setHospitalName(userctx.hospital.name);\r\n }\r\n }, [userctx]);\r\n\r\n const LoginName = () => {\r\n return (\r\n <>\r\n {userName && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n secondaryTypographyProps={{\r\n variant: \"h6\",\r\n noWrap: true,\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n );\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 {LoginName()}\r\n \r\n {props.bottomItems && (\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 {LoginName()}\r\n \r\n {props.bottomItems && (\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 {props.children}\r\n
\r\n \r\n );\r\n}\r\n","import React, { Fragment } from \"react\";\r\nimport axios from \"axios\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { useContext } from \"react\";\r\nimport { UserContext } from \"./UserContext\";\r\nimport { localStorageKeys } from \"components/common/Const\";\r\nimport { ApiPostReflesh } from \"components/api/LoginApi\";\r\n\r\nexport default function UnauthorizeRedirector(props) {\r\n const userctx = useContext(UserContext);\r\n const { history } = useReactRouter();\r\n if (\r\n axios.interceptors.response &&\r\n axios.interceptors.response.handlers.length < 1\r\n )\r\n axios.interceptors.response.use(undefined, async function (error) {\r\n // const redirectUrl = props.to != null ? props.to : \"/login\";\r\n if (error.response.status === 401) {\r\n console.log(\"401を検出\");\r\n const originalRequest = error.config;\r\n var jwt = localStorage.getItem(localStorageKeys.LoginJWT);\r\n if (!jwt) {\r\n console.log(\"トークン無し\");\r\n history && history.push(\"/login\");\r\n userctx && userctx.setUser(null);\r\n return;\r\n }\r\n var isRefleshSuccess = false;\r\n\r\n var promise = await ApiPostReflesh(jwt)\r\n .then(async (response) => {\r\n if (response && response.data && response.data.token) {\r\n localStorage.setItem(\r\n localStorageKeys.LoginJWT,\r\n response.data.token\r\n );\r\n isRefleshSuccess = true;\r\n return response.data.token;\r\n } else {\r\n //処理なし\r\n console.log(\"トークン切れ1\");\r\n history && history.push(\"/login\");\r\n userctx && userctx.setUser(null);\r\n return Promise.reject(error);\r\n }\r\n })\r\n .catch((e) => {\r\n //処理なし\r\n console.log(\"トークン切れ2\");\r\n history && history.push(\"/login\");\r\n userctx && userctx.setUser(null);\r\n return Promise.reject(error);\r\n });\r\n\r\n if (isRefleshSuccess) {\r\n console.log(\"リフレッシュ成功\");\r\n originalRequest.headers[\"Authorization\"] = \"Bearer \" + promise;\r\n var test = await axios(originalRequest);\r\n return test;\r\n }\r\n\r\n return promise;\r\n } else {\r\n return Promise.reject(error);\r\n }\r\n });\r\n\r\n return null;\r\n}\r\n","import { Button, Grid } from \"@material-ui/core\";\r\nimport { useTheme, makeStyles } from \"@material-ui/core/styles\";\r\nimport React, { useCallback } from \"react\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { ChevronLeft, DeleteForever, Edit } from \"@material-ui/icons\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n buttonRadius: {\r\n borderRadius: \"50px\",\r\n },\r\n buttonBox: {\r\n paddingTop: \"4px\",\r\n textAlign: \"center\",\r\n },\r\n}));\r\n\r\nconst editText = () => {\r\n return (\r\n <>\r\n 更新\r\n \r\n );\r\n};\r\nconst deleteText = () => {\r\n return (\r\n <>\r\n 削除\r\n \r\n );\r\n};\r\nconst returnText = () => {\r\n return (\r\n <>\r\n \r\n 戻る\r\n \r\n );\r\n};\r\n// Propsのデフォルト値\r\nEditScreenButtons.defaultProps = {\r\n color1: \"primary\",\r\n color2: \"secondary\",\r\n color3: \"inherit\",\r\n // text1: \"更新\",\r\n text1: editText(),\r\n // text2: \"削除\",\r\n text2: deleteText(),\r\n // text3: \"戻る\",\r\n text3: returnText(),\r\n type1: \"button\",\r\n type2: \"button\",\r\n type3: \"button\",\r\n isDisable1: false,\r\n isDisable2: false,\r\n isDisable3: false,\r\n isUse1: true,\r\n isUse2: false,\r\n isUse3: true,\r\n isPaperInner: false,\r\n};\r\n\r\n/**\r\n * 編集画面用のボタンを返します。\r\n * (基本的に更新と戻るの想定)\r\n * @module EditScreenButtons\r\n * @example\r\n *\r\n * @param {Object} props - 残りの設定は両方のボタンに設定されます。\r\n * @param {function} onClick1 - ボタン1クリック時処理 初期値:なし\r\n * @param {function} onClick2 - ボタン2クリック時処理 初期値:なし\r\n * @param {function} onClick3 - ボタン3クリック時処理 初期値:history.goBack()\r\n * @param {string} color1 - ボタン1色 初期値:primary\r\n * @param {string} color2 - ボタン2色 初期値:secondary\r\n * @param {string} color3 - ボタン3色 初期値:inherit\r\n * @param {string} className1 - ボタン1クラス 初期値:なし\r\n * @param {string} className2 - ボタン2クラス 初期値:なし\r\n * @param {string} className3 - ボタン3クラス 初期値:なし\r\n * @param {string} text1 - ボタン1表示文言 初期値:更新\r\n * @param {string} text2 - ボタン2表示文言 初期値:削除\r\n * @param {string} text3 - ボタン3表示文言 初期値:戻る\r\n * @param {string} type1 - ボタン1タイプ 初期値:button\r\n * @param {string} type2 - ボタン2タイプ 初期値:button\r\n * @param {string} type3 - ボタン3タイプ 初期値:button\r\n * @param {bool} isDisable1 - ボタン1disable true or false 初期値:false\r\n * @param {bool} isDisable2 - ボタン2disable true or false 初期値:false\r\n * @param {bool} isDisable3 - ボタン3disable true or false 初期値:false\r\n * @param {bool} isUse1 - ボタン1を使うか true or false 初期値:true\r\n * @param {bool} isUse2 - ボタン2を使うか true or false 初期値:false\r\n * @param {bool} isUse3 - ボタン3を使うか true or false 初期値:true\r\n * @param {bool} isPaperInner - ManageMenuPaperコンポーネントを親に持つコンポーネント内で使用する場合、レイアウトを合わせたボタン配置にする true or false 初期値:false\r\n */\r\nfunction EditScreenButtons(props) {\r\n const {\r\n onClick1,\r\n onClick2,\r\n onClick3,\r\n color1,\r\n color2,\r\n color3,\r\n className1,\r\n className2,\r\n className3,\r\n text1,\r\n text2,\r\n text3,\r\n type1,\r\n type2,\r\n type3,\r\n isDisable1,\r\n isDisable2,\r\n isDisable3,\r\n isUse1,\r\n isUse2,\r\n isUse3,\r\n isPaperInner,\r\n ...other\r\n } = props;\r\n const theme = useTheme();\r\n const classes = useStyles();\r\n\r\n const { history } = useReactRouter();\r\n const btn3Click = useCallback(() => {\r\n onClick3 ? onClick3() : history.goBack();\r\n });\r\n const btnCount =\r\n Number(isUse1 ? 1 : 0) + Number(isUse2 ? 1 : 0) + Number(isUse3 ? 1 : 0);\r\n const xsSize = btnCount <= 2 ? 6 : 12 / btnCount;\r\n return (\r\n <>\r\n \r\n {isUse1 && (\r\n \r\n \r\n {text1}\r\n \r\n \r\n )}\r\n {isUse2 && (\r\n \r\n \r\n {text2}\r\n \r\n \r\n )}\r\n {isUse3 && (\r\n \r\n \r\n {text3}\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default EditScreenButtons;\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React from 'react';\r\nimport { Grid, makeStyles } from '@material-ui/core/';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker, } from '@material-ui/pickers';\r\nimport jaLocale from \"date-fns/locale/ja\";\r\nimport format from \"date-fns/format\";\r\n\r\nif (jaLocale && jaLocale.options) {\r\n jaLocale.options.weekStartsOn = 0\r\n}\r\n\r\nconst useStyles = makeStyles((theme, props) => ({\r\n\r\n calendar_root: {\r\n \"& .MuiPickersCalendarHeader-daysHeader > .MuiPickersCalendarHeader-dayLabel:nth-child(1)\": {\r\n color: \"red\"\r\n },\r\n \"& .MuiPickersCalendar-week > div:nth-child(1)\": {\r\n backgroundColor: \"#ffc4c4\"\r\n },\r\n \"& .MuiPickersCalendarHeader-daysHeader > .MuiPickersCalendarHeader-dayLabel:nth-child(7)\": {\r\n color: \"blue\"\r\n },\r\n \"& .MuiPickersCalendar-week > div:nth-child(7)\": {\r\n backgroundColor: \"#cfefff\"\r\n }\r\n }\r\n}));\r\nclass ExtendedUtils extends DateFnsUtils {\r\n getCalendarHeaderText(date) {\r\n return format(date, \"yyyy年 MMM\", { locale: this.locale });\r\n }\r\n getDatePickerHeaderText(date) {\r\n return format(date, \"MMMd日\", { locale: this.locale });\r\n }\r\n getYearText(date) {\r\n return format(date, \"yyyy年\", { locale: this.locale });\r\n }\r\n}\r\n\r\n/**\r\n * 検索項目用のGridに囲まれた日付を返します。\r\n * @module SearchInputDateGrid\r\n * @example\r\n \r\n * @param {Object} props - KeyboardDatePickerに準ずる\r\n https://material-ui-pickers.dev/api/KeyboardDatePicker\r\n * @param {string} props.name - name\r\n * @param {string} props.className - 適用クラス\r\n * @param {string} props.text - 表示ラベル\r\n * @param {string} props.format - 日付表示フォーマット「yyyy/MM/dd」\r\n * @param {string} props.okLabel - OKボタンラベル「決定」\r\n * @param {string} props.cancelLabel - キャンセルボタンラベル「キャンセル」\r\n * @param {function} props.onChange - 変更時処理\r\n * @param {date} props.value - 値\r\n * @param {} props.other - そのほか\r\n */\r\nexport default function SearchInputDateGrid(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const { name, className, text, format, okLabel, cancelLabel,onChange, value, ...others } = props;\r\n // 値保持用\r\n // const [selectedDate, setSelectedDate] = useSafeState(unmountRef, null);\r\n const [selectedDate, setSelectedDate] = useSafeState(unmountRef, value);\r\n const classes = useStyles(props);\r\n // 値変更時処理\r\n const handleDateChange = (date) => {\r\n setSelectedDate(date);\r\n onChange && onChange(name, date);\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}","import React from \"react\";\r\nimport { FormControl, Grid, Input, InputLabel } from \"@material-ui/core/\";\r\n\r\n/**\r\n * 検索項目用のGridに囲まれた入力項目を返します。\r\n * @module SearchInputGrid\r\n * @param {Object} props - 指定の引数以外は受け取れません。\r\n * @param {string} props.className - スタイルを設定\r\n * @param {string} props.name - nameを設定\r\n * @param {string} props.text - 入力項目名を設定\r\n * @param {Object} props.inputRef - refを設定\r\n * @param {Object} props.inputRef - typeを設定\r\n * @param {fuction} props.onChange - onChange処理\r\n * @param {Object} props.errContent - エラー表示するタグを設定\r\n */\r\nexport default function SearchInputGrid(props) {\r\n\tconst { className, name, text, inputRef, onChange, value, type, errContent, style } = props;\r\n\r\n\tconst handleChange = (e) => {\r\n\t\tonChange ? onChange(name, e.target.value) : console.log(\"no onChange\");\r\n\t};\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{text}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{errContent && errContent}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect, useCallback } from \"react\";\r\nimport {\r\n Hidden,\r\n TablePagination,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n} from \"@material-ui/core\";\r\nimport Pagination from \"@material-ui/lab/Pagination\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n pagenation: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n \"& > .MuiPagination-ul\": {\r\n flexWrap: \"unset\",\r\n },\r\n },\r\n table_pagenation: {\r\n \"& > .MuiToolbar-root\": {\r\n flexWrap: \"wrap\",\r\n },\r\n },\r\n table: {\r\n // セル内改行を阻止\r\n \"& > .MuiTableBody-root > .MuiTableRow-root > .MuiTableCell-root\": {\r\n whiteSpace: \"nowrap\",\r\n },\r\n },\r\n}));\r\nexport function PagenationActions(props) {\r\n const classes = useStyles();\r\n\r\n const { count, page, rowsPerPage, onChangePage } = props;\r\n const handleChange = (event, value) => {\r\n onChangePage(event, value - 1);\r\n };\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\n// Propsのデフォルト値\r\nPagenationTable2.defaultProps = {\r\n isFirstSearch: true,\r\n};\r\n\r\n/**\r\n * テーブルにpagenationを付与します。\r\n * 件数は、x-total-countより取得します。\r\n * 実際の使用例は「ContactList」を参照\r\n * @module PagenationTable2\r\n * @example\r\n const GetContacts = useCallback(async (skip, take) => {検索処理};\r\n const [refreshTable, setRefreshTable] = useSafeState(unmountRef, false);\r\n const clickSearch = () =>{\r\n setRefreshTable(!refreshTable);\r\n }\r\n\r\n \r\n * @param {Object} props - 基本的にTablePaginationに準じます\r\n * @param {int[]?} props.rowsPerPageOptions - 表示件数を配列で定義([5,10,20, 50, 100])\r\n * @param {int?} props.rowsPerPageDefault - 表示件数の初期値(5)\r\n * @param {int?} props.countDefault - データ件数(0)表示\r\n * @param {int?} props.pageDefault - 表示ページの初期値(0)\r\n * @param {function(skip, take)} props.searchFunction - ページ変更時、件数変更時に実行されるfunction。引数にスキップ件数と取得件数を引き渡す。responseを返すことで、表示件数を動的に変更する\r\n * @param {bool?} props.requireHeader - テーブル上側に表示するか(true)\r\n * @param {bool?} props.requireFooter - テーブル下側に表示するか(true)\r\n * @param {bool} props.refreshTable - 検索等で、データが変わるときに呼び出しもとで変更する。\r\n * @param {bool} props.isFirstSearch - 初期検索するかどうか。(true)\r\n * @param {string} props.storageName - セッションストレージに入れる際の名前\r\n * @param {string} props.isTableRowSpan - テーブルにrowspanがある場合は設定\r\n */\r\nexport default function PagenationTable2(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const {\r\n storageName,\r\n rowsPerPageOptions,\r\n rowsPerPageDefault,\r\n countDefault,\r\n pageDefault,\r\n searchFunction,\r\n requireHeader,\r\n requireFooter,\r\n refreshTable,\r\n isFirstSearch,\r\n head,\r\n body,\r\n isTableRowSpan,\r\n ...other\r\n } = props;\r\n const classes = useStyles();\r\n\r\n // const sessionStorageName = `${storageName}_pageNo`;\r\n const preSessionPageNo = sessionStorage.getItem(storageName);\r\n\r\n const labelRowsPerPage = \"rows\";\r\n const [rowsPerPage, setRowsPerPage] = useSafeState(\r\n unmountRef,\r\n rowsPerPageDefault ? rowsPerPageDefault : 5\r\n );\r\n const [page, setPage] = useSafeState(\r\n unmountRef,\r\n preSessionPageNo ? Number(preSessionPageNo) : pageDefault ? pageDefault : 0\r\n );\r\n const [count, setCount] = useSafeState(\r\n unmountRef,\r\n countDefault ? countDefault : 0\r\n );\r\n const [dispHeader] = useSafeState(\r\n unmountRef,\r\n requireHeader === undefined ? true : requireHeader\r\n );\r\n const [dispFooter] = useSafeState(\r\n unmountRef,\r\n requireFooter === undefined ? true : requireFooter\r\n );\r\n const [firstSearched, setFirstSearched] = useSafeState(unmountRef, false);\r\n\r\n // 関数\r\n const labelDisplayedRows = useCallback((data) => {\r\n return `${data.from} - ${data.to === -1 ? data.count : data.to} of ${\r\n data.count\r\n }`;\r\n });\r\n // ページ変更\r\n const handleChangePage = useCallback((event, newPage) => {\r\n setPage(newPage);\r\n });\r\n // ページ表示件数変更\r\n const handleChangeRowsPerPage = useCallback((event) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n });\r\n\r\n // 検索処理\r\n const Search = useCallback(async () => {\r\n var response = await searchFunction(page * rowsPerPage, rowsPerPage);\r\n // console.log(response);\r\n // あればレスポンスからカウントを取り出す。\r\n if (response) {\r\n if (response.headers[\"x-total-count\"]) {\r\n setCount(Number(response.headers[\"x-total-count\"]));\r\n }\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (isFirstSearch) Search();\r\n setFirstSearched(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (firstSearched) Search();\r\n }, [page, rowsPerPage]);\r\n useEffect(() => {\r\n if (firstSearched) {\r\n if (page !== 0) setPage(0);\r\n else Search();\r\n }\r\n }, [refreshTable]);\r\n\r\n useEffect(() => {\r\n if (firstSearched) sessionStorage.setItem(storageName, page);\r\n }, [page]);\r\n\r\n function pagination(style) {\r\n return (\r\n labelDisplayedRows(data)}\r\n {...other}\r\n />\r\n );\r\n }\r\n\r\n const tablePagenation = () => {\r\n return (\r\n <>\r\n {pagination(classes.table_pagenation)}\r\n {pagination()}\r\n \r\n );\r\n };\r\n\r\n const tableChildrens = () => {\r\n return (\r\n <>\r\n {head && body && (\r\n \r\n \r\n \r\n {isTableRowSpan === true ? (\r\n <>{head}\r\n ) : (\r\n {head}\r\n )}\r\n \r\n {body}\r\n
\r\n
\r\n )}\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {dispHeader && tablePagenation()}\r\n {tableChildrens()}\r\n {dispFooter && tablePagenation()}\r\n \r\n );\r\n}\r\n","import react from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { TableCell } from '@material-ui/core';\r\n\r\nexport const TableHeaderCell = withStyles((theme) => ({\r\n head: {\r\n paddingTop:theme.spacing(1),\r\n paddingBottom:theme.spacing(1),\r\n backgroundColor:theme.palette.primary.light,\r\n color: theme.palette.primary.contrastText,\r\n },\r\n }))(TableCell);","import React from \"react\";\r\nimport { Grid, Typography } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\ttitleTextItem: {\r\n\t\tmarginTop: theme.spacing(4),\r\n\t\tmarginBottom: theme.spacing(1),\r\n\t\tcolor: theme.palette.primary.main,\r\n\t},\r\n\ttitleText: {\r\n\t\tborder: 1,\r\n\t\tborderRadius: 3,\r\n\t\tfontWeight: \"600\",\r\n\t},\r\n\tsubTitleText: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t\tcolor: theme.palette.primary.main,\r\n\t\tfontWeight: 600,\r\n\t},\r\n}));\r\n\r\n/**\r\n * ページタイトルとサブタイトルの文字列を表示するコンポーネントです。\r\n * @module IOSSwitch\r\n * @example\r\n *\r\n \r\n * @param {Object} title - タイトル\r\n * @param {string} subTitle - サブタイトル\r\n */\r\nexport default function TitleWithSubTitleText(props) {\r\n\tconst { title, subTitle, titleTextStyle } = props;\r\n\r\n\tconst classes = useStyles();\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{title}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{subTitle}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n","import React from 'react';\r\nimport { Button } from '@material-ui/core';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\n\r\n/**\r\n * 虫眼鏡アイコンと文字列が一体となったボタン\r\n * @param {Object} props - 基本的にはButtonのpropsに準じます\r\n * @param {string?} props.text - ボタンに表示する文字列 規定値は「検索」\r\n */\r\nexport default function SearchButton(props) {\r\n // const classes = useStyles();\r\n const { color, variant, text, ...other } = props;\r\n\r\n return (\r\n \r\n \r\n {text ? text : \"検索\"}\r\n \r\n );\r\n}","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React from \"react\";\r\nimport { Popover, Link, Typography,fade } from \"@material-ui/core\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n popover: {\r\n \"& > .MuiPaper-root\": {\r\n maxWidth: \"25rem\",\r\n backgroundColor: fade(theme.palette.primary.dark,0.9),\r\n color:\"white\",\r\n padding: theme.spacing(2),\r\n overflowWrap:\"break-word\"\r\n },\r\n },\r\n}));\r\n\r\n/**\r\n * リスト表示用のテキストを表示します。\r\n * 指定文字数以上の場合、省略し【…】を付与します\r\n * @module TitleText\r\n * @param {Object} props - Typography\r\n * @param {string} props.text - 表示文字列\r\n * @param {int} props.length - 既定の文字数 初期値[0]\r\n * @param {int} props.others - その他\r\n */\r\n// Propsのデフォルト値\r\nListText.defaultProps = {\r\n text: \"\",\r\n length: 0,\r\n};\r\nexport default function ListText(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const { text, length, ...others } = props;\r\n const [anchorEl, setAnchorEl] = useSafeState(unmountRef, null);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n const open = Boolean(anchorEl);\r\n const id = open ? \"simple-popover\" : undefined;\r\n const anchorButton =\r\n text &&\r\n (text.length > length ? (\r\n \r\n {String(text).substr(0, length) + \"…\"}\r\n \r\n ) : (\r\n <>{text}\r\n ));\r\n\r\n // const textLabel =\r\n // text && (text.length > length ? String(text).substr(0, length) : text);\r\n return (\r\n // \r\n // {textLabel}\r\n // \r\n <>\r\n {anchorButton}\r\n \r\n {text}\r\n \r\n \r\n );\r\n}\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport Axios from \"axios\";\r\nimport * as yup from \"yup\";\r\nimport {\r\n ErrMsgKey,\r\n GetErrMsg,\r\n ErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n minWidth: 120,\r\n width: \"100%\",\r\n textAlign: \"left\",\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\n/**\r\n * 指定した区分値のセレクトリストを返します。\r\n * @module MstDivisionsSelectListNoLabel\r\n * @example\r\n * 「ConactMain」のDivisionsSelectorの使い方と一緒の想定\r\n function addSchemaDataFunc(id, value, state){\r\n state[id] = value;\r\n return state;\r\n }\r\n const addSchemaData = (id, value) => {\r\n setSchemaData(addSchemaDataFunc(id,value,schemaData));\r\n };\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n \r\n\r\n * @param {Object} props - 指定の引数以外は受け取れません。\r\n * @param {string} selected - 初期選択値\r\n * @param {string} divisionkey - 指定の区分値のキー\r\n * @param {bool} dispnone - 選択肢「なし」の表示可否\r\n * @param {function} addSchemaData - yupスキーマを追加する処理\r\n * @param {bool} required - 必須の場合true\r\n * @param {bool} inputRef - refを設定\r\n * @param {string} variant - 表示のスタイル\r\n * @param {string} name - name\r\n * @param {string} label - 項目名\r\n * @param {errors} errors - エラーがある\r\n * @param {bool} readOnly - 読み取り専用\r\n * @param {bool} setValue - stateを変更する処理\r\n */\r\nexport default function MstDivisionsSelectListNoLabel(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const {\r\n selected,\r\n setValue,\r\n name,\r\n divisionkey,\r\n dispnone,\r\n addSchemaData,\r\n required,\r\n inputRef,\r\n variant,\r\n readOnly,\r\n errors,\r\n onChange,\r\n ...others\r\n } = props;\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n const [selectedValue, setSelectedValue] = useSafeState(unmountRef, selected);\r\n const [selectItemData, setSelectItemData] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n );\r\n\r\n // ドロップダウンリスト変更時の処理\r\n const handleChange = (event) => {\r\n setSelectedValue(event.target.value);\r\n // setValue && setValue(name, event.target.value);\r\n onChange && onChange(event);\r\n };\r\n\r\n const handleSnackbarClose = (event) => {\r\n setOpen(false);\r\n };\r\n\r\n async function GetSelectItems() {\r\n await Axios.get(\"api/divisions?key=\" + divisionkey)\r\n .then(function (json) {\r\n // 正常の場合\r\n // ドロップダウンを設定\r\n setSelectItemData(json.data);\r\n // 初期値が設定されていない場合、一件目を初期値とする。\r\n dispnone === false &&\r\n !selected &&\r\n setSelectedValue(json.data[0].divisionValue);\r\n dispnone === false &&\r\n !selected &&\r\n setValue &&\r\n setValue(name, json.data[0].divisionValue);\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetSelectItems fetch error\", error);\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n // MstDivisionよりデータを取り込む\r\n GetSelectItems();\r\n\r\n addSchemaData\r\n ? required\r\n ? // 必須チェック\r\n addSchemaData(\r\n name,\r\n yup.string().required(GetErrMsg(ErrMsgKey.required))\r\n )\r\n : // 必須チェックなし\r\n addSchemaData(name, yup.string())\r\n : console.log(\"\");\r\n };\r\n f();\r\n }, []);\r\n\r\n useEffect(() => {\r\n // refを引き渡せないmaterialUiのコンポーネントをregisterに設定する\r\n inputRef && inputRef(name); // custom register Antd input\r\n }, [inputRef]);\r\n\r\n useEffect(() => {\r\n setValue && setValue(name, selectedValue);\r\n }, [selectedValue]);\r\n useEffect(() => {\r\n setSelectedValue(selected);\r\n }, [selected]);\r\n\r\n return (\r\n
\r\n \r\n {msg}\r\n \r\n {selectItemData && (\r\n \r\n \r\n {dispnone === true && (\r\n \r\n なし\r\n \r\n )}\r\n {selectItemData &&\r\n selectItemData.map((item, index) => (\r\n \r\n {item.divisionText1}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n {errors && (\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","/**\r\n * @file 問い合わせ一覧画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport {\r\n Box,\r\n Button,\r\n ButtonGroup,\r\n Grid,\r\n TableCell,\r\n TableRow,\r\n TextField,\r\n Typography,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ExpandLess, ExpandMore, Search, Textsms } from \"@material-ui/icons\";\r\nimport axios from \"axios\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { GetDivisions } from \"components/api/DivisionsApi\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { sessionStorageKeys } from \"components/common/Const\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport MstDivisionsSelectList from \"components/input/selectlist/MstDivisionsSelectList\";\r\nimport SearchInputDateGrid from \"components/input/textbox/SearchInputDateGrid\";\r\nimport SearchInputGrid from \"components/input/textbox/SearchInputGrid\";\r\nimport PagenationTable2 from \"components/table/PagenationTable2\";\r\n// import { TableRow } from \"components/table/TableRow\";\r\nimport { TableHeaderCell } from \"components/table/TableHeaderCell\";\r\nimport TableSkeleton from \"components/table/TableSkeleton\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport TitleWithSubTitleText from \"components/text/TitleWithSubTitleText\";\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/ja\";\r\nimport SearchButton from \"components/input/button/SearchButton\";\r\nimport { Alert } from \"@material-ui/lab\";\r\nimport ListText from \"components/text/ListText\";\r\nimport MstDivisionsSelectListNoLabel from \"components/input/selectlist/MstDivisionsSelectListNoLabel\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n edit_button: {\r\n marginRight: theme.spacing(1),\r\n },\r\n input_span: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n input_span_text_right: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n textAlign: \"right\",\r\n },\r\n button_wide: {\r\n width: \"100%\",\r\n },\r\n list_btn_center: {\r\n textAlign: \"center\",\r\n padding: \"unset\",\r\n },\r\n nowrap: {\r\n whiteSpace: \"nowrap\",\r\n },\r\n}));\r\n\r\nexport default function ContactList(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n /* ステート,コンテキスト等 */\r\n const msgctx = useContext(MessageContext);\r\n const classes = useStyles();\r\n\r\n const [itemData, setItemData] = useSafeState(unmountRef, null); // 問合せ一覧\r\n const [processedData, setProcessedData] = useSafeState(unmountRef, null); // 完了区分\r\n const [contactDivData, setcontactDivData] = useSafeState(unmountRef, null); // 問合せ区分\r\n const [refreshTable, setRefreshTable] = useSafeState(unmountRef, false); // PagenationTableにデータ再取得させるためのフラグ\r\n const [isExpand, setIsExpand] = useSafeState(unmountRef, false);\r\n const [searchCondition, setSearchCondition] = useSafeState(unmountRef, {\r\n getDeleted: false,\r\n proccessed: \"0\",\r\n fromDate: dayjs(Date.now).add(-1, \"months\").toDate(),\r\n toDate: dayjs(Date.now).toDate(),\r\n });\r\n\r\n /* 関数 */\r\n\r\n // 詳細検索オープンクローズ\r\n const handleExpand = () => {\r\n setIsExpand(!isExpand);\r\n };\r\n // 完了ボタン押下処理\r\n const handleClickComplete = async (event, id, value, index) => {\r\n var object = {};\r\n object[\"DcoId\"] = id;\r\n object[\"dcoProccessed\"] = value;\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .put(\"api/contacts/\", JSON.stringify(object), {\r\n headers: !token\r\n ? { Accept: \"application/json\", \"Content-Type\": \"application/json\" }\r\n : {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then((response) => {\r\n var cloned = Object.create(itemData);\r\n var target = cloned.find((x) => x.dcoId === id);\r\n target.dcoProccessed = value;\r\n\r\n setItemData(cloned);\r\n })\r\n .catch((error) => {\r\n msgctx.enqueue(\"更新に失敗しました。\", \"error\");\r\n });\r\n };\r\n\r\n // 一覧取得\r\n const GetDatas = useCallback(async (skip, take) => {\r\n // const queryString = new URLSearchParams(\r\n // new FormData(document.getElementById(\"search-form\"))\r\n // );\r\n console.log(\"GetDatas\");\r\n console.log(searchCondition);\r\n // // let values = Object.assign({}, searchCondition);\r\n let values = {};\r\n for (let key in searchCondition) {\r\n if (searchCondition[key]) values[key] = searchCondition[key];\r\n }\r\n\r\n values[\"offset\"] = skip;\r\n values[\"take\"] = take;\r\n values[\"requireAllCount\"] = true;\r\n\r\n if (values[\"proccessed\"])\r\n values[\"proccessed\"] = Boolean(Number(values[\"proccessed\"]));\r\n if (values[\"fromDate\"])\r\n values[\"fromDate\"] = dayjs(values[\"fromDate\"]).format(\"YYYY-MM-DD\");\r\n if (values[\"toDate\"])\r\n values[\"toDate\"] = dayjs(values[\"toDate\"]).format(\"YYYY-MM-DD\");\r\n\r\n const token = await authService.getAccessToken();\r\n return await axios\r\n // .get(\r\n // \"api/contacts?\" +\r\n // queryString.toString() +\r\n // \"&offset=\" +\r\n // skip +\r\n // \"&take=\" +\r\n // take +\r\n // \"&requireAllCount=true\",\r\n .get(`api/contacts?${new URLSearchParams(values)}`, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n setItemData(response.data);\r\n return response;\r\n })\r\n .catch(function (error) {\r\n console.log(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n msgctx.enqueue(\r\n \"エラーが発生しました。時間をおいて再度実行してください。\",\r\n \"error\"\r\n );\r\n return undefined;\r\n });\r\n });\r\n // 検索処理\r\n const SearchAction = () => {\r\n setRefreshTable(!refreshTable);\r\n return \"\";\r\n };\r\n\r\n const changeSearchCondition = useCallback((id, val) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[id] = val;\r\n setSearchCondition(cloned);\r\n });\r\n const changeGetDeleted = useCallback((e) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[\"getDeleted\"] = e.target.checked;\r\n setSearchCondition(cloned);\r\n });\r\n\r\n // 一覧テーブルのヘッダ\r\n const tableHeaderDef = useCallback(() => {\r\n return (\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 const tableBodyDef = useCallback(() => {\r\n return (\r\n <>\r\n {itemData ? (\r\n itemData.map((item, index) => (\r\n <>\r\n \r\n \r\n {item.dcoId}\r\n \r\n \r\n \r\n \r\n \r\n {item.dcoPhoneNumber}\r\n \r\n \r\n {contactDivData ? contactDivData[item.dcoContactDiv] : \"\"}\r\n \r\n \r\n {dayjs(item.dcoCreateYmd).format(\"YYYY/MM/DD HH:mm\")}\r\n \r\n {/* \r\n {item.dcoProccessed ? (\r\n handleClickComplete(e, item.dcoId, false)}\r\n >\r\n 未完了\r\n \r\n ) : (\r\n handleClickComplete(e, item.dcoId, true)}\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 {/* {processedData\r\n ? processedData[Number(item.dcoProccessed)]\r\n : \"\"} */}\r\n\r\n \r\n handleClickComplete(e, item.dcoId, !item.dcoProccessed)\r\n }\r\n style={{ margin: \"unset\" }}\r\n />\r\n \r\n \r\n {item.dcoUpdateYmd &&\r\n dayjs(item.dcoUpdateYmd).format(\"YYYY/MM/DD HH:mm\")}\r\n \r\n \r\n \r\n \r\n }\r\n style={{ padding: \"3px 16px\" }}\r\n >\r\n
\r\n \r\n {item.dcoContactDetail}\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 useEffect(() => {\r\n const f = async () => {\r\n GetDivisions(\"proccessed\", setProcessedData);\r\n GetDivisions(\"contactDiv\", setcontactDivData);\r\n };\r\n f();\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isExpand && (\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 * @file システム管理画面\r\n */\r\nimport React from \"react\";\r\nimport TitleText from \"components/text/TitleText\";\r\n\r\nexport default function Index() {\r\n\treturn システム管理;\r\n}\r\n","import React from \"react\";\r\nimport {\r\n\tButton,\r\n\tDialog,\r\n\tDialogActions,\r\n\tDialogContent,\r\n\tDialogContentText,\r\n\tDialogTitle,\r\n} from \"@material-ui/core/\";\r\n\r\n/**\r\n * 確認ダイアログを表示します。\r\n * @module ConfirmDialog\r\n * @example\r\n // 更新処理\r\n const handleSubmit = async () => {・・・}\r\n const dialogClose = () => {\r\n setConfirmDialogOpen(false);\r\n };\r\n const handleDialogSubmit = useCallback((e, parameter) => {})\r\n \r\n * @param {Object} props - Dialogに準じます\r\n * @param {function} props.handleClose - キャンセル時処理\r\n * @param {function} props.handleSubmit - OK時処理\r\n * @param {string} props.message - 表示するメッセージ1\r\n * @param {string} props.message2 - 表示するメッセージ2\r\n * @param {string} props.title - タイトル\r\n * @param {string} props.okLabel - OKボタンラベル「確定」\r\n * @param {string} props.cancelLabel - キャンセルボタンラベル「キャンセル」\r\n * @param {string} props.disable1 - OKボタンdisable\r\n * @param {object} props.parameter - Submit時、Close時に渡すパラメータ\r\n */\r\nexport default function ConfirmDialog(props) {\r\n\tconst {\r\n\t\topen,\r\n\t\thandleClose,\r\n\t\thandleSubmit,\r\n\t\tmessage,\r\n\t\tmessage2,\r\n\t\ttitle,\r\n\t\tokLabel,\r\n\t\tcancelLabel,\r\n\t\tdisable1,\r\n\t\tparameter,\r\n\t\t...other\r\n\t} = props;\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{title ? title : \"確認\"}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{/* 更新します。 */}\r\n\t\t\t\t\t\t{message}\r\n\t\t\t\t\t\t{message2 ?
: \"\"}\r\n\t\t\t\t\t\t{message2}\r\n\t\t\t\t\t\t{/*
*/}\r\n\t\t\t\t\t\t{/* よろしければ、確定を押下してください。 */}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t handleSubmit(e, parameter)}\r\n\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\tdisabled={disable1}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{okLabel ? okLabel : \"確定\"}\r\n\t\t\t\t\t\r\n\t\t\t\t\t handleClose(e, parameter)}\r\n\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\tautoFocus\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{cancelLabel ? cancelLabel : \"キャンセル\"}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n}\r\n","import React from \"react\";\r\nimport { FormControlLabel, Switch } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\n\r\nconst IOSSwitchStyle = withStyles((theme) => ({\r\n root: {\r\n width: 42,\r\n height: 26,\r\n padding: 0,\r\n margin: theme.spacing(1),\r\n },\r\n switchBase: {\r\n padding: 1,\r\n \"&$checked\": {\r\n transform: \"translateX(16px)\",\r\n color: theme.palette.common.white,\r\n \"& + $track\": {\r\n backgroundColor: \"#52d869\",\r\n opacity: 1,\r\n border: \"none\",\r\n },\r\n },\r\n \"&$focusVisible $thumb\": {\r\n color: \"#52d869\",\r\n border: \"6px solid #fff\",\r\n },\r\n },\r\n thumb: {\r\n width: 24,\r\n height: 24,\r\n },\r\n track: {\r\n borderRadius: 26 / 2,\r\n border: `1px solid ${theme.palette.grey[400]}`,\r\n backgroundColor: theme.palette.grey[400],\r\n opacity: 1,\r\n transition: theme.transitions.create([\"background-color\", \"border\"]),\r\n },\r\n checked: {},\r\n focusVisible: {},\r\n}))(({ classes, ...props }) => {\r\n return (\r\n \r\n );\r\n});\r\n\r\n/**\r\n * IOS風のスイッチを返します。\r\n * @module IOSSwitch\r\n * @example\r\n *\r\n \r\n * @param {Object} props - Switchに準じます\r\n * @param {string} label - 表示用ラベル\r\n * @param {string} labelStyle - ラベルのスタイル\r\n */\r\nexport default function IOSSwitch(props) {\r\n const { label, labelStyle, ...other } = props;\r\n // const classes = useStyles();\r\n // const theme = useTheme();\r\n\r\n return (\r\n <>\r\n }\r\n label={label}\r\n />\r\n \r\n );\r\n}\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React from \"react\";\r\nimport { ClickAwayListener, Tooltip, Typography } from \"@material-ui/core\";\r\nimport { HelpOutline } from \"@material-ui/icons\";\r\n\r\nexport default function HelpToolTip(props) {\r\n const unmountRef = useUnmountRef();\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n\r\n const handleTooltipClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleTooltipOpen = () => {\r\n setOpen(true);\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport const HelperIsNewPatient = (props) => {\r\n return (\r\n \r\n \r\n チェックしたボタンより予約登録画面へ進んだ場合、「診察券をお持ちでない」が初期選択されます。\r\n \r\n \r\n ※「診察券をお持ちでない場合も予約を受け付ける」をONにしてください。\r\n \r\n \r\n ※該当者用の場合、「予約可能」でない場合は予約登録画面へ進めないため機能しません。\r\n \r\n \r\n }\r\n >\r\n );\r\n};\r\nexport const HelperIsUseReserve = (props) => {\r\n return (\r\n \r\n \r\n 予約可能をONにした場合、該当者用画面に「次へ」ボタンが表示されるようになり、予約状況画面へ進めるようになります。\r\n \r\n \r\n }\r\n >\r\n );\r\n};\r\n","/**\r\n * @file 役割権限画面、ユーザー権限画面等で表示される、全ての権限のON/OFFスイッチを提供するコンポーネントです\r\n */\r\nimport React from \"react\";\r\nimport { Grid, Typography } from \"@material-ui/core\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport HelpToolTip from \"components/toolTip/HelpToolTip\";\r\n\r\nexport default function ClaimsEditCommon(props) {\r\n const { claimList, handleChange, dialogOpen } = props;\r\n\r\n let preOrder = 0;\r\n let isBreak = false;\r\n\r\n return (\r\n <>\r\n \r\n {claimList ? (\r\n Object.keys(claimList).map((item, index) => {\r\n let floorOrder = Math.floor(claimList[item][\"order\"] / 100);\r\n if (preOrder !== floorOrder) {\r\n isBreak = true;\r\n preOrder = floorOrder;\r\n } else {\r\n isBreak = false;\r\n }\r\n\r\n return [\r\n <>\r\n {claimList[item][\"order\"] && isBreak && floorOrder === 1000 && (\r\n \r\n \r\n 管理者用項目\r\n \r\n \r\n ※「東杏印刷管理者_管理」「イムラ封筒管理者_管理」の場合表示されます\r\n \r\n \r\n )}\r\n\r\n {claimList[item][\"order\"] && isBreak && floorOrder !== 1000 && (\r\n \r\n )}\r\n \r\n {claimList[item][\"roleAlready\"] ? (\r\n \r\n ) : (\r\n handleChange(claimList[item][\"type\"])}\r\n checked={claimList[item][\"checked\"]}\r\n name={claimList[item][\"title\"]}\r\n label={claimList[item][\"title\"]}\r\n labelStyle={{ marginBottom: \"0px\" }}\r\n />\r\n )}\r\n {claimList[item][\"description\"]}\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 * @file 役割権限 設定画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport TitleWithSubTitleText from \"components/text/TitleWithSubTitleText\";\r\nimport qs from \"qs\";\r\nimport ClaimsEditCommon from \"pages/admin/ClaimsEditCommon\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n input_span: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n input_span_text_right: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n textAlign: \"right\",\r\n },\r\n button_wide: {\r\n width: \"100%\",\r\n },\r\n search_root: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n nowrap: {\r\n whiteSpace: \"nowrap\",\r\n },\r\n text_right: {\r\n textAlign: \"right\",\r\n },\r\n}));\r\n\r\nexport default function RoleClaimsEdit(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const classes = useStyles();\r\n // パラメータ取得\r\n const roleId = qs.parse(props.location.search, { ignoreQueryPrefix: true })\r\n .role_id;\r\n const roleName = qs.parse(props.location.search, { ignoreQueryPrefix: true })\r\n .role_name;\r\n\r\n // SnackbarAlert用の変数\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n );\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n\r\n const [claimList, setClaimList] = useSafeState(unmountRef, null); // 表示するクレームのリスト\r\n\r\n async function GetMstClaims() {\r\n const token = await authService.getAccessToken();\r\n await axios.get(\"api/claims?isdelete=false&isroleclaim=true\", {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(async function (response) {\r\n var ar = {};\r\n response.data.map((item, index) => {\r\n var test = {};\r\n test[\"no\"] = index;\r\n test[\"title\"] = item.mclClaimTitle;\r\n test[\"type\"] = item.mclClaimType;\r\n test[\"order\"] = item.mclShowOrder;\r\n test[\"description\"] = item.mclDescription;\r\n test[\"checked\"] = false;\r\n test[\"already\"] = false;\r\n\r\n ar[item.mclClaimType] = test;\r\n });\r\n await GetRoleClaims(ar);\r\n setClaimList(ar);\r\n })\r\n .catch(function () {\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n }\r\n // ロールの権限を取得\r\n async function GetRoleClaims(cloned) {\r\n const token = await authService.getAccessToken();\r\n await axios.get(\"api/roleclaims?roleId=\" + roleId, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n response.data.map((item) => {\r\n var clonedClaim = cloned[item.claimType];\r\n if (clonedClaim) {\r\n clonedClaim[\"checked\"] = true;\r\n clonedClaim[\"already\"] = true;\r\n }\r\n });\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n console.log(\"GetRoleClaims error\");\r\n });\r\n }\r\n\r\n const handleSnackbarClose = () => {\r\n setOpen(false);\r\n };\r\n // トグル変更時処理\r\n const handleChange = async (type) => {\r\n var cloned = JSON.parse(JSON.stringify(claimList));\r\n var clonedClaim = cloned[type];\r\n clonedClaim[\"checked\"] = !clonedClaim[\"checked\"];\r\n setClaimList(cloned);\r\n };\r\n\r\n // 更新処理\r\n const handleSubmit = async () => {\r\n var deleteList = {};\r\n var insertList = {};\r\n\r\n var isSuccess = true;\r\n\r\n if (!claimList) {\r\n setMsg(\"データが非表示です\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n\r\n setConfirmDialogOpen(false);\r\n return false;\r\n }\r\n\r\n // チェック処理\r\n Object.keys(claimList).map((item) => {\r\n var target = claimList[item];\r\n\r\n // 初期チェックがあって、falseになったもの\r\n if (target[\"already\"] && !target[\"checked\"]) {\r\n deleteList[target[\"type\"]] = true;\r\n }\r\n // 新たにチェックされたもの\r\n if (!target[\"already\"] && target[\"checked\"]) {\r\n insertList[target[\"type\"]] = true;\r\n }\r\n });\r\n\r\n const token = await authService.getAccessToken();\r\n if (Object.keys(insertList).length > 0) {\r\n // インサート対象がある場合\r\n for (let item in insertList) {\r\n var object = {};\r\n object[\"roleId\"] = roleId;\r\n object[\"type\"] = item;\r\n\r\n await axios.post(\"api/roleclaims\", JSON.stringify(object), {\r\n headers: !token\r\n ? { Accept: \"application/json\", \"Content-Type\": \"application/json\" }\r\n : {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then(() => {})\r\n .catch((error) => {\r\n setMsg(error.response.data + \"時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n isSuccess = false;\r\n });\r\n }\r\n }\r\n if (Object.keys(deleteList).length > 0) {\r\n // 削除対象がある場合\r\n for (let item in deleteList) {\r\n var object2 = {};\r\n object2[\"roleId\"] = roleId;\r\n object2[\"type\"] = item;\r\n\r\n const queryString = new URLSearchParams(object2);\r\n await axios.delete(\"api/roleclaims?\" + queryString.toString(), {\r\n headers: !token\r\n ? { Accept: \"application/json\", \"Content-Type\": \"application/json\" }\r\n : {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then(() => {})\r\n .catch((error) => {\r\n setMsg(error.response.data + \"時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n isSuccess = false;\r\n });\r\n }\r\n }\r\n\r\n if (\r\n isSuccess &&\r\n (Object.keys(insertList).length > 0 || Object.keys(deleteList).length > 0)\r\n ) {\r\n // 追加か削除がある場合、対象ユーザーをログアウトさせる\r\n\r\n var object3 = {};\r\n object3[\"userId\"] = \"\";\r\n object3[\"roleId\"] = roleId;\r\n await axios.post(\"api/logout\", object3, {\r\n headers: !token\r\n ? { Accept: \"application/json\", \"Content-Type\": \"application/json\" }\r\n : {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then(() => {})\r\n .catch((error) => {\r\n setMsg(error.response.data + \" 時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n isSuccess = false;\r\n });\r\n }\r\n\r\n GetMstClaims();\r\n setConfirmDialogOpen(false);\r\n\r\n if (isSuccess) {\r\n setMsg(\"役割を更新しました。\");\r\n setSnackbarSeverity(\"success\");\r\n setOpen(true);\r\n }\r\n };\r\n const dialogOpen = () => {\r\n if (!claimList) {\r\n setMsg(\"データが非表示です\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n\r\n return false;\r\n }\r\n setConfirmDialogOpen(true);\r\n };\r\n const dialogClose = () => {\r\n setConfirmDialogOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n GetMstClaims();\r\n };\r\n f();\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {msg}\r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n );\r\n}","\r\n/**\r\n * Form内の入力データをJsonにして返します。\r\n * @param {string} formName - formのid\r\n * @returns Jsonオブジェクト\r\n */\r\nexport function FormDataToJson(formName) {\r\n\r\n const formData = new FormData(document.getElementById(formName));\r\n //FormDataから値のみ抽出する\r\n var object = {};\r\n formData.forEach(function (value, key) {\r\n object[key] = value;\r\n });\r\n\r\n return object;\r\n}\r\n\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { NativeSelect, Paper, Grid } from \"@material-ui/core\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { Fragment } from \"react\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\n\r\nconst GlobalCss = withStyles({\r\n \"@global\": {\r\n \"#header, #header-appbar, #footer, #footer-divider, #drawer-container\": {\r\n \"@media print\": {\r\n display: \"none\",\r\n },\r\n },\r\n },\r\n})(() => null);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paperReception: {\r\n padding: \"0px 20px 0px 20px\",\r\n marginTop: \"30px\",\r\n borderTop: \"3px solid\" + theme.palette.primary.main,\r\n paddingBottom: \"30px\",\r\n },\r\n paperBox: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n marginLeft: theme.spacing(5),\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n maxWidth: \"600px\",\r\n },\r\n },\r\n}));\r\n\r\n/**\r\n * @example\r\n * }>\r\n * @module ManageMenuPaper\r\n */\r\nexport default function ManageMenuPaper(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles(props);\r\n //const { jsonData, titlesFieldName, valuesFieldName, ...other } = props;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n \r\n );\r\n}\r\n","/**\r\n * @file 役割新規作成画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport { Button, Container, Grid, Paper, TextField } from \"@material-ui/core\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { FormDataToJson } from \"components/common/FormHelper\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport * as yup from \"yup\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport clsx from \"clsx\";\r\nimport ManageMenuPaper from \"components/paper/ManageMenuPaper\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n textField: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n tableTd:{\r\n paddingLeft:\"0px\",\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n },\r\n buttonRadius:{\r\n borderRadius:\"50px\"\r\n },\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n paperReception:{\r\n //height:\"100%\",\r\n overflowY: \"auto\",\r\n padding:\"0px 20px 0px 20px\",\r\n marginTop:\"30px\"\r\n },\r\n}));\r\nexport default function RoleEdit() {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n const { setValidationErrorsForaxios } = useErrorMessageProvider();\r\n\r\n //入力チェックのスキーマ定義\r\n const [schemaData] = useSafeState(unmountRef, {\r\n roleName: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n\r\n //react-hooks-form\r\n const { register, handleSubmit, errors, setError, clearErrors } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n useEffect(() => {\r\n //ここに通常更新時のロジックを書く\r\n return function cleanup() {\r\n //ここにはUnmount時のロジックを書く\r\n };\r\n });\r\n\r\n // submit時処理\r\n async function onSubmit() {\r\n var object = FormDataToJson(\"role-form\");\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .post(\"api/Roles\", object, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n alert(\"作成しました\");\r\n }\r\n return response;\r\n })\r\n .catch(function (error) {\r\n if (error.response.status === 400)\r\n setValidationErrorsForaxios(error, setError);\r\n else\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: GetErrMsg(ErrMsgKey.unexpected),\r\n });\r\n });\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 clearErrors();\r\n }}\r\n >\r\n 作成\r\n */}\r\n clearErrors()} \r\n isUse3={false} \r\n fullWidth\r\n variant=\"contained\"\r\n className2={classes.delete_button}\r\n isPaperInner={true}\r\n />\r\n \r\n \r\n \r\n );\r\n}\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React from 'react';\r\nimport clsx from 'clsx';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\nimport { Drawer, Grid, Hidden } from '@material-ui/core';\r\nimport List from '@material-ui/core/List';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { Menu } from '@material-ui/icons';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n list: {\r\n width: 250,\r\n },\r\n}));\r\n\r\nexport default function ListTitleDrawer(props) {\r\n const unmountRef = useUnmountRef();\r\n const { title, buttons, lists } = props;\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const [drawerOpen, setDrawerOpen] = useSafeState(unmountRef, false); // メニュードロワーの開閉\r\n\r\n const toggleDrawer = (open) => (event) => {\r\n console.log(event.type);\r\n console.log(open);\r\n if (event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) {\r\n return;\r\n }\r\n setDrawerOpen(open);\r\n };\r\n\r\n return (\r\n\r\n \r\n \r\n {/* 医療機関管理 */}\r\n {title}\r\n \r\n \r\n \r\n \r\n {\r\n buttons && buttons.map((button, index) =>\r\n\r\n \r\n {button}\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 lists && lists.map((list, index) => list)\r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n}","import React from 'react';\r\nimport { Grid, Button, Fab } from '@material-ui/core';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n LinkButton: {\r\n '&:hover': {\r\n color: props => props.hoverTextColor != undefined ? props.hoverTextColor : theme.palette.primary.contrastText\r\n }\r\n }\r\n}));\r\n\r\n/**\r\n * 画面遷移するFab\r\n * @param {Object} props - 基本的にFabに準じます\r\n * @param {string} props.to - 画面遷移先のアドレス\r\n * @param {any} ref - Linkのref\r\n */\r\nexport default function LinkFab(props, ref) {\r\n const classes = useStyles(props);\r\n const theme = useTheme();\r\n const { to, ...other } = props;\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n \r\n );\r\n}","import react from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { TableRow, fade } from \"@material-ui/core\";\r\n\r\nexport const TableBorderedRow = withStyles((theme) => ({\r\n root: {\r\n backgroundColor: \"white\",\r\n \"&:nth-of-type(even)\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nexport const TableBorderedRowOdd = withStyles((theme) => ({\r\n root: {\r\n backgroundColor: \"white\",\r\n \"&:nth-of-type(odd)\": {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n}))(TableRow);\r\n","/**\r\n * @file 役割管理画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n TableCell,\r\n Tooltip,\r\n} from \"@material-ui/core/\";\r\nimport { Add, VerifiedUser } from \"@material-ui/icons\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { sessionStorageKeys } from \"components/common/Const\";\r\nimport ListTitleDrawer from \"components/drawer/ListTitleDrawer\";\r\nimport LinkFab from \"components/input/button/LinkFab\";\r\nimport PagenationTable2 from \"components/table/PagenationTable2\";\r\nimport { TableBorderedRow } from \"components/table/TableBorderedRow\";\r\nimport { TableHeaderCell } from \"components/table/TableHeaderCell\";\r\nimport TableSkeleton from \"components/table/TableSkeleton\";\r\nimport ListText from \"components/text/ListText\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function Roles() {\r\n const unmountRef = useUnmountRef();\r\n\r\n /* ステート,コンテキスト等 */\r\n const userctx = useContext(UserContext);\r\n const [itemData, setItemData] = useSafeState(unmountRef, null); // 役割一覧\r\n const MyComponent = React.forwardRef(LinkFab); // LinkFabにrefが渡せなくてエラーになるため、refを渡すようにする。\r\n const [canCreate, setCanCreate] = useSafeState(unmountRef, false);\r\n const [canEdit, setCanEdit] = useSafeState(unmountRef, false);\r\n\r\n /* 関数 */\r\n // 役割一覧取得\r\n const GetRoles = useCallback(async (skip, take) => {\r\n const token = await authService.getAccessToken();\r\n return await axios\r\n .get(\r\n \"api/roles?offset=\" + skip + \"&take=\" + take + \"&requireAllCount=true\",\r\n {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n }\r\n )\r\n .then(function (response) {\r\n setItemData(response.data);\r\n return response;\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetRoles error\", error);\r\n return undefined;\r\n });\r\n });\r\n\r\n // 一覧テーブルのヘッダ\r\n const tableHeaderDef = useCallback(() => {\r\n return (\r\n <>\r\n 名称\r\n 詳細\r\n \r\n );\r\n });\r\n // 一覧テーブルのボディー\r\n const tableBodyDef = useCallback(() => {\r\n return (\r\n <>\r\n {itemData ? (\r\n itemData.map((item, index) => (\r\n \r\n \r\n \r\n \r\n \r\n {canEdit && (\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 const buttonsDef = [\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n // タイトル横リストの定義\r\n const listsDef = [\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n setCanCreate(userctx.hasClaim(Claims.Role_Create));\r\n setCanEdit(userctx.hasClaim(Claims.RoleClaims_Edit));\r\n }\r\n }, [userctx.claims]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n 役割管理}\r\n buttons={buttonsDef}\r\n lists={listsDef}\r\n />\r\n \r\n\r\n \r\n
\r\n );\r\n}","/**\r\n * @file ユーザー権限設定画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport { Box } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport TitleWithSubTitleText from \"components/text/TitleWithSubTitleText\";\r\nimport qs from \"qs\";\r\nimport React, { useEffect, useContext } from \"react\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { ErrMsgKey, GetErrMsg } from \"components/common/ErrorMessageProvider\";\r\nimport axios from \"axios\";\r\nimport ClaimsEditCommon from \"pages/admin/ClaimsEditCommon\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n input_span: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n input_span_text_right: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n textAlign: \"right\",\r\n },\r\n button_wide: {\r\n width: \"100%\",\r\n },\r\n search_root: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n nowrap: {\r\n whiteSpace: \"nowrap\",\r\n },\r\n text_right: {\r\n textAlign: \"right\",\r\n },\r\n warning_sign: {\r\n marginLeft: \"1rem\",\r\n color: \"#a31545\",\r\n },\r\n}));\r\n\r\nexport default function UserClaimsEdit(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const classes = useStyles();\r\n\r\n const [msg, setMsg] = useSafeState(unmountRef, null); // メッセージ\r\n const [open, setOpen] = useSafeState(unmountRef, false); // スナックバーのオープン制御\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n ); // スナックバーのレベル\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useSafeState(\r\n unmountRef,\r\n false\r\n ); // 確認ダイアログのオープン制御\r\n\r\n const msgctx = useContext(MessageContext);\r\n const { history, location } = useReactRouter();\r\n const pushRoot =\r\n location.pathname.indexOf(\"/manage/\") !== -1 ? \"/manage\" : \"/admin\";\r\n const [claimList, setClaimList] = useSafeState(unmountRef, null); // 表示するクレームのリスト\r\n\r\n // URLパラメータより取得\r\n const userId = qs.parse(props.location.search, { ignoreQueryPrefix: true })\r\n .user_id; // ユーザーID\r\n const roleId = qs.parse(props.location.search, { ignoreQueryPrefix: true })\r\n .role_id; // ロールID\r\n const userName = qs.parse(props.location.search, { ignoreQueryPrefix: true })\r\n .user_name; // ユーザー名\r\n\r\n // 権限の一覧を取得\r\n async function GetMstClaims() {\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/claims?isdelete=false&isroleclaim=true\", {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(async function (response) {\r\n var ar = {};\r\n response.data.map((item, index) => {\r\n var test = {};\r\n test[\"no\"] = index;\r\n test[\"title\"] = item.mclClaimTitle;\r\n test[\"type\"] = item.mclClaimType;\r\n test[\"order\"] = item.mclShowOrder;\r\n test[\"description\"] = item.mclDescription;\r\n test[\"checked\"] = false;\r\n test[\"already\"] = false;\r\n test[\"roleAlready\"] = false;\r\n\r\n ar[item.mclClaimType] = test;\r\n });\r\n await GetUserClaims(ar);\r\n await GetRoleClaims(ar);\r\n setClaimList(ar);\r\n })\r\n .catch(function (error) {\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n }\r\n\r\n // ユーザーの権限を取得\r\n async function GetUserClaims(cloned) {\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/userclaims?userId=\" + userId, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n response.data.map((item, index) => {\r\n var clonedClaim = cloned[item.claimType];\r\n clonedClaim[\"checked\"] = true;\r\n clonedClaim[\"already\"] = true;\r\n });\r\n // setClaimList(cloned);\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetRoleClaims error\");\r\n });\r\n }\r\n // ロールの権限を取得\r\n async function GetRoleClaims(cloned) {\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/roleclaims?roleId=\" + roleId, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n response.data.map((item, index) => {\r\n var clonedClaim = cloned[item.claimType];\r\n clonedClaim[\"checked\"] = true;\r\n clonedClaim[\"roleAlready\"] = true;\r\n });\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetRoleClaims error\");\r\n });\r\n }\r\n\r\n // スナックバーのクローズイベント\r\n const handleSnackbarClose = (event) => {\r\n setOpen(false);\r\n };\r\n\r\n // トグル変更時処理\r\n const handleChange = async (type) => {\r\n var cloned = JSON.parse(JSON.stringify(claimList));\r\n var clonedClaim = cloned[type];\r\n clonedClaim[\"checked\"] = !clonedClaim[\"checked\"];\r\n setClaimList(cloned);\r\n };\r\n // 更新処理\r\n const handleSubmit = async () => {\r\n var deleteList = {}; // 削除対象のリスト\r\n var insertList = {}; // 登録対象のリスト\r\n\r\n var isSuccess = true; // 処理OKメッセージの表示フラグ\r\n\r\n if (!claimList) {\r\n setMsg(\"データが非表示です\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n\r\n setConfirmDialogOpen(false);\r\n return false;\r\n }\r\n // チェック処理\r\n Object.keys(claimList).map((item, index) => {\r\n var target = claimList[item];\r\n\r\n if (!target[\"roleAlready\"]) {\r\n // 初期チェックがあって、falseになったもの\r\n if (target[\"already\"] && !target[\"checked\"]) {\r\n deleteList[target[\"type\"]] = true;\r\n }\r\n // 新たにチェックされたもの\r\n if (!target[\"already\"] && target[\"checked\"]) {\r\n insertList[target[\"type\"]] = true;\r\n }\r\n }\r\n });\r\n\r\n const token = await authService.getAccessToken();\r\n if (Object.keys(insertList).length > 0) {\r\n // インサート対象がある場合\r\n for (let item in insertList) {\r\n var object = {};\r\n object[\"userId\"] = userId;\r\n object[\"type\"] = item;\r\n\r\n await axios\r\n .post(\"api/userclaims\", JSON.stringify(object), {\r\n headers: !token\r\n ? {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }\r\n : {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then((response) => {\r\n console.log(\"役割を設定しました。\");\r\n })\r\n .catch((error) => {\r\n setMsg(error.response.data + \"時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n isSuccess = false;\r\n });\r\n }\r\n }\r\n if (Object.keys(deleteList).length > 0) {\r\n // 削除対象がある場合\r\n for (let item in deleteList) {\r\n var object2 = {};\r\n object2[\"userId\"] = userId;\r\n object2[\"type\"] = item;\r\n\r\n const queryString = new URLSearchParams(object2);\r\n await axios\r\n .delete(\"api/userclaims?\" + queryString.toString(), {\r\n headers: !token\r\n ? {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }\r\n : {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then((response) => {\r\n console.log(\"役割を削除しました。\");\r\n })\r\n .catch((error) => {\r\n setMsg(error.response.data + \"時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n isSuccess = false;\r\n });\r\n }\r\n }\r\n\r\n if (\r\n isSuccess &&\r\n (Object.keys(insertList).length > 0 || Object.keys(deleteList).length > 0)\r\n ) {\r\n // 追加か削除がある場合、対象ユーザーをログアウトさせる\r\n\r\n var object3 = {};\r\n object3[\"userId\"] = userId;\r\n object3[\"roleId\"] = \"\";\r\n await axios\r\n .post(\"api/logout\", object3, {\r\n headers: !token\r\n ? { Accept: \"application/json\", \"Content-Type\": \"application/json\" }\r\n : {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n .then((response) => {\r\n console.log(userId + \"をログアウトさせました。\");\r\n })\r\n .catch((error) => {\r\n setMsg(error.response.data + \" 時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n isSuccess = false;\r\n });\r\n }\r\n\r\n // 最新データ取得\r\n GetMstClaims();\r\n // 更新確認画面非表示\r\n setConfirmDialogOpen(false);\r\n\r\n if (isSuccess) {\r\n setMsg(\"役割を更新しました。\");\r\n setSnackbarSeverity(\"success\");\r\n setOpen(true);\r\n }\r\n };\r\n const dialogOpen = () => {\r\n if (!claimList) {\r\n setMsg(\"データが非表示です\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n\r\n return false;\r\n }\r\n setConfirmDialogOpen(true);\r\n };\r\n const dialogClose = () => {\r\n setConfirmDialogOpen(false);\r\n };\r\n\r\n // ユーザー検索\r\n async function GetUser() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/users?GetDeleted=true&id=\" + userId, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setMsg(json.message);\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n } else {\r\n // 医療機関等の権限がなければエラー\r\n if (json.data.length === 0) {\r\n history.replace(`${pushRoot}`);\r\n msgctx.enqueueNotClose(\r\n GetErrMsg(ErrMsgKey.checkHospitalDept),\r\n \"error\"\r\n );\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"getItem error\", error);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n GetMstClaims();\r\n GetUser();\r\n };\r\n f();\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {msg}\r\n \r\n \r\n\r\n \r\n \r\n ※役割権限にて設定済みのものは変更できません。\r\n \r\n \r\n
\r\n );\r\n}\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { NativeSelect } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Fragment } from \"react\";\r\n\r\nconst useStyles = makeStyles((theme) => ({}));\r\n\r\n/**\r\n * JsonからNativeなドロップダウンリストを生成します\r\n * @example\r\n * }>\r\n * @module DropDownListNative\r\n * @param {Object} props - 基本的にNativeSelectに準じます\r\n * @param {Object} props.jsonData - 表示するjsonデータ\r\n * @param {String} props.titlesFieldName - DropDownListで表示するデータのフィールド名\r\n * @param {String} props.valuesFieldName - DropDownListで値とするデータのフィールド名\r\n */\r\nexport default function DropDownListNative(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles(props);\r\n const { jsonData, titlesFieldName, valuesFieldName, ...other } = props;\r\n const [items, setItems] = useSafeState(unmountRef, []);\r\n const [isInitialized, setIsInitialized] = useSafeState(unmountRef, false);\r\n\r\n useEffect(() => {\r\n //ここに通常更新時のロジックを書く\r\n var list = [];\r\n if (jsonData) {\r\n for (var i = 0; i < jsonData.length; i++) {\r\n const val = jsonData[i][valuesFieldName];\r\n list.push(\r\n \r\n );\r\n }\r\n }\r\n setItems(list);\r\n setIsInitialized(true);\r\n return function cleanup() {\r\n //ここにはUnmount時のロジックを書く\r\n };\r\n }, [jsonData]);\r\n\r\n return (\r\n \r\n {isInitialized && (\r\n \r\n {props.children}\r\n {items && items}\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport InputBase from \"@material-ui/core/InputBase\";\r\nimport {\r\n FormControl,\r\n FormHelperText,\r\n InputLabel,\r\n makeStyles,\r\n} from \"@material-ui/core\";\r\n\r\nexport const BootstrapInput = withStyles((theme) => ({\r\n root: {\r\n \"label + &\": {\r\n marginTop: theme.spacing(2),\r\n },\r\n \"& ~ p\": {\r\n marginTop: \"-15px\",\r\n },\r\n },\r\n input: {\r\n borderRadius: 4,\r\n position: \"relative\",\r\n backgroundColor: theme.palette.background.paper,\r\n border: \"1px solid #ced4da\",\r\n fontSize: 16,\r\n padding: \"10px 26px 10px 12px\",\r\n margin: \"5px 5px 5px 0px\",\r\n transition: theme.transitions.create([\"border-color\", \"box-shadow\"]),\r\n // Use the system font instead of the default Roboto font.\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 \"&:focus\": {\r\n borderRadius: 4,\r\n borderColor: \"#80bdff\",\r\n boxShadow: \"0 0 0 0.2rem rgba(0,123,255,.25)\",\r\n },\r\n },\r\n}))(InputBase);\r\n\r\nconst useStyles = makeStyles({\r\n shrink: {\r\n width: \"125%\",\r\n textAlign: \"left\",\r\n },\r\n});\r\n\r\nexport function BootstrapInputWithLabel(props) {\r\n const { fullWidth, label, helperText, required, ...other } = props;\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n {props.children}\r\n {helperText && (\r\n \r\n {helperText}\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useCallback, useEffect } from \"react\";\r\nimport { Collapse, Grid, MenuItem, Select } from \"@material-ui/core\";\r\nimport {\r\n ApiGetHospitals,\r\n ApiGetMyDepts,\r\n ApiGetTimeTables,\r\n ApiSearchDept,\r\n} from \"components/api/HospitalApi\";\r\nimport DropDownListNative from \"components/input/selectlist/DropDownListNative\";\r\nimport { BootstrapInput } from \"components/input/textbox/BootstrapInput\";\r\n\r\n/**\r\n * 病院を選択するセレクトリストです。\r\n * @param {Object} props - 基本的にSelectに準じます\r\n */\r\nexport function HospitalSelectList(props) {\r\n const unmountRef = useUnmountRef();\r\n const [hospitals, setHospitals] = useSafeState(unmountRef, null);\r\n\r\n async function GetHospitals() {\r\n await ApiGetHospitals()\r\n .then(function (response) {\r\n setHospitals(response);\r\n })\r\n .catch(function () {\r\n //setError(\"summary\", { type: \"manual\", message: GetErrMsg(ErrMsgKey.unexpected) });\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n GetHospitals();\r\n };\r\n f();\r\n }, []);\r\n\r\n return (\r\n <>\r\n {hospitals && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\n/**\r\n * 病院に紐づく予約項目を選択するセレクトリストです。\r\n * @param {Object} props - 基本的にSelectに準じます\r\n */\r\nexport function HospitalDeptWithHospitalSelectList(props) {\r\n const unmountRef = useUnmountRef();\r\n const { hid, children, ...others } = props;\r\n const [depts, setDepts] = useSafeState(unmountRef, null);\r\n\r\n async function GetDepts() {\r\n if (hid) {\r\n //let values = searchCondition;\r\n //if (hospitalId) {\r\n // values['hospitalid'] = hospitalId;\r\n //}\r\n let values = {};\r\n values[\"hospitalid\"] = hid;\r\n values[\"getDeleted\"] = false;\r\n await ApiSearchDept(new URLSearchParams(values))\r\n .then(function (response) {\r\n setDepts(response.data);\r\n })\r\n .catch(function () {\r\n //setError(\"summary\", { type: \"manual\", message: GetErrMsg(ErrMsgKey.unexpected) });\r\n });\r\n }\r\n }\r\n useEffect(() => {\r\n const f = async () => {\r\n GetDepts();\r\n };\r\n f();\r\n }, [hid]);\r\n // useEffect(() => {\r\n // console.log(props.defaultValue);\r\n // console.log(depts)\r\n // })\r\n\r\n return (\r\n <>\r\n {depts && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\n/**\r\n * 予約項目を選択するセレクトリストです。\r\n * @param {Object} props - 基本的にDropDownListNativeに準じます\r\n * @param {string} props.deptId - 予約項目の初期値\r\n */\r\nexport function MyDeptsSelectList(props) {\r\n const unmountRef = useUnmountRef();\r\n const [depts, setDepts] = useSafeState(unmountRef, null);\r\n const { deptId, ...other } = props;\r\n\r\n async function GetDepts() {\r\n await ApiGetMyDepts()\r\n .then(function (response) {\r\n setDepts(response);\r\n })\r\n .catch(function () {\r\n //setError(\"summary\", { type: \"manual\", message: GetErrMsg(ErrMsgKey.unexpected) });\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n GetDepts();\r\n };\r\n f();\r\n }, []);\r\n\r\n return (\r\n }\r\n {...other}\r\n >\r\n {props.children}\r\n \r\n );\r\n}\r\n\r\n/**\r\n * 時間枠を選択するセレクトリストです。\r\n * @param {Object} props - 基本的にDropDownListNativeに準じます\r\n * @param {string} props.hospitalId - 時間枠を取得する医療機関のId\r\n * @param {string} props.deptId - 時間枠を取得する予約項目のId\r\n * @param {int} props.date - 時間枠を取得する対象の日\r\n * @param {boolean} props.isShowAll - 「全ての時間帯」の選択肢を表示するかどうか\r\n */\r\nexport function TimeTableSelectList(props) {\r\n const unmountRef = useUnmountRef();\r\n const [val, setVal] = useSafeState(unmountRef, \"\");\r\n const [timeTables, setTimeTables] = useSafeState(unmountRef, null);\r\n const {\r\n hospitalId,\r\n deptId,\r\n date,\r\n value,\r\n onTimeTableChange,\r\n isShowAll,\r\n ...other\r\n } = props;\r\n\r\n async function GetTimeTable() {\r\n if (!hospitalId && !deptId) {\r\n setTimeTables(null);\r\n return;\r\n }\r\n\r\n await ApiGetTimeTables(null, hospitalId, deptId, date)\r\n .then(function (response) {\r\n setTimeTables(response);\r\n })\r\n .catch(function () {\r\n //setError(\"summary\", { type: \"manual\", message: GetErrMsg(ErrMsgKey.unexpected) });\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n GetTimeTable();\r\n }, [hospitalId, deptId, date]);\r\n\r\n useEffect(() => {\r\n onTimeTableChange(timeTables);\r\n }, [timeTables]);\r\n\r\n useEffect(() => {\r\n setVal(value);\r\n }, [value]);\r\n\r\n return (\r\n }\r\n value={val ? val : \"\"}\r\n {...other}\r\n >\r\n {props.children}\r\n {isShowAll && }\r\n \r\n );\r\n}\r\n\r\n/**\r\n * 予約項目の一覧と時間枠の一覧を2つのセレクトリストから選択するコンポーネントです。\r\n * @param {Object} props\r\n * @param {string} hospitalId - 対象の医療機関ID\r\n * @param {string} deptId - 対象の予約項目ID\r\n * @param {Date} date - 対象の日付\r\n * @param {boolean} isShowAllTime - 「全ての時間帯」を表示する\r\n * @param {boolean} isShowAllDept - 「全ての予約項目」を表示する\r\n * @param {boolean} isShowPlzSelectTime - 時間帯の「選択してください」を表示する\r\n * @param {String} props.nameOfDeptSelect - 予約項目のセレクトリストのname 規定値はdeptId\r\n * @param {String} props.nameOfTimeTableSelect - 時間枠のセレクトリストのname 規定値はtimeTableId\r\n * @param {Enumerator} props.direction - Gridのdirection row | row-reverse | column | column-reverse\r\n * @param {int} props.spacing - Gridのspacing\r\n */\r\nexport function HospitalDeptTimeTableSelectList(props) {\r\n const unmountRef = useUnmountRef();\r\n const {\r\n hospitalId,\r\n deptId,\r\n date,\r\n time,\r\n isShowAllTime,\r\n isShowPlzSelectTime,\r\n isShowAllDept,\r\n fullWidthDept,\r\n fullWidthTime,\r\n nameOfDeptSelect,\r\n nameOfTimeTableSelect,\r\n onSelectedDeptChange,\r\n onSelectedTimeChange,\r\n onTimeTableChange,\r\n collapseTimeIfDeptNotSelected,\r\n inputRef,\r\n ...other\r\n } = props;\r\n const [deptValue, setDeptValue] = useSafeState(unmountRef, \"\");\r\n\r\n useEffect(() => {\r\n if (deptId) setDeptValue(deptId);\r\n }, [deptId]);\r\n\r\n useEffect(() => {\r\n onSelectedDeptChange(deptValue);\r\n }, [deptValue]);\r\n\r\n const onHospitalDeptChange = useCallback((e) => {\r\n setDeptValue(e.target.value);\r\n });\r\n\r\n useEffect(() => {}, []);\r\n\r\n return (\r\n \r\n \r\n \r\n {!isShowAllDept && }\r\n {isShowAllDept && }\r\n \r\n \r\n \r\n \r\n \r\n {isShowPlzSelectTime && }\r\n \r\n \r\n \r\n \r\n );\r\n}","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Select from \"@material-ui/core/Select\";\r\n// import SnackbarAlert from 'components/alert/SnackbarAlert';\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport axios from \"axios\";\r\nimport * as yup from \"yup\";\r\nimport {\r\n ErrMsgKey,\r\n GetErrMsg,\r\n ErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n minWidth: 120,\r\n width: \"100%\",\r\n textAlign: \"left\",\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\n/**\r\n * 役割のセレクトリストを返します。\r\n * @module RoleSelectList\r\n * @example\r\n * 「ConactMain」のMstDivisionsSelectListの使い方と一緒の想定\r\n function addSchemaDataFunc(id, value, state){\r\n state[id] = value;\r\n return state;\r\n }\r\n const addSchemaData = (id, value) => {\r\n setSchemaData(addSchemaDataFunc(id,value,schemaData));\r\n };\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n \r\n\r\n * @param {Object} props - 指定の引数以外は受け取れません。\r\n * @param {string} props.selected - 初期選択値\r\n * @param {bool} props.dispnone - 選択肢「なし」の表示可否\r\n * @param {function} props.addSchemaData - yupスキーマを追加する処理\r\n * @param {bool} props.required - 必須の場合true\r\n * @param {bool} props.inputRef - refを設定\r\n * @param {string} props.variant - 表示のスタイル\r\n * @param {string} props.name - name\r\n * @param {string} props.label - 項目名\r\n * @param {errors} props.errors - エラーがある\r\n * @param {bool} props.readOnly - 読み取り専用\r\n * @param {bool} props.setvalue - stateを変更する処理\r\n * @param {bool} props.dispAdmin - stateを変更する処理\r\n */\r\nexport default function RoleSelectList(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const {\r\n selected,\r\n dispnone,\r\n addSchemaData,\r\n required,\r\n inputRef,\r\n variant,\r\n name,\r\n label,\r\n errors,\r\n readOnly,\r\n setvalue,\r\n dispAdmin,\r\n } = props;\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n const [dataSelected, setDataSelected] = useSafeState(unmountRef, selected);\r\n const [roleData, setRoleData] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n );\r\n\r\n // ドロップダウンリスト変更時の処理\r\n const handleChange = (event) => {\r\n setDataSelected(event.target.value);\r\n };\r\n\r\n const handleSnackbarClose = (event) => {\r\n setOpen(false);\r\n };\r\n\r\n async function GetRoles() {\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/roles\", {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (json) {\r\n // 正常の場合\r\n // ドロップダウンを設定\r\n if (dispAdmin !== true) {\r\n // for (let i = 0; i < json.data.length; i++) {\r\n // console.log(json.data[i]);\r\n // }\r\n }\r\n setRoleData(json.data);\r\n // 初期値が設定されていない場合、一件目を初期値とする。\r\n dispnone === false && !dataSelected && setDataSelected(json.data[0].id);\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetSelectItems error\", error);\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n // Roleの一覧を取得\r\n GetRoles();\r\n\r\n addSchemaData &&\r\n (required\r\n ? // 必須チェック\r\n addSchemaData(\r\n name,\r\n yup.string().required(GetErrMsg(ErrMsgKey.required))\r\n )\r\n : // 必須チェックなし\r\n addSchemaData(name, yup.string()));\r\n };\r\n f();\r\n }, []);\r\n\r\n useEffect(() => {\r\n // refを引き渡せないmaterialUiのコンポーネントをregisterに設定する\r\n inputRef && inputRef(name); // custom register Antd input\r\n }, [inputRef]);\r\n\r\n useEffect(() => {\r\n setvalue && setvalue(name, dataSelected);\r\n }, [dataSelected]);\r\n\r\n return (\r\n
\r\n {/* */}\r\n \r\n {msg}\r\n \r\n \r\n {required ? (\r\n \r\n {label}\r\n \r\n ) : (\r\n {label}\r\n )}\r\n \r\n {dispnone === true && (\r\n \r\n なし\r\n \r\n )}\r\n {roleData &&\r\n roleData.map((item, index) => (\r\n \r\n {item.name}\r\n \r\n ))}\r\n \r\n \r\n {errors && (\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","/**\r\n * @file ユーザー編集画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport {\r\n Box,\r\n FormControl,\r\n Grid,\r\n InputLabel,\r\n MenuItem,\r\n TextField,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport {\r\n HospitalDeptWithHospitalSelectList,\r\n HospitalSelectList,\r\n} from \"components/input/selectlist/HospitalSelectList\";\r\nimport RoleSelectList from \"components/input/selectlist/RoleSelectList\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport * as yup from \"yup\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport clsx from \"clsx\";\r\nimport ManageMenuPaper from \"components/paper/ManageMenuPaper\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n paddingTop: 0,\r\n },\r\n textField: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n}));\r\n// state更新用の関数\r\nfunction addSchemaDataFunc(id, value, state) {\r\n state[id] = value;\r\n return state;\r\n}\r\nfunction delSchemaDataFunc(id, state) {\r\n delete state[id];\r\n return state;\r\n}\r\n\r\nexport default function UserEdit() {\r\n const unmountRef = useUnmountRef();\r\n\r\n // 入ってたら編集モード\r\n const { userId } = useParams();\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n const [user, setUser] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n );\r\n const [dispPtn, setDispPtn] = useSafeState(unmountRef, undefined);\r\n const [roleClaims, setRoleClaims] = useSafeState(unmountRef, undefined);\r\n\r\n const userctx = useContext(UserContext);\r\n const msgctx = useContext(MessageContext);\r\n const [canDelete, setCanDelete] = useSafeState(unmountRef, false);\r\n\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useSafeState(\r\n unmountRef,\r\n false\r\n ); // 削除確認のダイアログ開閉\r\n const [confirmMsg, setConfirmMsg] = useSafeState(unmountRef);\r\n const [toggleDeleteUrl, setToggleDeleteUrl] = useSafeState(unmountRef);\r\n const { history } = useReactRouter();\r\n\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n contactPersonName: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n email: yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .email(GetErrMsg(ErrMsgKey.email)),\r\n roleId: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const {\r\n unregister,\r\n register,\r\n handleSubmit,\r\n errors,\r\n setValue,\r\n getValues,\r\n watch,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n // ダイアログ表示\r\n const dialogOpen = (msg) => {\r\n setConfirmMsg(msg);\r\n setConfirmDialogOpen(true);\r\n };\r\n // ダイアログを消す\r\n const dialogClose = () => {\r\n setConfirmDialogOpen(false);\r\n };\r\n\r\n // 選択したロールのクレームを取得する\r\n const getRoleClaims = useCallback(async (roleId) => {\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/roleclaims?roleId=\" + roleId, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n setRoleClaims(response.data);\r\n })\r\n .catch(function () {\r\n console.log(\"getRoleClaims error\");\r\n });\r\n });\r\n\r\n async function GetUser() {\r\n let isSuccess = false;\r\n // const queryString = new URLSearchParams(new FormData(document.getElementById('search-form')));\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/users?GetDeleted=true&id=\" + userId, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setMsg(json.message);\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n } else {\r\n // setUserName(json.data[0].user.name);\r\n // console.log(json.data[0]);\r\n if (json.data.length === 0) {\r\n history.replace(\"/admin\");\r\n msgctx.enqueueNotClose(\r\n GetErrMsg(ErrMsgKey.checkHospitalDept),\r\n \"error\"\r\n );\r\n }\r\n setUser(json.data[0]);\r\n // json.data[0].user && setValue('userName',json.data[0].user.userName);\r\n // json.data[0].email && setValue('email',json.data[0].user.email);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"getItem error\", error);\r\n });\r\n }\r\n\r\n // コンポーネント内でstateを変更するための処理\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n const delSchemaData = (id) => {\r\n setSchemaData(delSchemaDataFunc(id, schemaData));\r\n };\r\n // 普通にstateにセットすると、最後に実行されたもののみが処理される。\r\n // stateをfunctionを用いて更新することで、遅延評価時に順次実行されるっぽい。\r\n // https://career.levtech.jp/guide/knowhow/article/394/\r\n const addSchemaData = (id, value) => {\r\n setSchemaData(addSchemaDataFunc(id, value, schemaData));\r\n };\r\n\r\n // submit時処理\r\n async function onSubmit(values) {\r\n values[\"Id\"] = userId;\r\n\r\n const token = await authService.getAccessToken();\r\n axios\r\n .put(\"api/Users\", values, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(() => {\r\n // // 最新の履歴を置き換えることで、stateを消す。\r\n // history.goBack();\r\n setMsg(\"ユーザー情報を更新しました。\");\r\n setSnackbarSeverity(\"success\");\r\n setOpen(true);\r\n })\r\n .catch(() => {\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n }\r\n const handleSnackbarClose = () => {\r\n setOpen(false);\r\n };\r\n // ユーザー削除処理\r\n const ToggleDelete = useCallback(async () => {\r\n let values = {};\r\n values[\"id\"] = userId;\r\n const queryString = new URLSearchParams(values);\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .put(toggleDeleteUrl + \"?\" + queryString.toString(), null, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(() => {\r\n GetUser();\r\n })\r\n .catch(() => {\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n\r\n dialogClose();\r\n });\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n GetUser();\r\n };\r\n f();\r\n }, []);\r\n\r\n useEffect(() => {\r\n var value = getValues(\"roleId\");\r\n delSchemaData(\"hospitalId\");\r\n delSchemaData(\"deptId\");\r\n unregister(\"hospitalId\");\r\n unregister(\"deptId\");\r\n setDispPtn(undefined);\r\n if (value) {\r\n //選択したロールのクレームを取得\r\n getRoleClaims(value);\r\n }\r\n }, [watch(\"roleId\")]);\r\n\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n setCanDelete(userctx.hasClaim(Claims.User_Delete));\r\n }\r\n }, [userctx.claims]);\r\n\r\n useEffect(() => {\r\n // 選択したロールのクレームが取得できた場合処理する\r\n if (!roleClaims) {\r\n return;\r\n }\r\n var notHospital = roleClaims.find(\r\n (x) => x.claimType === Claims.Not_Require_Hospital_Id\r\n );\r\n var notHospitalDept = roleClaims.find(\r\n (x) => x.claimType === Claims.Not_Require_Hospital_Dept_Id\r\n );\r\n var hasAllClaims = roleClaims.find(\r\n (x) => x.claimType === Claims.Has_All_Claims\r\n );\r\n\r\n if (!notHospital && !hasAllClaims) {\r\n // 病院情報を表示する。\r\n // refに登録する\r\n register(\"hospitalId\");\r\n register(\"deptId\");\r\n // 初期値を設定しておく(空だとuncontrolled→controlledのエラーが発生する。)\r\n setValue(\"hospitalId\", user ? user.user.hospitalId : \"\");\r\n setValue(\"deptId\", user ? user.user.deptId : \"\");\r\n // setValue('deptId', '');\r\n\r\n addSchemaData(\r\n \"hospitalId\",\r\n yup.string().required(GetErrMsg(ErrMsgKey.required))\r\n );\r\n\r\n if (!notHospitalDept) {\r\n // 予約項目の紐づけが必要\r\n setDispPtn(1);\r\n addSchemaData(\r\n \"deptId\",\r\n yup.string().required(GetErrMsg(ErrMsgKey.required))\r\n );\r\n } else {\r\n setDispPtn(2);\r\n }\r\n } else {\r\n setDispPtn(undefined);\r\n }\r\n }, [roleClaims]);\r\n // useEffect(() => { console.log(getValues(\"hospitalId\")) }, [watch('hospitalId')])\r\n // useEffect(() => { console.log(getValues()) })\r\n\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n ユーザー 編集\r\n \r\n {/* */}\r\n \r\n {msg}\r\n \r\n \r\n \r\n\r\n {/* */}\r\n\r\n <>\r\n {user ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {user.role ? (\r\n <>\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n )}\r\n\r\n {\r\n // 病院との紐づけが必要な場合\r\n dispPtn && dispPtn >= 1 && (\r\n <>\r\n \r\n 医療機関\r\n {\r\n setValue(\"hospitalId\", e.target.value);\r\n }}\r\n >\r\n \r\n\r\n {watch(\"hospitalId\") && (\r\n \r\n {dispPtn === 1 ? (\r\n 予約項目\r\n ) : (\r\n 予約項目\r\n )}\r\n setValue(\"deptId\", e.target.value)}\r\n >\r\n {dispPtn === 2 && (\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 {canDelete ? (\r\n user.user.isDelete ? (\r\n {\r\n setToggleDeleteUrl(\"api/users/deletecancel\");\r\n dialogOpen(\"削除を取消してよろしいですか?\");\r\n }}\r\n isPaperInner={true}\r\n />\r\n ) : (\r\n {\r\n setToggleDeleteUrl(\"api/users/delete\");\r\n dialogOpen(\"削除してよろしいですか?\");\r\n }}\r\n isPaperInner={true}\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","import React from \"react\";\r\nimport { Grid, Modal } from \"@material-ui/core/\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport SearchButton from \"components/input/button/SearchButton\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\tmodal: {\r\n\t\tdisplay: \"flex\",\r\n\t\talignItems: \"center\",\r\n\t\tjustifyContent: \"center\",\r\n\t},\r\n\tsearch_root: {\r\n\t\tbackgroundColor: theme.palette.background.paper,\r\n\t\tboxShadow: theme.shadows[5],\r\n\t\toverflowY: \"auto\",\r\n\t\t[theme.breakpoints.down(\"xs\")]: {\r\n\t\t\tpadding: theme.spacing(2, 0, 2),\r\n\t\t\twidth: \"90vw\",\r\n\t\t\theight: \"80vh\",\r\n\t\t},\r\n\t\t[theme.breakpoints.up(\"sm\")]: {\r\n\t\t\twidth: \"80vw\",\r\n\t\t\theight: \"80vh\",\r\n\t\t\tpadding: theme.spacing(2, 1, 2),\r\n\t\t},\r\n\t\t[theme.breakpoints.up(\"md\")]: {\r\n\t\t\twidth: \"60vw\",\r\n\t\t\theight: \"80vh\",\r\n\t\t\tpadding: theme.spacing(2, 4, 2),\r\n\t\t},\r\n\t},\r\n\t// form: {\r\n\t// }\r\n}));\r\n\r\nexport default function SearchModal(props) {\r\n\tconst { inputs, open, onClose, onSubmit } = props;\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{inputs}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n}\r\n","/**\r\n * @file ユーザー一覧画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n Fab,\r\n FormControl,\r\n Grid,\r\n InputLabel,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n MenuItem,\r\n TableRow,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Add, Edit, Search, VerifiedUser, VpnKey } from \"@material-ui/icons\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { sessionStorageKeys } from \"components/common/Const\";\r\nimport ListTitleDrawer from \"components/drawer/ListTitleDrawer\";\r\nimport LinkFab from \"components/input/button/LinkFab\";\r\nimport {\r\n HospitalDeptWithHospitalSelectList,\r\n HospitalSelectList,\r\n} from \"components/input/selectlist/HospitalSelectList\";\r\nimport RoleSelectList from \"components/input/selectlist/RoleSelectList\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport SearchInputGrid from \"components/input/textbox/SearchInputGrid\";\r\nimport SearchModal from \"components/modal/SearchModal\";\r\nimport PagenationTable2 from \"components/table/PagenationTable2\";\r\nimport { TableHeaderCell } from \"components/table/TableHeaderCell\";\r\nimport TableSkeleton from \"components/table/TableSkeleton\";\r\nimport ListText from \"components/text/ListText\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport { Link } from \"react-router-dom\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { TableCellBorderSpace } from \"components/table/TableCellNoBorder\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n edit_button: {\r\n marginRight: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function Users() {\r\n const unmountRef = useUnmountRef();\r\n /* ステート,コンテキスト等 */\r\n const classes = useStyles();\r\n const userctx = useContext(UserContext);\r\n const [itemData, setItemData] = useSafeState(unmountRef, null); // ユーザー一覧\r\n const [, setDrawerOpen] = useSafeState(unmountRef, false); // メニュードロワーの開閉\r\n const [searchModalOpen, setSearchModalOpen] = useSafeState(unmountRef, false); // 検索モーダルの開閉\r\n const MyComponent = React.forwardRef(LinkFab); // LinkFabにrefが渡せなくてエラーになるため、refを渡すようにする。\r\n const [refreshTable, setRefreshTable] = useSafeState(unmountRef, false); // PagenationTableにデータ再取得させるためのフラグ\r\n\r\n const [userName, setUserName] = useSafeState(unmountRef, undefined); // 検索ユーザー名\r\n const [roleId, setRoleId] = useSafeState(unmountRef, undefined); // 検索役割\r\n const [hospitalId, setHospitalId] = useSafeState(unmountRef, undefined); // 検索病院ID\r\n const [deptId, setDeptId] = useSafeState(unmountRef, undefined); // 検索予約項目ID\r\n const [getDeleted, setGetDeleted] = useSafeState(unmountRef, false); // 検索削除データ\r\n\r\n const [canCreate, setCanCreate] = useSafeState(unmountRef, false);\r\n const [canEdit, setCanEdit] = useSafeState(unmountRef, false);\r\n const [canClaimsEdit, setCanClaimsEdit] = useSafeState(unmountRef, false);\r\n\r\n const { location } = useReactRouter();\r\n const pushRoot =\r\n location.pathname.indexOf(\"/manage/\") !== -1 ? \"/manage\" : \"/admin\";\r\n\r\n /* 関数 */\r\n // 検索モーダルオープン\r\n const handleSearchModalOpen = () => {\r\n setSearchModalOpen(true);\r\n };\r\n // 検索モーダルクローズ\r\n const handleSearchModalClose = () => {\r\n setSearchModalOpen(false);\r\n };\r\n // ユーザー一覧取得\r\n const GetUsers = useCallback(async (skip, take) => {\r\n let getUrl;\r\n\r\n let values = {};\r\n if (userName) {\r\n values[\"userName\"] = userName;\r\n }\r\n if (roleId) {\r\n values[\"roleId\"] = roleId;\r\n }\r\n if (hospitalId) {\r\n values[\"hospitalId\"] = hospitalId;\r\n }\r\n if (deptId) {\r\n values[\"deptId\"] = deptId;\r\n }\r\n if (getDeleted) {\r\n values[\"getDeleted\"] = getDeleted;\r\n }\r\n\r\n getUrl =\r\n \"api/users?\" +\r\n new URLSearchParams(values) +\r\n \"&offset=\" +\r\n skip +\r\n \"&take=\" +\r\n take +\r\n \"&requireAllCount=true\";\r\n setSearchModalOpen(false);\r\n const token = await authService.getAccessToken();\r\n return await axios\r\n .get(getUrl, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n setItemData(response.data);\r\n return response;\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetUsers error\", error);\r\n return undefined;\r\n });\r\n });\r\n // ユーザー検索処理\r\n const SearchUsers = () => {\r\n setRefreshTable(!refreshTable);\r\n return \"\";\r\n };\r\n\r\n // 検索モーダルでの入力値をstateに保持する\r\n const changeName = useCallback((name, value) => {\r\n setUserName(value);\r\n });\r\n // 検索モーダルでの入力値をstateに保持する\r\n const changeRole = useCallback((id, val) => {\r\n setRoleId(val);\r\n });\r\n // 検索モーダルでの入力値をstateに保持する\r\n const changeHospitalId = useCallback((e) => {\r\n setHospitalId(e.target.value);\r\n setDeptId(undefined);\r\n });\r\n // 検索モーダルでの入力値をstateに保持する\r\n const changeDeptId = useCallback((e) => {\r\n setDeptId(e.target.value);\r\n });\r\n // 検索モーダルでの入力値をstateに保持する\r\n const changeGetDeleted = useCallback((id, val) => {\r\n setGetDeleted(val);\r\n });\r\n\r\n // 一覧テーブルのヘッダ\r\n const tableHeaderDef = useCallback(() => {\r\n return (\r\n <>\r\n \r\n ユーザー名\r\n \r\n \r\n 氏名\r\n \r\n \r\n mail\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 const tableBodyDef = useCallback(() => {\r\n return (\r\n <>\r\n {itemData ? (\r\n itemData.map((item, index) => (\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 {canEdit && (\r\n \r\n \r\n \r\n 編集\r\n \r\n \r\n )}\r\n {canClaimsEdit && (\r\n \r\n \r\n \r\n 権限管理\r\n \r\n \r\n )}\r\n {userctx && userctx.hasClaim(Claims.Change_Password_Others) && (\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 const buttonsDef = [\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n // タイトル横リストの定義\r\n const listsDef = [\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n setCanCreate(userctx.hasClaim(Claims.User_Create));\r\n setCanEdit(userctx.hasClaim(Claims.User_Edit));\r\n setCanClaimsEdit(userctx.hasClaim(Claims.UserClaims_Edit));\r\n }\r\n }, [userctx.claims]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n ユーザー 管理}\r\n buttons={buttonsDef}\r\n lists={listsDef}\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 {hospitalId && (\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 * @file 医療機関管理画面 (一覧画面)\r\n */\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n Fab,\r\n Grid,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n TableCell,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n Add,\r\n Assignment,\r\n Edit,\r\n Event,\r\n Schedule,\r\n Search,\r\n ViewModule,\r\n} from \"@material-ui/icons\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport { GetDivisions } from \"components/api/DivisionsApi\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { sessionStorageKeys } from \"components/common/Const\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport ListTitleDrawer from \"components/drawer/ListTitleDrawer\";\r\nimport LinkFab from \"components/input/button/LinkFab\";\r\nimport MstDivisionsSelectList from \"components/input/selectlist/MstDivisionsSelectList\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport SearchInputGrid from \"components/input/textbox/SearchInputGrid\";\r\nimport SearchModal from \"components/modal/SearchModal\";\r\nimport PagenationTable2 from \"components/table/PagenationTable2\";\r\nimport { TableBorderedRow } from \"components/table/TableBorderedRow\";\r\nimport { TableHeaderCell } from \"components/table/TableHeaderCell\";\r\nimport TableSkeleton from \"components/table/TableSkeleton\";\r\nimport ListText from \"components/text/ListText\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { GetHospitalAddressTxt } from \"components/common/AddressHelper\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n edit_button: {\r\n marginRight: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function Hospitals() {\r\n /* ステート,コンテキスト等 */\r\n const classes = useStyles();\r\n const userctx = useContext(UserContext);\r\n\r\n const unmountRef = useUnmountRef();\r\n // const [state, setState] = useSafeState(unmountRef, { stateの初期値 });\r\n\r\n const [, setErrorMessage] = useSafeState(unmountRef, \"\"); // エラーメッセージ\r\n const [itemData, setItemData] = useSafeState(unmountRef, null); // 医療機関一覧\r\n const [searchModalOpen, setSearchModalOpen] = useSafeState(unmountRef, false); // 検索モーダルの開閉\r\n const MyComponent = React.forwardRef(LinkFab); // LinkFabにrefが渡せなくてエラーになるため、refを渡すようにする。\r\n const [refreshTable, setRefreshTable] = useSafeState(unmountRef, false); // PagenationTableにデータ再取得させるためのフラグ\r\n\r\n const [hospitalKindData, setHospitalKindData] = useSafeState(\r\n unmountRef,\r\n null\r\n ); // 医療機関種別\r\n const [prefNameData, setPrefNameData] = useSafeState(unmountRef, null); // 県名\r\n\r\n const [canCreate, setCanCreate] = useSafeState(unmountRef, false);\r\n const [canEdit, setCanEdit] = useSafeState(unmountRef, false);\r\n const [searchCondition, setSearchCondition] = useSafeState(unmountRef, {\r\n getDeleted: false,\r\n });\r\n\r\n const createUrl = \"/admin/hospitals/create\";\r\n\r\n /* 関数 */\r\n // 検索モーダルオープン\r\n const handleSearchModalOpen = () => {\r\n setSearchModalOpen(true);\r\n };\r\n // 検索モーダルクローズ\r\n const handleSearchModalClose = () => {\r\n setSearchModalOpen(false);\r\n };\r\n // 一覧取得\r\n const GetDatas = useCallback(async (skip, take) => {\r\n let getUrl;\r\n\r\n let values = searchCondition;\r\n if (!Object.keys(values).length) {\r\n values[\"id\"] = \"\";\r\n }\r\n\r\n getUrl =\r\n \"api/hospitals/search?\" +\r\n new URLSearchParams(values) +\r\n \"&offset=\" +\r\n skip +\r\n \"&take=\" +\r\n take +\r\n \"&requireAllCount=true\";\r\n setSearchModalOpen(false);\r\n const token = await authService.getAccessToken();\r\n return await axios\r\n .get(getUrl, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n setItemData(response.data);\r\n return response;\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetUsers error\", error);\r\n return undefined;\r\n });\r\n });\r\n // 検索処理\r\n const SearchAction = () => {\r\n setRefreshTable(!refreshTable);\r\n return \"\";\r\n };\r\n\r\n const changeSearchCondition = useCallback((id, val) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[id] = val;\r\n setSearchCondition(cloned);\r\n });\r\n const changeGetDeleted = useCallback((e) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[\"getDeleted\"] = e.target.checked;\r\n setSearchCondition(cloned);\r\n });\r\n\r\n // 一覧テーブルのヘッダ\r\n const tableHeaderDef = useCallback(() => {\r\n return (\r\n <>\r\n {/* // TODO 時間があったら、スマホ表示等で項目を絞る(横スライドを減らしたい。 */}\r\n {/* \r\n\t\t\t\t\tId\r\n\t\t\t\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 \r\n \r\n 住所\r\n \r\n \r\n 電話番号\r\n \r\n \r\n Email\r\n \r\n \r\n );\r\n });\r\n // 一覧テーブルのボディー\r\n const tableBodyDef = useCallback(() => {\r\n return (\r\n <>\r\n {itemData ? (\r\n itemData.map((item, index) => (\r\n \r\n {/* \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t */}\r\n \r\n \r\n \r\n\r\n \r\n {canEdit && (\r\n \r\n \r\n \r\n 編集\r\n \r\n \r\n )}\r\n {userctx.claims && userctx.hasClaim(Claims.Holiday_Read) && (\r\n \r\n \r\n \r\n 休診設定\r\n \r\n \r\n )}\r\n {userctx.claims &&\r\n userctx.hasClaim(Claims.Common_Time_Table_Read) && (\r\n \r\n \r\n \r\n 予約枠設定\r\n \r\n \r\n )}\r\n {userctx.claims && userctx.hasClaim(Claims.Hospital_Dept_Read) && (\r\n \r\n \r\n \r\n 予約項目管理\r\n \r\n \r\n )}\r\n {/* とりあえず一旦コメントアウト */}\r\n {/* {userctx.claims && userctx.hasClaim(Claims.Doctor_Read) && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t所属医師管理\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)} */}\r\n {userctx.claims && userctx.hasClaim(Claims.Calendar_Read) && (\r\n \r\n \r\n \r\n カレンダー\r\n \r\n \r\n )}\r\n \r\n \r\n {hospitalKindData && (\r\n \r\n )}\r\n \r\n \r\n {item.prefName ? (\r\n \r\n ) : (\r\n prefNameData && (\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 const buttonsDef = [\r\n userctx.claims && userctx.hasClaim(Claims.Manage_All_Hospitals) && (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n // タイトル横リストの定義\r\n const listsDef = [\r\n userctx.claims && userctx.hasClaim(Claims.Manage_All_Hospitals) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n try {\r\n GetDivisions(\"hospitalKind\", setHospitalKindData);\r\n GetDivisions(\"prefCd\", setPrefNameData);\r\n } catch (error) {\r\n setErrorMessage(\r\n \"エラーが発生しました。時間をおいて再度実行してください。\"\r\n );\r\n }\r\n };\r\n f();\r\n }, []);\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n setCanCreate(userctx.hasClaim(Claims.Hospital_Create));\r\n setCanEdit(userctx.hasClaim(Claims.Hospital_Edit));\r\n }\r\n }, [userctx.claims]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n 医療機関 管理}\r\n buttons={buttonsDef}\r\n lists={listsDef}\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 * @file 予約項目管理画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport {\r\n Box,\r\n Button,\r\n Fab,\r\n Grid,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n TableRow,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { Add, Edit, Search, ViewModule } from \"@material-ui/icons\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport LinkFab from \"components/input/button/LinkFab\";\r\nimport SearchInputGrid from \"components/input/textbox/SearchInputGrid\";\r\nimport PagenationTable2 from \"components/table/PagenationTable2\";\r\nimport { TableHeaderCell } from \"components/table/TableHeaderCell\";\r\nimport TableSkeleton from \"components/table/TableSkeleton\";\r\nimport TitleWithSubTitleText from \"components/text/TitleWithSubTitleText\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport qs from \"qs\";\r\nimport ListTitleDrawer from \"components/drawer/ListTitleDrawer\";\r\nimport SearchModal from \"components/modal/SearchModal\";\r\nimport ListText from \"components/text/ListText\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport { ApiSearchDept } from \"components/api/HospitalApi\";\r\nimport { sessionStorageKeys } from \"components/common/Const\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { TableCellBorderSpace } from \"components/table/TableCellNoBorder\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n edit_button: {\r\n marginRight: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function HospitalDepts(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const hospitalId = qs.parse(props.location.search, {\r\n ignoreQueryPrefix: true,\r\n }).hospitalid; // 医療機関ID\r\n\r\n /* ステート,コンテキスト等 */\r\n const classes = useStyles();\r\n const userctx = useContext(UserContext);\r\n const { location } = useReactRouter();\r\n const [hospitalName, setHospitalName] = useSafeState(unmountRef, undefined);\r\n const [itemData, setItemData] = useSafeState(unmountRef, null); // 予約項目一覧\r\n const [searchModalOpen, setSearchModalOpen] = useSafeState(unmountRef, false); // 検索モーダルの開閉\r\n const MyComponent = React.forwardRef(LinkFab); // LinkFabにrefが渡せなくてエラーになるため、refを渡すようにする。\r\n const [refreshTable, setRefreshTable] = useSafeState(unmountRef, false); // PagenationTableにデータ再取得させるためのフラグ\r\n\r\n const [canCreate, setCanCreate] = useSafeState(unmountRef, false);\r\n const [canEdit, setCanEdit] = useSafeState(unmountRef, false);\r\n const [searchCondition, setSearchCondition] = useSafeState(unmountRef, {\r\n getDeleted: false,\r\n });\r\n\r\n const pushRoot =\r\n location.pathname.indexOf(\"/manage/\") !== -1 ? \"/manage\" : \"/admin\";\r\n\r\n /* 関数 */\r\n // 検索モーダルオープン\r\n const handleSearchModalOpen = () => {\r\n setSearchModalOpen(true);\r\n };\r\n // 検索モーダルクローズ\r\n const handleSearchModalClose = () => {\r\n setSearchModalOpen(false);\r\n };\r\n\r\n async function GetHospitalData() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/hospitals/search?isGetImage=false&id=\" + hospitalId, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n } else {\r\n setHospitalName(json.data[0].name);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetHospitalData error\", error);\r\n });\r\n }\r\n\r\n // 一覧取得\r\n const GetDatas = useCallback(async (skip, take) => {\r\n let values = searchCondition;\r\n if (hospitalId) {\r\n values[\"hospitalid\"] = hospitalId;\r\n }\r\n values[\"offset\"] = skip;\r\n values[\"take\"] = take;\r\n values[\"requireAllCount\"] = true;\r\n\r\n setSearchModalOpen(false);\r\n\r\n return await ApiSearchDept(new URLSearchParams(values))\r\n .then(function (response) {\r\n setItemData(response.data);\r\n return response;\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetDatas error\", error);\r\n return undefined;\r\n });\r\n });\r\n // 検索処理\r\n const SearchAction = () => {\r\n setRefreshTable(!refreshTable);\r\n return \"\";\r\n };\r\n\r\n const changeSearchCondition = useCallback((id, val) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[id] = val;\r\n setSearchCondition(cloned);\r\n });\r\n const changeGetDeleted = useCallback((e) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[\"getDeleted\"] = e.target.checked;\r\n setSearchCondition(cloned);\r\n });\r\n\r\n // 一覧テーブルのヘッダ\r\n const tableHeaderDef = useCallback(() => {\r\n return (\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 const tableBodyDef = useCallback(() => {\r\n return (\r\n <>\r\n {itemData ? (\r\n itemData.map((item, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {canEdit && (\r\n \r\n \r\n \r\n 編集\r\n \r\n \r\n )}\r\n {userctx.claims && userctx.hasClaim(Claims.Time_Table_Read) && (\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 const buttonsDef = [\r\n userctx.claims && userctx.hasClaim(Claims.Manage_All_Depts) && (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n // タイトル横リストの定義\r\n const listsDef = [\r\n userctx.claims && userctx.hasClaim(Claims.Manage_All_Depts) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n\r\n useEffect(() => {\r\n GetHospitalData();\r\n\r\n // console.log(location.pathname);\r\n // console.log(location.pathname.indexOf(\"/manage/\"));\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n setCanCreate(userctx.hasClaim(Claims.Hospital_Dept_Create));\r\n setCanEdit(userctx.hasClaim(Claims.Hospital_Dept_Edit));\r\n }\r\n }, [userctx.claims]);\r\n\r\n useEffect(() => {\r\n if (userctx.user) {\r\n userctx.checkHospitalDept(hospitalId, undefined);\r\n }\r\n }, [userctx.user]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n buttons={buttonsDef}\r\n lists={listsDef}\r\n />\r\n \r\n {!hospitalId && (\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","import imageCompression from \"browser-image-compression\";\r\nimport { imageConst } from \"components/common/Const\";\r\n\r\nexport default async function ImageCompressor(images, compressSize) {\r\n const compSize = compressSize\r\n ? compressSize\r\n : imageConst.hospital_image_compress_size;\r\n const compressOptions = {\r\n // 3MB以下に圧縮する\r\n maxSizeMB: compSize,\r\n // maxWidthOrHeight: 400 //最大画像幅もしくは高さ\r\n };\r\n\r\n return await Promise.all(\r\n images.map(async (image) => {\r\n return {\r\n blob:\r\n image.size > compSize * 1000000\r\n ? await imageCompression(image, compressOptions)\r\n : image,\r\n name: image.name,\r\n };\r\n })\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport {\r\n Button,\r\n FormLabel,\r\n Grid,\r\n Hidden,\r\n IconButton,\r\n Tooltip,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { AddAPhoto, Clear, HighlightOff } from \"@material-ui/icons\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n img: {\r\n width: \"100%\",\r\n maxWidth: \"100%\",\r\n maxHeight: \"300px\",\r\n height: \"auto\",\r\n border: \"0\",\r\n },\r\n mainGrid: {\r\n flexWrap: \"nowrap\",\r\n margin: \"0 auto\",\r\n paddingLeft:theme.spacing(1)\r\n },\r\n childGrid: {\r\n flexGrow: 1,\r\n },\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n}));\r\n\r\nconst ImagesUpload = (props) => {\r\n const {\r\n name,\r\n componentRef,\r\n images,\r\n setImages,\r\n textLabel,\r\n maxImages,\r\n isLogo,\r\n isImgSizing,\r\n textStyle,\r\n oneSize\r\n } = props;\r\n\r\n const theme = useTheme();\r\n const classes = useStyles(props);\r\n\r\n const [isSameError, setIsSameError] = useState(false);\r\n const [isNumberError, setIsNumberError] = useState(false);\r\n const [isFileTypeError, setIsFileTypeError] = useState(false);\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useState(false); // 削除確認のダイアログ開閉\r\n const [confirmFunction, setConfirmFunction] = useState(undefined); // ダイアログ確認時に実行するFunction値\r\n const [confirmMsg, setConfirmMsg] = useState(undefined); // 削除確認ダイアログのメッセージ\r\n // const [deleteTarget, setDeleteTarget] = useState(undefined);\r\n let deleteTarget = 0; // 削除対象の変数\r\n\r\n const resetErrors = () => {\r\n setIsSameError(false);\r\n setIsNumberError(false);\r\n setIsFileTypeError(false);\r\n };\r\n\r\n const handleFile = async (event) => {\r\n if (event.target.files === null || event.target.files.length === 0) {\r\n return;\r\n }\r\n const files = Object.values(event.target.files).concat();\r\n // 初期化することで同じファイルを連続で選択してもonChagngeが発動するように設定し、画像をキャンセルしてすぐに同じ画像を選ぶ動作に対応\r\n event.target.value = \"\";\r\n document.getElementById(name).value = \"\";\r\n resetErrors();\r\n\r\n const pickedImages = files.filter((file) => {\r\n if (\r\n !isLogo &&\r\n ![\r\n \"image/gif\",\r\n \"image/jpeg\",\r\n \"image/png\",\r\n \"image/bmp\",\r\n \"image/svg+xml\",\r\n ].includes(file.type)\r\n ) {\r\n setIsFileTypeError(true);\r\n return false;\r\n }\r\n\r\n if (\r\n isLogo &&\r\n ![\"image/gif\", \"image/png\", \"image/bmp\", \"image/svg+xml\"].includes(\r\n file.type\r\n )\r\n ) {\r\n setIsFileTypeError(true);\r\n return false;\r\n }\r\n\r\n const existsSameSize = images.some((image) => image.size === file.size);\r\n if (existsSameSize) {\r\n setIsSameError(true);\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n if (pickedImages.length === 0) {\r\n return;\r\n }\r\n const concatImages = images.concat(pickedImages);\r\n if (concatImages.length >= maxImages + 1) {\r\n setIsNumberError(true);\r\n }\r\n setImages(concatImages.slice(0, maxImages));\r\n };\r\n\r\n const handleCancel = () => {\r\n resetErrors();\r\n const modifyImages = images.concat();\r\n modifyImages.splice(deleteTarget, 1);\r\n setImages(modifyImages);\r\n dialogClose();\r\n };\r\n const handleClear = () => {\r\n resetErrors();\r\n setImages([]);\r\n dialogClose();\r\n };\r\n // 削除ダイアログ表示\r\n const dialogOpen = (a, message, index) => {\r\n setConfirmDialogOpen(true);\r\n setConfirmFunction(a);\r\n setConfirmMsg(message);\r\n if (index) deleteTarget = index;\r\n };\r\n // 削除ダイアログを消す\r\n const dialogClose = () => {\r\n setConfirmDialogOpen(false);\r\n setConfirmFunction(undefined);\r\n setConfirmMsg(undefined);\r\n };\r\n const clickInsert = () => {\r\n document.getElementById(name).click();\r\n };\r\n\r\n const registerdImage = (index) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n dialogOpen(\r\n () => handleCancel,\r\n \"選択した画像を消してよろしいですか?\",\r\n index\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n const noImage = (index) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n {textLabel}\r\n \r\n {images && (\r\n <>\r\n {/* sm以上の場合は画像を横並びに表示する */}\r\n \r\n \r\n {[...Array(maxImages)].map((_, index) => (\r\n \r\n \r\n {index < images.length ? registerdImage(index) : noImage()}\r\n \r\n \r\n ))}\r\n {/* md以上でボタンを横に並べて表示する */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n dialogOpen(\r\n () => handleClear,\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 {/* sm以下の場合は画像を縦並びに表示する */}\r\n \r\n \r\n {[...Array(maxImages)].map((_, index) => (\r\n \r\n \r\n {index < images.length ? registerdImage(index) : noImage()}\r\n \r\n \r\n ))}\r\n \r\n \r\n\r\n {/* xs以下の場合、ボタンを横並び表示する */}\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 dialogOpen(\r\n () => handleClear,\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 {isSameError && (\r\n

\r\n ※既に選択された画像と同じものは表示されません\r\n

\r\n )}\r\n {isNumberError && (\r\n

\r\n ※{maxImages}枚を超えて選択された画像は表示されません\r\n

\r\n )}\r\n {isFileTypeError && (\r\n <>\r\n {isLogo ? (\r\n

\r\n ※png, bmp, gif, svg以外のファイル形式は表示されません\r\n

\r\n ) : (\r\n

\r\n ※jpeg, png, bmp, gif, svg以外のファイル形式は表示されません\r\n

\r\n )}\r\n \r\n )}\r\n\r\n
\r\n

\r\n ※最大{maxImages}枚まで\r\n

\r\n {maxImages > 1 && ※1枚ずつ選択するとその順番で表示されます}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ImagesUpload;\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from 'react';\r\nimport { Select, MenuItem, NativeSelect } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n}));\r\n\r\n/**\r\n * Jsonからドロップダウンリストを生成します\r\n * @example\r\n * }>\r\n * @module DropDownList\r\n * @param {Object} props - 基本的にSelectに準じます\r\n * @param {Object} props.jsonData - 表示するjsonデータ\r\n * @param {String} props.titlesFieldName - DropDownListで表示するデータのフィールド名\r\n * @param {String} props.valuesFieldName - DropDownListで値とするデータのフィールド名\r\n */\r\nexport default function DropDownList(props) {\r\n const unmountRef = useUnmountRef();\r\n const { jsonData, titlesFieldName, valuesFieldName, ...other } = props;\r\n\r\n // var list = [];\r\n // if (jsonData) {\r\n // console.log(jsonData);\r\n // for (var i = 0; i < jsonData.length; i++) {\r\n // const val = jsonData[i][valuesFieldName];\r\n // list.push(\r\n // {jsonData[i][titlesFieldName]}\r\n // );\r\n // }\r\n // }\r\n const [items, setItems] = useSafeState(unmountRef, []);\r\n\r\n useEffect(() => {\r\n //ここに通常更新時のロジックを書く\r\n var list = [];\r\n if (jsonData) {\r\n for (var i = 0; i < jsonData.length; i++) {\r\n const val = jsonData[i][valuesFieldName];\r\n list.push(\r\n \r\n );\r\n }\r\n }\r\n setItems(list);\r\n return function cleanup() {\r\n //ここにはUnmount時のロジックを書く\r\n }\r\n }, [jsonData]);\r\n\r\n\r\n const classes = useStyles(props);\r\n return (\r\n \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport DropDownList from \"components/input/selectlist/DropDownList\";\r\nimport axios from \"axios\";\r\nimport {\r\n\tuseSafeState,\r\n\tuseUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\n\r\nexport default function DepartmentSelectList(props) {\r\n\tconst { ...others } = props;\r\n\r\n\tconst unmountRef = useUnmountRef();\r\n\r\n\tconst [data, setData] = useSafeState(unmountRef);\r\n\r\n\tconst GetData = async () => {\r\n\t\tvar isSuccess = false;\r\n\t\tawait axios\r\n\t\t\t.get(\"api/departments\")\r\n\t\t\t.then(function (response) {\r\n\t\t\t\tif (response.status === 200) {\r\n\t\t\t\t\tisSuccess = true;\r\n\t\t\t\t}\r\n\t\t\t\treturn response;\r\n\t\t\t})\r\n\t\t\t.then(function (json) {\r\n\t\t\t\tif (!isSuccess) {\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// console.log(json.data);\r\n\t\t\t\t\tsetData(json.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(function (error) {\r\n\t\t\t\tconsole.log(\"GetData get error\", error);\r\n\t\t\t});\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!data) GetData();\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{data && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n}\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport {\r\n FormControl,\r\n FormControlLabel,\r\n FormLabel,\r\n Radio,\r\n RadioGroup,\r\n Grid\r\n} from \"@material-ui/core\";\r\nimport { makeStyles,useTheme } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport * as yup from \"yup\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n minWidth: 120,\r\n width: \"100%\",\r\n textAlign: \"left\",\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\n/**\r\n * 指定した区分値のラジオボタンを返します。\r\n * @module MstDivisionsRadio\r\n * @example\r\n * function addSchemaDataFunc(id, value, state){\r\n state[id] = value;\r\n return state;\r\n }\r\n const addSchemaData = (id, value) => {\r\n setSchemaData(addSchemaDataFunc(id,value,schemaData));\r\n };\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n \r\n\r\n * @param {Object} props - 指定の引数以外は受け取れません。\r\n * @param {string} selected - 初期選択値\r\n * @param {string} divisionkey - 指定の区分値のキー\r\n * @param {bool} dispnone - 選択肢「なし」の表示可否\r\n * @param {function} addSchemaData - yupスキーマを追加する処理\r\n * @param {bool} required - 必須の場合true\r\n * @param {bool} inputRef - refを設定\r\n * @param {string} variant - 表示のスタイル\r\n * @param {string} name - name\r\n * @param {string} label - 項目名\r\n * @param {errors} errors - エラーがある\r\n * @param {bool} readOnly - 読み取り専用\r\n * @param {bool} setValue - stateを変更する処理\r\n */\r\nexport default function MstDivisionsRadio(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const {\r\n selected,\r\n setValue,\r\n name,\r\n divisionkey,\r\n dispnone,\r\n addSchemaData,\r\n required,\r\n inputRef,\r\n variant,\r\n label,\r\n readOnly,\r\n errors,\r\n ignoreValues,\r\n radioVerticallyClassName,\r\n labelMarginClassName\r\n } = props;\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n // const [defaultValue, setDefaultValue] = useSafeState(unmountRef, `${selected}`);\r\n const [selectedValue, setSelectedValue] = useSafeState(\r\n unmountRef,\r\n `${selected}`\r\n );\r\n const [selectItemData, setSelectItemData] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n );\r\n\r\n // ドロップダウンリスト変更時の処理\r\n const handleChange = (event) => {\r\n setSelectedValue(event.target.value);\r\n // setValue && setValue(name, event.target.value);\r\n };\r\n\r\n const handleSnackbarClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n async function GetSelectItems() {\r\n await axios\r\n .get(\"api/divisions?key=\" + divisionkey)\r\n .then(function (json) {\r\n // 正常の場合\r\n // ドロップダウンを設定\r\n // console.log(ignoreValues);\r\n if (ignoreValues) {\r\n var list = [];\r\n json.data.map((item, index) => {\r\n if (!ignoreValues.includes(item.divisionValue)) list.push(item);\r\n });\r\n setSelectItemData(list);\r\n } else setSelectItemData(json.data);\r\n dispnone === false &&\r\n !selected &&\r\n setSelectedValue(json.data[0].divisionValue);\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetSelectItems error\", error);\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n // MstDivisionよりデータを取り込む\r\n GetSelectItems();\r\n\r\n if (addSchemaData) {\r\n required\r\n ? // 必須チェック\r\n addSchemaData(\r\n name,\r\n yup.string().required(GetErrMsg(ErrMsgKey.required))\r\n )\r\n : // 必須チェックなし\r\n addSchemaData(name, yup.string());\r\n }\r\n };\r\n f();\r\n }, []);\r\n\r\n useEffect(() => {\r\n // refを引き渡せないmaterialUiのコンポーネントをregisterに設定する\r\n inputRef && inputRef(name);\r\n }, [inputRef]);\r\n useEffect(() => {\r\n // refを引き渡せないmaterialUiのコンポーネントをregisterに設定する\r\n setValue && selectedValue && setValue(name, selectedValue);\r\n }, [selectedValue]);\r\n\r\n return (\r\n
\r\n \r\n {msg}\r\n \r\n\r\n \r\n \r\n {required ? (\r\n \r\n {label}\r\n \r\n ) : (\r\n \r\n {label}\r\n \r\n )}\r\n \r\n {selectItemData ? (\r\n \r\n {dispnone === true && (\r\n } label=\"なし\" />\r\n )}\r\n\r\n {selectItemData &&\r\n selectItemData.map((item, index) => (\r\n }\r\n label={item.divisionText1}\r\n className={radioVerticallyClassName}\r\n />\r\n ))}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {errors && (\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { fade, makeStyles, } from '@material-ui/core/styles';\r\nimport { Typography,Grid } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n sectionTitle:{\r\n color: theme.palette.primary.main,\r\n fontWeight:600\r\n },\r\n sectionBorder:{\r\n borderTop:\"1px solid \" + fade(theme.palette.primary.light,0.4),\r\n borderBottom:\"1px solid \" + fade(theme.palette.primary.light,0.4),\r\n background:fade(theme.palette.primary.light,0.05),\r\n marginTop: theme.spacing(4),\r\n marginBottom: theme.spacing(2),\r\n padding: theme.spacing(2),\r\n }\r\n}));\r\n\r\n/**\r\n * セクションタイトル用の文字列を表示するコンポーネントです。\r\n */\r\nexport default function SectionTitleText(props) {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n \r\n );\r\n}","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport axios from \"axios\";\r\nimport * as yup from \"yup\";\r\nimport {\r\n ErrMsgKey,\r\n GetErrMsg,\r\n ErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n // marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n minWidth: 120,\r\n width: \"100%\",\r\n textAlign: \"left\",\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\n/**\r\n * 指定した区分値のセレクトリストを返します。\r\n * @module MstDivisionsSelectList\r\n * @example\r\n * 「ConactMain」のDivisionsSelectorの使い方と一緒の想定\r\n function addSchemaDataFunc(id, value, state){\r\n state[id] = value;\r\n return state;\r\n }\r\n const addSchemaData = (id, value) => {\r\n setSchemaData(addSchemaDataFunc(id,value,schemaData));\r\n };\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n \r\n\r\n * @param {Object} props - 指定の引数以外は受け取れません。\r\n * @param {string} selected - 初期選択値\r\n * @param {string} divisionkey - 指定の区分値のキー\r\n * @param {bool} dispnone - 選択肢「なし」の表示可否\r\n * @param {function} addSchemaData - yupスキーマを追加する処理\r\n * @param {bool} required - 必須の場合true\r\n * @param {bool} inputRef - refを設定\r\n * @param {string} variant - 表示のスタイル\r\n * @param {string} name - name\r\n * @param {string} label - 項目名\r\n * @param {errors} errors - エラーがある\r\n * @param {bool} readOnly - 読み取り専用\r\n * @param {bool} setValue - stateを変更する処理\r\n */\r\nexport default function TemplateMsgSelectList(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const {\r\n selected,\r\n name,\r\n divisionValue,\r\n dispnone,\r\n required,\r\n variant,\r\n label,\r\n readOnly,\r\n onChange,\r\n } = props;\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n const [selectedValue, setSelectedValue] = useSafeState(unmountRef, selected);\r\n const [selectItemData, setSelectItemData] = useSafeState(unmountRef, null);\r\n\r\n // ドロップダウンリスト変更時の処理\r\n const handleChange = (event) => {\r\n setSelectedValue(event.target.value);\r\n onChange(event.target.value);\r\n };\r\n\r\n async function GetSelectItems() {\r\n await axios.get(`api/templatemsg?divisionValue=${divisionValue}`)\r\n .then(function (json) {\r\n // 正常の場合\r\n // ドロップダウンを設定\r\n setSelectItemData(json.data);\r\n // 初期値が設定されていない場合、一件目を初期値とする。\r\n dispnone === false &&\r\n !selected &&\r\n setSelectedValue(json.data[0].divisionValue);\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetSelectItems error\", error);\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n // MstDivisionよりデータを取り込む\r\n GetSelectItems();\r\n };\r\n f();\r\n }, []);\r\n useEffect(() => {\r\n setSelectedValue(selected);\r\n }, [selected]);\r\n\r\n return (\r\n
\r\n \r\n {required ? (\r\n \r\n {label}\r\n \r\n ) : (\r\n {label}\r\n )}\r\n \r\n {dispnone === true && (\r\n \r\n なし\r\n \r\n )}\r\n {selectItemData &&\r\n selectItemData.map((item, index) => (\r\n \r\n {item.templateName}\r\n \r\n ))}\r\n \r\n \r\n
\r\n );\r\n}","import { Box, makeStyles, Tab, Tabs } from \"@material-ui/core/\";\r\nimport { ReportProblem } from \"@material-ui/icons\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React from \"react\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n objectBox: {\r\n margin: theme.spacing(3),\r\n [theme.breakpoints.down(\"xs\")]: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n },\r\n },\r\n}));\r\n\r\nexport const CommonTab = (props) => {\r\n const unmountRef = useUnmountRef();\r\n\r\n const classes = useStyles();\r\n const { panels, errorTabNoArr, footer } = props;\r\n // タブ関連\r\n const [tabValue, setTabValue] = useSafeState(unmountRef, 0);\r\n // タブ変更イベント\r\n const handleTabChange = (event, newValue) => {\r\n // タブを変更する\r\n setTabValue(newValue);\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n {panels.map((panel, index) => {\r\n return (\r\n 0 &&\r\n errorTabNoArr.includes(index) ? (\r\n \r\n \r\n  {panel.title}\r\n \r\n ) : (\r\n panel.title\r\n )\r\n }\r\n key={`tabs-${index}`}\r\n >\r\n {/* \r\n {(isFirstPageError || isSecondPageError) && (\r\n \r\n )} */}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n {panels.map((panel, index) => {\r\n return (\r\n \r\n {panel.object}\r\n \r\n );\r\n })}\r\n \r\n {footer && {footer}}\r\n \r\n {/* \r\n {panels.map((panel, index) => {\r\n return (\r\n 0 &&\r\n errorTabNoArr.includes(index) ? (\r\n \r\n \r\n  {panel.title}\r\n \r\n ) : (\r\n panel.title\r\n )\r\n }\r\n key={`tabs-${index}`}\r\n >\r\n \r\n );\r\n })}\r\n */}\r\n {/* {panels.map((panel, index) => {\r\n return (\r\n \r\n {panel.object}\r\n \r\n );\r\n })} */}\r\n \r\n );\r\n};\r\n","import {\r\n Box,\r\n Button,\r\n FormControl,\r\n Grid,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemSecondaryAction,\r\n ListItemText,\r\n Modal,\r\n Paper,\r\n TextField,\r\n Tooltip,\r\n Typography,\r\n useTheme,\r\n} from \"@material-ui/core\";\r\nimport { Close, DragHandle, Edit, ReportProblem } from \"@material-ui/icons\";\r\nimport { ErrMsg } from \"components/common/ErrorMessageProvider\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport WysiWygEditor from \"components/editor/WysiWygEditor\";\r\nimport TemplateMsgSelectList from \"components/input/selectlist/TemplateMsgSelectList\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport {\r\n HelperIsNewPatient,\r\n HelperIsUseReserve,\r\n} from \"components/toolTip/HelpToolTip\";\r\nimport React, { useEffect } from \"react\";\r\nimport { Controller } from \"react-hook-form\";\r\nimport { CommonTab } from \"components/tab/CommonTab\";\r\nimport { Container, Draggable } from \"react-smooth-dnd\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\n\r\n/**\r\n * 事前表示項目を表示する\r\n * @module PreScreenList\r\n * @example\r\n *\r\n \r\n * @param {bool} isChangeOrder - 並び順を変更する際にON\r\n * @param {Object} fields - screens の useFieldArray\r\n * @param {Object} register - hookform\r\n * @param {Object} errors - hookform\r\n * @param {Object} control - hookform\r\n * @param {Object} remove - hookform\r\n * @param {Object} swap - hookform\r\n * @param {Object} insert - hookform\r\n * @param {Object} getValues - hookform\r\n * @param {Object} setValue - hookform\r\n */\r\nexport function PreScreenList(props) {\r\n const unmountRef = useUnmountRef();\r\n const {\r\n isChangeOrder,\r\n fields,\r\n errors,\r\n register,\r\n control,\r\n remove,\r\n swap,\r\n insert,\r\n getValues,\r\n setValue,\r\n ...other\r\n } = props;\r\n\r\n var screensValue = getValues(`screens`);\r\n const theme = useTheme();\r\n\r\n const [defaultsJson, setDefaultsJson] = useSafeState(\r\n unmountRef,\r\n fields.map((data) => {\r\n return [data[\"text\"]];\r\n })\r\n );\r\n\r\n useEffect(() => {\r\n setDefaultsJson(\r\n fields.map((data) => {\r\n return data[\"text\"];\r\n })\r\n );\r\n }, [fields]);\r\n\r\n // ドラッグ時の処理\r\n const applyDrag = (dragResult) => {\r\n const { removedIndex, addedIndex, payload } = dragResult;\r\n if (removedIndex === null && addedIndex === null) return;\r\n\r\n swap(removedIndex, addedIndex);\r\n };\r\n\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useSafeState(\r\n unmountRef,\r\n false\r\n ); // 確認のダイアログ開閉\r\n\r\n // ダイアログを消す\r\n const dialogClose = () => {\r\n setConfirmDialogOpen(false);\r\n };\r\n // ダイアログを表示する\r\n const dialogOpen = () => {\r\n setConfirmDialogOpen(true);\r\n };\r\n\r\n const [confirmDialogMsg, setConfirmDialogMsg] = useSafeState(unmountRef, \"\"); // 確認ダイアログMsg1\r\n const [confirmDialogMsg2, setConfirmDialogMsg2] = useSafeState(\r\n unmountRef,\r\n \"\"\r\n ); // 確認ダイアログMsg2\r\n const [deleteTarget, setDeleteTarget] = useSafeState(unmountRef); // 確認ダイアログMsg2\r\n\r\n return (\r\n <>\r\n {fields && fields.length > 0 && (\r\n \r\n {\r\n remove(deleteTarget);\r\n dialogClose();\r\n }}\r\n open={confirmDialogOpen}\r\n handleClose={dialogClose}\r\n message={confirmDialogMsg}\r\n message2={confirmDialogMsg2}\r\n />\r\n \r\n applyDrag(e)}\r\n style={{ maxHeight: \"200px\", overflowY: \"auto\" }}\r\n >\r\n {/* */}\r\n {fields.map((field, index) => (\r\n \r\n remove(index)}\r\n dialogOpen={dialogOpen}\r\n isChangeOrder={isChangeOrder}\r\n field={field}\r\n index={index}\r\n setConfirmDialogMsg={setConfirmDialogMsg}\r\n setConfirmDialogMsg2={setConfirmDialogMsg2}\r\n setDeleteTarget={setDeleteTarget}\r\n defaultsJson={defaultsJson}\r\n setDefaultsJson={setDefaultsJson}\r\n {...props}\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 * @module PreScreenEditModal\r\n * @example\r\n *\r\n remove(index)}\r\n dialogOpen={dialogOpen}\r\n field={field}\r\n index={index}\r\n setConfirmDialogMsg={setConfirmDialogMsg}\r\n setConfirmDialogMsg2={setConfirmDialogMsg2}\r\n setDeleteTarget={setDeleteTarget}\r\n defaultsJson={defaultsJson}\r\n setDefaultsJson={setDefaultsJson}\r\n {...props} />\r\n * @param {bool} dialogOpen - モーダル表示制御\r\n * @param {Object} field - 対象レコードの情報\r\n * @param {Object} index - レコードのindex\r\n * @param {Object} setConfirmDialogMsg - 確認ダイアログメッセージ1\r\n * @param {Object} setConfirmDialogMsg2 - 確認ダイアログメッセージ2\r\n * @param {Object} setDeleteTarget - 削除対象レコードの行№を設定\r\n * @param {Object} defaultsJson - text項目のJSONのリスト\r\n * @param {Object} setDefaultsJson - text項目のJSONのリストをセットする\r\n *\r\n * @param {Object} getValues - hookform\r\n * @param {Object} insert - hookform\r\n * @param {Object} remove - hookform 対象レコードの削除\r\n */\r\nconst PreScreenEditModal = (props) => {\r\n const unmountRef = useUnmountRef();\r\n const theme = useTheme();\r\n\r\n const {\r\n getValues,\r\n field,\r\n insert,\r\n remove,\r\n index,\r\n isChangeOrder,\r\n dialogOpen,\r\n setConfirmDialogMsg,\r\n setConfirmDialogMsg2,\r\n setDeleteTarget,\r\n } = props;\r\n\r\n // 事前選択画面入力項目の表示制御\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n const modalClose = () => {\r\n // 入力値をリストに反映する。\r\n insert(index, getValues().screens[index]);\r\n remove(index + 1);\r\n handleClose();\r\n };\r\n\r\n // 対象レコードにエラーがある場合true\r\n const [hasErr, setHasErr] = useSafeState(unmountRef, false);\r\n\r\n return (\r\n <>\r\n \r\n {isChangeOrder && (\r\n ドラッグして並び順を変更できます}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {hasErr ? : <>}\r\n {`${index + 1} : ${field.title ? `${field.title}` : \"新規追加\"}`}\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 setConfirmDialogMsg(\r\n `${index + 1} 行目 ${\r\n field.title ? `${field.title}` : \"新規追加\"\r\n }`\r\n );\r\n setConfirmDialogMsg2(\"削除してよろしいですか?\");\r\n setDeleteTarget(index);\r\n dialogOpen();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n // // 入力値をリストに反映する。\r\n // insert(index, getValues().screens[index]);\r\n // remove(index + 1);\r\n // handleClose();\r\n // }\r\n }\r\n style={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\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 * @module PreScrrenTab\r\n * @example\r\n *\r\n \r\n * @param {Object} field - 対象レコードの情報\r\n * @param {Object} index - レコードのindex\r\n * @param {Object} defaultsJson - text項目のJSONのリスト\r\n * @param {Object} setDefaultsJson - text項目のJSONのリストをセットする\r\n * @param {Object} setHasErr - 対象レコードをエラー有無をセットする\r\n * @param {Object} errors - hookform\r\n * @param {Object} setValue - hookform\r\n * @param {Object} control - hookform\r\n */\r\nconst PreScrrenTab = (props) => {\r\n const {\r\n field,\r\n index,\r\n defaultsJson,\r\n setDefaultsJson,\r\n setHasErr,\r\n errors,\r\n setValue,\r\n control,\r\n modalClose,\r\n } = props;\r\n const unmountRef = useUnmountRef();\r\n const theme = useTheme();\r\n const style = commonStyle();\r\n // タブ名称とタブ内容のリスト\r\n const panels = (field, index) => {\r\n return [\r\n {\r\n title: \"選択画面設定\",\r\n object: (\r\n <>\r\n \r\n \r\n \r\n }\r\n name={`screens[${index}].button1Name`}\r\n variant=\"outlined\"\r\n className={style.textField}\r\n label=\"該当者用ボタン名\"\r\n required\r\n defaultValue={field.button1Name}\r\n style={{ width: \"15rem\" }}\r\n control={control}\r\n />\r\n \r\n \r\n \r\n \r\n (\r\n {\r\n setValue(\r\n `screens[${index}].isNewPatient1`,\r\n e.target.checked\r\n );\r\n }}\r\n label={\"診察券をお持ちでない方と扱う\"}\r\n />\r\n )}\r\n defaultValue={field && field.isNewPatient1}\r\n control={control}\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 name={`screens[${index}].button2Name`}\r\n variant=\"outlined\"\r\n className={style.textField}\r\n label=\"非該当者用ボタン名\"\r\n defaultValue={field.button2Name}\r\n style={{ width: \"15rem\" }}\r\n control={control}\r\n />\r\n \r\n \r\n \r\n \r\n (\r\n {\r\n setValue(\r\n `screens[${index}].isNewPatient2`,\r\n e.target.checked\r\n );\r\n }}\r\n label={\"診察券をお持ちでない方と扱う\"}\r\n />\r\n )}\r\n defaultValue={field && field.isNewPatient2}\r\n control={control}\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 title: \"該当者用画面設定\",\r\n object: (\r\n \r\n \r\n \r\n (\r\n {\r\n console.log(\"onChange\");\r\n console.log(e.target.checked);\r\n setValue(\r\n `screens[${index}].isUseReserve`,\r\n e.target.checked\r\n );\r\n }}\r\n label={\"予約可能\"}\r\n />\r\n )}\r\n defaultValue={field && field.isUseReserve}\r\n control={control}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n }\r\n name={`screens[${index}].title`}\r\n variant=\"outlined\"\r\n className={style.textField}\r\n label=\"タイトル\"\r\n required\r\n defaultValue={field.title}\r\n style={{ minWidth: \"17rem\", maxWidth: \"20rem\" }}\r\n control={control}\r\n />\r\n \r\n \r\n \r\n handleTemplateSelect(val, index)}\r\n value={selects[index] ? selects[index] : \"\"}\r\n name=\"template\"\r\n label=\"例文を利用する\"\r\n dispnone={true}\r\n divisionValue={1}\r\n />\r\n \r\n \r\n \r\n }\r\n defaultValue={\"test\"}\r\n name={`screens[${index}].text`}\r\n control={control}\r\n />\r\n \r\n \r\n \r\n ),\r\n },\r\n ];\r\n };\r\n // 例文\r\n const [selects, setSelects] = useSafeState(unmountRef, []);\r\n // 例文選択時、初期値として設定する。\r\n const handleTemplateSelect = (val, index) => {\r\n var copySelects = selects.slice();\r\n copySelects[index] = JSON.parse(val);\r\n setSelects(copySelects);\r\n\r\n if (val) {\r\n var test = defaultsJson.slice();\r\n test[index] = JSON.parse(val);\r\n setDefaultsJson(test);\r\n }\r\n };\r\n // エラータブのタブ番号\r\n var [errorTabNoArr, setErrorTabNoArr] = useSafeState(unmountRef);\r\n\r\n // ページ内の項目名\r\n const pageNamesArr = [\r\n [`button1Name`, `button2Name`],\r\n [`isUseReserve`, `title`, `text`],\r\n ];\r\n useEffect(() => {\r\n // エラーのあるタブを特定し該当タブにマークを表示させる\r\n var keys = Object.keys(errors);\r\n if (errors && keys.length > 0) {\r\n var errorTabNos = [];\r\n var screensErr = errors[`screens`];\r\n if (!screensErr) {\r\n setErrorTabNoArr(undefined);\r\n return;\r\n }\r\n var err = screensErr[index];\r\n if (!err) {\r\n setErrorTabNoArr(undefined);\r\n return;\r\n }\r\n\r\n pageNamesArr.map((names, index) => {\r\n if (Object.keys(err).find((x) => names.includes(x)))\r\n errorTabNos.push(index);\r\n });\r\n setErrorTabNoArr(errorTabNos);\r\n setHasErr(true);\r\n } else {\r\n setErrorTabNoArr(undefined);\r\n }\r\n }, [errors]);\r\n\r\n return (\r\n \r\n \r\n }\r\n >\r\n Close\r\n \r\n \r\n \r\n }\r\n />\r\n );\r\n};\r\n","import authService from \"components/api-authorization/AuthorizeService\";\r\nimport axios from \"axios\";\r\n\r\nexport const ApiHospitalDeptScreensGet = async (hid, did) => {\r\n const token = await authService.getAccessToken();\r\n return await axios.get(`api/hospitaldeptscreens/${hid}/${did}`, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n });\r\n};\r\n","/**\r\n * @file 予約項目 登録/編集画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport {\r\n Box,\r\n Button,\r\n FormControl,\r\n FormLabel,\r\n Grid,\r\n InputAdornment,\r\n InputLabel,\r\n OutlinedInput,\r\n Paper,\r\n TextField,\r\n Typography,\r\n fade,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { imageConst, validationConst } from \"components/common/Const\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport ImageCompressor from \"components/image/ImageCompressor\";\r\nimport ImagesUpload from \"components/image/ImagesUpload\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport DepartmentSelectList from \"components/input/selectlist/DepartmentSelectList\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport PhoneNumberTextBox from \"components/input/textbox/PhoneNumberTextBox\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport qs from \"qs\";\r\nimport { Controller, useFieldArray, useForm } from \"react-hook-form\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport * as yup from \"yup\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport MstDivisionsRadio from \"components/input/radio/MstDivisionsRadio\";\r\nimport dayjs from \"dayjs\";\r\nimport { MuiPickersUtilsProvider, TimePicker } from \"@material-ui/pickers\";\r\nimport jaLocale from \"date-fns/locale/ja\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport { TimeToDamyDatetime } from \"components/common/DateTimeHelper\";\r\nimport ManageMenuPaper from \"components/paper/ManageMenuPaper\";\r\nimport { Add } from \"@material-ui/icons\";\r\nimport HelpToolTip from \"components/toolTip/HelpToolTip\";\r\nimport WysiWygEditor from \"components/editor/WysiWygEditor\";\r\nimport { keys } from \"@material-ui/core/styles/createBreakpoints\";\r\nimport SectionTitleText from \"components/text/SectionTitleText\";\r\nimport { PreScreenList } from \"components/modal/PreScreenEditCommon\";\r\nimport { ApiHospitalDeptScreensGet } from \"components/api/HospitalDeptScreensApi\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n notchedOutline: {\r\n // NOTE: the legend element is a child of the notchedOutline component\r\n \"& legend\": {\r\n maxWidth: \"1000px\",\r\n },\r\n },\r\n secondLine: {\r\n marginLeft: \"0.5rem\",\r\n marginBottom: \"0.5rem\",\r\n [theme.breakpoints.down(\"xs\")]: {\r\n marginLeft: 0,\r\n },\r\n },\r\n cancellSelect: {\r\n marginBottom: \"2rem\",\r\n marginLeft: \"1rem\",\r\n [theme.breakpoints.down(\"xs\")]: {\r\n marginLeft: 0,\r\n },\r\n },\r\n selectInputBox: {\r\n display: \"flex\",\r\n [theme.breakpoints.down(\"xs\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n selectInput: {\r\n display: \"flex\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n secondLineBorder: {\r\n padding: \"0.5rem\",\r\n background: \"#f5f5f5\",\r\n },\r\n radioVertically: {\r\n width: \"100%\",\r\n },\r\n labelMargin: {\r\n marginBottom: theme.spacing(2),\r\n marginTop: theme.spacing(2),\r\n },\r\n textField: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n background: \"white\",\r\n },\r\n}));\r\n// state更新用の関数\r\nfunction addSchemaDataFunc(id, value, state) {\r\n state[id] = value;\r\n return state;\r\n}\r\n\r\nexport default function HospitalDeptEdit(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const { deptId } = useParams(); // 予約項目ID ある場合は編集モード\r\n const hospitalId = qs.parse(props.location.search, {\r\n ignoreQueryPrefix: true,\r\n }).hospitalid; // 医療機関ID\r\n const [hospital, setHospital] = useSafeState(unmountRef, null);\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n const [data, setData] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n );\r\n const { history, location } = useReactRouter();\r\n const pushRoot =\r\n location.pathname.indexOf(\"/manage/\") !== -1 ? \"/manage\" : \"/admin\";\r\n\r\n const [images, setImages] = useSafeState(unmountRef, []); // 画像配列 File型\r\n\r\n const [isDisable, setIsDisable] = useSafeState(unmountRef, false);\r\n\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useSafeState(\r\n unmountRef,\r\n false\r\n ); // 削除確認のダイアログ開閉\r\n const [confirmMsg, setConfirmMsg] = useSafeState(unmountRef);\r\n const [toggleDeleteUrl, setToggleDeleteUrl] = useSafeState(unmountRef);\r\n\r\n // 並び順を変更するチェックボックス\r\n const [isChangeOrder, setIsChangeOrder] = useSafeState(unmountRef, false);\r\n\r\n const userctx = useContext(UserContext);\r\n const msgctx = useContext(MessageContext);\r\n const [canDelete, setCanDelete] = useSafeState(unmountRef, false);\r\n const errProvider = useErrorMessageProvider();\r\n // const [editorTextLength, setEditorTextLength] = useSafeState(unmountRef, 0);\r\n let editorTextLength = 0;\r\n let editorCompleteSentenceTextLength = 0;\r\n\r\n const fieldSchema = {\r\n showOrder: yup\r\n .number()\r\n .typeError(GetErrMsg(ErrMsgKey.number))\r\n .positive(GetErrMsg(ErrMsgKey.positive))\r\n .integer(GetErrMsg(ErrMsgKey.integer)),\r\n button1Name: yup.string().trim().required(GetErrMsg(ErrMsgKey.required)),\r\n // button2Name: yup.string().trim(),\r\n text: yup.mixed().required(GetErrMsg(ErrMsgKey.required)),\r\n title: yup.string().trim().required(GetErrMsg(ErrMsgKey.required)),\r\n isUseReserve: yup\r\n .bool()\r\n .test(\r\n \"isUseReserve => button2Name\",\r\n \"非該当者用ボタンを使用しない場合、必ずONにしてください\",\r\n function (value) {\r\n var button2Name = this.parent.button2Name;\r\n if (!button2Name) return value;\r\n return true;\r\n }\r\n ),\r\n };\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n name: yup\r\n .string()\r\n .trim()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .max(100, \"100文字以下としてください。\"),\r\n description: yup.string().trim().max(400, \"400文字以下としてください。\"),\r\n\r\n email: yup\r\n .string()\r\n .trim()\r\n // .required(GetErrMsg(ErrMsgKey.required))\r\n .email(GetErrMsg(ErrMsgKey.email))\r\n .max(200, \"200文字以下としてください。\")\r\n .test(\"email\", \"メール送信する場合、必須です。\", function (value) {\r\n if (!value) {\r\n if (this.parent.isRecieveReservedMail) return false;\r\n if (this.parent.isRecieveCanceldMail) return false;\r\n }\r\n return true;\r\n }),\r\n // aveTime: \r\n // hospital && hospital.useHomePage\r\n // ? yup\r\n // .number()\r\n // .typeError(GetErrMsg(ErrMsgKey.number))\r\n // .max(1000, \"1000以下で入力してください\")\r\n // .positive(\"正の整数としてください\")\r\n // : null,\r\n bookableDays: yup\r\n .number()\r\n .typeError(GetErrMsg(ErrMsgKey.number))\r\n .max(1000, \"1000以下で入力してください\")\r\n .test(\r\n \"bookableDays\",\r\n \"予約受付開始の日数に誤りがあります。\",\r\n function (value) {\r\n if (this.parent.bookableType === \"2\" && value == 0) return false;\r\n\r\n if (this.parent.bookableType === \"3\" && value !== 0 && !value)\r\n return false;\r\n\r\n return true;\r\n }\r\n ),\r\n showDays: yup\r\n .number()\r\n .typeError(GetErrMsg(ErrMsgKey.number))\r\n .max(7, \"7以下で入力してください\")\r\n .positive(\"正の整数としてください\"),\r\n\r\n bookableType: yup\r\n .number()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.number)),\r\n\r\n bookableTime: yup\r\n .date()\r\n .typeError(GetErrMsg(ErrMsgKey.time))\r\n .test(\r\n \"bookableTime\",\r\n \"予約受付開始の指定時間を入力してください。\",\r\n function (value) {\r\n if (this.parent.bookableType === \"3\" && !value) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n ),\r\n\r\n bookableDeadlineType: yup\r\n .number()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.number)),\r\n bookableDeadlineDays: yup\r\n .number()\r\n .typeError(GetErrMsg(ErrMsgKey.number))\r\n .max(1000, \"1000以下で入力してください\")\r\n .test(\r\n \"bookableDeadlineDays\",\r\n \"予約受付締切の日数に誤りがあります。\",\r\n function (value) {\r\n if (this.parent.bookableDeadlineType === \"2\" && value == 0)\r\n return false;\r\n\r\n if (this.parent.bookableDeadlineType === \"3\" && value !== 0 && !value)\r\n return false;\r\n\r\n return true;\r\n }\r\n ),\r\n bookableDeadlineTime: yup\r\n .date()\r\n .typeError(GetErrMsg(ErrMsgKey.time))\r\n .test(\r\n \"bookableDeadlineTime\",\r\n \"予約受付締切の指定時間を入力してください。\",\r\n function (value) {\r\n if (this.parent.bookableDeadlineType === \"3\" && !value) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n ),\r\n\r\n cancellationAvailability: yup\r\n .number()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.number)),\r\n cancellationType: yup\r\n .number()\r\n .typeError(GetErrMsg(ErrMsgKey.number))\r\n .test(\r\n \"cancellationType\",\r\n \"キャンセル種別に誤りがあります。\",\r\n function (value) {\r\n if (this.parent.cancellationAvailability === \"2\" && !value) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n ),\r\n cancelableDays: yup\r\n .number()\r\n .typeError(GetErrMsg(ErrMsgKey.number))\r\n .test(\r\n \"cancelableDays\",\r\n \"キャンセル期日に誤りがあります。\",\r\n function (value) {\r\n if (this.parent.cancellationAvailability === \"1\") return true;\r\n\r\n if (this.parent.cancellationType === \"2\" && value == 0) return false;\r\n\r\n if (this.parent.cancellationType === \"3\" && value < 0) return false;\r\n\r\n return true;\r\n }\r\n ),\r\n cancelableTime: yup\r\n .date()\r\n .typeError(GetErrMsg(ErrMsgKey.time))\r\n .test(\r\n \"cancelableTime\",\r\n \"キャンセル期限の時間を入力してください。\",\r\n function (value) {\r\n if (\r\n this.parent.cancellationAvailability === \"2\" &&\r\n this.parent.cancellationType === \"3\" &&\r\n !value\r\n ) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n ),\r\n\r\n showOrder: yup\r\n .number()\r\n .typeError(GetErrMsg(ErrMsgKey.number))\r\n .max(100, \"100以下で入力してください\")\r\n .positive(\"正の整数としてください\"),\r\n departmentId: \r\n hospital && hospital.useHomePage\r\n ? yup\r\n .string()\r\n .nullable()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n : null,\r\n isAllowOnlySpecifyIp: yup\r\n .bool()\r\n .test(\r\n \"isAllowOnlySpecifyIp\",\r\n \"許可するIPを指定してください\",\r\n function (value) {\r\n // 制限するかつ許可IPが指定されていない場合にエラーにする\r\n if (\r\n value === true &&\r\n !this.parent.allowIpAddress1 &&\r\n !this.parent.allowIpAddress2 &&\r\n !this.parent.allowIpAddress3\r\n )\r\n return false;\r\n return true;\r\n }\r\n ),\r\n\r\n allowIpAddress1: yup\r\n .string()\r\n .trim()\r\n .matches(validationConst.ip_reg_exp, {\r\n message: GetErrMsg(ErrMsgKey.ipRegEx),\r\n excludeEmptyString: true,\r\n }),\r\n allowIpAddress2: yup\r\n .string()\r\n .trim()\r\n .matches(validationConst.ip_reg_exp, {\r\n message: GetErrMsg(ErrMsgKey.ipRegEx),\r\n excludeEmptyString: true,\r\n }),\r\n allowIpAddress3: yup\r\n .string()\r\n .trim()\r\n .matches(validationConst.ip_reg_exp, {\r\n message: GetErrMsg(ErrMsgKey.ipRegEx),\r\n excludeEmptyString: true,\r\n }),\r\n screens: yup.array().of(yup.object().shape(fieldSchema)),\r\n });\r\n\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const {\r\n register,\r\n getValues,\r\n setValue,\r\n handleSubmit,\r\n errors,\r\n setError,\r\n clearErrors,\r\n watch,\r\n control,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n const { fields, append, remove, swap, insert } = useFieldArray({\r\n control, // control props comes from useForm (optional: if you are using FormContext)\r\n name: \"screens\", // unique name for your Field Array\r\n // keyName: \"id\", default to \"id\", you can change the key name\r\n });\r\n const handleAddScreenClick = async () => {\r\n var add = {\r\n button1Name: \"\",\r\n button2Name: \"\",\r\n text: \"\",\r\n isUseReserve: false,\r\n isNewPatient1: false,\r\n isNewPatient2: false,\r\n showOrder: 0,\r\n title: \"\",\r\n };\r\n append(add);\r\n };\r\n\r\n // ダイアログ表示\r\n const dialogOpen = (msg) => {\r\n setConfirmMsg(msg);\r\n setConfirmDialogOpen(true);\r\n };\r\n // ダイアログを消す\r\n const dialogClose = () => {\r\n setConfirmDialogOpen(false);\r\n };\r\n\r\n async function GetData() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\r\n \"api/hospitaldepts/search?RequireDecorateDescription=true&GetDeleted=true&id=\" +\r\n deptId,\r\n {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n }\r\n )\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setMsg(json.message);\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n } else {\r\n if (json.data.length === 0) {\r\n history.replace(`${pushRoot}`);\r\n msgctx.enqueueNotClose(\r\n GetErrMsg(ErrMsgKey.checkHospitalDept),\r\n \"error\"\r\n );\r\n }\r\n //完了画面後表示文言(リッチエディタ未対応処理)\r\n if (json && json.data[0] && json.data[0].completeSentence) {\r\n try {\r\n JSON.parse(json.data[0].completeSentence);\r\n } catch (error) {\r\n json.data[0].completeSentence = `{\r\n \"blocks\":[\r\n {\r\n \"key\":\"4ucu\",\r\n \"text\":\"${json.data[0].completeSentence.replace(/\\r?\\n/g,\"\\\\n\")}\",\r\n \"type\":\"unstyled\",\r\n \"depth\":0,\r\n \"inlineStyleRanges\":[],\r\n \"entityRanges\":[],\r\n \"data\":{}\r\n }\r\n ],\r\n \"entityMap\":{}\r\n }`;\r\n }\r\n }\r\n setData(json.data[0]);\r\n GetHospitalData(json.data[0].hospitalId);\r\n // 予約項目事前画面データ取得\r\n GetScreens(json.data[0].hospitalId, deptId);\r\n }\r\n })\r\n .catch(function (error) {\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n console.log(\"GetData error\", error);\r\n });\r\n\r\n await GetImage();\r\n }\r\n\r\n async function GetImage() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/images?isGetImage=true&isTracking=false&deptid=\" + deptId, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setMsg(json.message);\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n } else {\r\n // setUserName(json.data[0].user.name);\r\n if (json.data) {\r\n let imageList = [];\r\n\r\n json.data.forEach((imageData, index) => {\r\n var bin = atob(imageData.image.replace(/^.*,/, \"\"));\r\n // バイナリデータ化\r\n var buffer = new Uint8Array(bin.length);\r\n for (var i = 0; i < bin.length; i++) {\r\n buffer[i] = bin.charCodeAt(i);\r\n }\r\n // ファイルオブジェクト生成(この例ではjpegファイル)\r\n let file = new File([buffer.buffer], index, {\r\n type: imageData.extention,\r\n });\r\n\r\n imageList.push(file);\r\n // let file = new File([new Blob([imageData.image], { type: 'text/plain' })], index, { type: imageData.imageExtention });\r\n // imageList.push(file);\r\n });\r\n\r\n setImages(imageList);\r\n }\r\n // json.data[0].user && setValue('userName',json.data[0].user.userName);\r\n // json.data[0].email && setValue('email',json.data[0].user.email);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetData error\", error);\r\n });\r\n }\r\n\r\n async function GetHospitalData(hid) {\r\n // console.log(\"呼ばれた\");\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/hospitals/search?isGetImage=false&id=\" + hid, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n } else {\r\n setHospital(json.data[0]);\r\n // console.log(json.data[0]);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetHospitalData error\", error);\r\n });\r\n\r\n // await GetImage();\r\n }\r\n\r\n async function GetScreens(hid, did) {\r\n let isSuccess = false;\r\n await ApiHospitalDeptScreensGet(hid, did)\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (response) {\r\n if (!isSuccess) {\r\n msgctx.enqueue(response.message, \"error\");\r\n } else {\r\n response.data.map((item) => {\r\n var add = {\r\n button1Name: item.mhdButtonName1,\r\n button2Name: item.mhdButtonName2,\r\n text: JSON.parse(item.mhdText),\r\n isUseReserve: item.mhdIsUseReserve,\r\n showOrder: item.mhdShowOrder,\r\n title: item.mhdTitle,\r\n isNewPatient1: item.mhdIsNewPatient1,\r\n isNewPatient2: item.mhdIsNewPatient2,\r\n };\r\n append(add);\r\n });\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetScreens error\", error);\r\n });\r\n }\r\n\r\n // コンポーネント内でstateを変更するための処理\r\n // 普通にstateにセットすると、最後に実行されたもののみが処理される。\r\n // stateをfunctionを用いて更新することで、遅延評価時に順次実行されるっぽい。\r\n // https://career.levtech.jp/guide/knowhow/article/394/\r\n const addSchemaData = (id, value) => {\r\n setSchemaData(addSchemaDataFunc(id, value, schemaData));\r\n };\r\n\r\n // submit時処理\r\n async function onSubmit(values) {\r\n setIsDisable(true);\r\n if (editorCompleteSentenceTextLength > 3000) {\r\n setError(\"completeSentenceErr\", {\r\n type: \"manual\",\r\n message: \"3000文字までで入力してください。\",\r\n });\r\n setMsg(\"エラーが発生しました。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n setIsDisable(false);\r\n return;\r\n }\r\n // console.log(editorTextLength);\r\n if (editorTextLength > 3000) {\r\n setError(\"decorateDescription2\", {\r\n type: \"manual\",\r\n message: \"3000文字までで入力してください。\",\r\n });\r\n setMsg(\"エラーが発生しました。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n setIsDisable(false);\r\n return;\r\n }\r\n\r\n // const compressOptions = {\r\n // // 3MB以下に圧縮する\r\n // maxSizeMB: imageConst.hospital_image_compress_size,\r\n // maxWidthOrHeight: 400 //最大画像幅もしくは高さ\r\n // };\r\n // const compressedImageData = await Promise.all(\r\n // images.map(async (image) => {\r\n // return {\r\n // blob: await imageCompression(image, compressOptions),\r\n // name: image.name,\r\n // };\r\n // })\r\n // );\r\n // // 圧縮処理\r\n\r\n // 圧縮処理\r\n var compressedImageData = await ImageCompressor(images);\r\n var form_data = new FormData();\r\n compressedImageData.forEach((imageData) => {\r\n form_data.append(\"images\", imageData.blob);\r\n });\r\n\r\n for (var key in values) {\r\n if (key === \"cancelableTime\")\r\n form_data.append(key, dayjs(values[key]).format(\"HH:mm:ss\"));\r\n else if (key === \"bookableTime\")\r\n form_data.append(key, dayjs(values[key]).format(\"HH:mm:ss\"));\r\n else if (key === \"bookableDeadlineTime\")\r\n form_data.append(key, dayjs(values[key]).format(\"HH:mm:ss\"));\r\n else if (key === \"decorateDescription\" || key === \"completeSentence\") {\r\n var val = JSON.stringify(values[key]);\r\n\r\n form_data.append(key, val);\r\n } else if (key === \"screens\") {\r\n var val = values[key];\r\n val.map((test, index) => {\r\n test.text = JSON.stringify(test.text); // WysiWygEditorの値をJSON化して保持しておく\r\n test.showOrder = index; // 並び順を設定する\r\n });\r\n form_data.append(key, JSON.stringify(val)); // screensはJson化してサーバーへ送る\r\n } else form_data.append(key, values[key]);\r\n }\r\n\r\n // ホームページを使用しない場合、予約項目区分を送信する\r\n if (!(hospital && hospital.useHomePage)) {\r\n form_data.append(\"departmentId\", data && data.departmentId ? data.departmentId : 0);\r\n }\r\n // 平均診療時間を送信する(非表示項目)\r\n form_data.append(\"aveTime\", data && data.aveTime ? data.aveTime : 0);\r\n\r\n const token = await authService.getAccessToken();\r\n\r\n if (deptId) {\r\n axios\r\n .put(\"api/hospitaldepts\", form_data, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(() => {\r\n setMsg(\"予約項目を更新しました。\");\r\n setSnackbarSeverity(\"success\");\r\n setOpen(true);\r\n setIsDisable(false);\r\n })\r\n .catch((error) => {\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n setIsDisable(false);\r\n });\r\n } else {\r\n axios\r\n .post(\"api/hospitaldepts\", form_data, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(() => {\r\n setMsg(\"予約項目を登録しました。\");\r\n setSnackbarSeverity(\"success\");\r\n setOpen(true);\r\n history.goBack();\r\n })\r\n .catch((error) => {\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n setIsDisable(false);\r\n });\r\n }\r\n }\r\n const handleSnackbarClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n // コンポーネント内でstateを変更するための処理\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n useEffect(() => {\r\n if (errors && Object.keys(errors).length > 0) {\r\n msgctx.enqueue(\"エラーがあります。入力内容をご確認ください。\", \"error\");\r\n }\r\n }, [errors]);\r\n\r\n // 削除処理\r\n const ToggleDelete = useCallback(async () => {\r\n let values = {};\r\n values[\"id\"] = deptId;\r\n const queryString = new URLSearchParams(values);\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .put(toggleDeleteUrl + \"?\" + queryString.toString(), null, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(() => {\r\n GetData();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n setMsg(\"削除に失敗しました。エラーメッセージを確認してください\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n\r\n dialogClose();\r\n });\r\n\r\n const button1Text = () => {\r\n return (\r\n <>\r\n 登録\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (deptId) {\r\n const f = async () => {\r\n GetData();\r\n };\r\n f();\r\n }\r\n if (hospitalId) {\r\n const f2 = async () => {\r\n GetHospitalData(hospitalId);\r\n };\r\n f2();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n setCanDelete(userctx.hasClaim(Claims.Hospital_Dept_Delete));\r\n }\r\n }, [userctx.claims]);\r\n\r\n useEffect(() => {\r\n if (userctx.user && data) {\r\n userctx.checkHospitalDept(data.hospitalId, deptId);\r\n }\r\n if (userctx.user && hospitalId) {\r\n userctx.checkHospitalDept(hospitalId, deptId);\r\n }\r\n }, [userctx.user, data]);\r\n\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n\r\n useEffect(() => {\r\n // console.log(\"getValues\");\r\n // console.log(getValues());\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {deptId ? (\r\n 予約項目 編集\r\n ) : (\r\n 予約項目 登録\r\n )}\r\n \r\n \r\n {msg}\r\n \r\n \r\n \r\n \r\n\r\n <>\r\n {data || !deptId ? (\r\n \r\n \r\n \r\n 基本情報\r\n \r\n \r\n \r\n \r\n {hospital && hospital.useHomePage && (\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 {hospital && hospital.useHomePage && (\r\n \r\n \r\n 予約項目区分\r\n \r\n \r\n }\r\n displayEmpty\r\n >\r\n \r\n \r\n }\r\n name=\"departmentId\"\r\n control={control}\r\n defaultValue={data && data.departmentId}\r\n />\r\n \r\n )}\r\n {hospital && hospital.useHomePage && (\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 {/* {hospital && hospital.useHomePage && (\r\n 分\r\n ),\r\n }}\r\n />\r\n )}\r\n {hospital && hospital.useHomePage && (\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 {watch(\"cancellationAvailability\") === \"2\" && (\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\n 予約時の備考2項目を必須化します\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 editorCompleteSentenceTextLength = val;\r\n }}\r\n />\r\n }\r\n name={`completeSentence`}\r\n control={control}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 予約が患者様に公開されます。OFFの場合も、職員様・管理者様には公開されます。\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 {watch(\"useMailText\") === true && (\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 setIsChangeOrder(e.target.checked)}\r\n />\r\n \r\n {/* 事前選択画面用リスト */}\r\n \r\n
\r\n
\r\n\r\n {hospital && hospital.useHomePage && (\r\n <>\r\n \r\n ホームページ\r\n \r\n 予約項目説明\r\n \r\n \r\n {\r\n editorTextLength = val;\r\n }}\r\n />\r\n }\r\n name={`decorateDescription`}\r\n control={control}\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 // TODO 所 作るかわからないのでかくす\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 {watch(\"isAllowOnlySpecifyIp\") && (\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 {deptId ? (\r\n canDelete ? (\r\n data.isDelete ? (\r\n {\r\n setToggleDeleteUrl(\"api/hospitaldepts/deletecancel\");\r\n dialogOpen(\"削除を取消してよろしいですか?\");\r\n }}\r\n isPaperInner={true}\r\n />\r\n ) : (\r\n {\r\n setToggleDeleteUrl(\"api/hospitaldepts/delete\");\r\n dialogOpen(\"削除してよろしいですか?\");\r\n }}\r\n isPaperInner={true}\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\nconst MstDivisionsRadioCustom = (props) => {\r\n const {\r\n divName,\r\n divLabel,\r\n divData,\r\n dateName,\r\n dateData,\r\n dateDndAdornment,\r\n timeName,\r\n timeData,\r\n watchGridClassName,\r\n endSentence,\r\n register,\r\n control,\r\n watch,\r\n setStateValue,\r\n addSchemaData,\r\n errors,\r\n classes,\r\n style,\r\n } = props;\r\n return (\r\n <>\r\n \r\n \r\n\r\n {(watch(divName) === \"2\" || watch(divName) === \"3\") && (\r\n \r\n \r\n \r\n \r\n \r\n {dateDndAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n \r\n {watch(divName) === \"3\" && (\r\n \r\n \r\n }\r\n name={timeName}\r\n control={control}\r\n defaultValue={timeData}\r\n className={style.textField}\r\n style={{ width: \"13rem\" }}\r\n label=\"指定時刻\"\r\n inputVariant=\"outlined\"\r\n inputProps={{ style: { textAlign: \"right\" } }}\r\n />\r\n \r\n \r\n )}\r\n \r\n  {endSentence}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","/**\r\n * @file 所属医師 一覧画面 (現状使用していません)\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n Fab,\r\n Grid,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n TableCell,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core/\";\r\nimport { Add, Edit, Search } from \"@material-ui/icons\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { sessionStorageKeys } from \"components/common/Const\";\r\nimport ListTitleDrawer from \"components/drawer/ListTitleDrawer\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport LinkFab from \"components/input/button/LinkFab\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport SearchInputGrid from \"components/input/textbox/SearchInputGrid\";\r\nimport SearchModal from \"components/modal/SearchModal\";\r\nimport PagenationTable2 from \"components/table/PagenationTable2\";\r\nimport { TableBorderedRow } from \"components/table/TableBorderedRow\";\r\nimport { TableHeaderCell } from \"components/table/TableHeaderCell\";\r\nimport TableSkeleton from \"components/table/TableSkeleton\";\r\nimport ListText from \"components/text/ListText\";\r\nimport TitleWithSubTitleText from \"components/text/TitleWithSubTitleText\";\r\nimport qs from \"qs\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function Doctors(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const hospitalId = qs.parse(props.location.search, {\r\n ignoreQueryPrefix: true,\r\n }).hospitalid; // 医療機関ID\r\n\r\n /* ステート,コンテキスト等 */\r\n const userctx = useContext(UserContext);\r\n\r\n const [hospitalName, setHospitalName] = useSafeState(unmountRef, undefined);\r\n\r\n const [itemData, setItemData] = useSafeState(unmountRef, null); // 診療科一覧\r\n const [searchModalOpen, setSearchModalOpen] = useSafeState(unmountRef, false); // 検索モーダルの開閉\r\n const MyComponent = React.forwardRef(LinkFab); // LinkFabにrefが渡せなくてエラーになるため、refを渡すようにする。\r\n const [refreshTable, setRefreshTable] = useSafeState(unmountRef, false); // PagenationTableにデータ再取得させるためのフラグ\r\n\r\n const [canCreate, setCanCreate] = useSafeState(unmountRef, false);\r\n const [canEdit, setCanEdit] = useSafeState(unmountRef, false);\r\n const [searchCondition, setSearchCondition] = useSafeState(unmountRef, {\r\n getDeleted: false,\r\n });\r\n\r\n /* 関数 */\r\n // 検索モーダルオープン\r\n const handleSearchModalOpen = () => {\r\n setSearchModalOpen(true);\r\n };\r\n // 検索モーダルクローズ\r\n const handleSearchModalClose = () => {\r\n setSearchModalOpen(false);\r\n };\r\n\r\n async function GetHospitalData() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/hospitals/search?isGetImage=false&id=\" + hospitalId, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n } else {\r\n setHospitalName(json.data[0].name);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetHospitalData error\", error);\r\n });\r\n\r\n // await GetImage();\r\n }\r\n\r\n // 一覧取得\r\n const GetDatas = useCallback(async (skip, take) => {\r\n let getUrl;\r\n\r\n let values = searchCondition;\r\n if (hospitalId) {\r\n values[\"hospitalid\"] = hospitalId;\r\n }\r\n\r\n getUrl =\r\n \"api/doctors/search?\" +\r\n new URLSearchParams(values) +\r\n \"&offset=\" +\r\n skip +\r\n \"&take=\" +\r\n take +\r\n \"&requireAllCount=true\";\r\n setSearchModalOpen(false);\r\n const token = await authService.getAccessToken();\r\n return await axios\r\n .get(getUrl, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n setItemData(response.data);\r\n return response;\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetUsers error\", error);\r\n return undefined;\r\n });\r\n });\r\n // 検索処理\r\n const SearchAction = () => {\r\n setRefreshTable(!refreshTable);\r\n return \"\";\r\n };\r\n\r\n const changeSearchCondition = useCallback((id, val) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[id] = val;\r\n setSearchCondition(cloned);\r\n });\r\n const changeGetDeleted = useCallback((e) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[\"getDeleted\"] = e.target.checked;\r\n setSearchCondition(cloned);\r\n });\r\n\r\n // 一覧テーブルのヘッダ\r\n const tableHeaderDef = useCallback(() => {\r\n return (\r\n <>\r\n \r\n Id\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 const tableBodyDef = useCallback(() => {\r\n return (\r\n <>\r\n {itemData ? (\r\n itemData.map((item, index) => (\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 {canEdit && (\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 const buttonsDef = [\r\n \r\n \r\n \r\n \r\n ,\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n // タイトル横リストの定義\r\n const listsDef = [\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n\r\n useEffect(() => {\r\n GetHospitalData();\r\n }, []);\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n setCanCreate(userctx.hasClaim(Claims.Doctor_Create));\r\n setCanEdit(userctx.hasClaim(Claims.Doctor_Edit));\r\n }\r\n }, [userctx.claims]);\r\n\r\n useEffect(() => {\r\n if (userctx.user) {\r\n userctx.checkHospitalDept(hospitalId, undefined);\r\n }\r\n }, [userctx.user]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n buttons={buttonsDef}\r\n lists={listsDef}\r\n />\r\n \r\n {!hospitalId && (\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 * @file 所属医師 登録/編集画面 (現状使用していません)\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport { Box, Grid, TextField } from \"@material-ui/core/\";\r\nimport {\r\n createMuiTheme,\r\n makeStyles,\r\n MuiThemeProvider,\r\n} from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { imageConst } from \"components/common/Const\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport ImageCompressor from \"components/image/ImageCompressor\";\r\nimport ImagesUpload from \"components/image/ImagesUpload\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport qs from \"qs\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport * as yup from \"yup\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n textField: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n}));\r\n// state更新用の関数\r\nfunction addSchemaDataFunc(id, value, state) {\r\n state[id] = value;\r\n return state;\r\n}\r\n\r\nconst formLabelsTheme = createMuiTheme({\r\n overrides: {\r\n MuiFormLabel: {\r\n asterisk: {\r\n color: \"#db3131\",\r\n \"&$error\": {\r\n color: \"#db3131\",\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default function DoctorEdit(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const { doctorId } = useParams(); // 所属医師ID ある場合は編集モード\r\n const hospitalId = qs.parse(props.location.search, {\r\n ignoreQueryPrefix: true,\r\n }).hospitalid; // 医療機関ID\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n const [data, setData] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n );\r\n const { history } = useReactRouter();\r\n\r\n const [images, setImages] = useSafeState(unmountRef, []); // 画像配列 File型\r\n\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useSafeState(\r\n unmountRef,\r\n false\r\n ); // 削除確認のダイアログ開閉\r\n const [confirmMsg, setConfirmMsg] = useSafeState(unmountRef);\r\n const [toggleDeleteUrl, setToggleDeleteUrl] = useSafeState(unmountRef);\r\n\r\n const userctx = useContext(UserContext);\r\n const msgctx = useContext(MessageContext);\r\n const [canDelete, setCanDelete] = useSafeState(unmountRef, false);\r\n\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n name: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const { register, handleSubmit, errors } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n // ダイアログ表示\r\n const dialogOpen = (msg) => {\r\n setConfirmMsg(msg);\r\n setConfirmDialogOpen(true);\r\n };\r\n // ダイアログを消す\r\n const dialogClose = () => {\r\n setConfirmDialogOpen(false);\r\n };\r\n\r\n async function GetData() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/doctors/search?GetDeleted=true&id=\" + doctorId, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setMsg(json.message);\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n } else {\r\n var data = json.data[0];\r\n setData(data);\r\n let imageList = [];\r\n var bin = atob(data.image.replace(/^.*,/, \"\"));\r\n // バイナリデータ化\r\n var buffer = new Uint8Array(bin.length);\r\n for (var i = 0; i < bin.length; i++) {\r\n buffer[i] = bin.charCodeAt(i);\r\n }\r\n // ファイルオブジェクト生成\r\n let file = new File([buffer.buffer], 0, { type: data.extention });\r\n\r\n imageList.push(file);\r\n\r\n setImages(imageList);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetData error\", error);\r\n });\r\n }\r\n\r\n // 普通にstateにセットすると、最後に実行されたもののみが処理される。\r\n // stateをfunctionを用いて更新することで、遅延評価時に順次実行されるっぽい。\r\n // https://career.levtech.jp/guide/knowhow/article/394/\r\n\r\n // submit時処理\r\n async function onSubmit(values) {\r\n // 圧縮処理\r\n var compressedImageData = await ImageCompressor(images);\r\n var form_data = new FormData();\r\n compressedImageData.forEach((imageData) => {\r\n form_data.append(\"images\", imageData.blob);\r\n });\r\n\r\n for (var key in values) {\r\n form_data.append(key, values[key]);\r\n }\r\n const token = await authService.getAccessToken();\r\n if (doctorId) {\r\n axios\r\n .put(\"api/doctors\", form_data, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(() => {\r\n setMsg(\"所属医師を更新しました。\");\r\n setSnackbarSeverity(\"success\");\r\n setOpen(true);\r\n })\r\n .catch(() => {\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n } else {\r\n axios\r\n .post(\"api/doctors\", form_data, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(() => {\r\n setMsg(\"所属医師を登録しました。\");\r\n setSnackbarSeverity(\"success\");\r\n setOpen(true);\r\n history.goBack();\r\n })\r\n .catch(() => {\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n }\r\n }\r\n const handleSnackbarClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n // 削除処理\r\n const ToggleDelete = useCallback(async () => {\r\n let values = {};\r\n values[\"id\"] = doctorId;\r\n const queryString = new URLSearchParams(values);\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .put(toggleDeleteUrl + \"?\" + queryString.toString(), null, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(() => {\r\n GetData();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n\r\n dialogClose();\r\n });\r\n\r\n useEffect(() => {\r\n if (doctorId) {\r\n const f = async () => {\r\n GetData();\r\n };\r\n f();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n setCanDelete(userctx.hasClaim(Claims.Doctor_Delete));\r\n }\r\n }, [userctx.claims]);\r\n\r\n useEffect(() => {\r\n if (userctx.user && hospitalId) {\r\n userctx.checkHospitalDept(hospitalId, undefined);\r\n }\r\n console.log(data);\r\n if (userctx.user && data)\r\n userctx.checkHospitalDept(data.hospitalId, undefined);\r\n }, [userctx.user, data]);\r\n\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n return (\r\n
\r\n \r\n \r\n \r\n {doctorId ? (\r\n 所属医師 編集\r\n ) : (\r\n 所属医師 登録\r\n )}\r\n \r\n {msg}\r\n \r\n \r\n \r\n\r\n <>\r\n {data || !doctorId ? (\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 {doctorId ? (\r\n canDelete ? (\r\n data.isDelete ? (\r\n {\r\n setToggleDeleteUrl(\"api/doctors/deletecancel\");\r\n dialogOpen(\"削除を取消してよろしいですか?\");\r\n }}\r\n />\r\n ) : (\r\n {\r\n setToggleDeleteUrl(\"api/doctors/delete\");\r\n dialogOpen(\"削除してよろしいですか?\");\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","import axios from \"axios\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport dayjs from \"dayjs\";\r\n\r\n/**\r\n * TimeTableDetailの週の診察時間を取得する。\r\n * @param {*} token authService.getAccessToken()で得られるトークン\r\n * @param {*} relationKey - KEYをFormDataで指定します\r\n * @returns 成功時はtrue エラー時はfalse を返却します\r\n */\r\nexport async function GetWeeklyDatas(hospitalId, deptId, token) {\r\n if (!token) {\r\n token = await authService.getAccessToken();\r\n }\r\n if (!token || !hospitalId || !deptId) {\r\n return false;\r\n }\r\n\r\n let values = {};\r\n values[\"hid\"] = hospitalId;\r\n values[\"did\"] = deptId;\r\n const queryString = new URLSearchParams(values);\r\n return await axios\r\n .get(\"api/timetables/weekly?\" + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n throw new Error(error);\r\n // return undefined;\r\n });\r\n}\r\n\r\n/**\r\n * TimeTableDetailの例外診察時間を取得する。\r\n * @param {*} token authService.getAccessToken()で得られるトークン\r\n * @param {*} relationKey - KEYをFormDataで指定します\r\n * @returns 成功時はtrue エラー時はfalse を返却します\r\n */\r\nexport async function GetExceptDatas(hospitalId, deptId, token) {\r\n if (!token) {\r\n token = await authService.getAccessToken();\r\n }\r\n if (!token || !hospitalId || !deptId) {\r\n return false;\r\n }\r\n\r\n let values = {};\r\n values[\"hid\"] = hospitalId;\r\n values[\"did\"] = deptId;\r\n const queryString = new URLSearchParams(values);\r\n return await axios\r\n .get(\"api/timetables/exceptiondata?\" + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n throw new Error(error);\r\n // return undefined;\r\n });\r\n}\r\n\r\n/**\r\n * TimeTableDetailの特定日の診察時間を取得する。\r\n * @param {*} token authService.getAccessToken()で得られるトークン\r\n * @param {*} relationKey - KEYをFormDataで指定します\r\n * @returns 成功時はtrue エラー時はfalse を返却します\r\n */\r\nexport async function GetTimeTableOfDay(hospitalId, deptId, targetDate, token) {\r\n if (!token) {\r\n token = await authService.getAccessToken();\r\n }\r\n if (!token || !hospitalId || !targetDate || !deptId) {\r\n return false;\r\n }\r\n\r\n let values = {};\r\n values[\"hid\"] = hospitalId;\r\n values[\"did\"] = deptId;\r\n values[\"targetDate\"] = targetDate;\r\n const queryString = new URLSearchParams(values);\r\n return await axios\r\n .get(\"api/timetables/timetableofday?\" + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n throw new Error(error);\r\n // return undefined;\r\n });\r\n}\r\n\r\n/**\r\n * TimeTableDetailを登録します\r\n * @param {*} token authService.getAccessToken()で得られるトークン\r\n * @param {*} hospitalId -病院ID\r\n * @param {*} deptId -予約項目ID =\"0\"の場合は共通枠\r\n * @param {*} bgnDate -適用開始日\r\n * @param {*} endDate -適用終了日\r\n * @param {*} isShowLimit -予約数上限を表示するか\r\n * @param {*} isSpot - 週の診察時間設定の場合true\r\n * @param {*} eventList -枠の時間FromTo、予約数上限、ラベル等を持つArray\r\n * @returns 成功時はtrue エラー時はfalse を返却します\r\n */\r\nexport async function InsertTimeTable(\r\n setError,\r\n hospitalId,\r\n deptId,\r\n bgnDate,\r\n endDate,\r\n isShowLimit,\r\n isForce,\r\n isSpot,\r\n eventList,\r\n token\r\n) {\r\n if (!token) {\r\n token = await authService.getAccessToken();\r\n }\r\n if (\r\n !token ||\r\n !hospitalId ||\r\n !deptId ||\r\n !bgnDate ||\r\n (!isSpot && !endDate) ||\r\n isShowLimit === undefined\r\n ) {\r\n console.log(\"error\");\r\n return false;\r\n }\r\n\r\n let values = {};\r\n values[\"hospitalId\"] = hospitalId;\r\n values[\"deptId\"] = deptId;\r\n // クライアント→サーバーでUTCになってしまうので、以下の対応をしている。\r\n values[\"bgnDate\"] = dayjs(bgnDate).format(\"YYYY-MM-DD HH:mm:ss\");\r\n values[\"endDate\"] = dayjs(endDate).format(\"YYYY-MM-DD HH:mm:ss\");\r\n values[\"isShowLimit\"] = isShowLimit;\r\n values[\"isForce\"] = isForce;\r\n values[\"isSpot\"] = isSpot;\r\n var events = [];\r\n\r\n if (eventList && eventList.length > 0) {\r\n eventList.map((event) => {\r\n var newEvent = {\r\n // クライアント→サーバーでUTCになってしまうので、以下の対応をしている。\r\n start: dayjs(event.start).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n end: dayjs(event.end).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n name: event.name,\r\n bookLimit: event.bookLimit,\r\n resourceId: event.resourceId,\r\n otherWeeks: event.otherWeeks,\r\n isInvisible: event.isInvisible,\r\n };\r\n\r\n events.push(newEvent);\r\n });\r\n }\r\n values[\"eventList\"] = events;\r\n\r\n let url = \"api/timetables/insert\";\r\n if (deptId === \"0\") url = \"api/timetables/insert_common\";\r\n\r\n return await axios\r\n .post(url, values, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n return true;\r\n })\r\n .catch(function (error) {\r\n if (error.response.data) {\r\n for (let key in error.response.data) {\r\n setError &&\r\n setError(\"summary\", { message: error.response.data[key][0] });\r\n }\r\n\r\n if (setError) {\r\n console.log(\r\n `errorSummary_${hospitalId}_${deptId}_${dayjs(bgnDate).format(\r\n \"YYYY/MM/DD\"\r\n )}`\r\n );\r\n var test = document.getElementById(\r\n `errorSummary_${hospitalId}_${deptId}_${dayjs(bgnDate).format(\r\n \"YYYY/MM/DD\"\r\n )}`\r\n );\r\n console.log(test);\r\n test && test.focus();\r\n }\r\n }\r\n return false;\r\n });\r\n}\r\n\r\n/**\r\n * TimeTableDetailを更新します\r\n * @param {*} token authService.getAccessToken()で得られるトークン\r\n * @param {*} timeTableId -タイムテーブルのID\r\n * @param {*} hospitalId -病院ID\r\n * @param {*} deptId -予約項目ID 予約項目ID =\"0\"の場合は共通枠\r\n * @param {*} bgnDate -適用開始日\r\n * @param {*} endDate -適用終了日\r\n * @param {*} isShowLimit -予約数上限を表示するか\r\n * @param {*} isSpot - 週の診察時間設定の場合true\r\n * @param {*} eventList -枠の時間FromTo、予約数上限、ラベル等を持つArray\r\n * @returns 成功時はtrue エラー時はfalse を返却します\r\n */\r\nexport async function UpdateTimeTable(\r\n setError,\r\n deleteList,\r\n timeTableId,\r\n hospitalId,\r\n deptId,\r\n bgnDate,\r\n endDate,\r\n isShowLimit,\r\n isForce,\r\n isSpot,\r\n eventList,\r\n token\r\n) {\r\n if (!token) {\r\n token = await authService.getAccessToken();\r\n }\r\n if (\r\n !token ||\r\n !hospitalId ||\r\n !deptId ||\r\n !bgnDate ||\r\n (!isSpot && !endDate) ||\r\n isShowLimit === undefined\r\n ) {\r\n console.log(\"error\");\r\n return false;\r\n }\r\n\r\n let values = {};\r\n values[\"timeTableId\"] = timeTableId;\r\n values[\"hospitalId\"] = hospitalId;\r\n values[\"deptId\"] = deptId;\r\n // クライアント→サーバーでUTCになってしまうので、以下の対応をしている。\r\n values[\"bgnDate\"] = dayjs(bgnDate).format(\"YYYY-MM-DD HH:mm:ss\");\r\n values[\"endDate\"] = dayjs(endDate).format(\"YYYY-MM-DD HH:mm:ss\");\r\n values[\"isShowLimit\"] = isShowLimit;\r\n values[\"isForce\"] = isForce;\r\n values[\"isSpot\"] = isSpot;\r\n values[\"deleteList\"] = deleteList;\r\n // eventListを直接変更するとデータが変わってしまうので新しく作って対応する。\r\n var events = [];\r\n const map1 = [\r\n { js: 0, bc: 13 },\r\n { js: 1, bc: 1 },\r\n { js: 2, bc: 3 },\r\n { js: 3, bc: 5 },\r\n { js: 4, bc: 7 },\r\n { js: 5, bc: 9 },\r\n { js: 6, bc: 11 },\r\n ];\r\n\r\n if (eventList && eventList.length > 0) {\r\n eventList.map((event) => {\r\n var resource = event.resourceId;\r\n if (isSpot) {\r\n // BigCalendarの曜日とJSの曜日を変換する\r\n var resource = map1.find((x) => x.js == bgnDate.getDay());\r\n if (resource) resource = resource.bc;\r\n }\r\n\r\n var newEvent = {\r\n id: event.id,\r\n // クライアント→サーバーでUTCになってしまうので、以下の対応をしている。\r\n start: dayjs(event.start).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n end: dayjs(event.end).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n name: event.name,\r\n bookLimit: event.bookLimit,\r\n resourceId: resource,\r\n otherWeeks: event.otherWeeks,\r\n isInvisible: event.isInvisible,\r\n };\r\n events.push(newEvent);\r\n });\r\n }\r\n values[\"eventList\"] = events;\r\n\r\n let url = \"api/timetables/update\";\r\n if (deptId === \"0\") url = \"api/timetables/update_common\";\r\n\r\n return await axios\r\n .put(url, values, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n return true;\r\n })\r\n .catch(function (error) {\r\n if (error.response && error.response.data) {\r\n for (let key in error.response.data) {\r\n setError &&\r\n setError(\"summary\", { message: error.response.data[key][0] });\r\n }\r\n\r\n if (setError) {\r\n console.log(\r\n `errorSummary_${hospitalId}_${deptId}_${dayjs(bgnDate).format(\r\n \"YYYY/MM/DD\"\r\n )}`\r\n );\r\n var test = document.getElementById(\r\n `errorSummary_${hospitalId}_${deptId}_${dayjs(bgnDate).format(\r\n \"YYYY/MM/DD\"\r\n )}`\r\n );\r\n console.log(test);\r\n test && test.focus();\r\n }\r\n }\r\n return false;\r\n });\r\n}\r\n\r\n/**\r\n * TimeTableDetailを削除します\r\n * @param {*} token authService.getAccessToken()で得られるトークン\r\n * @param {*} id - タイムテーブルid\r\n * @param {*} deptId -予約項目ID 予約項目ID =\"0\"の場合は共通枠\r\n * @returns 成功時はtrue エラー時はfalse を返却します\r\n */\r\nexport async function Delete(id, deptId, token) {\r\n if (!token) {\r\n token = await authService.getAccessToken();\r\n }\r\n if (!token || !id) {\r\n return false;\r\n }\r\n\r\n let url = \"api/timetables/delete/\";\r\n if (deptId === \"0\") url = \"api/timetables/delete_common/\";\r\n\r\n return await axios.delete(`${url}${id}`, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n });\r\n}\r\n\r\n/**\r\n * TimeTableDetailをコピーします\r\n * @param {*} token authService.getAccessToken()で得られるトークン\r\n * @param {*} ids - idのArray\r\n * @returns 成功時はtrue エラー時はfalse を返却します\r\n */\r\nexport async function CopyGet(hId, copyTarget, token) {\r\n if (!token) {\r\n token = await authService.getAccessToken();\r\n }\r\n if (!token || !hId || !copyTarget) {\r\n return false;\r\n }\r\n\r\n let values = {};\r\n values[\"hId\"] = hId;\r\n values[\"copyTarget\"] = copyTarget;\r\n const queryString = new URLSearchParams(values);\r\n return await axios.get(\"api/timetables/copy?\" + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n });\r\n}\r\n","import React from 'react';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\n\r\nexport const OverflowModalStyle = makeStyles((theme) => ({\r\n modal: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n search_root: {\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n overflow: \"scroll\",\r\n [theme.breakpoints.down('xs')]: {\r\n padding: theme.spacing(2, 1, 2),\r\n width: \"90vw\",\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n width: \"80vw\",\r\n height: \"80vh\",\r\n padding: theme.spacing(2, 1, 2),\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n width: \"60vw\",\r\n height: \"80vh\",\r\n padding: theme.spacing(2, 4, 2),\r\n },\r\n },\r\n\r\n}));","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Typography } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n dialogTitleText:{\r\n marginTop: theme.spacing(2),\r\n marginBottom: theme.spacing(2),\r\n color: theme.palette.primary.main,\r\n fontWeight:600\r\n },\r\n}));\r\n/**\r\n * ダイアログ用の文字列を表示するコンポーネントです。\r\n */\r\nexport default function DialogTitleText(props) {\r\n const classes = useStyles();\r\n const {\r\n textCenterClassName,\r\n } = props;\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { Grid } from \"@material-ui/core/\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardTimePicker,\r\n} from \"@material-ui/pickers\";\r\nimport jaLocale from \"date-fns/locale/ja\";\r\nimport AccessTimeIcon from \"@material-ui/icons/AccessTime\";\r\n\r\nclass ExtendedUtils extends DateFnsUtils {\r\n //getCalendarHeaderText(date) {\r\n // return format(date, \"yyyy年 MMM\", { locale: this.locale });\r\n //}\r\n //getDatePickerHeaderText(date) {\r\n // return format(date, \"MMMd日\", { locale: this.locale });\r\n //}\r\n //getYearText(date) {\r\n // return format(date, \"yyyy年\", { locale: this.locale });\r\n //}\r\n}\r\n\r\n/**\r\n * 検索項目用のGridに囲まれた日付を返します。\r\n * @module KeybordTimePicker\r\n * @example\r\n \r\n * @param {Object} props - KeyboardDatePickerに準ずる\r\n https://material-ui-pickers.dev/api/KeyboardDatePicker\r\n * @param {string} props.name - name\r\n * @param {string} props.className - 適用クラス\r\n * @param {string} props.text - 表示ラベル\r\n * @param {string} props.format - 日付表示フォーマット「yyyy/MM/dd」\r\n * @param {string} props.okLabel - OKボタンラベル「決定」\r\n * @param {string} props.cancelLabel - キャンセルボタンラベル「キャンセル」\r\n * @param {} props.other - そのほか\r\n */\r\nexport default function KeybordTimePicker(props) {\r\n const unmountRef = useUnmountRef();\r\n const {\r\n name,\r\n className,\r\n text,\r\n format,\r\n okLabel,\r\n cancelLabel,\r\n defaultValue,\r\n setValue,\r\n inputRef,\r\n clearErrors,\r\n ...other\r\n } = props;\r\n // 値保持用\r\n\r\n const [selectedTime, setSelectedTime] = useSafeState(\r\n unmountRef,\r\n defaultValue ? new Date(defaultValue) : null\r\n );\r\n // 値変更時処理\r\n const handleTimeChange = (time) => {\r\n setSelectedTime(time);\r\n clearErrors && clearErrors(name);\r\n setValue && setValue(name, time);\r\n };\r\n\r\n const [isTimeOpen, setIsTimeOpen] = useSafeState(unmountRef, false);\r\n const handleClick = () => {\r\n setIsTimeOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setIsTimeOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n // refを引き渡せないmaterialUiのコンポーネントをregisterに設定する\r\n inputRef && inputRef(name); // custom register Antd input\r\n }, [inputRef]);\r\n\r\n useEffect(() => {\r\n setValue && setValue(name, defaultValue ? new Date(defaultValue) : null);\r\n // if (defaultValue) handleTimeChange(defaultValue);\r\n }, [defaultValue]);\r\n\r\n return (\r\n \r\n \r\n handleClick()}\r\n onClose={() => handleClose()}\r\n open={isTimeOpen}\r\n KeyboardButtonProps={{\r\n \"aria-label\": \"時刻設定\",\r\n }}\r\n okLabel={okLabel ? okLabel : \"決定\"}\r\n cancelLabel={cancelLabel ? cancelLabel : \"キャンセル\"}\r\n keyboardIcon={}\r\n ampm={true}\r\n {...other}\r\n />\r\n \r\n \r\n );\r\n}\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport {\r\n Button,\r\n Grid,\r\n InputAdornment,\r\n Modal,\r\n TextField,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles, MuiThemeProvider } from \"@material-ui/core/styles\";\r\nimport { calendarStyle, requireRed } from \"components/common/Const\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport KeybordTimePicker from \"components/input/textbox/KeybordTimePicker\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport DialogTitleText from \"components/text/DialogTitleText\";\r\nimport { format, getDay, parse, startOfWeek } from \"date-fns\";\r\nimport ja from \"date-fns/locale/ja\";\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/ja\";\r\nimport { Calendar, dateFnsLocalizer, Views } from \"react-big-calendar\";\r\nimport \"react-big-calendar/lib/css/react-big-calendar.css\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport * as yup from \"yup\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport HelpToolTip from \"components/toolTip/HelpToolTip\";\r\nimport { Height, SettingsEthernet } from \"@material-ui/icons\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n calendar_root: {\r\n // 前日当日とかのボタンを消す\r\n \"& .rbc-toolbar\": {\r\n display: \"none\",\r\n },\r\n // // 日付毎の選択を消す\r\n // , \"& .rbc-allday-cell > .rbc-row-content\": {\r\n // display: \"none\",\r\n\r\n // }\r\n // 日\r\n \"& .rbc-time-header-content:nth-child(14)\": {\r\n backgroundColor: \"#ffc4c4\",\r\n },\r\n \"& .rbc-time-content > .rbc-time-column:nth-child(14)\": {\r\n backgroundColor: \"#ffc4c4\",\r\n },\r\n // 祝\r\n \"& .rbc-time-header-content:nth-child(odd)\": {\r\n backgroundColor: \"#ff7d7d\",\r\n },\r\n \"& .rbc-time-content > .rbc-day-slot:nth-child(odd)\": {\r\n backgroundColor: \"#ff7d7d\",\r\n },\r\n // , \"& .rbc-time-content > .rbc-day-slot:nth-child(odd) > .rbc-timeslot-group\": {\r\n // borderBottomColor: \"#ff5e5e\",\r\n // // borderColor: \"ff5e5e\"\r\n // }\r\n \"& .rbc-time-content > .rbc-day-slot:nth-child(odd) > .rbc-timeslot-group > .rbc-time-slot \":\r\n {\r\n borderTopColor: \"#ff5e5e\",\r\n },\r\n // 土\r\n \"& .rbc-time-header-content:nth-child(12)\": {\r\n backgroundColor: \"#cfefff\",\r\n },\r\n \"& .rbc-time-content > .rbc-time-column:nth-child(12)\": {\r\n backgroundColor: \"#cfefff\",\r\n },\r\n },\r\n calendar_row_big: {\r\n \"& .rbc-timeslot-group\": {\r\n minHeight: \"200px\",\r\n },\r\n },\r\n\r\n modal: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n search_root: {\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n overflowY: \"auto\",\r\n [theme.breakpoints.down(\"xs\")]: {\r\n padding: theme.spacing(2, 1, 2),\r\n width: \"90vw\",\r\n height: \"90vh\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"80vw\",\r\n height: \"95vh\",\r\n padding: theme.spacing(2, 1, 2),\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: \"60vw\",\r\n height: \"95vh\",\r\n padding: theme.spacing(2, 4, 2),\r\n },\r\n },\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n}));\r\n// const localizer = momentLocalizer(dayjs);\r\nvar localizedFormat = require(\"dayjs/plugin/localizedFormat\");\r\ndayjs.extend(localizedFormat);\r\nconst locales = {\r\n ja: ja,\r\n};\r\nconst localizer = dateFnsLocalizer({\r\n format,\r\n parse,\r\n startOfWeek,\r\n getDay,\r\n locales,\r\n});\r\n\r\nfunction getUniqueStr(myStrong) {\r\n var strong = 1000;\r\n if (myStrong) strong = myStrong;\r\n return (\r\n new Date().getTime().toString(16) +\r\n Math.floor(strong * Math.random()).toString(16)\r\n );\r\n}\r\n\r\nexport default function DayCalendar(props) {\r\n const unmountRef = useUnmountRef();\r\n const { events, setEvents, deleteList, setDeleteList } = props;\r\n // const [events, setEvents] = useSafeState(unmountRef, []);\r\n const [modalOpen, setModalOpen] = useSafeState(unmountRef, false);\r\n\r\n // モーダル入力項目用\r\n const [modalId, setModalId] = useSafeState(unmountRef, undefined);\r\n const [modalResourceId, setModalResourceId] = useSafeState(\r\n unmountRef,\r\n undefined\r\n );\r\n const [modalName, setModalName] = useSafeState(unmountRef, undefined);\r\n const [modalIsInvisible, setModalIsInvisible] = useSafeState(\r\n unmountRef,\r\n undefined\r\n );\r\n const [modalStart, setModalStart] = useSafeState(unmountRef, undefined);\r\n const [modalEnd, setModalEnd] = useSafeState(unmountRef, undefined);\r\n const [modalBookLimit, setModalBookLimit] = useSafeState(\r\n unmountRef,\r\n undefined\r\n );\r\n // const [modalIsShowLimit, setModalIsShowLimit] = useSafeState(unmountRef, undefined);\r\n\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useSafeState(\r\n unmountRef,\r\n false\r\n ); // 削除確認のダイアログ開閉\r\n\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n\r\n const [schemaData] = useSafeState(unmountRef, {\r\n name: yup\r\n .string()\r\n // .required(GetErrMsg(ErrMsgKey.required))\r\n .max(50, \"50文字以下としてください。\"),\r\n bookLimit: yup\r\n .number()\r\n .typeError(GetErrMsg(ErrMsgKey.number))\r\n .max(1000, \"1000までで入力してください\")\r\n .moreThan(-1, \"0以上の整数としてください\")\r\n .integer(\"0以上の整数としてください\"),\r\n start: yup.date().typeError(GetErrMsg(ErrMsgKey.time)),\r\n end: yup\r\n .date()\r\n .typeError(GetErrMsg(ErrMsgKey.time))\r\n .test(\r\n \"start => end\",\r\n \"診察開始時間と診察終了時間が不正です。\",\r\n function (value) {\r\n var start = this.parent.start;\r\n // var start = getValues(\"start\");\r\n var end = value;\r\n if (start && end) {\r\n return dayjs(start).format(\"LT\") < dayjs(end).format(\"LT\");\r\n }\r\n\r\n return true;\r\n }\r\n ),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const { register, errors, setError, clearErrors, setValue, getValues, watch } =\r\n useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n // ダイアログを消す\r\n const dialogClose = () => {\r\n setConfirmDialogOpen(false);\r\n };\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n\r\n const modalCloseFnc = () => {\r\n setModalOpen(false);\r\n };\r\n const modalOpenFnc = (event) => {\r\n //休診日のデータの場合は処理しない\r\n if (event.allDay) return;\r\n setModalName(event.name);\r\n setModalId(event.id);\r\n setModalResourceId(event.resourceId);\r\n setModalStart(event.start);\r\n setModalEnd(event.end);\r\n setModalBookLimit(event.bookLimit);\r\n setModalIsInvisible(event.isInvisible);\r\n // setModalIsShowLimit(event.isShowLimit);\r\n\r\n setModalOpen(true);\r\n };\r\n\r\n const modalOk = async () => {\r\n // 自力バリデーション\r\n var values = getValues();\r\n var isInvalid = false;\r\n await schema.validate(values, { abortEarly: false }).catch(function (err) {\r\n err.inner.map((error) =>\r\n setError(error.path, { message: error.message })\r\n );\r\n isInvalid = true;\r\n });\r\n\r\n // 時間枠の重複チェック\r\n events.find((x) => {\r\n if (\r\n x.id !== modalId &&\r\n x.resourceId === modalResourceId &&\r\n x.allDay === false\r\n ) {\r\n if (x.start < values.end && x.end > values.start) {\r\n setError(\"start\", {\r\n message: \"同一時間帯の予約枠があるため作成できません。\",\r\n });\r\n isInvalid = true;\r\n }\r\n }\r\n });\r\n\r\n if (isInvalid) return;\r\n\r\n // なぜかエラー情報が次に出るので消しておく。\r\n clearErrors();\r\n\r\n // タイトルが空の場合、時間をセットする\r\n if (!values.name)\r\n values.name = `${dayjs(values.start).format(\"HH:mm\")} ~ ${dayjs(\r\n values.end\r\n ).format(\"HH:mm\")}`;\r\n if (modalId) {\r\n // 更新の場合\r\n var newEvents = events.filter(() => {\r\n return true;\r\n });\r\n var target = newEvents.find((x) => x.id === modalId);\r\n target.title = values.name + \" \" + values.bookLimit + \"名\";\r\n target.name = values.name;\r\n target.start = values.start;\r\n target.end = values.end;\r\n target.bookLimit = values.bookLimit;\r\n target.isInvisible = values.isInvisible;\r\n\r\n setEvents(newEvents);\r\n } else {\r\n // 追加の場合\r\n var newEvents = events.filter(() => {\r\n return true;\r\n });\r\n var obj = [\r\n {\r\n id: \"new\" + getUniqueStr(),\r\n title: values.name + \" \" + values.bookLimit + \"名\",\r\n name: values.name,\r\n allDay: false,\r\n start: values.start,\r\n end: values.end,\r\n resourceId: modalResourceId,\r\n bookLimit: values.bookLimit,\r\n isInvisible: values.isInvisible,\r\n },\r\n ];\r\n\r\n setEvents([...newEvents, ...obj]);\r\n }\r\n\r\n modalCloseFnc();\r\n };\r\n\r\n const modalDelete = async () => {\r\n let strVal = String(modalId);\r\n if (!strVal) return;\r\n if (strVal.substr(0, 3) !== \"new\") {\r\n // 新規追加分以外は、削除リストに入れておく\r\n setDeleteList([...deleteList, modalId]);\r\n }\r\n var newEvents = events.filter((item) => {\r\n return !(item.id === modalId);\r\n });\r\n\r\n var resourceIdList = [];\r\n newEvents.map((event) => {\r\n resourceIdList.push(event.resourceId);\r\n });\r\n\r\n setEvents(newEvents);\r\n\r\n modalCloseFnc();\r\n dialogClose();\r\n };\r\n\r\n const handleSelect = ({ start, end, resourceId }) => {\r\n // 時間枠選択時\r\n setModalName(`${dayjs(start).format(\"HH:mm\")} ~ ${dayjs(end).format(\"HH:mm\")}`);\r\n setModalBookLimit(undefined);\r\n setModalId(undefined);\r\n setModalIsInvisible(undefined);\r\n\r\n setModalResourceId(resourceId);\r\n setModalStart(start);\r\n setModalEnd(end);\r\n\r\n setModalOpen(true);\r\n };\r\n const resourceMap = [{ resourceId: 1, resourceTitle: \"例外診察時間\" }];\r\n\r\n const getResourceTitle = (id) => {\r\n var target = resourceMap.find((rc) => {\r\n return rc.resourceId === id;\r\n });\r\n\r\n if (target)\r\n if (modalName) {\r\n return target.resourceTitle + \" : \" + modalName;\r\n } else {\r\n return target.resourceTitle;\r\n }\r\n else return \"\";\r\n };\r\n\r\n const [changeRow, setChangeRow] = useSafeState(unmountRef, false);\r\n const [changeStyle, setChangeStyle] = useSafeState(unmountRef, false);\r\n\r\n useEffect(() => {\r\n var st = `${classes.calendar_root}`;\r\n if (changeRow) st = `${st} ${classes.calendar_row_big}`;\r\n\r\n setChangeStyle(st);\r\n }, [changeRow]);\r\n\r\n const watchTime = watch([`start`, `end`])\r\n useEffect(() => {\r\n const name = getValues('name');\r\n if (!name || !name.match(/^\\d{2}:\\d{2} ~ \\d{2}:\\d{2}$/g)) return;\r\n setValue(`name`, `${dayjs(getValues('start')).format(\"HH:mm\")} ~ ${dayjs(getValues('end')).format(\"HH:mm\")}`);\r\n }, [watchTime.start, watchTime.end]);\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {`${getResourceTitle(modalResourceId)}`}\r\n \r\n \r\n \r\n \r\n \r\n {/* 日時fろmto */}\r\n \r\n {\r\n if (errors[\"name\"]) clearErrors(\"name\");\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 onChange={() => {\r\n if (errors[\"bookLimit\"]) clearErrors(\"bookLimit\");\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n setConfirmDialogOpen(true)}\r\n onClick3={modalCloseFnc}\r\n />\r\n \r\n \r\n \r\n
\r\n {/* */}\r\n
\r\n {/*\r\n なんか・・・BigCalendarのdefaultを1/1にすると、データは2/1で作成される。謎。、\r\n */}\r\n
\r\n カレンダーを縦に広げます}\r\n aria-label=\"row\"\r\n >\r\n {\r\n setChangeRow(!changeRow);\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","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport {\r\n Box,\r\n Button,\r\n Checkbox,\r\n FormControlLabel,\r\n FormLabel,\r\n Grid,\r\n InputAdornment,\r\n Modal,\r\n TextField,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles, MuiThemeProvider } from \"@material-ui/core/styles\";\r\nimport {\r\n calendarStyle,\r\n requireRed,\r\n weekDayMap,\r\n otherWeeksMap,\r\n} from \"components/common/Const\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport KeybordTimePicker from \"components/input/textbox/KeybordTimePicker\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport DialogTitleText from \"components/text/DialogTitleText\";\r\nimport { format, getDay, parse, startOfWeek } from \"date-fns\";\r\nimport ja from \"date-fns/locale/ja\";\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/ja\";\r\nimport { Calendar, dateFnsLocalizer, Views } from \"react-big-calendar\";\r\nimport \"react-big-calendar/lib/css/react-big-calendar.css\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport * as yup from \"yup\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport HelpToolTip from \"components/toolTip/HelpToolTip\";\r\nimport UseEffect2 from \"components/common/UseEffect2\";\r\nimport { Height, SettingsEthernet } from \"@material-ui/icons\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n calendar_root: {\r\n // display: \"none\",\r\n // 前日当日とかのボタンを消す\r\n \"& .rbc-toolbar\": {\r\n display: \"none\",\r\n },\r\n // \"& .rbc-time-header > .rbc-time-header-content\": {\r\n // minWidth: \"141px\",\r\n // },\r\n // 日\r\n \"& .rbc-time-header-content:nth-child(14)\": {\r\n backgroundColor: \"#ffc4c4\",\r\n },\r\n \"& .rbc-time-content > .rbc-time-column:nth-child(14)\": {\r\n backgroundColor: \"#ffc4c4\",\r\n },\r\n // 祝\r\n \"& .rbc-time-header-content:nth-child(odd)\": {\r\n backgroundColor: \"#ff7d7d\",\r\n },\r\n \"& .rbc-time-content > .rbc-day-slot:nth-child(odd)\": {\r\n backgroundColor: \"#ff7d7d\",\r\n // borderColor: \"ff5e5e\"\r\n },\r\n // , \"& .rbc-time-content > .rbc-day-slot:nth-child(odd) > .rbc-timeslot-group\": {\r\n // borderBottomColor: \"#ff5e5e\",\r\n // // borderColor: \"ff5e5e\"\r\n // }\r\n \"& .rbc-time-content > .rbc-day-slot:nth-child(odd) > .rbc-timeslot-group > .rbc-time-slot \":\r\n {\r\n borderTopColor: \"#ff5e5e\",\r\n // borderColor: \"ff5e5e\"\r\n },\r\n // 土\r\n \"& .rbc-time-header-content:nth-child(12)\": {\r\n backgroundColor: \"#cfefff\",\r\n },\r\n \"& .rbc-time-content > .rbc-time-column:nth-child(12)\": {\r\n backgroundColor: \"#cfefff\",\r\n // borderColor: \"ff5e5e\"\r\n },\r\n },\r\n calendar_col_big: {\r\n \"& .rbc-day-slot\": {\r\n minWidth: \"280px !important\",\r\n },\r\n \"& .rbc-time-header-content\": {\r\n minWidth: \"281px !important\",\r\n },\r\n },\r\n calendar_row_big: {\r\n \"& .rbc-timeslot-group\": {\r\n minHeight: \"200px\",\r\n },\r\n },\r\n\r\n modal: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n search_root: {\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n overflowY: \"auto\",\r\n [theme.breakpoints.down(\"xs\")]: {\r\n padding: theme.spacing(2, 1, 2),\r\n width: \"90vw\",\r\n height: \"90vh\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"80vw\",\r\n height: \"95vh\",\r\n padding: theme.spacing(2, 1, 2),\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: \"60vw\",\r\n height: \"95vh\",\r\n padding: theme.spacing(2, 4, 2),\r\n },\r\n },\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n}));\r\n// const localizer = momentLocalizer(dayjs);\r\nvar localizedFormat = require(\"dayjs/plugin/localizedFormat\");\r\ndayjs.extend(localizedFormat);\r\nconst locales = {\r\n ja: ja,\r\n};\r\nconst localizer = dateFnsLocalizer({\r\n format,\r\n parse,\r\n startOfWeek,\r\n getDay,\r\n locales,\r\n});\r\n\r\nfunction getUniqueStr(myStrong) {\r\n var strong = 1000;\r\n if (myStrong) strong = myStrong;\r\n return (\r\n new Date().getTime().toString(16) +\r\n Math.floor(strong * Math.random()).toString(16)\r\n );\r\n}\r\n\r\nexport default function WeekCalendar(props) {\r\n const unmountRef = useUnmountRef();\r\n const { events, setEvents, deleteList, setDeleteList } = props;\r\n // const [events, setEvents] = useSafeState(unmountRef, []);\r\n const [modalOpen, setModalOpen] = useSafeState(unmountRef, false);\r\n\r\n // モーダル入力項目用\r\n const [modalId, setModalId] = useSafeState(unmountRef, undefined);\r\n const [modalResourceId, setModalResourceId] = useSafeState(\r\n unmountRef,\r\n undefined\r\n );\r\n const [modalName, setModalName] = useSafeState(unmountRef, undefined);\r\n const [modalIsInvisible, setModalIsInvisible] = useSafeState(\r\n unmountRef,\r\n undefined\r\n );\r\n const [modalStart, setModalStart] = useSafeState(unmountRef, undefined);\r\n const [modalEnd, setModalEnd] = useSafeState(unmountRef, undefined);\r\n const [modalBookLimit, setModalBookLimit] = useSafeState(\r\n unmountRef,\r\n undefined\r\n );\r\n const [modalWeeks, setModalWeeks] = useSafeState(unmountRef, undefined);\r\n // const [modalIsShowLimit, setModalIsShowLimit] = useSafeState(unmountRef, undefined);\r\n\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useSafeState(\r\n unmountRef,\r\n false\r\n ); // 削除確認のダイアログ開閉\r\n\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n\r\n const [schemaData] = useSafeState(unmountRef, {\r\n name: yup\r\n .string()\r\n // .required(GetErrMsg(ErrMsgKey.required))\r\n .max(50, \"50文字以下としてください。\"),\r\n bookLimit: yup\r\n .number()\r\n .typeError(GetErrMsg(ErrMsgKey.number))\r\n .max(1000, \"1000までで入力してください\")\r\n .moreThan(-1, \"0以上の整数としてください\")\r\n .integer(\"0以上の整数としてください\"),\r\n start: yup.date().typeError(GetErrMsg(ErrMsgKey.time)),\r\n end: yup\r\n .date()\r\n .typeError(GetErrMsg(ErrMsgKey.time))\r\n .test(\r\n \"start => end\",\r\n \"診察開始時間と診察終了時間が不正です。\",\r\n function (value) {\r\n var start = this.parent.start;\r\n // var start = getValues(\"start\");\r\n var end = value;\r\n if (start && end) {\r\n return dayjs(start).format(\"LT\") < dayjs(end).format(\"LT\");\r\n }\r\n\r\n return true;\r\n }\r\n ),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const { register, errors, setError, clearErrors, setValue, getValues, watch } =\r\n useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n // ダイアログを消す\r\n const dialogClose = () => {\r\n setConfirmDialogOpen(false);\r\n };\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n\r\n const modalCloseFnc = () => {\r\n setModalOpen(false);\r\n };\r\n const modalOpenFnc = (event) => {\r\n //休診日のデータの場合は処理しない\r\n if (event.allDay) return;\r\n setModalName(event.name);\r\n setModalId(event.id);\r\n setModalResourceId(event.resourceId);\r\n setModalStart(event.start);\r\n setModalEnd(event.end);\r\n setModalBookLimit(event.bookLimit);\r\n setModalWeeks(event.otherWeeks);\r\n setModalIsInvisible(event.isInvisible);\r\n\r\n setModalOpen(true);\r\n };\r\n const findSameRcd = (events, resource) => {\r\n return events.find((x) => {\r\n return (\r\n x.resourceId === resource &&\r\n x.name === modalName &&\r\n dayjs(x.start).isSame(dayjs(modalStart)) &&\r\n dayjs(x.end).isSame(dayjs(modalEnd)) &&\r\n x.bookLimit === modalBookLimit &&\r\n JSON.stringify(x.otherWeeks) === JSON.stringify(modalWeeks) &&\r\n x.isInvisible === modalIsInvisible\r\n );\r\n });\r\n };\r\n\r\n const modalOk = async () => {\r\n var values = getValues();\r\n // 自力バリデーション\r\n var isInvalid = false;\r\n await schema.validate(values, { abortEarly: false }).catch(function (err) {\r\n err.inner.map((error) =>\r\n setError(error.path, { message: error.message })\r\n );\r\n isInvalid = true;\r\n });\r\n\r\n // 時間枠の重複チェック;\r\n events.find((x) => {\r\n if (\r\n x.id !== modalId &&\r\n x.resourceId === modalResourceId &&\r\n x.allDay === false &&\r\n (x.otherWeeks.find((y) => y === \"99\") ||\r\n values.otherWeeks.find((y) => y === \"99\") ||\r\n x.otherWeeks.find((y) => values.otherWeeks.find((z) => z === y)))\r\n ) {\r\n if (x.start < values.end && x.end > values.start) {\r\n if (x.otherWeeks.find((y) => y === \"99\"))\r\n setError(\"start\", {\r\n message: \"毎週同一時間帯の予約枠があるため作成できません。\",\r\n });\r\n else if (values.otherWeeks.find((y) => y === \"99\"))\r\n setError(\"start\", {\r\n message: \"同一時間帯の予約枠があるため作成できません。\",\r\n });\r\n else if (\r\n x.otherWeeks.find((y) => values.otherWeeks.find((z) => z === y))\r\n )\r\n setError(\"start\", {\r\n message: \"同一適用週同一時間帯の予約枠があるため作成できません。\",\r\n });\r\n\r\n isInvalid = true;\r\n }\r\n }\r\n\r\n // コピー先の曜日も併せてチェック\r\n if (values.copyResourceId.length > 0) {\r\n values.copyResourceId.map((item) => {\r\n var resource = Number(item);\r\n var target = findSameRcd(events, resource);\r\n if (\r\n (!target || (target && target.id !== x.id)) &&\r\n x.id !== modalId &&\r\n x.resourceId === resource &&\r\n x.allDay === false &&\r\n (x.otherWeeks.find((y) => y === \"99\") ||\r\n values.otherWeeks.find((y) => y === \"99\") ||\r\n x.otherWeeks.find((y) => values.otherWeeks.find((z) => z === y)))\r\n ) {\r\n if (x.start < values.end && x.end > values.start) {\r\n setError(\"start\", {\r\n message:\r\n \"コピー先に同一時間帯の予約枠があるため作成できません。\",\r\n });\r\n isInvalid = true;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (isInvalid) return;\r\n\r\n // なぜかエラー情報が次に出るので消しておく。\r\n clearErrors();\r\n\r\n // タイトルが空の場合、時間をセットする\r\n if (!values.name)\r\n values.name = `${dayjs(values.start).format(\"HH:mm\")} ~ ${dayjs(\r\n values.end\r\n ).format(\"HH:mm\")}`;\r\n\r\n // 適用週選択が空の場合、毎週をセットする\r\n if (\r\n !values.otherWeeks ||\r\n (values.otherWeeks && values.otherWeeks.length <= 0)\r\n ) {\r\n values.otherWeeks = [\"99\"];\r\n }\r\n\r\n if (modalId) {\r\n // 更新の場合\r\n var newEvents = events.filter(() => {\r\n return true;\r\n });\r\n var target = newEvents.find((x) => x.id === modalId);\r\n target.title = values.name + \" \" + values.bookLimit + \"名\";\r\n target.name = values.name;\r\n target.start = values.start;\r\n target.end = values.end;\r\n target.bookLimit = values.bookLimit;\r\n target.otherWeeks = values.otherWeeks;\r\n target.isInvisible = values.isInvisible;\r\n\r\n if (values.copyResourceId.length > 0) {\r\n // コピーする場合\r\n var obj = [];\r\n values.copyResourceId.map((item) => {\r\n var resource = Number(item);\r\n var target = findSameRcd(newEvents, resource);\r\n\r\n if (target) {\r\n // 同じように更新する\r\n target.title = values.name + \" \" + values.bookLimit + \"名\";\r\n target.name = values.name;\r\n target.start = values.start;\r\n target.end = values.end;\r\n target.bookLimit = values.bookLimit;\r\n target.otherWeeks = values.otherWeeks;\r\n target.isInvisible = values.isInvisible;\r\n } else {\r\n obj.push({\r\n id: \"new\" + getUniqueStr(),\r\n title: values.name + \" \" + values.bookLimit + \"名\",\r\n name: values.name,\r\n allDay: false,\r\n start: values.start,\r\n end: values.end,\r\n resourceId: resource,\r\n bookLimit: values.bookLimit,\r\n otherWeeks: values.otherWeeks,\r\n isInvisible: values.isInvisible,\r\n });\r\n }\r\n\r\n newEvents = newEvents.filter(\r\n (x) => !(x.allDay === true && x.resourceId === resource)\r\n );\r\n });\r\n newEvents = [...newEvents, ...obj];\r\n }\r\n\r\n setEvents(newEvents);\r\n } else {\r\n // 追加の場合\r\n\r\n var obj = [\r\n {\r\n id: \"new\" + getUniqueStr(),\r\n title: values.name + \" \" + values.bookLimit + \"名\",\r\n name: values.name,\r\n allDay: false,\r\n start: values.start,\r\n end: values.end,\r\n resourceId: modalResourceId,\r\n bookLimit: values.bookLimit,\r\n otherWeeks: values.otherWeeks,\r\n isInvisible: values.isInvisible,\r\n },\r\n ];\r\n\r\n var notHoliday = events.filter(\r\n (x) => !(x.allDay === true && x.resourceId === modalResourceId)\r\n );\r\n\r\n if (values.copyResourceId.length > 0) {\r\n // コピーする場合\r\n values.copyResourceId.map((item) => {\r\n var resource = Number(item);\r\n obj.push({\r\n id: \"new\" + getUniqueStr(),\r\n title: values.name + \" \" + values.bookLimit + \"名\",\r\n name: values.name,\r\n allDay: false,\r\n start: values.start,\r\n end: values.end,\r\n resourceId: resource,\r\n bookLimit: values.bookLimit,\r\n otherWeeks: values.otherWeeks,\r\n isInvisible: values.isInvisible,\r\n });\r\n\r\n notHoliday = notHoliday.filter(\r\n (x) => !(x.allDay === true && x.resourceId === resource)\r\n );\r\n });\r\n }\r\n\r\n setEvents([...notHoliday, ...obj]);\r\n }\r\n\r\n modalCloseFnc();\r\n };\r\n\r\n const modalDelete = async () => {\r\n if (!modalId) {\r\n modalCloseFnc();\r\n dialogClose();\r\n return;\r\n }\r\n let strVal = String(modalId);\r\n\r\n var deleteTargetList = [];\r\n var eventDeleteTargetList = [];\r\n eventDeleteTargetList.push(strVal);\r\n if (strVal.substr(0, 3) !== \"new\") {\r\n // 新規追加分以外は、削除リストに入れておく\r\n deleteTargetList.push(strVal);\r\n }\r\n var values = getValues();\r\n values.copyResourceId.map((item) => {\r\n var resource = Number(item);\r\n var target = findSameRcd(events, resource);\r\n\r\n if (target) {\r\n // 同じように削除\r\n let strVal2 = String(target.id);\r\n if (strVal2.substr(0, 3) !== \"new\") {\r\n // 新規追加分以外は、削除リストに入れておく\r\n deleteTargetList.push(strVal2);\r\n }\r\n eventDeleteTargetList.push(strVal2);\r\n }\r\n });\r\n\r\n if (deleteTargetList.length > 0)\r\n setDeleteList([...deleteList, ...deleteTargetList]);\r\n\r\n // 削除分以外のイベントリストにする。\r\n var newEvents = events.filter((item) => {\r\n return !eventDeleteTargetList.find((x) => x === String(item.id));\r\n });\r\n\r\n // 休診日表示のため、イベントリストからリソースIDを抽出\r\n var resourceIdList = [];\r\n newEvents.map((event) => {\r\n resourceIdList.push(event.resourceId);\r\n });\r\n for (var i = 0; i < 14; i++) {\r\n var target = resourceIdList.find((x) => x === i + 1);\r\n // リソースIDがない日を休診日に設定する。\r\n if (!target)\r\n newEvents.push({\r\n allDay: true,\r\n start: new Date(2020, 1, 1),\r\n end: new Date(2020, 1, 1),\r\n id: \"test\",\r\n title: \"休診日\",\r\n resourceId: i + 1,\r\n });\r\n }\r\n // if (newEvent)\r\n // setEvents(newEvent.concat(events));\r\n\r\n setEvents(newEvents);\r\n\r\n modalCloseFnc();\r\n dialogClose();\r\n };\r\n\r\n // 全て選択するチェック時処理 patternIndex = 0 平日 1 祝日\r\n const handleCheckAll = (patternIndex, checked) => {\r\n var objects = document.getElementsByName(\"copyResourceId\");\r\n const convertedObjects = [].map.call(objects, (element) => {\r\n return element;\r\n });\r\n var targetObjects = convertedObjects.filter(\r\n (x) => x.value % 2 !== patternIndex && x.checked !== checked\r\n );\r\n targetObjects.map((item) => {\r\n item.click();\r\n });\r\n };\r\n\r\n // 全て選択するチェック時処理\r\n const handleCheckWeeks = (val) => {\r\n var objects = document.getElementsByName(\"otherWeeks\");\r\n const convertedObjects = [].map.call(objects, (element) => {\r\n return element;\r\n });\r\n var targetObjects;\r\n if (val === \"99\")\r\n targetObjects = convertedObjects.filter(\r\n (x) => x.value !== \"99\" && x.checked === true\r\n );\r\n else\r\n targetObjects = convertedObjects.filter(\r\n (x) => x.value === \"99\" && x.checked === true\r\n );\r\n targetObjects.map((item) => {\r\n item.click();\r\n });\r\n };\r\n\r\n const handleSelect = ({ start, end, resourceId }) => {\r\n // 時間枠選択時\r\n setModalName(`${dayjs(start).format(\"HH:mm\")} ~ ${dayjs(end).format(\"HH:mm\")}`);\r\n setModalBookLimit(undefined);\r\n setModalId(undefined);\r\n setModalWeeks(undefined);\r\n\r\n setModalResourceId(resourceId);\r\n setModalStart(start);\r\n setModalEnd(end);\r\n setModalIsInvisible(undefined);\r\n\r\n setModalOpen(true);\r\n };\r\n\r\n const getResourceTitle = (id) => {\r\n var target = weekDayMap.find((rc) => {\r\n return rc.resourceId === id;\r\n });\r\n\r\n if (target)\r\n if (modalName) {\r\n return target.resourceTitle + \" : \" + modalName;\r\n } else {\r\n return target.resourceTitle;\r\n }\r\n else return \"\";\r\n };\r\n\r\n const [changeRow, setChangeRow] = useSafeState(unmountRef, false);\r\n const [changeCol, setChangeCol] = useSafeState(unmountRef, false);\r\n const [changeStyle, setChangeStyle] = useSafeState(unmountRef, false);\r\n\r\n useEffect(() => {\r\n var st = `${classes.calendar_root}`;\r\n if (changeRow) st = `${st} ${classes.calendar_row_big}`;\r\n if (changeCol) st = `${st} ${classes.calendar_col_big}`;\r\n\r\n setChangeStyle(st);\r\n }, [changeRow, changeCol]);\r\n\r\n UseEffect2(() => {\r\n if (!modalOpen) clearErrors();\r\n }, [modalOpen]);\r\n\r\n // useEffect(() => {\r\n // console.log(errors);\r\n // });\r\n\r\n const watchTime = watch([`start`, `end`])\r\n useEffect(() => {\r\n const name = getValues('name');\r\n if (!name || !name.match(/^\\d{2}:\\d{2} ~ \\d{2}:\\d{2}$/g)) return;\r\n setValue(`name`, `${dayjs(getValues('start')).format(\"HH:mm\")} ~ ${dayjs(getValues('end')).format(\"HH:mm\")}`);\r\n }, [watchTime.start, watchTime.end]);\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {`${getResourceTitle(modalResourceId)}`}\r\n \r\n \r\n \r\n \r\n \r\n {/* 日時fろmto */}\r\n \r\n {\r\n if (errors[\"name\"]) clearErrors(\"name\");\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 onChange={() => {\r\n if (errors[\"bookLimit\"]) clearErrors(\"bookLimit\");\r\n }}\r\n />\r\n \r\n \r\n \r\n 適用週選択\r\n \r\n {otherWeeksMap.map((item, index) => {\r\n var name = `otherWeeks`;\r\n return (\r\n {\r\n return String(x) === String(item.key);\r\n })\r\n ? true\r\n : false\r\n }\r\n onChange={(e) => {\r\n if (e.target.checked)\r\n handleCheckWeeks(e.target.value);\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 handleCheckAll(0, e.target.checked)\r\n }\r\n />\r\n }\r\n label=\"全曜日を選択する\"\r\n />\r\n \r\n \r\n \r\n handleCheckAll(1, e.target.checked)\r\n }\r\n />\r\n }\r\n label=\"全祝日を選択する\"\r\n />\r\n \r\n \r\n {/* コピーする曜日を選択 */}\r\n \r\n {weekDayMap.map((item, index) => {\r\n return (\r\n index % 2 === 0 &&\r\n (item.resourceId !== modalResourceId ? (\r\n findSameRcd(events, item.resourceId) ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : (\r\n \r\n ))\r\n );\r\n })}\r\n \r\n \r\n {weekDayMap.map((item, index) => {\r\n return (\r\n index % 2 === 1 &&\r\n (item.resourceId !== modalResourceId ? (\r\n findSameRcd(events, item.resourceId) ? (\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 setConfirmDialogOpen(true)}\r\n onClick3={modalCloseFnc}\r\n />\r\n \r\n \r\n \r\n
\r\n {/* */}\r\n
\r\n {/*\r\n なんか・・・BigCalendarのdefaultを1/1にすると、データは2/1で作成される。謎。、\r\n */}\r\n
\r\n カレンダーを縦に広げます}\r\n aria-label=\"row\"\r\n >\r\n {\r\n setChangeRow(!changeRow);\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n カレンダーを横に広げます}\r\n aria-label=\"row\"\r\n >\r\n {\r\n setChangeCol(!changeCol);\r\n }}\r\n style={{ marginLeft: \"0.5rem\" }}\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\nfunction ResourceChkBox(props) {\r\n const unmountRef = useUnmountRef();\r\n const { index, item, register, defaultChecked, ...others } = props;\r\n const [check, setCheck] = useSafeState(\r\n unmountRef,\r\n defaultChecked ? defaultChecked : false\r\n );\r\n return (\r\n setCheck(e.target.checked)}\r\n />\r\n }\r\n label={item.resourceTitle}\r\n style={{ width: \"85px\" }}\r\n {...others}\r\n />\r\n );\r\n}\r\nfunction WeekChkBox(props) {\r\n const unmountRef = useUnmountRef();\r\n const { index, value, title, register, onChange, defaultChecked, ...others } =\r\n props;\r\n const [check, setCheck] = useSafeState(\r\n unmountRef,\r\n defaultChecked ? defaultChecked : false\r\n );\r\n return (\r\n {\r\n setCheck(e.target.checked);\r\n onChange(e);\r\n }}\r\n // onChange={onChange}\r\n />\r\n }\r\n label={title}\r\n style={{ width: \"85px\" }}\r\n {...others}\r\n />\r\n );\r\n}\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport {\r\n Box,\r\n IconButton,\r\n InputAdornment,\r\n makeStyles,\r\n TextField,\r\n} from \"@material-ui/core/\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n} from \"@material-ui/pickers\";\r\nimport jaLocale from \"date-fns/locale/ja\";\r\nimport format from \"date-fns/format\";\r\nimport { ChevronLeft, ChevronRight, Event, Refresh } from \"@material-ui/icons\";\r\n\r\nif (jaLocale && jaLocale.options) {\r\n jaLocale.options.weekStartsOn = 0;\r\n}\r\n\r\nclass ExtendedUtils extends DateFnsUtils {\r\n getCalendarHeaderText(date) {\r\n return format(date, \"yyyy年 MMM\", { locale: this.locale });\r\n }\r\n getDatePickerHeaderText(date) {\r\n return format(date, \"MMMd日\", { locale: this.locale });\r\n }\r\n getYearText(date) {\r\n return format(date, \"yyyy年\", { locale: this.locale });\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme, props) => ({\r\n arrow: {\r\n verticalAlign: \"bottom\",\r\n backgroundColor: (props) =>\r\n props\r\n ? props.arrowColor == \"primary\"\r\n ? theme.palette.primary.light\r\n : props.arrowColor == \"secondary\"\r\n ? theme.palette.secondary.light\r\n : \"inherit\"\r\n : \"inherit\",\r\n color: (props) =>\r\n props\r\n ? props.arrowColor == \"primary\"\r\n ? theme.palette.primary.contrastText\r\n : props.arrowColor == \"secondary\"\r\n ? theme.palette.secondary.contrastText\r\n : \"inherit\"\r\n : \"inherit\",\r\n \"&:hover\": {\r\n backgroundColor: (props) =>\r\n props\r\n ? props.arrowColor == \"primary\"\r\n ? theme.palette.primary.primary\r\n : props.arrowColor == \"secondary\"\r\n ? theme.palette.secondary.primary\r\n : \"inherit\"\r\n : \"inherit\",\r\n color: (props) =>\r\n props\r\n ? props.arrowColor == \"primary\"\r\n ? theme.palette.primary.contrastText\r\n : props.arrowColor == \"secondary\"\r\n ? theme.palette.secondary.contrastText\r\n : \"inherit\"\r\n : \"inherit\",\r\n },\r\n },\r\n calendar_root: {\r\n \"& .MuiPickersCalendarHeader-daysHeader > .MuiPickersCalendarHeader-dayLabel:nth-child(1)\":\r\n {\r\n color: \"red\",\r\n },\r\n \"& .MuiPickersCalendar-week > div:nth-child(1)\": {\r\n backgroundColor: \"#ffc4c4\",\r\n },\r\n \"& .MuiPickersCalendarHeader-daysHeader > .MuiPickersCalendarHeader-dayLabel:nth-child(7)\":\r\n {\r\n color: \"blue\",\r\n },\r\n \"& .MuiPickersCalendar-week > div:nth-child(7)\": {\r\n backgroundColor: \"#cfefff\",\r\n },\r\n },\r\n}));\r\n\r\n/**\r\n * 検索項目用のGridに囲まれた日付を返します。\r\n * @module KeybordDatePickerJp\r\n * @example\r\n \r\n * @param {Object} props - KeyboardDatePickerに準ずる\r\n https://material-ui-pickers.dev/api/KeyboardDatePicker\r\n * @param {string} props.format - 日付表示フォーマット「yyyy/MM/dd」\r\n * @param {string} props.okLabel - OKボタンラベル「決定」\r\n * @param {string} props.cancelLabel - キャンセルボタンラベル「キャンセル」\r\n * @param {Date} props.defaultValue - 規定値\r\n * @param {Boolean} props.isShowNextArrow - 翌日の矢印を表示する\r\n * @param {Boolean} props.isShowPrevArrow - 前日の矢印を表示する\r\n * @param {} props.other - その他\r\n */\r\nexport default function KeybordDatePickerJp(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles(props);\r\n const {\r\n format,\r\n okLabel,\r\n cancelLabel,\r\n defaultValue,\r\n setValue,\r\n name,\r\n inputRef,\r\n clearErrors,\r\n onChangeSearch,\r\n isShowNextArrow,\r\n isShowPrevArrow,\r\n ...other\r\n } = props;\r\n // 値保持用\r\n const [selectedDate, setSelectedDate] = useSafeState(\r\n unmountRef,\r\n defaultValue ? new Date(defaultValue) : null\r\n );\r\n // 値変更時処理\r\n const handleDateChange = (date) => {\r\n setSelectedDate(date);\r\n onChangeSearch && onChangeSearch(name, date);\r\n clearErrors && clearErrors(name);\r\n setValue && setValue(name, date);\r\n };\r\n\r\n // 前日ボタン押下時\r\n const handlePrevArrowClick = () => {\r\n let date = new Date(selectedDate);\r\n date.setDate(date.getDate() - 1);\r\n handleDateChange(date);\r\n };\r\n\r\n // 翌日ボタン押下時\r\n const handleNextArrowClick = () => {\r\n let date = new Date(selectedDate);\r\n date.setDate(date.getDate() + 1);\r\n handleDateChange(date);\r\n };\r\n\r\n //validation設定/\r\n //let setValue = selectedDate;\r\n\r\n const [isCalendarOpen, setIsCalendarOpen] = useSafeState(unmountRef, false);\r\n const handleClick = () => {\r\n setIsCalendarOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setIsCalendarOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n // refを引き渡せないmaterialUiのコンポーネントをregisterに設定する\r\n inputRef && inputRef(name); // custom register Antd input\r\n }, [inputRef]);\r\n\r\n useEffect(() => {\r\n const date = defaultValue ? new Date(defaultValue) : null;\r\n setSelectedDate(date);\r\n setValue && setValue(name, date);\r\n // if (defaultValue) handleDateChange(defaultValue);\r\n }, [defaultValue]);\r\n\r\n return (\r\n \r\n \r\n {/* {\r\n isShowPrevArrow &&\r\n   \r\n } */}\r\n handleClick()}\r\n onClose={() => handleClose()}\r\n InputAdornmentProps\r\n KeyboardButtonProps={{\r\n \"aria-label\": \"日付設定\",\r\n }}\r\n invalidDateMessage=\"無効な日付です\"\r\n okLabel={okLabel ? okLabel : \"決定\"}\r\n cancelLabel={cancelLabel ? cancelLabel : \"キャンセル\"}\r\n name={name}\r\n DialogProps={{ className: classes.calendar_root }}\r\n TextFieldComponent={(props) => (\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n ),\r\n endAdornment: (\r\n \r\n handleClick()}\r\n >\r\n \r\n \r\n {isShowPrevArrow && (\r\n \r\n \r\n \r\n )}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n {...other}\r\n />\r\n\r\n {/* {\r\n isShowNextArrow &&\r\n  \r\n } */}\r\n \r\n \r\n );\r\n}\r\n","/**\r\n * @file 特定日 診察時間画面\r\n */\r\nimport React, { useEffect, useContext, useRef } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport { Grid, Hidden, Typography } from \"@material-ui/core/\";\r\nimport {\r\n createMuiTheme,\r\n makeStyles,\r\n MuiThemeProvider,\r\n useTheme,\r\n} from \"@material-ui/core/styles\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport {\r\n Delete,\r\n GetTimeTableOfDay,\r\n InsertTimeTable,\r\n UpdateTimeTable,\r\n} from \"components/api/TimeTableApi\";\r\nimport DayCalendar from \"components/calendar/DayCalendar\";\r\nimport WeekCalendar from \"components/calendar/WeekCalendar\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport KeybordDatePickerJp from \"components/input/textbox/KeybordDatePickerJp\";\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/ja\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport * as yup from \"yup\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport { Add } from \"@material-ui/icons\";\r\n\r\nvar localizedFormat = require(\"dayjs/plugin/localizedFormat\");\r\ndayjs.extend(localizedFormat);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n date_space: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n paddingTop: theme.spacing(2),\r\n },\r\n },\r\n}));\r\n\r\nexport default function ExaminationTimeRange(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const {\r\n timeTableId,\r\n hospitalId,\r\n deptId,\r\n newFlg,\r\n bgnDate,\r\n endDate,\r\n isShowLimit,\r\n isForce,\r\n isSpot,\r\n eventsList,\r\n handleSnackbarOpen,\r\n getData,\r\n } = props;\r\n\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useSafeState(\r\n unmountRef,\r\n false\r\n ); // 削除確認のダイアログ開閉\r\n const [events, setEvents] = useSafeState(unmountRef, eventsList);\r\n const [deleteList, setDeleteList] = useSafeState(unmountRef, []);\r\n\r\n const userctx = useContext(UserContext);\r\n const [canDelete, setCanDelete] = useSafeState(unmountRef, false);\r\n const [canEdit, setCanEdit] = useSafeState(unmountRef, false);\r\n const [canCreate, setCanCreate] = useSafeState(unmountRef, false);\r\n\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n bgnDate: yup.date().typeError(GetErrMsg(ErrMsgKey.date)),\r\n });\r\n const errProvider = useErrorMessageProvider();\r\n const [isDisable1, setIsDisable1] = useSafeState(unmountRef, false);\r\n const isInProgress = useRef(); //処理中かどうかのフラグ ボタンを押せないようにする等\r\n\r\n const formLabelsTheme = createMuiTheme({\r\n overrides: {\r\n MuiFormLabel: {\r\n asterisk: {\r\n color: \"#db3131\",\r\n \"&$error\": {\r\n color: \"#db3131\",\r\n },\r\n },\r\n },\r\n },\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const {\r\n register,\r\n handleSubmit,\r\n errors,\r\n setError,\r\n clearErrors,\r\n setValue,\r\n getValues,\r\n watch,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n // ダイアログを消す\r\n const dialogClose = () => {\r\n setConfirmDialogOpen(false);\r\n };\r\n\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n // 診察時間設定の場合\r\n if (!isSpot) {\r\n schemaData[\"endDate\"] = yup\r\n .date()\r\n .typeError(GetErrMsg(ErrMsgKey.date))\r\n .test(\r\n \"bgnDate => endDate\",\r\n \"適用開始日と適用終了日が不正です。\",\r\n function (value) {\r\n var start = this.parent.bgnDate;\r\n var end = value;\r\n if (start && end) {\r\n // return start <= end\r\n return dayjs(start).format(\"L\") <= dayjs(end).format(\"L\");\r\n }\r\n\r\n return true;\r\n }\r\n );\r\n setSchemaData(schemaData);\r\n }\r\n };\r\n f();\r\n\r\n const cleanup = () => {};\r\n return cleanup;\r\n }, []);\r\n\r\n const timeTableDelete = async () => {\r\n // 削除処理\r\n var result = await Delete(timeTableId, deptId)\r\n .then(() => {\r\n // console.log(\"timetableDeleteSuccess\");\r\n handleSnackbarOpen(\"削除しました\", \"success\");\r\n return true;\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n return false;\r\n });\r\n setConfirmDialogOpen(false);\r\n if (!result) {\r\n handleSnackbarOpen(\"削除に失敗しました。\", \"error\");\r\n return;\r\n }\r\n getData();\r\n };\r\n\r\n const onSubmit = async (values) => {\r\n if (isInProgress.current) return;\r\n\r\n setIsDisable1(true);\r\n isInProgress.current = true;\r\n var targetEvents = events.filter((x) => !x.allDay);\r\n if (isSpot) values.endDate = values.bgnDate;\r\n\r\n if (newFlg) {\r\n const f = async () => {\r\n var result = await InsertTimeTable(\r\n setError,\r\n hospitalId,\r\n deptId,\r\n values.bgnDate,\r\n values.endDate,\r\n values.isShowLimit,\r\n values.isForce,\r\n isSpot,\r\n targetEvents\r\n );\r\n if (!result) {\r\n handleSnackbarOpen(\"登録に失敗しました。\", \"error\");\r\n setIsDisable1(false);\r\n isInProgress.current = false;\r\n return;\r\n }\r\n // データを再取得する。\r\n handleSnackbarOpen(\"登録しました\", \"success\");\r\n getData();\r\n setIsDisable1(false);\r\n isInProgress.current = false;\r\n };\r\n f();\r\n } else {\r\n const f = async () => {\r\n var result = await UpdateTimeTable(\r\n setError,\r\n deleteList,\r\n timeTableId,\r\n hospitalId,\r\n deptId,\r\n values.bgnDate,\r\n values.endDate,\r\n values.isShowLimit,\r\n values.isForce,\r\n isSpot,\r\n targetEvents\r\n );\r\n if (!result) {\r\n handleSnackbarOpen(\"更新に失敗しました。\", \"error\");\r\n setIsDisable1(false);\r\n isInProgress.current = false;\r\n return;\r\n }\r\n // データを再取得する。\r\n handleSnackbarOpen(\"更新しました\", \"success\");\r\n getData();\r\n setIsDisable1(false);\r\n isInProgress.current = false;\r\n };\r\n f();\r\n }\r\n\r\n return;\r\n };\r\n\r\n const button1Text = () => {\r\n return (\r\n <>\r\n 登録\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (!isSpot) {\r\n // 休診日表示の設定\r\n var resourceIdList = [];\r\n events.map((event) => {\r\n resourceIdList.push(event.resourceId);\r\n });\r\n\r\n var newEvent = [];\r\n for (var i = 0; i < 14; i++) {\r\n var target = resourceIdList.find((x) => x === i + 1);\r\n if (!target)\r\n newEvent.push({\r\n allDay: true,\r\n start: new Date(2020, 1, 1),\r\n end: new Date(2020, 1, 1),\r\n id: \"test\",\r\n title: \"休診日\",\r\n resourceId: i + 1,\r\n });\r\n }\r\n if (newEvent) setEvents(newEvent.concat(events));\r\n }\r\n }, []);\r\n\r\n // useEffect(() => {\r\n // console.log(events);\r\n // });\r\n\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n if (deptId === \"0\") {\r\n // 共通枠の場合は、共通枠用の権限を見る\r\n setCanDelete(userctx.hasClaim(Claims.Common_Time_Table_Delete));\r\n setCanEdit(userctx.hasClaim(Claims.Common_Time_Table_Edit));\r\n setCanCreate(userctx.hasClaim(Claims.Common_Time_Table_Create));\r\n } else {\r\n setCanDelete(userctx.hasClaim(Claims.Time_Table_Delete));\r\n setCanEdit(userctx.hasClaim(Claims.Time_Table_Edit));\r\n setCanCreate(userctx.hasClaim(Claims.Time_Table_Create));\r\n }\r\n }\r\n }, [userctx.claims]);\r\n\r\n const [dateMsg, setDateMsg] = useSafeState(unmountRef);\r\n useEffect(() => {\r\n if (getValues(\"bgnDate\") && newFlg && isSpot) {\r\n // 新規行 かつ、 例外設定 かつ 日付が入力された場合、\r\n // 現時点で適用されるタイムテーブルを表示する。\r\n const f = async () => {\r\n await GetTimeTableOfDay(\r\n hospitalId,\r\n deptId,\r\n dayjs(getValues(\"bgnDate\")).format(\"YYYY/MM/DD\")\r\n )\r\n .then((data) => {\r\n if (data) {\r\n if (data.dateKind === 3) {\r\n setDateMsg(\"医療機関の休日のため、追加できません\");\r\n return;\r\n }\r\n\r\n if (!data.timeTableId) {\r\n setDateMsg(\"診察時間が設定されていない日です。\");\r\n return;\r\n }\r\n\r\n data.eventList.map((event, index) => {\r\n event.id = \"new\" + index;\r\n // なんか・・・BigCalendarのdefaultを1/1にすると、データは2/1じゃないと表示されないため、\r\n // ここで置き換える。謎\r\n event.title = event.name + \" \" + event.bookLimit + \"名\";\r\n event.start = dayjs(event.start).add(1, \"months\").toDate();\r\n event.end = dayjs(event.end).add(1, \"months\").toDate();\r\n });\r\n setEvents(data.eventList);\r\n\r\n // console.log(data);\r\n setIsDisable1(false);\r\n if (deptId === \"0\" && data.deptId === \"0\" && data.isSpot) {\r\n setDateMsg(\r\n \"医療機関共通の特定日の診察時間が適用済みのため、追加できません\"\r\n );\r\n setIsDisable1(true);\r\n } else if (deptId === \"0\" && data.deptId === \"0\" && data.isForce)\r\n setDateMsg(\r\n \"医療機関共通の診察時間が強制されているため、特定日の診察時間を強制する場合のみ優先されます\"\r\n );\r\n else if (deptId !== \"0\" && data.deptId === \"0\" && data.isForce)\r\n setDateMsg(\r\n \"医療機関共通の診察時間が強制されているため、そちらが優先されます\"\r\n );\r\n else if (data.deptId === \"0\" && !data.isSpot)\r\n setDateMsg(\"医療機関共通の診察時間が適用されています\");\r\n else if (data.deptId === \"0\" && data.isSpot)\r\n setDateMsg(\r\n \"医療機関共通の特定日の診察時間が適用されているため、そちらが優先されます\"\r\n );\r\n else if (data.deptId !== \"0\" && !data.isSpot)\r\n setDateMsg(\"課の診察時間が適用されています\");\r\n else if (data.deptId !== \"0\" && data.isSpot) {\r\n setDateMsg(\r\n \"課の特定日の診察時間が適用済みのため、追加できません\"\r\n );\r\n setIsDisable1(true);\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(\"GetTimeTableOfDay catch\");\r\n console.log(error);\r\n handleSnackbarOpen(\r\n \"エラーが発生しました。時間をおいて実施してください。\",\r\n \"error\"\r\n );\r\n });\r\n };\r\n f();\r\n }\r\n }, [watch(\"bgnDate\")]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {dateMsg && {dateMsg}}\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isSpot && (\r\n <>\r\n  ~ \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {!isSpot && }\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n // 共通設定の場合\r\n deptId === \"0\" && (\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 {!isSpot ? (\r\n \r\n ) : (\r\n <>\r\n {!getValues(\"bgnDate\") && newFlg ? (\r\n <>\r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {newFlg && canCreate && (\r\n \r\n )}\r\n {!newFlg && canEdit && canDelete && (\r\n setConfirmDialogOpen(true)}\r\n />\r\n )}\r\n {!newFlg && canEdit && !canDelete && (\r\n \r\n )}\r\n {!newFlg && !canEdit && canDelete && (\r\n setConfirmDialogOpen(true)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","/**\r\n * @file 予約枠設定画面\r\n */\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport {\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n AppBar,\r\n Box,\r\n Fab,\r\n FormControl,\r\n Grid,\r\n InputLabel,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n MenuItem,\r\n Modal,\r\n Paper,\r\n Select,\r\n Tab,\r\n Tabs,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { Add, ExpandMore, FileCopy } from \"@material-ui/icons\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport {\r\n Copy,\r\n CopyGet,\r\n GetExceptDatas,\r\n GetWeeklyDatas,\r\n} from \"components/api/TimeTableApi\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport ListTitleDrawer from \"components/drawer/ListTitleDrawer\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport { HospitalDeptWithHospitalSelectList } from \"components/input/selectlist/HospitalSelectList\";\r\nimport { OverflowModalStyle } from \"components/modal/ModalStyle\";\r\nimport DialogTitleText from \"components/text/DialogTitleText\";\r\nimport TitleWithSubTitleText from \"components/text/TitleWithSubTitleText\";\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/ja\";\r\nimport ExaminationTimeRange from \"pages/admin/timeTableDetail/ExaminationTimeRange\";\r\nimport qs from \"qs\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n textField: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n edit_button: {\r\n marginRight: theme.spacing(1),\r\n },\r\n tab_root: {\r\n flexGrow: 1,\r\n // backgroundColor: theme.palette.background.paper,\r\n },\r\n}));\r\n\r\n// タブ\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n 医療機関\r\n {\r\n setHidSelected(e.target.value);\r\n\r\n // await GetHolidays(e.target.value);\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 {depts &&\r\n depts.map((dept, index) => (\r\n \r\n {holidays &&\r\n holidays.filter((x) => x.deptId === dept.id).length > 0 && (\r\n \r\n }\r\n aria-controls=\"content\"\r\n id=\"header\"\r\n style={{\r\n backgroundColor: theme.palette.grey[300],\r\n borderRadius: \"3px\",\r\n }}\r\n >\r\n {{dept.name}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Id\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 {holidays\r\n .filter((x) => x.deptId === dept.id)\r\n .map((holiday, index) => (\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 length={15}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n holiday.holidayKind === 2\r\n ? dialogOpenOnStopInList(\r\n { id: dept.id },\r\n {\r\n holIdTimeTable:\r\n holiday.holidayId,\r\n holidayKind:\r\n holiday.holidayKind,\r\n }\r\n )\r\n : dialogOpenInList(\r\n { id: dept.id },\r\n {\r\n holIdTimeTable:\r\n holiday.holidayId,\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 {hidSelected && didSelected && (\r\n <>\r\n \r\n \r\n \r\n \r\n {userctx.hasClaim(Claims.Holiday_Create) &&\r\n userctx.user &&\r\n userctx.checkHospitalDept(hidSelected) && (\r\n setIsReserveStop(!isReserveStop)}\r\n name=\"reserveStop\"\r\n />\r\n }\r\n label={\r\n \r\n {isReserveStop\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","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport Hidden from \"@material-ui/core/Hidden\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableContainer from \"@material-ui/core/TableContainer\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport axios from \"axios\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport DialogTitleText from \"components/text/DialogTitleText\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\nimport { Today, Info } from \"@material-ui/icons\";\r\nimport { Chip } from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n icon: {\r\n color: theme.palette.secondary.main,\r\n },\r\n container: {\r\n maxHeight: 220,\r\n },\r\n adminBadge: {\r\n marginLeft: \"2px\",\r\n backgroundColor: theme.palette.warning.main,\r\n color: theme.palette.warning.contrastText,\r\n },\r\n badge: {\r\n marginLeft: \"2px\",\r\n backgroundColor: theme.palette.secondary.main,\r\n color: theme.palette.secondary.contrastText,\r\n },\r\n cardIcon: {\r\n marginBottom: \"4px\",\r\n verticalAlign: \"top\",\r\n },\r\n}));\r\n\r\nexport default function InformationTable(props) {\r\n const unmountRef = useUnmountRef();\r\n let isSuccess = false;\r\n const [, setErrorMessage] = useSafeState(unmountRef, \"\");\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const [informationContent, setInformationContent] = useSafeState(\r\n unmountRef,\r\n null\r\n );\r\n\r\n const { isNotTitle, isMyPage } = props;\r\n let isMyPageOpen = isMyPage ? isMyPage : false;\r\n\r\n const userCtx = useContext(UserContext);\r\n\r\n const [referenceHid, setReferenceHid] = useSafeState(unmountRef, 0);\r\n\r\n async function GetInformation() {\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/Information/list?isMypage=\" + isMyPageOpen, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setErrorMessage(json.errorMessage);\r\n } else {\r\n setInformationContent(json.data);\r\n }\r\n })\r\n .catch(function () {});\r\n }\r\n\r\n useEffect(() => {\r\n //この画面の表示時または、userCtxのhospitalIdが変更された際にお知らせが更新されます\r\n if (userCtx.hospital !== null) {\r\n if (userCtx.hospital.id !== referenceHid) {\r\n setReferenceHid(userCtx.hospital.id);\r\n GetInformation();\r\n }\r\n }\r\n }, [userCtx]);\r\n\r\n return (\r\n
\r\n {(() => {\r\n if (!isNotTitle) {\r\n return (\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 {informationContent ? (\r\n <>\r\n {informationContent.length > 0 ? (\r\n informationContent.map((info, index) => {\r\n return [\r\n <>\r\n \r\n \r\n {\" \"}\r\n {new Date(\r\n info.minInformationDate\r\n ).toLocaleDateString()}{\" \"}\r\n  \r\n {info.minIsAdmin === true && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {info.minText}\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 {informationContent ? (\r\n <>\r\n {informationContent.length > 0 ? (\r\n informationContent.map((info, index) => {\r\n return (\r\n \r\n \r\n {\" \"}\r\n {new Date(\r\n info.minInformationDate\r\n ).toLocaleDateString()}\r\n \r\n \r\n {info.minIsAdmin === true && (\r\n \r\n )}\r\n \r\n \r\n \r\n {info.minText}\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","import React, { Component } from \"react\";\r\nimport { Box, Paper, Grid, Typography } from \"@material-ui/core\";\r\nimport { makeStyles, Theme } from \"@material-ui/core/styles\";\r\n\r\nimport { Card, CardActionArea, CardContent } from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n categoryTitle: {\r\n color: \"white\",\r\n backgroundColor: theme.palette.primary.main,\r\n padding: theme.spacing(1),\r\n borderRadius: \"3px 3px 0 0\",\r\n },\r\n categoryContent: {\r\n textAlign: \"center\",\r\n color: theme.palette.primary.main,\r\n },\r\n cardContent: {\r\n padding: \"0px\",\r\n },\r\n cardContentPadding: {\r\n padding: theme.spacing(2),\r\n },\r\n}));\r\n\r\nexport function SimpleContentCard(props) {\r\n const classes = useStyles();\r\n const { handleCardClick, iconTag, title, content } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n {iconTag} \r\n {title}\r\n \r\n \r\n {content}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport function SimpleGraphCard(props) {\r\n const classes = useStyles();\r\n const { handleCardClick, iconTag, title, content } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n {iconTag} \r\n {title}\r\n \r\n
{content}
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport function SimpleCard(props) {\r\n const classes = useStyles();\r\n const { handleCardClick, iconTag, title, content } = props;\r\n const cardContent = (\r\n \r\n \r\n {iconTag} \r\n {title}\r\n \r\n {content}\r\n \r\n );\r\n return (\r\n \r\n {handleCardClick ? (\r\n {cardContent}\r\n ) : (\r\n <>{cardContent}\r\n )}\r\n \r\n );\r\n}\r\n","import {\r\n Button,\r\n fade,\r\n Grid,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n useMediaQuery,\r\n} from \"@material-ui/core/\";\r\nimport { blue, red } from \"@material-ui/core/colors\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport {\r\n ChangeHistory,\r\n ChevronLeft,\r\n ChevronRight,\r\n Close,\r\n RadioButtonUnchecked,\r\n Remove,\r\n Stop,\r\n} from \"@material-ui/icons\";\r\nimport clsx from \"clsx\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport {\r\n ApiGetDepts,\r\n ApiGetHospital,\r\n ApiGetMonthlyReservationTables,\r\n} from \"components/api/HospitalApi\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport DropDownListNative from \"components/input/selectlist/DropDownListNative\";\r\nimport { BootstrapInput } from \"components/input/textbox/BootstrapInput\";\r\nimport TableSkeleton from \"components/table/TableSkeleton\";\r\nimport {\r\n addMonths,\r\n eachDayOfInterval,\r\n eachWeekOfInterval,\r\n endOfMonth,\r\n endOfWeek,\r\n format,\r\n getDate,\r\n getDay,\r\n isBefore,\r\n isSameDay,\r\n isSameMonth,\r\n startOfMonth,\r\n subMonths,\r\n} from \"date-fns\";\r\nimport React, { useContext, useEffect } from \"react\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n tableHead: {\r\n color: (isShowDashboard) => {\r\n return theme.palette.secondary.contrastText;\r\n // isShowDashboard\r\n // ? theme.palette.primary.contrastText\r\n // : theme.palette.secondary.contrastText;\r\n },\r\n backgroundColor: (isShowDashboard) => {\r\n return fade(\r\n theme.palette.primary.main,\r\n // isShowDashboard ? 1 :\r\n 0.1\r\n );\r\n },\r\n },\r\n tableRow: {\r\n \"& td,th\": {\r\n borderRight: \"1px solid rgba(224, 224, 224, 1)\",\r\n },\r\n },\r\n}));\r\n\r\nexport default function MonthCalendar(props) {\r\n const unmountRef = useUnmountRef();\r\n const { hid, did, onClickDate, targetDate, setTargetDate, isShowDashboard } =\r\n props;\r\n const theme = useTheme();\r\n const userctx = useContext(UserContext);\r\n const [reserveInfo, setReserveInfo] = useSafeState(unmountRef);\r\n const calendar = getCalendarArray(targetDate);\r\n const today = new Date().setHours(0, 0, 0, 0);\r\n\r\n const classes = useStyles(isShowDashboard);\r\n\r\n const isSizeMdUp = useMediaQuery(theme.breakpoints.up(\"md\"));\r\n const isSizeSmDown = useMediaQuery(theme.breakpoints.down(\"sm\"));\r\n const isStaff = userctx.user && userctx.user.hospitalId === hid;\r\n\r\n const [deptSelected, setDeptSelected] = useSafeState(unmountRef, did);\r\n const [depts, setDepts] = useSafeState(unmountRef);\r\n async function GetDepts(hid) {\r\n await ApiGetDepts(hid)\r\n .then(function (response) {\r\n setDepts(response);\r\n })\r\n .catch(function () {});\r\n }\r\n\r\n const [hospital, setHospital] = useSafeState(unmountRef);\r\n async function GetHospital(hid) {\r\n await ApiGetHospital(hid)\r\n .then(function (response) {\r\n setHospital(response[0]);\r\n })\r\n .catch(function (error) {});\r\n }\r\n\r\n const GetReserveInfo = async () => {\r\n await ApiGetMonthlyReservationTables(\r\n hid,\r\n deptSelected,\r\n calendar[0][0],\r\n calendar.slice(-1)[0][6],\r\n isShowDashboard\r\n ).then((result) => {\r\n var objList = [];\r\n result.map((item) => {\r\n objList.push({\r\n date: new Date(item.targetDate),\r\n reservedCt: item.bookedCount,\r\n limitCt: item.limitCount,\r\n isShowLimit: item.isShowLimit,\r\n bookingStatus: item.bookingStatus,\r\n bookableCount: item.bookableCount,\r\n });\r\n });\r\n setReserveInfo(objList);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n await GetReserveInfo();\r\n if (isShowDashboard && !did) await GetDepts(hid);\r\n };\r\n f();\r\n }, [targetDate, deptSelected]);\r\n\r\n useEffect(() => {\r\n if (hid) {\r\n const f = async () => {\r\n GetHospital(hid);\r\n if (deptSelected && !did) {\r\n setDeptSelected(\"\");\r\n } else {\r\n setDeptSelected(did);\r\n await GetReserveInfo();\r\n }\r\n if (isShowDashboard && !did) await GetDepts(hid);\r\n };\r\n f();\r\n }\r\n }, [hid, did]);\r\n\r\n return (\r\n
\r\n {(isShowDashboard || !isSizeMdUp) && (\r\n \r\n \r\n setTargetDate(subMonths(targetDate, 1))}\r\n disabled={isSameMonth(today, targetDate)}\r\n style={{\r\n height: \"100%\",\r\n minWidth: \"unset\",\r\n width: \"100%\",\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n  \r\n \r\n {format(targetDate, \"y年M月\")}\r\n \r\n {/* {!isSizeSmDown && isShowDashboard && !did && (\r\n <>\r\n {\r\n setDeptSelected(e.target.value);\r\n }}\r\n input={}\r\n style={{\r\n width: \"200px\",\r\n position: \"absolute\",\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n }}\r\n >\r\n \r\n \r\n \r\n )} */}\r\n \r\n \r\n setTargetDate(addMonths(targetDate, 1))}\r\n style={{\r\n height: \"100%\",\r\n minWidth: \"unset\",\r\n width: \"100%\",\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n {isShowDashboard && !did && (\r\n \r\n \r\n {\r\n setDeptSelected(e.target.value);\r\n }}\r\n input={}\r\n style={{ width: \"100%\" }}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {!isShowDashboard && !isSizeSmDown && (\r\n \r\n setTargetDate(subMonths(targetDate, 1))}\r\n disabled={isSameMonth(today, targetDate)}\r\n color=\"primary\"\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 {reserveInfo ? (\r\n \r\n {calendar.map((weekRow, rowNum) => (\r\n \r\n {weekRow.map((date) => (\r\n isSameDay(date, x.date))\r\n }\r\n isShowDashboard={isShowDashboard}\r\n deptSelected={deptSelected}\r\n hospital={hospital}\r\n isStaff={isStaff}\r\n >\r\n {getDate(date)}\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 {!isShowDashboard && (\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 {!isShowDashboard && !isSizeSmDown && (\r\n \r\n setTargetDate(addMonths(targetDate, 1))}\r\n color=\"primary\"\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\nconst getCalendarArray = (date) => {\r\n // 月初と月末を指定し、カレンダー上の日曜日の一覧を取得\r\n const sundays = eachWeekOfInterval({\r\n start: startOfMonth(date),\r\n end: endOfMonth(date),\r\n });\r\n // カレンダー上の最初の日曜日から月末の土曜日までの日付のリストを返す\r\n return sundays.map((sunday) =>\r\n eachDayOfInterval({ start: sunday, end: endOfWeek(sunday) })\r\n );\r\n};\r\n\r\n// カレンダーセルのスタイル\r\nconst useCalendarCellStyles = makeStyles((theme) => ({\r\n calendarCell: {\r\n height: \"5rem\",\r\n \"&:hover\": {\r\n opacity: ({ isBefore, dateReserveInfo, isShowDashboard }) => {\r\n return isShowDashboard ||\r\n (!isShowDashboard &&\r\n !isBefore &&\r\n dateReserveInfo &&\r\n dateReserveInfo.bookableCount > 0)\r\n ? \"0.5\"\r\n : \"1\";\r\n },\r\n },\r\n position: \"relative\",\r\n color: ({ wday, isTargetMonth }) => {\r\n if (isTargetMonth) {\r\n switch (wday) {\r\n case 0: // Sunday\r\n return red[500];\r\n case 6: // Saturday\r\n return blue[500];\r\n default:\r\n return theme.palette.grey[700];\r\n }\r\n } else {\r\n // 当月以外\r\n switch (wday) {\r\n case 0: // Sunday\r\n return red[200];\r\n case 6: // Saturday\r\n return blue[200];\r\n default:\r\n return theme.palette.grey[500];\r\n }\r\n }\r\n },\r\n backgroundColor: ({ isToday, isTargetMonth }) =>\r\n isToday ? blue[50] : isTargetMonth ? \"inherit\" : theme.palette.grey[200],\r\n fontWeight: ({ isToday }) => (isToday ? \"bold\" : \"normal\"),\r\n },\r\n}));\r\n\r\n// カレンダーのセル\r\nfunction CalendarTableCell(props) {\r\n const {\r\n date,\r\n wday,\r\n isTargetMonth,\r\n isBefore,\r\n isToday,\r\n dateReserveInfo,\r\n children,\r\n onClickDate,\r\n isShowDashboard,\r\n deptSelected,\r\n hospital,\r\n isStaff,\r\n ...other\r\n } = props;\r\n const cellClasses = useCalendarCellStyles(props);\r\n const theme = useTheme();\r\n const isSizeXs = useMediaQuery(theme.breakpoints.down(\"xs\"));\r\n\r\n const clickable =\r\n isShowDashboard ||\r\n (!isShowDashboard &&\r\n !isBefore &&\r\n dateReserveInfo &&\r\n dateReserveInfo.bookableCount > 0) ||\r\n (hospital && hospital.isIgnoreLimitOnReserveMain && isStaff);\r\n\r\n const OnClickDate = () => {\r\n onClickDate && onClickDate(date, deptSelected);\r\n };\r\n const icon =\r\n !isBefore && dateReserveInfo && dateReserveInfo.limitCt > 0 ? (\r\n <>\r\n {isShowDashboard ? (\r\n <>\r\n \r\n {/* 999 */}\r\n {dateReserveInfo.reservedCt}\r\n \r\n\r\n \r\n  / \r\n {/* 999 */}\r\n {dateReserveInfo.limitCt}\r\n \r\n \r\n ) : (\r\n <>\r\n {dateReserveInfo.bookingStatus === 3 ? (\r\n \r\n ) : (\r\n // ) : dateReserveInfo.bookingStatus === 2 ? (\r\n // \r\n \r\n )}\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n );\r\n\r\n return (\r\n clickable && OnClickDate()}\r\n style={{ cursor: clickable ? \"pointer\" : \"inherit\", padding: \"0\" }}\r\n {...other}\r\n >\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n {icon}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","/**\r\n * @file 管理画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport InformationTable from \"components/table/InformationTable\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { makeStyles, Grid, CircularProgress } from \"@material-ui/core\";\r\nimport {\r\n Today,\r\n DoubleArrow,\r\n CheckCircle,\r\n Cancel,\r\n Timeline,\r\n EventNote,\r\n} from \"@material-ui/icons\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport axios from \"axios\";\r\nimport {\r\n SimpleCard,\r\n SimpleContentCard,\r\n SimpleGraphCard,\r\n} from \"components/card/SimpleContentCard\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport {\r\n LineChart,\r\n Line,\r\n XAxis,\r\n CartesianGrid,\r\n Tooltip,\r\n ResponsiveContainer,\r\n} from \"recharts\";\r\nimport { DeptIconImage } from \"components/image/DeptIconImage\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\nimport MonthCalendar from \"components/calendar/MonthCalendar\";\r\nimport dayjs from \"dayjs\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n title: {\r\n marginTop: theme.spacing(4),\r\n marginBottom: theme.spacing(4),\r\n color: theme.palette.primary.main,\r\n fontWeight: 600,\r\n },\r\n categoryTitle: {\r\n color: \"white\",\r\n backgroundColor: theme.palette.primary.main,\r\n padding: theme.spacing(1),\r\n borderRadius: \"3px\",\r\n },\r\n categoryContent: {\r\n textAlign: \"center\",\r\n color: theme.palette.primary.main,\r\n },\r\n dialogBox: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n \"& > div > div\": {\r\n minWidth: \"700px\",\r\n },\r\n },\r\n },\r\n cardBox: {\r\n padding: \"6px !important\",\r\n },\r\n cardContent: {\r\n padding: \"0px\",\r\n },\r\n cardIcon: {\r\n verticalAlign: \"top\",\r\n marginBottom: \"4px\",\r\n },\r\n svgIcon: {\r\n color: \"#ee9e9e\",\r\n \"& > svg\": {\r\n fill: \"currentColor\",\r\n },\r\n },\r\n}));\r\n\r\nexport default function Index(props) {\r\n const unmountRef = useUnmountRef();\r\n const userCtx = useContext(UserContext);\r\n const classes = useStyles();\r\n const [manage, setManage] = useSafeState(unmountRef, null);\r\n\r\n const { history } = useReactRouter();\r\n\r\n const [referenceHid, setReferenceHid] = useSafeState(unmountRef, 0);\r\n\r\n const [data, setData] = useSafeState(unmountRef, null);\r\n\r\n const [calendarDate, setCalendarDate] = useSafeState(unmountRef, new Date());\r\n\r\n async function GetManage() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .get(\"api/manage\", {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n } else {\r\n setManage(json.data);\r\n setData(json.data.weekData);\r\n }\r\n })\r\n .catch(function (error) {});\r\n }\r\n\r\n // const handleContentClick = (name) => {\r\n // history.push(`/manage/booking/${userCtx.user.hospitalId}?${name}`);\r\n // };\r\n const handleContentClick = (state) => {\r\n history.push({\r\n pathname: `/manage/booking/${userCtx.user.hospitalId}`,\r\n state: state,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n //この画面の表示時または、userCtxのhospitalIdが変更された際にお知らせが更新されます\r\n if (userCtx.hospital !== null) {\r\n if (userCtx.hospital.id !== referenceHid) {\r\n setReferenceHid(userCtx.hospital.id);\r\n GetManage();\r\n }\r\n }\r\n }, [userCtx]);\r\n\r\n // useEffect(() => {\r\n // GetManage();\r\n // }, [referenceHid]);\r\n\r\n return (\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 handleContentClick({\r\n defaultDate: new Date(),\r\n })\r\n }\r\n iconTag={}\r\n title=\"本日の予約\"\r\n content={\r\n manage ? (\r\n manage.reserveCount\r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n handleContentClick({\r\n defaultDate: new Date(),\r\n })\r\n }\r\n iconTag={}\r\n title=\"診察済み\"\r\n content={\r\n manage ? (\r\n manage.afterMedicalExaminationCount\r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n handleContentClick({\r\n defaultDate: new Date(),\r\n isCancel: true,\r\n })\r\n }\r\n iconTag={}\r\n title=\"キャンセル済\"\r\n content={\r\n manage ? (\r\n manage.cancelCount\r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n handleContentClick({\r\n defaultDate: dayjs().add(1, \"day\").toDate(),\r\n })\r\n }\r\n iconTag={}\r\n title=\"明日の予約\"\r\n content={\r\n manage ? (\r\n manage.tomorrowReserveCount\r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n \r\n \r\n }\r\n title=\"予約数推移\"\r\n content={\r\n data ? (\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 {userCtx.user && (\r\n \r\n handleContentClick(\"search=isTomorrow\")}\r\n iconTag={}\r\n title=\"月間の予約\"\r\n content={\r\n {\r\n if (deptId)\r\n handleContentClick({\r\n defaultDate: new Date(date),\r\n defaultDeptId: deptId,\r\n });\r\n else\r\n handleContentClick({ defaultDate: new Date(date) });\r\n }}\r\n >\r\n }\r\n />\r\n \r\n // \r\n // {\r\n // console.log(date);\r\n // }}\r\n // hid={userCtx.user.hospitalId}\r\n // did={userCtx.user.deptId ? userCtx.user.deptId : undefined}\r\n // targetDate={calendarDate}\r\n // setTargetDate={setCalendarDate}\r\n // isShowDashboard={true}\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// const DayReserveInfoModal = () => {\r\n// const { open, onClose, hid, did, date, ...others } = props;\r\n\r\n// const useLocalStyles = makeStyles((theme) => ({\r\n// modal: {\r\n// display: \"flex\",\r\n// alignItems: \"center\",\r\n// justifyContent: \"center\",\r\n// },\r\n// search_root: {\r\n// backgroundColor: theme.palette.background.paper,\r\n// boxShadow: theme.shadows[5],\r\n// overflowY: \"auto\",\r\n// [theme.breakpoints.down(\"xs\")]: {\r\n// padding: theme.spacing(2, 0, 2),\r\n// width: \"90vw\",\r\n// height: \"80vh\",\r\n// },\r\n// [theme.breakpoints.up(\"sm\")]: {\r\n// width: \"80vw\",\r\n// height: \"80vh\",\r\n// padding: theme.spacing(2, 1, 2),\r\n// },\r\n// [theme.breakpoints.up(\"md\")]: {\r\n// width: \"60vw\",\r\n// height: \"80vh\",\r\n// padding: theme.spacing(2, 4, 2),\r\n// },\r\n// },\r\n// }));\r\n// const classes = useLocalStyles();\r\n// return (\r\n// \r\n// \r\n// \r\n// \r\n// {inputs}\r\n// \r\n// \r\n// \r\n// \r\n// );\r\n// };\r\n","/**\r\n * @file 登録情報画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport {\r\n Grid,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableRow,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport { ApiGetDept, ApiGetHospital } from \"components/api/HospitalApi\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport LinkButton from \"components/input/button/LinkButton\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport ManageMenuPaper from \"components/paper/ManageMenuPaper\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n table: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n paddingLeft: theme.spacing(6),\r\n paddingRight: theme.spacing(6),\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n fontSize:\"80%\"\r\n },\r\n },\r\n cellTitle: {\r\n padding:0,\r\n textAlign:\"center\",\r\n borderBottom: \"1px solid \" + theme.palette.primary.main,\r\n width: \"30%\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n width: \"40%\",\r\n },\r\n },\r\n cellContent: {\r\n paddingLeft:theme.spacing(6),\r\n [theme.breakpoints.down(\"sm\")]: {\r\n paddingLeft:theme.spacing(4),\r\n }\r\n },\r\n}));\r\n\r\nexport default function AccountIndex() {\r\n const unmountRef = useUnmountRef();\r\n const [user, setUser] = useSafeState(unmountRef);\r\n const [hospital, setHospital] = useSafeState(unmountRef);\r\n const [dept, setDept] = useSafeState(unmountRef);\r\n const userctx = useContext(UserContext);\r\n\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n );\r\n\r\n // ユーザー情報の取得\r\n async function GetUser() {\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/Account\", {\r\n // await fetch('api/Account?id=' + userctx.user.sub + '&userName=' + userctx.user.name, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n setUser(response.data);\r\n }\r\n })\r\n .catch(function (error) {\r\n setMsg(\r\n \"登録情報の取得に失敗しました。時間をおいて再度実行してください。\"\r\n );\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n\r\n console.log(\"getUser error\", error);\r\n });\r\n }\r\n // スナックバーのクローズ処理\r\n const handleSnackbarClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n await GetUser();\r\n };\r\n f();\r\n }, []);\r\n useEffect(() => {\r\n if (user) {\r\n ApiGetHospital(user.hospitalId)\r\n .then(function (response) {\r\n setHospital(response[0]);\r\n })\r\n .catch(function () {\r\n //setError(\"summary\", { type: \"manual\", message: GetErrMsg(ErrMsgKey.unexpected) });\r\n });\r\n\r\n ApiGetDept(user.deptId)\r\n .then(function (response) {\r\n setDept(response);\r\n })\r\n .catch(function () {\r\n //setError(\"summary\", { type: \"manual\", message: GetErrMsg(ErrMsgKey.unexpected) });\r\n });\r\n }\r\n }, [user]);\r\n\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {msg}\r\n \r\n \r\n 登録情報\r\n {user && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n ユーザーID\r\n \r\n \r\n {user != null ? user.userName : \"\"}\r\n \r\n \r\n \r\n \r\n 氏名\r\n \r\n \r\n {user != null ? user.contactPersonName : \"\"}\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n {user != null ? user.email : \"\"}\r\n \r\n \r\n {hospital && (\r\n \r\n \r\n 医療機関\r\n \r\n \r\n {hospital.name}\r\n \r\n \r\n )}\r\n {dept && (\r\n \r\n \r\n 予約項目\r\n \r\n \r\n {dept.name}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n \r\n {userctx.claims && userctx.hasClaim(Claims.Edit_Account_Info) && (\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 * @file 登録情報変更画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport { Grid, TextField } from \"@material-ui/core/\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { ApiGetDept, ApiGetHospital } from \"components/api/HospitalApi\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport * as yup from \"yup\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport ManageMenuPaper from \"components/paper/ManageMenuPaper\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n readOnlyTextField: {\r\n backgroundColor: \"#cfcfcf\",\r\n },\r\n}));\r\n\r\nexport default function AccountEdit() {\r\n const unmountRef = useUnmountRef();\r\n const { history } = useReactRouter();\r\n const msgctx = useContext(MessageContext);\r\n\r\n const [user, setUser] = useSafeState(unmountRef);\r\n const [hospital, setHospital] = useSafeState(unmountRef);\r\n const [dept, setDept] = useSafeState(unmountRef);\r\n\r\n const [submitDisabled, setSubmitDisabled] = useSafeState(unmountRef, false); //submitボタンの活性制御\r\n\r\n // yap のスキーマデータを他コンポーネントでも更新するためにstateに入れておく\r\n const [schemaData] = useSafeState(unmountRef, {\r\n email: yup.string().email(GetErrMsg(ErrMsgKey.email)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n const {\r\n register,\r\n handleSubmit,\r\n errors,\r\n getValues,\r\n setError /* setError, clearError*/,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n }); //react-hooks-form\r\n\r\n // state更新用の関数\r\n // ユーザー情報の取得\r\n async function GetUser() {\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/Account\", {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n setUser(response.data);\r\n }\r\n })\r\n .catch(function (error) {\r\n msgctx.enqueue(\r\n \"登録情報の取得に失敗しました。時間をおいて再度実行してください。\",\r\n \"error\"\r\n );\r\n\r\n console.log(\"getUser error\", error);\r\n });\r\n }\r\n\r\n // サブミット処理\r\n const onSubmitData = async (values) => {\r\n // ボタン非活性\r\n setSubmitDisabled(true);\r\n // データ更新API\r\n values[\"id\"] = user.id;\r\n\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .put(\"api/account\", values, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n //正常時\r\n // alert(\"更新しました\");\r\n msgctx.enqueueNotClose(\"登録情報を更新しました\", \"success\");\r\n history.goBack();\r\n })\r\n .catch(function (error) {\r\n if (error.response.data)\r\n for (let key in error.response.data) {\r\n setError && key\r\n ? setError(key, { message: error.response.data[key][0] })\r\n : setError(\"summary\", { message: error.response.data[key][0] });\r\n }\r\n\r\n // ボタン活性\r\n setSubmitDisabled(false);\r\n msgctx.enqueue(\r\n \"エラーが発生しました。時間をおいて再度実行してください。\",\r\n \"error\"\r\n );\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n GetUser();\r\n };\r\n f();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (user) {\r\n ApiGetHospital(user.hospitalId)\r\n .then(function (response) {\r\n setHospital(response[0]);\r\n })\r\n .catch(function () {\r\n //setError(\"summary\", { type: \"manual\", message: GetErrMsg(ErrMsgKey.unexpected) });\r\n });\r\n\r\n ApiGetDept(user.deptId)\r\n .then(function (response) {\r\n setDept(response);\r\n })\r\n .catch(function () {\r\n //setError(\"summary\", { type: \"manual\", message: GetErrMsg(ErrMsgKey.unexpected) });\r\n });\r\n }\r\n }, [user]);\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n 登録情報 変更\r\n \r\n \r\n\r\n {user && (\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 {hospital && (\r\n \r\n \r\n \r\n )}\r\n {dept && (\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 * @file パスワード変更画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport {\r\n Container,\r\n Grid,\r\n Paper,\r\n TextField,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport {\r\n Claims,\r\n QueryParameterNames,\r\n} from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport * as yup from \"yup\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport { ApplicationPaths } from \"components/api-authorization/ApiAuthorizationConstants\";\r\n\r\n//スタイル\r\nconst useStyles = makeStyles((theme) => ({\r\n textField: {\r\n // margin: theme.spacing(1)\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function PasswordEdit() {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n\r\n const { pUserName } = useParams(); // userId ある場合は、ユーザー一覧からの遷移\r\n const [userName, setUserName] = useSafeState(unmountRef, pUserName);\r\n const userctx = useContext(UserContext);\r\n const msgctx = useContext(MessageContext);\r\n\r\n const [msg] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity] = useSafeState(unmountRef, \"error\");\r\n const [dispOk, setDispOk] = useSafeState(unmountRef, false);\r\n const [submitDisabled, setSubmitDisabled] = useSafeState(unmountRef, false); //submitボタンの活性制御\r\n\r\n // yap のスキーマデータを他コンポーネントでも更新するためにstateに入れておく\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n password: yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .min(8, GetErrMsg(ErrMsgKey.passwordPolicy))\r\n .max(100, GetErrMsg(ErrMsgKey.passwordPolicy))\r\n .matches(\"^[a-zA-Z0-9-.@]*$\", \"半角英数と「-.@」が利用可能です。\"),\r\n confirmPassword: yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .oneOf([yup.ref(\"password\"), null], GetErrMsg(ErrMsgKey.passwordUnmatch)),\r\n });\r\n\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const { register, handleSubmit, errors, setError, getValues } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n const { history } = useReactRouter();\r\n\r\n // スナックバーのクローズ処理\r\n const handleSnackbarClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const GetUser = useCallback(async (userName) => {\r\n let getUrl;\r\n\r\n let values = {};\r\n if (userName) {\r\n values[\"userName\"] = userName;\r\n }\r\n\r\n getUrl = \"api/users/byname?\" + new URLSearchParams(values);\r\n const token = await authService.getAccessToken();\r\n return await axios\r\n .get(getUrl, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetUsers error\", error);\r\n return undefined;\r\n });\r\n });\r\n\r\n useEffect(() => {\r\n //ここに通常更新時のロジックを書く\r\n return function cleanup() {\r\n //ここにはUnmount時のロジックを書く\r\n };\r\n });\r\n useEffect(() => {\r\n if (userctx.user) {\r\n if (!pUserName) setUserName(userctx.user.userName);\r\n else {\r\n const f = async () => {\r\n var user = await GetUser(pUserName);\r\n if (!user) {\r\n msgctx.enqueueNotClose(\r\n GetErrMsg(ErrMsgKey.checkHospitalDept),\r\n \"error\"\r\n );\r\n return history.replace(\"/manage\");\r\n }\r\n if (\r\n user.hospitalId &&\r\n userctx.user.hospitalId &&\r\n user.hospitalId !== userctx.user.hospitalId &&\r\n !userctx.hasClaim(Claims.Manage_All_Hospitals)\r\n ) {\r\n msgctx.enqueueNotClose(\r\n GetErrMsg(ErrMsgKey.checkHospitalDept),\r\n \"error\"\r\n );\r\n return history.replace(\"/manage\");\r\n }\r\n if (\r\n user.deptId &&\r\n userctx.user.deptId &&\r\n user.deptId !== userctx.user.deptId &&\r\n !userctx.hasClaim(Claims.Manage_All_Depts)\r\n ) {\r\n msgctx.enqueueNotClose(\r\n GetErrMsg(ErrMsgKey.checkHospitalDept),\r\n \"error\"\r\n );\r\n return history.replace(\"/manage\");\r\n }\r\n setDispOk(true);\r\n };\r\n\r\n f();\r\n }\r\n\r\n setDispOk(true);\r\n\r\n if (\r\n !(\r\n userctx &&\r\n userctx.hasClaim(Claims.Change_Password_Others) &&\r\n pUserName &&\r\n userctx.user &&\r\n pUserName !== userctx.user.userName\r\n )\r\n ) {\r\n //パスワード強制変更でない場合、currentPasswordのチェックを追加する\r\n const addSchemaDataFunc = (id, value, state) => {\r\n state[id] = value;\r\n return state;\r\n };\r\n setSchemaData(\r\n addSchemaDataFunc(\r\n \"currentPassword\",\r\n yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n schemaData\r\n )\r\n );\r\n }\r\n }\r\n }, [userctx.user]);\r\n\r\n const onSubmit = async (values) => {\r\n // var values = getValues();\r\n // ボタン非活性\r\n setSubmitDisabled(true);\r\n values[\"userName\"] = userName;\r\n\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .put(\"api/password\", values, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n //正常時\r\n var data = response.data;\r\n // alert(\"更新しました\");\r\n if (data && data.isSelf === true) {\r\n // 自分のパスワードを変更した場合\r\n msgctx.enqueueNotClose(\r\n \"パスワードを変更しました。ログアウトします。\",\r\n \"success\"\r\n );\r\n\r\n var fn = async () => {\r\n await authService.logout(\r\n userctx.user.id,\r\n () => {\r\n userctx.setUser(null);\r\n },\r\n history\r\n );\r\n };\r\n fn();\r\n } else {\r\n // 他人のパスワードを変更した場合\r\n msgctx.enqueueNotClose(\"パスワードを変更しました。\", \"success\");\r\n history.goBack();\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n if (error.response.data)\r\n for (let key in error.response.data) {\r\n setError && key\r\n ? setError(key, { message: error.response.data[key][0] })\r\n : setError(\"summary\", { message: error.response.data[key][0] });\r\n }\r\n\r\n // ボタン活性\r\n setSubmitDisabled(false);\r\n msgctx.enqueue(\r\n \"エラーが発生しました。時間をおいて再度実行してください。\",\r\n \"error\"\r\n );\r\n });\r\n };\r\n\r\n const title = \"パスワード変更\";\r\n return (\r\n <>\r\n {dispOk && (\r\n <>\r\n \r\n \r\n \r\n {msg}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {title}\r\n \r\n \r\n\r\n {!(\r\n userctx &&\r\n userctx.hasClaim(Claims.Change_Password_Others) &&\r\n pUserName &&\r\n userctx.user &&\r\n pUserName !== userctx.user.userName\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","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { Fragment, useCallback, useEffect } from \"react\";\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n InputAdornment,\r\n makeStyles,\r\n TextField,\r\n} from \"@material-ui/core\";\r\nimport { Create, Lock, LockOpen, Save } from \"@material-ui/icons\";\r\nimport ConfirmDialog from \"./ConfirmDialog\";\r\nimport { Alert, AlertTitle } from \"@material-ui/lab\";\r\n\r\nconst useStyles = makeStyles((theme, props) => ({\r\n actions: {\r\n padding: \"10px 25px 15px 25px\",\r\n justifyContent: (props) => (props.isReadOnly ? \"normal\" : \"space-between\"),\r\n },\r\n}));\r\n\r\n/**\r\n * 備考やメモを閲覧・編集するダイアログを表示します\r\n * @param {*} props\r\n * @param {function} props.onSave - 保存押下時に呼び出すfunction xxxx (text) 結果は{result: boolean, title: string, message:string}で返してください\r\n */\r\nexport function MemoDialog(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles(props);\r\n const {\r\n isReadOnly,\r\n titleText,\r\n description,\r\n defaultValue,\r\n open,\r\n onClose,\r\n onSave,\r\n } = props;\r\n const [isEdit, setIsEdit] = useSafeState(unmountRef, false);\r\n const [isOpenConfirmDialog, setIsOpenConfirmDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n const [text, setText] = useSafeState(unmountRef, \"\");\r\n const [isSave, setIsSave] = useSafeState(unmountRef, null); //保存結果 OK=true, NG=false, 未設定=null\r\n const [saveTitle, setSaveTitle] = useSafeState(unmountRef, \"\"); //保存時のAlertのTitle\r\n const [saveMsg, setSaveMsg] = useSafeState(unmountRef, \"\"); //保存時のAlertのMessage\r\n const [savedValue, setSavedValue] = useSafeState(unmountRef, \"\"); //保存した値\r\n\r\n const handleClose = useCallback(() => {\r\n if (savedValue != text) {\r\n setIsOpenConfirmDialog(true);\r\n } else {\r\n close();\r\n }\r\n });\r\n\r\n const close = useCallback(() => {\r\n onClose(text);\r\n setText(\"\");\r\n });\r\n\r\n const handleTextChanged = useCallback((e) => {\r\n setText(e.target.value);\r\n });\r\n\r\n const handleSave = useCallback(async () => {\r\n const result = await onSave(text);\r\n if (result) {\r\n setIsSave(result.result);\r\n setSaveTitle(result.title);\r\n setSaveMsg(result.message);\r\n result.result && setSavedValue(text);\r\n }\r\n });\r\n\r\n const confirmDialogSubmit = async () => {\r\n setIsOpenConfirmDialog(false);\r\n close();\r\n };\r\n const confirmDialogClose = () => {\r\n setIsOpenConfirmDialog(false);\r\n };\r\n\r\n const clearSaveStatus = () => {\r\n setIsSave(null);\r\n setSaveTitle(\"\");\r\n setSaveMsg(\"\");\r\n };\r\n\r\n useEffect(() => {\r\n //ダイアログは再利用されるのでstateはここで初期化する\r\n clearSaveStatus();\r\n setSavedValue(defaultValue);\r\n setIsEdit(!defaultValue);\r\n setText(defaultValue);\r\n }, [open]);\r\n\r\n return (\r\n \r\n \r\n \r\n {titleText}\r\n \r\n \r\n {description}\r\n\r\n {isSave != null && (\r\n \r\n {saveTitle && {saveTitle}}\r\n {saveMsg\r\n ? saveMsg\r\n : isSave\r\n ? \"保存しました\"\r\n : \"保存できませんでした\"}\r\n \r\n )}\r\n \r\n \r\n {isEdit ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ),\r\n }}\r\n onChange={handleTextChanged}\r\n />\r\n \r\n \r\n {isReadOnly ? null : !isEdit ? (\r\n setIsEdit(true)}\r\n color=\"primary\"\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}","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport { useEffect } from 'react';\r\n\r\n/**\r\n * 定期実行するタイマーです\r\n * @param {Object} props\r\n * @param {number} props.interval - 定期実行する間隔ミリ秒単位\r\n */\r\nexport default function useTimer(interval) {\r\n const unmountRef = useUnmountRef();\r\n const [time, setTime] = useSafeState(unmountRef);\r\n\r\n useEffect(() => {\r\n const timeoutId = setTimeout(() => setTime(Date.now()), interval);\r\n return () => {\r\n clearTimeout(timeoutId);\r\n };\r\n }, [time]);\r\n\r\n return time;\r\n}","import {\r\n Box,\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n Fab,\r\n Typography,\r\n useTheme,\r\n} from \"@material-ui/core\";\r\nimport { Phone } from \"@material-ui/icons\";\r\nimport React from \"react\";\r\nimport { Fragment } from \"react\";\r\n\r\nexport function PhoneCallDialog(props) {\r\n const { onClose, title, content, phoneNumber, ...other } = props;\r\n const theme = useTheme();\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {content}\r\n \r\n {phoneNumber && (\r\n \r\n \r\n \r\n \r\n {phoneNumber}\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","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, {\r\n Fragment,\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n} from \"react\";\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n makeStyles,\r\n TextField,\r\n} from \"@material-ui/core\";\r\nimport { Save } from \"@material-ui/icons\";\r\nimport { Alert, AlertTitle } from \"@material-ui/lab\";\r\nimport * as yup from \"yup\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\n\r\nconst useStyles = makeStyles((theme, props) => ({\r\n actions: {\r\n padding: \"10px 25px 15px 25px\",\r\n justifyContent: (props) => (props.isReadOnly ? \"normal\" : \"space-between\"),\r\n },\r\n}));\r\n\r\nconst schema = yup.object().shape({\r\n textDialogInput: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n});\r\n\r\n/**\r\n * テキストを入力するダイアログを表示します\r\n * @param {*} props\r\n * @param {function} props.onSave - 保存押下時に呼び出すfunction xxxx (text) 結果は{result: boolean, title: string, message:string}で返してください\r\n */\r\nexport function TextInputDialog(props) {\r\n const unmountRef = useUnmountRef();\r\n const formId = \"text-input-dialog-form\";\r\n const classes = useStyles(props);\r\n const style = commonStyle(props);\r\n const msgctx = useContext(MessageContext);\r\n const {\r\n title,\r\n content,\r\n fieldLabel,\r\n defaultValue,\r\n open,\r\n onClose,\r\n onSave,\r\n isShowResultAlert,\r\n isShowResultSnackbar,\r\n isSaveAndClose,\r\n } = props;\r\n const [isSave, setIsSave] = useSafeState(unmountRef, null); //保存結果 OK=true, NG=false, 未設定=null\r\n const [saveTitle, setSaveTitle] = useSafeState(unmountRef, \"\"); //保存時のAlertのTitle\r\n const [saveMsg, setSaveMsg] = useSafeState(unmountRef, \"\"); //保存時のAlertのMessage\r\n\r\n const {\r\n register,\r\n handleSubmit,\r\n watch,\r\n errors,\r\n setError,\r\n setValue,\r\n getValues,\r\n clearErrors,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n const textValueFieldName = \"textDialogInput\";\r\n const watchTextValue = watch(textValueFieldName);\r\n\r\n const handleClose = useCallback(() => {\r\n onClose(watchTextValue);\r\n });\r\n\r\n const onSubmit = useCallback(async () => {\r\n const result = await onSave(watchTextValue);\r\n if (result) {\r\n setIsSave(result.result);\r\n setSaveMsg(result.message);\r\n if (isShowResultSnackbar)\r\n msgctx.enqueue(\r\n result.message,\r\n result.result === true ? \"success\" : \"error\"\r\n );\r\n if (result.result && isSaveAndClose) onClose(watchTextValue);\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n //ダイアログは再利用されるのでstateはここで初期化する\r\n setIsSave(null);\r\n setSaveTitle(\"\");\r\n setSaveMsg(\"\");\r\n }, [open]);\r\n\r\n return (\r\n \r\n \r\n {title && {title}}\r\n \r\n \r\n {content}\r\n {isSave != null && isShowResultAlert && (\r\n \r\n {saveTitle && {saveTitle}}\r\n {saveMsg\r\n ? saveMsg\r\n : isSave\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}","import axios from \"axios\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport dayjs from \"dayjs\";\r\n\r\n/**\r\n * 診察券データを取得します\r\n * @param {int} hid - 医療機関ID\r\n * @param {*} cno - 診察券番号\r\n * @param {*} birthDay -生年月日\r\n * @returns {Promise}\r\n */\r\nexport const ApiGetCard = async (hid, cno, birthDay) => {\r\n let card = { hid: hid, cno: cno, birthDay: birthDay };\r\n return axios.get(\"api/Cards/\", { params: card });\r\n};\r\n\r\nexport const ApiPostCardAsync = async (token, values) => {\r\n values.mcdBirthDay = dayjs(values.mcdBirthDay).format(\"YYYY-MM-DD\");\r\n\r\n let tkn = token;\r\n if (!tkn) tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/cards`, values, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\n\r\nexport const ApiPutCardAsync = async (token, values) => {\r\n values.mcdBirthDay = dayjs(values.mcdBirthDay).format(\"YYYY-MM-DD\");\r\n\r\n let tkn = token;\r\n if (!tkn) tkn = await authService.getAccessToken();\r\n\r\n return await axios.put(`api/cards`, values, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\nexport const ApiDeleteCardAsync = async (token, hid, cardNo, birthDay) => {\r\n birthDay = dayjs(birthDay).format(\"YYYY-MM-DD\");\r\n let tkn = token;\r\n if (!tkn) tkn = await authService.getAccessToken();\r\n\r\n return await axios.delete(\r\n `api/cards?hid=${hid}&id=${cardNo}&birthDay=${birthDay}`,\r\n {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n }\r\n );\r\n};\r\n/**\r\n * 既存のカードまたは登録されていないカードを作成しGuidを更新して登録します\r\n * @param {int} hid - 医療機関ID\r\n * @param {*} cno - 診察券番号\r\n * @param {*} birthDay -生年月日\r\n */\r\nexport async function ApiPutCardForUpdateGuid(hid, cno, birthDay) {\r\n let result;\r\n await axios\r\n .put(`api/cards/GuId?hid=${hid}&cno=${cno}&birthDay=${birthDay}`)\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n result = response.data;\r\n }\r\n })\r\n .catch(function (error) {\r\n throw error;\r\n });\r\n return result;\r\n}\r\n","import { useCallback } from \"react\";\r\n\r\n//LineApiのURL\r\nexport const lineUrl = \"https://access.line.me/oauth2/v2.1/authorize\";\r\n\r\nexport const GenerateLineParameter = (guId, clientId) => {\r\n // 生成する文字列の長さ\r\n var l = 8;\r\n // 生成する文字列に含める文字セット\r\n var c = \"abcdefghijklmnopqrstuvwxyz0123456789\";\r\n var cl = c.length;\r\n var r = \"\";\r\n for (var i = 0; i < l; i++) {\r\n r += c[Math.floor(Math.random() * cl)];\r\n }\r\n var hostUrl =\r\n window.location.hostname == \"localhost\"\r\n ? \"localhost:\" + window.location.port + \"/remind\"\r\n : window.location.hostname + \"/remind\";\r\n //clientIdはLINEログインのチャネルID\r\n return (\r\n `?response_type=code&client_id=${clientId}&redirect_uri=` +\r\n encodeURIComponent(\"https://\" + hostUrl) +\r\n \"&state=\" +\r\n encodeURIComponent('\"guId\":' + '\"' + guId + '\"' + ',\"nonce\":\"' + r + '\"') +\r\n \"&bot_prompt=aggressive&scope=profile&nonce=\" +\r\n r\r\n );\r\n};\r\n","import authService from \"components/api-authorization/AuthorizeService\";\r\nimport axios from \"axios\";\r\n\r\n/**\r\n * LineLogin後ユーザー情報を取得します\r\n * @param {string} query - LINELogin後stateパラメーター\r\n * @param {boolean} setLinePage - LineLogin後errパラメーターに値が入った際のstate\r\n * @param {string} setLineData - query確認後Userプロフィールが入るstate\r\n */\r\nexport async function ApiGetLine(query, setLinePage, setLineData) {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .get(\"api/LINE?\" + query, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n isSuccess = true;\r\n setLinePage(true);\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setLinePage(false);\r\n } else {\r\n setLineData(json.data);\r\n setLinePage(true);\r\n }\r\n })\r\n .catch(function (error) {\r\n setLinePage(false);\r\n });\r\n}\r\n\r\n/**\r\n * LineClientIDをアプリケーション設定から取得します\r\n */\r\nexport async function ApiGetLineClientID() {\r\n return await axios\r\n .get(\"api/LINE/clientid\")\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n console.log(\"ApiGetLineClientID error\", error);\r\n });\r\n}\r\n","import React from \"react\";\r\nimport QRCode from \"qrcode.react\";\r\nimport { ApiPutCardForUpdateGuid } from \"components/api/CardsApi\";\r\nimport { GenerateLineParameter, lineUrl } from \"components/common/LineConfig\";\r\nimport { useCallback } from \"react\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport { Button } from \"@material-ui/core\";\r\nimport { ApiGetLineClientID } from \"components/api/LINELoginApi\";\r\n\r\n/**\r\n * QR生成ボタンを配置、押下時propsのパラメーターを参照しLINE連携用のQRコードを生成、表示します。\r\n * @param {Object} props\r\n * @param {string} props.hid - 医療機関ID\r\n * @param {string} props.cno - 診察券番号\r\n * @param {string} props.birthDay - 誕生日\r\n *\r\n */\r\nexport function LineQrcodeGenerator(props) {\r\n const unmountRef = useUnmountRef();\r\n const { hid, cno, birthDay, ...other } = props;\r\n const [lineParam, setLineParam] = useSafeState(unmountRef, \"\");\r\n const [qrGenerate, setQrGenerate] = useSafeState(unmountRef, false);\r\n\r\n const handleClickQrGenerate = async () => {\r\n setQrGenerate(true);\r\n await ApiGetLineClientID().then((clientId) => GetCard(clientId));\r\n };\r\n\r\n const GetCard = useCallback(async (clientId) => {\r\n await ApiPutCardForUpdateGuid(hid, cno, birthDay)\r\n .then(function (response) {\r\n setLineParam(GenerateLineParameter(response.guId, clientId));\r\n setQrGenerate(false);\r\n })\r\n .catch(function (error) {\r\n //TODO エラー処理\r\n });\r\n });\r\n return (\r\n
\r\n {lineParam ? (\r\n <>\r\n \r\n \r\n ) : (\r\n handleClickQrGenerate()}\r\n disabled={qrGenerate}\r\n >\r\n QR生成\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import axios from \"axios\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport dayjs from \"dayjs\";\r\n\r\n/**\r\n * 予約を取得します\r\n * BookingsController.cs GetCsv\r\n */\r\nexport async function ApiGetBookingsCsv(values, token) {\r\n let tkn = token;\r\n if (!tkn) tkn = await authService.getAccessToken();\r\n return await axios.get(`api/bookings/csv`, {\r\n params: values,\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n responseType: \"blob\",\r\n });\r\n}\r\n\r\n/**\r\n * 予約キャンセルのメール通知を行う\r\n * BookingsController.cs PostSendDeleteMessage\r\n */\r\nexport const ApiPostSendDeleteMail = async (booking) => {\r\n let tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/bookings/sendDeleteMail`, booking, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\n\r\n/**\r\n * 予約キャンセルのLINE通知を行う\r\n * BookingsController.cs PostSendDeleteLine\r\n */\r\nexport const ApiPostSendDeleteLine = async (booking) => {\r\n let tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/bookings/sendDeleteLine`, booking, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\n\r\n/**\r\n * 予約キャンセルの予約項目へのメール通知を行う\r\n * BookingsController.cs PostSendDeleteMailToDept\r\n */\r\nexport const ApiPostSendDeleteMailToDept = async (booking) => {\r\n let tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/bookings/sendDeleteMailToDept`, booking, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\n\r\n/**\r\n * 予約キャンセル取消のメール通知を行う\r\n * BookingsController.cs PostSendUndoCancelMessage\r\n */\r\nexport const ApiPostSendUndoDeleteMail = async (booking) => {\r\n let tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/bookings/sendUndoDeleteMail`, booking, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\n\r\n/**\r\n * 予約キャンセル取消のLINE通知を行う\r\n * BookingsController.cs PostSendUndoDeleteLine\r\n */\r\nexport const ApiPostSendUndoDeleteLine = async (booking) => {\r\n let tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/bookings/sendUndoDeleteLine`, booking, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\n\r\n/**\r\n * 予約キャンセル取消の予約項目へのメール通知を行う\r\n * BookingsController.cs PostSendUndoDeleteMailToDept\r\n */\r\nexport const ApiPostSendUndoDeleteMailToDept = async (booking) => {\r\n let tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/bookings/sendUndoDeleteMailToDept`, booking, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\n","import React from \"react\";\r\n/**\r\n * ASP.NET Coreの FileResultで返されたレスポンスをダウンロードする\r\n * @param {*} response\r\n */\r\nexport default function DownloadBlob(response, filename) {\r\n //サーバーで設定されたファイル名を取得する\r\n //attachment; filename=_____20210615135153.csv; filename*=UTF-8''受注一覧_20210615135153.csv\r\n const url = window.URL.createObjectURL(new Blob([response.data]));\r\n var contentDisposition = response.headers[\"content-disposition\"];\r\n let fileName = filename;\r\n if (!filename) fileName = GetFileName(contentDisposition);\r\n\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.setAttribute(\"download\", fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n}\r\n/**\r\n * ASP.NET Coreの FileResultで返されたCSVレスポンスをダウンロードする\r\n * @param {*} response\r\n */\r\nexport function DownloadCsvBlob(response, filename) {\r\n //サーバーで設定されたファイル名を取得する\r\n //attachment; filename=_____20210615135153.csv; filename*=UTF-8''受注一覧_20210615135153.csv\r\n // const url = window.URL.createObjectURL(new Blob([response.data]));\r\n const url = window.URL.createObjectURL(\r\n new Blob([response.data], { type: \"text/csv\" })\r\n );\r\n var contentDisposition = response.headers[\"content-disposition\"];\r\n let fileName = filename;\r\n if (!filename) fileName = GetFileName(contentDisposition);\r\n\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.setAttribute(\"download\", fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n}\r\n\r\nfunction GetFileName(contentDisposition) {\r\n var match = contentDisposition.match(/filename\\s*=\\s*(.+);/i);\r\n var filename = match[1];\r\n return filename;\r\n\r\n // const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n // const matches = filenameRegex.exec(contentDisposition);\r\n // if (matches != null && matches[1]) {\r\n // const fileName = matches[1].replace(/['\"]/g, '');\r\n // return decodeURI(fileName);\r\n // }\r\n}\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport { Grid, Select, MenuItem } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport clsx from \"clsx\";\r\nimport DropDownListNative from \"./DropDownListNative\";\r\nimport {\r\n BootstrapInput,\r\n BootstrapInputWithLabel,\r\n} from \"../textbox/BootstrapInput\";\r\nimport { Fragment } from \"react\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n yearSelect: {\r\n minWidth: \"120px\",\r\n },\r\n monthSelect: {\r\n minWidth: \"60px\",\r\n },\r\n}));\r\n\r\n/**\r\n * 年を選択するドロップダウンリストのコンポーネントです。\r\n * from から to までの期間を表示します。\r\n * @module YearSelect\r\n * @param {Object} props - 基本的にSelectに準じます\r\n * @param {int} props.from - 表示を開始する年を指定します。\r\n * @param {int} props.to - 表示を終了する年を指定します。\r\n * @param {string?} props.suffix - 2000「年」の年を指します。値の後ろに表示する文字列を指定します\r\n */\r\nexport function YearSelect(props) {\r\n const { from, to, className, suffix, ...other } = props;\r\n\r\n var years = [];\r\n for (var i = from; i <= to; i++) {\r\n years.unshift(\r\n \r\n {i + (suffix ? suffix : \"年\")}\r\n \r\n );\r\n }\r\n\r\n const classes = useStyles(props);\r\n return (\r\n \r\n );\r\n}\r\n\r\n/**\r\n * 年を選択するドロップダウンリストのコンポーネントです。\r\n * to から durationの年数分 までの期間を表示します。 suffixは 2000「年」の年を指します。\r\n * @module RelativeYearSelect\r\n * @param {Object} props - 基本的にSelectに準じます\r\n * @param {int} props.to - 表示を終了する年を指定します。\r\n * @param {int} props.duration - to から duraitionに指定された年数分、遡って表示します\r\n * @param {string?} props.suffix - 2000「年」の年を指します。値の後ろに表示する文字列を指定します\r\n */\r\nexport function RelativeYearSelect(props) {\r\n const { duration, to, className, suffix, ...other } = props;\r\n var years = [];\r\n for (var i = to - duration; i <= to; i++) {\r\n years.unshift(\r\n \r\n {i + (suffix ? suffix : \"年\")}\r\n \r\n );\r\n }\r\n\r\n const classes = useStyles(props);\r\n return (\r\n \r\n );\r\n}\r\n\r\n/**\r\n * 月を選択するドロップダウンリストのコンポーネントです。\r\n * from から to までの期間を表示します。\r\n * @module MonthSelect\r\n * @param {Object} props - 基本的にSelectに準じます\r\n * @param {int?} props.from - 表示を開始する年を指定します。未指定の場合1月から表示します\r\n * @param {string?} props.suffix - 12「月」の月を指します。値の後ろに表示する文字列を指定します\r\n */\r\nexport function MonthSelect(props) {\r\n const { from, className, suffix, ...other } = props;\r\n\r\n var months = [];\r\n var begin = from ? from : 1;\r\n for (var i = begin; i <= begin + 11; i++) {\r\n let m = i > 12 ? i - 12 : i;\r\n months.push(\r\n \r\n {m + (suffix ? suffix : \"月\")}\r\n \r\n );\r\n }\r\n\r\n const classes = useStyles(props);\r\n return (\r\n \r\n );\r\n}\r\n\r\n/**\r\n * 年月日のUIを提供します\r\n * @param {Object} props\r\n * @param {string} props.name - DOMのname 年月日のDOMがそれぞれ name + \"year\", name + \"month\", name + \"day\"で生成されます。未指定の場合 ymdSelectYearのようなnameで生成されます\r\n * @param {int} props.showBeginYear - 表示開始年\r\n * @param {int} props.showEndYear - 表示終了年\r\n * @param {string} props.label - 項目名\r\n * @param {int} props.defaultYear - 年の規定値\r\n * @param {int} props.defaultMonth - 月の規定値\r\n * @param {int} props.defaultDay - 日の規定値\r\n * @param {boolean} props.isReverse - 年の表示を降順にする\r\n * @function props.onChange - 値変更時イベント (e, value)で受けてください\r\n *\r\n */\r\nexport function YmdSelect(props) {\r\n const unmountRef = useUnmountRef();\r\n let unmount = false;\r\n const {\r\n name,\r\n showBeginYear,\r\n showEndYear,\r\n label,\r\n defaultYear,\r\n defaultMonth,\r\n defaultDay,\r\n inputRef,\r\n onChange,\r\n isReverse,\r\n required,\r\n } = props;\r\n const [years, setYears] = useSafeState(unmountRef, []);\r\n const [months, setMonths] = useSafeState(unmountRef, []);\r\n const [days, setDays] = useSafeState(unmountRef, []);\r\n const [selectedYear, setSelectedYear] = useSafeState(unmountRef, defaultYear);\r\n const [selectedMonth, setSelectedMonth] = useSafeState(\r\n unmountRef,\r\n defaultMonth\r\n );\r\n const [selectedDay, setSelectedDay] = useSafeState(unmountRef, defaultDay);\r\n const [isInitialized, setIsInitialized] = useSafeState(unmountRef, false);\r\n\r\n function GetDays(year, month) {\r\n let d = [];\r\n let limit = new Date(year, month, 0); //月末の日付を取得\r\n for (let i = 1; i <= limit.getDate(); i++)\r\n d.push({ value: i, title: i + \"日\" });\r\n return d;\r\n }\r\n\r\n useEffect(() => {\r\n try {\r\n let y = [];\r\n let bgnYear = showBeginYear\r\n ? showBeginYear\r\n : new Date().getFullYear() - 120;\r\n let endYear = showEndYear ? showEndYear : new Date().getFullYear();\r\n\r\n if (!isReverse) {\r\n for (let i = bgnYear; i <= endYear; i++) {\r\n y.push({ value: i, title: i + \"年\" });\r\n }\r\n } else {\r\n for (let i = endYear; i >= bgnYear; i--) {\r\n y.push({ value: i, title: i + \"年\" });\r\n }\r\n }\r\n\r\n !unmount && setYears(y.slice());\r\n\r\n let m = [];\r\n for (let i = 1; i <= 12; i++) {\r\n m.push({ value: i, title: i + \"月\" });\r\n }\r\n !unmount && setMonths(m.slice());\r\n !unmount &&\r\n defaultYear &&\r\n defaultMonth &&\r\n setDays(GetDays(defaultYear, defaultMonth));\r\n\r\n return function cleanup() {\r\n unmount = true;\r\n };\r\n\r\n function handleChange(e) {\r\n let value = {\r\n year: selectedYear,\r\n month: selectedMonth,\r\n day: selectedDay,\r\n };\r\n onChange(e, value);\r\n }\r\n } finally {\r\n setIsInitialized(true);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n !unmount &&\r\n selectedYear &&\r\n selectedMonth &&\r\n setDays(GetDays(selectedYear, selectedMonth));\r\n if (selectedDay && !days.filter((d) => d.value == selectedDay))\r\n setSelectedDay(\"\");\r\n }, [selectedYear, selectedMonth]);\r\n\r\n useEffect(() => {\r\n setSelectedYear(defaultYear);\r\n setSelectedMonth(defaultMonth);\r\n setSelectedDay(defaultDay);\r\n }, [defaultYear, defaultMonth, defaultDay]);\r\n\r\n return (\r\n \r\n {isInitialized && (\r\n \r\n \r\n \r\n }\r\n onChange={(e) => setSelectedYear(e.target.value)}\r\n >\r\n \r\n \r\n \r\n \r\n }\r\n onChange={(e) => setSelectedMonth(e.target.value)}\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}","import React from \"react\";\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n} from \"@material-ui/core/\";\r\n\r\n/**\r\n * 確認ダイアログを表示します。\r\n * @module BookingConfirmDialog\r\n * @example\r\n * @param {Object} props - Dialogに準じます\r\n * @param {function} props.handleClose - キャンセル時処理\r\n * @param {function} props.handleSubmit - OK時処理\r\n * @param {function} props.isEdit - OK時処理\r\n */\r\nexport default function BookingConfirmDialog(props) {\r\n const { open, handleClose, handleSubmit, isEdit, ...other } = props;\r\n return (\r\n
\r\n \r\n \r\n {isEdit ? \"予約更新\" : \"予約登録\"}\r\n \r\n \r\n \r\n {isEdit ? \"予約を更新します。\" : \"予約を登録します。\"}\r\n
\r\n よろしいですか。\r\n
\r\n
\r\n \r\n handleSubmit(e)}\r\n >\r\n {isEdit ? \"更新\" : \"登録\"}\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import authService from \"components/api-authorization/AuthorizeService\";\r\nimport axios from \"axios\";\r\nimport dayjs from \"dayjs\";\r\n\r\nexport const ApiPostSendMail = async (\r\n bookingDate,\r\n timeTableDetailId,\r\n bookOrder\r\n) => {\r\n var obj = {};\r\n obj.bookingDate = dayjs(bookingDate).format(\"YYYY-MM-DD HH:mm:ss\");\r\n obj.timeTableDetailId = timeTableDetailId;\r\n obj.bookOrder = bookOrder;\r\n\r\n let tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/reservations/sendMail`, obj, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\n\r\nexport const ApiPostSendLine = async (\r\n bookingDate,\r\n timeTableDetailId,\r\n bookOrder\r\n) => {\r\n var obj = {};\r\n obj.bookingDate = dayjs(bookingDate).format(\"YYYY-MM-DD HH:mm:ss\");\r\n obj.timeTableDetailId = timeTableDetailId;\r\n obj.bookOrder = bookOrder;\r\n\r\n let tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/reservations/sendLine`, obj, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\n\r\nexport const ApiPostSendMailToDept = async (\r\n bookingDate,\r\n timeTableDetailId,\r\n bookOrder\r\n) => {\r\n var obj = {};\r\n obj.bookingDate = dayjs(bookingDate).format(\"YYYY-MM-DD HH:mm:ss\");\r\n obj.timeTableDetailId = timeTableDetailId;\r\n obj.bookOrder = bookOrder;\r\n\r\n let tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/reservations/sendMailToDept`, obj, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport {\r\n FormControl,\r\n FormControlLabel,\r\n FormLabel,\r\n Radio,\r\n RadioGroup,\r\n Grid,\r\n InputLabel\r\n} from \"@material-ui/core\";\r\nimport { makeStyles,useTheme } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport * as yup from \"yup\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n minWidth: 120,\r\n width: \"100%\",\r\n textAlign: \"left\",\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n shrink: {\r\n width: \"125%\",\r\n textAlign: \"left\",\r\n },\r\n}));\r\n\r\n/**\r\n * 指定した区分値のラジオボタンを返します。\r\n * @module MstDivisionsRadioWithLabel\r\n * @example\r\n * function addSchemaDataFunc(id, value, state){\r\n state[id] = value;\r\n return state;\r\n }\r\n const addSchemaData = (id, value) => {\r\n setSchemaData(addSchemaDataFunc(id,value,schemaData));\r\n };\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n \r\n\r\n * @param {Object} props - 指定の引数以外は受け取れません。\r\n * @param {string} selected - 初期選択値\r\n * @param {string} divisionkey - 指定の区分値のキー\r\n * @param {bool} dispnone - 選択肢「なし」の表示可否\r\n * @param {function} addSchemaData - yupスキーマを追加する処理\r\n * @param {bool} required - 必須の場合true\r\n * @param {bool} inputRef - refを設定\r\n * @param {string} variant - 表示のスタイル\r\n * @param {string} name - name\r\n * @param {string} label - 項目名\r\n * @param {errors} errors - エラーがある\r\n * @param {bool} readOnly - 読み取り専用\r\n * @param {bool} setValue - stateを変更する処理\r\n */\r\nexport default function MstDivisionsRadioWithLabel(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const {\r\n selected,\r\n setValue,\r\n name,\r\n divisionkey,\r\n dispnone,\r\n addSchemaData,\r\n required,\r\n inputRef,\r\n variant,\r\n label,\r\n readOnly,\r\n errors,\r\n ignoreValues,\r\n radioVerticallyClassName,\r\n labelMarginClassName,\r\n fullWidth\r\n } = props;\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n // const [defaultValue, setDefaultValue] = useSafeState(unmountRef, `${selected}`);\r\n const [selectedValue, setSelectedValue] = useSafeState(\r\n unmountRef,\r\n `${selected}`\r\n );\r\n const [selectItemData, setSelectItemData] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n );\r\n\r\n // ドロップダウンリスト変更時の処理\r\n const handleChange = (event) => {\r\n setSelectedValue(event.target.value);\r\n // setValue && setValue(name, event.target.value);\r\n };\r\n\r\n const handleSnackbarClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n async function GetSelectItems() {\r\n await axios\r\n .get(\"api/divisions?key=\" + divisionkey)\r\n .then(function (json) {\r\n // 正常の場合\r\n // ドロップダウンを設定\r\n // console.log(ignoreValues);\r\n if (ignoreValues) {\r\n var list = [];\r\n json.data.map((item, index) => {\r\n if (!ignoreValues.includes(item.divisionValue)) list.push(item);\r\n });\r\n setSelectItemData(list);\r\n } else setSelectItemData(json.data);\r\n dispnone === false &&\r\n selected==null &&\r\n setSelectedValue(json.data[0].divisionValue);\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetSelectItems error\", error);\r\n setMsg(\"エラーが発生しました。時間をおいて再度実行してください。\");\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n const f = async () => {\r\n // MstDivisionよりデータを取り込む\r\n GetSelectItems();\r\n\r\n if (addSchemaData) {\r\n required\r\n ? // 必須チェック\r\n addSchemaData(\r\n name,\r\n yup.string().required(GetErrMsg(ErrMsgKey.required))\r\n )\r\n : // 必須チェックなし\r\n addSchemaData(name, yup.string());\r\n }\r\n };\r\n f();\r\n }, []);\r\n\r\n useEffect(() => {\r\n // refを引き渡せないmaterialUiのコンポーネントをregisterに設定する\r\n inputRef && inputRef(name);\r\n }, [inputRef]);\r\n useEffect(() => {\r\n // refを引き渡せないmaterialUiのコンポーネントをregisterに設定する\r\n setValue && selectedValue && setValue(name, selectedValue);\r\n }, [selectedValue]);\r\n\r\n return (\r\n
\r\n \r\n {msg}\r\n \r\n\r\n \r\n \r\n\t\t \r\n\t\t \t{label}\r\n\t\t \r\n \r\n {selectItemData ? (\r\n \r\n {dispnone === true && (\r\n } label=\"なし\" />\r\n )}\r\n\r\n {selectItemData &&\r\n selectItemData.map((item, index) => (\r\n }\r\n label={item.divisionText1}\r\n className={radioVerticallyClassName}\r\n />\r\n ))}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { useCallback, useEffect, memo, useRef, useState } from \"react\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport {\r\n Paper,\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n DialogContentText,\r\n TableContainer,\r\n Table,\r\n TableBody,\r\n TableRow,\r\n TableCell,\r\n TableHead,\r\n IconButton,\r\n InputBase,\r\n} from \"@material-ui/core/\";\r\nimport {\r\n Search,\r\n Close,\r\n} from \"@material-ui/icons\";\r\nimport Draggable, { DraggableData, DraggableEvent } from 'react-draggable';\r\nimport {ResizableBox} from \"react-resizable\";\r\nimport dayjs from \"dayjs\";\r\nimport { makeStyles,withStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport {\r\n ApiGetWithToken,\r\n} from \"components/api/CommonApi\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n tableRow: {\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n \"&$selected, &$selected:hover\": {\r\n color: theme.palette.secondary.contrastText + \"!important\",\r\n backgroundColor: theme.palette.secondary.main + \"!important\",\r\n },\r\n },\r\n resizable: {\r\n position: \"relative\",\r\n \"& .react-resizable-handle\": {\r\n position: \"absolute\",\r\n width: 20,\r\n height: 20,\r\n bottom: 0,\r\n right: 0,\r\n background:\r\n \"url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+')\",\r\n \"background-position\": \"bottom right\",\r\n padding: \"0 3px 3px 0\",\r\n \"background-repeat\": \"no-repeat\",\r\n \"background-origin\": \"content-box\",\r\n \"box-sizing\": \"border-box\",\r\n cursor: \"se-resize\"\r\n }\r\n}\r\n}));\r\n\r\nfunction PaperComponent(props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst MemoPaperComponent = memo(PaperComponent);\r\n\r\nexport default function DraggableDialog(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles(props);\r\n const { handleRowClick, isShowCanceled, setIsShowCanceled, sexNameData, hospitalId, deptId } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n \r\n const [searchResults, setSearchResults] = useSafeState(unmountRef, null); //検索結果\r\n const [searchResultsCount, setSearchResultsCount] = useSafeState(unmountRef, null); //検索結果数\r\n\r\n /**\r\n * 予約検索します\r\n */\r\n const GetAllBookings = useCallback(\r\n async (hospitalId, deptId, keyword) => {\r\n\r\n if (hospitalId === null) return;\r\n return await ApiGetWithToken(\"api/Bookings/Search\", {\r\n hid: hospitalId,\r\n did: deptId,\r\n keyword: keyword,\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n setSearchResults(response.data);\r\n \r\n let count = 0;\r\n for (const setSearchResult of response.data) {\r\n count += setSearchResult.bookings.length;\r\n }\r\n setSearchResultsCount(count);\r\n }\r\n })\r\n .catch(function (error) {\r\n //errProvider.setValidationErrorsForaxios(error, setError);\r\n });\r\n }\r\n );\r\n\r\n //選択行ID \r\n const [selectedRowId, setSelectedRowId] = useSafeState(unmountRef, null);\r\n\r\n //予約検索キーワード\r\n const [searchText, setSearchText] = useSafeState(unmountRef, null);\r\n\r\n // 予約一覧に表示する用生年月日\r\n const dispBirthday = (bh) => {\r\n let birthday = dayjs(bh).format(\"YYYY年MM月DD日\");\r\n let yearPosi = birthday.indexOf(\"年\");\r\n return birthday.slice(0, yearPosi + 1) + \"\\n\" + birthday.slice(yearPosi + 1);\r\n };\r\n\r\n function SearchAll() {\r\n GetAllBookings(hospitalId, deptId, searchText);\r\n handleClickOpen();\r\n }\r\n\r\n useEffect(() => {\r\n if (!open && window.location.hash) {\r\n const hashSave = window.location.hash\r\n window.location.hash = \"\"\r\n window.location.hash = hashSave\r\n }\r\n }, [open]);\r\n\r\n return (\r\n \r\n {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n SearchAll();\r\n }\r\n }}\r\n >\r\n {\r\n setSearchText(e.target.value);\r\n }}\r\n />\r\n {\r\n SearchAll();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n 検索結果 {searchResultsCount + \"件\"}\r\n {window.ontouchstart === undefined ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n {searchResultsCount == 0 ? \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 {searchResults && searchResults.map(\r\n (bookCard, index) => \r\n (\r\n bookCard.bookings.map((item, index) => (\r\n {\r\n setIsShowCanceled(item.booking.isDelete)\r\n setSelectedRowId(item.booking.bookingDate + \"_\" + item.booking.bookOrder + \"_\" + bookCard.dept.id + \"_\" + bookCard.timeTableDetail.id);\r\n handleRowClick(\r\n item.booking.bookingDate + \"_\" + item.booking.bookOrder + \"_\" + bookCard.dept.id + \"_\" + bookCard.timeTableDetail.id, \r\n new Date(\r\n dayjs(item.booking.bookingDate).format(\"YYYY\"), \r\n dayjs(item.booking.bookingDate).format(\"M\") - 1, \r\n dayjs(item.booking.bookingDate).format(\"D\")\r\n )\r\n )\r\n }\r\n }\r\n selected={selectedRowId === item.booking.bookingDate + \"_\" + item.booking.bookOrder + \"_\" + bookCard.dept.id + \"_\" + bookCard.timeTableDetail.id}\r\n >\r\n {bookCard.dept.name}\r\n {dayjs(item.booking.bookingDate).format(\"YYYY年MM月DD日\")}\r\n \r\n {dayjs(\r\n \"20200101 \" + bookCard.timeTableDetail.bgnTime,\r\n \"YYYYMMDD HH:mm\"\r\n ).format(\"HH:mm\") +\r\n \" ~ \" +\r\n dayjs(\r\n \"20200101 \" + bookCard.timeTableDetail.endTime,\r\n \"YYYYMMDD HH:mm\"\r\n ).format(\"HH:mm\")}\r\n \r\n {item.booking.bookOrder}\r\n \r\n {item.card && item.card.isNewPatient === true ? (\r\n
初診
\r\n ) : (\r\n item.booking.cardNumber\r\n )}\r\n
\r\n \r\n \r\n {item.booking.lastName + \" \" + item.booking.firstName}\r\n\r\n {item.booking.lastNamePhonetic != null &&\r\n item.booking.firstNamePhonetic != null ? (\r\n \r\n {item.booking.lastNamePhonetic +\r\n \" \" +\r\n item.booking.firstNamePhonetic}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n \r\n {sexNameData && item.booking.sexId != null\r\n ? sexNameData && sexNameData[Number(item.booking.sexId)] && sexNameData[Number(item.booking.sexId)].slice(0, -1)\r\n : \"\"}\r\n \r\n {dispBirthday(item.booking.birthDay)}\r\n {item.booking.email}\r\n {item.booking.tel}\r\n {item.booking.isDelete && (
取消済み
)}
\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 * @file 予約一覧画面\r\n */\r\nimport React, { useCallback, useContext, useEffect, useRef } from \"react\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport {\r\n FormHelperText,\r\n ClickAwayListener,\r\n Paper,\r\n TableContainer,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TextField,\r\n Fab,\r\n Grid,\r\n TableRow,\r\n withStyles,\r\n Button,\r\n ButtonGroup,\r\n Box,\r\n IconButton,\r\n FormControlLabel,\r\n Tooltip,\r\n Typography,\r\n Switch,\r\n CircularProgress,\r\n fade,\r\n useMediaQuery,\r\n Menu,\r\n MenuItem,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n DialogContentText,\r\n Select,\r\n FormControl,\r\n InputLabel,\r\n Badge,\r\n Chip,\r\n Drawer,\r\n List,\r\n ListItem,\r\n Toolbar,\r\n Divider,\r\n InputBase,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { LineBreakToBr } from \"components/common/Formatter\";\r\nimport {\r\n commonStyle,\r\n FloatingBackgroundGlobalCss,\r\n} from \"components/styles/CommonStyle\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport {\r\n BootstrapInput,\r\n BootstrapInputWithLabel,\r\n} from \"components/input/textbox/BootstrapInput\";\r\nimport {\r\n AccessTime,\r\n ChevronLeft,\r\n ChevronRight,\r\n Flag,\r\n FlagOutlined,\r\n Search,\r\n Textsms,\r\n Close,\r\n Cancel,\r\n Announcement,\r\n AnnouncementOutlined,\r\n AccessTimeTwoTone,\r\n MoreVert,\r\n Print,\r\n PlaylistAdd,\r\n Phone,\r\n PhoneDisabled,\r\n PrintDisabled,\r\n Replay,\r\n GetApp,\r\n Save,\r\n Edit,\r\n} from \"@material-ui/icons\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport {\r\n ErrMsgKey,\r\n GetErrMsg,\r\n ErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport * as yup from \"yup\";\r\nimport {\r\n HospitalDeptTimeTableSelectList,\r\n MyDeptsSelectList,\r\n} from \"components/input/selectlist/HospitalSelectList\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport { Alert, ToggleButton, ToggleButtonGroup } from \"@material-ui/lab\";\r\nimport DropDownListNative from \"components/input/selectlist/DropDownListNative\";\r\nimport {\r\n ApiGetWithToken,\r\n ApiPatchWithToken,\r\n ApiPostWithToken,\r\n ApiPutWithToken,\r\n} from \"components/api/CommonApi\";\r\nimport KeybordDatePickerJp from \"components/input/textbox/KeybordDatePickerJp\";\r\nimport dayjs from \"dayjs\";\r\nimport { MemoDialog } from \"components/dialog/MemoDialog\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport useTimer from \"components/behavior/Timer\";\r\nimport { Fragment } from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { faQrcode, faUser } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { faLine } from \"@fortawesome/free-brands-svg-icons\";\r\nimport {\r\n faEnvelopeSquare,\r\n faEnvelope,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport axios from \"axios\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport { ApiGetDept, ApiGetHospital } from \"components/api/HospitalApi\";\r\nimport { DateTime, DateToString } from \"components/common/DateTimeHelper\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport { PhoneCallDialog } from \"components/dialog/PhoneCallDialog\";\r\nimport { TextInputDialog } from \"components/dialog/TextInputDialog\";\r\nimport {\r\n reservationPath,\r\n sessionStorageKeys,\r\n validationConst,\r\n} from \"components/common/Const\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport { LineQrcodeGenerator } from \"components/qrcode/GenerateQr\";\r\nimport {\r\n ApiGetBookingsCsv,\r\n ApiPostSendDeleteLine,\r\n ApiPostSendDeleteMail,\r\n ApiPostSendDeleteMailToDept,\r\n ApiPostSendUndoDeleteLine,\r\n ApiPostSendUndoDeleteMail,\r\n ApiPostSendUndoDeleteMailToDept,\r\n} from \"components/api/BookingsApi\";\r\nimport DownloadBlob, { DownloadCsvBlob } from \"components/common/DownloadBlob\";\r\nimport qs from \"qs\";\r\nimport { YmdSelect } from \"components/input/selectlist/YmdSelectList\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport BookingConfirmDialog from \"components/dialog/BookingConfirmDialog\";\r\nimport {\r\n ApiPostSendLine,\r\n ApiPostSendMail,\r\n ApiPostSendMailToDept,\r\n} from \"components/api/ReservationApi\";\r\nimport MstDivisionsRadioWithLabel from \"components/input/radio/MstDivisionsRadioWithLabel\";\r\nimport { GetDivisions } from \"components/api/DivisionsApi\";\r\nimport SearchResultsDialog from \"components/dialog/SearchResultsDialog\";\r\nimport { useLocation } from 'react-router-dom';\r\nimport { is } from \"date-fns/locale\";\r\n\r\nconst GlobalCss = withStyles({\r\n \"@global\": {\r\n \"#header, #header-appbar, #footer, #footer-divider, #drawer-container\": {\r\n \"@media print\": {\r\n display: \"none\",\r\n },\r\n },\r\n },\r\n})(() => null);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n printOnly: {\r\n display: \"none\",\r\n \"& *\": {\r\n display: \"none\",\r\n },\r\n },\r\n\r\n \"@media print\": {\r\n print: {\r\n display: \"inherit\",\r\n \"& *\": {\r\n display: \"inherit\",\r\n },\r\n },\r\n noPrint: {\r\n display: \"none\",\r\n \"& *\": {\r\n display: \"none\",\r\n },\r\n },\r\n printOnly: {\r\n display: \"inherit\",\r\n \"& *\": {\r\n display: \"inherit\",\r\n },\r\n },\r\n printTc: {\r\n display: \"table-cell !important\",\r\n visibility: \"visible !important\",\r\n },\r\n },\r\n selected: {\r\n color: theme.palette.secondary.contrastText + \"!important\",\r\n backgroundColor: theme.palette.secondary.main + \"!important\",\r\n },\r\n goingOutSelected: {\r\n color: theme.palette.warning.contrastText + \"!important\",\r\n backgroundColor: theme.palette.warning.main + \"!important\",\r\n },\r\n noTopBottom: {\r\n paddingBottom: 0,\r\n paddingTop: 0,\r\n },\r\n thinBottom: {\r\n paddingBottom: 5,\r\n },\r\n thinLR: {\r\n paddingRight: 5,\r\n paddingLeft: 5,\r\n },\r\n TitleBox: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n },\r\n tableHeader: {\r\n backgroundColor: fade(theme.palette.primary.light, 0.3),\r\n },\r\n status: {\r\n paddingRight: 6,\r\n paddingLeft: 6,\r\n },\r\n dialogBox: {\r\n \"& > div > div\": {\r\n width: \"100%\",\r\n maxWidth: \"400px\",\r\n },\r\n },\r\n buttonBox: {\r\n padding: theme.spacing(1),\r\n textAlign: \"center\",\r\n },\r\n linePattern: {\r\n width: \"100%\",\r\n },\r\n table: {\r\n \"& th\": {\r\n \"@media print\": {\r\n border: \"solid 1px #ccc !important\",\r\n },\r\n },\r\n },\r\n contentRow: {\r\n \"& td\": {\r\n \"@media print\": {\r\n border: \"solid 1px #ccc !important\",\r\n },\r\n },\r\n },\r\n lineTextBox: {\r\n border: \"1px solid rgba(0, 0, 0, 0.54)\",\r\n borderRadius: \"5px\",\r\n //backgroundColor: '#ddd',\r\n padding: theme.spacing(1),\r\n },\r\n lineUserDatas: {\r\n fontWeight: \"600\",\r\n textAlign: \"left\",\r\n },\r\n qrUserDatas: {\r\n fontWeight: \"600\",\r\n textAlign: \"left\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n whiteSpace: \"nowrap\",\r\n },\r\n },\r\n lineColonCell: {\r\n paddingLeft: \"0px\",\r\n paddingRight: \"0px\",\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n },\r\n lineCell: {\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n },\r\n lineDetailBox: {\r\n padding: theme.spacing(1),\r\n },\r\n formControl: {\r\n width: \"100%\",\r\n },\r\n inputText: {\r\n wordBreak: \"break-word\",\r\n },\r\n backDrop: {\r\n backdropFilter: \"blur(3px)\",\r\n backgroundColor: \"rgba(0,0,30,0.4)\",\r\n },\r\n\r\n selected: {\r\n color: theme.palette.primary.contrastText + \"!important\",\r\n backgroundColor: theme.palette.primary.main + \"!important\",\r\n },\r\n\r\n toggleDefault: {\r\n width: \"50%\",\r\n },\r\n toggleGroupDefault: {\r\n backgroundColor: \"white\",\r\n width: \"100%\",\r\n justifyContent: \"center\",\r\n // marginBottom: \"1rem\",\r\n },\r\n shrinkLabel: {\r\n \"label + &\": {\r\n marginTop: theme.spacing(3),\r\n },\r\n \"& ~ p\": {\r\n marginTop: \"-15px\",\r\n },\r\n },\r\n}));\r\n\r\nconst StyledToggleButtonGroup = withStyles((theme) => ({\r\n grouped: {\r\n \"&:not(:first-child)\": {\r\n borderRadius: theme.shape.borderRadius,\r\n },\r\n \"&:first-child\": {\r\n borderRadius: theme.shape.borderRadius,\r\n },\r\n },\r\n}))(ToggleButtonGroup);\r\n\r\nexport default function Bookings(props) {\r\n const session = {\r\n selectedDate: sessionStorage.getItem(\r\n sessionStorageKeys.BookingsSelectedDate\r\n ),\r\n };\r\n const defaultDate = props.location.state && props.location.state.defaultDate;\r\n const defaultDeptId =\r\n props.location.state && props.location.state.defaultDeptId;\r\n const isCancel = props.location.state && props.location.state.isCancel;\r\n\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles(props);\r\n const styles = commonStyle();\r\n const theme = useTheme();\r\n const [bookData, setBookData] = useSafeState(unmountRef, null);\r\n const userctx = useContext(UserContext);\r\n const msgctx = useContext(MessageContext);\r\n const { history } = useReactRouter();\r\n\r\n const formId = \"bookings\";\r\n const formLineId = \"formLineId\";\r\n const [hospitalId, setHospitalId] = useSafeState(unmountRef, null); //選択されている医療機関ID\r\n const [hospital, setHospital] = useSafeState(unmountRef, null); //選択された医療機関の情報 ※予約登録画面に遷移する際に引き渡す\r\n const [deptId, setDeptId] = useSafeState(unmountRef, defaultDeptId); //選択されている予約項目ID\r\n const [dept, setDept] = useSafeState(unmountRef, null); //選択された予約項目の情報 ※予約登録画面に遷移する際に引き渡す\r\n const [csvDeptId, setCsvDeptId] = useSafeState(unmountRef, null); //csv出力で選択されている予約項目\r\n const [selectedTime, setSelectedTime] = useSafeState(unmountRef, null);\r\n const [selectedDate, setSelectedDate] = useSafeState(\r\n unmountRef,\r\n defaultDate\r\n ? new Date(defaultDate)\r\n : session.selectedDate\r\n ? new Date(session.selectedDate)\r\n : new Date()\r\n );\r\n\r\n const [timeTables, setTimeTables] = useSafeState(unmountRef, null);\r\n const [disableNextTime, setDisableNextTime] = useSafeState(unmountRef, true);\r\n const [disablePrevTime, setDisablePrevTime] = useSafeState(unmountRef, true);\r\n const [selectedBookingItem, setSelectedBookingItem] = useSafeState(\r\n unmountRef,\r\n \"\"\r\n ); //選択された予約\r\n const [memo, setMemo] = useSafeState(unmountRef, \"\");\r\n const [openMemoDialog, setOpenMemoDialog] = useSafeState(unmountRef, false); //メモ入力ダイアログの表示状態\r\n const [openSnackbar, setOpenSnackbar] = useSafeState(unmountRef, false);\r\n const [useSendMessageBtn, setUseSendMessageBtn] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n const [openSuccessSnackbar, setOpenSuccessSnackbar] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n const [snackbarMsg, setSnackbarMsg] = useSafeState(unmountRef, \"\");\r\n const [openConfirmDialog, setOpenConfirmDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n ); //取消確認ダイアログの表示状態\r\n const [confirmDialogParamter, setConfirmDialogParamter] =\r\n useSafeState(unmountRef);\r\n const [confirmDialogMsg, setConfirmDialogMsg] = useSafeState(unmountRef);\r\n const [phoneNumber, setPhoneNumber] = useSafeState(unmountRef, \"\");\r\n const [openPhoneCallDialog, setOpenPhoneCallDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n ); //電話番号ダイアログの表示状態\r\n const [openCardNumberDialog, setOpenCardNumberDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n ); //診察券番号入力ダイアログの表示状態\r\n const [isShowCanceled, setIsShowCanceled] = useSafeState(\r\n unmountRef,\r\n isCancel ? isCancel : false\r\n );\r\n const [isAutoRefresh, setIsAutoRefresh] = useSafeState(unmountRef, true); //画面を自動更新するかどうかのフラグ\r\n const [isNowAutoRefresh, setIsNowAutoRefresh] = useSafeState(unmountRef, null); //画面を自動更新するかどうかのフラグ(現在)\r\n const errProvider = useErrorMessageProvider();\r\n const time = useTimer(60000); //1分ごとに発火するタイマー\r\n const queryString = new URLSearchParams(props.location.search);\r\n const isNarrow = useMediaQuery(theme.breakpoints.down(\"sm\")); //画面幅が狭いときにUIを変えるポイント\r\n const [anchorEl, setAnchorEl] = useSafeState(unmountRef, []);\r\n const [isInitialized, setIsInitialized] = useSafeState(unmountRef, false);\r\n\r\n //Csv出力関連\r\n const [isOpenCsvDrawer, setIsOpenCsvDrawer] = useSafeState(unmountRef, false);\r\n const [csvBgnDate, setCsvBgnDate] = useSafeState(unmountRef, dayjs());\r\n const [csvEndDate, setCsvEndDate] = useSafeState(unmountRef, dayjs());\r\n\r\n //入力チェックのスキーマ定義\r\n const [schemaData] = useSafeState(unmountRef, {\r\n timeTableDetailId: yup.string().required(\"時間枠を選択してください\"),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const { register, handleSubmit, errors, setError, clearErrors, getValues } =\r\n useForm({\r\n resolver: yupResolver(schema),\r\n });\r\n\r\n //Csvファイルダウンロード周りの入力チェック\r\n const [schemaDataCsv] = useSafeState(unmountRef, {\r\n csvBgnDate: yup.date().required(GetErrMsg(ErrMsgKey.required)),\r\n csvEndDate: yup.date().required(GetErrMsg(ErrMsgKey.required)),\r\n });\r\n const schemaCsv = yup.object().shape(schemaDataCsv);\r\n\r\n const {\r\n register: registerCsv,\r\n handleSubmit: handleSubmitCsv,\r\n errors: errorsCsv,\r\n setError: setErrorCsv,\r\n clearErrors: clearErrorsCsv,\r\n getValues: getValuesCsv,\r\n setValue: setValueCsv,\r\n } = useForm({\r\n resolver: yupResolver(schemaCsv),\r\n });\r\n\r\n // const { register:lineRegister , handleSubmit:line, errors, setError, clearErrors, getValues } = useForm({\r\n // resolver: yupResolver(schema),\r\n // });\r\n\r\n /* 検索結果選択行クリックイベント */\r\n const handleSearchDataClick = (anchor, selectedDate) => {\r\n window.location.hash = `${anchor}`;\r\n handleDateChange(\"showDate\", selectedDate);\r\n handleDeptChange(null);\r\n setSelectedTime(0);\r\n clearErrors();\r\n // Refresh(false);\r\n };\r\n\r\n //bookDataでhospitalが取得できないケースがあり、LINE送信ダイアログ/テンプレートメッセージでエラー出るため個別で取得\r\n async function GetHospital(hid) {\r\n await ApiGetHospital(hid)\r\n .then(function (response) {\r\n setHospital(response[0]);\r\n })\r\n .catch(function (error) {});\r\n }\r\n\r\n function Initialize() {\r\n if (!userctx.user) return;\r\n\r\n //hosptailIdとdeptIdに変化が無ければ何もしない\r\n if (\r\n userctx.user.hospitalId === hospitalId\r\n // && userctx.user.deptId === deptId\r\n )\r\n return;\r\n\r\n setHospitalId(userctx.user.hospitalId);\r\n setDeptId(userctx.user.deptId);\r\n\r\n GetHospital(userctx.user.hospitalId);\r\n\r\n setIsInitialized(true);\r\n }\r\n\r\n useEffect(() => {\r\n Initialize();\r\n }, [userctx]);\r\n\r\n useEffect(() => {\r\n if (selectedTime && timeTables) {\r\n //次の時間帯、前の時間帯ボタンを有効/無効化する\r\n let tid = parseInt(selectedTime);\r\n var index = 0;\r\n\r\n if (timeTables) {\r\n index = timeTables.findIndex((tt) => tt.id === tid);\r\n setDisableNextTime(index + 1 < Object.keys(timeTables).length == false);\r\n setDisablePrevTime(index - 1 < 0);\r\n }\r\n\r\n if (!timeTables || index < 0) {\r\n setDisableNextTime(true);\r\n setDisablePrevTime(true);\r\n }\r\n }\r\n }, [selectedTime, timeTables]);\r\n\r\n function Refresh(isSilent) {\r\n if (!isInitialized) return;\r\n let tid = 0;\r\n if (selectedTime) tid = parseInt(selectedTime);\r\n GetBookings(selectedDate, tid, hospitalId, deptId, isSilent);\r\n }\r\n\r\n useEffect(() => {\r\n if (selectedTime) setSelectedTime(0);\r\n else Refresh(false);\r\n }, [timeTables]);\r\n\r\n // 編集中モード\r\n const [isEditing, setIsEditing] = useSafeState(unmountRef, false);\r\n useEffect(() => {\r\n if (!time) return;\r\n //自動更新ONかつダイアログが開いていない場合に更新する\r\n if (isAutoRefresh && !openMemoDialog && !openConfirmDialog && !isEditing) {\r\n //自動更新時はデータを取り直す\r\n Refresh(true);\r\n }\r\n }, [time]);\r\n\r\n useEffect(() => {\r\n Refresh(false);\r\n }, [selectedTime, isShowCanceled]);\r\n\r\n const [sexNameData, setSexNameData] = useSafeState(unmountRef, null); // 性別名リスト\r\n const [, setErrorMessage] = useSafeState(unmountRef, \"\"); // エラーメッセージ\r\n useEffect(() => {\r\n const f = async () => {\r\n try {\r\n await GetDivisions(\"sexCd\", setSexNameData);\r\n } catch (error) {\r\n setErrorMessage(\r\n \"エラーが発生しました。時間をおいて再度実行してください。\"\r\n );\r\n }\r\n };\r\n f();\r\n }, []);\r\n\r\n async function GetCsv() {\r\n const values = getValuesCsv();\r\n const data = {\r\n bgn: dayjs(values.csvBgnDate).format(\"YYYY-MM-DD\"),\r\n end: dayjs(values.csvEndDate).format(\"YYYY-MM-DD\"),\r\n hid: hospitalId,\r\n did: csvDeptId,\r\n };\r\n\r\n return await ApiGetBookingsCsv(data)\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n DownloadCsvBlob(\r\n response,\r\n \"予約一覧_\" + dayjs().format(\"YYYYMMDDHHmmss\") + \".csv\"\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n if (error.response.status === 400) {\r\n //blobの場合のエラー出力はこんな感じで書く\r\n error.response.data.text().then((text) => {\r\n const messages = JSON.parse(text);\r\n const keys = Object.keys(messages);\r\n for (let i in keys)\r\n setErrorCsv(keys[i], {\r\n type: \"manual\",\r\n message: messages[keys[i]],\r\n });\r\n });\r\n } else {\r\n console.log(JSON.stringify(error));\r\n msgctx.enqueue(\"予期せぬエラーが発生しました。\", \"error\");\r\n }\r\n });\r\n }\r\n function onSubmitCsv() {\r\n clearErrorsCsv();\r\n GetCsv();\r\n }\r\n\r\n /**\r\n * 予約を取得します\r\n */\r\n const GetBookings = useCallback(\r\n async (date, timeTableDetailId, hospitalId, deptId, isSilent) => {\r\n setIsEditing(false);\r\n\r\n if (hospitalId === null) return;\r\n if (!isSilent) setBookData(null);\r\n if (timeTableDetailId === null) timeTableDetailId = 0; //時間帯が指定されていない場合、全時間帯を表示する\r\n return await ApiGetWithToken(\"api/Bookings\", {\r\n dt: dayjs(date).format(\"YYYY-MM-DD\"),\r\n ttId: timeTableDetailId,\r\n hid: hospitalId,\r\n did: deptId,\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n setBookData(response.data);\r\n }\r\n })\r\n .catch(function (error) {\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n });\r\n }\r\n );\r\n\r\n function handleSelectedTimeChange(e) {\r\n setSelectedTime(e.target.value);\r\n }\r\n\r\n function handleDateChange(name, date) {\r\n setSelectedDate(new Date(date));\r\n sessionStorage.setItem(\r\n sessionStorageKeys.BookingsSelectedDate,\r\n new Date(date)\r\n );\r\n }\r\n\r\n function handleCancelClick(tblIndex, rowIndex, book) {\r\n setConfirmDialogParamter({ tblIndex, rowIndex, book });\r\n setConfirmDialogMsg(\r\n book.isDelete\r\n ? \"取消を解除します。よろしいですか?\"\r\n : \"予約を取り消します。よろしいですか?\"\r\n );\r\n setOpenConfirmDialog(true);\r\n }\r\n\r\n function handleCancelSubmit(e, parameter) {\r\n let copy = bookData.slice();\r\n let copyRow = copy[parameter.tblIndex].bookings[parameter.rowIndex];\r\n copyRow.booking.isDelete = !copyRow.booking.isDelete;\r\n\r\n //DB更新\r\n ApiPatchWithToken(\"api/Bookings/delete\", copyRow.booking)\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n setBookData(copy); //入れなおす\r\n setOpenConfirmDialog(false);\r\n\r\n if (copyRow.booking.isDelete) {\r\n msgctx.enqueue(\"予約をキャンセルしました\", \"success\");\r\n ApiPostSendDeleteMail(copyRow.booking).catch(() => {\r\n msgctx.enqueue(\r\n \"メールでの予約キャンセル通知に失敗しました。\",\r\n \"error\"\r\n );\r\n });\r\n ApiPostSendDeleteLine(copyRow.booking).catch(() => {\r\n msgctx.enqueue(\r\n \"LINEでの予約キャンセル通知に失敗しました。\",\r\n \"error\"\r\n );\r\n });\r\n ApiPostSendDeleteMailToDept(copyRow.booking).catch(() => {\r\n msgctx.enqueue(\r\n \"予約項目へのメールでの予約キャンセル通知に失敗しました。\",\r\n \"error\"\r\n );\r\n });\r\n } else {\r\n msgctx.enqueue(\"予約のキャンセルを取り消しました\", \"success\");\r\n ApiPostSendUndoDeleteMail(copyRow.booking).catch(() => {\r\n msgctx.enqueue(\r\n \"メールでの予約キャンセル取り消しの通知に失敗しました。\",\r\n \"error\"\r\n );\r\n });\r\n ApiPostSendUndoDeleteLine(copyRow.booking).catch(() => {\r\n msgctx.enqueue(\r\n \"LINEでの予約キャンセル取り消し通知に失敗しました。\",\r\n \"error\"\r\n );\r\n });\r\n ApiPostSendUndoDeleteMailToDept(copyRow.booking).catch(() => {\r\n msgctx.enqueue(\r\n \"予約項目へのメールでの予約キャンセル取り消し通知に失敗しました。\",\r\n \"error\"\r\n );\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n var txt = \"予約取消\";\r\n if (!copyRow.booking.isDelete) txt = \"取消解除\";\r\n\r\n //snackbarを表示する\r\n setSnackbarMsg(txt + \"出来ませんせんでした\");\r\n setOpenSnackbar(true);\r\n });\r\n setAnchorEl([]);\r\n }\r\n\r\n function handleTimeTableChange(data) {\r\n setTimeTables(data);\r\n return; //以下の機能はとりあえず無効にしておく 12/24\r\n\r\n //時間枠が未選択状態の場合、現在の時間に合致する時間枠があればそれを選択状態にする\r\n //合致する時間枠が無ければ、現在時刻の次の時間枠を選択状態とする\r\n //それでも無ければ前の時間枠を選択状態とする\r\n if (!selectedTime && data) {\r\n var found = data.find(\r\n (d) =>\r\n dayjs(new Date(), \"HH:mm:ss\") >= dayjs(d.bgnTime, \"HH:mm:ss\") &&\r\n dayjs(new Date(), \"HH:mm:ss\") <= dayjs(d.endTime, \"HH:mm:ss\")\r\n );\r\n if (!found)\r\n found = data.find(\r\n (d) =>\r\n dayjs(new Date(), \"HH:mm:ss\") <= dayjs(d.bgnTime, \"HH:mm:ss\") &&\r\n dayjs(new Date(), \"HH:mm:ss\") <= dayjs(d.endTime, \"HH:mm:ss\")\r\n );\r\n if (!found)\r\n found = data.find(\r\n (d) =>\r\n dayjs(new Date(), \"HH:mm:ss\") >= dayjs(d.bgnTime, \"HH:mm:ss\") &&\r\n dayjs(new Date(), \"HH:mm:ss\") >= dayjs(d.endTime, \"HH:mm:ss\")\r\n );\r\n if (found) {\r\n setSelectedTime(found.id);\r\n GetBookings(new Date(), found.id);\r\n }\r\n }\r\n }\r\n\r\n const handleDeptChange = useCallback(async (did) => {\r\n setDeptId(did);\r\n setDept(null);\r\n if (!did) return;\r\n await ApiGetDept(did)\r\n .then((response) => {\r\n setDept(response);\r\n })\r\n .catch((error) => {});\r\n });\r\n\r\n function onSubmit() {\r\n if (selectedTime)\r\n GetBookings(selectedDate, selectedTime, hospitalId, deptId);\r\n }\r\n\r\n const handleNextTimeClick = useCallback(() => {\r\n let index = timeTables.findIndex((tt) => tt.id === parseInt(selectedTime));\r\n if (index + 1 < Object.keys(timeTables).length) {\r\n let time = timeTables[index + 1].id;\r\n setSelectedTime(time);\r\n GetBookings(selectedDate, time, hospitalId);\r\n }\r\n });\r\n\r\n const handlePrevTimeClick = useCallback(() => {\r\n let index = timeTables.findIndex((tt) => tt.id === parseInt(selectedTime));\r\n if (index - 1 >= 0) {\r\n let time = timeTables[index - 1].id;\r\n setSelectedTime(time);\r\n GetBookings(selectedDate, time, hospitalId);\r\n }\r\n });\r\n\r\n const handleFlagClick = useCallback((tblIndex, rowIndex, card) => {\r\n let copy = bookData.slice(); //TODO これシャローコピーなのでディープコピーにしたい\r\n let bookRow = bookData[tblIndex].bookings[rowIndex];\r\n let copyTbl = copy[tblIndex].bookings.slice();\r\n let copyRow = copyTbl[rowIndex];\r\n if (!card)\r\n copyRow.card = {\r\n mcdHospitalId: hospitalId,\r\n mcdId: bookRow.booking.cardNumber,\r\n mcdBirthDay: bookRow.booking.birthDay,\r\n mcdIsAttension: true,\r\n };\r\n else copyRow.card.mcdIsAttension = !copyRow.card.mcdIsAttension;\r\n\r\n //DB更新\r\n return ApiPatchWithToken(\"api/Cards/attension\", [copyRow.card])\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n //特に何もしない\r\n copy[tblIndex].bookings = copyTbl;\r\n setBookData(copy); //入れなおす\r\n }\r\n })\r\n .catch(function (error) {\r\n //snackbarを表示する\r\n setSnackbarMsg(\"マークを付けることが出来ませんでした\");\r\n setOpenSnackbar(true);\r\n });\r\n });\r\n\r\n const handleMemoClick = useCallback((tblIndex, rowIndex, card) => {\r\n let note = card && card.mcdNote ? card.mcdNote : \"\";\r\n setMemo(note);\r\n setSelectedBookingItem({ tblIndex, rowIndex, card });\r\n setOpenMemoDialog(true);\r\n });\r\n\r\n const handlePhoneClick = useCallback((tblIndex, rowIndex, item) => {\r\n if (item.booking.phoneNumber) {\r\n setPhoneNumber(item.booking.phoneNumber);\r\n setOpenPhoneCallDialog(true);\r\n } else {\r\n alert(\"電話番号未入力の予約です\");\r\n }\r\n });\r\n\r\n const handleCardNumberClick = useCallback((tblIndex, rowIndex, item) => {\r\n setSelectedBookingItem({ tblIndex, rowIndex, item });\r\n setOpenCardNumberDialog(true);\r\n });\r\n\r\n /**\r\n * 予約票印刷ボタンクリック時の処理\r\n */\r\n const handleLabelPrintClick = useCallback(\r\n (tblIndex, rowIndex, bookCard, bookInfo) => {\r\n let time = GetTime(bookInfo);\r\n if (!time) {\r\n msgctx.enqueue(\"時間枠が特定できませんでした\", \"error\");\r\n return;\r\n }\r\n let d = dept;\r\n let h = userctx.hospital;\r\n if (bookInfo) {\r\n d = bookInfo.dept ? bookInfo.dept : d;\r\n h = bookInfo.hospital ? bookInfo.hospital : h;\r\n }\r\n\r\n history.push({\r\n pathname: `/${hospital.id}/r/print`,\r\n state: {\r\n hospital: h,\r\n dept: d,\r\n reservation: GetReservationInfo(time),\r\n bookData: [bookCard.booking],\r\n isNewPatient: bookCard.card ? bookCard.card.isNewPatient : true,\r\n },\r\n });\r\n }\r\n );\r\n\r\n /**\r\n * 編集ボタンクリック時の処理\r\n */\r\n const handleEditClick = useCallback(\r\n (tblIndex, rowIndex, bookCard, bookInfo) => {\r\n let copy = bookData.slice(); //ステートをコピーして\r\n // テーブルを特定\r\n let copyTable = copy.find(\r\n (x) =>\r\n x.dept.id === bookCard.booking.deptId &&\r\n x.dept.hospitalId === bookCard.booking.hospitalId &&\r\n x.timeTableDetail.id === bookCard.booking.timeTableDetailId\r\n );\r\n // 行を特定\r\n var copyRow = copyTable.bookings.find(\r\n (x) => x.booking.bookOrder === bookCard.booking.bookOrder\r\n );\r\n // 編集モードにする\r\n copyRow.isEdit = true;\r\n\r\n // copyRow.bookings.push(\r\n // GetNewBooking()\r\n // );\r\n\r\n setBookData(copy); //入れなおす\r\n setIsEditing(true);\r\n\r\n // // 新規行追加中フラグを立てておく\r\n // setIsEditing(true);\r\n }\r\n );\r\n\r\n /**\r\n * 再診予約ボタンクリック時の処理\r\n */\r\n const handleFollowUpClick = useCallback(\r\n (tblIndex, rowIndex, bookCard, bookInfo) => {\r\n let time = GetTime(bookInfo);\r\n if (!time) {\r\n msgctx.enqueue(\"時間枠が特定できませんでした\", \"error\");\r\n return;\r\n }\r\n let d = dept;\r\n let h = userctx.hospital;\r\n if (bookInfo) {\r\n d = bookInfo.dept ? bookInfo.dept : d;\r\n h = bookInfo.hospital ? bookInfo.hospital : h;\r\n }\r\n var state = {\r\n hospital: hospital,\r\n dept: dept,\r\n reservation: GetReservationInfo(time),\r\n persons: [\r\n {\r\n isFollowUp: true,\r\n ticketNumber: bookCard.booking.cardNumber,\r\n phoneNumber: bookCard.booking.phoneNumber,\r\n newPatient: bookCard.card && bookCard.card.isNewPatient,\r\n birthDay: dayjs(bookCard.booking.birthDay),\r\n // dayjs(\r\n // new Date(data.birthYear, data.birthMonth - 1, data.birthDay)\r\n // ).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n firstName: bookCard.booking.firstName,\r\n lastName: bookCard.booking.lastName,\r\n note: bookCard.booking.note,\r\n email: bookCard.card && bookCard.card.mcdEmail,\r\n firstNamePhonetic: bookCard.booking.firstNamePhonetic,\r\n lastNamePhonetic: bookCard.booking.lastNamePhonetic,\r\n sexId: bookCard.booking.sexId,\r\n note2: bookCard.booking.note2,\r\n },\r\n ],\r\n };\r\n sessionStorage.setItem(\r\n sessionStorageKeys.EntryDefaultValues,\r\n JSON.stringify(state)\r\n ); //戻ってきた時に値を復元するためにsessionStorageに入れておく\r\n\r\n history.push(\r\n `/${hospitalId}${reservationPath}m/${bookCard.booking.deptId}`\r\n );\r\n\r\n // history.push({\r\n // pathname: `/${hospital.id}/r/e`,\r\n // state: {\r\n // hospital: hospital,\r\n // dept: dept,\r\n // reserveInfo: \"\",\r\n // },\r\n // });\r\n }\r\n );\r\n\r\n /**\r\n * selectedBookingItemが異常でないか判定します\r\n * @returns false:異常 true:正常\r\n */\r\n function validateSelectedBookingItem() {\r\n if (!selectedBookingItem) return false;\r\n if (\r\n selectedBookingItem.tblIndex < 0 ||\r\n selectedBookingItem.rowIndex < 0 ||\r\n selectedBookingItem.tblIndex >= bookData.length ||\r\n selectedBookingItem.rowIndex >=\r\n bookData[selectedBookingItem.tblIndex].bookings.length\r\n )\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * メモ入力ダイアログ保存時のコールバック関数\r\n */\r\n const handleMemoSave = useCallback((text) => {\r\n if (!validateSelectedBookingItem())\r\n return { result: false, message: \"パラメータが異常です\" };\r\n\r\n let copy = bookData.slice();\r\n let copyRow =\r\n copy[selectedBookingItem.tblIndex].bookings[selectedBookingItem.rowIndex];\r\n if (!selectedBookingItem.card)\r\n copyRow.card = {\r\n mcdHospitalId: hospitalId,\r\n mcdId: copyRow.booking.cardNumber,\r\n mcdBirthDay: copyRow.booking.birthDay,\r\n mcdNote: text,\r\n };\r\n else copyRow.card.mcdNote = text;\r\n\r\n //DB更新\r\n return ApiPatchWithToken(\"api/Cards/notes\", [copyRow.card])\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n setBookData(copy); //入れなおす\r\n return { result: true, message: \"保存しました\" };\r\n }\r\n })\r\n .catch(function (error) {\r\n if (error && error.response && error.response.data) {\r\n var obj = error.response.data;\r\n var ret;\r\n Object.keys(error.response.data).forEach(function (key) {\r\n if (obj[key] && obj[key].length > 0 && obj[key][0])\r\n ret = { result: false, message: obj[key][0] };\r\n });\r\n return ret;\r\n } else\r\n return { result: false, message: GetErrMsg(ErrMsgKey.unexpected) };\r\n });\r\n });\r\n /**\r\n * メモ入力ダイアログを閉じる際のコールバック関数\r\n */\r\n const handleMemoClose = useCallback(() => {\r\n setOpenMemoDialog(false);\r\n });\r\n\r\n /**\r\n * 診察券番号登録時のコールバック関数\r\n * @param {*} text\r\n * @returns\r\n */\r\n const handleCardNumberSave = useCallback((text) => {\r\n if (!validateSelectedBookingItem())\r\n return { result: false, message: \"パラメータが異常です\" };\r\n\r\n let copy = bookData.slice();\r\n let copyRow =\r\n copy[selectedBookingItem.tblIndex].bookings[selectedBookingItem.rowIndex];\r\n\r\n copyRow.booking.cardNumber = text;\r\n copyRow.card.mcdId = text;\r\n copyRow.card.isNewPatient = false;\r\n\r\n //DB更新\r\n return ApiPatchWithToken(\"api/bookings/cardNumber\", copyRow.booking)\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n setBookData(copy); //入れなおす\r\n return { result: true, message: \"保存しました\" };\r\n }\r\n })\r\n .catch(function (error) {\r\n return { result: false, message: GetErrMsg(ErrMsgKey.unexpected) };\r\n });\r\n });\r\n\r\n async function onSubmitLine(values) {\r\n if (values) {\r\n if (values.sendMessage) {\r\n setUseSendMessageBtn(true);\r\n var object = {};\r\n\r\n object[\"userCard\"] = linesItem && linesItem.card;\r\n object[\"userBooking\"] = linesItem && linesItem.booking;\r\n object[\"sendMessage\"] = values.sendMessage;\r\n setSendMessageValue(values.sendMessage);\r\n\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .post(\"api/Line\", object, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n handleCloseLine();\r\n setSnackbarMsg(\"メッセージが送信されました\");\r\n setOpenSuccessSnackbar(true);\r\n } else {\r\n setSnackbarMsg(\"メッセージを送信出来ませんでした。\");\r\n setOpenSnackbar(true);\r\n }\r\n })\r\n .catch(function (error) {\r\n if (error.response.data) {\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: error.response.data[\"summary\"],\r\n });\r\n }\r\n handleCloseLine();\r\n\r\n setSnackbarMsg(\"メッセージを送信出来ませんでした。\");\r\n setOpenSnackbar(true);\r\n });\r\n\r\n setUseSendMessageBtn(false);\r\n } else {\r\n setSnackbarMsg(\"メッセージを入力してください。\");\r\n setOpenSnackbar(true);\r\n }\r\n }\r\n }\r\n\r\n const [openLineDialog, setOpenLineDialog] = useSafeState(unmountRef, false);\r\n const [openConfirmLineDialog, setOpenConfirmLineDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n const [linesItem, setLinesItem] = useSafeState(unmountRef, null);\r\n const [qrGenerateItem, setqrGenerateItem] = useSafeState(unmountRef, null);\r\n\r\n const [openQRGenerateDialog, setOpenQRGenerateDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n\r\n const handleSendIconClick = useCallback((tblIndex, rowIndex, item) => {\r\n setOpenLineDialog(true);\r\n setLinesItem(item);\r\n //alert('現在開発中です');\r\n });\r\n\r\n const handleCloseLine = useCallback(() => {\r\n setOpenLineDialog(false);\r\n setLinesItem(null);\r\n //setSendMessageValue(\"\");\r\n });\r\n\r\n //Qrコードアイコンボタン押下時処理\r\n const handleQrClick = useCallback((card) => {\r\n setqrGenerateItem(card);\r\n setOpenQRGenerateDialog(true);\r\n });\r\n\r\n const handleCloseQrGenerate = () => {\r\n setOpenQRGenerateDialog(false);\r\n };\r\n\r\n //送信文章配列\r\n let sendData = [\r\n \"\",\r\n \"お呼び出し時間が近づいております。\",\r\n \"診察時間がおくれております。\",\r\n ];\r\n\r\n const [massagePattern, setMassagePattern] = useSafeState(unmountRef, 0);\r\n const [sendMessageValue, setSendMessageValue] = useSafeState(unmountRef, \"\");\r\n const handleChangeMassage = (event) => {\r\n setMassagePattern(event.target.value);\r\n const elem = document.getElementById(formLineId);\r\n if (event.target.value != 3) {\r\n if (event.target.value === 0) {\r\n elem.elements[\"sendMessage\"].value = \"\";\r\n setSendMessageValue(\"\");\r\n } else {\r\n elem.elements[\"sendMessage\"].value = sendData[event.target.value];\r\n setSendMessageValue(sendData[event.target.value]);\r\n }\r\n } else {\r\n elem.elements[\"sendMessage\"].value = hospital.bookingSendLineText;\r\n setSendMessageValue(hospital.bookingSendLineText);\r\n }\r\n };\r\n\r\n const handleSendMessage = (event) => {\r\n setSendMessageValue(event.target.value);\r\n };\r\n\r\n const handleCsvDeptChange = (e) => {\r\n setCsvDeptId(e.target.value);\r\n };\r\n\r\n const handleLineDisableClick = () => {\r\n //alert('このユーザーはLINE連携されていません。');\r\n alert(\"このユーザーはメール連携されていません。\");\r\n };\r\n\r\n /**\r\n * 状態を更新します\r\n * @param {int} tblIndex - 更新されたテーブルのindex\r\n * @param {int} rowIndex - 更新された行のindex\r\n * @param {*} value - 更新された状態の値\r\n */\r\n async function onStatusChanged(tblIndex, rowIndex, value) {\r\n let copy = bookData.slice(); //ステートをコピーして\r\n let copyRow = copy[tblIndex].bookings[rowIndex];\r\n copyRow.booking.status = value; //変更して\r\n //DB更新\r\n await ApiPatchWithToken(\"api/Bookings/status\", [copyRow.booking])\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n let dt = new Date();\r\n if (value == null || value === 0 || value === 9)\r\n //受付前と完了時は待ち時間表示をしない\r\n dt = null;\r\n copyRow.booking.statusChangedTime = dt;\r\n copyRow.booking.elapsedTime = dt == null ? null : 0;\r\n\r\n setBookData(copy); //入れなおす\r\n }\r\n })\r\n .catch(function (error) {\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: GetErrMsg(ErrMsgKey.unexpected),\r\n });\r\n return undefined;\r\n });\r\n }\r\n\r\n /**\r\n * 呼び出し順を変更します\r\n * @param {int} tblIndex - 呼び出し順を変更するテーブルのindex\r\n * @param {int} rowIndex - 呼び出し順を変更する行のindex\r\n * @param {*} value - 更新後の値\r\n */\r\n async function MoveCallOrder(tblIndex, rowIndex, value) {\r\n let to = rowIndex + value;\r\n let counter = value < 0 ? -1 : 1;\r\n while (!isShowCanceled) {\r\n //取消済み非表示の場合は、取消済みの予約は飛ばして順番を変更する\r\n if (to < 0 || bookData[tblIndex].bookings.length <= to) return;\r\n if (!bookData[tblIndex].bookings[to].booking.isDelete) break;\r\n else to = to + counter;\r\n }\r\n\r\n let copy = bookData.slice();\r\n let row1 = copy[tblIndex].bookings[rowIndex];\r\n let row2 = copy[tblIndex].bookings[to];\r\n copy[tblIndex].bookings[rowIndex] = row2; //行の入れ替え処理\r\n copy[tblIndex].bookings[to] = row1;\r\n row1.booking.callOrder = to;\r\n row2.booking.callOrder = rowIndex;\r\n\r\n await ApiPatchWithToken(\"api/Bookings/callorder\", [\r\n row1.booking,\r\n row2.booking,\r\n ])\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n setBookData(copy);\r\n }\r\n })\r\n .catch(function (error) {\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: GetErrMsg(ErrMsgKey.unexpected),\r\n });\r\n return undefined;\r\n });\r\n }\r\n\r\n function ElapsedTime(props) {\r\n //経過時間を計算する\r\n const elapsedTime =\r\n props.item.booking.statusChangedTime != null\r\n ? dayjs().diff(dayjs(props.item.booking.statusChangedTime), \"minutes\")\r\n : null;\r\n const color = elapsedTime != null && elapsedTime > 20 ? \"error\" : \"\";\r\n return (\r\n \r\n \r\n {color ? : }\r\n \r\n  \r\n {elapsedTime != null\r\n ? elapsedTime >= 100\r\n ? \"99分\"\r\n : elapsedTime + \"分\"\r\n : \"---\"}\r\n \r\n \r\n {/* } checkedIcon={} name=\"chkAttension\" onChange={(e) => handleFlagChange(e, index, item.card)} /> */}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * 選択内容から予約枠情報を返します\r\n * @returns\r\n */\r\n function GetReservationInfo(time) {\r\n const reserveInfo = {\r\n targetDate: DateToString(selectedDate),\r\n timeTableId: time.timeTableId,\r\n timeTableDetailId: time.id,\r\n label: time.label,\r\n bookLimit: time.bookLimit,\r\n bgnTime: time.bgnTime,\r\n endTime: time.endTime,\r\n dayOfWeek: time.dayOfWeek,\r\n };\r\n return reserveInfo;\r\n }\r\n\r\n function GetTime(bookCard) {\r\n let time = bookCard ? bookCard.timeTableDetail : null;\r\n if (!time) {\r\n if (!timeTables) return null;\r\n time = timeTables.find((tt) => tt.id == selectedTime);\r\n if (!time) return null;\r\n }\r\n return time;\r\n }\r\n\r\n const GetNewBooking = (hid, did) => {\r\n return {\r\n booking: {\r\n bookingDate: selectedDate,\r\n timeTableDetailId: 0,\r\n bookOrder: 0,\r\n hospitalId: hid,\r\n deptId: did,\r\n id: 0,\r\n branchId: 0,\r\n cardNumber: \"\",\r\n lastName: \"\",\r\n firstName: \"\",\r\n birthDay: \"\",\r\n note: \"test\",\r\n receiptNumber: 0,\r\n callOrder: 0,\r\n status: null,\r\n statusChangedTime: null,\r\n isGoingOut: false,\r\n goingOutTime: null,\r\n isDelete: false,\r\n createUser: \"\",\r\n createYmd: \"\",\r\n updateUser: \"\",\r\n updateYmd: null,\r\n guId: \"\",\r\n phoneNumber: \"\",\r\n lastNamePhonetic: \"\",\r\n firstNamePhonetic: \"\",\r\n sexId: null,\r\n note2: \"test\",\r\n },\r\n card: {\r\n mcdHospitalId: hid,\r\n mcdId: \"\",\r\n mcdBirthDay: \"\",\r\n mcdIsAttension: false,\r\n mcdNote: \"\",\r\n mcdIsSendNotice: null,\r\n mcdEmail: \"\",\r\n mcdLineUserId: \"\",\r\n mcdToken: \"\",\r\n mcdTokenExpire: null,\r\n mcdCreateUser: \"\",\r\n mcdCreateYmd: \"\",\r\n mcdUpdateUser: \"\",\r\n mcdUpdateYmd: null,\r\n guId: \"\",\r\n isNewPatient: false,\r\n },\r\n isNew: true,\r\n };\r\n };\r\n\r\n const OnClickReserveButton = (bookCard) => {\r\n let d = dept;\r\n let h = hospital;\r\n if (bookCard) {\r\n d = bookCard.dept ? bookCard.dept : d;\r\n h = bookCard.hospital ? bookCard.hospital : h;\r\n }\r\n\r\n if (!h || !d) return null;\r\n\r\n if (!bookCard) {\r\n // 予約が表示されてない場合\r\n\r\n if (selectedTime && timeTables) {\r\n let tid = parseInt(selectedTime);\r\n var selectedTimeTable = timeTables.find((tt) => tt.id === tid);\r\n // 選択した時間帯のデータが取得できている場合のみ処理\r\n if (selectedTimeTable) {\r\n var newDatas = [\r\n {\r\n hospital: hospital,\r\n dept: dept,\r\n timeTableDetail: selectedTimeTable,\r\n bookings: [GetNewBooking(h.id, d.id)],\r\n },\r\n ];\r\n setBookData(newDatas); //入れなおす\r\n // 新規行追加中フラグを立てておく\r\n setIsEditing(true);\r\n }\r\n }\r\n } else if (bookCard) {\r\n let copy = bookData.slice(); //ステートをコピーして\r\n let copyRow = bookData.find(\r\n (x) =>\r\n x.dept.id === bookCard.dept.id &&\r\n x.dept.hospitalId === bookCard.dept.hospitalId &&\r\n x.timeTableDetail.id === bookCard.timeTableDetail.id\r\n );\r\n\r\n copyRow.bookings.push(GetNewBooking(h.id, d.id));\r\n\r\n setBookData(copy); //入れなおす\r\n // 新規行追加中フラグを立てておく\r\n setIsEditing(true);\r\n }\r\n };\r\n\r\n /**\r\n * 予約登録画面に遷移するボタンを返します\r\n * 過去時刻予約可能権限有りかつ当日の予約枠は予約登録可能\r\n * 過去時刻予約可能権限無しの場合は診療が終了していない予約枠にのみ予約登録可能\r\n */\r\n const showReserveButton = useCallback((bookCard) => {\r\n let time = GetTime(bookCard);\r\n if (!time) return null;\r\n\r\n let d = dept;\r\n let h = userctx.hospital;\r\n if (bookCard) {\r\n d = bookCard.dept ? bookCard.dept : d;\r\n h = bookCard.hospital ? bookCard.hospital : h;\r\n }\r\n\r\n if (!h || !d) return null;\r\n if (\r\n (userctx.hasClaim(\"Book_Past_Time\") &&\r\n DateTime(selectedDate, \"00:00\", \"hh:mm\").isAfter(\r\n DateTime(new Date(), \"00:00\", \"hh:mm\").subtract(1, \"day\")\r\n )) ||\r\n (!userctx.hasClaim(\"Book_Past_Time\") &&\r\n DateTime(selectedDate, time.endTime, \"hh:mm\").isAfter(dayjs()))\r\n ) {\r\n return (\r\n \r\n OnClickReserveButton(bookCard)}\r\n >\r\n \r\n 予約登録\r\n \r\n \r\n );\r\n }\r\n return null;\r\n });\r\n\r\n /**\r\n * 与えられたcontentを画面幅が狭い場合はMenuItemにラップして返します\r\n * @param {string} key - MenuItemのkey\r\n * @param {object} item - 各行のデータ\r\n * @param {object} content - MenuItemの中の要素\r\n * @param {string} label - MenuItemのラベル\r\n * @param {function} menuOnClick - MenuItemクリック時のコールバック関数\r\n */\r\n const wrapMenuItemIfNarrow = useCallback(\r\n (key, item, content, label, menuOnClick) => {\r\n return isNarrow ? (\r\n \r\n {content}\r\n {label}\r\n \r\n ) : (\r\n content\r\n );\r\n }\r\n );\r\n\r\n const wrapOtherMenuItemIfNarrow = useCallback(\r\n (key, item, content, label, menuOnClick) => {\r\n return (\r\n \r\n {content}\r\n {label}\r\n \r\n );\r\n }\r\n );\r\n\r\n function DisableEmailButton(props) {\r\n return (\r\n \r\n handleLineDisableClick()}\r\n >\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n /**\r\n * LINE、マーク、メモ、取消等の機能アイコンボタンのDOMを表示します\r\n */\r\n function showFunctionIconButtons(bookCard, item, tblIndex, rowIndex) {\r\n let content = [];\r\n let otherContent = [];\r\n\r\n const keyIndex = \"_\" + tblIndex + \"_\" + rowIndex;\r\n //経過時間\r\n content.push(\r\n wrapMenuItemIfNarrow(\r\n \"elapsedTimeWrapper\" + keyIndex,\r\n item,\r\n \r\n )\r\n );\r\n\r\n const id = \"menu\" + keyIndex;\r\n //再診予約\r\n content.push(\r\n wrapMenuItemIfNarrow(\r\n \"followUp\" + keyIndex,\r\n item,\r\n \r\n {\r\n handleFollowUpClick(tblIndex, rowIndex, item, bookCard);\r\n e.stopPropagation();\r\n }}\r\n >\r\n \r\n \r\n ,\r\n \"再診予約\",\r\n () => handleFollowUpClick(tblIndex, rowIndex, item, bookCard)\r\n )\r\n );\r\n\r\n //メッセージ送信\r\n content.push(\r\n wrapMenuItemIfNarrow(\r\n \"line\" + keyIndex,\r\n item,\r\n \r\n {item.card ? (\r\n \r\n {(() => {\r\n if (item.card.mcdLineUserId) {\r\n return (\r\n \r\n {\r\n handleSendIconClick(tblIndex, rowIndex, item);\r\n e.stopPropagation();\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n } else if (item.card.mcdEmail) {\r\n return (\r\n \r\n {\r\n handleSendIconClick(tblIndex, rowIndex, item);\r\n e.stopPropagation();\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n } else {\r\n return ;\r\n }\r\n })()}\r\n \r\n ) : (\r\n \r\n )}\r\n ,\r\n \"メッセージ\", //MenuItemのラベル\r\n item.card &&\r\n (item.card.mcdLineUserId\r\n ? () => handleSendIconClick(tblIndex, rowIndex, item)\r\n : item.card.mcdEmail\r\n ? () => handleSendIconClick(tblIndex, rowIndex, item)\r\n : () => handleLineDisableClick()) //MenuItemクリック時処理\r\n )\r\n );\r\n\r\n //マークする\r\n content.push(\r\n wrapMenuItemIfNarrow(\r\n \"mark\" + keyIndex,\r\n item,\r\n \r\n {\r\n handleFlagClick(tblIndex, rowIndex, item.card);\r\n e.stopPropagation();\r\n }}\r\n >\r\n {item.card && item.card.mcdIsAttension ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ,\r\n \"マークする\",\r\n () => handleFlagClick(tblIndex, rowIndex, item.card)\r\n )\r\n );\r\n\r\n //メモ\r\n content.push(\r\n wrapMenuItemIfNarrow(\r\n \"memo\" + keyIndex,\r\n item,\r\n \r\n {\r\n handleMemoClick(tblIndex, rowIndex, item.card);\r\n e.stopPropagation();\r\n }}\r\n >\r\n {item.card && item.card.mcdNote ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ,\r\n \"メモ\",\r\n () => handleMemoClick(tblIndex, rowIndex, item.card)\r\n )\r\n );\r\n\r\n //予約票\r\n otherContent.push(\r\n wrapOtherMenuItemIfNarrow(\r\n \"labelPrint\" + keyIndex,\r\n item,\r\n \r\n {\r\n handleLabelPrintClick(tblIndex, rowIndex, item, bookCard);\r\n e.stopPropagation();\r\n }}\r\n >\r\n \r\n \r\n ,\r\n \"予約票\",\r\n () => handleLabelPrintClick(tblIndex, rowIndex, item, bookCard)\r\n )\r\n );\r\n\r\n //電話番号\r\n otherContent.push(\r\n wrapOtherMenuItemIfNarrow(\r\n \"phoneNumberWrapper\" + keyIndex,\r\n item,\r\n \r\n {\r\n handlePhoneClick(tblIndex, rowIndex, item);\r\n e.stopPropagation();\r\n }}\r\n >\r\n {item.booking.phoneNumber ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ,\r\n \"電話番号\",\r\n () => handlePhoneClick(tblIndex, rowIndex, item),\r\n true\r\n )\r\n );\r\n\r\n //QR生成\r\n otherContent.push(\r\n wrapOtherMenuItemIfNarrow(\r\n \"qr\" + keyIndex,\r\n item,\r\n \r\n {\r\n handleQrClick(item);\r\n e.stopPropagation();\r\n }}\r\n >\r\n \r\n  \r\n \r\n ,\r\n \"QR生成\",\r\n () => handleQrClick(item),\r\n true\r\n )\r\n );\r\n\r\n const CloseMenu = () => {\r\n let anc = anchorEl.slice();\r\n anc[id] = null;\r\n setAnchorEl(anc);\r\n };\r\n\r\n //編集\r\n otherContent.push(\r\n wrapOtherMenuItemIfNarrow(\r\n \"edit\" + keyIndex,\r\n item,\r\n \r\n {\r\n // メニューを消しておく\r\n CloseMenu();\r\n \r\n setIsNowAutoRefresh(isAutoRefresh);\r\n setIsAutoRefresh(false);\r\n\r\n handleEditClick(tblIndex, rowIndex, item, bookCard);\r\n\r\n e.stopPropagation();\r\n }}\r\n disabled={isEditing}\r\n >\r\n \r\n \r\n ,\r\n \"予約編集\",\r\n () => {\r\n // メニューを消しておく\r\n CloseMenu();\r\n \r\n setIsNowAutoRefresh(isAutoRefresh);\r\n setIsAutoRefresh(false);\r\n\r\n handleEditClick(tblIndex, rowIndex, item, bookCard);\r\n }\r\n )\r\n );\r\n let title = item.booking.isDelete ? \"取消解除\" : \"予約取消\";\r\n otherContent.push(\r\n wrapOtherMenuItemIfNarrow(\r\n \"delete\" + keyIndex,\r\n item,\r\n \r\n {\r\n isEditing && setIsAutoRefresh(isNowAutoRefresh);\r\n handleCancelClick(tblIndex, rowIndex, item.booking);\r\n e.stopPropagation();\r\n }}\r\n >\r\n {item.booking.isDelete ? : }\r\n \r\n ,\r\n title,\r\n () => {\r\n isEditing && setIsAutoRefresh(isNowAutoRefresh);\r\n handleCancelClick(tblIndex, rowIndex, item.booking);\r\n },\r\n true\r\n )\r\n );\r\n\r\n let dom;\r\n dom = (\r\n \r\n {!isNarrow &&\r\n content.map((c) => {\r\n return c;\r\n })}\r\n {\r\n let anc = anchorEl.slice();\r\n anc[id] = e.currentTarget;\r\n setAnchorEl(anc);\r\n }}\r\n >\r\n \r\n \r\n {\r\n CloseMenu();\r\n }}\r\n >\r\n {isNarrow &&\r\n content.map((c) => {\r\n return c;\r\n })}\r\n {otherContent.map((c) => {\r\n return c;\r\n })}\r\n
\r\n \r\n );\r\n return dom;\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 \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 予約No\r\n \r\n \r\n \r\n \r\n :{\" \"}\r\n \r\n \r\n \r\n \r\n {linesItem &&\r\n linesItem.booking &&\r\n linesItem.booking.bookOrder}\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 {linesItem &&\r\n linesItem.booking &&\r\n linesItem.booking.lastName +\r\n linesItem.booking.firstName}\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 {linesItem && (\r\n <>\r\n {linesItem.card.mcdEmail && (\r\n <>\r\n \r\n  \r\n \r\n )}\r\n {linesItem.card.mcdLineUserId && (\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   LINE連携 QR生成\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 {qrGenerateItem &&\r\n qrGenerateItem.booking &&\r\n qrGenerateItem.booking.lastName +\r\n \" \" +\r\n qrGenerateItem.booking.firstName}\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 {qrGenerateItem &&\r\n qrGenerateItem.booking &&\r\n dayjs(qrGenerateItem.booking.birthDay).format(\r\n \"YYYY年MM月DD日\"\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 {qrGenerateItem &&\r\n qrGenerateItem.booking &&\r\n qrGenerateItem.booking.cardNumber}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {qrGenerateItem && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n setIsOpenCsvDrawer(false);\r\n }}\r\n >\r\n
\r\n \r\n \r\n \r\n CSVファイルダウンロード\r\n \r\n 取得する条件を指定\r\n \r\n {\r\n setValueCsv(id, value);\r\n }}\r\n // onChangeSearch={(name, date) => {\r\n // setCsvBgnDate(date);\r\n // }}\r\n inputRef={registerCsv}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setValueCsv(id, value);\r\n }}\r\n // onChangeSearch={(name, date) => {\r\n // setCsvEndDate(date);\r\n // }}\r\n inputRef={registerCsv}\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 setIsOpenCsvDrawer(false);\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 {userctx && userctx.hospital && userctx.hospital.name}{\" \"}\r\n {selectedDate && dayjs(selectedDate).format(\"YYYY年MM月DD日\")}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n setIsShowCanceled(!isShowCanceled)}\r\n name=\"showCanceled\"\r\n />\r\n }\r\n label={\r\n \r\n {isShowCanceled ? \"取消済表示\" : \"取消済非表示\"}\r\n \r\n }\r\n />\r\n \r\n \r\n setIsAutoRefresh(!isAutoRefresh)}\r\n name=\"autoRefresh\"\r\n />\r\n }\r\n label={\r\n \r\n {isAutoRefresh ? \"自動更新ON\" : \"自動更新OFF\"}\r\n \r\n }\r\n />\r\n \r\n \r\n {\r\n window.print();\r\n }}\r\n disabled={isEditing}\r\n >\r\n \r\n  印刷\r\n \r\n \r\n \r\n {\r\n setIsOpenCsvDrawer(true);\r\n }}\r\n >\r\n \r\n Csv\r\n \r\n \r\n
\r\n \r\n setOpenConfirmDialog(false)}\r\n message={confirmDialogMsg}\r\n fullWidth\r\n maxWidth=\"sm\"\r\n >
\r\n setOpenSuccessSnackbar(false)}\r\n >\r\n {snackbarMsg}\r\n \r\n setOpenSnackbar(false)}\r\n >\r\n {snackbarMsg}\r\n \r\n \r\n setOpenPhoneCallDialog(false)}\r\n title=\"電話番号\"\r\n content=\"電話番号は以下となります\"\r\n phoneNumber={phoneNumber}\r\n />\r\n setOpenCardNumberDialog(false)}\r\n title=\"診察券番号登録\"\r\n content=\"診察券番号を入力してください\"\r\n isShowResultSnackbar={true}\r\n isSaveAndClose={true}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n {\r\n handlePrevTimeClick();\r\n }}\r\n disabled={disablePrevTime}\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 clearErrors();\r\n Refresh(false);\r\n }}\r\n >\r\n \r\n 表示\r\n \r\n \r\n \r\n \r\n \r\n {\r\n handleNextTimeClick();\r\n }}\r\n disabled={disableNextTime}\r\n >\r\n 次の時間帯\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n {Object.keys(errors).length > 0 && (\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 {!bookData ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : //↓取消済みを表示する場合は 取消済みも含めて一件でも予約があれば表示、取消済みを表示しない場合は、有効な予約(取消済みでない予約)があれば一覧を表示する\r\n !bookData.find((bookCard) =>\r\n bookCard.bookings.find((item) =>\r\n isShowCanceled ? item.booking : !item.booking.isDelete\r\n )\r\n ) ? (\r\n \r\n \r\n \r\n \r\n
予約がありませんでした
\r\n {selectedTime != null && selectedTime != 0 && (\r\n
{showReserveButton()}
\r\n )}\r\n
\r\n {/* )} */}\r\n
\r\n
\r\n
\r\n ) : (\r\n bookData.map(\r\n (bookCard, index) =>\r\n bookCard.bookings.find((item) =>\r\n isShowCanceled ? item.booking : !item.booking.isDelete\r\n ) && (\r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n {bookCard.dept.name} \r\n {bookCard.timeTableDetail.label}  ( \r\n {dayjs(\r\n \"20200101 \" + bookCard.timeTableDetail.bgnTime,\r\n \"YYYYMMDD HH:mm\"\r\n ).format(\"HH:mm\") +\r\n \" ~ \" +\r\n dayjs(\r\n \"20200101 \" + bookCard.timeTableDetail.endTime,\r\n \"YYYYMMDD HH:mm\"\r\n ).format(\"HH:mm\")}\r\n  )\r\n \r\n \r\n \r\n \r\n !item.booking.isDelete && !item.isNew\r\n ).length\r\n : 0) >= bookCard.timeTableDetail.bookLimit\r\n ? theme.palette.error.main\r\n : theme.palette.success.main,\r\n fontWeight: \"bolder\",\r\n }}\r\n variant=\"h6\"\r\n >\r\n {bookCard.bookings\r\n ? bookCard.bookings.filter(\r\n (item) => !item.booking.isDelete && !item.isNew\r\n ).length\r\n : 0}\r\n \r\n \r\n  / \r\n {bookCard.timeTableDetail.bookLimit}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n OnClickReserveButton(bookCard)}\r\n disabled={isEditing}\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 BookTable = (props) => {\r\n const {\r\n hospital,\r\n dept,\r\n selectedDate,\r\n bookCard,\r\n isShowCanceled,\r\n MoveCallOrder,\r\n handleCardNumberClick,\r\n onStatusChanged,\r\n GetTime,\r\n index,\r\n setError,\r\n showFunctionIconButtons,\r\n bookData,\r\n setBookData,\r\n isEditing,\r\n setIsEditing,\r\n showReserveButton,\r\n sexNameData,\r\n deptId,\r\n setIsAutoRefresh,\r\n isAutoRefresh,\r\n setIsNowAutoRefresh,\r\n isNowAutoRefresh,\r\n } = props;\r\n\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles(props);\r\n const styles = commonStyle();\r\n const theme = useTheme();\r\n\r\n const userctx = useContext(UserContext);\r\n\r\n const [deptS, setDeptS] = useSafeState(unmountRef, null); //選択された予約項目の情報 ※予約登録画面に遷移する際に引き渡す\r\n\r\n // 予約一覧に表示する用生年月日\r\n const dispBirthday = (bh) => {\r\n let birthday = dayjs(bh).format(\"YYYY年MM月DD日\");\r\n let yearPosi = birthday.indexOf(\"年\");\r\n return birthday.slice(0, yearPosi + 1) + \"\\n\" + birthday.slice(yearPosi + 1);\r\n };\r\n\r\n //状態配列\r\n let statusData = [\r\n // { title: \"受付前\", value: 0 },\r\n { title: \"受付\", value: 1 },\r\n { title: \"呼出\", value: 3 },\r\n { title: \"診察\", value: 5 },\r\n { title: \"精算\", value: 7 },\r\n { title: \"完了\", value: 9 },\r\n ];\r\n\r\n /**\r\n * 外出状況を更新します\r\n * @param {int} tblIndex - 更新されたテーブルのindex\r\n * @param {int} rowIndex - 更新された行のindex\r\n * @param {*} value - 更新された状態の値\r\n */\r\n async function onGoinOutChanged(tblIndex, rowIndex, value) {\r\n let copy = bookData.slice(); //ステートをコピーして\r\n let copyRow = copy[tblIndex].bookings[rowIndex];\r\n copyRow.booking.isGoingOut = !copyRow.booking.isGoingOut ? true : false; //変更して\r\n //DB更新\r\n await ApiPatchWithToken(\"api/Bookings/isgoingout\", [copyRow.booking])\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n copyRow.booking.goingOutTime = new Date();\r\n\r\n setBookData(copy); //入れなおす\r\n }\r\n })\r\n .catch(function (error) {\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: GetErrMsg(ErrMsgKey.unexpected),\r\n });\r\n return undefined;\r\n });\r\n }\r\n\r\n // const dispBookings =\r\n // bookCard.bookings && isShowCanceled\r\n // ? bookCard.bookings\r\n // : bookCard.bookings.filter((item) => !item.booking.isDelete);\r\n\r\n useEffect(() => {\r\n // 全ての予約項目選択時各予約項目設定を取得\r\n const data = async () => {\r\n await ApiGetDept(deptId)\r\n .then((response) => {\r\n setDeptS(response);\r\n })\r\n .catch((error) => {});\r\n };\r\n !dept ? data() : setDeptS(dept);\r\n }, [dept]);\r\n\r\n useEffect(() => {\r\n if (window.location.hash) {\r\n const hashSave = window.location.hash\r\n window.location.hash = \"\"\r\n window.location.hash = hashSave\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n 予約No\r\n \r\n \r\n 診察券\r\n \r\n \r\n 氏名\r\n \r\n\r\n {deptS && deptS.sexItemRequire && (\r\n \r\n 性\r\n \r\n )}\r\n \r\n 生年月日\r\n \r\n \r\n 状態\r\n \r\n \r\n {showReserveButton(bookCard)}\r\n \r\n \r\n 備考\r\n \r\n {deptS &&\r\n (deptS.note2ItemRequire ||\r\n deptS.note2ItemName ||\r\n deptS.note2PlaceHolder) && (\r\n \r\n 備考2\r\n \r\n )}\r\n \r\n \r\n \r\n {/* {dispBookings &&\r\n dispBookings.map((item, index2) => */}\r\n\r\n {bookCard &&\r\n bookCard.bookings.map((item, index2) =>\r\n item.isNew || item.isEdit ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n MoveCallOrder(index, index2, -1)}\r\n >\r\n ▲\r\n \r\n MoveCallOrder(index, index2, 1)}\r\n >\r\n ▼\r\n \r\n \r\n \r\n \r\n {item.booking.bookOrder}\r\n \r\n \r\n {item.card && item.card.isNewPatient === true ? (\r\n
\r\n   初診\r\n
\r\n \r\n handleCardNumberClick(index, index2, item)\r\n }\r\n label=\"診察券登録\"\r\n >\r\n
\r\n ) : (\r\n item.booking.cardNumber\r\n )}\r\n \r\n \r\n \r\n {item.booking.lastName + \" \" + item.booking.firstName}\r\n\r\n {item.booking.lastNamePhonetic != null &&\r\n item.booking.firstNamePhonetic != null ? (\r\n \r\n {item.booking.lastNamePhonetic +\r\n \" \" +\r\n item.booking.firstNamePhonetic}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n {deptS && deptS.sexItemRequire && (\r\n \r\n {sexNameData && item.booking.sexId != null\r\n ? sexNameData && sexNameData[Number(item.booking.sexId)] && sexNameData[Number(item.booking.sexId)].slice(0, -1)\r\n : \"\"}\r\n \r\n )}\r\n \r\n {dispBirthday(item.booking.birthDay)}\r\n \r\n \r\n {item.booking.isDelete ? (\r\n
取消済み
\r\n ) : (\r\n \r\n {\r\n onStatusChanged(index, index2, v);\r\n }}\r\n aria-label=\"text formatting\"\r\n >\r\n {statusData.map((status) => (\r\n \r\n {status.title}\r\n \r\n ))}\r\n \r\n {\r\n const v = e.target.value\r\n ? parseInt(e.target.value)\r\n : 0;\r\n onStatusChanged(index, index2, v);\r\n }}\r\n input={\r\n \r\n }\r\n >\r\n \r\n \r\n\r\n {\r\n onGoinOutChanged(index, index2, v);\r\n }}\r\n aria-label=\"text formatting\"\r\n >\r\n {\r\n \r\n 外出\r\n \r\n }\r\n \r\n \r\n )}\r\n \r\n \r\n {hospital &&\r\n showFunctionIconButtons(bookCard, item, index, index2)}\r\n \r\n \r\n
\r\n \r\n {item.booking.isDelete && \"【取消済み】\"}\r\n {item.booking.note}\r\n \r\n
\r\n \r\n {deptS && \r\n (deptS.note2ItemRequire ||\r\n deptS.note2ItemName ||\r\n deptS.note2PlaceHolder) && (\r\n \r\n
\r\n \r\n {item.booking.isDelete && \"【取消済み】\"}\r\n {item.booking.note2}\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n {/* IE11の備考が折り返されない件、なぜかmaxWidth:\"600px\"で上手くいくが、なぜ上手くいくかわからない・・・ */}\r\n \r\n
\r\n {item.booking.note && (\r\n \r\n \r\n \r\n }\r\n style={{\r\n padding: \"3px 16px\",\r\n width: !item.booking.note2 ? \"calc(100%)\" : \"calc(100% / 2)\",\r\n }}\r\n >\r\n
\r\n \r\n {LineBreakToBr(\"note_\", item.booking.note)}\r\n \r\n
\r\n \r\n )}\r\n {item.booking.note && (\r\n
\r\n )}\r\n {item.booking.note2 && (\r\n \r\n \r\n \r\n }\r\n style={{\r\n padding: \"3px 16px\",\r\n width: !item.booking.note ? \"calc(100%)\" : \"calc(100% / 2)\",\r\n }}\r\n >\r\n
\r\n \r\n {LineBreakToBr(\"note_\", item.booking.note2)}\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\nconst RegisterRow = (props) => {\r\n const {\r\n setIsEditing,\r\n bookCard,\r\n bookData,\r\n setBookData,\r\n Refresh,\r\n isNew,\r\n isEdit,\r\n item,\r\n index,\r\n index2,\r\n MoveCallOrder,\r\n handleCardNumberClick,\r\n onStatusChanged,\r\n showFunctionIconButtons,\r\n hospital,\r\n selectedDate,\r\n setIsAutoRefresh,\r\n isAutoRefresh,\r\n setIsNowAutoRefresh,\r\n isNowAutoRefresh,\r\n } = props;\r\n\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles(props);\r\n const styles = commonStyle();\r\n const theme = useTheme();\r\n const msgctx = useContext(MessageContext);\r\n\r\n const dept = bookCard.dept;\r\n const errProvider = useErrorMessageProvider();\r\n\r\n const [noteHelperText, setNoteHelperText] = useSafeState(unmountRef, \"\");\r\n const handleNoteChange = useCallback((e) => {\r\n setNoteHelperText(`(現在 ${e.target.value.length} 文字 )`);\r\n });\r\n const [note2HelperText, setNote2HelperText] = useSafeState(unmountRef, \"\");\r\n const handleNote2Change = useCallback((e) => {\r\n setNote2HelperText(`(現在 ${e.target.value.length} 文字 )`);\r\n });\r\n\r\n const [btnDisabled, setBtnDisabled] = useSafeState(unmountRef, false);\r\n const [openConfirmDialog, setOpenConfirmDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n\r\n //入力チェックのスキーマ定義\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n cardNumber: \r\n isEdit\r\n ? \r\n yup\r\n .string()\r\n .test(\"isRequire\", GetErrMsg(ErrMsgKey.required), function (item) {\r\n return !this.parent.isNewPatient && !item ? false : true;\r\n })\r\n .test(\r\n \"length\",\r\n \"診察券番号は30文字以内で入力してください\",\r\n function (item) {\r\n return !this.parent.isNewPatient && item.length > 30 ? false : true;\r\n }\r\n )\r\n : \r\n yup\r\n .string()\r\n .test(\r\n \"length\",\r\n \"診察券番号は30文字以内で入力してください\",\r\n function (item) {\r\n return !this.parent.isNewPatient && item.length > 30 ? false : true;\r\n }\r\n ),\r\n phoneNumber:\r\n isEdit\r\n ?\r\n dept && dept.phoneNumberItemRequire\r\n ? yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .matches(validationConst.phone_reg_exp_no_hyphen, {\r\n message: GetErrMsg(ErrMsgKey.phoneNumberNoHyphen),\r\n excludeEmptyString: true,\r\n })\r\n .test(\"isRequire\", GetErrMsg(ErrMsgKey.required), function (item) {\r\n return this.parent.isNewPatient && !item ? false : true;\r\n })\r\n : yup\r\n .string()\r\n .matches(validationConst.phone_reg_exp_no_hyphen, {\r\n message: GetErrMsg(ErrMsgKey.phoneNumberNoHyphen),\r\n excludeEmptyString: true,\r\n })\r\n .test(\"isRequire\", GetErrMsg(ErrMsgKey.required), function (item) {\r\n return this.parent.isNewPatient && !item ? false : true;\r\n })\r\n :\r\n yup\r\n .string()\r\n .matches(validationConst.phone_reg_exp_no_hyphen, {\r\n message: GetErrMsg(ErrMsgKey.phoneNumberNoHyphen),\r\n excludeEmptyString: true,\r\n })\r\n .test(\"isRequire\", GetErrMsg(ErrMsgKey.required), function (item) {\r\n return this.parent.isNewPatient && !item ? false : true;\r\n }),\r\n birthYear: \r\n isEdit\r\n ?\r\n yup.string().required(GetErrMsg(ErrMsgKey.required))\r\n : null,\r\n birthMonth: \r\n isEdit\r\n ?\r\n yup\r\n .string()\r\n .test(\"isRequire\", GetErrMsg(ErrMsgKey.required), function (item) {\r\n return this.parent.birthYear && !item ? false : true;\r\n })\r\n : null,\r\n birthDay: \r\n isEdit\r\n ?\r\n yup\r\n .string()\r\n .test(\"isRequire\", GetErrMsg(ErrMsgKey.required), function (item) {\r\n return this.parent.birthYear && this.parent.birthMonth && !item\r\n ? false\r\n : true;\r\n })\r\n .test(\r\n \"isFuture\",\r\n \"生年月日が未来の日付になっています。\",\r\n function (item) {\r\n const birthDay = dayjs(\r\n new Date(this.parent.birthYear, this.parent.birthMonth - 1, item)\r\n );\r\n const now = dayjs(new Date());\r\n return !birthDay.isAfter(now);\r\n }\r\n )\r\n : null,\r\n firstName: \r\n isEdit\r\n ?\r\n yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .test(\r\n \"length\",\r\n \"氏名(名)は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n )\r\n :\r\n yup\r\n .string()\r\n .test(\r\n \"length\",\r\n \"氏名(名)は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n ),\r\n lastName: \r\n isEdit\r\n ?\r\n yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .test(\r\n \"length\",\r\n \"氏名(姓)は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n )\r\n :\r\n yup\r\n .string()\r\n .test(\r\n \"length\",\r\n \"氏名(姓)は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n ),\r\n firstNamePhonetic:\r\n isEdit\r\n ?\r\n dept && dept.namePhoneticItemRequire\r\n ? yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .matches(\r\n /^[ァ-ヴー]*$/,\r\n \"氏名フリガナ(名)は全角カタカナで入力してください\"\r\n )\r\n .test(\r\n \"length\",\r\n \"氏名フリガナ(名)は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n )\r\n : null\r\n :\r\n dept && dept.namePhoneticItemRequire\r\n ? yup\r\n .string()\r\n .matches(\r\n /^[ァ-ヴー]*$/,\r\n \"氏名フリガナ(名)は全角カタカナで入力してください\"\r\n )\r\n .test(\r\n \"length\",\r\n \"氏名フリガナ(名)は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n )\r\n : null,\r\n lastNamePhonetic:\r\n isEdit\r\n ?\r\n dept && dept.namePhoneticItemRequire\r\n ? yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .matches(\r\n /^[ァ-ヴー]*$/,\r\n \"氏名フリガナ(姓)は全角カタカナで入力してください\"\r\n )\r\n .test(\r\n \"length\",\r\n \"氏名フリガナ(姓)は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n )\r\n : null\r\n :\r\n dept && dept.namePhoneticItemRequire\r\n ? yup\r\n .string()\r\n .matches(\r\n /^[ァ-ヴー]*$/,\r\n \"氏名フリガナ(姓)は全角カタカナで入力してください\"\r\n )\r\n .test(\r\n \"length\",\r\n \"氏名フリガナ(姓)は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n )\r\n : null,\r\n note:\r\n isEdit\r\n ?\r\n dept && dept.noteItemRequire\r\n ? yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .test(\r\n \"length\",\r\n `${\r\n dept && dept.noteItemName ? dept.noteItemName : \"備考\"\r\n }は100文字以内で入力してください`,\r\n (val) => val.length <= 100\r\n )\r\n : yup\r\n .string()\r\n .test(\r\n \"length\",\r\n `${\r\n dept && dept.noteItemName ? dept.noteItemName : \"備考\"\r\n }は100文字以内で入力してください`,\r\n (val) => val.length <= 100\r\n )\r\n : \r\n yup\r\n .string()\r\n .test(\r\n \"length\",\r\n `${\r\n dept && dept.noteItemName ? dept.noteItemName : \"備考\"\r\n }は100文字以内で入力してください`,\r\n (val) => val.length <= 100\r\n ),\r\n note2:\r\n isEdit\r\n ?\r\n dept && dept.note2ItemRequire\r\n ? yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .test(\r\n \"length\",\r\n `${\r\n dept && dept.note2ItemName ? dept.note2ItemName : \"備考2\"\r\n }は100文字以内で入力してください`,\r\n (val) => val.length <= 100\r\n )\r\n : dept &&\r\n ((isEdit && item.booking.note2) ||\r\n dept.note2ItemName ||\r\n dept.note2PlaceHolder)\r\n ? yup\r\n .string()\r\n .test(\r\n \"length\",\r\n `${\r\n dept && dept.note2ItemName ? dept.note2ItemName : \"備考2\"\r\n }は100文字以内で入力してください`,\r\n (val) => val.length <= 100\r\n )\r\n : null\r\n :\r\n dept && dept.note2ItemRequire\r\n ? yup\r\n .string()\r\n .test(\r\n \"length\",\r\n `${\r\n dept && dept.note2ItemName ? dept.note2ItemName : \"備考2\"\r\n }は100文字以内で入力してください`,\r\n (val) => val.length <= 100\r\n )\r\n : dept &&\r\n ((isEdit && item.booking.note2) ||\r\n dept.note2ItemName ||\r\n dept.note2PlaceHolder)\r\n ? yup\r\n .string()\r\n .test(\r\n \"length\",\r\n `${\r\n dept && dept.note2ItemName ? dept.note2ItemName : \"備考2\"\r\n }は100文字以内で入力してください`,\r\n (val) => val.length <= 100\r\n )\r\n : null,\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n function addSchemaDataFunc(id, value, state) {\r\n state[id] = value;\r\n return state;\r\n }\r\n const addSchemaData = (id, value) => {\r\n setSchemaData(addSchemaDataFunc(id, value, schemaData));\r\n };\r\n //react-hooks-form\r\n const {\r\n register,\r\n handleSubmit,\r\n errors,\r\n setError,\r\n clearErrors,\r\n setValue,\r\n getValues,\r\n watch,\r\n } = useForm({\r\n resolver: yupResolver(schema),\r\n defaultValues: {\r\n birthYear: undefined,\r\n birthMonth: undefined,\r\n birthDay: undefined,\r\n },\r\n });\r\n\r\n useEffect(() => {\r\n register(\"birthYear\");\r\n register(\"birthMonth\");\r\n register(\"birthDay\");\r\n register(\"isNewPatient\");\r\n setValue(\r\n \"isNewPatient\",\r\n item && item.card ? item.card.isNewPatient : false\r\n );\r\n // 先頭のほうにフォーカス\r\n var elmIsNewPatientButton = document.getElementById(\"isNewPatientButton\");\r\n var elmCardNumber = document.getElementById(\"cardNumber\");\r\n hospital && hospital.isNewPatientReservable\r\n ? elmIsNewPatientButton && elmIsNewPatientButton.focus()\r\n : elmCardNumber && elmCardNumber.focus();\r\n\r\n hospital &&\r\n hospital.isRequireMail &&\r\n addSchemaData(\r\n \"email\",\r\n isEdit\r\n ?\r\n yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .email(GetErrMsg(ErrMsgKey.email))\r\n :\r\n yup\r\n .string()\r\n .email(GetErrMsg(ErrMsgKey.email))\r\n );\r\n\r\n // 編集時も必須チェックを行わないためコメントアウト\r\n // isEdit && dept && dept.sexItemRequire &&\r\n // addSchemaData(\r\n // \"sexId\",\r\n // yup\r\n // .string()\r\n // .required(GetErrMsg(ErrMsgKey.required))\r\n // .oneOf([`1`, `2`], GetErrMsg(ErrMsgKey.required))\r\n // );\r\n }, []);\r\n\r\n // 予約登録時のデータ登録処理\r\n const onSubmit = async (vals) => {\r\n setBtnDisabled(true);\r\n\r\n let vm = {\r\n hid: hospital.id,\r\n did: dept.id,\r\n Reservation: {\r\n timeTableId: bookCard.timeTableDetail.timeTableId,\r\n timeTableDetailId: bookCard.timeTableDetail.id,\r\n targetDate: dayjs(selectedDate).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n bgnTime: bookCard.timeTableDetail.bgnTime,\r\n },\r\n Persons: [\r\n {\r\n ticketNumber: vals.cardNumber ? vals.cardNumber : !vals.isNewPatient ? dayjs().format(\"YYYYMMDDHHmmss\") : \"\",\r\n phoneNumber: vals.phoneNumber ? vals.phoneNumber : (vals.isNewPatient || dept.phoneNumberItemRequire) ? \"00000000000\" : \"\",\r\n newPatient: vals.isNewPatient,\r\n birthDay: dayjs(\r\n new Date((vals.birthYear ? vals.birthYear : new Date().getFullYear()-120), (vals.birthMonth ? vals.birthMonth : 1) - 1, (vals.birthDay ? vals.birthDay : 1))\r\n ).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n lastName: vals.lastName ? vals.lastName : \"仮登録\",\r\n firstName: vals.firstName ? vals.firstName : \"仮登録\",\r\n note: vals.note ? vals.note : dept.noteItemRequire ? \"備考\" : \"\",\r\n email: vals.email ? vals.email : hospital.isRequireMail ? \"k@ritouro.ku\" : \"\",\r\n lastNamePhonetic: vals.lastNamePhonetic ? vals.lastNamePhonetic : dept.namePhoneticItemRequire ? \"カリトウロク\" : \"\",\r\n firstNamePhonetic: vals.firstNamePhonetic ? vals.firstNamePhonetic : dept.namePhoneticItemRequire ? \"カリトウロク\" : \"\",\r\n sexId: vals.sexId ? vals.sexId : 0,\r\n note2: vals.note2 ? vals.note2 : dept.note2ItemRequire ? \"備考2\" : \"\",\r\n },\r\n ],\r\n };\r\n\r\n //予約登録\r\n ApiPostWithToken(\"api/Reservations/b\", vm)\r\n .then(async (response) => {\r\n if (response.status === 201) {\r\n var book = response.data[0];\r\n ApiPostSendMail(\r\n book.bookingDate,\r\n book.timeTableDetailId,\r\n book.bookOrder\r\n ).catch(() => {\r\n msgctx.enqueue(\"メールでの予約内容通知に失敗しました。\", \"error\");\r\n });\r\n ApiPostSendLine(\r\n book.bookingDate,\r\n book.timeTableDetailId,\r\n book.bookOrder\r\n ).catch(() => {\r\n msgctx.enqueue(\"LINEでの予約内容通知に失敗しました。\", \"error\");\r\n });\r\n ApiPostSendMailToDept(\r\n book.bookingDate,\r\n book.timeTableDetailId,\r\n book.bookOrder\r\n ).catch(() => {\r\n msgctx.enqueue(\r\n \"予約項目へのメールでの予約内容通知に失敗しました。\",\r\n \"error\"\r\n );\r\n });\r\n setIsEditing(false);\r\n Refresh(true);\r\n msgctx.enqueue(\"予約を更新しました\", \"success\");\r\n } else {\r\n msgctx.enqueue(\r\n \"予約出来ませんでした。恐れ入りますが、時間を空けて再度お試しください\",\r\n \"error\"\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n msgctx.enqueue(\r\n \"予約出来ませんでした。恐れ入りますが、時間を空けて再度お試しください\",\r\n \"error\"\r\n );\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n })\r\n .finally(() => setBtnDisabled(false));\r\n };\r\n\r\n // 予約編集時のデータ登録処理\r\n const onSubmitEdit = async (vals) => {\r\n setBtnDisabled(true);\r\n\r\n let vm = {\r\n ticketNumber: vals.cardNumber,\r\n phoneNumber: vals.phoneNumber,\r\n newPatient: vals.isNewPatient,\r\n birthDay: dayjs(\r\n new Date(vals.birthYear, vals.birthMonth - 1, vals.birthDay)\r\n ).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n lastName: vals.lastName,\r\n firstName: vals.firstName,\r\n note: vals.note,\r\n email: vals.email,\r\n lastNamePhonetic: vals.lastNamePhonetic,\r\n firstNamePhonetic: vals.firstNamePhonetic,\r\n sexId: vals.sexId,\r\n note2: vals.note2,\r\n };\r\n //予約編集\r\n ApiPutWithToken(`api/Reservations/${item.booking.guId}`, vm)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n setIsEditing(false);\r\n Refresh(true);\r\n msgctx.enqueue(\"予約を更新しました\", \"success\");\r\n isEdit && setIsAutoRefresh(isNowAutoRefresh);\r\n } else {\r\n msgctx.enqueue(\r\n \"予約を更新出来ませんでした。恐れ入りますが、時間を空けて再度お試しください\",\r\n \"error\"\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n msgctx.enqueue(\r\n \"予約を更新出来ませんでした。恐れ入りますが、時間を空けて再度お試しください\",\r\n \"error\"\r\n );\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n })\r\n .finally(() => setBtnDisabled(false));\r\n };\r\n\r\n // 予約登録のキャンセル\r\n const onCancel = () => {\r\n if (isNew) {\r\n //登録の場合\r\n let copy = bookData.slice(); //ステートをコピーして\r\n let copyRow = bookData.find(\r\n (x) =>\r\n x.dept.id === bookCard.dept.id &&\r\n x.dept.hospitalId === bookCard.dept.hospitalId &&\r\n x.timeTableDetail.id === bookCard.timeTableDetail.id\r\n );\r\n // // 新規行追加中フラグを立てておく\r\n copyRow.bookings = copyRow.bookings.filter((x) => !x.isNew);\r\n\r\n setBookData(copy); //入れなおす\r\n }\r\n if (isEdit) {\r\n // 編集の場合\r\n let copy = bookData.slice(); //ステートをコピーして\r\n // テーブルを特定\r\n let copyTable = copy.find(\r\n (x) =>\r\n x.dept.id === bookCard.dept.id &&\r\n x.dept.hospitalId === bookCard.dept.hospitalId &&\r\n x.timeTableDetail.id === bookCard.timeTableDetail.id\r\n );\r\n // 全ての行のisEditをfalseにする\r\n copyTable.bookings = copyTable.bookings.map((e) => ({\r\n ...e,\r\n isEdit: false,\r\n }));\r\n\r\n setBookData(copy); //入れなおす\r\n }\r\n\r\n setIsEditing(false);\r\n };\r\n\r\n // コンポーネント内でstateを変更するための処理\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {/* 別の段組みを表示したいため、全部colspanしておく */}\r\n \r\n {\r\n onCancel();\r\n isEdit && setIsAutoRefresh(isNowAutoRefresh);\r\n }}\r\n style={{\r\n position: \"absolute\",\r\n top: \"0.2rem\",\r\n right: \"0.2rem\",\r\n color: theme.palette.error.main,\r\n }}\r\n size=\"small\"\r\n >\r\n \r\n \r\n \r\n {\r\n setOpenConfirmDialog(false);\r\n }}\r\n handleSubmit={() => {\r\n setOpenConfirmDialog(false);\r\n handleSubmit(isEdit ? onSubmitEdit : onSubmit)();\r\n }}\r\n isEdit={isEdit}\r\n fullWidth\r\n maxWidth=\"sm\"\r\n >\r\n\r\n \r\n \r\n \r\n {hospital && hospital.isNewPatientReservable && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!watch(\"isNewPatient\") && (\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 {hospital && hospital.isNewPatientReservable && (\r\n \r\n )}\r\n {!watch(\"isNewPatient\") && (\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 {dept && dept.namePhoneticItemRequire && (\r\n \r\n \r\n \r\n 姓フリガナ\r\n \r\n \r\n \r\n \r\n )}\r\n {dept && dept.namePhoneticItemRequire && (\r\n \r\n \r\n \r\n 名フリガナ\r\n \r\n \r\n \r\n \r\n )}\r\n {dept && dept.sexItemRequire && (\r\n \r\n setValue(name, value)}\r\n errors={errors}\r\n required={dept && dept.sexItemRequire ? true : false}\r\n selected={\r\n isEdit && item.booking.sexId != null\r\n ? `${item.booking.sexId}`\r\n : ``\r\n }\r\n fullwidth\r\n />\r\n \r\n )}\r\n \r\n \r\n {dept && dept.namePhoneticItemRequire && (\r\n \r\n \r\n \r\n )}\r\n {dept && dept.namePhoneticItemRequire && (\r\n \r\n \r\n \r\n )}\r\n {dept && dept.sexItemRequire && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {hospital && hospital.isRequireMail && (\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 {dept && dept.noteItemName ? dept.noteItemName : \"備考\"}\r\n \r\n \r\n \r\n {\"最大100文字\" + noteHelperText}\r\n \r\n \r\n \r\n {dept &&\r\n ((isEdit && item.booking.note2) ||\r\n dept.note2ItemRequire ||\r\n dept.note2ItemName ||\r\n dept.note2PlaceHolder) && (\r\n \r\n \r\n {dept && dept.note2ItemName\r\n ? dept.note2ItemName\r\n : \"備考2\"}\r\n \r\n \r\n \r\n {\"最大100文字\" + note2HelperText}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {\r\n setOpenConfirmDialog(true);\r\n }}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n startIcon={isEdit ? : }\r\n disabled={btnDisabled}\r\n style={{ marginRight: \"5px\" }}\r\n >\r\n {isEdit ? \"更新\" : \"登録\"}\r\n \r\n {/* \r\n \r\n : }\r\n disabled={btnDisabled}\r\n >\r\n {isEdit ? \"編集\" : \"登録\"}\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","import axios from \"axios\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\n\r\n/**\r\n * 担当顧客の一覧を取得します\r\n * @param {*} token - アクセストークン 既に取得済みの場合、指定してください。未指定の場合、取得します\r\n */\r\nexport async function GetMyClients(token) {\r\n let result;\r\n let tkn = token;\r\n if (!tkn) tkn = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/customers?\", {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) result = response.data;\r\n })\r\n .catch(function (error) {\r\n throw error;\r\n });\r\n return result;\r\n}\r\n\r\n/**\r\n * 表示順を変更します\r\n * @param {int} informations - [{informationId,showOrder}]\r\n * @param {String} token - アクセストークン 既に取得済みの場合、指定してください。未指定の場合、取得します\r\n */\r\nexport async function PatchShowOrder(informations, token) {\r\n let result;\r\n let tkn = token;\r\n if (!tkn) tkn = await authService.getAccessToken();\r\n\r\n await axios\r\n .patch(\"api/Information/showOrder\", informations, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) result = response.data;\r\n })\r\n .catch(function (error) {\r\n throw error;\r\n });\r\n return result;\r\n}\r\n","import React from \"react\";\r\nimport { IconButton, Tooltip, Typography } from \"@material-ui/core\";\r\nimport { Edit } from \"@material-ui/icons\";\r\n\r\nexport default function EditIconButton(props) {\r\n const { buttonOption, tooltipTitle } = props;\r\n\r\n return (\r\n <>\r\n 変更します\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { IconButton, Tooltip, Typography } from \"@material-ui/core\";\r\nimport { Save } from \"@material-ui/icons\";\r\n\r\nexport default function SaveIconButton(props) {\r\n const { buttonOption, tooltipTitle } = props;\r\n\r\n return (\r\n <>\r\n 保存します\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { IconButton, Tooltip, Typography } from \"@material-ui/core\";\r\nimport { Undo } from \"@material-ui/icons\";\r\n\r\nexport default function UndoIconButton(props) {\r\n const { buttonOption, tooltipTitle } = props;\r\n\r\n return (\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 * @file お知らせ一覧画面\r\n */\r\nimport React, { useContext, useEffect, useCallback } from \"react\";\r\nimport {\r\n Typography,\r\n TableRow,\r\n IconButton,\r\n useTheme,\r\n TextField,\r\n Hidden,\r\n} from \"@material-ui/core/\";\r\nimport {\r\n Box,\r\n Button,\r\n Grid,\r\n Tooltip,\r\n Fab,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n} from \"@material-ui/core\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport { TableHeaderCell } from \"components/table/TableHeaderCell\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport axios from \"axios\";\r\nimport { Add, Search, Edit, Save, Undo } from \"@material-ui/icons\";\r\nimport PagenationTable2 from \"components/table/PagenationTable2\";\r\nimport TableSkeleton from \"components/table/TableSkeleton\";\r\nimport ListTitleDrawer from \"components/drawer/ListTitleDrawer\";\r\nimport SearchModal from \"components/modal/SearchModal\";\r\nimport TitleWithSubTitleText from \"components/text/TitleWithSubTitleText\";\r\nimport SearchInputGrid from \"components/input/textbox/SearchInputGrid\";\r\nimport ListText from \"components/text/ListText\";\r\nimport qs from \"qs\";\r\nimport LinkFab from \"components/input/button/LinkFab\";\r\nimport KeybordDatePickerJp from \"components/input/textbox/KeybordDatePickerJp\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport { sessionStorageKeys } from \"components/common/Const\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\n\r\nimport { useForm } from \"react-hook-form\";\r\nimport {\r\n ErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport * as yup from \"yup\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\nimport { TableCellBorderSpace } from \"components/table/TableCellNoBorder\";\r\nimport { PatchShowOrder } from \"components/api/InformationApi\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport EditIconButton from \"components/input/button/EditIconButton\";\r\nimport SaveIconButton from \"components/input/button/SaveIconButton\";\r\nimport UndoIconButton from \"components/input/button/UndoIconButton\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n smartLineUpLeft: {\r\n [theme.breakpoints.up(\"lg\")]: {\r\n float: \"left\",\r\n width: \"60%\",\r\n },\r\n [theme.breakpoints.down(\"md\")]: {\r\n width: \"100%\",\r\n },\r\n },\r\n smartLineUpRight: {\r\n [theme.breakpoints.up(\"lg\")]: {\r\n float: \"left\",\r\n width: \"40%\",\r\n },\r\n [theme.breakpoints.down(\"md\")]: {\r\n width: \"100%\",\r\n marginBottom: \"20px\",\r\n },\r\n },\r\n deliveryTitle: {\r\n float: \"left\",\r\n width: \"30%\",\r\n padding: \"6px 16px\",\r\n },\r\n buttonBox: {\r\n [theme.breakpoints.up(\"lg\")]: {\r\n textAlign: \"right\",\r\n },\r\n [theme.breakpoints.down(\"md\")]: {\r\n textAlign: \"center\",\r\n },\r\n },\r\n editButton: {\r\n [theme.breakpoints.up(\"lg\")]: {\r\n margin: theme.spacing(1),\r\n width: \"80%\",\r\n },\r\n\r\n [theme.breakpoints.down(\"md\")]: {\r\n margin: theme.spacing(1),\r\n width: \"80%\",\r\n },\r\n },\r\n LinkButton: {\r\n [theme.breakpoints.up(\"lg\")]: {\r\n margin: theme.spacing(1),\r\n width: \"60%\",\r\n },\r\n\r\n [theme.breakpoints.down(\"md\")]: {\r\n margin: theme.spacing(1),\r\n width: \"80%\",\r\n },\r\n },\r\n deliveryStatus: {\r\n marginTop: theme.spacing(2),\r\n marginBottom: theme.spacing(2),\r\n marginLeft: theme.spacing(2),\r\n fontWeight: 600,\r\n },\r\n chip: {\r\n margin: theme.spacing(0.5),\r\n },\r\n cancelText: {\r\n margin: theme.spacing(1),\r\n color: \"red\",\r\n fontWeight: 600,\r\n },\r\n inputBottom: {\r\n marginBottom: \"auto\",\r\n flexBasis: \"auto\",\r\n },\r\n}));\r\n\r\nexport default function Information(props) {\r\n const hospitalId = qs.parse(props.location.search, {\r\n ignoreQueryPrefix: true,\r\n }).hospitalid; // 医療機関ID\r\n //alert(hospitalId);\r\n const styles = commonStyle();\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const msgctx = useContext(MessageContext);\r\n const errProvider = useErrorMessageProvider();\r\n //入力チェックのスキーマ定義\r\n const [schemaData] = useSafeState(unmountRef, {\r\n showOrder: yup.number().positive().typeError(\"半角数字を入力してください\"),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n\r\n //react-hooks-form\r\n const { errors, setError } = useForm({\r\n resolver: yupResolver(schema),\r\n });\r\n\r\n const showOrderEditSchema = yup.object().shape({\r\n informationLists: yup\r\n .array()\r\n //こんな感じでconsole.logで途中の値を確認できます\r\n // .test(\r\n // \"informationLists\",\r\n // \"informationListsのテストです\",\r\n // (value, context) => {\r\n // console.log(value);\r\n // return true;\r\n // }\r\n // )\r\n .of(yup.lazy((informationLists) => yup.object().shape(schemaData))),\r\n });\r\n const {\r\n register: showOrderRegister,\r\n errors: showOrderErrors,\r\n setError: showOrderSetErrors,\r\n getValues: showOrderGetValues,\r\n clearErrors: showOrderClearErrors,\r\n } = useForm({\r\n resolver: yupResolver(showOrderEditSchema),\r\n });\r\n\r\n const unmountRef = useUnmountRef();\r\n\r\n const [errorMessage, setErrorMessage] = useSafeState(unmountRef, \"\");\r\n const [informationContent, setInformationContent] = useSafeState(\r\n unmountRef,\r\n null\r\n );\r\n const [refreshTable, setRefreshTable] = useSafeState(unmountRef, false); // PagenationTableにデータ再取得させるためのフラグ\r\n const [searchModalOpen, setSearchModalOpen] = useSafeState(unmountRef, false); // 検索モーダルの開閉\r\n const MyComponent = React.forwardRef(LinkFab); // LinkFabにrefが渡せなくてエラーになるため、refを渡すようにする。\r\n const [searchCondition, setSearchCondition] = useSafeState(unmountRef, {\r\n getDeleted: false,\r\n });\r\n const [readingHospital, setReadingHospital] = useSafeState(unmountRef, null);\r\n const [isEditShowOrder, setIsEditShowOrder] = useSafeState(unmountRef, false); // 表示順変更モード\r\n\r\n const userctx = useContext(UserContext);\r\n\r\n async function GetHospital() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .get(\"api/hospitals/reading\", {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setErrorMessage(json.message);\r\n } else {\r\n setReadingHospital(json.data);\r\n }\r\n })\r\n .catch(function (error) {});\r\n }\r\n\r\n const SearchAction = () => {\r\n setRefreshTable(!refreshTable);\r\n return \"\";\r\n };\r\n\r\n /* 関数 */\r\n // 検索モーダルオープン\r\n const handleSearchModalOpen = () => {\r\n setSearchModalOpen(true);\r\n };\r\n // 検索モーダルクローズ\r\n const handleSearchModalClose = () => {\r\n setSearchModalOpen(false);\r\n };\r\n\r\n // 一覧取得\r\n const GetInformations = useCallback(async (skip, take) => {\r\n let getUrl;\r\n let values = searchCondition;\r\n\r\n await schema.validate(values, { abortEarly: false }).catch(function (err) {\r\n err.inner.map((error) =>\r\n setError(error.path, { message: error.message })\r\n );\r\n });\r\n if (!Object.keys(values).length && hospitalId) {\r\n values[\"hospitalId\"] = hospitalId;\r\n }\r\n getUrl =\r\n \"api/Information/list?\" +\r\n new URLSearchParams(values) +\r\n \"&offset=\" +\r\n skip +\r\n \"&take=\" +\r\n take +\r\n \"&requireAllCount=true\";\r\n\r\n setInformationContent();\r\n const token = await authService.getAccessToken();\r\n return await axios\r\n .get(getUrl, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n setInformationContent(response.data);\r\n handleSearchModalClose();\r\n return response;\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetUsers error\", error);\r\n return undefined;\r\n });\r\n });\r\n\r\n // 一覧テーブルのヘッダ\r\n const tableHeaderDef = useCallback(() => {\r\n return (\r\n <>\r\n \r\n \r\n 表示順\r\n \r\n {userctx.claims &&\r\n userctx.hasClaim(Claims.Information_Edit) &&\r\n isEditShowOrder ? (\r\n <>\r\n 表示順変更モードを解除します\r\n }\r\n buttonOption={{\r\n size: \"small\",\r\n onClick: () => {\r\n setIsEditShowOrder(false);\r\n },\r\n style: { marginTop: \"-5px\" },\r\n }}\r\n />\r\n 表示順を更新します}\r\n buttonOption={{\r\n size: \"small\",\r\n onClick: async () => {\r\n //変更処理\r\n showOrderClearErrors();\r\n var values = showOrderGetValues();\r\n // console.log(values);\r\n await showOrderEditSchema\r\n .validate(values, { abortEarly: false })\r\n .then(async () => {\r\n await PatchShowOrder(values.informationLists)\r\n .then(() => {\r\n msgctx.enqueue(\"表示順を更新しました\", \"success\");\r\n setIsEditShowOrder(false);\r\n setRefreshTable(!refreshTable);\r\n })\r\n .catch((error) => {\r\n errProvider.setValidationErrorsForaxios(\r\n error,\r\n showOrderSetErrors\r\n );\r\n });\r\n })\r\n .catch(function (err) {\r\n if (err && err.inner)\r\n err.inner.map((error) => {\r\n showOrderSetErrors(error.path, {\r\n message: error.message,\r\n });\r\n });\r\n return;\r\n });\r\n },\r\n style: { marginTop: \"-5px\" },\r\n }}\r\n />\r\n \r\n ) : (\r\n 表示順変更モードにします}\r\n buttonOption={{\r\n size: \"small\",\r\n onClick: () => {\r\n setIsEditShowOrder(true);\r\n },\r\n style: { marginTop: \"-5px\" },\r\n }}\r\n />\r\n )}\r\n {/* \r\n {\r\n\r\n if (isEditShowOrder)\r\n {\r\n // 保存処理\r\n }\r\n\r\n setIsEditShowOrder(!isEditShowOrder);\r\n \r\n }}\r\n style={{ marginLeft: theme.spacing(2) }}\r\n >\r\n {isEditShowOrder ? : }\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 {userctx.claims && userctx.hasClaim(Claims.Information_Edit) && (\r\n \r\n 編集\r\n \r\n )}\r\n \r\n );\r\n });\r\n\r\n // 一覧テーブルのボディー\r\n const tableBodyDef = useCallback(() => {\r\n return (\r\n <>\r\n {informationContent ? (\r\n informationContent.map((info, index) => (\r\n \r\n \r\n {userctx.claims && userctx.hasClaim(Claims.Information_Edit) && (\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 {userctx.claims && userctx.hasClaim(Claims.Information_Edit) && (\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 const changeSearchCondition = useCallback((id, val) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[id] = val;\r\n setSearchCondition(cloned);\r\n });\r\n const changeDateSearchCondition = useCallback((id, val) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n if (val) cloned[id] = val.toLocaleDateString();\r\n else delete cloned[id];\r\n setSearchCondition(cloned);\r\n });\r\n\r\n // タイトル横ボタンの定義\r\n const buttonsDef = [\r\n \r\n \r\n \r\n \r\n ,\r\n userctx.claims && userctx.hasClaim(Claims.Information_Create) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n\r\n const listsDef = [\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n userctx.claims && userctx.hasClaim(Claims.Information_Create) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n\r\n const handleSearchClick = () => {\r\n GetInformations();\r\n handleSearchModalClose();\r\n };\r\n\r\n useEffect(() => {\r\n GetHospital();\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n }\r\n buttons={buttonsDef}\r\n lists={listsDef}\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","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"Layer 1\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"svg_1\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"svg_2\",\n clipRule: \"evenodd\",\n fillRule: \"evenodd\",\n d: \"m81.61,4.73c0,-2.61 2.58,-4.73 5.77,-4.73c3.19,0 5.77,2.12 5.77,4.73l0,20.72c0,2.61 -2.58,4.73 -5.77,4.73c-3.19,0 -5.77,-2.12 -5.77,-4.73l0,-20.72l0,0l0,0zm-31.88,63.71l-3.44,27.87l-9.67,0c-0.88,-4.28 -1.66,-9.15 -2.33,-14.6c-0.31,2.33 -1.02,7.19 -2.15,14.6l-9.61,0l-3.46,-27.87l7.52,0l0.79,9.73l0.81,9.38c0.28,-4.85 1,-11.22 2.13,-19.11l8.05,0c0.11,0.82 0.4,3.88 0.85,9.19l0.85,10.59c0.43,-6.74 1.14,-13.33 2.15,-19.78l7.51,0l0,0zm2.34,0l12.9,0l0,5.58l-5.17,0l0,5.28l4.84,0l0,5.31l-4.84,0l0,6.13l5.68,0l0,5.58l-13.41,0l0,-27.88l0,0zm16.44,0l12.9,0l0,5.58l-5.17,0l0,5.28l4.84,0l0,5.31l-4.84,0l0,6.13l5.68,0l0,5.58l-13.41,0l0,-27.88l0,0zm34.87,0l-4.43,12.58l4.85,15.29l-7.99,0l-3.13,-11.95l0,11.95l-7.73,0l0,-27.87l7.73,0l0,10.83l3.44,-10.83l7.26,0l0,0zm-73.77,-63.71c0,-2.61 2.58,-4.73 5.77,-4.73c3.19,0 5.77,2.12 5.77,4.73l0,20.72c0,2.61 -2.58,4.73 -5.77,4.73c-3.19,0 -5.77,-2.12 -5.77,-4.73l0,-20.72l0,0l0,0zm-23.21,40.59l110.08,0l0,-23.85c0,-0.8 -0.33,-1.53 -0.86,-2.07c-0.53,-0.53 -1.26,-0.86 -2.07,-0.86l-10.55,0c-1.77,0 -3.2,-1.43 -3.2,-3.2c0,-1.77 1.43,-3.2 3.2,-3.2l10.55,0c2.57,0 4.9,1.05 6.59,2.74c1.69,1.69 2.74,4.02 2.74,6.59l0,27.06l0,65.03c0,2.57 -1.05,4.9 -2.74,6.59c-1.69,1.69 -4.02,2.74 -6.59,2.74l-104.22,0c-2.57,0 -4.9,-1.05 -6.59,-2.74c-1.69,-1.7 -2.74,-4.03 -2.74,-6.6l0,-65.02l0,-27.06c0,-2.57 1.05,-4.9 2.74,-6.59c1.69,-1.69 4.02,-2.74 6.59,-2.74l11.27,0c1.77,0 3.2,1.43 3.2,3.2c0,1.77 -1.43,3.2 -3.2,3.2l-11.27,0c-0.8,0 -1.53,0.33 -2.07,0.86c-0.53,0.53 -0.86,1.26 -0.86,2.07l0,23.85l0,0l0,0zm110.08,6.41l-110.08,0l0,61.82c0,0.8 0.33,1.53 0.86,2.07c0.53,0.53 1.26,0.86 2.07,0.86l104.22,0c0.8,0 1.53,-0.33 2.07,-0.86c0.53,-0.53 0.86,-1.26 0.86,-2.07l0,-61.82l0,0l0,0zm-66.05,-33.19c-1.77,0 -3.2,-1.43 -3.2,-3.2c0,-1.77 1.43,-3.2 3.2,-3.2l21.49,0c1.77,0 3.2,1.43 3.2,3.2c0,1.77 -1.43,3.2 -3.2,3.2l-21.49,0l0,0l0,0z\",\n className: \"st0\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"svg_11\",\n height: 49,\n width: 97,\n y: 58.94501,\n x: 11.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"rect\", {\n strokeWidth: 0,\n id: \"svg_12\",\n height: 0,\n width: 2,\n y: 212.94501,\n x: 50.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"svg_13\",\n height: 3,\n width: 11,\n y: 288.94501,\n x: 317.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"svg_14\",\n height: 1,\n width: 2,\n y: -25.05499,\n x: 205.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"rect\", {\n strokeWidth: 0,\n id: \"svg_15\",\n height: 57,\n width: 106,\n y: 54.94501,\n x: 8.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n});\n\nvar SvgMonthEdited = function SvgMonthEdited(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 122.88,\n height: 122.89,\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, /*#__PURE__*/React.createElement(\"g\", null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, /*#__PURE__*/React.createElement(\"text\", {\n transform: \"matrix(1 0 0 1 0 0)\",\n style: {\n cursor: \"move\"\n },\n fontStyle: \"normal\",\n fontWeight: \"bold\",\n xmlSpace: \"preserve\",\n textAnchor: \"start\",\n fontFamily: \"Noto Sans JP\",\n fontSize: 28,\n id: \"svg_17\",\n y: 94,\n x: 5.63531,\n strokeWidth: 0,\n stroke: \"#000\",\n fill: \"#000000\"\n }, \"MONTH\")));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMonthEdited, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/monthEdited.df2e7665.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"Layer 1\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"svg_1\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"svg_2\",\n clipRule: \"evenodd\",\n fillRule: \"evenodd\",\n d: \"m81.61,4.73c0,-2.61 2.58,-4.73 5.77,-4.73c3.19,0 5.77,2.12 5.77,4.73l0,20.72c0,2.61 -2.58,4.73 -5.77,4.73c-3.19,0 -5.77,-2.12 -5.77,-4.73l0,-20.72l0,0l0,0zm-31.88,63.71l-3.44,27.87l-9.67,0c-0.88,-4.28 -1.66,-9.15 -2.33,-14.6c-0.31,2.33 -1.02,7.19 -2.15,14.6l-9.61,0l-3.46,-27.87l7.52,0l0.79,9.73l0.81,9.38c0.28,-4.85 1,-11.22 2.13,-19.11l8.05,0c0.11,0.82 0.4,3.88 0.85,9.19l0.85,10.59c0.43,-6.74 1.14,-13.33 2.15,-19.78l7.51,0l0,0zm2.34,0l12.9,0l0,5.58l-5.17,0l0,5.28l4.84,0l0,5.31l-4.84,0l0,6.13l5.68,0l0,5.58l-13.41,0l0,-27.88l0,0zm16.44,0l12.9,0l0,5.58l-5.17,0l0,5.28l4.84,0l0,5.31l-4.84,0l0,6.13l5.68,0l0,5.58l-13.41,0l0,-27.88l0,0zm34.87,0l-4.43,12.58l4.85,15.29l-7.99,0l-3.13,-11.95l0,11.95l-7.73,0l0,-27.87l7.73,0l0,10.83l3.44,-10.83l7.26,0l0,0zm-73.77,-63.71c0,-2.61 2.58,-4.73 5.77,-4.73c3.19,0 5.77,2.12 5.77,4.73l0,20.72c0,2.61 -2.58,4.73 -5.77,4.73c-3.19,0 -5.77,-2.12 -5.77,-4.73l0,-20.72l0,0l0,0zm-23.21,40.59l110.08,0l0,-23.85c0,-0.8 -0.33,-1.53 -0.86,-2.07c-0.53,-0.53 -1.26,-0.86 -2.07,-0.86l-10.55,0c-1.77,0 -3.2,-1.43 -3.2,-3.2c0,-1.77 1.43,-3.2 3.2,-3.2l10.55,0c2.57,0 4.9,1.05 6.59,2.74c1.69,1.69 2.74,4.02 2.74,6.59l0,27.06l0,65.03c0,2.57 -1.05,4.9 -2.74,6.59c-1.69,1.69 -4.02,2.74 -6.59,2.74l-104.22,0c-2.57,0 -4.9,-1.05 -6.59,-2.74c-1.69,-1.7 -2.74,-4.03 -2.74,-6.6l0,-65.02l0,-27.06c0,-2.57 1.05,-4.9 2.74,-6.59c1.69,-1.69 4.02,-2.74 6.59,-2.74l11.27,0c1.77,0 3.2,1.43 3.2,3.2c0,1.77 -1.43,3.2 -3.2,3.2l-11.27,0c-0.8,0 -1.53,0.33 -2.07,0.86c-0.53,0.53 -0.86,1.26 -0.86,2.07l0,23.85l0,0l0,0zm110.08,6.41l-110.08,0l0,61.82c0,0.8 0.33,1.53 0.86,2.07c0.53,0.53 1.26,0.86 2.07,0.86l104.22,0c0.8,0 1.53,-0.33 2.07,-0.86c0.53,-0.53 0.86,-1.26 0.86,-2.07l0,-61.82l0,0l0,0zm-66.05,-33.19c-1.77,0 -3.2,-1.43 -3.2,-3.2c0,-1.77 1.43,-3.2 3.2,-3.2l21.49,0c1.77,0 3.2,1.43 3.2,3.2c0,1.77 -1.43,3.2 -3.2,3.2l-21.49,0l0,0l0,0z\",\n className: \"st0\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"svg_11\",\n height: 49,\n width: 97,\n y: 58.94501,\n x: 11.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"rect\", {\n strokeWidth: 0,\n id: \"svg_12\",\n height: 0,\n width: 2,\n y: 212.94501,\n x: 50.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"svg_13\",\n height: 3,\n width: 11,\n y: 288.94501,\n x: 317.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"svg_14\",\n height: 1,\n width: 2,\n y: -25.05499,\n x: 205.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"rect\", {\n strokeWidth: 0,\n id: \"svg_15\",\n height: 57,\n width: 106,\n y: 54.94501,\n x: 8.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n});\n\nvar SvgWeekEdited = function SvgWeekEdited(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 122.88,\n height: 122.89,\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, /*#__PURE__*/React.createElement(\"g\", null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, /*#__PURE__*/React.createElement(\"text\", {\n transform: \"matrix(1 0 0 1 0 0)\",\n style: {\n cursor: \"move\"\n },\n fontStyle: \"normal\",\n fontWeight: \"bold\",\n xmlSpace: \"preserve\",\n textAnchor: \"start\",\n fontFamily: \"Noto Sans JP\",\n fontSize: 28,\n id: \"svg_17\",\n y: 94,\n x: 17.43609,\n strokeWidth: 0,\n stroke: \"#000\",\n fill: \"#000000\"\n }, \"WEEK\")));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgWeekEdited, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/weekEdited.cb783754.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"title\", null, \"Layer 1\"), /*#__PURE__*/React.createElement(\"g\", {\n id: \"svg_1\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"svg_2\",\n clipRule: \"evenodd\",\n fillRule: \"evenodd\",\n d: \"m81.61,4.73c0,-2.61 2.58,-4.73 5.77,-4.73c3.19,0 5.77,2.12 5.77,4.73l0,20.72c0,2.61 -2.58,4.73 -5.77,4.73c-3.19,0 -5.77,-2.12 -5.77,-4.73l0,-20.72l0,0l0,0zm-31.88,63.71l-3.44,27.87l-9.67,0c-0.88,-4.28 -1.66,-9.15 -2.33,-14.6c-0.31,2.33 -1.02,7.19 -2.15,14.6l-9.61,0l-3.46,-27.87l7.52,0l0.79,9.73l0.81,9.38c0.28,-4.85 1,-11.22 2.13,-19.11l8.05,0c0.11,0.82 0.4,3.88 0.85,9.19l0.85,10.59c0.43,-6.74 1.14,-13.33 2.15,-19.78l7.51,0l0,0zm2.34,0l12.9,0l0,5.58l-5.17,0l0,5.28l4.84,0l0,5.31l-4.84,0l0,6.13l5.68,0l0,5.58l-13.41,0l0,-27.88l0,0zm16.44,0l12.9,0l0,5.58l-5.17,0l0,5.28l4.84,0l0,5.31l-4.84,0l0,6.13l5.68,0l0,5.58l-13.41,0l0,-27.88l0,0zm34.87,0l-4.43,12.58l4.85,15.29l-7.99,0l-3.13,-11.95l0,11.95l-7.73,0l0,-27.87l7.73,0l0,10.83l3.44,-10.83l7.26,0l0,0zm-73.77,-63.71c0,-2.61 2.58,-4.73 5.77,-4.73c3.19,0 5.77,2.12 5.77,4.73l0,20.72c0,2.61 -2.58,4.73 -5.77,4.73c-3.19,0 -5.77,-2.12 -5.77,-4.73l0,-20.72l0,0l0,0zm-23.21,40.59l110.08,0l0,-23.85c0,-0.8 -0.33,-1.53 -0.86,-2.07c-0.53,-0.53 -1.26,-0.86 -2.07,-0.86l-10.55,0c-1.77,0 -3.2,-1.43 -3.2,-3.2c0,-1.77 1.43,-3.2 3.2,-3.2l10.55,0c2.57,0 4.9,1.05 6.59,2.74c1.69,1.69 2.74,4.02 2.74,6.59l0,27.06l0,65.03c0,2.57 -1.05,4.9 -2.74,6.59c-1.69,1.69 -4.02,2.74 -6.59,2.74l-104.22,0c-2.57,0 -4.9,-1.05 -6.59,-2.74c-1.69,-1.7 -2.74,-4.03 -2.74,-6.6l0,-65.02l0,-27.06c0,-2.57 1.05,-4.9 2.74,-6.59c1.69,-1.69 4.02,-2.74 6.59,-2.74l11.27,0c1.77,0 3.2,1.43 3.2,3.2c0,1.77 -1.43,3.2 -3.2,3.2l-11.27,0c-0.8,0 -1.53,0.33 -2.07,0.86c-0.53,0.53 -0.86,1.26 -0.86,2.07l0,23.85l0,0l0,0zm110.08,6.41l-110.08,0l0,61.82c0,0.8 0.33,1.53 0.86,2.07c0.53,0.53 1.26,0.86 2.07,0.86l104.22,0c0.8,0 1.53,-0.33 2.07,-0.86c0.53,-0.53 0.86,-1.26 0.86,-2.07l0,-61.82l0,0l0,0zm-66.05,-33.19c-1.77,0 -3.2,-1.43 -3.2,-3.2c0,-1.77 1.43,-3.2 3.2,-3.2l21.49,0c1.77,0 3.2,1.43 3.2,3.2c0,1.77 -1.43,3.2 -3.2,3.2l-21.49,0l0,0l0,0z\",\n className: \"st0\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"svg_11\",\n height: 49,\n width: 97,\n y: 58.94501,\n x: 11.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n strokeWidth: 0,\n id: \"svg_12\",\n height: 0,\n width: 2,\n y: 212.94501,\n x: 50.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"svg_13\",\n height: 3,\n width: 11,\n y: 288.94501,\n x: 317.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"svg_14\",\n height: 1,\n width: 2,\n y: -25.05499,\n x: 205.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n strokeWidth: 0,\n id: \"svg_15\",\n height: 57,\n width: 106,\n y: 54.94501,\n x: 8.94,\n stroke: \"#000\",\n fill: \"#ffffff\"\n}), /*#__PURE__*/React.createElement(\"text\", {\n fontStyle: \"normal\",\n fontWeight: \"bold\",\n xmlSpace: \"preserve\",\n textAnchor: \"start\",\n fontFamily: \"Noto Sans JP\",\n fontSize: 28,\n id: \"svg_17\",\n y: 93,\n x: 11.49859,\n strokeWidth: 0,\n stroke: \"#000\",\n fill: \"#000000\"\n}, \"TODAY\"));\n\nvar SvgTodayEdited = function SvgTodayEdited(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 122.88,\n height: 122.89,\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTodayEdited, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/todayEdited.49bb1fb2.svg\";\nexport { ForwardRef as ReactComponent };","/**\r\n * @file お知らせ登録画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport {\r\n Table,\r\n TableRow,\r\n InputLabel,\r\n Select,\r\n MenuItem,\r\n Button,\r\n SvgIcon,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core/\";\r\nimport { FormControl, Grid, TextField } from \"@material-ui/core\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport axios from \"axios\";\r\nimport { TableCellNoBorder } from \"components/table/TableCellNoBorder\";\r\nimport KeybordDatePickerJp from \"components/input/textbox/KeybordDatePickerJp\";\r\nimport KeybordTimePicker from \"components/input/textbox/KeybordTimePicker\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\n\r\nimport useReactRouter from \"use-react-router\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport * as yup from \"yup\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport TitleWithSubTitleText from \"components/text/TitleWithSubTitleText\";\r\nimport clsx from \"clsx\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport ManageMenuPaper from \"components/paper/ManageMenuPaper\";\r\nimport { Add } from \"@material-ui/icons\";\r\nimport MonthButton from \"components/input/button/MonthButton\";\r\nimport WeekButton from \"components/input/button/WeekButton\";\r\nimport TodayButton from \"components/input/button/TodayButton\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n rightContentCell: {\r\n width: \"100% !important\",\r\n },\r\n date: {\r\n \"& > span\": {\r\n width: \"100%\",\r\n },\r\n },\r\n titleText: {\r\n border: 1,\r\n borderRadius: 3,\r\n fontWeight: \"600\",\r\n },\r\n tableTd: {\r\n // paddingLeft: \"0px\",\r\n // paddingRight: \"0px\",\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n },\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n paperBox: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n marginLeft: theme.spacing(5),\r\n },\r\n },\r\n}));\r\n\r\nexport default function InformationRegister(props) {\r\n const unmountRef = useUnmountRef();\r\n //const { edit ,...other } = props;\r\n\r\n const [errorMessage, setErrorMessage] = useSafeState(unmountRef, \"\");\r\n const classes = useStyles();\r\n\r\n const style = commonStyle();\r\n\r\n const theme = useTheme();\r\n //お知らせ情報格納\r\n const [informationContent, setInformationContent] = useSafeState(\r\n unmountRef,\r\n null\r\n );\r\n //権限情報格納\r\n const [isMypage, setIsMypage] = useSafeState(unmountRef, false);\r\n const [hospitalId, setHospitalId] = useSafeState(unmountRef, 0);\r\n\r\n const selectedId = new URLSearchParams(props.location.search).toString();\r\n const [action, setAction] = useSafeState(unmountRef, false);\r\n\r\n const { history, location, match } = useReactRouter();\r\n\r\n const { setValidationErrorsForaxios } = useErrorMessageProvider();\r\n\r\n const [openDeleteDialog, setOpenDeleteDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n\r\n const [readingHospital, setReadingHospital] = useSafeState(unmountRef, null);\r\n\r\n const userctx = useContext(UserContext);\r\n\r\n var object = {};\r\n\r\n //入力チェックのスキーマ定義\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n text: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n informationDate: yup\r\n .date()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.date)),\r\n showBgnDate: yup\r\n .date()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.date)),\r\n showBgnTime: yup\r\n .date()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.time)),\r\n showEndDate: yup\r\n .date()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.date)),\r\n showEndTime: yup\r\n .date()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.time)),\r\n showOrder: yup\r\n .number()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.number)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n\r\n //react-hooks-form\r\n const {\r\n register,\r\n handleSubmit,\r\n watch,\r\n errors,\r\n setError,\r\n setValue,\r\n getValues,\r\n clearErrors,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n async function GetInformation() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .get(\"api/Information/register/?\" + selectedId, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setErrorMessage(json.message);\r\n } else {\r\n setInformationContent(json.data);\r\n //setRoleId(json.data.roleId);\r\n json.data.isMypage && setIsMypage(json.data.isMypage);\r\n json.data.hospitalId && setHospitalId(json.data.hospitalId);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"getItem error\", error);\r\n });\r\n }\r\n\r\n async function GetHospital() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .get(\"api/hospitals/reading\", {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setErrorMessage(json.message);\r\n } else {\r\n setReadingHospital(json.data);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"test\");\r\n });\r\n }\r\n\r\n async function onSubmit(values) {\r\n //IEではFormDataが使えないためobjectに収納する\r\n for (var key in values) {\r\n if (key === \"showBgnTime\" || key === \"showEndTime\") {\r\n //object[key] = new Date(values[key]).toLocaleTimeString();\r\n //IEでは上記のtolocalが使用困難なため下記で代用\r\n object[key] =\r\n new Date(values[key]).getHours() +\r\n \":\" +\r\n new Date(values[key]).getMinutes();\r\n } else object[key] = values[key];\r\n }\r\n\r\n //SELECTの病院ID, 表示先がなぜかvaluesに入らないのでこのようにする\r\n object[\"isMypage\"] = isMypage;\r\n object[\"hospitalId\"] = hospitalId;\r\n object[\"isAdmin\"] = false;\r\n //object[\"showOrder\"] = document.getElementsByName(\"showOrder\");\r\n\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .post(\"api/Information\", object, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n history.push(\"../InformationList\");\r\n }\r\n return response;\r\n })\r\n .catch(function (error) {\r\n if (error.response.status == 400) {\r\n setValidationErrorsForaxios(error, setError);\r\n } else {\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: GetErrMsg(ErrMsgKey.unexpected),\r\n });\r\n }\r\n });\r\n }\r\n\r\n async function onUpdate(values) {\r\n //var object = FormDataToJson('role-form');\r\n //IEではFormDataが使えないためobjectに収納する\r\n for (var key in values) {\r\n if (key === \"showBgnTime\" || key === \"showEndTime\")\r\n //object[key] = new Date(values[key]).toLocaleTimeString();\r\n //IEでは上記のtolocalが使用困難なため下記で代用\r\n object[key] =\r\n new Date(values[key]).getHours() +\r\n \":\" +\r\n new Date(values[key]).getMinutes();\r\n else if (\r\n key === \"showBgnDate\" ||\r\n key === \"showEndDate\" ||\r\n key === \"informationDate\"\r\n )\r\n object[key] = new Date(values[key]).toLocaleDateString();\r\n else object[key] = values[key];\r\n }\r\n\r\n //SELECTの病院ID, 表示先がなぜかvaluesに入らないのでこのようにする\r\n object[\"isMypage\"] = isMypage;\r\n object[\"hospitalId\"] = hospitalId;\r\n object[\"isAdmin\"] = false;\r\n //object[\"showOrder\"] = document.getElementsByName(\"showOrder\");\r\n\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .put(\"api/Information?\" + selectedId, object, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n //alert(\"作成しました\");\r\n history.push(\"./InformationList\");\r\n }\r\n return response;\r\n })\r\n .catch(function (error) {\r\n if (error.response.status == 400) {\r\n setValidationErrorsForaxios(error, setError);\r\n } else alert(\"エラー\");\r\n });\r\n }\r\n\r\n async function onDelete() {\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .delete(\"api/Information?\" + selectedId, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n history.push(\"./InformationList\");\r\n }\r\n return response;\r\n })\r\n .catch(function (error) {\r\n if (error.response.status == 400) alert(\"削除されませんでした\");\r\n else alert(\"エラー\");\r\n });\r\n }\r\n\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n\r\n const handleDisplayChange = (event) => {\r\n setIsMypage(event.target.value);\r\n };\r\n\r\n const button1Text = () => {\r\n return (\r\n <>\r\n 登録\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n GetInformation();\r\n GetHospital();\r\n }, []);\r\n\r\n const handleDialogClose = () => {\r\n setOpenDeleteDialog(false);\r\n };\r\n\r\n const handleDialogOpen = () => {\r\n setOpenDeleteDialog(true);\r\n };\r\n\r\n return (\r\n
\r\n {/* \r\n */}\r\n onDelete()}\r\n open={openDeleteDialog}\r\n handleClose={handleDialogClose}\r\n message={\"指定のお知らせを削除します\"}\r\n />\r\n \r\n \r\n\r\n \r\n {informationContent && (\r\n \r\n )}\r\n \r\n {/*スマホ表示の時はタイトル(左側セル)を消そうか*/}\r\n {informationContent && (\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\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(() => {\r\n if (!informationContent.isEdit) {\r\n return (\r\n \r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n handleDialogOpen()}\r\n fullWidth\r\n variant=\"contained\"\r\n className2={classes.delete_button}\r\n isPaperInner={true}\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 * @file メッセージ送信履歴画面\r\n */\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n Fab,\r\n FormControl,\r\n Grid,\r\n InputLabel,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n MenuItem,\r\n TableRow,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Add, FileCopy, Search } from \"@material-ui/icons\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { sessionStorageKeys } from \"components/common/Const\";\r\nimport { ErrMsgKey, GetErrMsg } from \"components/common/ErrorMessageProvider\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport ListTitleDrawer from \"components/drawer/ListTitleDrawer\";\r\nimport LinkFab from \"components/input/button/LinkFab\";\r\nimport {\r\n HospitalDeptWithHospitalSelectList,\r\n HospitalSelectList,\r\n} from \"components/input/selectlist/HospitalSelectList\";\r\nimport KeybordDatePickerJp from \"components/input/textbox/KeybordDatePickerJp\";\r\nimport SearchModal from \"components/modal/SearchModal\";\r\nimport PagenationTable2 from \"components/table/PagenationTable2\";\r\nimport { TableHeaderCell } from \"components/table/TableHeaderCell\";\r\nimport TableSkeleton from \"components/table/TableSkeleton\";\r\nimport ListText from \"components/text/ListText\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/ja\";\r\nimport { Link } from \"react-router-dom\";\r\nimport * as yup from \"yup\";\r\nimport { TableCellBorderSpace } from \"components/table/TableCellNoBorder\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n edit_button: {\r\n marginRight: theme.spacing(1),\r\n },\r\n input_ie: {\r\n flexBasis: \"auto\",\r\n },\r\n}));\r\n\r\nexport default function Notices() {\r\n /* ステート,コンテキスト等 */\r\n const classes = useStyles();\r\n const userctx = useContext(UserContext);\r\n\r\n const unmountRef = useUnmountRef();\r\n const [itemData, setItemData] = useSafeState(unmountRef, null); // 一覧\r\n const [searchModalOpen, setSearchModalOpen] = useSafeState(unmountRef, false); // 検索モーダルの開閉\r\n const MyComponent = React.forwardRef(LinkFab); // LinkFabにrefが渡せなくてエラーになるため、refを渡すようにする。\r\n const [refreshTable, setRefreshTable] = useSafeState(unmountRef, false); // PagenationTableにデータ再取得させるためのフラグ\r\n\r\n const [canCreate, setCanCreate] = useSafeState(unmountRef, false);\r\n const [searchCondition, setSearchCondition] = useSafeState(unmountRef, {\r\n getDeleted: false,\r\n });\r\n\r\n const createUrl = \"/manage/notices/edit\";\r\n\r\n const [schemaData] = useSafeState(unmountRef, {\r\n email: yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .email(GetErrMsg(ErrMsgKey.email)),\r\n roleId: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n\r\n // /* 関数 */\r\n // 検索モーダルオープン\r\n const handleSearchModalOpen = () => {\r\n setSearchModalOpen(true);\r\n };\r\n // 検索モーダルクローズ\r\n const handleSearchModalClose = () => {\r\n setSearchModalOpen(false);\r\n };\r\n // 一覧取得\r\n const GetDatas = useCallback(async (skip, take) => {\r\n let getUrl;\r\n\r\n let values = searchCondition;\r\n if (!Object.keys(values).length) {\r\n values[\"id\"] = \"\";\r\n }\r\n\r\n getUrl =\r\n \"api/notices?\" +\r\n new URLSearchParams(values) +\r\n \"&offset=\" +\r\n skip +\r\n \"&take=\" +\r\n take +\r\n \"&requireAllCount=true\";\r\n setSearchModalOpen(false);\r\n const token = await authService.getAccessToken();\r\n return await axios\r\n .get(getUrl, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n setItemData(response.data);\r\n return response;\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetDatas error\", error);\r\n return undefined;\r\n });\r\n });\r\n // 検索処理\r\n const SearchAction = () => {\r\n setRefreshTable(!refreshTable);\r\n return \"\";\r\n };\r\n\r\n const changeSearchCondition = useCallback((id, val) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[id] = val;\r\n setSearchCondition(cloned);\r\n });\r\n\r\n const changeSearchConditionSelect = useCallback((event) => {\r\n console.log(event);\r\n var id = event.target.name;\r\n var val = event.target.value;\r\n\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[id] = val;\r\n setSearchCondition(cloned);\r\n });\r\n const changeDateSearchCondition = useCallback((id, val) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n if (val) cloned[id] = val.toLocaleDateString();\r\n else delete cloned[id];\r\n setSearchCondition(cloned);\r\n });\r\n\r\n // 一覧テーブルのヘッダ\r\n const tableHeaderDef = useCallback(() => {\r\n return (\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 const tableBodyDef = useCallback(() => {\r\n return (\r\n <>\r\n {itemData ? (\r\n itemData.map((item, index) => (\r\n \r\n \r\n {item.deptName ? (\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 {canCreate && (\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 const buttonsDef = [\r\n \r\n \r\n \r\n \r\n ,\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n // タイトル横リストの定義\r\n const listsDef = [\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n\r\n useEffect(() => {\r\n const cleanup = () => {};\r\n return cleanup;\r\n }, []);\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n setCanCreate(userctx.hasClaim(Claims.Notices_Create));\r\n }\r\n }, [userctx.claims]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n メッセージ 送信履歴}\r\n buttons={buttonsDef}\r\n lists={listsDef}\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 {searchCondition[\"hospitalId\"] && (\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","import axios from \"axios\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport dayjs from \"dayjs\";\r\n\r\nexport const ApiPostNoticeAsync = async (token, values) => {\r\n values.bgnDate = dayjs(values.bgnDate).format(\"YYYY-MM-DD HH:mm:ss\");\r\n values.endDate = dayjs(values.endDate).format(\"YYYY-MM-DD HH:mm:ss\");\r\n\r\n let tkn = token;\r\n if (!tkn) tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/notices`, values, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\n\r\nexport const ApiPostSampleEmailAsync = async (token, values) => {\r\n values.bgnDate = dayjs(values.bgnDate).format(\"YYYY-MM-DD HH:mm:ss\");\r\n values.endDate = dayjs(values.endDate).format(\"YYYY-MM-DD HH:mm:ss\");\r\n\r\n let tkn = token;\r\n if (!tkn) tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/notices/sample`, values, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n });\r\n};\r\n","/**\r\n * @file メッセージ送信画面\r\n */\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport {\r\n Box,\r\n Button,\r\n FormControl,\r\n Grid,\r\n InputLabel,\r\n MenuItem,\r\n TextField,\r\n Tooltip,\r\n} from \"@material-ui/core/\";\r\nimport {\r\n createMuiTheme,\r\n makeStyles,\r\n useTheme,\r\n MuiThemeProvider,\r\n} from \"@material-ui/core/styles\";\r\nimport { FileCopy, Send } from \"@material-ui/icons\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport {\r\n ApiPostNoticeAsync,\r\n ApiPostSampleEmailAsync,\r\n} from \"components/api/NoticesApi\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport {\r\n HospitalDeptWithHospitalSelectList,\r\n HospitalSelectList,\r\n} from \"components/input/selectlist/HospitalSelectList\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport KeybordDatePickerJp from \"components/input/textbox/KeybordDatePickerJp\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/ja\";\r\nimport qs from \"qs\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport * as yup from \"yup\";\r\nimport ManageMenuPaper from \"components/paper/ManageMenuPaper\";\r\n\r\n// import WysiWygEditor from 'components/editor/WysiWygEditor';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n textField: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n width: \"100%\",\r\n },\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n}));\r\n// state更新用の関数\r\n\r\nconst formLabelsTheme = createMuiTheme({\r\n overrides: {\r\n MuiFormLabel: {\r\n asterisk: {\r\n color: \"#db3131\",\r\n \"&$error\": {\r\n color: \"#db3131\",\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default function NoticesEdit(props) {\r\n const queryS = qs.parse(props.location.search, { ignoreQueryPrefix: true });\r\n const hid = queryS.hid; // 病院ID\r\n const no = queryS.no; // お知らせ連絡№\r\n const { pattern } = useParams(); // 表示パターン 1:参照2:コピー3:新規\r\n const theme = useTheme();\r\n const unmountRef = useUnmountRef();\r\n const [data, setData] = useSafeState(unmountRef, null);\r\n\r\n const [msg, setMsg] = useSafeState(unmountRef, null);\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(\r\n unmountRef,\r\n \"error\"\r\n );\r\n const { history } = useReactRouter();\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useSafeState(\r\n unmountRef,\r\n false\r\n ); // 削除確認のダイアログ開閉\r\n // const [confirmMsg, setConfirmMsg] = useSafeState(unmountRef,);\r\n\r\n const userctx = useContext(UserContext);\r\n const [canCreate, setCanCreate] = useSafeState(unmountRef, false);\r\n\r\n // 送信ボタンdisable\r\n const [isDisable1, setIsDisable1] = useSafeState(unmountRef, false);\r\n\r\n const [schemaData] = useSafeState(unmountRef, {\r\n hospitalId: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n title: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n message: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n\r\n bgnDate: yup.date().typeError(GetErrMsg(ErrMsgKey.date)),\r\n\r\n endDate: yup\r\n .date()\r\n .typeError(GetErrMsg(ErrMsgKey.date))\r\n .test(\r\n \"bgnDate => endDate\",\r\n \"送信対象予約開始日と送信対象予約終了日が不正です。\",\r\n function (value) {\r\n var start = this.parent.bgnDate;\r\n // var start = getValues(\"start\");\r\n var end = value;\r\n if (start && end) {\r\n return dayjs(start).format(\"L\") <= dayjs(end).format(\"L\");\r\n }\r\n\r\n return true;\r\n }\r\n ),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const {\r\n register,\r\n handleSubmit,\r\n errors,\r\n setError,\r\n setValue,\r\n getValues,\r\n watch,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n const sampleEmailSchema = yup.object().shape({\r\n sampleEmail: yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .email(GetErrMsg(ErrMsgKey.email)),\r\n });\r\n\r\n async function GetData() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(`api/notices?hospitalId=${hid}&no=${no}`, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setMsg(json.message);\r\n setSnackbarSeverity(\"error\");\r\n setOpen(true);\r\n } else {\r\n setData(json.data[0]);\r\n\r\n setValue(\"hospitalId\", json.data[0].hospitalId);\r\n setValue(\"deptId\", json.data[0].deptId);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetData error\", error);\r\n });\r\n }\r\n\r\n // コンポーネント内でstateを変更するための処理\r\n // 普通にstateにセットすると、最後に実行されたもののみが処理される。\r\n // stateをfunctionを用いて更新することで、遅延評価時に順次実行されるっぽい。\r\n // https://career.levtech.jp/guide/knowhow/article/394/\r\n\r\n // submit時処理\r\n async function onSubmit(values) {\r\n console.log(values);\r\n if (pattern === \"1\") {\r\n // 参照モードは処理しない\r\n } else if (pattern === \"2\" || pattern === \"3\") {\r\n // コピーモード\r\n // 追加モード\r\n var response = await ApiPostNoticeAsync(null, values)\r\n .then(function (response) {\r\n setMsg(\"メッセージを送信しました。\");\r\n setSnackbarSeverity(\"success\");\r\n setOpen(true);\r\n setIsDisable1(true);\r\n })\r\n .catch(function (error) {\r\n for (let key in error.response.data) {\r\n setError && setError(key, { message: error.response.data[key][0] });\r\n }\r\n return false;\r\n });\r\n\r\n setConfirmDialogOpen(false);\r\n }\r\n }\r\n const handleSnackbarClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleSendSampleEmail = async () => {\r\n var values = getValues();\r\n\r\n var isInvalid = false;\r\n await schema.validate(values, { abortEarly: false }).catch(function (err) {\r\n err.inner.map((error) =>\r\n setError(error.path, { message: error.message })\r\n );\r\n isInvalid = true;\r\n });\r\n await sampleEmailSchema\r\n .validate(values, { abortEarly: false })\r\n .catch(function (err) {\r\n err.inner.map((error) =>\r\n setError(error.path, { message: error.message })\r\n );\r\n isInvalid = true;\r\n });\r\n\r\n if (isInvalid) return;\r\n\r\n var response = await ApiPostSampleEmailAsync(null, values)\r\n .then(function (response) {\r\n setMsg(\"サンプルメールを送信しました。\");\r\n setSnackbarSeverity(\"success\");\r\n setOpen(true);\r\n setIsDisable1(false);\r\n })\r\n .catch(function (error) {\r\n for (let key in error.response.data) {\r\n setError && setError(key, { message: error.response.data[key][0] });\r\n }\r\n return false;\r\n });\r\n };\r\n const sendMailText = () => {\r\n return (\r\n <>\r\n メール(LINE)を送信\r\n \r\n );\r\n };\r\n const copyText = () => {\r\n return (\r\n <>\r\n コピーを作成する\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n register(\"hospitalId\");\r\n register(\"deptId\");\r\n\r\n if (hid && hid !== \"\" && no && no !== \"0\" && pattern) {\r\n const f = async () => {\r\n // 参照、コピーの時はデータを読み込む\r\n if (pattern === \"1\" || pattern === \"2\") await GetData();\r\n };\r\n f();\r\n }\r\n\r\n const cleanup = () => {};\r\n return cleanup;\r\n // GetUser();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n setCanCreate(userctx.hasClaim(Claims.Notices_Create));\r\n }\r\n }, [userctx.claims]);\r\n\r\n useEffect(() => {\r\n if (userctx.user && hid && hid !== \"\") {\r\n userctx.checkHospitalDept(hid, undefined);\r\n }\r\n }, [userctx.user]);\r\n\r\n useEffect(() => {\r\n if (getValues(\"useSampleMail\")) {\r\n setIsDisable1(true);\r\n } else {\r\n setIsDisable1(false);\r\n }\r\n }, [watch(\"useSampleMail\")]);\r\n\r\n useEffect(() => {\r\n data && console.log(data.endDate);\r\n });\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n <>\r\n \r\n \r\n {pattern === \"1\" && (\r\n メッセージ 送信履歴参照\r\n )}\r\n {(pattern === \"2\" || pattern === \"3\") && (\r\n メッセージ 送信\r\n )}\r\n \r\n \r\n {msg}\r\n \r\n \r\n {(data || pattern === \"3\") && (\r\n // \r\n \r\n \r\n {\r\n setConfirmDialogOpen(false)}\r\n message={\"メッセージを送信します\"}\r\n />\r\n }\r\n {\r\n <>\r\n \r\n 医療機関\r\n {\r\n console.log(e);\r\n setValue(\"hospitalId\", e.target.value);\r\n setValue(\"deptId\", \"\");\r\n }}\r\n >\r\n \r\n 選択してください\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {watch(\"hospitalId\") && (\r\n <>\r\n \r\n 送信対象予約項目選択\r\n setValue(\"deptId\", e.target.value)}\r\n >\r\n \r\n 全ての予約項目\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {pattern === \"1\" ? (\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 {watch(\"useSampleMail\") && (\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 {pattern === \"1\" && canCreate && (\r\n \r\n history.push(`/manage/notices/edit/2?hid=${hid}&no=${no}`)\r\n }\r\n isPaperInner={true}\r\n />\r\n )}\r\n\r\n {pattern === \"1\" && !canCreate && (\r\n \r\n )}\r\n {(pattern === \"2\" || pattern === \"3\") && canCreate && (\r\n {\r\n var isValid = true;\r\n await schema\r\n .validate(getValues(), { abortEarly: false })\r\n .catch(function (err) {\r\n err.inner.map((error) =>\r\n setError(error.path, { message: error.message })\r\n );\r\n isValid = false;\r\n });\r\n if (isValid) setConfirmDialogOpen(true);\r\n }}\r\n fullWidth\r\n variant=\"contained\"\r\n text1={sendMailText()}\r\n isPaperInner={true}\r\n />\r\n )}\r\n {(pattern === \"2\" || pattern === \"3\") && !canCreate && (\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 * @file 診察券一覧画面\r\n */\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n Chip,\r\n Fab,\r\n FormControl,\r\n Grid,\r\n InputLabel,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n MenuItem,\r\n Tooltip,\r\n Typography,\r\n TableRow,\r\n} from \"@material-ui/core/\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { Add, Edit, Search } from \"@material-ui/icons\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { sessionStorageKeys } from \"components/common/Const\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport ListTitleDrawer from \"components/drawer/ListTitleDrawer\";\r\nimport LinkFab from \"components/input/button/LinkFab\";\r\nimport { HospitalSelectList } from \"components/input/selectlist/HospitalSelectList\";\r\nimport SearchInputDateGrid from \"components/input/textbox/SearchInputDateGrid\";\r\nimport SearchInputGrid from \"components/input/textbox/SearchInputGrid\";\r\nimport SearchModal from \"components/modal/SearchModal\";\r\nimport PagenationTable2 from \"components/table/PagenationTable2\";\r\nimport { TableHeaderCell } from \"components/table/TableHeaderCell\";\r\nimport TableSkeleton from \"components/table/TableSkeleton\";\r\nimport ListText from \"components/text/ListText\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/ja\";\r\nimport { Link } from \"react-router-dom\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\nimport { TableCellBorderSpace } from \"components/table/TableCellNoBorder\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n edit_button: {\r\n marginRight: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function ExamCards() {\r\n /* ステート,コンテキスト等 */\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const userctx = useContext(UserContext);\r\n\r\n const unmountRef = useUnmountRef();\r\n const [itemData, setItemData] = useSafeState(unmountRef, null); // 一覧\r\n const [searchModalOpen, setSearchModalOpen] = useSafeState(unmountRef, false); // 検索モーダルの開閉\r\n const MyComponent = React.forwardRef(LinkFab); // LinkFabにrefが渡せなくてエラーになるため、refを渡すようにする。\r\n const [refreshTable, setRefreshTable] = useSafeState(unmountRef, false); // PagenationTableにデータ再取得させるためのフラグ\r\n\r\n const [canCreate, setCanCreate] = useSafeState(unmountRef, false);\r\n const [canEdit, setCanEdit] = useSafeState(unmountRef, false);\r\n\r\n const [searchCondition, setSearchCondition] = useSafeState(unmountRef, {\r\n getDeleted: false,\r\n });\r\n\r\n const createUrl = \"/manage/cards/create\";\r\n const editUrl = \"/manage/cards/edit\";\r\n\r\n // /* 関数 */\r\n // 検索モーダルオープン\r\n const handleSearchModalOpen = () => {\r\n setSearchModalOpen(true);\r\n };\r\n // 検索モーダルクローズ\r\n const handleSearchModalClose = () => {\r\n setSearchModalOpen(false);\r\n };\r\n // 一覧取得\r\n const GetDatas = useCallback(async (skip, take) => {\r\n let getUrl;\r\n\r\n // 検索条件をJSON化してコピー\r\n let values = JSON.parse(JSON.stringify(searchCondition));\r\n if (!(userctx.user.hospitalId && userctx.user.hospitalId !== \"\")) {\r\n // ユーザーに医療機関が設定されていない場合\r\n if (!Object.keys(values).length) {\r\n return;\r\n }\r\n } else {\r\n values[\"hospitalId\"] = userctx.user.hospitalId;\r\n }\r\n\r\n if (values[\"birthDay\"])\r\n values[\"birthDay\"] = dayjs(values[\"birthDay\"]).format(\r\n \"YYYY-MM-DD HH:mm:ss\"\r\n );\r\n else delete values[\"birthDay\"];\r\n\r\n getUrl =\r\n \"api/cards/search?\" +\r\n new URLSearchParams(values) +\r\n \"&offset=\" +\r\n skip +\r\n \"&take=\" +\r\n take +\r\n \"&requireAllCount=true\";\r\n setSearchModalOpen(false);\r\n const token = await authService.getAccessToken();\r\n return await axios\r\n .get(getUrl, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n setItemData(response.data);\r\n return response;\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetDatas error\", error);\r\n return undefined;\r\n });\r\n });\r\n // 検索処理\r\n const SearchAction = () => {\r\n setRefreshTable(!refreshTable);\r\n return \"\";\r\n };\r\n\r\n const changeSearchCondition = useCallback((id, val) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[id] = val;\r\n setSearchCondition(cloned);\r\n });\r\n\r\n const changeSearchConditionSelect = useCallback((event) => {\r\n var id = event.target.name;\r\n var val = event.target.value;\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[id] = val;\r\n setSearchCondition(cloned);\r\n });\r\n const changeSearchConditionEvent = useCallback((event, val) => {\r\n var id = event.target.name;\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[id] = val;\r\n setSearchCondition(cloned);\r\n });\r\n\r\n // 一覧テーブルのヘッダ\r\n const tableHeaderDef = useCallback(() => {\r\n return (\r\n <>\r\n {!(userctx.user.hospitalId && userctx.user.hospitalId !== \"\") && (\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 const tableBodyDef = useCallback(() => {\r\n return (\r\n <>\r\n {itemData ? (\r\n itemData.map((item, index) => (\r\n \r\n {!(userctx.user.hospitalId && userctx.user.hospitalId !== \"\") && (\r\n \r\n \r\n \r\n )}\r\n \r\n {item.isNewPatient && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.mcdNote ? (\r\n \r\n 記載有\r\n \r\n ) : (\r\n 記載無\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {canEdit && (\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 const buttonsDef = [\r\n \r\n \r\n \r\n \r\n ,\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n // タイトル横リストの定義\r\n const listsDef = [\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n canCreate && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n\r\n useEffect(() => {\r\n const cleanup = () => {};\r\n return cleanup;\r\n }, []);\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n setCanCreate(userctx.hasClaim(Claims.Card_Create));\r\n setCanEdit(userctx.hasClaim(Claims.Card_Edit));\r\n }\r\n }, [userctx.claims]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n {userctx.user && (\r\n <>\r\n \r\n 診察券 一覧}\r\n buttons={buttonsDef}\r\n lists={listsDef}\r\n />\r\n \r\n ※当画面には、予約登録で患者様が入力した診察券番号・誕生日が表示されます。\r\n \r\n \r\n 実際の診察券番号の一覧とは相違している可能性がありますのでご注意ください。\r\n \r\n\r\n \r\n {!(\r\n userctx.user.hospitalId && userctx.user.hospitalId !== \"\"\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 * @file 診察券編集画面\r\n */\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport { Box, Grid, TextField, Typography } from \"@material-ui/core/\";\r\nimport {\r\n createMuiTheme,\r\n makeStyles,\r\n useTheme,\r\n MuiThemeProvider,\r\n} from \"@material-ui/core/styles\";\r\nimport { Add, Edit } from \"@material-ui/icons\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport {\r\n ApiDeleteCardAsync,\r\n ApiPostCardAsync,\r\n ApiPutCardAsync,\r\n} from \"components/api/CardsApi\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport KeybordDatePickerJp from \"components/input/textbox/KeybordDatePickerJp\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/ja\";\r\nimport qs from \"qs\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport * as yup from \"yup\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport ManageMenuPaper from \"components/paper/ManageMenuPaper\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n textField: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n width: \"100%\",\r\n },\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n}));\r\n\r\nconst formLabelsTheme = createMuiTheme({\r\n overrides: {\r\n MuiFormLabel: {\r\n asterisk: {\r\n color: \"#db3131\",\r\n \"&$error\": {\r\n color: \"#db3131\",\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default function ExamCardEdit(props) {\r\n const queryS = qs.parse(props.location.search, { ignoreQueryPrefix: true });\r\n const cardNo = queryS.cardNo; // カード番号\r\n const birthDay = queryS.birthDay; // 誕生日\r\n const theme = useTheme();\r\n const unmountRef = useUnmountRef();\r\n const [data, setData] = useSafeState(unmountRef, null);\r\n const [hid, setHid] = useSafeState(unmountRef, null);\r\n\r\n const { history } = useReactRouter();\r\n\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n const [confirmDialogMsg, setConfirmDialogMsg] = useSafeState(unmountRef);\r\n const [confirmDialogSubmit, setConfirmDialogSubmit] =\r\n useSafeState(unmountRef);\r\n const userctx = useContext(UserContext);\r\n const msgctx = useContext(MessageContext);\r\n const [canDelete, setCanDelete] = useSafeState(unmountRef, false);\r\n\r\n // 送信ボタンdisable\r\n const [isDisable1, setIsDisable1] = useSafeState(unmountRef, false);\r\n\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n mcdId: yup.string().trim().required(GetErrMsg(ErrMsgKey.required)),\r\n mcdNote: yup.string().trim().max(400, \"400文字以下としてください。\"),\r\n\r\n mcdBirthDay: yup\r\n .date()\r\n .typeError(GetErrMsg(ErrMsgKey.date))\r\n .required(GetErrMsg(ErrMsgKey.required)),\r\n mcdEmail: yup.string().email(GetErrMsg(ErrMsgKey.email)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const {\r\n register,\r\n handleSubmit,\r\n errors,\r\n setError,\r\n setValue,\r\n getValues,\r\n watch,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n async function GetData(hospitalId) {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\r\n `api/cards/search?hospitalId=${hospitalId}&cardNo=${cardNo}&birthDay=${birthDay}`,\r\n {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n }\r\n )\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n msgctx.enqueue(json.message, \"error\");\r\n } else {\r\n if (json.data.length === 0) {\r\n history.replace(\"/manage\");\r\n msgctx.enqueue(GetErrMsg(ErrMsgKey.checkHospitalDept), \"error\");\r\n }\r\n setData(json.data[0]);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetData error\", error);\r\n });\r\n }\r\n\r\n const setErrorCommon = (errors) => {\r\n for (let key in errors) {\r\n setError && setError(\"summary\", { message: errors[key][0] });\r\n }\r\n setIsDisable1(false);\r\n };\r\n\r\n // コンポーネント内でstateを変更するための処理\r\n // 普通にstateにセットすると、最後に実行されたもののみが処理される。\r\n // stateをfunctionを用いて更新することで、遅延評価時に順次実行されるっぽい。\r\n // https://career.levtech.jp/guide/knowhow/article/394/\r\n\r\n // submit時処理\r\n async function onSubmit(values) {\r\n // console.log(\"onSubmit!\");\r\n setIsDisable1(true);\r\n values.mcdHospitalId = hid;\r\n var response;\r\n if (cardNo) {\r\n values.targetMcdId = data.mcdId;\r\n values.targetMcdBirthDay = data.mcdBirthDay;\r\n response = await ApiPutCardAsync(null, values)\r\n .then(function (response) {\r\n msgctx.enqueueNotClose(\"更新しました\", \"success\");\r\n // history.push(\r\n // `/manage/cards/Edit?cardNo=${encodeURIComponent(\r\n // values.mcdId\r\n // )}&birthDay=${values.mcdBirthDay}`\r\n // );\r\n })\r\n .catch(function (error) {\r\n error.response.data && setErrorCommon(error.response.data);\r\n // for (let key in error.response.data) {\r\n // setError &&\r\n // setError(\"summary\", { message: error.response.data[key][0] });\r\n // }\r\n // setIsDisable1(false);\r\n });\r\n } else {\r\n response = await ApiPostCardAsync(null, values)\r\n .then(function (response) {\r\n msgctx.enqueueNotClose(\"更新しました\", \"success\");\r\n history.push(\r\n `/manage/cards/Edit?cardNo=${encodeURIComponent(\r\n values.mcdId\r\n )}&birthDay=${values.mcdBirthDay}`\r\n );\r\n })\r\n .catch(function (error) {\r\n error.response.data && setErrorCommon(error.response.data);\r\n });\r\n }\r\n\r\n // if (response.status === 200) {\r\n // msgctx.enqueueNotClose(\"更新しました\", \"success\");\r\n // history.push(\r\n // `/manage/cards/Edit?cardNo=${encodeURIComponent(\r\n // values.mcdId\r\n // )}&birthDay=${values.mcdBirthDay}`\r\n // );\r\n // } else if (response.status === 400) {\r\n // var json = await response.json();\r\n // for (let key in json) {\r\n // setError(key, { message: json[key][0] });\r\n // }\r\n // setIsDisable1(false);\r\n // }\r\n setConfirmDialogOpen(false);\r\n setIsDisable1(false);\r\n }\r\n\r\n const handleReturn = () => {\r\n history.push(`/manage/cards/index`);\r\n };\r\n\r\n const handleDelete = async () => {\r\n setIsDisable1(true);\r\n\r\n var values = getValues();\r\n var response = await ApiDeleteCardAsync(\r\n null,\r\n hid,\r\n values.mcdId,\r\n values.mcdBirthDay\r\n )\r\n .then(function (response) {\r\n msgctx.enqueueNotClose(\"削除しました\", \"success\");\r\n history.push(`/manage/cards/index`);\r\n })\r\n .catch(function (error) {\r\n error.response.data && setErrorCommon(error.response.data);\r\n msgctx.enqueue(\r\n \"削除できませんでした。エラー内容をご確認ください\",\r\n \"error\"\r\n );\r\n });\r\n setConfirmDialogOpen(false);\r\n };\r\n\r\n const button1Text = () => {\r\n return (\r\n <>\r\n {cardNo ? (\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 useEffect(() => {\r\n if (userctx.claims) {\r\n setCanDelete(userctx.hasClaim(Claims.Card_Delete));\r\n }\r\n }, [userctx.claims]);\r\n\r\n useEffect(() => {\r\n if (userctx.user) {\r\n setHid(userctx.user.hospitalId);\r\n userctx.checkHospitalDept(userctx.user.hospitalId, undefined);\r\n const f = async () => {\r\n if (cardNo) await GetData(userctx.user.hospitalId);\r\n };\r\n f();\r\n }\r\n }, [userctx.user, cardNo]);\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {cardNo ? (\r\n 診察券 編集\r\n ) : (\r\n 診察券 登録\r\n )}\r\n \r\n <>\r\n {\r\n \r\n setConfirmDialogOpen(false)}\r\n message={confirmDialogMsg}\r\n />\r\n {((cardNo && data) || !cardNo) && (\r\n <>\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {cardNo ? (\r\n <>\r\n {data.mcdLineUserId ? (\r\n LINE連携あり\r\n ) : (\r\n LINE連携なし\r\n )}\r\n \r\n ※LINE連携は利用者のみ実施可能です。\r\n \r\n \r\n ) : (\r\n ※LINE連携は利用者のみ実施可能です。\r\n )}\r\n\r\n \r\n \r\n {cardNo ? (\r\n {\r\n let dialogMsg = \"\";\r\n if (data && data.mcdId !== watch(\"mcdId\"))\r\n dialogMsg =\r\n dialogMsg + \"診察券番号が変更されました。\\n\";\r\n if (\r\n data &&\r\n dayjs(data.mcdBirthDay).format(\"YYYY-MM-DD\") !==\r\n dayjs(watch(\"mcdBirthDay\")).format(\"YYYY-MM-DD\")\r\n )\r\n dialogMsg =\r\n dialogMsg + \"生年月日が変更されました。\\n\";\r\n setConfirmDialogSubmit(() => handleSubmit(onSubmit));\r\n setConfirmDialogOpen(true);\r\n if (dialogMsg !== \"\") {\r\n setConfirmDialogMsg(\r\n dialogMsg +\r\n \"更新前情報でマイページ確認ができなくなります。\\n更新してよろしいですか。\"\r\n );\r\n } else {\r\n setConfirmDialogMsg(\"更新してよろしいですか。\");\r\n }\r\n }}\r\n isDisable1={isDisable1}\r\n fullWidth\r\n variant=\"contained\"\r\n isUse2={canDelete}\r\n text1={button1Text()}\r\n className2={classes.delete_button}\r\n onClick2={() => {\r\n setConfirmDialogSubmit(() => handleDelete);\r\n setConfirmDialogMsg(\"削除してよろしいですか\");\r\n setConfirmDialogOpen(true);\r\n }}\r\n isPaperInner={true}\r\n onClick3={handleReturn}\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","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport { sessionStorageKeys } from \"./Const\";\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport axios from \"axios\";\r\nimport CheckRevision, { GetRevision } from \"components/api/CheckRevisionApi\";\r\nimport useTimer from \"components/behavior/Timer\";\r\nimport useReactRouter from \"use-react-router\";\r\n\r\n/**\r\n * リビジョンをチェックし強制リロードorメッセージ表示します\r\n * pattern = 1:メッセージ表示 2:強制リロード\r\n * @param {Object} axiosInterCept {pattern:1} axiosのリクエストをインターセプトしてチェックします。\r\n * @param {Object} timer {pattern:1,ms:60000 }タイマーでチェックします。(例は一分)\r\n * @param {Object} init {pattern:1} 初期表示時にチェックします。\r\n * @returns 成功時はtrue エラー時はfalse を返却します\r\n */\r\nexport default function CheckRevisionComponent(props) {\r\n const unmountRef = useUnmountRef();\r\n const { axiosInterCept, timer, init } = props;\r\n const [isFirst, setIsFirst] = useSafeState(unmountRef, true);\r\n let axiosInterCepter;\r\n const { location } = useReactRouter();\r\n const msgctx = useContext(MessageContext);\r\n const time = useTimer(timer && timer[\"ms\"] ? timer[\"ms\"] : 60000);\r\n\r\n useEffect(() => {\r\n // サーバーバージョンを取得\r\n var serverVersion = sessionStorage.getItem(\r\n sessionStorageKeys.ServerRevision\r\n );\r\n // 画面リロード後メッセージがある場合\r\n var reload = sessionStorage.getItem(sessionStorageKeys.Reload);\r\n if (reload && serverVersion) {\r\n msgctx.enqueueNotClose(reload, \"info\");\r\n\r\n // バージョンを更新\r\n sessionStorage.setItem(sessionStorageKeys.Revision, serverVersion);\r\n\r\n // リロードメッセージを削除\r\n sessionStorage.removeItem(sessionStorageKeys.Reload);\r\n // サーバーバージョンを削除\r\n sessionStorage.removeItem(sessionStorageKeys.ServerRevision);\r\n }\r\n\r\n setIsFirst(false);\r\n }, [location.pathname]);\r\n\r\n useEffect(() => {\r\n if (isFirst === false) {\r\n const fn = async () => {\r\n if (axiosInterCept && axiosInterCept[\"pattern\"]) {\r\n // axiosのrequest前にリビジョンチェックする。\r\n\r\n axiosInterCepter = axios.interceptors.request.use(function (request) {\r\n let fn2 = async () => {\r\n await CheckRevision(msgctx, axiosInterCept[\"pattern\"], () => {\r\n if (axiosInterCept[\"pattern\"] === 2)\r\n throw new axios.Cancel(\r\n \"バージョンに差異があるためリロードして処理キャンセル\"\r\n );\r\n });\r\n };\r\n fn2();\r\n\r\n return request;\r\n });\r\n }\r\n\r\n if (init && init[\"pattern\"]) {\r\n // 初期表示時にチェックする。\r\n await CheckRevision(msgctx, init[\"pattern\"], () => {\r\n console.log(\"init_error\");\r\n });\r\n }\r\n };\r\n\r\n fn();\r\n setIsFirst(true);\r\n }\r\n\r\n return function cleanup() {\r\n if (axiosInterCepter !== undefined) {\r\n axios.interceptors.request.eject(axiosInterCepter);\r\n }\r\n };\r\n }, [isFirst]);\r\n\r\n useEffect(() => {\r\n if (!time || !(timer && timer[\"pattern\"])) return;\r\n // タイマーでチェックする。\r\n const fn = async () => {\r\n await CheckRevision(msgctx, timer[\"pattern\"], () => {\r\n console.log(\"init_error\");\r\n });\r\n };\r\n fn();\r\n }, [time]);\r\n\r\n return null;\r\n}\r\n","/**\r\n * @file 各種設定画面\r\n */\r\nimport React, { useEffect, useContext } from \"react\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport {\r\n Box,\r\n Card,\r\n CardActionArea,\r\n CardContent,\r\n Grid,\r\n makeStyles,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport {\r\n Assignment,\r\n Event,\r\n LocalHospital,\r\n People,\r\n Schedule,\r\n ViewModule,\r\n} from \"@material-ui/icons\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n iconSize: {\r\n fontSize: 70,\r\n },\r\n cardRoot: {\r\n color: \"#666\",\r\n transition: \"all 0.3s ease\",\r\n \"&:hover\": {\r\n color: theme.palette.primary.main,\r\n },\r\n },\r\n}));\r\n\r\nfunction HospitalPotal(props) {\r\n const unmountRef = useUnmountRef();\r\n const userctx = useContext(UserContext);\r\n const classes = useStyles();\r\n\r\n const { history } = useReactRouter();\r\n\r\n const [menues, setMenus] = useSafeState(unmountRef, null);\r\n\r\n useEffect(() => {\r\n if (userctx.user) {\r\n var tempMenus = [];\r\n userctx.hasClaim(Claims.Hospital_Edit) &&\r\n tempMenus.push({\r\n title: \"医療機関編集\",\r\n icon: ,\r\n link: `/manage/hospitals/edit/${userctx.user.hospitalId}`,\r\n description: \"医院の情報や予約の設定等の確認・編集が可能です。\",\r\n });\r\n userctx.hasClaim(Claims.Holiday_Read) &&\r\n tempMenus.push({\r\n title: \"休診設定\",\r\n icon: ,\r\n link: `/manage/rest/${userctx.user.hospitalId}/0`,\r\n description: \"休診日の確認・編集が可能です。\",\r\n });\r\n // 20221222 現状使っていないため消しておく\r\n // userctx.hasClaim(Claims.Common_Time_Table_Read) &&\r\n // tempMenus.push({\r\n // title: \"予約枠設定\",\r\n // icon: ,\r\n // link: `/manage/timetables/index?hospitalid=${userctx.user.hospitalId}&deptid=0`,\r\n // description: \"全予約項目に共通適用される予約枠の確認・編集が可能です。\",\r\n // });\r\n userctx.hasClaim(Claims.Hospital_Dept_Read) &&\r\n tempMenus.push({\r\n title: \"予約項目管理\",\r\n icon: ,\r\n link: `/manage/hospitaldepts/index?hospitalid=${userctx.user.hospitalId}`,\r\n description:\r\n \"予約項目の一覧です。各設定や予約枠の確認・編集が可能です。\",\r\n });\r\n userctx.hasClaim(Claims.User_Read) &&\r\n tempMenus.push({\r\n title: \"ユーザー管理\",\r\n icon: ,\r\n link: `/manage/users/index`,\r\n description: \"ユーザーの一覧です。各情報の確認・編集が可能です。\",\r\n });\r\n userctx.hasClaim(Claims.Calendar_Read) &&\r\n tempMenus.push({\r\n title: \"カレンダー\",\r\n icon: ,\r\n link: `/manage/hospitalcalendar/index?hospitalid=${userctx.user.hospitalId}`,\r\n description: \"医療機関のカレンダーの確認・編集が可能です。\",\r\n });\r\n\r\n setMenus(tempMenus);\r\n }\r\n }, [userctx.user]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n \r\n 各種設定\r\n \r\n {menues && (\r\n \r\n \r\n {menues.map((menu, index) => {\r\n return (\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 HospitalPotal;\r\n\r\nfunction MenuCard(props) {\r\n const { menu, history, ...others } = props;\r\n\r\n const classes = useStyles();\r\n const unmountRef = useUnmountRef();\r\n\r\n return (\r\n \r\n {\r\n history.push(menu.link);\r\n }}\r\n >\r\n \r\n {menu.icon}\r\n \r\n {menu.title}\r\n \r\n \r\n {menu.description}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","/**\r\n * @file アカウント作成画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport {\r\n Button,\r\n Container,\r\n FormControl,\r\n Grid,\r\n InputLabel,\r\n MenuItem,\r\n Paper,\r\n TextField,\r\n Toolbar,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles, useTheme, withStyles } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport {\r\n HospitalDeptWithHospitalSelectList,\r\n HospitalSelectList,\r\n} from \"components/input/selectlist/HospitalSelectList\";\r\nimport RoleSelectList from \"components/input/selectlist/RoleSelectList\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport { LayoutContext } from \"pages/Layout\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport * as yup from \"yup\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport TitleWithSubTitleText from \"components/text/TitleWithSubTitleText\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport ManageMenuPaper from \"components/paper/ManageMenuPaper\";\r\nimport { Add } from \"@material-ui/icons\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\n\r\n//スタイル\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n textField: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n buttonRadius: {\r\n borderRadius: \"50px\",\r\n },\r\n}));\r\n\r\nexport function Register(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n const [submitDisabled, setSubmitDisabled] = useSafeState(unmountRef, false); //submitボタンの活性制御\r\n const [dispPtn, setDispPtn] = useSafeState(unmountRef, undefined);\r\n const [roleClaims, setRoleClaims] = useSafeState(unmountRef, undefined);\r\n\r\n const layoutCtx = useContext(LayoutContext);\r\n const msgctx = useContext(MessageContext);\r\n\r\n // yap のスキーマデータを他コンポーネントでも更新するためにstateに入れておく\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n userName: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n contactPersonName: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n email: yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .email(GetErrMsg(ErrMsgKey.email)),\r\n password: yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .min(8, GetErrMsg(ErrMsgKey.passwordPolicy))\r\n .max(100, GetErrMsg(ErrMsgKey.passwordPolicy))\r\n .matches(\"^[a-zA-Z0-9-.@]*$\", \"半角英数と「-.@」が利用可能です。\"),\r\n confirmPassword: yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .oneOf([yup.ref(\"password\"), null], GetErrMsg(ErrMsgKey.passwordUnmatch)),\r\n roleId: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const {\r\n register,\r\n unregister,\r\n handleSubmit,\r\n watch,\r\n errors,\r\n setError,\r\n getValues,\r\n setValue,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n const { history, location } = useReactRouter();\r\n const pushRoot =\r\n location.pathname.indexOf(\"/manage/\") !== -1 ? \"/manage\" : \"/admin\";\r\n\r\n // state更新用の関数\r\n function addSchemaDataFunc(id, value, state) {\r\n state[id] = value;\r\n return state;\r\n }\r\n function delSchemaDataFunc(id, state) {\r\n delete state[id];\r\n return state;\r\n }\r\n // 普通にstateにセットすると、最後に実行されたもののみが処理される。\r\n // stateをfunctionを用いて更新することで、遅延評価時に順次実行されるっぽい。\r\n // https://career.levtech.jp/guide/knowhow/article/394/\r\n const addSchemaData = (id, value) => {\r\n setSchemaData(addSchemaDataFunc(id, value, schemaData));\r\n };\r\n const delSchemaData = (id) => {\r\n setSchemaData(delSchemaDataFunc(id, schemaData));\r\n };\r\n // コンポーネント内でstateを変更するための処理\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n\r\n // 選択したロールのクレームを取得する\r\n const getRoleClaims = async (roleId) => {\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/roleclaims?roleId=\" + roleId, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n setRoleClaims(response.data);\r\n })\r\n .catch(function (error) {\r\n console.log(\"getRoleClaims error\");\r\n });\r\n };\r\n\r\n const button1Text = () => {\r\n return (\r\n <>\r\n 登録\r\n \r\n );\r\n };\r\n // console.log(watch(\"userName\")); //react-hooks-formのwatchを使用するとフォームの値を監視できる?\r\n // console.log(errors); //react-hooks-formのwatchを使用するとフォームの値を監視できる?\r\n\r\n useEffect(() => {\r\n //ここに通常更新時のロジックを書く\r\n return function cleanup() {\r\n //ここにはUnmount時のロジックを書く\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n var value = getValues(\"roleId\");\r\n delSchemaData(\"hospitalId\");\r\n delSchemaData(\"deptId\");\r\n unregister(\"hospitalId\");\r\n unregister(\"deptId\");\r\n setDispPtn(undefined);\r\n if (value) {\r\n //選択したロールのクレームを取得\r\n getRoleClaims(value);\r\n }\r\n }, [watch(\"roleId\")]);\r\n\r\n useEffect(() => {\r\n // 選択したロールのクレームが取得できた場合処理する\r\n if (!roleClaims) {\r\n return;\r\n }\r\n\r\n var notHospital = roleClaims.find(\r\n (x) => x.claimType === Claims.Not_Require_Hospital_Id\r\n );\r\n var notHospitalDept = roleClaims.find(\r\n (x) => x.claimType === Claims.Not_Require_Hospital_Dept_Id\r\n );\r\n var hasAllClaims = roleClaims.find(\r\n (x) => x.claimType === Claims.Has_All_Claims\r\n );\r\n\r\n if (!notHospital && !hasAllClaims) {\r\n // 病院情報を表示する。\r\n // refに登録する\r\n register(\"hospitalId\");\r\n register(\"deptId\");\r\n // 初期値を設定しておく(空だとuncontrolled→controlledのエラーが発生する。)\r\n setValue(\"hospitalId\", \"\");\r\n setValue(\"deptId\", \"\");\r\n\r\n addSchemaData(\r\n \"hospitalId\",\r\n yup.string().required(GetErrMsg(ErrMsgKey.required))\r\n );\r\n\r\n if (!notHospitalDept) {\r\n // 予約項目の紐づけが必要\r\n setDispPtn(1);\r\n addSchemaData(\r\n \"deptId\",\r\n yup.string().required(GetErrMsg(ErrMsgKey.required))\r\n );\r\n } else {\r\n setDispPtn(2);\r\n }\r\n } else {\r\n setDispPtn(undefined);\r\n }\r\n }, [roleClaims]);\r\n\r\n // let errorMessage = \"\";\r\n const onSubmit = async (values) => {\r\n // ボタン非活性\r\n setSubmitDisabled(true);\r\n\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .post(\"api/account\", values, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n //正常時\r\n\r\n history.push(`${pushRoot}/users/index`);\r\n\r\n msgctx.enqueueNotClose(\"ユーザーを作成しました。\", \"success\");\r\n })\r\n .catch(function (error) {\r\n if (error.response.data)\r\n for (let key in error.response.data) {\r\n setError && key\r\n ? setError(key, { message: error.response.data[key][0] })\r\n : setError(\"summary\", { message: error.response.data[key][0] });\r\n }\r\n\r\n // ボタン活性\r\n setSubmitDisabled(false);\r\n msgctx.enqueue(\"アカウントの登録が出来ませんでした。\", \"error\");\r\n });\r\n };\r\n\r\n useEffect(() => {}, [watch(\"hospitalId\")]);\r\n useEffect(() => {\r\n layoutCtx.setIsMypage(false);\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n {/* react-hooks-formのhandleSubmiはonSumitが実行される前にValidationを実行できます */}\r\n \r\n {\" \"}\r\n {/* yupを使う場合はこう書く */}\r\n {\" \"}\r\n \r\n \r\n {/* エラーの表示の仕方2 */}\r\n \r\n {\" \"}\r\n {/* エラーの表示の仕方2 */}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n // 病院との紐づけが必要な場合\r\n dispPtn && dispPtn >= 1 && (\r\n <>\r\n \r\n 医療機関\r\n {\r\n setValue(\"hospitalId\", e.target.value);\r\n }}\r\n >\r\n \r\n \r\n\r\n {getValues(\"hospitalId\") && (\r\n <>\r\n \r\n {dispPtn === 1 ? (\r\n 予約項目\r\n ) : (\r\n 予約項目\r\n )}\r\n setValue(\"deptId\", e.target.value)}\r\n >\r\n {dispPtn === 2 && (\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 withStyles(commonStyle)(Register);\r\n","import axios from \"axios\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\n\r\nexport const ApiPostFeedbackAsync = async (token, values) => {\r\n let tkn = token;\r\n if (!tkn) tkn = await authService.getAccessToken();\r\n\r\n return await axios.post(`api/feedback`, values, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n });\r\n};\r\n","import { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport {\r\n Button,\r\n ButtonBase,\r\n Grid,\r\n makeStyles,\r\n Modal,\r\n TextField,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { Feedback } from \"@material-ui/icons\";\r\nimport { Rating } from \"@material-ui/lab\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport { ApiPostFeedbackAsync } from \"components/api/FeedbackApi\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport IconTextButton from \"components/input/button/IconTextButton\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport { Controller, useForm } from \"react-hook-form\";\r\nimport * as yup from \"yup\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n useErrorMessageProvider,\r\n} from \"./ErrorMessageProvider\";\r\nimport { useSafeState, useUnmountRef } from \"./UnmountStateHelper\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n backgroundColor: theme.palette.background.paper,\r\n // boxShadow: theme.shadows[5],\r\n overflowY: \"auto\",\r\n [theme.breakpoints.down(\"xs\")]: {\r\n padding: theme.spacing(2, 1, 2),\r\n width: \"95vw\",\r\n height: \"80vh\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"70vw\",\r\n height: \"80vh\",\r\n padding: theme.spacing(2, 1, 2),\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: \"50vw\",\r\n height: \"80vh\",\r\n padding: theme.spacing(2, 4, 2),\r\n },\r\n },\r\n modal: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n root: {\r\n height: \"100%\",\r\n },\r\n commentGrid: {\r\n [theme.breakpoints.down(\"xs\")]: {\r\n width: \"100%\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"80%\",\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: \"60%\",\r\n },\r\n },\r\n rating: {\r\n fontSize: \"3rem\",\r\n },\r\n loginLink: {\r\n color: \"inherit\",\r\n \"&:hover\": {\r\n color: \"inherit\",\r\n },\r\n },\r\n}));\r\n\r\nexport const FeedbackCommon = (props) => {\r\n const { title, description, onClose, ...others } = props;\r\n const unmountRef = useUnmountRef();\r\n const style = commonStyle();\r\n const classes = useStyles();\r\n const msgctx = useContext(MessageContext);\r\n\r\n const errProvider = useErrorMessageProvider();\r\n\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n comment: yup\r\n .string()\r\n .trim()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .max(500, \"500文字以下としてください。\"),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const {\r\n register,\r\n handleSubmit,\r\n errors,\r\n setError,\r\n clearErrors,\r\n setValue,\r\n getValues,\r\n watch,\r\n control,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n // テキストの入力文字数をカウント\r\n const [noteHelperText, setNoteHelperText] = useSafeState(unmountRef, \"\");\r\n const handleCommentChange = useCallback((e) => {\r\n setNoteHelperText(`(現在 ${e.target.value.length} 文字 )`);\r\n });\r\n\r\n // Thanks画面への切り替え\r\n const [dispThanks, setDispThanks] = useSafeState(unmountRef, false);\r\n\r\n // 更新処理\r\n async function onSubmit(values) {\r\n console.log(values);\r\n\r\n const token = await authService.getAccessToken();\r\n await ApiPostFeedbackAsync(token, values)\r\n .then((response) => {\r\n // msgctx.enqueue(\"送信しました。\", \"success\");\r\n // onClose();\r\n setDispThanks(true);\r\n })\r\n .catch((error) => {\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n msgctx.enqueue(\"エラーが発生しました。\", \"error\");\r\n });\r\n }\r\n return (\r\n <>\r\n {dispThanks ? (\r\n \r\n \r\n \r\n \r\n \r\n {title ? title : \"ご意見・ご要望ありがとうございます!\"}\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 {title ? title : \"『えみでる』へのご意見・ご要望\"}\r\n \r\n \r\n {description\r\n ? description\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 const FeedbackModal = (props) => {\r\n const { feedbackOpen, setFeedbackOpen, ...others } = props;\r\n const classes = useStyles();\r\n\r\n const onClose = () => {\r\n setFeedbackOpen(false);\r\n };\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport const FeedbackButton = (props) => {\r\n const { label, icon, iconBButtonClasses, ...others } = props;\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n\r\n const [feedbackOpen, setFeedbackOpen] = useSafeState(unmountRef, false);\r\n return (\r\n <>\r\n \r\n setFeedbackOpen(true)}\r\n className={iconBButtonClasses ? iconBButtonClasses : classes.loginLink}\r\n text={label ? label : \" フィードバック \"}\r\n >\r\n {icon ? icon : }\r\n \r\n \r\n );\r\n};\r\n","import authService from \"components/api-authorization/AuthorizeService\";\r\nimport axios from \"axios\";\r\n\r\nexport const ApiHospitalScreensGet = async (hid) => {\r\n\tconst token = await authService.getAccessToken();\r\n\treturn await axios.get(\"api/hospitalscreens/\" + hid, {\r\n\t\t// + queryString.toString(), {\r\n\t\theaders: !token ? {} : { Authorization: `Bearer ${token}` },\r\n\t});\r\n};\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect } from \"react\";\r\nimport {\r\n Button,\r\n Grid,\r\n Modal,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n TextField,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport axios from \"axios\";\r\nimport { validationConst } from \"components/common/Const\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport MstDivisionsSelectList from \"components/input/selectlist/MstDivisionsSelectList\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport * as yup from \"yup\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n modal: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n maxHeight: \"90%\",\r\n },\r\n\r\n modal_root: {\r\n backgroundColor: theme.palette.background.paper,\r\n width: \"30%\",\r\n border: \"2px solid #000\",\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(2, 4, 3),\r\n // marginBottom: theme.spacing(2),\r\n },\r\n modal_title: {\r\n marginTop: theme.spacing(4),\r\n marginBottom: theme.spacing(4),\r\n color: theme.palette.primary.main,\r\n },\r\n}));\r\n\r\n// const postalCodeRegExp = /^[0-9]{3}-[0-9]{4}$/;\r\n\r\n/**\r\n * 郵便番号・件名・住所の入力項目 を提供します。\r\n * APIはZipCloudを利用しています。\r\n * @module MstDivisionsRadio\r\n * @example\r\n \r\n\r\n* @param {*} setValue - hoooks form の setValue\r\n* @param {*} inputRef - hoooks form の register\r\n* @param {*} errors - hoooks form の errors\r\n* @param {*} setError - hoooks form の setError\r\n* @param {*} clearErrors - hoooks form の clearErrors\r\n* @param {string} postalName - 郵便番号name\r\n* @param {string} postalDefaultValue - 郵便番号初期値\r\n* @param {string} addressName - 住所name\r\n* @param {string} addressDefaultValue - 住所初期値\r\n* @param {string} prefCdName - 県名name\r\n* @param {string} prefCdDefaultValue - 県名初期値\r\n* @param {function} addSchemaData - yupスキーマを追加するfunction\r\n* @param {string} required - 必須の場合true\r\n* @param {string} className - クラス指定\r\n* @param {string} label - 表示ラベルに付加するプレフィックスとして利用\r\n* @param {string} variant - 表示項目のvariant\r\n* @param {string} readOnly - 指定の区分値のキー\r\n\r\n */\r\nexport default function AddressTextBox(props) {\r\n const unmountRef = useUnmountRef();\r\n const {\r\n setValue,\r\n inputRef,\r\n errors,\r\n setError,\r\n clearErrors,\r\n postalName,\r\n postalDefaultValue,\r\n cityName,\r\n cityDefaultValue,\r\n addressName,\r\n addressDefaultValue,\r\n prefCdName,\r\n prefCdDefaultValue,\r\n\r\n addSchemaData,\r\n required,\r\n className,\r\n label,\r\n variant,\r\n\r\n readOnly,\r\n } = props;\r\n const classes = useStyles();\r\n\r\n const [address, setAddress] = useSafeState(unmountRef, addressDefaultValue);\r\n const [city, setCity] = useSafeState(unmountRef, cityDefaultValue);\r\n const [prefCdSelected, setPrefCdSelected] = useSafeState(\r\n unmountRef,\r\n prefCdDefaultValue\r\n );\r\n const [open, setOpen] = useSafeState(unmountRef, false);\r\n const [modalData, setModalData] = useSafeState(unmountRef, undefined);\r\n const [inputShrink, setInputShrink] = useSafeState(unmountRef, false);\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n // const classes = useStyles();\r\n const style = commonStyle();\r\n\r\n useEffect(() => {\r\n if (!addressDefaultValue) {\r\n setInputShrink(false);\r\n // console.log(false)\r\n } else {\r\n setInputShrink(true);\r\n // console.log(true)\r\n }\r\n }, [addressDefaultValue]);\r\n\r\n useEffect(() => {\r\n // 初回読み込み時にyupスキーマを変更する。\r\n // 追加用の関数?が渡されている場合\r\n\r\n if (addSchemaData) {\r\n if (required) {\r\n addSchemaData(\r\n postalName,\r\n yup\r\n .string()\r\n .matches(validationConst.postal_reg_exp, {\r\n message: GetErrMsg(ErrMsgKey.postalCodeRegEx),\r\n excludeEmptyString: true,\r\n })\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .max(8)\r\n );\r\n addSchemaData(\r\n cityName,\r\n yup.string().required(GetErrMsg(ErrMsgKey.required))\r\n );\r\n addSchemaData(\r\n addressName,\r\n yup.string().required(GetErrMsg(ErrMsgKey.required))\r\n );\r\n } else {\r\n // 必須チェックなし\r\n addSchemaData(\r\n postalName,\r\n yup\r\n .string()\r\n .matches(validationConst.postal_reg_exp, {\r\n message: GetErrMsg(ErrMsgKey.postalCodeRegEx),\r\n excludeEmptyString: true,\r\n })\r\n .max(8)\r\n );\r\n addSchemaData(addressName, yup.string());\r\n }\r\n }\r\n }, []);\r\n useEffect(() => {\r\n setValue(prefCdName, prefCdDefaultValue);\r\n }, [prefCdDefaultValue]);\r\n\r\n const onChangePostal = async (event) => {\r\n let pattern = /^[0-9]{3}-[0-9]{4}$/;\r\n if (!pattern.test(event.target.value)) {\r\n // 形式が違う場合はスキップ\r\n let pattern2 = /^[0-9]{7}$/;\r\n if (pattern2.test(event.target.value)) {\r\n // ハイフン付加を促す。\r\n setError(postalName, {\r\n message: \"郵便番号は [-] をつけて入力してください。\",\r\n });\r\n }\r\n\r\n return;\r\n }\r\n clearErrors(postalName);\r\n var val = event.target.value;\r\n\r\n // zip-cloudから\r\n const tkn = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/zipaddress\", {\r\n params: { postalCode: val },\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n })\r\n // .get(\"api/zipaddress?postalCode=\" + event.target.value, {\r\n // headers: tkn ? { Authorization: `Bearer ${tkn}` } : {},\r\n // })\r\n .then(function (response) {\r\n if (response.status === 200 && response.data.status === 200) {\r\n if (response.data.results.length > 1) {\r\n // 複数から選択させる\r\n handleOpen();\r\n setModalData(response.data.results);\r\n } else {\r\n // document.getElementsByName(addressName).value = response.data.results[0].address2 + response.data.results[0].address3;\r\n\r\n setValue(cityName, response.data.results[0].address2);\r\n setCity(response.data.results[0].address2);\r\n\r\n setValue(addressName, response.data.results[0].address3);\r\n setAddress(response.data.results[0].address3);\r\n setValue(prefCdName, response.data.results[0].prefcode);\r\n setPrefCdSelected(response.data.results[0].prefcode);\r\n setInputShrink(true);\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n setError(postalName, { message: \"住所が自動入力できませんでした\" });\r\n console.log(\"onChangePostal \", error);\r\n });\r\n };\r\n\r\n const handleChange = (event) => {\r\n // setValue && setValue(addressName, event.target.value);\r\n // console.log(event.target.value)\r\n if (event.target.value == \"\") {\r\n setInputShrink(false);\r\n // console.log(false)\r\n } else {\r\n setInputShrink(true);\r\n // console.log(true)\r\n }\r\n };\r\n\r\n const handleAddressSelect = (index) => {\r\n if (modalData && modalData[index]) {\r\n setValue(cityName, modalData[index].address2);\r\n setCity(modalData[index].address2);\r\n setValue(addressName, modalData[index].address3);\r\n setAddress(modalData[index].address3);\r\n setValue(prefCdName, modalData[index].prefcode);\r\n setPrefCdSelected(modalData[index].prefcode);\r\n setModalData(undefined);\r\n setInputShrink(true);\r\n }\r\n handleClose();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {errors && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {errors && (\r\n \r\n )}\r\n \r\n {errors && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n 住所を選択してください\r\n \r\n \r\n {modalData && (\r\n \r\n \r\n \r\n \r\n 選択\r\n 住所\r\n \r\n \r\n \r\n {modalData.map((data, index) => (\r\n \r\n \r\n handleAddressSelect(index)}\r\n >\r\n 選択\r\n \r\n \r\n \r\n {`${data.address1 + data.address2 + data.address3}`}\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 * @file 医療機関 登録/編集画面 基本情報設定\r\n */\r\nimport { Grid, makeStyles, TextField } from \"@material-ui/core\";\r\nimport { ErrMsg } from \"components/common/ErrorMessageProvider\";\r\nimport MstDivisionsRadio from \"components/input/radio/MstDivisionsRadio\";\r\nimport AddressTextBox from \"components/input/textbox/AddressTextBox\";\r\nimport PhoneNumberTextBox from \"components/input/textbox/PhoneNumberTextBox\";\r\nimport React from \"react\";\r\n\r\nconst HospitalEditBaseInfo = (props) => {\r\n const {\r\n register,\r\n setStateValue,\r\n addSchemaData,\r\n errors,\r\n classes,\r\n style,\r\n setError,\r\n clearErrors,\r\n data,\r\n } = props;\r\n\r\n return (\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 HospitalEditBaseInfo;\r\n","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React from \"react\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport AssignmentIcon from \"@material-ui/icons/Assignment\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport CopyToClipBoard from \"react-copy-to-clipboard\";\r\n\r\n/**\r\n * コピー機能のあるテキストボックスを返します。\r\n * @module TextBoxWithCopy\r\n * @param {Object} props - 基本的にTextFieldに準じる\r\n * @param {string} props.defaultValue - 初期値\r\n * @param {function}} props.onChange - 変更時処理\r\n */\r\nfunction TextBoxWithCopy(props) {\r\n const unmountRef = useUnmountRef();\r\n const { defaultValue, onChange, InputProps, ...others } = props;\r\n const [input, setInput] = useSafeState(unmountRef, defaultValue);\r\n const [openTip, setOpenTip] = useSafeState(unmountRef, false);\r\n\r\n const handleChangeText = (e) => {\r\n setInput(e.target.value);\r\n onChange && onChange(e);\r\n };\r\n\r\n const handleCloseTip = () => {\r\n setOpenTip(false);\r\n };\r\n\r\n const handleClickButton = () => {\r\n setOpenTip(true);\r\n };\r\n\r\n const endAdornment = {\r\n endAdornment: (\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 return (\r\n \r\n\r\n // \r\n // \t\r\n // \t\t\t\t\r\n // \t\t\t\t\t\r\n // \t\t\t\t\t\t\r\n // \t\t\t\t\t\t\t\r\n // \t\t\t\t\t\t\r\n // \t\t\t\t\t\r\n // \t\t\t\t\r\n // \t\t\t\r\n // \t\t}\r\n // \t/>\r\n // \r\n );\r\n}\r\n\r\nexport default TextBoxWithCopy;","/**\r\n * @file 医療機関 登録/編集画面 ホームページ関連設定\r\n */\r\nimport {\r\n Avatar,\r\n Box,\r\n FormLabel,\r\n Grid,\r\n MenuItem,\r\n TextField,\r\n Typography,\r\n useTheme,\r\n fade,\r\n} from \"@material-ui/core\";\r\nimport { Alert } from \"@material-ui/lab\";\r\nimport axios from \"axios\";\r\nimport { imageConst } from \"components/common/Const\";\r\nimport { ErrMsg } from \"components/common/ErrorMessageProvider\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport ImagesUpload from \"components/image/ImagesUpload\";\r\nimport MstDivisionsRadio from \"components/input/radio/MstDivisionsRadio\";\r\nimport DropDownList from \"components/input/selectlist/DropDownList\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport TextBoxWithCopy from \"components/input/textbox/TextBoxWithCopy\";\r\nimport React, { Fragment, useContext, useEffect } from \"react\";\r\nimport { ChromePicker } from \"react-color\";\r\nimport SectionTitleText from \"components/text/SectionTitleText\";\r\n\r\nconst HospitalEditHomePageInfo = (props) => {\r\n const {\r\n register,\r\n setStateValue,\r\n addSchemaData,\r\n errors,\r\n classes,\r\n style,\r\n data,\r\n canAllowUseHomepage,\r\n watch,\r\n directorImages,\r\n setDirectorImages,\r\n logo,\r\n setLogo,\r\n images,\r\n setImages,\r\n hospitalId,\r\n location,\r\n } = props;\r\n const urlRoot = window.location.href.replace(location.pathname, \"\");\r\n const homeUrl = urlRoot + `/${hospitalId}/home/`;\r\n const theme = useTheme();\r\n const unmountRef = useUnmountRef();\r\n const msgctx = useContext(MessageContext);\r\n\r\n const [selectedColor, setSelectedColor] = useSafeState(unmountRef, {\r\n title: \"未設定\",\r\n value: \"0\",\r\n primaryColor: \"#cccccc\",\r\n secondaryColor: \"#cccccc\",\r\n });\r\n const [isOpenColorPickerPrimary, setIsOpenColorPickerPrimary] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n const [isOpenColorPickerSeconary, setIsOpenColorPickerSecondary] =\r\n useSafeState(unmountRef, false);\r\n const [colorData, setColorData] = useSafeState(unmountRef, []);\r\n\r\n function handleColorPatternChange(e) {\r\n if (e.target.value) {\r\n let color = colorData.find((cd) => cd.mtcId === parseInt(e.target.value));\r\n setSelectedColor(color);\r\n } else {\r\n setSelectedColor({});\r\n }\r\n }\r\n\r\n function GetThemeColors() {\r\n axios\r\n .get(\"api/themeColors\")\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n if (response.data) {\r\n setColorData(response.data);\r\n return;\r\n }\r\n }\r\n throw \"エラーが発生しました\";\r\n })\r\n .catch(function () {\r\n msgctx.enqueue(\"配色パターンが取得できませんでした\", \"error\");\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n if (data && data.primaryColor && data.secondaryColor) {\r\n selectedColor.mtcPrimaryColor = data.primaryColor;\r\n selectedColor.mtcSecondaryColor = data.secondaryColor;\r\n setSelectedColor(JSON.parse(JSON.stringify(selectedColor)));\r\n }\r\n }, [data]);\r\n\r\n useEffect(() => {\r\n GetThemeColors();\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n {canAllowUseHomepage && (\r\n \r\n \r\n \r\n )}\r\n\r\n {(watch(\"useHomePage\") === true ||\r\n (!canAllowUseHomepage && data && data.useHomePage)) && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n OFFにすると、ホームページがGoogle等の検索エンジンに認識されなくなります。\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 {selectedColor && selectedColor.mtcDescription && (\r\n \r\n \r\n {selectedColor.mtcDescription}\r\n \r\n \r\n )}\r\n {\r\n setIsOpenColorPickerPrimary(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n メインカラー\r\n \r\n \r\n \r\n \r\n {isOpenColorPickerPrimary ? (\r\n
\r\n {\r\n setIsOpenColorPickerPrimary(false);\r\n }}\r\n >
\r\n {\r\n selectedColor.mtcPrimaryColor = color.hex;\r\n setSelectedColor(\r\n JSON.parse(JSON.stringify(selectedColor))\r\n );\r\n }}\r\n />\r\n \r\n ) : null}\r\n\r\n {\r\n setIsOpenColorPickerSecondary(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n サブカラー\r\n \r\n \r\n \r\n \r\n {isOpenColorPickerSeconary ? (\r\n
\r\n {\r\n setIsOpenColorPickerSecondary(false);\r\n }}\r\n >
\r\n {\r\n selectedColor.mtcSecondaryColor = color.hex;\r\n setSelectedColor(\r\n JSON.parse(JSON.stringify(selectedColor))\r\n );\r\n }}\r\n />\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 \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 {watch(\"isUseDirector\") === true && (\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 HospitalEditHomePageInfo;\r\n","/**\r\n * @file 医療機関 登録/編集画面 予約関連設定\r\n */\r\nimport {\r\n Box,\r\n Button,\r\n Grid,\r\n Modal,\r\n Paper,\r\n TextField,\r\n Tooltip,\r\n Typography,\r\n useTheme,\r\n fade,\r\n List,\r\n ListItem,\r\n ListItemText,\r\n} from \"@material-ui/core\";\r\nimport { Add, Close } from \"@material-ui/icons\";\r\nimport { ErrMsg } from \"components/common/ErrorMessageProvider\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport WysiWygEditor from \"components/editor/WysiWygEditor\";\r\nimport TemplateMsgSelectList from \"components/input/selectlist/TemplateMsgSelectList\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport TextBoxWithCopy from \"components/input/textbox/TextBoxWithCopy\";\r\nimport HelpToolTip, {\r\n HelperIsNewPatient,\r\n HelperIsUseReserve,\r\n} from \"components/toolTip/HelpToolTip\";\r\nimport React, { useEffect } from \"react\";\r\nimport { Controller } from \"react-hook-form\";\r\nimport SectionTitleText from \"components/text/SectionTitleText\";\r\n\r\nconst HospitalEditReservationInfo = (props) => {\r\n const {\r\n register,\r\n setStateValue,\r\n addSchemaData,\r\n errors,\r\n classes,\r\n style,\r\n setError,\r\n clearErrors,\r\n data,\r\n handleAddScreenClick,\r\n fields,\r\n control,\r\n remove,\r\n getValues,\r\n watch,\r\n hospitalId,\r\n location,\r\n ...others\r\n } = props;\r\n\r\n const urlRoot = window.location.href.replace(location.pathname, \"\");\r\n const regUrl = urlRoot + `/${hospitalId}/r/sc/0`;\r\n const theme = useTheme();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n OFFにすると、予約登録画面がGoogle等の検索エンジンに認識されなくなります。\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\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 * @module ExtraScreenComp\r\n * @example\r\n *\r\n \r\n * @param {Object} props - 上位より同名項目を引き渡す\r\n */\r\nexport function ExtraScreenComp(props) {\r\n const unmountRef = useUnmountRef();\r\n const {\r\n fields,\r\n errors,\r\n style,\r\n register,\r\n classes,\r\n control,\r\n remove,\r\n getValues,\r\n } = props;\r\n\r\n var screensValue = getValues(`screens`);\r\n const theme = useTheme();\r\n\r\n const [defaultsJson, setDefaultsJson] = useSafeState(\r\n unmountRef,\r\n fields.map((data) => {\r\n return [data[\"text\"]];\r\n })\r\n );\r\n const [selects, setSelects] = useSafeState(unmountRef, []);\r\n const handleTemplateSelect = (val, index) => {\r\n var copySelects = selects.slice();\r\n copySelects[index] = JSON.parse(val);\r\n setSelects(copySelects);\r\n\r\n if (val) {\r\n var test = defaultsJson.slice();\r\n test[index] = JSON.parse(val);\r\n setDefaultsJson(test);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setDefaultsJson(\r\n fields.map((data) => {\r\n return data[\"text\"];\r\n })\r\n );\r\n }, [fields]);\r\n\r\n // useEffect(() => {\r\n // console.log(\"fields\");\r\n // console.log(fields);\r\n // console.log(errors);\r\n // });\r\n return (\r\n <>\r\n {fields.map((field, index) => (\r\n \r\n \r\n \r\n 選択画面設定\r\n \r\n \r\n 選択画面を削除する}>\r\n {\r\n remove(index);\r\n }}\r\n >\r\n \r\n \r\n \r\n }\r\n type=\"tel\"\r\n name={`screens[${index}].showOrder`}\r\n variant=\"outlined\"\r\n className={classes.textField}\r\n label=\"表示順\"\r\n required\r\n defaultValue={field.showOrder}\r\n style={{ width: \"5rem\" }}\r\n control={control}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n }\r\n name={`screens[${index}].button1Name`}\r\n variant=\"outlined\"\r\n className={classes.textField}\r\n label=\"該当者用ボタン名\"\r\n required\r\n defaultValue={field.button1Name}\r\n style={{ width: \"15rem\" }}\r\n control={control}\r\n />\r\n \r\n \r\n \r\n \r\n {/* {HelperIsNewPatient()} */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n }\r\n name={`screens[${index}].button2Name`}\r\n variant=\"outlined\"\r\n className={classes.textField}\r\n label=\"非該当者用ボタン名\"\r\n defaultValue={field.button2Name}\r\n style={{ width: \"15rem\" }}\r\n control={control}\r\n />\r\n \r\n \r\n \r\n \r\n {/* {HelperIsNewPatient()} */}\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 {/* {HelperIsUseReserve()} */}\r\n \r\n \r\n \r\n \r\n }\r\n name={`screens[${index}].title`}\r\n variant=\"outlined\"\r\n className={classes.textField}\r\n label=\"タイトル\"\r\n required\r\n defaultValue={field.title}\r\n style={{ minWidth: \"17rem\", maxWidth: \"20rem\" }}\r\n control={control}\r\n />\r\n \r\n \r\n \r\n handleTemplateSelect(val, index)}\r\n value={selects[index] ? selects[index] : \"\"}\r\n name=\"template\"\r\n label=\"例文を利用する\"\r\n dispnone={true}\r\n divisionValue={1}\r\n />\r\n \r\n \r\n \r\n }\r\n name={`screens[${index}].text`}\r\n control={control}\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 HospitalEditReservationInfo;\r\n","/**\r\n * @file 医療機関 登録/編集画面\r\n */\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport { Box, Grid, Tab, Tabs, TextField } from \"@material-ui/core/\";\r\nimport { makeStyles, fade } from \"@material-ui/core/styles\";\r\nimport { Add, ReportProblem } from \"@material-ui/icons\";\r\nimport axios from \"axios\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport { ApiHospitalScreensGet } from \"components/api/HospitalScreensApi\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport UseEffect2 from \"components/common/UseEffect2\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport ImageCompressor from \"components/image/ImageCompressor\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport HospitalEditBaseInfo from \"pages/admin/hospital/hospitalEdit/HospitalEditBaseInfo\";\r\nimport HospitalEditHomePageInfo from \"pages/admin/hospital/hospitalEdit/HospitalEditHomePageInfo\";\r\nimport HospitalEditReservationInfo from \"pages/admin/hospital/hospitalEdit/HospitalEditReservationInfo\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport { useFieldArray, useForm } from \"react-hook-form\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport * as yup from \"yup\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\nimport { CommonTab } from \"components/tab/CommonTab\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n textField: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n background: \"white\",\r\n },\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n color_picker: {\r\n width: \"21rem\",\r\n },\r\n popover: {\r\n position: \"absolute\",\r\n zIndex: \"2\",\r\n },\r\n cover: {\r\n position: \"fixed\",\r\n top: \"0px\",\r\n right: \"0px\",\r\n bottom: \"0px\",\r\n left: \"0px\",\r\n },\r\n tab_root: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n subTitleText: {\r\n color: theme.palette.primary.main,\r\n fontWeight: 600,\r\n },\r\n objectBox: {\r\n padding: theme.spacing(3),\r\n [theme.breakpoints.down(\"xs\")]: {\r\n paddingLeft: theme.spacing(1),\r\n paddingRight: theme.spacing(1),\r\n },\r\n },\r\n useDirectorBox: {\r\n marginLeft: \"1rem\",\r\n padding: theme.spacing(2),\r\n background: fade(theme.palette.primary.light, 0.1),\r\n borderRadius: \"5px\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n minWidth: \"645px\",\r\n },\r\n },\r\n}));\r\n// state更新用の関数\r\nfunction addSchemaDataFunc(id, value, state) {\r\n state[id] = value;\r\n return state;\r\n}\r\nfunction delSchemaDataFunc(id, state) {\r\n delete state[id];\r\n return state;\r\n}\r\n\r\nexport default function HospitalEditSep(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n\r\n const { hospitalId } = useParams(); // 病院ID ある場合は編集モード\r\n const msgctx = useContext(MessageContext);\r\n const { history } = useReactRouter();\r\n\r\n const [data, setData] = useSafeState(unmountRef, null);\r\n const [images, setImages] = useSafeState(unmountRef, []); // 画像配列 File型\r\n const [logo, setLogo] = useSafeState(unmountRef, []); // 画像配列 File型\r\n const [directorImages, setDirectorImages] = useSafeState(unmountRef, []); // 画像配列 File型\r\n\r\n // 削除確認のダイアログ開閉\r\n const [confirmDialogOpen, setConfirmDialogOpen] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n const [confirmMsg, setConfirmMsg] = useSafeState(unmountRef);\r\n const [toggleDeleteUrl, setToggleDeleteUrl] = useSafeState(unmountRef);\r\n\r\n // 権限関連\r\n const userctx = useContext(UserContext);\r\n const [canDelete, setCanDelete] = useSafeState(unmountRef, false);\r\n const [canAllowUseHomepage, setCanAllowUseHomepage] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n const errProvider = useErrorMessageProvider();\r\n\r\n // 検索できない旨を通知するNotistackのキーを保持する\r\n const [notistackKey, setNotistackKey] = useSafeState(unmountRef);\r\n\r\n const fieldSchema = {\r\n showOrder: yup\r\n .number()\r\n .typeError(GetErrMsg(ErrMsgKey.number))\r\n .positive(GetErrMsg(ErrMsgKey.positive))\r\n .integer(GetErrMsg(ErrMsgKey.integer)),\r\n button1Name: yup.string().trim().required(GetErrMsg(ErrMsgKey.required)),\r\n // button2Name: yup.string().trim(),\r\n text: yup.mixed().required(GetErrMsg(ErrMsgKey.required)),\r\n title: yup.string().trim().required(GetErrMsg(ErrMsgKey.required)),\r\n isUseReserve: yup\r\n .bool()\r\n .test(\r\n \"isUseReserve => button2Name\",\r\n \"非該当者用ボタンを使用しない場合、必ずONにしてください\",\r\n function (value) {\r\n var button2Name = this.parent.button2Name;\r\n if (!button2Name) return value;\r\n return true;\r\n }\r\n ),\r\n };\r\n\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n email: yup\r\n .string()\r\n .trim()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .email(GetErrMsg(ErrMsgKey.email))\r\n .max(200, \"200文字以下としてください。\"),\r\n name: yup\r\n .string()\r\n .trim()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .max(200, \"200文字以下としてください。\"),\r\n companyName: yup\r\n .string()\r\n .trim()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .max(200, \"200文字以下としてください。\"),\r\n managerName: yup\r\n .string()\r\n .trim()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .max(50, \"50文字以下としてください。\"),\r\n englishName: yup\r\n .string()\r\n .trim()\r\n .matches(/[a-zA-Z0-9!@#$%^&*()_+-=[\\]{};:\\?,.\\s]+$/, {\r\n message: GetErrMsg(ErrMsgKey.halfAlphaNumericSymbole),\r\n excludeEmptyString: true,\r\n })\r\n .max(50, \"50文字以下としてください。\"),\r\n description: yup\r\n .string()\r\n .transform((_, val) => val.trimEnd())\r\n .max(400, \"400文字以下としてください。\"),\r\n bookedMailTextHeader: yup\r\n .string()\r\n .trim()\r\n .max(400, \"400文字以下としてください。\"),\r\n bookedMailTextBottom: yup\r\n .string()\r\n .trim()\r\n .max(400, \"400文字以下としてください。\"),\r\n remainderTextHeader: yup\r\n .string()\r\n .trim()\r\n .max(400, \"400文字以下としてください。\"),\r\n remainderTextBottom: yup\r\n .string()\r\n .trim()\r\n .max(400, \"400文字以下としてください。\"),\r\n bookingSendLineText: yup\r\n .string()\r\n .trim()\r\n .max(400, \"400文字以下としてください。\"),\r\n url: yup.string().trim().url(GetErrMsg(ErrMsgKey.url)),\r\n map: yup\r\n .string()\r\n .trim()\r\n .url(GetErrMsg(ErrMsgKey.url))\r\n .matches(/^https:\\/\\/www.google.com\\/maps\\/embed\\?pb=/, {\r\n message: \"GoogleMapのURLを入力してください\",\r\n excludeEmptyString: true,\r\n }),\r\n directorsName: yup.string().trim().max(100, \"100文字以下としてください。\"),\r\n directorsText: yup\r\n .string()\r\n .transform((_, val) => val.trimEnd())\r\n .max(400, \"400文字以下としてください。\"),\r\n\r\n screens: yup.array().of(yup.object().shape(fieldSchema)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n //react-hooks-form\r\n const {\r\n register,\r\n handleSubmit,\r\n errors,\r\n setError,\r\n clearErrors,\r\n setValue,\r\n getValues,\r\n watch,\r\n control,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n // ダイアログ表示\r\n const dialogOpen = (msg) => {\r\n setConfirmMsg(msg);\r\n setConfirmDialogOpen(true);\r\n };\r\n // ダイアログを消す\r\n const dialogClose = () => {\r\n setConfirmDialogOpen(false);\r\n };\r\n\r\n async function GetData() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\"api/hospitals/search?GetDeleted=true&id=\" + hospitalId, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n msgctx.enqueue(json.message, \"error\");\r\n } else {\r\n setData(json.data[0]);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetData error\", error);\r\n });\r\n\r\n await GetScreens();\r\n await GetImage();\r\n await GetLogo();\r\n await GetDirectorsImage();\r\n }\r\n\r\n async function GetScreens() {\r\n let isSuccess = false;\r\n await ApiHospitalScreensGet(hospitalId)\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (response) {\r\n if (!isSuccess) {\r\n msgctx.enqueue(response.message, \"error\");\r\n } else {\r\n response.data.map((item) => {\r\n var add = {\r\n button1Name: item.mhsButtonName1,\r\n button2Name: item.mhsButtonName2,\r\n text: JSON.parse(item.mhsText),\r\n isUseReserve: item.mhsIsUseReserve,\r\n showOrder: item.mhsShowOrder,\r\n title: item.mhsTitle,\r\n isNewPatient1: item.mhsIsNewPatient1,\r\n isNewPatient2: item.mhsIsNewPatient2,\r\n };\r\n append(add);\r\n });\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetScreens error\", error);\r\n });\r\n }\r\n\r\n async function GetImage() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\r\n \"api/images?isGetImage=true&isTracking=false&isLogo=false&isDirector=false&hospitalId=\" + hospitalId,\r\n {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n }\r\n )\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n msgctx.enqueue(json.message, \"error\");\r\n } else {\r\n if (json.data) {\r\n let imageList = [];\r\n\r\n json.data.forEach((imageData) => {\r\n var bin = atob(imageData.image.replace(/^.*,/, \"\"));\r\n // バイナリデータ化\r\n var buffer = new Uint8Array(bin.length);\r\n for (var i = 0; i < bin.length; i++) {\r\n buffer[i] = bin.charCodeAt(i);\r\n }\r\n //FileオブジェクトはIE・Safariで表示されないためBlobで処理\r\n var blob = new Blob([buffer.buffer], {\r\n type: imageData.extention,\r\n });\r\n blob.lastModifiedDate = new Date();\r\n imageList.push(blob);\r\n });\r\n\r\n setImages(imageList);\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetImage error\", error);\r\n });\r\n }\r\n\r\n async function GetLogo() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\r\n \"api/images?isLogo=true&isGetImage=true&isTracking=false&hospitalId=\" +\r\n hospitalId,\r\n {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n }\r\n )\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n msgctx.enqueue(json.message, \"error\");\r\n } else {\r\n if (json.data) {\r\n let imageList = [];\r\n\r\n json.data.forEach((imageData) => {\r\n var bin = atob(imageData.image.replace(/^.*,/, \"\"));\r\n // バイナリデータ化\r\n var buffer = new Uint8Array(bin.length);\r\n for (var i = 0; i < bin.length; i++) {\r\n buffer[i] = bin.charCodeAt(i);\r\n }\r\n\r\n //FileオブジェクトはIE・Safariで表示されないためBlobで処理\r\n var blob = new Blob([buffer.buffer], {\r\n type: imageData.extention,\r\n });\r\n blob.lastModifiedDate = new Date();\r\n imageList.push(blob);\r\n });\r\n\r\n setLogo(imageList);\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetLogo error\", error);\r\n });\r\n }\r\n\r\n async function GetDirectorsImage() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .get(\r\n \"api/images?isDirector=true&isGetImage=true&isTracking=false&hospitalId=\" +\r\n hospitalId,\r\n {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n }\r\n )\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n msgctx.enqueue(json.message, \"error\");\r\n } else {\r\n if (json.data) {\r\n let imageList = [];\r\n\r\n json.data.forEach((imageData) => {\r\n var bin = atob(imageData.image.replace(/^.*,/, \"\"));\r\n // バイナリデータ化\r\n var buffer = new Uint8Array(bin.length);\r\n for (var i = 0; i < bin.length; i++) {\r\n buffer[i] = bin.charCodeAt(i);\r\n }\r\n\r\n //FileオブジェクトはIE・Safariで表示されないためBlobで処理\r\n var blob = new Blob([buffer.buffer], {\r\n type: imageData.extention,\r\n });\r\n blob.lastModifiedDate = new Date();\r\n imageList.push(blob);\r\n });\r\n\r\n setDirectorImages(imageList);\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetDirectorsImage error\", error);\r\n });\r\n }\r\n\r\n // コンポーネント内でstateを変更するための処理\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n // 普通にstateにセットすると、最後に実行されたもののみが処理される。\r\n // stateをfunctionを用いて更新することで、遅延評価時に順次実行されるっぽい。\r\n // https://career.levtech.jp/guide/knowhow/article/394/\r\n const addSchemaData = (id, value) => {\r\n setSchemaData(addSchemaDataFunc(id, value, schemaData));\r\n };\r\n\r\n // submit時処理\r\n async function onSubmit(values) {\r\n var form_data = new FormData();\r\n // 圧縮処理\r\n // 医療機関画像\r\n var compressedImageData = await ImageCompressor(images);\r\n compressedImageData.forEach((imageData) => {\r\n form_data.append(\"images\", imageData.blob);\r\n });\r\n // 医療機関ロゴ\r\n var compressedLogoData = await ImageCompressor(logo);\r\n compressedLogoData.forEach((imageData) => {\r\n // console.log(imageData.blob.type);\r\n form_data.append(\"logo\", imageData.blob);\r\n });\r\n // 院長画像\r\n var compressedDirectorData = await ImageCompressor(directorImages);\r\n compressedDirectorData.forEach((imageData) => {\r\n // console.log(imageData.blob.type);\r\n form_data.append(\"directorImages\", imageData.blob);\r\n });\r\n\r\n for (var key in values) {\r\n if (key === \"screens\") {\r\n var val = values[key];\r\n val.map((test) => {\r\n test.text = JSON.stringify(test.text);\r\n });\r\n form_data.append(key, JSON.stringify(val));\r\n } else if (key === \"showOrder\") {\r\n form_data.append(key, Number.parse(values[key]));\r\n } else form_data.append(key, values[key]);\r\n }\r\n\r\n const token = await authService.getAccessToken();\r\n if (hospitalId) {\r\n axios\r\n .put(\"api/hospitals\", form_data, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(() => {\r\n msgctx.enqueue(\"医療機関を更新しました。\", \"success\");\r\n })\r\n .catch((error) => {\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n msgctx.enqueue(\"エラーが発生しました。\", \"error\");\r\n });\r\n } else {\r\n axios\r\n .post(\"api/hospitals\", form_data, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(() => {\r\n msgctx.enqueue(\"医療機関を登録しました。\", \"success\");\r\n history.goBack();\r\n })\r\n .catch((error) => {\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n msgctx.enqueue(\"エラーが発生しました。\", \"error\");\r\n });\r\n }\r\n }\r\n\r\n // 削除処理\r\n const ToggleDelete = useCallback(async () => {\r\n let values = {};\r\n values[\"id\"] = hospitalId;\r\n const queryString = new URLSearchParams(values);\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .put(toggleDeleteUrl + \"?\" + queryString.toString(), null, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(() => {\r\n GetData();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n msgctx.enqueue(\r\n \"削除に失敗しました。エラーメッセージを確認してください\",\r\n \"error\"\r\n );\r\n });\r\n\r\n dialogClose();\r\n });\r\n\r\n const button1Text = () => {\r\n return (\r\n <>\r\n 登録\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (hospitalId) {\r\n const f = async () => {\r\n await GetData();\r\n };\r\n f();\r\n }\r\n // GetThemeColors();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n setCanDelete(userctx.hasClaim(Claims.Hospital_Delete));\r\n setCanAllowUseHomepage(userctx.hasClaim(Claims.Allow_Use_Homepage));\r\n }\r\n }, [userctx.claims]);\r\n\r\n useEffect(() => {\r\n if (userctx.user) {\r\n userctx.checkHospitalDept(hospitalId, undefined);\r\n }\r\n }, [userctx.user]);\r\n\r\n const handleAddScreenClick = async () => {\r\n var add = {\r\n button1Name: \"\",\r\n button2Name: \"\",\r\n text: undefined,\r\n isUseReserve: false,\r\n showOrder: 0,\r\n };\r\n append(add);\r\n };\r\n\r\n const { fields, append, remove } = useFieldArray({\r\n control, // control props comes from useForm (optional: if you are using FormContext)\r\n name: \"screens\", // unique name for your Field Array\r\n // keyName: \"id\", default to \"id\", you can change the key name\r\n });\r\n\r\n // const firstPageNames = [\r\n // \"address\",\r\n // \"cityName\",\r\n // \"companyName\",\r\n // \"email\",\r\n // \"englishName\",\r\n // \"fax\",\r\n // \"kind\",\r\n // \"managerName\",\r\n // \"name\",\r\n // \"postalCode\",\r\n // \"prefCd\",\r\n // \"scoreClassId\",\r\n // \"tel\",\r\n // \"url\",\r\n // ];\r\n // var [isFirstPageError, setIsFirstPageError] = useSafeState(unmountRef, false);\r\n // const secondPageNames = [\r\n // \"bookedMailTextBottom\",\r\n // \"bookedMailTextHeader\",\r\n // \"bookingSendLineText\",\r\n // \"isEnableLine\",\r\n // \"isNewPatientReservable\",\r\n // \"isReservationSearchable\",\r\n // \"remainderTextBottom\",\r\n // \"remainderTextHeader\",\r\n // \"templatePattern\",\r\n // ];\r\n // var [isSecondPageError, setIsSecondPageError] = useSafeState(\r\n // unmountRef,\r\n // false\r\n // );\r\n var [errorTabNoArr, setErrorTabNoArr] = useSafeState(unmountRef);\r\n\r\n const pageNamesArr = [\r\n [\r\n \"address\",\r\n \"cityName\",\r\n \"companyName\",\r\n \"email\",\r\n \"englishName\",\r\n \"fax\",\r\n \"kind\",\r\n \"managerName\",\r\n \"name\",\r\n \"postalCode\",\r\n \"prefCd\",\r\n \"scoreClassId\",\r\n \"tel\",\r\n \"url\",\r\n ],\r\n [\r\n \"bookedMailTextBottom\",\r\n \"bookedMailTextHeader\",\r\n \"bookingSendLineText\",\r\n \"isEnableLine\",\r\n \"isNewPatientReservable\",\r\n \"isReservationSearchable\",\r\n \"remainderTextBottom\",\r\n \"remainderTextHeader\",\r\n \"templatePattern\",\r\n \"screens\",\r\n ],\r\n ];\r\n\r\n useEffect(() => {\r\n // エラーのあるタブを特定し該当タブにマークを表示させる\r\n var keys = Object.keys(errors);\r\n if (errors && keys.length > 0) {\r\n msgctx.enqueue(\"エラーがあります。入力内容をご確認ください。\", \"error\");\r\n var errorTabNos = [];\r\n\r\n pageNamesArr.map((names, index) => {\r\n if (keys.find((x) => names.includes(x))) errorTabNos.push(index);\r\n });\r\n\r\n setErrorTabNoArr(errorTabNos);\r\n } else {\r\n setErrorTabNoArr(undefined);\r\n }\r\n }, [errors]);\r\n\r\n const changeNotReservationSearchableMsg = (data) => {\r\n if (data === true) {\r\n if (notistackKey) msgctx.closeSnackbar(notistackKey);\r\n setNotistackKey(undefined);\r\n } else if (data === false) {\r\n if (!notistackKey)\r\n setNotistackKey(\r\n msgctx.enqueueWithOption(\r\n \"予約登録画面は検索できない状態です\",\r\n {\r\n variant: \"info\",\r\n autoHideDuration: null,\r\n persist: true,\r\n },\r\n true\r\n )\r\n );\r\n }\r\n };\r\n\r\n UseEffect2(() => {\r\n changeNotReservationSearchableMsg(watch(\"isReservationSearchable\"));\r\n }, [watch(\"isReservationSearchable\")]);\r\n\r\n UseEffect2(() => {\r\n if (data) {\r\n changeNotReservationSearchableMsg(data.isReservationSearchable);\r\n }\r\n }, [data]);\r\n\r\n // // タブ関連\r\n // const [tabValue, setTabValue] = useSafeState(unmountRef, 0);\r\n // // タブ変更イベント\r\n // const handleTabChange = (event, newValue) => {\r\n // // タブを変更する\r\n // setTabValue(newValue);\r\n // };\r\n const panels = [\r\n {\r\n title: \"基本情報\",\r\n object: (\r\n \r\n ),\r\n },\r\n {\r\n title: \"予約関連\",\r\n object: (\r\n \r\n ),\r\n },\r\n {\r\n title: \"ホームページ\",\r\n object: (\r\n <>\r\n \r\n \r\n ),\r\n },\r\n ];\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {hospitalId ? (\r\n 医療機関 編集\r\n ) : (\r\n 医療機関 登録\r\n )}\r\n \r\n \r\n \r\n {(data || !hospitalId) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n {panels.map((panel, index) => {\r\n return (\r\n \r\n \r\n {(isFirstPageError || isSecondPageError) && (\r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n {panels.map((panel, index) => {\r\n return (\r\n \r\n {panel.object}\r\n \r\n );\r\n })} */}\r\n \r\n {data && hospitalId ? (\r\n canDelete ? (\r\n data.isDelete ? (\r\n {\r\n setToggleDeleteUrl(\"api/hospitals/deletecancel\");\r\n dialogOpen(\r\n \"削除を取消してよろしいですか?予約項目も全て削除が取消しされるので確認してください\"\r\n );\r\n }}\r\n />\r\n ) : (\r\n {\r\n setToggleDeleteUrl(\"api/hospitals/delete\");\r\n dialogOpen(\"削除してよろしいですか?\");\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 * @file 医療機関用の管理機能へのルーティングを提供します\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useContext, useEffect, lazy, Suspense } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport AuthorizeRoute from \"components/api-authorization/AuthorizeRoute\";\r\nimport ClaimAuthorizeRoute from \"components/api-authorization/ClaimAuthorizeRoute\";\r\nimport { Container, Toolbar, useTheme } from \"@material-ui/core\";\r\nimport ClippedDrawer from \"components/drawer/ClipedDrawer\";\r\nimport {\r\n RecentActors,\r\n Assignment,\r\n Notifications,\r\n Home,\r\n Settings,\r\n ExitToApp,\r\n MailOutline,\r\n PostAdd,\r\n Web,\r\n SettingsApplications,\r\n Feedback,\r\n ThumbUp,\r\n Store,\r\n ShoppingCart,\r\n} from \"@material-ui/icons\";\r\nimport { Link, Switch } from \"react-router-dom\";\r\nimport {\r\n ApplicationPaths,\r\n Claims,\r\n} from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport { LayoutContext } from \"pages/Layout\";\r\nimport Index from \"pages/manage/Index\";\r\n\r\nimport AccountIndex from \"pages/manage/account/AccountIndex\";\r\nimport AccountEdit from \"pages/manage/account/AccountEdit\";\r\nimport PasswordEdit from \"pages/manage/account/PasswordEdit\";\r\nimport Bookings from \"./booking/Bookings\";\r\nimport Information from \"pages/manage/information/InformationList\";\r\nimport InformationRegister from \"pages/manage/information/InformationRegister\";\r\nimport Notices from \"pages/manage/notices/Notices\";\r\nimport NoticesEdit from \"pages/manage/notices/NoticesEdit\";\r\nimport ExamCards from \"pages/manage/cards/ExamCards\";\r\nimport ExamCardEdit from \"pages/manage/cards/ExamCardEdit\";\r\nimport CheckRevisionComponent from \"components/common/CheckRevisionComponent\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport HospitalPotal from \"pages/manage/hospitalPotal/HospitalPotal\";\r\n// import HospitalEdit from \"pages/admin/hospital/HospitalEdit\";\r\nimport HospitalDepts from \"pages/admin/hospitalDept/HospitalDepts\";\r\nimport HospitalDeptEdit from \"pages/admin/hospitalDept/HospitalDeptEdit\";\r\nimport TimeTableEdit from \"pages/admin/timeTableDetail/TimeTableEdit\";\r\nimport HospitalCalendar from \"pages/admin/hospitalCalendar/HospitalCalendar\";\r\nimport Rest from \"pages/admin/rest/Rest\";\r\nimport Users from \"pages/admin/Users\";\r\nimport { Register } from \"pages/register/Register\";\r\nimport UserEdit from \"pages/admin/UserEdit\";\r\nimport UserClaimsEdit from \"pages/admin/UserClaimsEdit\";\r\nimport { FeedbackModal } from \"components/common/Feedback\";\r\nimport HospitalEditSep from \"pages/admin/hospital/hospitalEdit/HospitalEditSep\";\r\n\r\n// 遅延読込\r\n// const AccountIndex = lazy(() => import(\"pages/manage/account/AccountIndex\"));\r\n// const AccountEdit = lazy(() => import(\"pages/manage/account/AccountEdit\"));\r\n// const PasswordEdit = lazy(() => import( \"pages/manage/account/PasswordEdit\"));\r\n// const Bookings = lazy(() => import( \"./booking/Bookings\"));\r\n// const Information = lazy(() => import( \"pages/manage/information/InformationList\"));\r\n// const InformationRegister = lazy(() => import( \"pages/manage/information/InformationRegister\"));\r\n// const Notices = lazy(() => import( \"pages/manage/notices/Notices\"));\r\n// const NoticesEdit = lazy(() => import( \"pages/manage/notices/NoticesEdit\"));\r\n// const ExamCards = lazy(() => import( \"pages/manage/cards/ExamCards\"));\r\n// const ExamCardEdit = lazy(() => import( \"pages/manage/cards/ExamCardEdit\"));\r\n\r\nexport function ManageRoute(props) {\r\n const unmountRef = useUnmountRef();\r\n const layoutCtx = useContext(LayoutContext);\r\n\r\n const userctx = useContext(UserContext);\r\n const theme = useTheme();\r\n const iconColor = \"white\";\r\n const iconBgColor = theme.palette.primary.main;\r\n const [listItems, setListItems] = useSafeState(unmountRef, []);\r\n const [bottomListItems, setBottomListItems] = useSafeState(unmountRef, []);\r\n\r\n const GetMenu = () => {\r\n var list = [];\r\n var bottomList = [];\r\n list.push({\r\n primaryText: \"管理画面\",\r\n secondaryText: \"\",\r\n key: \"管理画面\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: `/manage/`,\r\n });\r\n userctx.user &&\r\n userctx.user.hospitalId &&\r\n list.push({\r\n primaryText: \"予約一覧\",\r\n secondaryText: \"\",\r\n key: \"予約一覧\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: `/manage/booking`,\r\n });\r\n userctx.user &&\r\n userctx.user.hospitalId &&\r\n list.push({\r\n primaryText: \"予約登録\",\r\n secondaryText: \"\",\r\n key: \"予約登録\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: `/${userctx.user.hospitalId}/r/sc/0`,\r\n });\r\n userctx.user &&\r\n userctx.user.hospitalId &&\r\n userctx.claims &&\r\n userctx.hasClaim(Claims.Card_Read) &&\r\n list.push({\r\n primaryText: \"診察券管理\",\r\n secondaryText: \"\",\r\n key: \"診察券管理\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: \"/manage/cards/index\",\r\n });\r\n userctx.claims &&\r\n userctx.hasClaim(Claims.Information_Read) &&\r\n list.push({\r\n primaryText: \"お知らせ\",\r\n secondaryText: \"\",\r\n key: \"お知らせ\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: \"/manage/information/informationList\",\r\n });\r\n userctx.claims &&\r\n userctx.hasClaim(Claims.Notices_Read) &&\r\n list.push({\r\n primaryText: \"メッセージ送信\",\r\n secondaryText: \"\",\r\n key: \"メッセージ送信\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: \"/manage/notices/index\",\r\n });\r\n\r\n userctx.user &&\r\n userctx.user.hospitalId &&\r\n userctx.claims &&\r\n userctx.hasClaim(Claims.Can_Use_Various_Settings) &&\r\n list.push({\r\n primaryText: \"各種設定\",\r\n secondaryText: \"\",\r\n key: \"各種設定\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: `/manage/hospital_potal`,\r\n });\r\n userctx.user &&\r\n userctx.hospital &&\r\n userctx.hospital.useHomePage === true &&\r\n list.push({\r\n primaryText: \"ホームページ\",\r\n secondaryText: \"\",\r\n key: \"ホームページ\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: `/${userctx.user.hospitalId}/home/`,\r\n });\r\n\r\n // bottomList.push({\r\n // primaryText: \"医療関連グッズ\",\r\n // secondaryText: \"\",\r\n // key: \"医療関連グッズ\",\r\n // icon: ,\r\n // iconColor: iconColor,\r\n // iconBgColor: iconBgColor,\r\n // component: Link,\r\n // // to: `https://tokyop.ocnk.net/`,\r\n // onClick: () => {\r\n // window.open(\"https://tokyop.ocnk.net/\", \"_blank\");\r\n // },\r\n // });\r\n bottomList.push({\r\n primaryText: \"医療用品ショップ\",\r\n secondaryText: \"\",\r\n key: \"医療用品ショップ\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n // component: Link,\r\n // to: `https://tokyop.ocnk.net/`,\r\n onClick: () => {\r\n window.open(\"https://tokyop.ocnk.net/\", \"_blank\");\r\n },\r\n });\r\n\r\n bottomList.push({\r\n primaryText: \"ご意見・ご要望\",\r\n secondaryText: \"\",\r\n key: \"ご意見・ご要望\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n // component: Link,\r\n onClick: () => {\r\n setFeedbackOpen(true);\r\n },\r\n });\r\n\r\n userctx.claims &&\r\n userctx.hasClaim(Claims.Can_Use_Admin_Menu) &&\r\n bottomList.push({\r\n primaryText: \"システム管理\",\r\n secondaryText: \"\",\r\n key: \"管理者メニュー\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: \"/admin/\",\r\n });\r\n\r\n setListItems(list);\r\n setBottomListItems(bottomList);\r\n };\r\n\r\n useEffect(() => {\r\n layoutCtx.setIsMypage(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userctx) {\r\n GetMenu();\r\n }\r\n }, [userctx]);\r\n const [feedbackOpen, setFeedbackOpen] = useSafeState(unmountRef, false);\r\n\r\n return (\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 {/* admin画面をmanageから見に行くためのルート */}\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 withStyles(commonStyle)(ManageRoute);\r\n","/**\r\n * @file 管理者用お知らせ一覧画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useContext, useEffect, useCallback } from \"react\";\r\nimport {\r\n Typography,\r\n TableCell,\r\n InputLabel,\r\n useTheme,\r\n TextField,\r\n} from \"@material-ui/core/\";\r\nimport {\r\n Box,\r\n Button,\r\n FormControl,\r\n Grid,\r\n Tooltip,\r\n Fab,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n Select,\r\n MenuItem,\r\n} from \"@material-ui/core\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport { TableBorderedRow } from \"components/table/TableBorderedRow\";\r\nimport { TableHeaderCell } from \"components/table/TableHeaderCell\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport axios from \"axios\";\r\nimport { Add, Search, Edit } from \"@material-ui/icons\";\r\nimport PagenationTable2 from \"components/table/PagenationTable2\";\r\nimport TableSkeleton from \"components/table/TableSkeleton\";\r\nimport ListTitleDrawer from \"components/drawer/ListTitleDrawer\";\r\nimport SearchModal from \"components/modal/SearchModal\";\r\nimport TitleWithSubTitleText from \"components/text/TitleWithSubTitleText\";\r\nimport SearchInputGrid from \"components/input/textbox/SearchInputGrid\";\r\nimport ListText from \"components/text/ListText\";\r\nimport qs from \"qs\";\r\nimport LinkFab from \"components/input/button/LinkFab\";\r\nimport KeybordDatePickerJp from \"components/input/textbox/KeybordDatePickerJp\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport { GetDivisions } from \"components/api/DivisionsApi\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport { sessionStorageKeys } from \"components/common/Const\";\r\n\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport {\r\n ErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport * as yup from \"yup\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport UndoIconButton from \"components/input/button/UndoIconButton\";\r\nimport SaveIconButton from \"components/input/button/SaveIconButton\";\r\nimport EditIconButton from \"components/input/button/EditIconButton\";\r\nimport { PatchShowOrder } from \"components/api/InformationApi\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n smartLineUpLeft: {\r\n [theme.breakpoints.up(\"lg\")]: {\r\n float: \"left\",\r\n width: \"60%\",\r\n },\r\n [theme.breakpoints.down(\"md\")]: {\r\n width: \"100%\",\r\n },\r\n },\r\n smartLineUpRight: {\r\n [theme.breakpoints.up(\"lg\")]: {\r\n float: \"left\",\r\n width: \"40%\",\r\n },\r\n [theme.breakpoints.down(\"md\")]: {\r\n width: \"100%\",\r\n marginBottom: \"20px\",\r\n },\r\n },\r\n deliveryTitle: {\r\n float: \"left\",\r\n width: \"30%\",\r\n padding: \"6px 16px\",\r\n },\r\n buttonBox: {\r\n [theme.breakpoints.up(\"lg\")]: {\r\n textAlign: \"right\",\r\n },\r\n [theme.breakpoints.down(\"md\")]: {\r\n textAlign: \"center\",\r\n },\r\n },\r\n editButton: {\r\n [theme.breakpoints.up(\"lg\")]: {\r\n margin: theme.spacing(1),\r\n width: \"80%\",\r\n },\r\n\r\n [theme.breakpoints.down(\"md\")]: {\r\n margin: theme.spacing(1),\r\n width: \"80%\",\r\n },\r\n },\r\n LinkButton: {\r\n [theme.breakpoints.up(\"lg\")]: {\r\n margin: theme.spacing(1),\r\n width: \"60%\",\r\n },\r\n\r\n [theme.breakpoints.down(\"md\")]: {\r\n margin: theme.spacing(1),\r\n width: \"80%\",\r\n },\r\n },\r\n deliveryStatus: {\r\n marginTop: theme.spacing(2),\r\n marginBottom: theme.spacing(2),\r\n marginLeft: theme.spacing(2),\r\n fontWeight: 600,\r\n },\r\n chip: {\r\n margin: theme.spacing(0.5),\r\n },\r\n subTitleText: {\r\n marginTop: theme.spacing(2),\r\n marginBottom: theme.spacing(2),\r\n color: theme.palette.primary.main,\r\n fontWeight: 600,\r\n },\r\n cancelText: {\r\n margin: theme.spacing(1),\r\n color: \"red\",\r\n fontWeight: 600,\r\n },\r\n formControl: {\r\n width: \"100%\",\r\n },\r\n admin: {\r\n backgroundColor: theme.palette.secondary.main,\r\n borderRadius: \"5px\",\r\n padding: \"3px\",\r\n color: \"black\",\r\n },\r\n inputBottom: {\r\n marginBottom: \"auto\",\r\n flexBasis: \"auto\",\r\n },\r\n}));\r\n\r\nexport default function Information(props) {\r\n const unmountRef = useUnmountRef();\r\n const hospitalId = qs.parse(props.location.search, {\r\n ignoreQueryPrefix: true,\r\n }).hospitalid; // 医療機関ID\r\n\r\n const styles = commonStyle();\r\n const theme = useTheme();\r\n const msgctx = useContext(MessageContext);\r\n const errProvider = useErrorMessageProvider();\r\n //入力チェックのスキーマ定義\r\n const [schemaData] = useSafeState(unmountRef, {\r\n showOrder: yup.number().typeError(\"半角数字を入力してください\"),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n\r\n //react-hooks-form\r\n const { errors, setError } = useForm({\r\n resolver: yupResolver(schema),\r\n });\r\n\r\n const showOrderEditSchema = yup.object().shape({\r\n informationLists: yup\r\n .array()\r\n //こんな感じでconsole.logで途中の値を確認できます\r\n // .test(\r\n // \"informationLists\",\r\n // \"informationListsのテストです\",\r\n // (value, context) => {\r\n // console.log(value);\r\n // return true;\r\n // }\r\n // )\r\n .of(yup.lazy((informationLists) => yup.object().shape(schemaData))),\r\n });\r\n const {\r\n register: showOrderRegister,\r\n errors: showOrderErrors,\r\n setError: showOrderSetErrors,\r\n getValues: showOrderGetValues,\r\n clearErrors: showOrderClearErrors,\r\n } = useForm({\r\n resolver: yupResolver(showOrderEditSchema),\r\n });\r\n\r\n const [errorMessage, setErrorMessage] = useSafeState(unmountRef, \"\");\r\n const classes = useStyles();\r\n const [informationContent, setInformationContent] = useSafeState(\r\n unmountRef,\r\n null\r\n );\r\n const [refreshTable, setRefreshTable] = useSafeState(unmountRef, false); // PagenationTableにデータ再取得させるためのフラグ\r\n const [searchModalOpen, setSearchModalOpen] = useSafeState(unmountRef, false); // 検索モーダルの開閉\r\n const MyComponent = React.forwardRef(LinkFab); // LinkFabにrefが渡せなくてエラーになるため、refを渡すようにする。\r\n const [searchCondition, setSearchCondition] = useSafeState(unmountRef, {\r\n getDeleted: false,\r\n });\r\n const [readingHospital, setReadingHospital] = useSafeState(unmountRef, null);\r\n const [nameDisplay, setNameDisplay] = useSafeState(unmountRef, false);\r\n const [searchHospitalId, setSearchHospitalId] = useSafeState(\r\n unmountRef,\r\n hospitalId\r\n );\r\n const userctx = useContext(UserContext);\r\n const [prefCd, setPrefCd] = useSafeState(unmountRef, 0);\r\n const [prefNameData, setPrefNameData] = useSafeState(unmountRef, []); // 県名\r\n const [hospitalSetter, setHospitalSetter] = useSafeState(unmountRef, false);\r\n const [isEditShowOrder, setIsEditShowOrder] = useSafeState(unmountRef, false); // 表示順変更モード\r\n\r\n async function GetHospital() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .get(\"api/hospitals/reading\", {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setErrorMessage(json.message);\r\n } else {\r\n setReadingHospital(json.data);\r\n }\r\n })\r\n .catch(function (error) {});\r\n }\r\n\r\n async function GetHospitalByChangePref(pref) {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .get(\"api/hospitals/change?prefCd=\" + pref, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setErrorMessage(json.message);\r\n setReadingHospital([]);\r\n setHospitalSetter(true);\r\n } else {\r\n setReadingHospital(json.data);\r\n setHospitalSetter(true);\r\n }\r\n })\r\n .catch(function (error) {});\r\n }\r\n\r\n const SearchAction = () => {\r\n setRefreshTable(!refreshTable);\r\n return \"\";\r\n };\r\n\r\n /* 関数 */\r\n // 検索モーダルオープン\r\n const handleSearchModalOpen = () => {\r\n setSearchModalOpen(true);\r\n };\r\n // 検索モーダルクローズ\r\n const handleSearchModalClose = () => {\r\n setSearchModalOpen(false);\r\n };\r\n\r\n // 一覧取得\r\n const GetInformations = useCallback(async (skip, take) => {\r\n let getUrl;\r\n let values = searchCondition;\r\n\r\n await schema.validate(values, { abortEarly: false }).catch(function (err) {\r\n err.inner.map((error) =>\r\n setError(error.path, { message: error.message })\r\n );\r\n });\r\n\r\n if (!Object.keys(values).length && hospitalId) {\r\n values[\"hospitalId\"] = hospitalId;\r\n }\r\n if (searchHospitalId) values[\"hospitalId\"] = searchHospitalId;\r\n else {\r\n delete values[\"hospitalId\"];\r\n }\r\n if (prefCd || prefCd === 0) values[\"prefCd\"] = prefCd;\r\n\r\n getUrl =\r\n \"api/Information/list?\" +\r\n new URLSearchParams(values) +\r\n \"&offset=\" +\r\n skip +\r\n \"&take=\" +\r\n take +\r\n \"&requireAllCount=true&isAdminInfo=true\";\r\n\r\n setInformationContent();\r\n const token = await authService.getAccessToken();\r\n return await axios\r\n .get(getUrl, {\r\n // + queryString.toString(), {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n setInformationContent(response.data);\r\n handleSearchModalClose();\r\n return response;\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetUsers error\", error);\r\n return undefined;\r\n });\r\n });\r\n\r\n // 一覧テーブルのヘッダ\r\n const tableHeaderDef = useCallback(() => {\r\n return (\r\n <>\r\n {nameDisplay && (\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 {userctx.claims &&\r\n userctx.hasClaim(Claims.Information_Edit) &&\r\n isEditShowOrder ? (\r\n <>\r\n 表示順変更モードを解除します\r\n }\r\n buttonOption={{\r\n size: \"small\",\r\n onClick: () => {\r\n setIsEditShowOrder(false);\r\n },\r\n style: { marginTop: \"-5px\" },\r\n }}\r\n />\r\n 表示順を更新します}\r\n buttonOption={{\r\n size: \"small\",\r\n onClick: async () => {\r\n //変更処理\r\n showOrderClearErrors();\r\n var values = showOrderGetValues();\r\n // console.log(values);\r\n await showOrderEditSchema\r\n .validate(values, { abortEarly: false })\r\n .then(async () => {\r\n await PatchShowOrder(values.informationLists)\r\n .then(() => {\r\n msgctx.enqueue(\"表示順を更新しました\", \"success\");\r\n setIsEditShowOrder(false);\r\n setRefreshTable(!refreshTable);\r\n })\r\n .catch((error) => {\r\n errProvider.setValidationErrorsForaxios(\r\n error,\r\n showOrderSetErrors\r\n );\r\n });\r\n })\r\n .catch(function (err) {\r\n if (err && err.inner)\r\n err.inner.map((error) => {\r\n showOrderSetErrors(error.path, {\r\n message: error.message,\r\n });\r\n });\r\n return;\r\n });\r\n },\r\n style: { marginTop: \"-5px\" },\r\n }}\r\n />\r\n \r\n ) : (\r\n 表示順変更モードにします}\r\n buttonOption={{\r\n size: \"small\",\r\n onClick: () => {\r\n setIsEditShowOrder(true);\r\n },\r\n style: { marginTop: \"-5px\" },\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 {userctx.claims && userctx.hasClaim(Claims.AllInformation_Edit) && (\r\n \r\n 編集\r\n \r\n )}\r\n \r\n );\r\n });\r\n // 一覧テーブルのボディー\r\n const tableBodyDef = useCallback(() => {\r\n return (\r\n <>\r\n {informationContent ? (\r\n informationContent.map((info, index) => (\r\n \r\n {nameDisplay && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {userctx.claims && userctx.hasClaim(Claims.Information_Edit) && (\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 {info.infoDetail.minIsAdmin && (\r\n 管理者\r\n )}\r\n \r\n \r\n {userctx.claims && userctx.hasClaim(Claims.AllInformation_Edit) && (\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 const changeSearchCondition = useCallback((id, val) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[id] = val;\r\n setSearchCondition(cloned);\r\n });\r\n\r\n const changeDateSearchCondition = useCallback((id, val) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n if (val) cloned[id] = val.toLocaleDateString();\r\n else delete cloned[id];\r\n setSearchCondition(cloned);\r\n });\r\n const changeGetDeleted = useCallback((e) => {\r\n var cloned = JSON.parse(JSON.stringify(searchCondition));\r\n cloned[\"getDeleted\"] = e.target.checked;\r\n setSearchCondition(cloned);\r\n });\r\n\r\n // タイトル横ボタンの定義\r\n const buttonsDef = [\r\n \r\n \r\n \r\n \r\n ,\r\n userctx.claims && userctx.hasClaim(Claims.AllInformation_Create) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n\r\n const listsDef = [\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n userctx.claims && userctx.hasClaim(Claims.AllInformation_Create) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ];\r\n\r\n const handleSearchClick = () => {\r\n GetInformations();\r\n handleSearchModalClose();\r\n };\r\n\r\n useEffect(() => {\r\n GetDivisions(\"prefCd\", setPrefNameData);\r\n GetHospital();\r\n }, []);\r\n\r\n const handleChangeHospital = (event) => {\r\n setSearchHospitalId(event.target.value);\r\n };\r\n\r\n const handleChangePref = (event) => {\r\n setPrefCd(event.target.value);\r\n setSearchHospitalId(0);\r\n setHospitalSetter(false);\r\n };\r\n\r\n useEffect(() => {\r\n GetHospitalByChangePref(prefCd);\r\n }, [prefCd]);\r\n\r\n useEffect(() => {\r\n if (userctx.hasClaim(Claims.AllInformation_Read)) setNameDisplay(true);\r\n }, [userctx]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n }\r\n buttons={buttonsDef}\r\n lists={listsDef}\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 {prefNameData.map((pref, index) => {\r\n return (\r\n \r\n  {pref}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n {readingHospital && readingHospital.length > 0 && (\r\n \r\n \r\n 病院名\r\n \r\n \r\n  未選択\r\n \r\n {readingHospital.map((hospital) => {\r\n return (\r\n \r\n  {hospital.name}\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 * @file 管理者用お知らせ登録画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport {\r\n Table,\r\n TableBody,\r\n TableRow,\r\n InputLabel,\r\n Select,\r\n MenuItem,\r\n Tooltip,\r\n Typography,\r\n SvgIcon,\r\n} from \"@material-ui/core/\";\r\nimport { Button, FormControl, Grid, TextField } from \"@material-ui/core\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport UnauthorizeRedirector from \"components/api-authorization/UnauthorizeRedirector\";\r\nimport axios from \"axios\";\r\nimport { TableCellNoBorder } from \"components/table/TableCellNoBorder\";\r\nimport KeybordDatePickerJp from \"components/input/textbox/KeybordDatePickerJp\";\r\nimport KeybordTimePicker from \"components/input/textbox/KeybordTimePicker\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport * as yup from \"yup\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport TitleWithSubTitleText from \"components/text/TitleWithSubTitleText\";\r\nimport dayjs, { Dayjs } from \"dayjs\";\r\nimport clsx from \"clsx\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport ManageMenuPaper from \"components/paper/ManageMenuPaper\";\r\nimport { Add } from \"@material-ui/icons\";\r\nimport TodayButton from \"components/input/button/TodayButton\";\r\nimport WeekButton from \"components/input/button/WeekButton\";\r\nimport MonthButton from \"components/input/button/MonthButton\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n smartLineUpLeft: {\r\n [theme.breakpoints.up(\"lg\")]: {\r\n float: \"left\",\r\n width: \"60%\",\r\n },\r\n [theme.breakpoints.down(\"md\")]: {\r\n width: \"100%\",\r\n },\r\n },\r\n smartLineUpRight: {\r\n [theme.breakpoints.up(\"lg\")]: {\r\n float: \"left\",\r\n width: \"40%\",\r\n },\r\n [theme.breakpoints.down(\"md\")]: {\r\n width: \"100%\",\r\n marginBottom: \"20px\",\r\n },\r\n },\r\n subTitleText: {\r\n marginTop: theme.spacing(2),\r\n marginBottom: theme.spacing(2),\r\n color: theme.palette.primary.main,\r\n fontWeight: 600,\r\n },\r\n rightContentCell: {\r\n width: \"100%\",\r\n },\r\n formControl: {\r\n width: \"100%\",\r\n },\r\n date: {\r\n \"& > span\": {\r\n width: \"100%\",\r\n },\r\n },\r\n tableTd: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2),\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n },\r\n delete_button: {\r\n backgroundColor: theme.palette.error.main,\r\n color: \"#ffffff\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n paperReception: {\r\n overflowY: \"auto\",\r\n padding: \"0px 20px 0px 20px\",\r\n marginTop: \"30px\",\r\n },\r\n}));\r\n\r\nexport default function InformationRegister(props) {\r\n const unmountRef = useUnmountRef();\r\n const [errorMessage, setErrorMessage] = useSafeState(unmountRef, \"\");\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n //お知らせ情報格納\r\n const [informationContent, setInformationContent] = useSafeState(\r\n unmountRef,\r\n null\r\n );\r\n //権限情報格納\r\n const [isMypage, setIsMypage] = useSafeState(unmountRef, false);\r\n const [hospitalId, setHospitalId] = useSafeState(unmountRef, 0);\r\n\r\n const selectedId = new URLSearchParams(props.location.search).toString();\r\n const [action, setAction] = useSafeState(unmountRef, false);\r\n\r\n const { history, location, match } = useReactRouter();\r\n const { setValidationErrorsForaxios } = useErrorMessageProvider();\r\n const [openDeleteDialog, setOpenDeleteDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n const [readingHospital, setReadingHospital] = useSafeState(unmountRef, null);\r\n const userctx = useContext(UserContext);\r\n var object = {};\r\n\r\n //入力チェックのスキーマ定義\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n text: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n informationDate: yup\r\n .date()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.date)),\r\n showBgnDate: yup\r\n .date()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.date)),\r\n showBgnTime: yup\r\n .date()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.time)),\r\n showEndDate: yup\r\n .date()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.date)),\r\n showEndTime: yup\r\n .date()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.time)),\r\n showOrder: yup\r\n .number()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .typeError(GetErrMsg(ErrMsgKey.number)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n\r\n //react-hooks-form\r\n const { register, handleSubmit, errors, setError, setValue, clearErrors } =\r\n useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n async function GetInformation() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .get(\"api/Information/register/?\" + selectedId + \"&isAllSelect=true\", {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setErrorMessage(json.message);\r\n } else {\r\n setInformationContent(json.data);\r\n json.data.isMypage && setIsMypage(json.data.isMypage);\r\n json.data.hospitalId && setHospitalId(json.data.hospitalId);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"getItem error\", error);\r\n });\r\n }\r\n\r\n async function GetHospital() {\r\n let isSuccess = false;\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .get(\"api/hospitals/reading\", {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (json) {\r\n if (!isSuccess) {\r\n setErrorMessage(json.message);\r\n } else {\r\n setReadingHospital(json.data);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"test\");\r\n });\r\n }\r\n\r\n async function onSubmit(values) {\r\n //IEではFormDataが使えないためobjectに収納する\r\n for (var key in values) {\r\n if (key === \"showBgnTime\" || key === \"showEndTime\") {\r\n //object[key] = new Date(values[key]).toLocaleTimeString();\r\n //IEでは上記のtolocalが使用困難なため下記で代用\r\n object[key] =\r\n new Date(values[key]).getHours() +\r\n \":\" +\r\n new Date(values[key]).getMinutes();\r\n } else object[key] = values[key];\r\n }\r\n\r\n //SELECTの病院ID, 表示先がなぜかvaluesに入らないのでこのようにする\r\n object[\"isMypage\"] = isMypage;\r\n object[\"hospitalId\"] = hospitalId == 0 ? \"\" : hospitalId;\r\n object[\"isAdmin\"] = true;\r\n\r\n const token = await authService.getAccessToken();\r\n\r\n await axios\r\n .post(\"api/Information\", object, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n history.push(\"../InformationList\");\r\n }\r\n return response;\r\n })\r\n .catch(function (error) {\r\n if (error.response.status == 400) {\r\n setValidationErrorsForaxios(error, setError);\r\n } else {\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: GetErrMsg(ErrMsgKey.unexpected),\r\n });\r\n }\r\n });\r\n }\r\n\r\n async function onUpdate(values) {\r\n //var object = FormDataToJson('role-form');\r\n //IEではFormDataが使えないためobjectに収納する\r\n for (var key in values) {\r\n if (key === \"showBgnTime\" || key === \"showEndTime\")\r\n //object[key] = new Date(values[key]).toLocaleTimeString();\r\n //IEでは上記のtolocalが使用困難なため下記で代用\r\n object[key] =\r\n new Date(values[key]).getHours() +\r\n \":\" +\r\n new Date(values[key]).getMinutes();\r\n else if (\r\n key === \"showBgnDate\" ||\r\n key === \"showEndDate\" ||\r\n key === \"informationDate\"\r\n )\r\n object[key] = dayjs(values[key]).format(\"YYYY-MM-DD HH:mm:ss\");\r\n else object[key] = values[key];\r\n }\r\n //SELECTの病院ID, 表示先がなぜかvaluesに入らないのでこのようにする\r\n object[\"isMypage\"] = isMypage;\r\n\r\n object[\"hospitalId\"] = hospitalId == 0 ? \"\" : hospitalId;\r\n object[\"isAdmin\"] = true;\r\n\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .put(\"api/Information?\" + selectedId, object, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n //alert(\"作成しました\");\r\n history.push(\"./InformationList\");\r\n }\r\n return response;\r\n })\r\n .catch(function (error) {\r\n if (error.response.status == 400) {\r\n setValidationErrorsForaxios(error, setError);\r\n } else alert(\"エラー\");\r\n });\r\n }\r\n\r\n async function onDelete() {\r\n const token = await authService.getAccessToken();\r\n await axios\r\n .delete(\"api/Information?\" + selectedId, {\r\n headers: !token ? {} : { Authorization: `Bearer ${token}` },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n //alert(\"作成しました\");\r\n history.push(\"./InformationList\");\r\n }\r\n return response;\r\n })\r\n .catch(function (error) {\r\n if (error.response.status == 400) alert(\"削除されませんでした\");\r\n else alert(\"エラー\");\r\n });\r\n }\r\n\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n\r\n const handleDisplayChange = (event) => {\r\n setIsMypage(event.target.value);\r\n };\r\n\r\n const handleHospitalChange = (event) => {\r\n setHospitalId(event.target.value);\r\n };\r\n\r\n const button1Text = () => {\r\n return (\r\n <>\r\n 登録\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n GetInformation();\r\n GetHospital();\r\n }, []);\r\n\r\n const handleDialogClose = () => {\r\n setOpenDeleteDialog(false);\r\n };\r\n\r\n const handleDialogOpen = () => {\r\n setOpenDeleteDialog(true);\r\n };\r\n\r\n return (\r\n
\r\n onDelete()}\r\n open={openDeleteDialog}\r\n handleClose={handleDialogClose}\r\n message={\"指定のお知らせを削除します\"}\r\n />\r\n \r\n \r\n \r\n {informationContent && (\r\n \r\n )}\r\n \r\n {/*スマホ表示の時はタイトル(左側セル)を消そうか*/}\r\n {informationContent && (\r\n \r\n \r\n \r\n {readingHospital && readingHospital.length > 0 && (\r\n \r\n \r\n \r\n 病院\r\n \r\n  すべて\r\n {readingHospital.map((hospital) => {\r\n return (\r\n \r\n  {hospital.name}\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\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 (!informationContent.isEdit) {\r\n return (\r\n \r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n handleDialogOpen()}\r\n fullWidth\r\n variant=\"contained\"\r\n className1={classes.buttonRadius}\r\n className2={clsx(\r\n classes.buttonRadius,\r\n classes.delete_button\r\n )}\r\n className3={classes.buttonRadius}\r\n isPaperInner={true}\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 * @file システム管理系の画面のルーティングを提供します\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport { Button, Container, Toolbar, useTheme } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n AssignmentInd,\r\n Event,\r\n ExitToApp,\r\n Home,\r\n LocalHospital,\r\n People,\r\n Notifications,\r\n} from \"@material-ui/icons\";\r\nimport ContactMailIcon from \"@material-ui/icons/ContactMail\";\r\nimport {\r\n ApplicationPaths,\r\n Claims,\r\n} from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport AuthorizeRoute from \"components/api-authorization/AuthorizeRoute\";\r\nimport ClaimAuthorizeRoute from \"components/api-authorization/ClaimAuthorizeRoute\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport { LayoutContext } from \"pages/Layout\";\r\nimport ClippedDrawer from \"components/drawer/ClipedDrawer\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport ContactList from \"pages/admin/ContactList\";\r\nimport Index from \"pages/admin/Index\";\r\nimport RoleClaimsEdit from \"pages/admin/RoleClaimsEdit\";\r\nimport RoleEdit from \"pages/admin/RoleEdit\";\r\nimport Roles from \"pages/admin/Roles\";\r\nimport UserClaimsEdit from \"pages/admin/UserClaimsEdit\";\r\nimport UserEdit from \"pages/admin/UserEdit\";\r\nimport Users from \"pages/admin/Users\";\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport { Link, Switch } from \"react-router-dom\";\r\nimport Hospitals from \"pages/admin/hospital/Hospitals\";\r\nimport HospitalDepts from \"pages/admin/hospitalDept/HospitalDepts\";\r\nimport HospitalDeptEdit from \"pages/admin/hospitalDept/HospitalDeptEdit\";\r\nimport Doctors from \"pages/admin/doctor/Doctors\";\r\nimport DoctorEdit from \"pages/admin/doctor/DoctorEdit\";\r\nimport TimeTableEdit from \"pages/admin/timeTableDetail/TimeTableEdit\";\r\nimport HospitalCalendar from \"pages/admin/hospitalCalendar/HospitalCalendar\";\r\nimport Rest from \"pages/admin/rest/Rest\";\r\nimport ManageRoute from \"pages/manage/ManageRoute\";\r\nimport Information from \"pages/admin/information/InformationList\";\r\nimport InformationRegister from \"pages/admin/information/InformationRegister\";\r\nimport PasswordEdit from \"pages/manage/account/PasswordEdit\";\r\nimport { Register } from \"pages/register/Register\";\r\nimport CheckRevisionComponent from \"components/common/CheckRevisionComponent\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport HospitalEditSep from \"./hospital/hospitalEdit/HospitalEditSep\";\r\n\r\nexport function Admin(props) {\r\n const unmountRef = useUnmountRef();\r\n const layoutCtx = useContext(LayoutContext);\r\n\r\n const [listItems, setlistItems] = useSafeState(unmountRef, []);\r\n const [bottomListItems, setBottomListItems] = useSafeState(unmountRef, []);\r\n const userctx = useContext(UserContext);\r\n // AdminMenuを取得\r\n async function GetAdminMenu() {\r\n var list = [];\r\n var bottomList = [];\r\n list.push({\r\n primaryText: \"管理画面\",\r\n secondaryText: \"\",\r\n key: \"Manage\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: \"/manage/\",\r\n });\r\n userctx.claims &&\r\n userctx.hasClaim(Claims.User_Read) &&\r\n list.push({\r\n primaryText: \"ユーザー管理\",\r\n secondaryText: \"\",\r\n key: \"ユーザー管理\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: \"/admin/users/index\",\r\n });\r\n userctx.claims &&\r\n userctx.hasClaim(Claims.Roles_Read) &&\r\n list.push({\r\n primaryText: \"役割管理\",\r\n secondaryText: \"\",\r\n key: \"役割管理\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: \"/admin/roles/index\",\r\n });\r\n userctx.claims &&\r\n userctx.hasClaim(Claims.Hospital_Read) &&\r\n list.push({\r\n primaryText: \"医療機関管理\",\r\n secondaryText: \"\",\r\n key: \"医療機関管理\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: \"/admin/hospitals/index\",\r\n });\r\n userctx.claims &&\r\n userctx.hasClaim(Claims.Edit_Common_Calendar) &&\r\n list.push({\r\n primaryText: \"共通カレンダー編集\",\r\n secondaryText: \"\",\r\n key: \"共通カレンダー編集\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: \"/admin/hospitalcalendar/index?hospitalid=\",\r\n });\r\n userctx.claims &&\r\n userctx.hasClaim(Claims.AllInformation_Read) &&\r\n list.push({\r\n primaryText: \"管理者用お知らせ\",\r\n secondaryText: \"\",\r\n key: \"管理者用お知らせ\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: \"/admin/information/informationList\",\r\n });\r\n userctx.claims &&\r\n userctx.hasClaim(Claims.ContactList_Read) &&\r\n list.push({\r\n primaryText: \"問合せ一覧\",\r\n secondaryText: \"\",\r\n key: \"問合せ一覧\",\r\n icon: ,\r\n iconColor: iconColor,\r\n iconBgColor: iconBgColor,\r\n component: Link,\r\n to: \"/admin/contact-list/index\",\r\n });\r\n // bottomList.push({\r\n // primaryText: \"ログアウト\",\r\n // secondaryText: \"\",\r\n // key: \"ログアウト\",\r\n // icon: ,\r\n // iconColor: iconColor,\r\n // iconBgColor: iconBgColor,\r\n // component: Link,\r\n // to: logoutPath,\r\n // });\r\n\r\n setlistItems(list);\r\n setBottomListItems(bottomList);\r\n }\r\n\r\n useEffect(() => {\r\n layoutCtx.setIsMypage(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userctx.claims) {\r\n GetAdminMenu();\r\n }\r\n }, [userctx.claims]);\r\n\r\n const theme = useTheme();\r\n const iconColor = \"white\";\r\n const iconBgColor = theme.palette.primary.main;\r\n return (\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 withStyles(commonStyle)(Admin);\r\n","/**\r\n * @file パスワードを忘れた方へ画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect, useCallback, useContext } from \"react\";\r\nimport {\r\n Button,\r\n Container,\r\n Grid,\r\n Typography,\r\n TextField,\r\n Toolbar,\r\n Paper,\r\n} from \"@material-ui/core\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport {\r\n ErrMsgKey,\r\n GetErrMsg,\r\n ErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport * as yup from \"yup\";\r\nimport axios from \"axios\";\r\nimport { FormDataToJson } from \"components/common/FormHelper\";\r\nimport { LayoutContext } from \"pages/Layout\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport LockIcon from '@material-ui/icons/Lock';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n textField: {\r\n width:\"220px\",\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n },\r\n}));\r\nexport default function ForgotPassword(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n const { setValidationErrorsForaxios } = useErrorMessageProvider();\r\n\r\n const layoutCtx = useContext(LayoutContext);\r\n layoutCtx.setIsMypage(false);\r\n //入力チェックのスキーマ定義\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n id: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n\r\n //react-hooks-form\r\n const {\r\n register,\r\n handleSubmit,\r\n watch,\r\n errors,\r\n setError,\r\n setValue,\r\n getValues,\r\n clearErrors,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n useEffect(() => {\r\n //ここに通常更新時のロジックを書く\r\n return function cleanup() {\r\n //ここにはUnmount時のロジックを書く\r\n };\r\n });\r\n\r\n // submit時処理\r\n const onSubmit = useCallback(async function onSubmit() {\r\n const values = FormDataToJson(\"forgot-form\");\r\n await axios\r\n .post(\"api/forgotpassword\", values)\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n props.history.push(\"/auth/forgot-confirm\");\r\n }\r\n return response;\r\n })\r\n .catch(function (error) {\r\n if (error.response.status == 400)\r\n setValidationErrorsForaxios(error, setError);\r\n else\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: GetErrMsg(ErrMsgKey.unexpected),\r\n });\r\n });\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 \r\n \r\n \r\n パスワードを忘れた方\r\n \r\n IDを入力してください\r\n \r\n {/* TODO EmailInputに変更する */}\r\n \r\n \r\n {\r\n clearErrors();\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 * @file パスワード再設定画面\r\n */\r\n import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect, useCallback, useContext } from \"react\";\r\nimport {\r\n Button,\r\n Container,\r\n Grid,\r\n Typography,\r\n TextField,\r\n Toolbar,\r\n Paper,\r\n Box,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport {\r\n ErrMsgKey,\r\n GetErrMsg,\r\n ErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport * as yup from \"yup\";\r\nimport axios from \"axios\";\r\nimport { FormDataToJson } from \"components/common/FormHelper\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport { LayoutContext } from \"pages/Layout\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport EnhancedEncryptionIcon from '@material-ui/icons/EnhancedEncryption';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n textField: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n}));\r\nexport default function ResetPassword(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n const [token, setToken] = useSafeState(unmountRef, \"\");\r\n const [isSnackbarOpen, setIsSnackbarOpen] = useSafeState(unmountRef, false);\r\n const { setValidationErrorsForaxios } = useErrorMessageProvider();\r\n\r\n const layoutCtx = useContext(LayoutContext);\r\n layoutCtx.setIsMypage(false);\r\n\r\n //入力チェックのスキーマ定義\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n id: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n password: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n confirmPassword: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n\r\n //react-hooks-form\r\n const {\r\n register,\r\n handleSubmit,\r\n watch,\r\n errors,\r\n setError,\r\n setValue,\r\n getValues,\r\n clearErrors,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n useEffect(() => {\r\n const params = new URLSearchParams(props.location.search);\r\n setToken(params.get(\"code\")); //トークンをhiddenに埋め込む\r\n });\r\n\r\n // submit時処理\r\n const onSubmit = useCallback(async function onSubmit() {\r\n var values = FormDataToJson(\"reset-form\");\r\n await axios\r\n .put(\"api/forgotpassword\", values)\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n setIsSnackbarOpen(true);\r\n setTimeout(function () {\r\n props.history.push(\"/login\");\r\n }, 3000); //3秒スリープ後リダイレクト\r\n }\r\n return response;\r\n })\r\n .catch(function (error) {\r\n if (error.response.status == 400)\r\n setValidationErrorsForaxios(error, setError);\r\n else {\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: GetErrMsg(ErrMsgKey.unexpected),\r\n });\r\n }\r\n });\r\n });\r\n\r\n const boxSpacing = 1;\r\n return (\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 {/* TODO EmailInputに変更する */}\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 clearErrors();\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 * @file パスワードを忘れた方へ、メール送信しました画面\r\n */\r\n import React, { useEffect, useContext } from \"react\";\r\nimport {\r\n Button,\r\n Container,\r\n Grid,\r\n Typography,\r\n TextField,\r\n Toolbar,\r\n Paper,\r\n} from \"@material-ui/core\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { makeStyles, withStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport { LayoutContext } from \"pages/Layout\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst useStyles = makeStyles((theme) => ({}));\r\nexport default function ForgotConfirm(props) {\r\n const layoutCtx = useContext(LayoutContext);\r\n layoutCtx.setIsMypage(false);\r\n return (\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","import { reservationPath, sessionStorageKeys } from \"./Const\";\r\nimport { ApiHospitalScreensGet } from \"components/api/HospitalScreensApi\";\r\nimport { ApiHospitalDeptScreensGet } from \"components/api/HospitalDeptScreensApi\";\r\n\r\nexport function RemoveEntryDefaultValues(isForce) {\r\n var jsnoValues = sessionStorage.getItem(\r\n sessionStorageKeys.EntryDefaultValues\r\n );\r\n // console.log(jsnoValues);\r\n if (!jsnoValues) return;\r\n var values = JSON.parse(jsnoValues);\r\n\r\n if (\r\n (values.persons && values.persons[0].isFollowUp !== true) ||\r\n isForce === true\r\n )\r\n //再診予約の場合は消さない(isForceで消す)\r\n sessionStorage.removeItem(sessionStorageKeys.EntryDefaultValues);\r\n}\r\n\r\n/**\r\n * セッションストレージのPreConfirmSelectValueに値を保持します。\r\n * @param {Object} hid - 医療機関ID\r\n * @param {Object} sid - 事前画面ID\r\n * @param {String} val - 設定する値\r\n * @param {String} did - 予約項目ID\r\n */\r\nexport function AddPreConfirmSelectValue(hid, sid, val, did) {\r\n // 事前選択画面の選択した値を保持しておく。\r\n var preConfirmSelectValue =\r\n sessionStorage[sessionStorageKeys.PreConfirmSelectValue];\r\n var key = `${hid}-${sid}`;\r\n if (did) key = `${hid}-${did}-${sid}`;\r\n if (preConfirmSelectValue) {\r\n // すでに値を保持している場合\r\n var preValue = JSON.parse(preConfirmSelectValue);\r\n preValue[key] = val;\r\n sessionStorage[sessionStorageKeys.PreConfirmSelectValue] =\r\n JSON.stringify(preValue);\r\n } else {\r\n // 初回の場合\r\n let test = {};\r\n test[key] = val;\r\n sessionStorage[sessionStorageKeys.PreConfirmSelectValue] =\r\n JSON.stringify(test);\r\n }\r\n}\r\n\r\n/**\r\n * セッションストレージのPreConfirmSelectValueとMstHospitalScreensを比較し、\r\n * セッションに存在しないものがある場合falseを返す。\r\n * valueFunctionがある場合は実行のみする。\r\n * @param {Object} hid - 医療機関ID\r\n * @param {String} did - 予約項目ID\r\n */\r\nasync function CheckPreConfirmSelectValue(hid, did) {\r\n let isSuccess = false;\r\n const data = await ApiHospitalScreensGet(hid)\r\n .then(function (response) {\r\n if (response.status === 200) isSuccess = true;\r\n return response;\r\n })\r\n .then(function (response) {\r\n if (!isSuccess) {\r\n // 200以外の場合\r\n } else {\r\n return response.data;\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"CheckPreConfirmSelectValue error\", error);\r\n });\r\n\r\n let isOk = true;\r\n let preConfirmSelectValue =\r\n sessionStorage[sessionStorageKeys.PreConfirmSelectValue];\r\n // 事前画面がある場合\r\n if (data && data.length !== 0) {\r\n // 事前画面があって、セッションに選択値がない場合は、FALSE\r\n if (!preConfirmSelectValue) return false;\r\n\r\n var preValue = JSON.parse(preConfirmSelectValue);\r\n\r\n data.map((item, index) => {\r\n var key = `${item.mhsHospitalId}-${item.mhsId}`;\r\n var value = preValue[key];\r\n\r\n if (!value) isOk = false;\r\n });\r\n }\r\n\r\n if (did) {\r\n // 予約項目がある場合は、予約項目の事前選択画面もチェックする\r\n const destScreens = await ApiHospitalDeptScreensGet(hid, did)\r\n .then(function (response) {\r\n if (response.status === 200) isSuccess = true;\r\n return response;\r\n })\r\n .then(function (response) {\r\n if (!isSuccess) {\r\n // 200以外の場合\r\n } else {\r\n return response.data;\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"CheckPreConfirmSelectValue deptGet error\", error);\r\n });\r\n\r\n // 事前画面がある場合\r\n if (destScreens.length !== 0) {\r\n // 事前画面があって、セッションに選択値がない場合は、FALSE\r\n if (!preConfirmSelectValue) return false;\r\n\r\n var preValue = JSON.parse(preConfirmSelectValue);\r\n\r\n destScreens.map((item, index) => {\r\n var key = `${item.mhdHospitalId}-${item.mhdDeptId}-${item.mhdShowOrder}`;\r\n var value = preValue[key];\r\n\r\n if (!value) isOk = false;\r\n });\r\n }\r\n }\r\n\r\n return isOk;\r\n}\r\n\r\n/**\r\n * セッションストレージのPreConfirmSelectValueとMstHospitalScreensを比較し、\r\n * セッションに存在しないものがある場合事前画面の頭に移動する。\r\n * valueFunctionがある場合は実行のみする。\r\n * @param {Object} history - useReactRooter\r\n * @param {Object} hid - 医療機関ID\r\n * @param {String} did - 予約項目ID\r\n */\r\nexport function CheckPreConfirmEntry(history, hid, did) {\r\n let fn = async () => {\r\n var isOk = await CheckPreConfirmSelectValue(hid, did);\r\n if (!isOk) {\r\n history.push(`/${hid}${reservationPath}sc/0`);\r\n }\r\n return isOk;\r\n };\r\n return fn();\r\n}\r\n","/**\r\n * @file 予約状況画面 (空き状況の画面)\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, {\r\n Fragment,\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useRef,\r\n} from \"react\";\r\nimport {\r\n Slide,\r\n Grid,\r\n Button,\r\n Toolbar,\r\n Container,\r\n Box,\r\n Hidden,\r\n Typography,\r\n useMediaQuery,\r\n FormControlLabel,\r\n Switch,\r\n} from \"@material-ui/core/\";\r\nimport { fade, makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { ArrowBack, ChevronLeft, ChevronRight } from \"@material-ui/icons\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\nimport \"date-fns\";\r\nimport KeybordDatePickerJp from \"components/input/textbox/KeybordDatePickerJp\";\r\nimport { ApiGetHospital } from \"components/api/HospitalApi\";\r\n\r\nimport ReservationTable from \"components/table/ReservationTable\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport {\r\n CheckPreConfirmEntry,\r\n RemoveEntryDefaultValues,\r\n} from \"components/common/SessionStorageController\";\r\nimport { InformationReserveMain } from \"components/table/InformationCommonTable\";\r\nimport { DeleteHoliday, PostHoliday } from \"components/api/HolidayApi\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport { Claims } from \"components/api-authorization/ApiAuthorizationConstants\";\r\nimport { PhoneCallDialog } from \"components/dialog/PhoneCallDialog\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { sessionStorageKeys } from \"components/common/Const\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport MonthCalendar from \"components/calendar/MonthCalendar\";\r\nimport { ReserveContext } from \"pages/reservation/ReserveRoute\";\r\nimport { format } from \"date-fns\";\r\n\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport \"swiper/swiper.scss\";\r\nimport \"swiper/components/navigation/navigation.scss\";\r\nimport \"swiper/components/pagination/pagination.scss\";\r\nimport \"swiper/components/scrollbar/scrollbar.scss\";\r\nimport { WhiteSpaseBreakToBr } from \"components/common/Formatter\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n arrow: {\r\n width: \"30px\",\r\n height: \"100px\",\r\n padding: 0,\r\n minWidth: \"auto\",\r\n },\r\n InformationTable: {\r\n paddingTop: theme.spacing(2),\r\n paddingBottom: theme.spacing(2),\r\n },\r\n noPaddingSmDown: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: 0,\r\n },\r\n },\r\n}));\r\n\r\n//予約空き状況ページ\r\nexport default function ReserveMain(props) {\r\n const unmountRef = useUnmountRef();\r\n let classes = useStyles();\r\n let theme = useTheme();\r\n const hid = props.match.params.hid;\r\n const did = props.match.params.did;\r\n // メッセージコンテキスト\r\n const msgctx = useContext(MessageContext);\r\n const userctx = useContext(UserContext);\r\n const rsrvCtx = useContext(ReserveContext);\r\n const isStaff = userctx.user && userctx.user.hospitalId === hid;\r\n\r\n const [showBeginDate, setShowBeginDate] = useSafeState(\r\n unmountRef,\r\n props.location.state && props.location.state.date\r\n ? new Date(props.location.state.date)\r\n : new Date()\r\n );\r\n const [hospital, setHospital] = useSafeState(unmountRef);\r\n const [showDays, setShowDays] = useSafeState(unmountRef, 0);\r\n const isSizeXs = useMediaQuery(theme.breakpoints.down(\"xs\"));\r\n const [isOpenOverTimeDialog, setIsOpenOverTimeDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n\r\n const [dispMonth, setDispMonth] = useSafeState(unmountRef, false);\r\n\r\n // 予約状況表のリフレッシュ\r\n const [reflesh, setReflesh] = useSafeState(unmountRef, false);\r\n const [isReserveStop, setIsReserveStop] = useSafeState(unmountRef, false);\r\n const refIsReserveStop = useRef(); //最新のstateを読み出す用のref;\r\n refIsReserveStop.current = isReserveStop;\r\n const { history } = useReactRouter();\r\n const [dispOk, setDispOk] = useSafeState(unmountRef);\r\n const [swiperInstance, setSwiperInstance] = useSafeState(unmountRef);\r\n\r\n async function GetHospital(hid) {\r\n await ApiGetHospital(hid)\r\n .then(function (response) {\r\n setHospital(response[0]);\r\n })\r\n .catch(function (error) {});\r\n }\r\n\r\n useEffect(() => {\r\n RemoveEntryDefaultValues(); //予約入力画面に入力された内容を消去する\r\n // deptがなければ取っておく\r\n if (!rsrvCtx.dept || !rsrvCtx.dept.id !== did) rsrvCtx.refreshDept(did);\r\n\r\n var values = sessionStorage.getItem(sessionStorageKeys.EntryDefaultValues);\r\n if (values && JSON.parse(values).persons[0].isFollowUp === true) {\r\n //再診予約の場合は表示する\r\n setDispOk(true);\r\n }\r\n // 事前画面を経由してきているかをセッションストレージとDBを比較して検証\r\n else {\r\n CheckPreConfirmEntry(history, hid, did).then((ret) => {\r\n setDispOk(ret);\r\n });\r\n }\r\n\r\n GetHospital(hid);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (rsrvCtx.dept) setDispMonth(rsrvCtx.dept.isUseMonthCalendar);\r\n }, [rsrvCtx.dept]);\r\n\r\n const handleDateChange = (name, date) => {\r\n setShowBeginDate(new Date(date));\r\n setReflesh(!reflesh);\r\n };\r\n const handleArrowClick = useCallback((days) => {\r\n const dt = new Date(showBeginDate);\r\n dt.setDate(dt.getDate() + days);\r\n setShowBeginDate(dt);\r\n setReflesh(!reflesh);\r\n });\r\n\r\n const handleShowDaysChange = useCallback((days) => {\r\n setShowDays(days);\r\n });\r\n\r\n /**\r\n * 空きボタン(〇ボタン)クリック時の処理\r\n * @param {*} dept\r\n * @param {*} reserveInfo\r\n */\r\n async function handleButtonClick(dept, reserveInfo) {\r\n if (refIsReserveStop.current === true) {\r\n // 中止登録API\r\n await postHoliday(dept, reserveInfo);\r\n } else {\r\n props.history.push({\r\n pathname: `/${hospital.id}/r/e/`,\r\n state: {\r\n hospital: hospital,\r\n dept: dept,\r\n reserveInfo: reserveInfo,\r\n },\r\n });\r\n }\r\n }\r\n\r\n async function postHoliday(dept, reserveInfo) {\r\n var result = await PostHoliday(\r\n hid,\r\n dept ? dept.id : 0,\r\n reserveInfo.targetDate,\r\n reserveInfo.targetDate,\r\n reserveInfo.timeTableDetailId,\r\n 2\r\n );\r\n\r\n if (!result) {\r\n msgctx.enqueue(\"予約不可設定を反映できませんでした\", \"error\");\r\n } else {\r\n msgctx.enqueue(\"予約不可設定を反映しました\", \"success\");\r\n setReflesh(!reflesh);\r\n }\r\n }\r\n\r\n /**\r\n * 空き無しボタン(×ボタン)クリック時の処理\r\n */\r\n async function handleCloseButtonClick(dept, reserveInfo) {\r\n if (refIsReserveStop.current === true) {\r\n // 中止登録API\r\n await postHoliday(dept, reserveInfo);\r\n } else {\r\n if (hospital.isIgnoreLimitOnReserveMain && isStaff)\r\n props.history.push({\r\n pathname: `/${hospital.id}/r/e/`,\r\n state: {\r\n hospital: hospital,\r\n dept: dept,\r\n reserveInfo: reserveInfo,\r\n },\r\n });\r\n }\r\n }\r\n\r\n async function handleStopButtonClick(dept, reserveInfo) {\r\n if (refIsReserveStop.current === true) {\r\n // 中止登録API\r\n var result = await DeleteHoliday(null, reserveInfo.holIdTimeTable, true);\r\n if (!result) {\r\n msgctx.enqueue(\"予約不可設定を解除できませんでした\", \"error\");\r\n } else {\r\n msgctx.enqueue(\"予約不可設定を解除しました\", \"success\");\r\n setReflesh(!reflesh);\r\n }\r\n } else {\r\n if (isStaff) handleButtonClick(dept, reserveInfo);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {dispOk && (\r\n <>\r\n \r\n \r\n {\r\n setIsOpenOverTimeDialog(false);\r\n }}\r\n phoneNumber={hospital ? hospital.tel : \"\"}\r\n title=\"予約時間を超えています\"\r\n content=\"既に診察が始まっています。お電話でご確認ください。\"\r\n />\r\n \r\n {hospital && hospital.name && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {hospital ? (\r\n \r\n \r\n {WhiteSpaseBreakToBr(\r\n \"address\",\r\n hospital.prefName + hospital.cityName\r\n )}\r\n \r\n {hospital.name}\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 {rsrvCtx.dept && rsrvCtx.dept.name && (\r\n \r\n {rsrvCtx.dept && rsrvCtx.dept.name}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {dispMonth ? (\r\n \r\n {format(showBeginDate, \"y年M月\")}\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 {hospital &&\r\n userctx.hasClaim(Claims.Holiday_Create) &&\r\n isStaff &&\r\n !dispMonth ? (\r\n setIsReserveStop(!isReserveStop)}\r\n name=\"reserveStop\"\r\n />\r\n }\r\n label={\r\n \r\n {isReserveStop ? \"予約不可登録中\" : \"予約不可登録\"}\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 {rsrvCtx.dept && rsrvCtx.dept.name && (\r\n \r\n \r\n \r\n \r\n {rsrvCtx.dept &&\r\n rsrvCtx.dept.isUseMonthCalendar &&\r\n !dispMonth && (\r\n {\r\n setDispMonth(true);\r\n // swiperInstance.slideTo(0, 300, true);\r\n }}\r\n >\r\n \r\n  戻る\r\n \r\n )}\r\n \r\n \r\n \r\n {rsrvCtx.dept ? rsrvCtx.dept.name : \"\"}\r\n \r\n \r\n \r\n {hospital &&\r\n userctx.hasClaim(Claims.Holiday_Create) &&\r\n isStaff &&\r\n !dispMonth && (\r\n \r\n setIsReserveStop(!isReserveStop)\r\n }\r\n name=\"reserveStop\"\r\n />\r\n }\r\n label={\r\n \r\n {isReserveStop\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 setDispMonth(false);\r\n console.log(swiperInstance);\r\n // swiperInstance.slideTo(1, 300, true);\r\n setShowBeginDate(date);\r\n setReflesh(!reflesh);\r\n }}\r\n hid={hid}\r\n did={did}\r\n targetDate={showBeginDate}\r\n setTargetDate={setShowBeginDate}\r\n isShowDashboard={false}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n <>\r\n \r\n <>\r\n \r\n {\r\n handleArrowClick(showDays * -1);\r\n }}\r\n style={{\r\n height: \"100%\",\r\n marginRight: theme.spacing(1),\r\n }}\r\n >\r\n 前へ\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n handleArrowClick(showDays);\r\n }}\r\n style={{\r\n height: \"100%\",\r\n marginLeft: theme.spacing(1),\r\n }}\r\n >\r\n 次へ \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {rsrvCtx.dept && rsrvCtx.dept.isUseMonthCalendar && (\r\n {\r\n setDispMonth(true);\r\n // swiperInstance.slideTo(0, 300, true);\r\n }}\r\n size=\"small\"\r\n // style={{ width: \"100%\" }}\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 handleArrowClick(showDays * -1);\r\n }}\r\n color=\"primary\"\r\n >\r\n \r\n 前へ\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setIsOpenOverTimeDialog(true)}\r\n onClickClose={handleCloseButtonClick}\r\n onClickStop={handleStopButtonClick}\r\n dispFlg={1}\r\n // maxWidth=\"md\"\r\n style={{\r\n marginBottom: theme.spacing(2),\r\n textAlign: \"center\",\r\n padding: \"0px\",\r\n }}\r\n reflesh={reflesh}\r\n setReflesh={setReflesh}\r\n onShowDaysChange={handleShowDaysChange}\r\n onClickReturnMonth={\r\n rsrvCtx.dept &&\r\n rsrvCtx.dept.isUseMonthCalendar &&\r\n (() => {\r\n setDispMonth(true);\r\n // swiperInstance.slideTo(0, 300, true);\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n {\r\n handleArrowClick(showDays);\r\n }}\r\n color=\"primary\"\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 {/* {rsrvCtx.dept && rsrvCtx.dept.isUseMonthCalendar && (\r\n \r\n {\r\n setDispMonth(false);\r\n console.log(swiperInstance);\r\n // swiperInstance.slideTo(1, 300, true);\r\n setShowBeginDate(date);\r\n setReflesh(!reflesh);\r\n }}\r\n hid={hid}\r\n did={did}\r\n targetDate={showBeginDate}\r\n setTargetDate={setShowBeginDate}\r\n isShowDashboard={false}\r\n >\r\n \r\n )}\r\n
\r\n \r\n <>\r\n \r\n <>\r\n \r\n {\r\n handleArrowClick(showDays * -1);\r\n }}\r\n style={{\r\n height: \"100%\",\r\n marginRight: theme.spacing(1),\r\n }}\r\n >\r\n 前へ\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n handleArrowClick(showDays);\r\n }}\r\n style={{\r\n height: \"100%\",\r\n marginLeft: theme.spacing(1),\r\n }}\r\n >\r\n 次へ \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {rsrvCtx.dept && rsrvCtx.dept.isUseMonthCalendar && (\r\n {\r\n setDispMonth(true);\r\n // swiperInstance.slideTo(0, 300, true);\r\n }}\r\n size=\"small\"\r\n // style={{ width: \"100%\" }}\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 handleArrowClick(showDays * -1);\r\n }}\r\n color=\"primary\"\r\n >\r\n \r\n 前へ\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setIsOpenOverTimeDialog(true)}\r\n onClickClose={handleCloseButtonClick}\r\n onClickStop={handleStopButtonClick}\r\n dispFlg={1}\r\n // maxWidth=\"md\"\r\n style={{\r\n marginBottom: theme.spacing(2),\r\n textAlign: \"center\",\r\n padding: \"0px\",\r\n }}\r\n reflesh={reflesh}\r\n setReflesh={setReflesh}\r\n onShowDaysChange={handleShowDaysChange}\r\n onClickReturnMonth={\r\n rsrvCtx.dept &&\r\n rsrvCtx.dept.isUseMonthCalendar &&\r\n (() => {\r\n setDispMonth(true);\r\n // swiperInstance.slideTo(0, 300, true);\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n {\r\n handleArrowClick(showDays);\r\n }}\r\n color=\"primary\"\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 setSwiperInstance(swiper);\r\n }}\r\n autoHeight\r\n pagination={{ clickable: true }}\r\n style={{ width: \"100%\" }}\r\n >\r\n {rsrvCtx.dept && rsrvCtx.dept.isUseMonthCalendar && (\r\n\r\n\r\n\r\n \r\n \r\n {\r\n setDispMonth(false);\r\n console.log(swiperInstance);\r\n swiperInstance.slideTo(1, 300, true);\r\n setShowBeginDate(date);\r\n setReflesh(!reflesh);\r\n }}\r\n hid={hid}\r\n did={did}\r\n targetDate={showBeginDate}\r\n setTargetDate={setShowBeginDate}\r\n isShowDashboard={false}\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 handleArrowClick(showDays * -1);\r\n }}\r\n style={{\r\n height: \"100%\",\r\n marginRight: theme.spacing(1),\r\n }}\r\n >\r\n 前へ\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n handleArrowClick(showDays);\r\n }}\r\n style={{\r\n height: \"100%\",\r\n marginLeft: theme.spacing(1),\r\n }}\r\n >\r\n 次へ \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {rsrvCtx.dept && rsrvCtx.dept.isUseMonthCalendar && (\r\n {\r\n setDispMonth(true);\r\n swiperInstance.slideTo(0, 300, true);\r\n }}\r\n size=\"small\"\r\n // style={{ width: \"100%\" }}\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 handleArrowClick(showDays * -1);\r\n }}\r\n color=\"primary\"\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 setIsOpenOverTimeDialog(true)\r\n }\r\n onClickClose={handleCloseButtonClick}\r\n onClickStop={handleStopButtonClick}\r\n dispFlg={1}\r\n // maxWidth=\"md\"\r\n style={{\r\n marginBottom: theme.spacing(2),\r\n textAlign: \"center\",\r\n padding: \"0px\",\r\n }}\r\n reflesh={reflesh}\r\n setReflesh={setReflesh}\r\n onShowDaysChange={handleShowDaysChange}\r\n onClickReturnMonth={\r\n rsrvCtx.dept &&\r\n rsrvCtx.dept.isUseMonthCalendar &&\r\n (() => {\r\n setDispMonth(true);\r\n swiperInstance.slideTo(0, 300, true);\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n {\r\n handleArrowClick(showDays);\r\n }}\r\n color=\"primary\"\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 {!dispMonth && (\r\n \r\n \r\n \r\n \r\n {hospital &&\r\n userctx.hasClaim(Claims.Holiday_Create) &&\r\n userctx.user &&\r\n userctx.user.hospitalId === hospital.id ? (\r\n setIsReserveStop(!isReserveStop)}\r\n name=\"reserveStop\"\r\n />\r\n }\r\n label={\r\n \r\n {isReserveStop\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 * @file 予約内容入力画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useCallback, useEffect } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n Container,\r\n withStyles,\r\n Grid,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableRow,\r\n Toolbar,\r\n Typography,\r\n InputLabel,\r\n FormControl,\r\n} from \"@material-ui/core\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport {\r\n GetDayofWeekJp,\r\n GetTimeRangeStr,\r\n JsonDateTimeToDate,\r\n} from \"components/common/DateTimeHelper\";\r\nimport { BootstrapInputWithLabel } from \"components/input/textbox/BootstrapInput\";\r\nimport { YmdSelect } from \"components/input/selectlist/YmdSelectList\";\r\nimport dayjs from \"dayjs\";\r\nimport {\r\n patientConst,\r\n validationConst,\r\n sessionStorageKeys,\r\n} from \"components/common/Const\";\r\nimport { ToggleButtonGroup, ToggleButton } from \"@material-ui/lab/\";\r\nimport clsx from \"clsx\";\r\nimport { useForm } from \"react-hook-form/dist/index.ie11\"; // V6\r\nimport { yupResolver } from \"@hookform/resolvers/dist/ie11/yup\";\r\nimport * as yup from \"yup\";\r\nimport { Fragment } from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport MstDivisionsRadioWithLabel from \"components/input/radio/MstDivisionsRadioWithLabel\";\r\nimport MstDivisionsRadio from \"components/input/radio/MstDivisionsRadio\";\r\nimport MstDivisionsSelectList from \"components/input/selectlist/MstDivisionsSelectList\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n textField: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n tableTitleCell: {\r\n borderBottom: \"none\",\r\n maxWidth: \"35%\",\r\n paddingRight: \"3px\",\r\n textAlign: \"right\",\r\n whiteSpace: \"nowrap\",\r\n verticalAlign: \"top\",\r\n },\r\n tableContentCell: {\r\n borderBottom: \"none\",\r\n },\r\n typo: {},\r\n\r\n selected: {\r\n color: theme.palette.primary.contrastText + \"!important\",\r\n backgroundColor: theme.palette.primary.main + \"!important\",\r\n },\r\n toggleDefault: {\r\n width: \"50%\",\r\n },\r\n toggleGroupDefault: {\r\n backgroundColor: \"white\",\r\n width: \"100%\",\r\n justifyContent: \"center\",\r\n marginBottom: \"1rem\",\r\n },\r\n shrinkLabel: {\r\n \"label + &\": {\r\n marginTop: theme.spacing(3),\r\n },\r\n \"& ~ p\": {\r\n marginTop: \"-15px\",\r\n },\r\n },\r\n}));\r\nconst phoneRegExp =\r\n /^((\\\\+[1-9]{1,4}[ \\\\-]*)|(\\\\([0-9]{2,3}\\\\)[ \\\\-]*)|([0-9]{2,4})[ \\\\-]*)*?[0-9]{3,4}?[ \\\\-]*[0-9]{3,4}?$/;\r\n\r\nconst StyledToggleButtonGroup = withStyles((theme) => ({}))(ToggleButtonGroup);\r\n\r\nexport default function ReserveEntry(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n const { history } = useReactRouter();\r\n // const hid = props.match.params.hid;\r\n const [hospital, setHospital] = useSafeState(\r\n unmountRef,\r\n props.location.state.hospital\r\n );\r\n const [dept, setDept] = useSafeState(unmountRef, props.location.state.dept);\r\n const [reserveInfo, setReserveInfo] = useSafeState(\r\n unmountRef,\r\n props.location.state.reserveInfo\r\n );\r\n const [noteHelperText, setNoteHelperText] = useSafeState(unmountRef, \"\");\r\n const [note2HelperText, setNote2HelperText] = useSafeState(unmountRef, \"\");\r\n const [defaultValues, setDefaultValues] = useSafeState(unmountRef, null);\r\n const [isInitialized, setIsInitialized] = useSafeState(unmountRef, false);\r\n\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n birthYear: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n birthMonth: yup\r\n .string()\r\n .test(\"isRequire\", GetErrMsg(ErrMsgKey.required), function (item) {\r\n return this.parent.birthYear && !item ? false : true;\r\n }),\r\n birthDay: yup\r\n .string()\r\n .test(\"isRequire\", GetErrMsg(ErrMsgKey.required), function (item) {\r\n return this.parent.birthYear && this.parent.birthMonth && !item\r\n ? false\r\n : true;\r\n })\r\n .test(\r\n \"isFuture\",\r\n \"生年月日が未来の日付になっています。\",\r\n function (item) {\r\n const birthDay = dayjs(\r\n new Date(this.parent.birthYear, this.parent.birthMonth - 1, item)\r\n );\r\n const now = dayjs(new Date());\r\n return !birthDay.isAfter(now);\r\n }\r\n ),\r\n firstName: yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .test(\r\n \"length\",\r\n \"氏名(名)は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n ),\r\n lastName: yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .test(\r\n \"length\",\r\n \"氏名(姓)は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n ),\r\n firstNamePhonetic:\r\n dept && dept.namePhoneticItemRequire\r\n ? yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .matches(\r\n /^[ァ-ヴー]*$/,\r\n \"氏名フリガナ(名)は全角カタカナで入力してください\"\r\n )\r\n .test(\r\n \"length\",\r\n \"氏名フリガナ(名)は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n )\r\n : null,\r\n lastNamePhonetic:\r\n dept && dept.namePhoneticItemRequire\r\n ? yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .matches(\r\n /^[ァ-ヴー]*$/,\r\n \"氏名フリガナ(姓)は全角カタカナで入力してください\"\r\n )\r\n .test(\r\n \"length\",\r\n \"氏名フリガナ(姓)は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n )\r\n : null,\r\n note:\r\n dept && dept.noteItemRequire\r\n ? yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .test(\r\n \"length\",\r\n `${\r\n dept && dept.noteItemName ? dept.noteItemName : \"備考\"\r\n }は100文字以内で入力してください`,\r\n (val) => val.length <= 100\r\n )\r\n : yup\r\n .string()\r\n .test(\r\n \"length\",\r\n `${\r\n dept && dept.noteItemName ? dept.noteItemName : \"備考\"\r\n }は100文字以内で入力してください`,\r\n (val) => val.length <= 100\r\n ),\r\n note2:\r\n dept && dept.note2ItemRequire\r\n ? yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .test(\r\n \"length\",\r\n `${\r\n dept && dept.note2ItemName ? dept.note2ItemName : \"備考2\"\r\n }は100文字以内で入力してください`,\r\n (val) => val.length <= 100\r\n )\r\n : null,\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n\r\n // state更新用の関数\r\n const delSchemaData = (id) => {\r\n setSchemaData(delSchemaDataFunc(id, schemaData));\r\n };\r\n function delSchemaDataFunc(id, state) {\r\n delete state[id];\r\n return state;\r\n }\r\n\r\n // 普通にstateにセットすると、最後に実行されたもののみが処理される。\r\n // stateをfunctionを用いて更新することで、遅延評価時に順次実行されるっぽい。\r\n // https://career.levtech.jp/guide/knowhow/article/394/\r\n const addSchemaData = (id, value) => {\r\n setSchemaData(addSchemaDataFunc(id, value, schemaData));\r\n };\r\n function addSchemaDataFunc(id, value, state) {\r\n state[id] = value;\r\n return state;\r\n }\r\n\r\n useEffect(() => {\r\n try {\r\n const param = sessionStorage.getItem(\r\n sessionStorageKeys.EntryDefaultValues\r\n );\r\n\r\n register(\"newPatient\");\r\n\r\n if (param) {\r\n const p = JSON.parse(param).persons[0];\r\n p.birthDay = dayjs(p.birthDay);\r\n setDefaultValues(p);\r\n }\r\n } catch {\r\n //特に何もしない\r\n } finally {\r\n setIsInitialized(true);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (hospital) {\r\n if (defaultValues) {\r\n if (defaultValues.newPatient)\r\n setStateValue(\"newPatient\", defaultValues.newPatient);\r\n } else {\r\n // 初診の場合trueになる\r\n if (\r\n sessionStorage[sessionStorageKeys.NewPatient] === \"true\" &&\r\n hospital.isNewPatientReservable === true\r\n )\r\n setStateValue(\"newPatient\", true);\r\n else setStateValue(\"newPatient\", false);\r\n }\r\n if (hospital.isRequireMail)\r\n addSchemaData(\r\n \"email\",\r\n yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .email(GetErrMsg(ErrMsgKey.email))\r\n );\r\n }\r\n }, [hospital, defaultValues]);\r\n\r\n //react-hooks-form\r\n const {\r\n register,\r\n handleSubmit,\r\n watch,\r\n errors,\r\n setError,\r\n setValue,\r\n getValues,\r\n control,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n useEffect(() => {\r\n if (watch(\"newPatient\") === true) {\r\n delSchemaData(\"phoneNumber\");\r\n delSchemaData(\"ticketNumber\");\r\n addSchemaData(\r\n \"phoneNumber\",\r\n yup\r\n .string()\r\n .matches(validationConst.phone_reg_exp_no_hyphen, {\r\n message: GetErrMsg(ErrMsgKey.phoneNumberNoHyphen),\r\n excludeEmptyString: true,\r\n })\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n );\r\n } else {\r\n delSchemaData(\"phoneNumber\");\r\n addSchemaData(\r\n \"ticketNumber\",\r\n yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .test(\r\n \"length\",\r\n \"診察券番号は30文字以内で入力してください\",\r\n (val) => val.length <= 30\r\n )\r\n );\r\n addSchemaData(\r\n \"phoneNumber\",\r\n dept && dept.phoneNumberItemRequire\r\n ? yup\r\n .string()\r\n .matches(validationConst.phone_reg_exp_no_hyphen, {\r\n message: GetErrMsg(ErrMsgKey.phoneNumberNoHyphen),\r\n excludeEmptyString: true,\r\n })\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n : yup.string().matches(validationConst.phone_reg_exp_no_hyphen, {\r\n message: GetErrMsg(ErrMsgKey.phoneNumberNoHyphen),\r\n excludeEmptyString: true,\r\n })\r\n );\r\n }\r\n }, [watch(\"newPatient\")]);\r\n\r\n // const { history, location, match } = useReactRouter();\r\n\r\n const handleNoteChange = useCallback((e) => {\r\n setNoteHelperText(`(現在 ${e.target.value.length} 文字 )`);\r\n });\r\n const handleNote2Change = useCallback((e) => {\r\n setNote2HelperText(`(現在 ${e.target.value.length} 文字 )`);\r\n });\r\n\r\n // コンポーネント内でstateを変更するための処理\r\n const setStateValue = (id, val) => {\r\n setValue(id, val);\r\n };\r\n\r\n function onSubmit(data) {\r\n var jsnoValues = sessionStorage.getItem(\r\n sessionStorageKeys.EntryDefaultValues\r\n );\r\n var values;\r\n if (jsnoValues) values = JSON.parse(jsnoValues);\r\n\r\n var state = {\r\n hospital: hospital,\r\n dept: dept,\r\n reservation: reserveInfo,\r\n persons: [\r\n {\r\n isFollowUp:\r\n values && values.persons && values.persons[0].isFollowUp === true\r\n ? true\r\n : false,\r\n ticketNumber: data.ticketNumber,\r\n phoneNumber: data.phoneNumber,\r\n newPatient: data.newPatient,\r\n email: data.email,\r\n birthDay: dayjs(\r\n new Date(data.birthYear, data.birthMonth - 1, data.birthDay)\r\n ).format(\"YYYY-MM-DD HH:mm:ss\"),\r\n firstName: data.firstName,\r\n lastName: data.lastName,\r\n note: data.note,\r\n email: data.email,\r\n firstNamePhonetic: data.firstNamePhonetic,\r\n lastNamePhonetic: data.lastNamePhonetic,\r\n sexId: data.sexId,\r\n note2: data.note2,\r\n },\r\n ],\r\n };\r\n sessionStorage.setItem(\r\n sessionStorageKeys.EntryDefaultValues,\r\n JSON.stringify(state)\r\n ); //戻ってきた時に値を復元するためにsessionStorageに入れておく\r\n props.history.push({\r\n pathname: `/${hospital.id}/r/c/`,\r\n state: state,\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {hospital && }\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 {hospital.name}\r\n \r\n \r\n \r\n \r\n \r\n \r\n 予約項目:\r\n \r\n \r\n \r\n \r\n {dept.name}\r\n \r\n \r\n \r\n \r\n \r\n \r\n 日付 :\r\n \r\n \r\n \r\n \r\n {JsonDateTimeToDate(reserveInfo.targetDate)} (\r\n {GetDayofWeekJp(new Date(reserveInfo.targetDate))})\r\n \r\n \r\n \r\n \r\n \r\n \r\n 時間 :\r\n \r\n \r\n \r\n \r\n {reserveInfo.label}\r\n \r\n \r\n ({\" \"}\r\n {GetTimeRangeStr(\r\n reserveInfo.bgnTime,\r\n reserveInfo.endTime\r\n )}{\" \"}\r\n )\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {isInitialized && (\r\n \r\n
\r\n 以下の内容をご入力いただき、\r\n
\r\n 「次へ」ボタンを押してください\r\n
\r\n \r\n {hospital && hospital.isNewPatientReservable && (\r\n <>\r\n \r\n \r\n {\"診察券をお持ちですか?\"}\r\n \r\n {\r\n if (v != null) setStateValue(\"newPatient\", 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 {watch(\"newPatient\") === false && (\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 {dept && dept.namePhoneticItemRequire && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {dept && dept.sexItemRequire && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n {hospital && hospital.isRequireMail && (\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 {dept &&\r\n (dept.note2ItemRequire ||\r\n dept.note2ItemName ||\r\n dept.note2PlaceHolder) && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n history.goBack()}\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","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React from \"react\";\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\n\r\nexport default function ScrollDialog(props) {\r\n const unmountRef = useUnmountRef();\r\n\r\n const { open, scroll, title, actions, ...other } = props;\r\n\r\n\r\n// const [open, setOpen] = useSafeState(unmountRef, false);\r\n// const [scroll, setScroll] = useSafeState(unmountRef, \"paper\");\r\n\r\n// const handleClickOpen = (scrollType) => () => {\r\n// setOpen(true);\r\n// setScroll(scrollType);\r\n// };\r\n\r\n// const handleClose = () => {\r\n// setOpen(false);\r\n// };\r\n\r\n const descriptionElementRef = React.useRef(null);\r\n React.useEffect(() => {\r\n if (open) {\r\n const { current: descriptionElement } = descriptionElementRef;\r\n if (descriptionElement !== null) {\r\n descriptionElement.focus();\r\n }\r\n }\r\n }, [open]);\r\n\r\n return (\r\n
\r\n \r\n {title}\r\n \r\n \r\n {props.children}\r\n \r\n \r\n \r\n {actions}\r\n \r\n \r\n
\r\n );\r\n}","/**\r\n * @file 予約確認画面\r\n */\r\nimport React, {\r\n Fragment,\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useRef,\r\n} from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n Checkbox,\r\n CircularProgress,\r\n Container,\r\n FormControlLabel,\r\n Grid,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableRow,\r\n Toolbar,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n ErrMsg,\r\n useErrorMessageProvider,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport * as yup from \"yup\";\r\nimport axios from \"axios\";\r\nimport {\r\n GetDayofWeekJp,\r\n GetTimeRangeStr,\r\n} from \"components/common/DateTimeHelper\";\r\nimport dayjs from \"dayjs\";\r\nimport { LineBreakToBr } from \"components/common/Formatter\";\r\nimport { Warning } from \"@material-ui/icons\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport {\r\n patientConst,\r\n RecaptchaSiteKeyV2,\r\n termOfUseHtml,\r\n} from \"components/common/Const\";\r\nimport { GoogleReCaptcha, useGoogleReCaptcha } from \"react-google-recaptcha-v3\";\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport ScrollDialog from \"components/dialog/ScrollDialog\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport { TableCellNoBorder } from \"components/table/TableCellNoBorder\";\r\nimport authService from \"components/api-authorization/AuthorizeService\";\r\nimport {\r\n ApiPostSendLine,\r\n ApiPostSendMail,\r\n ApiPostSendMailToDept,\r\n} from \"components/api/ReservationApi\";\r\nimport { GetDivisions } from \"components/api/DivisionsApi\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n tableTitleCell: {\r\n whiteSpace: \"nowrap\",\r\n verticalAlign: \"top\",\r\n padding: theme.spacing(1),\r\n },\r\n tableColon: {\r\n color: theme.palette.primary.main,\r\n padding: 0,\r\n },\r\n selected: {\r\n color: theme.palette.secondary.contrastText + \"!important\",\r\n backgroundColor: theme.palette.secondary.main + \"!important\",\r\n },\r\n agree: {},\r\n recaptchaBox: {\r\n marginTop: theme.spacing(1),\r\n },\r\n wrapper: {\r\n position: \"relative\",\r\n },\r\n inputText: {\r\n wordBreak: \"break-word\",\r\n },\r\n}));\r\n\r\n/**\r\n * 予約確認画面です\r\n * @param {*} props\r\n * @param {Object} props.location.state.hospital - 予約対象の医療機関情報\r\n * @param {Object} props.location.state.dept - 予約対象の予約項目情報\r\n * @param {Object} props.location.state.reservation - 予約情報\r\n */\r\nexport default function ReserveConfirm(props) {\r\n let unmount = false;\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const style = commonStyle();\r\n const { history } = useReactRouter();\r\n\r\n const schema = yup.object().shape({\r\n chkAgree: yup\r\n .boolean()\r\n .required()\r\n .oneOf([true], \"利用規約に同意されないと、ご利用頂けません。\"),\r\n });\r\n const {\r\n register,\r\n handleSubmit,\r\n // watch,\r\n errors,\r\n setError,\r\n clearErrors,\r\n } = useForm({\r\n resolver: yupResolver(schema),\r\n });\r\n\r\n const [submitDisabled, setSubmitDisabled] = useSafeState(unmountRef, false); //submitボタンの活性制御\r\n const [isAgree, setIsAgree] = useSafeState(unmountRef, false);\r\n const msg = useContext(MessageContext);\r\n const errProvider = useErrorMessageProvider();\r\n\r\n //stateが無い場合リダイレクトする\r\n if (!props.location.state.hospital) {\r\n history.replace({ pathname: `/${props.match.params.hid}/r/sf/` });\r\n }\r\n\r\n const [hospital, setHospital] = useSafeState(\r\n unmountRef,\r\n props.location.state.hospital\r\n );\r\n const [dept, setDept] = useSafeState(unmountRef, props.location.state.dept);\r\n const [reservation, setReservation] = useSafeState(\r\n unmountRef,\r\n props.location.state.reservation\r\n );\r\n const personInfo = props.location.state.persons[0];\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n const [recaptchaVersion, setRecaptchaVersion] = useSafeState(unmountRef, 3);\r\n const [recaptchaObj, setRecaptchaObj] = useSafeState(unmountRef);\r\n const recaptchaV2 = useRef(null);\r\n const [recaptchaV2Token, setRecaptchaV2Token] = useSafeState(\r\n unmountRef,\r\n null\r\n );\r\n const [recaptchaV3Token, setRecaptchaV3Token] = useSafeState(\r\n unmountRef,\r\n null\r\n );\r\n\r\n const [isOpenTermOfUseDialog, setIsOpenTermOfUseDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n ); //利用規約ダイアログ表示フラグ\r\n\r\n const [sexNameData, setSexNameData] = useSafeState(unmountRef, null); // 性別名リスト\r\n const [, setErrorMessage] = useSafeState(unmountRef, \"\"); // エラーメッセージ\r\n \r\n useEffect(() => {\r\n const f = async () => {\r\n try {\r\n await GetDivisions(\"sexCd\", setSexNameData);\r\n } catch (error) {\r\n setErrorMessage(\r\n \"エラーが発生しました。時間をおいて再度実行してください。\"\r\n );\r\n }\r\n };\r\n f();\r\n }, []);\r\n\r\n useEffect(() => {\r\n //ここに通常更新時のロジックを書く\r\n return () => {\r\n //ここにはUnmount時のロジックを書く\r\n unmount = true;\r\n };\r\n }, []);\r\n\r\n function ShowError(error) {\r\n if (error.response.status === 400) {\r\n errProvider.setValidationErrorsForaxios(error, setError);\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: \"入力内容をご確認ください\",\r\n });\r\n }\r\n if (error.response.status === 500) {\r\n msg.enqueue(\r\n \"予期せぬエラーが発生しました。恐れ入りますが、時間を空けて再度お試しください。\"\r\n );\r\n return;\r\n }\r\n if (!unmount) {\r\n setSubmitDisabled(false);\r\n // setError(\"summary\", { type: \"manual\", message: error.response.message });\r\n }\r\n }\r\n\r\n async function onSendButtonClick() {\r\n const recaptchaToken =\r\n recaptchaVersion === 3 ? recaptchaV3Token : recaptchaV2Token;\r\n // ボタン非活性\r\n !unmount && setSubmitDisabled(true);\r\n let vm = {\r\n hid: hospital.id,\r\n did: dept.id,\r\n Reservation: props.location.state.reservation,\r\n Persons: props.location.state.persons,\r\n token: recaptchaToken,\r\n version: recaptchaVersion,\r\n };\r\n //予約登録\r\n var tkn = await authService.getAccessToken();\r\n\r\n await axios\r\n .post(\"api/Reservations\", vm, {\r\n headers: !tkn ? {} : { Authorization: `Bearer ${tkn}` },\r\n })\r\n .then(async (response) => {\r\n //ReCaptcha v3のリセット\r\n if (recaptchaVersion === 3) {\r\n executeRecaptcha().then((token) => {\r\n handleReCaptchaVerify(token);\r\n });\r\n }\r\n\r\n //ReCaptcha v2のリセット\r\n if (recaptchaV2.current) recaptchaV2.current.reset();\r\n\r\n if (response.status === 201) {\r\n var book = response.data[0];\r\n\r\n ApiPostSendMail(\r\n book.bookingDate,\r\n book.timeTableDetailId,\r\n book.bookOrder\r\n ).catch(() => {\r\n msg.enqueueNotClose(\r\n \"メールでの予約内容通知に失敗しました。\",\r\n \"error\"\r\n );\r\n });\r\n ApiPostSendLine(\r\n book.bookingDate,\r\n book.timeTableDetailId,\r\n book.bookOrder\r\n ).catch(() => {\r\n msg.enqueueNotClose(\r\n \"LINEでの予約内容通知に失敗しました。\",\r\n \"error\"\r\n );\r\n });\r\n ApiPostSendMailToDept(\r\n book.bookingDate,\r\n book.timeTableDetailId,\r\n book.bookOrder\r\n ).catch(() => {\r\n msg.enqueueNotClose(\r\n \"予約項目へのメールでの予約内容通知に失敗しました。\",\r\n \"error\"\r\n );\r\n });\r\n\r\n history.replace({\r\n pathname: `/${hospital.id}/r/thanks`,\r\n state: {\r\n hospital: hospital,\r\n dept: dept,\r\n reservation: reservation,\r\n bookData: response.data,\r\n persons: props.location.state.persons,\r\n },\r\n });\r\n } else {\r\n msg.enqueue(\r\n \"予約出来ませんでした。恐れ入りますが、時間を空けて再度お試しください\",\r\n \"error\"\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n if (error.response && error.response.data) {\r\n var data = error.response.data;\r\n if (data.summary) {\r\n //validationのエラー\r\n setError(\"summary\", { type: \"manual\", message: data.summary });\r\n } else if (data.errors) {\r\n //ReCaptchaによるエラー\r\n data.errors.forEach((item) => {\r\n if (item.isBot) {\r\n !unmount && setRecaptchaVersion(2);\r\n !unmount &&\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: data.message,\r\n });\r\n }\r\n });\r\n } else {\r\n ShowError(error);\r\n }\r\n } else {\r\n //status code 500の際はunmountされるので注意\r\n ShowError(error);\r\n }\r\n })\r\n .finally(function () {\r\n //ReCaptcha v2のリセット\r\n if (recaptchaV2.current) recaptchaV2.current.reset();\r\n !unmount && setSubmitDisabled(false);\r\n });\r\n }\r\n\r\n const handleIsAgreeChange = useCallback((e) => {\r\n setIsAgree(e.target.checked);\r\n });\r\n\r\n const onSubmit = useCallback((e) => {\r\n onSendButtonClick();\r\n });\r\n\r\n const handleReCaptchaVerify = useCallback(\r\n (token) => {\r\n !unmount && setRecaptchaV3Token(token);\r\n },\r\n [setRecaptchaV3Token]\r\n ); //こうしておかないと無限ループになる\r\n\r\n const handleReCaptchaV2Change = useCallback((token) => {\r\n !unmount && setRecaptchaV2Token(token);\r\n });\r\n\r\n function handleTermOfUseDialogClose() {\r\n setIsOpenTermOfUseDialog(false);\r\n }\r\n\r\n useEffect(() => {\r\n recaptchaV2.current = recaptchaObj;\r\n }, [recaptchaObj]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {hospital && (\r\n \r\n )}\r\n \r\n \r\n 閉じる}\r\n >\r\n {{termOfUseHtml}}\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 {props.location.state.hospital.name}\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 {props.location.state.dept.name}\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 {dayjs(\r\n props.location.state.reservation.targetDate\r\n ).format(\"YYYY年MM月DD日\")}\r\n  (\r\n {GetDayofWeekJp(\r\n new Date(\r\n props.location.state.reservation.targetDate\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 {props.location.state.reservation.label}\r\n \r\n \r\n ({\" \"}\r\n {GetTimeRangeStr(\r\n props.location.state.reservation.bgnTime,\r\n props.location.state.reservation.endTime\r\n )}{\" \"}\r\n )\r\n \r\n \r\n \r\n \r\n {hospital && hospital.isNewPatientReservable && (\r\n \r\n \r\n 初診/再診\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {personInfo.newPatient === true\r\n ? patientConst.new_patient\r\n : patientConst.not}\r\n \r\n \r\n \r\n )}\r\n {personInfo.newPatient === false && (\r\n \r\n \r\n 診察券No\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {personInfo.ticketNumber}\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 {personInfo.lastName + \" \" + personInfo.firstName}\r\n \r\n \r\n \r\n \r\n \r\n {dept && dept.namePhoneticItemRequire && (\r\n \r\n \r\n 氏名(フリガナ)\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {personInfo.lastNamePhonetic + \" \" + personInfo.firstNamePhonetic}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {dept && dept.sexItemRequire && (\r\n \r\n \r\n 性別\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {sexNameData && personInfo.sexId>=0 ? sexNameData[Number(personInfo.sexId)] : \"\"}\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 {personInfo.phoneNumber}\r\n \r\n \r\n \r\n\r\n {hospital && hospital.isRequireMail && (\r\n \r\n \r\n \r\n メールアドレス\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n {personInfo.email}\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 {dayjs(\r\n personInfo.birthDay,\r\n \"YYYY-MM-DD HH:mm:ss\"\r\n ).format(\"YYYY年MM月DD日\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* 備考 */}\r\n \r\n {dept && dept.noteItemName\r\n ? dept.noteItemName\r\n : \"備考\"}\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n {LineBreakToBr(\"note_\", personInfo.note)}\r\n \r\n \r\n \r\n \r\n {dept && dept.note2ItemRequire && (\r\n \r\n \r\n {/*備考2 */}\r\n \r\n {dept && dept.note2ItemName\r\n ? dept.note2ItemName\r\n : \"備考2\"}\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n {LineBreakToBr(\"note_\", personInfo.note2)}\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={\r\n \r\n 利用規約に同意します\r\n
\r\n {\r\n setIsOpenTermOfUseDialog(true);\r\n e.preventDefault();\r\n }}\r\n >\r\n 利用規約\r\n \r\n をご確認ください。\r\n
\r\n
\r\n }\r\n className={classes.agree}\r\n />\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {recaptchaVersion === 3 && (\r\n \r\n )}\r\n {recaptchaVersion === 2 && (\r\n
\r\n setRecaptchaObj(e)}\r\n />\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n history.goBack()}\r\n >\r\n 戻る\r\n \r\n \r\n \r\n {\r\n clearErrors();\r\n }}\r\n >\r\n 送信{\" \"}\r\n {submitDisabled && (\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","import React from \"react\";\r\nimport { Button, Paper } from \"@material-ui/core\";\r\nimport { ChevronRight } from \"@material-ui/icons\";\r\n\r\nexport default function ChevronRightButton(props) {\r\n const { children, color, variant, textFontSize, elevation, ...other } = props;\r\n return (\r\n \r\n \r\n {textFontSize ? (\r\n \r\n {children}\r\n \r\n ) : (\r\n \r\n {children}\r\n \r\n )}\r\n  \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Fab } from \"@material-ui/core\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { fade } from \"@material-ui/core/styles/colorManipulator\";\r\n\r\nexport default function OutlinedFab(props) {\r\n const { onClick, backgroundColor, color, children, ...other } = props;\r\n const theme = useTheme();\r\n const { history } = useReactRouter();\r\n\r\n const useStyles = makeStyles((theme) => ({\r\n fab: {\r\n color: color ? color : theme.palette.primary.main,\r\n backgroundColor: backgroundColor,\r\n border: \"1px solid\",\r\n borderColor: color ? color : fade(theme.palette.primary.main, 0.5),\r\n \"&:hover\": {\r\n borderColor: fade(theme.palette.primary.main, 1),\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n },\r\n },\r\n }));\r\n const classes = useStyles();\r\n\r\n return (\r\n history.goBack()}\r\n className={classes.fab}\r\n {...other}\r\n >\r\n {children}\r\n \r\n );\r\n}\r\n\r\nOutlinedFab.defaultProps = {\r\n backgroundColor: \"white\",\r\n};\r\n","/**\r\n * @file 予約項目選択画面\r\n */\r\nimport {\r\n Box,\r\n Fab,\r\n CircularProgress,\r\n Hidden,\r\n Grid,\r\n Toolbar,\r\n Typography,\r\n Container,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\nimport { ArrowBack } from \"@material-ui/icons\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { ApiGetHospital, ApiGetDepts } from \"components/api/HospitalApi\";\r\nimport { reservationPath, sessionStorageKeys } from \"components/common/Const\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport ChevronRightButton from \"components/input/button/ChevronRightButton\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport { ReserveContext } from \"./ReserveRoute\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\nimport OutlinedFab from \"components/input/button/OutlinedFab\";\r\nimport { CheckPreConfirmEntry } from \"components/common/SessionStorageController\";\r\nimport UseEffect2 from \"components/common/UseEffect2\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { ApiHospitalDeptScreensGet } from \"components/api/HospitalDeptScreensApi\";\r\nimport { WhiteSpaseBreakToBr } from \"components/common/Formatter\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n listItem: {\r\n height: \"80px\",\r\n },\r\n listSkeleton: {\r\n height: \"40px\",\r\n },\r\n flexColumnIe11: {\r\n flexBasis: \"auto\",\r\n },\r\n}));\r\n\r\nexport default function SelectDept(props) {\r\n const msg = useContext(MessageContext);\r\n const rsrvCtx = useContext(ReserveContext);\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n const hid = props.match.params.hid;\r\n const { history } = useReactRouter();\r\n\r\n const unmountRef = useUnmountRef();\r\n\r\n const [depts, setDepts] = useSafeState(unmountRef);\r\n const [hospital, setHospital] = useSafeState(unmountRef);\r\n const [dispOk, setDispOk] = useSafeState(unmountRef);\r\n\r\n ///SEO関連\r\n const [seoKeywords, setSeoKeywords] = useSafeState(unmountRef, \"予約\");\r\n const [seoDescription, setSeoDescription] = useSafeState(\r\n unmountRef,\r\n \"予約専用サイトです。予約の空き状況の確認や、予約の取得が可能です。\"\r\n );\r\n\r\n UseEffect2(() => {\r\n /// SEOキーワードの設定\r\n SetSeoKeywords(hospital, depts);\r\n SetSeoDescription(hospital, depts);\r\n }, [hospital, depts]);\r\n function SetSeoKeywords(hospital, depts) {\r\n /// SEOキーワードの設定\r\n var keywords = \"予約\";\r\n // 病院\r\n if (hospital) {\r\n keywords = `${keywords},${hospital.name}`;\r\n if (hospital.prefName) keywords = `${keywords},${hospital.prefName}`;\r\n // 市区町村名\r\n if (hospital.cityName) keywords = `${keywords},${hospital.cityName}`;\r\n }\r\n // 予約項目名\r\n if (depts) {\r\n var text = \"\";\r\n for (let i = 0; i < depts.length; i++) {\r\n let item = depts[i];\r\n if (item.isVisible) text = `${text},${item.name}`;\r\n }\r\n keywords = keywords + text;\r\n }\r\n setSeoKeywords(keywords);\r\n }\r\n\r\n function SetSeoDescription(hospital, depts) {\r\n var hospitalName = \"当医院\";\r\n var prefName = \"\";\r\n var cityName = \"\";\r\n var depts = \"\";\r\n // 病院名\r\n if (hospital) {\r\n hospitalName = hospital.name;\r\n if (hospital.prefName) prefName = hospital.prefName;\r\n if (hospital.cityName) cityName = hospital.cityName;\r\n }\r\n setSeoDescription(\r\n `${prefName ? prefName : \"\"}${cityName ? cityName : \"\"}${\r\n (prefName || cityName) && \"の\"\r\n }${hospitalName}のWeb予約ページです。Webで予約受付や空き状況の確認ができます。`\r\n );\r\n }\r\n\r\n async function GetHospital(hid) {\r\n await ApiGetHospital(hid)\r\n .then(function (response) {\r\n if (!response) {\r\n msg.enqueue(\"医療機関データが取得できませんでした\", \"error\");\r\n } else {\r\n setHospital(response[0]);\r\n }\r\n })\r\n .catch(function (error) {\r\n msg.enqueue(\"エラーが発生しました\", \"error\");\r\n });\r\n }\r\n\r\n async function GetDepts(hid) {\r\n await ApiGetDepts(hid)\r\n .then(function (response) {\r\n if (!response) {\r\n msg.enqueue(\"予約項目データが取得できませんでした\", \"error\");\r\n } else {\r\n setDepts(response);\r\n }\r\n })\r\n .catch(function (error) {\r\n msg.enqueue(\"エラーが発生しました\", \"error\");\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n // 事前画面を経由してきているかをセッションストレージとDBを比較して検証\r\n CheckPreConfirmEntry(history, hid).then((ret) => {\r\n // setTimeout(() => setDispOk(true), 3000);\r\n setDispOk(ret);\r\n });\r\n\r\n GetHospital(hid);\r\n GetDepts(hid);\r\n\r\n var sessionDeptId = sessionStorage.getItem(\r\n sessionStorageKeys.ReservationTableDeptId\r\n );\r\n if (sessionDeptId) {\r\n sessionStorage.removeItem(sessionStorageKeys.ReservationTableDeptId);\r\n }\r\n }, []);\r\n\r\n const titleObj = () => {\r\n return (\r\n \r\n {/* \r\n 予約項目選択\r\n */}\r\n {hospital ? (\r\n <>\r\n \r\n {WhiteSpaseBreakToBr(\r\n \"address\",\r\n rsrvCtx.hospital.prefName + rsrvCtx.hospital.cityName\r\n )}\r\n \r\n \r\n {hospital.name}\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 return (\r\n
\r\n {dispOk === true ? (\r\n <>\r\n \r\n \r\n \r\n {hospital && (\r\n <>\r\n \r\n {seoKeywords && (\r\n \r\n )}\r\n {seoDescription && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n {hospital && (\r\n \r\n )}\r\n \r\n \r\n {titleObj()}\r\n\r\n \r\n \r\n {depts && depts.length > 3 ? (\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\nfunction DeptButtons(props) {\r\n const { depts, hid, classes, ...others } = props;\r\n return (\r\n <>\r\n {depts ? (\r\n <>\r\n \r\n = 6 ? 11 : 8}\r\n xl={8}\r\n container\r\n spacing={2}\r\n alignItems=\"center\"\r\n {...others}\r\n >\r\n {depts.map((item) => (\r\n = 6 ? 4 : 6}\r\n style={{ width: \"22rem\" }}\r\n className={classes && classes.flexColumnIe11}\r\n key={item.id}\r\n >\r\n \r\n {/* {LinkButtonComp(item)} */}\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n {depts.map((item) => (\r\n \r\n \r\n {/* {LinkButtonComp(item)} */}\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n {depts.map((item) => (\r\n \r\n \r\n {/* {LinkButtonComp(item)} */}\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 LinkButtonComp = (props) => {\r\n const unmountRef = useUnmountRef();\r\n const { dept, hid } = props;\r\n const rsrvCtx = useContext(ReserveContext);\r\n const { history } = useReactRouter();\r\n\r\n const [url, setUrl] = useSafeState(\r\n unmountRef,\r\n `/${hid}${reservationPath}w/${dept.id}`\r\n );\r\n const fontSize =\r\n dept.name.length > 32\r\n ? 2 / (dept.name.length / 16)\r\n : dept.name.length > 16\r\n ? 1\r\n : dept.name.length > 8\r\n ? 2 / (dept.name.length / 8)\r\n : 2;\r\n\r\n const [screens, setScreens] = useSafeState(unmountRef);\r\n\r\n async function GetScreens(hid, did) {\r\n let isSuccess = false;\r\n await ApiHospitalDeptScreensGet(hid, did)\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (response) {\r\n if (!isSuccess) {\r\n } else {\r\n setScreens(response.data);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetScreens error\", error);\r\n });\r\n }\r\n useEffect(() => {\r\n const f = async () => {\r\n await GetScreens(hid, dept.id);\r\n };\r\n f();\r\n }, []);\r\n useEffect(() => {\r\n if (screens) setUrl(`/${hid}${reservationPath}dsc/${dept.id}/0`);\r\n }, [screens]);\r\n\r\n return (\r\n // \r\n {\r\n rsrvCtx.setDept(dept);\r\n // history.push(`/${hid}${reservationPath}w/${dept.id}`);\r\n history.push(url);\r\n }}\r\n textFontSize={fontSize}\r\n >\r\n {dept.name}\r\n \r\n );\r\n};\r\n","import React, { useCallback, useEffect } from \"react\";\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n InputAdornment,\r\n makeStyles,\r\n TextField,\r\n} from \"@material-ui/core\";\r\nimport { Save } from \"@material-ui/icons\";\r\nimport * as yup from \"yup\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\n\r\nconst useStyles = makeStyles((theme, props) => ({\r\n actions: {\r\n padding: \"10px 25px 15px 25px\",\r\n justifyContent: (props) => (props.isReadOnly ? \"normal\" : \"space-between\"),\r\n },\r\n}));\r\n\r\nconst schema = yup.object().shape({\r\n mailDialogInput: yup\r\n .string()\r\n .required(GetErrMsg(ErrMsgKey.required))\r\n .email(GetErrMsg(ErrMsgKey.email)),\r\n});\r\n\r\n/**\r\n * 備考やメモを閲覧・編集するダイアログを表示します\r\n * @param {*} props\r\n * @param {function} props.onSave - 保存押下時に呼び出すfunction xxxx (text) 結果は{result: boolean, title: string, message:string}で返してください\r\n */\r\nexport function MailDialog(props) {\r\n const formId = \"mail-dialog-form\";\r\n const classes = useStyles(props);\r\n const style = commonStyle(props);\r\n const { titleText, description, defaultValue, open, onClose, onSave } = props;\r\n\r\n const {\r\n register,\r\n handleSubmit,\r\n watch,\r\n errors,\r\n setError,\r\n setValue,\r\n getValues,\r\n clearErrors,\r\n } = useForm({\r\n resolver: yupResolver(schema), //react-hooks-formのValidationでyupを使用する際はこうする\r\n });\r\n\r\n const mailValueFieldName = \"mailDialogInput\";\r\n const watchMailValue = watch(mailValueFieldName);\r\n\r\n const handleClose = useCallback(() => {\r\n onClose(watchMailValue);\r\n });\r\n\r\n // const onSubmit = useCallback(async () => {\r\n function onSubmit() {\r\n onSave(watchMailValue);\r\n }\r\n\r\n useEffect(() => {\r\n //ダイアログは再利用されるのでstateはここで初期化する\r\n }, [open]);\r\n\r\n return (\r\n \r\n \r\n {titleText && {titleText}}\r\n \r\n {description && {description}}\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","import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { Fragment, useCallback } from \"react\";\r\nimport { Button } from \"@material-ui/core\";\r\nimport axios from \"axios\";\r\nimport { MailDialog } from \"components/dialog/MailDialog\";\r\nimport DefaultSnackbar from \"components/snackbar/DefaultSnackbar\";\r\nimport { MailOutline } from \"@material-ui/icons\";\r\nimport dayjs from \"dayjs\";\r\n\r\n/**\r\n * メール通知登録・解除用のボタンです。\r\n * @param {Object} props - 基本的にExternalLinkButtonに準じます\r\n * @param {string} props.hospitalId - 医療機関ID\r\n * @param {string} props.cardNumber - 診察券番号\r\n * @param {Date} props.birthDay - 生年月日\r\n * @param {string} props.email - 既にメール登録している人はメールアドレス まだの人はnullを指定\r\n * @param {string} props.bookingDate - 予約対象日\r\n * @param {string} props.timeTableDetailId - タイムテーブル詳細のID\r\n * @param {string} props.bookOrder - 予約番号\r\n * @param {bool?} props.shortButton - 文言が短いボタン\r\n * @param {function} props.onSave - メールアドレス保存時コールバック関数 function callback(email){} 解除時はnullを返します\r\n */\r\nexport default function MailButton(props) {\r\n const unmountRef = useUnmountRef();\r\n const {\r\n hospitalId,\r\n cardNumber,\r\n birthDay,\r\n guId,\r\n email,\r\n onSave,\r\n bookingDate,\r\n timeTableDetailId,\r\n bookOrder,\r\n shortButton,\r\n ...other\r\n } = props;\r\n const [isOpenMailDialog, setIsOpenMailDialog] = useSafeState(unmountRef, false);\r\n const [isOpenSnackbar, setIsOpenSnackbar] = useSafeState(unmountRef, false);\r\n const [snackbarSeverity, setSnackbarSeverity] = useSafeState(unmountRef, \"\");\r\n const [snackbarMsg, setSnackbarMsg] = useSafeState(unmountRef, \"\");\r\n\r\n const handleAlertMailClick = useCallback(() => {\r\n if (email) {\r\n //登録解除\r\n //DB更新 空データで更新する\r\n let card = {\r\n mcdHospitalId: hospitalId,\r\n mcdId: cardNumber,\r\n mcdBirthDay: birthDay,\r\n mcdEmail: \"\",\r\n };\r\n axios.patch(\"api/Cards/mail\", [card])\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n setSnackbarMsg(\"メール通知設定を解除しました\");\r\n setSnackbarSeverity(\"success\");\r\n setIsOpenSnackbar(true);\r\n onSave(null);\r\n }\r\n })\r\n .catch(function (error) {\r\n setSnackbarMsg(\"メール通知設定を解除できませんでした\");\r\n setSnackbarSeverity(\"error\");\r\n setIsOpenSnackbar(true);\r\n });\r\n } else {\r\n //登録\r\n setIsOpenMailDialog(true);\r\n }\r\n });\r\n const handleMailDialogClose = useCallback((text) => {\r\n setIsOpenMailDialog(false);\r\n });\r\n const handleMailDialogSave = useCallback((text) => {\r\n setIsOpenMailDialog(false);\r\n let card = {\r\n mcdHospitalId: hospitalId,\r\n mcdId: cardNumber,\r\n mcdBirthDay: birthDay,\r\n mcdEmail: text,\r\n guId: guId,\r\n };\r\n //DB更新\r\n axios.patch(\"api/Cards/mail\", [card])\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n setSnackbarMsg(\"メールアドレスを登録しました\");\r\n setSnackbarSeverity(\"success\");\r\n setIsOpenSnackbar(true);\r\n\r\n // TODO メール送信実施\r\n var mailObj;\r\n var apiTarget;\r\n if (bookOrder) {\r\n apiTarget = \"api/Mail\";\r\n mailObj = {\r\n bookingDate: dayjs(bookingDate).format(\"YYYY-MM-DD\"),\r\n timeTableDetailId: timeTableDetailId,\r\n bookOrder: bookOrder,\r\n email: text,\r\n };\r\n } else {\r\n apiTarget = \"api/Mail/connect\";\r\n mailObj = { hospitalId: hospitalId, email: text };\r\n }\r\n\r\n axios.post(apiTarget, mailObj)\r\n .then(function (response) {\r\n console.log(\"メール送信成功\");\r\n })\r\n .catch(function (error) {\r\n setSnackbarMsg(\"メールを送信できませんでした。\");\r\n setSnackbarSeverity(\"error\");\r\n setIsOpenSnackbar(true);\r\n });\r\n\r\n //コールバック\r\n onSave(text);\r\n }\r\n })\r\n .catch(function (error) {\r\n setSnackbarMsg(\"メールアドレスを登録できませんでした\");\r\n setSnackbarSeverity(\"error\");\r\n setIsOpenSnackbar(true);\r\n });\r\n });\r\n\r\n const handleSnackbarClose = useCallback(() => {\r\n setIsOpenSnackbar(false);\r\n });\r\n\r\n return (\r\n \r\n \r\n {snackbarMsg}\r\n \r\n \r\n \r\n  \r\n \r\n {shortButton ? (\r\n email ? (\r\n  通知解除\r\n ) : (\r\n  メール通知\r\n )\r\n ):(\r\n email ? (\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}","import React, { Fragment } from 'react';\r\nimport { ExternalLinkButton, ExternalClickButton } from './LinkButton';\r\n\r\n\r\n/**\r\n * LINE用のリンクボタンです\r\n * @param {Object} props - 基本的にExternalLinkButtonに準じます\r\n * @param {string} props.lineUrl - ラインログインのアドレス\r\n * @param {string} props.lineParam - ラインログインのURLに渡すパラメータ '?response_type=code&client_id=...'\r\n * @param {string} props.lineUserId - 既にLINE連携している人はLINEのユーザーID まだの人はnullを指定\r\n * @param {bool?} props.shortButton - 文言が短いボタン\r\n */\r\nexport default function LineButton(props) {\r\n const { lineUrl, lineParam, lineUserId, handleReleaseLine, shortButton, ...other } = props;\r\n\r\n\r\n return (\r\n <>\r\n {\r\n lineUserId ?\r\n handleReleaseLine()} rel=\"noreferrer noopener\" style={{ backgroundColor: \"#00C300\" }}>\r\n  \r\n {shortButton == true ?\r\n 通知解除\r\n :\r\n   LINE通知は設定済みです
  通知設定を解除する
\r\n }\r\n
:\r\n \r\n  \r\n {shortButton == true ?\r\n LINE通知\r\n :\r\n   LINEで通知を受け取る\r\n }\r\n \r\n}\r\n \r\n );\r\n}","/**\r\n * @file 予約完了画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useCallback, useContext, useEffect } from \"react\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport {\r\n Box,\r\n Button,\r\n Container,\r\n Fab,\r\n Grid,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableRow,\r\n Toolbar,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { fade, makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport { Alert, AlertTitle } from \"@material-ui/lab\";\r\nimport { Description, ListAlt, Print, Receipt } from \"@material-ui/icons\";\r\nimport dayjs from \"dayjs\";\r\nimport { LineBreakToBr } from \"components/common/Formatter\";\r\nimport MailButton from \"components/input/button/MailButton\";\r\nimport LineButton from \"components/input/button/LineButton\";\r\nimport { GenerateLineParameter, lineUrl } from \"components/common/LineConfig\";\r\nimport { ApiGetCard } from \"components/api/CardsApi\";\r\nimport axios from \"axios\";\r\nimport {\r\n GetDayofWeekJp,\r\n GetTimeRangeStr,\r\n} from \"components/common/DateTimeHelper\";\r\nimport { RemoveEntryDefaultValues } from \"components/common/SessionStorageController\";\r\nimport LinkButton from \"components/input/button/LinkButton\";\r\nimport { patientConst, sessionStorageKeys } from \"components/common/Const\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport { ReserveContext } from \"pages/reservation/ReserveRoute\";\r\nimport SectionTitleText from \"components/text/SectionTitleText\";\r\nimport { TableCellNoBorder } from \"components/table/TableCellNoBorder\";\r\nimport { ApiGetLineClientID } from \"components/api/LINELoginApi\";\r\nimport { GetDivisions } from \"components/api/DivisionsApi\";\r\nimport WysiWygEditor from \"components/editor/WysiWygEditor\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n tableTitleCell: {\r\n paddingRight: 0,\r\n color: theme.palette.primary.main,\r\n whiteSpace: \"nowrap\",\r\n verticalAlign: \"top\",\r\n },\r\n notifyAlert: {\r\n \"& .MuiAlert-icon\": {\r\n float: \"left\",\r\n height: \"50px\",\r\n marginRight: \"5px\",\r\n },\r\n },\r\n centerButton: {\r\n width: \"300px\",\r\n },\r\n container: {\r\n position: \"relative\",\r\n marginVertical: \"auto\",\r\n marginHorizontal: \"auto\",\r\n padding: theme.spacing(2),\r\n backgroundColor: fade(theme.palette.secondary.main, 0.3),\r\n fontSize: \"13px\",\r\n borderRadius: \"10px\",\r\n },\r\n triangle: {\r\n position: \"absolute\",\r\n top: \"100%\",\r\n left: \"20%\",\r\n transform: \"translateX(-50%)\",\r\n width: 0,\r\n height: 0,\r\n borderTop: \"10px solid \" + fade(theme.palette.secondary.main, 0.3),\r\n borderRight: \"10px solid transparent\",\r\n borderLeft: \"10px solid transparent\",\r\n },\r\n brIphone: {\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n toolBar: {\r\n \"@media print\": {\r\n display: \"none\",\r\n \"& *\": {\r\n display: \"none\",\r\n },\r\n },\r\n },\r\n}));\r\n\r\nexport default function ReserveThanks(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n const theme = useTheme();\r\n const { history } = useReactRouter();\r\n const userctx = useContext(UserContext);\r\n const reservectx = useContext(ReserveContext);\r\n const [mailAddress, setMailAddress] = useSafeState(unmountRef);\r\n const [cardData, setCardData] = useSafeState(unmountRef);\r\n const [isEmptyDept, setIsEmptyDept] = useSafeState(unmountRef, true);\r\n\r\n const [newPatient, setNewPatient] = useSafeState(unmountRef, false);\r\n const [sexNameData, setSexNameData] = useSafeState(unmountRef, null); // 性別名リスト\r\n const [, setErrorMessage] = useSafeState(unmountRef, \"\"); // エラーメッセージ\r\n\r\n let bookData = props.location.state.bookData;\r\n let hospital = props.location.state.hospital;\r\n let dept = props.location.state.dept;\r\n //完了画面後表示文言(リッチエディタ未対応処理)\r\n if (isEmptyDept) {\r\n dept.completeSentence = dept.completeSentence ? dept.completeSentence : \"お知らせはありません\";\r\n try {\r\n JSON.parse(dept.completeSentence);\r\n } catch (error) {\r\n dept.completeSentence = `{\r\n \"blocks\":[\r\n {\r\n \"key\":\"637g\",\r\n \"text\":\"${dept.completeSentence.replace(/\\r?\\n/g,\"\\\\n\")}\",\r\n \"type\":\"unstyled\",\r\n \"depth\":0,\r\n \"inlineStyleRanges\":[],\r\n \"entityRanges\":[],\r\n \"data\":{}\r\n }\r\n ],\r\n \"entityMap\":{}\r\n }`;\r\n }\r\n setIsEmptyDept(false);\r\n }\r\n let reservation = props.location.state.reservation;\r\n let personInfo = props.location.state.persons;\r\n\r\n const [lineParam, setLineParam] = useSafeState(unmountRef, \"\");\r\n useEffect(() => {\r\n const f = async () => {\r\n try {\r\n await GetDivisions(\"sexCd\", setSexNameData);\r\n } catch (error) {\r\n setErrorMessage(\r\n \"エラーが発生しました。時間をおいて再度実行してください。\"\r\n );\r\n }\r\n };\r\n f();\r\n\r\n var asyncF = async () => {\r\n await ApiGetLineClientID().then((clientId) =>\r\n setLineParam(GenerateLineParameter(bookData[0].guId, clientId))\r\n );\r\n };\r\n asyncF();\r\n }, []);\r\n const isStaff = userctx.user && userctx.user.hospitalId === hospital.id;\r\n var lineReleaseObject = {};\r\n\r\n async function LineDelete() {\r\n let card = {\r\n mcdHospitalId: hospital.id,\r\n mcdId: bookData[0].cardNumber,\r\n mcdBirthDay: cardData.mcdBirthDay,\r\n mcdLineUserId: cardData.mcdLineUserId,\r\n };\r\n\r\n await axios\r\n .put(\"api/cards/line/\", [card], {\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n })\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n GetCard(hospital.id, bookData[0].cardNumber, cardData.mcdBirthDay);\r\n alert(\"Line連携を解除しました\");\r\n }\r\n return response;\r\n })\r\n .catch(function (error) {\r\n if (error.response.status === 400) {\r\n } else alert(\"エラー\");\r\n });\r\n }\r\n\r\n const GetCard = useCallback((hid, cno, birthDay) => {\r\n ApiGetCard(hid, cno, birthDay)\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n setCardData(response.data);\r\n }\r\n })\r\n .catch(function (error) {\r\n //TODO エラー処理\r\n });\r\n });\r\n const handleMailSave = useCallback((email) => {\r\n if (email)\r\n GetCard(hospital.id, bookData[0].cardNumber, bookData[0].birthDay);\r\n else {\r\n cardData.mcdEmail = \"\";\r\n setCardData(JSON.parse(JSON.stringify(cardData)));\r\n }\r\n });\r\n\r\n function handleLabelPrintClick(e) {\r\n history.push({\r\n pathname: `/${hospital.id}/r/print`,\r\n state: {\r\n hospital: hospital,\r\n dept: dept,\r\n reservation: reservation,\r\n bookData: bookData,\r\n isNewPatient: personInfo[0].newPatient,\r\n },\r\n });\r\n }\r\n\r\n const handleReleaseLine = () => {\r\n LineDelete();\r\n };\r\n\r\n useEffect(() => {\r\n // 再診登録中です を削除する。\r\n reservectx.closeFollowupNotistack();\r\n RemoveEntryDefaultValues(true); //予約入力画面に入力された内容を消去する\r\n GetCard(hospital.id, bookData[0].cardNumber, bookData[0].birthDay);\r\n\r\n setNewPatient(sessionStorage[sessionStorageKeys.NewPatient]);\r\n sessionStorage[sessionStorageKeys.NewPatient] = false;\r\n\r\n // 事前選択画面の選択値を削除する。\r\n sessionStorage.removeItem(sessionStorageKeys.PreConfirmSelectValue);\r\n }, []);\r\n\r\n useEffect(() => {\r\n setMailAddress(cardData ? cardData.mcdEmail : \"\");\r\n }, [cardData]);\r\n \r\n return (\r\n <>\r\n \r\n \r\n \r\n {hospital && }\r\n \r\n \r\n \r\n \r\n {/* {snackbarMsg}\r\n */}\r\n\r\n {/* \r\n
\r\n \r\n
\r\n 予約票\r\n
\r\n */}\r\n\r\n \r\n {/* //maxWidthを指定しておかないと印刷時に最大幅になる */}\r\n \r\n \r\n 予約完了\r\n
\r\n \r\n {hospital.name}\r\n \r\n 予約を受け付けました。\r\n
\r\n
\r\n 予約番号 : {bookData[0].bookOrder}\r\n
\r\n \r\n \r\n \r\n {\r\n window.print();\r\n }}\r\n style={{ whiteSpace: \"nowrap\" }}\r\n >\r\n \r\n  印刷\r\n \r\n \r\n {userctx &&\r\n userctx.hospital &&\r\n userctx.hospital.id === hospital.id && (\r\n \r\n \r\n \r\n  予約票\r\n \r\n \r\n )}\r\n
\r\n \r\n {hospital.isEnableLine === true && (\r\n \r\n \r\n \r\n )}\r\n\r\n {!(hospital && hospital.isRequireMail) && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {dept && dept.completeSentence && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*
{dept.completeSentence}
*/}\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 {hospital.name}\r\n \r\n \r\n \r\n \r\n 予約項目\r\n \r\n \r\n :\r\n \r\n \r\n {dept.name}\r\n \r\n \r\n \r\n \r\n 日付\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {dayjs(bookData[0].bookingDate).format(\r\n \"YYYY年MM月DD日\"\r\n )}\r\n  (\r\n {GetDayofWeekJp(\r\n new Date(bookData[0].bookingDate)\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 {reservation.label}\r\n \r\n \r\n ({\" \"}\r\n {GetTimeRangeStr(\r\n reservation.bgnTime,\r\n reservation.endTime\r\n )}{\" \"}\r\n )\r\n \r\n \r\n \r\n {hospital && hospital.isNewPatientReservable && (\r\n \r\n \r\n 初診/再診\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {personInfo &&\r\n personInfo[0].newPatient === true\r\n ? patientConst.new_patient\r\n : patientConst.not}\r\n \r\n \r\n \r\n )}\r\n {newPatient === false && (\r\n \r\n \r\n 診察券No\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {bookData[0].cardNumber}\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 {bookData[0].lastName +\r\n \" \" +\r\n bookData[0].firstName}\r\n \r\n \r\n \r\n {dept && dept.namePhoneticItemRequire && (\r\n \r\n \r\n 氏名(フリガナ)\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {bookData[0].lastNamePhonetic +\r\n \" \" +\r\n bookData[0].firstNamePhonetic}\r\n \r\n \r\n \r\n )}\r\n {dept && dept.sexItemRequire && (\r\n \r\n \r\n 性別\r\n \r\n \r\n :\r\n \r\n \r\n {sexNameData && bookData[0].sexId!=null ? sexNameData[Number(bookData[0].sexId)] : \"\"}\r\n \r\n \r\n )}\r\n \r\n \r\n 電話番号\r\n \r\n \r\n :\r\n \r\n \r\n {bookData[0].phoneNumber}\r\n \r\n \r\n \r\n \r\n メールアドレス\r\n \r\n \r\n :\r\n \r\n \r\n {bookData[0].email}\r\n \r\n \r\n \r\n \r\n 生年月日\r\n \r\n \r\n :\r\n \r\n \r\n \r\n {dayjs(bookData[0].birthDay).format(\r\n \"YYYY年MM月DD日\"\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {/* 備考 */}\r\n \r\n {\" \"}\r\n {dept && dept.noteItemName\r\n ? dept.noteItemName\r\n : \"備考\"}\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n {LineBreakToBr(\"note_\", bookData[0].note)}\r\n \r\n \r\n \r\n {dept && \r\n (dept.note2ItemRequire ||\r\n dept.note2ItemName ||\r\n dept.note2PlaceHolder) && (\r\n \r\n \r\n {/* 備考2 */}\r\n \r\n {\" \"}\r\n {dept && dept.note2ItemName\r\n ? dept.note2ItemName\r\n : \"備考2\"}\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n {LineBreakToBr(\"note_\", bookData[0].note2)}\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 {hospital.isEnableLine === true && (\r\n \r\n \r\n \r\n )}\r\n {!(hospital && hospital.isRequireMail) && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {hospital &&\r\n hospital.useHomePage &&\r\n (() => {\r\n if (isStaff || hospital.isSearchable === true) {\r\n return (\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 * @file 初診、再診などを事前選択する画面\r\n * (医療機関・予約項目 共用)\r\n */\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n CircularProgress,\r\n Container,\r\n Grid,\r\n Toolbar,\r\n Typography,\r\n Hidden,\r\n useMediaQuery,\r\n makeStyles,\r\n} from \"@material-ui/core\";\r\nimport { ArrowBack } from \"@material-ui/icons\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport { ApiGetDepts, ApiGetHospital } from \"components/api/HospitalApi\";\r\nimport { ApiHospitalScreensGet } from \"components/api/HospitalScreensApi\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport ChevronRightButton from \"components/input/button/ChevronRightButton\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\nimport OutlinedFab from \"components/input/button/OutlinedFab\";\r\nimport { reservationPath, sessionStorageKeys } from \"components/common/Const\";\r\nimport { AddPreConfirmSelectValue } from \"components/common/SessionStorageController\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport UseEffect2 from \"components/common/UseEffect2\";\r\nimport { ApiHospitalDeptScreensGet } from \"components/api/HospitalDeptScreensApi\";\r\nimport { ReserveContext } from \"./ReserveRoute\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport { WhiteSpaseBreakToBr } from \"components/common/Formatter\";\r\n\r\nconst useStyles = makeStyles((theme, props) => ({\r\n titleStyle: {\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"60%\",\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n width: \"100%\",\r\n },\r\n // width: \"60%\",\r\n wordBreak: \"break-word\",\r\n textAlign: \"center\",\r\n },\r\n}));\r\n\r\nexport default function SelectConfirm(props) {\r\n // didがある場合は、予約項目の事前選択\r\n const { id, hid, did } = props.match.params;\r\n // const hid = props.match.params.hid;\r\n // const id = props.match.params.id;\r\n const prefix = did ? \"mhd\" : \"mhs\";\r\n const theme = useTheme();\r\n var classes = useStyles();\r\n\r\n const { history } = useReactRouter();\r\n\r\n const unmountRef = useUnmountRef();\r\n\r\n const [screen, setScreen] = useSafeState(unmountRef);\r\n\r\n // const [hospital, setHospital] = useSafeState(unmountRef);\r\n const [disp, setDisp] = useSafeState(unmountRef, false);\r\n\r\n const [nextUrl, setNextUrl] = useSafeState(unmountRef);\r\n\r\n ///SEO関連\r\n const [depts, setDepts] = useSafeState(unmountRef, null);\r\n const [seoKeywords, setSeoKeywords] = useSafeState(unmountRef, \"予約\");\r\n const [seoDescription, setSeoDescription] = useSafeState(\r\n unmountRef,\r\n \"予約専用サイトです。予約の空き状況の確認や、予約の取得が可能です。\"\r\n );\r\n\r\n const defaultNextUrl = did\r\n ? `/${hid}${reservationPath}w/${did}`\r\n : `/${hid}/r`;\r\n // const selectDeptUri = ;\r\n\r\n const userctx = useContext(UserContext);\r\n const rsrvCtx = useContext(ReserveContext);\r\n\r\n const isSizeXsDown = useMediaQuery(theme.breakpoints.down(\"xs\"));\r\n\r\n UseEffect2(() => {\r\n /// SEOキーワードの設定\r\n // 予約項目の事前選択の場合は不要\r\n if (!did) {\r\n SetSeoKeywords(rsrvCtx.hospital, depts);\r\n SetSeoDescription(rsrvCtx.hospital, depts);\r\n }\r\n }, [rsrvCtx.hospital, depts]);\r\n\r\n function SetSeoKeywords(hospital, depts) {\r\n /// SEOキーワードの設定\r\n var keywords = \"予約\";\r\n // 病院\r\n if (hospital) {\r\n keywords = `${keywords},${hospital.name}`;\r\n // 病院都道府県名\r\n if (hospital.prefName) keywords = `${keywords},${hospital.prefName}`;\r\n // 市区町村名\r\n if (hospital.cityName) keywords = `${keywords},${hospital.cityName}`;\r\n }\r\n // 予約項目名\r\n if (depts) {\r\n var text = \"\";\r\n for (let i = 0; i < depts.length; i++) {\r\n let item = depts[i];\r\n if (item.isVisible) text = `${text},${item.name}`;\r\n }\r\n keywords = keywords + text;\r\n }\r\n setSeoKeywords(keywords);\r\n }\r\n\r\n function SetSeoDescription(hospital, depts) {\r\n var hospitalName = \"当医院\";\r\n var prefName = \"\";\r\n var cityName = \"\";\r\n var depts = \"\";\r\n // 病院名\r\n if (hospital) {\r\n hospitalName = hospital.name;\r\n if (hospital.prefName) prefName = hospital.prefName;\r\n if (hospital.cityName) cityName = hospital.cityName;\r\n }\r\n setSeoDescription(\r\n `${prefName ? prefName : \"\"}${cityName ? cityName : \"\"}${\r\n (prefName || cityName) && \"の\"\r\n }${hospitalName}のWeb予約ページです。Webで予約受付や空き状況の確認ができます。`\r\n );\r\n }\r\n async function GetDepts(hid) {\r\n await ApiGetDepts(hid)\r\n .then(function (response) {\r\n setDepts(response);\r\n })\r\n .catch(function (error) {});\r\n }\r\n\r\n const SetNextURL = (data) => {\r\n if (data.length === 0) history.replace(defaultNextUrl);\r\n\r\n if (id === \"0\") {\r\n // 初回呼び出し時\r\n setScreen(data[0]);\r\n\r\n if (data.length <= 1) {\r\n setNextUrl(defaultNextUrl);\r\n } else {\r\n setNextUrl(\r\n `/${hid}/r/${did ? `dsc/${did}` : \"sc\"}/${\r\n did ? data[1][`${prefix}ShowOrder`] : data[1][`${prefix}Id`]\r\n }`\r\n );\r\n }\r\n } else {\r\n // 2回目以降呼び出し時\r\n var target = data.filter((x) =>\r\n did\r\n ? x[`${prefix}ShowOrder`] === Number(id)\r\n : x[`${prefix}Id`] === Number(id)\r\n );\r\n var next = data.filter((x) =>\r\n did\r\n ? x[`${prefix}ShowOrder`] > Number(id)\r\n : x[`${prefix}Id`] > Number(id)\r\n );\r\n if (target.length === 0) history.replace(defaultNextUrl);\r\n\r\n if (next.length === 0) {\r\n setNextUrl(defaultNextUrl);\r\n } else {\r\n setNextUrl(\r\n `/${hid}/r/${did ? `dsc/${did}` : \"sc\"}/${\r\n did ? next[0][`${prefix}ShowOrder`] : next[0][`${prefix}Id`]\r\n }`\r\n );\r\n }\r\n\r\n setScreen(target[0]);\r\n }\r\n };\r\n\r\n async function GetScreens() {\r\n let isSuccess = false;\r\n if (did) {\r\n if (\r\n rsrvCtx.deptScreens &&\r\n rsrvCtx.deptScreens.length > 0 &&\r\n rsrvCtx.deptScreens[0].mhdHospitalId == hid &&\r\n rsrvCtx.deptScreens[0].mhdDeptId == did\r\n ) {\r\n // 予約項目事前選択画面リストを取得済みかつ、医療機関ID・予約項目IDが同一の場合は取得処理なし\r\n SetNextURL(rsrvCtx.deptScreens);\r\n } else {\r\n //予約項目事前選択の場合\r\n await ApiHospitalDeptScreensGet(hid, did)\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (response) {\r\n if (!isSuccess) {\r\n } else {\r\n SetNextURL(response.data);\r\n rsrvCtx.setDeptScreens(response.data);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetDeptScreens error\", error);\r\n });\r\n }\r\n } else {\r\n // 医院事前選択の場合\r\n if (\r\n rsrvCtx.screens &&\r\n rsrvCtx.screens.length > 0 &&\r\n rsrvCtx.screens[0].mhsHospitalId == hid\r\n ) {\r\n // 事前選択画面リストを取得済みかつ、医療機関IDが同一の場合は取得処理なし\r\n SetNextURL(rsrvCtx.screens);\r\n } else {\r\n await ApiHospitalScreensGet(hid)\r\n .then(function (response) {\r\n if (response.status === 200) {\r\n isSuccess = true;\r\n }\r\n return response;\r\n })\r\n .then(function (response) {\r\n if (!isSuccess) {\r\n } else {\r\n SetNextURL(response.data);\r\n rsrvCtx.setScreens(response.data);\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"GetScreens error\", error);\r\n });\r\n }\r\n }\r\n }\r\n\r\n // async function GetHospital(hid) {\r\n // await ApiGetHospital(hid)\r\n // .then(function (response) {\r\n // setHospital(response[0]);\r\n // })\r\n // .catch(function () {});\r\n // }\r\n\r\n useEffect(() => {\r\n GetScreens();\r\n // GetHospital(hid);\r\n GetDepts(hid);\r\n\r\n const cleanup = () => {};\r\n return cleanup;\r\n }, []);\r\n useEffect(() => {\r\n GetScreens();\r\n // GetHospital(hid);\r\n GetDepts(hid);\r\n }, [id, userctx]);\r\n\r\n useEffect(() => {\r\n if (screen) {\r\n // setTimeout( () => setDisp(true), 3000);\r\n setDisp(true);\r\n\r\n if (screen[`${prefix}IsNewPatient1`] || screen[`${prefix}IsNewPatient2`])\r\n sessionStorage[sessionStorageKeys.NewPatient] = false;\r\n }\r\n }, [screen]);\r\n\r\n const handleClickBtn1 = () =>\r\n history.push(\r\n did\r\n ? `/${hid}/r/dpc/${did}/${screen[`${prefix}ShowOrder`]}`\r\n : `/${hid}/r/pc/${screen[`${prefix}Id`]}`\r\n );\r\n const handleClickBtn2 = () => {\r\n if (screen[`${prefix}IsNewPatient2`]) {\r\n sessionStorage[sessionStorageKeys.NewPatient] = true;\r\n }\r\n // 事前選択画面の選択した値を保持しておく。\r\n AddPreConfirmSelectValue(\r\n screen[`${prefix}HospitalId`],\r\n did ? `${screen[`${prefix}ShowOrder`]}` : screen[`${prefix}Id`],\r\n 2,\r\n did\r\n );\r\n\r\n history.push(nextUrl);\r\n };\r\n\r\n const ButtonTest = (props) => {\r\n const { title, ...others } = props;\r\n return (\r\n <>\r\n \r\n {title}\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n {rsrvCtx.hospital && (\r\n <>\r\n \r\n {seoKeywords && }\r\n {seoDescription && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n {disp === true ? (\r\n <>\r\n \r\n \r\n \r\n {rsrvCtx.hospital && (\r\n \r\n )}\r\n\r\n {/* ボタンでっかいバージョン */}\r\n {/* \r\n \r\n \r\n \r\n \r\n {rsrvCtx.hospital && (\r\n \r\n {rsrvCtx.hospital.name}\r\n \r\n )}\r\n {did && rsrvCtx.dept && (\r\n \r\n {rsrvCtx.dept.name}\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 {rsrvCtx.hospital && (\r\n \r\n {rsrvCtx.hospital.name}\r\n \r\n )}\r\n {did && rsrvCtx.dept && (\r\n \r\n {rsrvCtx.dept.name}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {screen[`${prefix}ButtonName1`]}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {screen[`${prefix}ButtonName2`]}\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 {rsrvCtx.hospital && (\r\n <>\r\n \r\n {WhiteSpaseBreakToBr(\r\n \"address\",\r\n rsrvCtx.hospital.prefName + rsrvCtx.hospital.cityName\r\n )}\r\n \r\n \r\n {WhiteSpaseBreakToBr(\"title\", rsrvCtx.hospital.name)}\r\n \r\n \r\n )}\r\n {did && rsrvCtx.dept && (\r\n \r\n {WhiteSpaseBreakToBr(\"title\", rsrvCtx.dept.name)}\r\n {/* {rsrvCtx.dept.name} */}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {screen[`${prefix}ButtonName1`]}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {screen[`${prefix}ButtonName2`]}\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 * @file 事前選択後の画面\r\n * (医療機関・予約項目 共用)\r\n */\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport { Button, Container, Grid, Toolbar, Paper } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport { ApiHospitalScreensGet } from \"components/api/HospitalScreensApi\";\r\nimport ScroollToTopOnMount from \"components/behavior/Scroll\";\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport WysiWygEditor from \"components/editor/WysiWygEditor\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport useReactRouter from \"use-react-router\";\r\nimport { reservationPath, sessionStorageKeys } from \"components/common/Const\";\r\nimport { AddPreConfirmSelectValue } from \"components/common/SessionStorageController\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport { ApiGetHospital } from \"components/api/HospitalApi\";\r\nimport { FloatingBackgroundGlobalCss } from \"components/styles/CommonStyle\";\r\nimport EditScreenButtons from \"components/input/button/EditScreenButtons\";\r\nimport { ChevronRight } from \"@material-ui/icons\";\r\nimport { ApiHospitalDeptScreensGet } from \"components/api/HospitalDeptScreensApi\";\r\nimport { ReserveContext } from \"./ReserveRoute\";\r\n\r\nexport default function PreConfirm(props) {\r\n const theme = useTheme();\r\n const hid = props.match.params.hid;\r\n const did = props.match.params.did;\r\n const id = props.match.params.id;\r\n const rsrvCtx = useContext(ReserveContext);\r\n\r\n const unmountRef = useUnmountRef();\r\n const { history } = useReactRouter();\r\n\r\n const [screen, setScreen] = useSafeState(unmountRef);\r\n // const [hospital, setHospital] = useSafeState(unmountRef);\r\n\r\n const [nextScreenUrl, setNextScreenUrl] = useSafeState(unmountRef);\r\n const prefix = did ? \"mhd\" : \"mhs\";\r\n\r\n const selectConfirmUri = `/${hid}/r/sc/0`;\r\n const defaultNextUrl = did\r\n ? `/${hid}${reservationPath}w/${did}`\r\n : `/${hid}/r`;\r\n\r\n const SetNextURL = (data) => {\r\n if (data.length === 0) history.replace(defaultNextUrl);\r\n\r\n if (id === \"0\") {\r\n // 初回呼び出し時\r\n setScreen(data[0]);\r\n\r\n if (data.length <= 1) {\r\n setNextScreenUrl(defaultNextUrl);\r\n } else {\r\n setNextScreenUrl(\r\n `/${hid}/r/${did ? `dsc/${did}` : \"sc\"}/${\r\n did ? data[1][`${prefix}ShowOrder`] : data[1][`${prefix}Id`]\r\n }`\r\n );\r\n }\r\n } else {\r\n // 2回目以降呼び出し時\r\n var target = data.filter((x) =>\r\n did\r\n ? x[`${prefix}ShowOrder`] === Number(id)\r\n : x[`${prefix}Id`] === Number(id)\r\n );\r\n var next = data.filter((x) =>\r\n did\r\n ? x[`${prefix}ShowOrder`] > Number(id)\r\n : x[`${prefix}Id`] > Number(id)\r\n );\r\n if (target.length === 0) history.replace(defaultNextUrl);\r\n\r\n if (next.length === 0) {\r\n setNextScreenUrl(defaultNextUrl);\r\n } else {\r\n setNextScreenUrl(\r\n `/${hid}/r/${did ? `dsc/${did}` : \"sc\"}/${\r\n did ? next[0][`${prefix}ShowOrder`] : next[0][`${prefix}Id`]\r\n }`\r\n );\r\n }\r\n\r\n setScreen(target[0]);\r\n }\r\n };\r\n\r\n async function GetScreens() {\r\n let isSuccess = false;\r\n\r\n if (did) {\r\n if (!rsrvCtx.deptScreens || rsrvCtx.deptScreens.length <= 0)\r\n history.replace(selectConfirmUri);\r\n SetNextURL(rsrvCtx.deptScreens);\r\n //予約項目事前選択の場合\r\n // await ApiHospitalDeptScreensGet(hid, did)\r\n // .then(function (response) {\r\n // if (response.status === 200) {\r\n // isSuccess = true;\r\n // }\r\n // return response;\r\n // })\r\n // .then(function (response) {\r\n // if (!isSuccess) {\r\n // } else {\r\n // SetNextURL(response.data);\r\n // }\r\n // })\r\n // .catch(function (error) {\r\n // console.log(\"GetScreens error\", error);\r\n // });\r\n } else {\r\n if (!rsrvCtx.screens || rsrvCtx.screens.length <= 0)\r\n history.replace(selectConfirmUri);\r\n SetNextURL(rsrvCtx.screens);\r\n // await ApiHospitalScreensGet(hid)\r\n // .then(function (response) {\r\n // if (response.status === 200) {\r\n // isSuccess = true;\r\n // }\r\n // return response;\r\n // })\r\n // .then(function (response) {\r\n // if (!isSuccess) {\r\n // } else {\r\n // SetNextURL(response.data);\r\n // }\r\n // })\r\n // .catch(function (error) {\r\n // console.log(\"GetScreens error\", error);\r\n // });\r\n }\r\n }\r\n\r\n const button1Text = () => {\r\n return (\r\n <>\r\n 次へ \r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n // GetHospital(hid);\r\n\r\n GetScreens();\r\n const cleanup = () => {};\r\n return cleanup;\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {screen && (\r\n
\r\n \r\n \r\n \r\n {rsrvCtx.hospital && (\r\n \r\n )}\r\n\r\n \r\n {screen[`${prefix}Title`]}\r\n \r\n {screen[`${prefix}Text`] && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {screen[`${prefix}IsUseReserve`] && (\r\n \r\n {\r\n if (screen[`${prefix}IsNewPatient1`])\r\n sessionStorage[sessionStorageKeys.NewPatient] = true;\r\n\r\n // 事前選択画面の選択した値を保持しておく。\r\n AddPreConfirmSelectValue(\r\n screen[`${prefix}HospitalId`],\r\n did\r\n ? `${screen[`${prefix}ShowOrder`]}`\r\n : screen[`${prefix}Id`],\r\n 1,\r\n did\r\n );\r\n\r\n history.push(nextScreenUrl);\r\n }}\r\n />\r\n \r\n )}\r\n \r\n \r\n
\r\n )}\r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { chainPropTypes } from '@material-ui/utils';\r\nimport { ButtonBase, capitalize, withStyles } from '@material-ui/core';\r\n\r\nexport const styles = (theme) => ({\r\n /* Styles applied to the root element. */\r\n root: {\r\n textAlign: 'center',\r\n flex: '0 0 auto',\r\n fontSize: theme.typography.pxToRem(24),\r\n padding: 12,\r\n borderRadius: '50%',\r\n overflow: 'visible', // Explicitly set the default value to solve a bug on IE11.\r\n color: theme.palette.action.active,\r\n border: \"2px solid #ddd\",\r\n transition: theme.transitions.create('background-color', {\r\n duration: theme.transitions.duration.shortest,\r\n }),\r\n '&:hover': {\r\n // backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),\r\n // backgroundColor: fade(theme.palette.action.active, theme.palette.action.hoverOpacity),\r\n // Reset on touch devices, it doesn't add specificity\r\n '@media (hover: none)': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n '&$disabled': {\r\n backgroundColor: 'transparent',\r\n color: theme.palette.action.disabled,\r\n },\r\n },\r\n /* Styles applied to the root element if `edge=\"start\"`. */\r\n edgeStart: {\r\n marginLeft: -12,\r\n '$sizeSmall&': {\r\n marginLeft: -3,\r\n },\r\n },\r\n /* Styles applied to the root element if `edge=\"end\"`. */\r\n edgeEnd: {\r\n marginRight: -12,\r\n '$sizeSmall&': {\r\n marginRight: -3,\r\n },\r\n },\r\n /* Styles applied to the root element if `color=\"inherit\"`. */\r\n colorInherit: {\r\n color: 'inherit',\r\n },\r\n /* Styles applied to the root element if `color=\"primary\"`. */\r\n colorPrimary: {\r\n color: theme.palette.primary.main,\r\n borderColor: theme.palette.primary.main,\r\n '&:hover': {\r\n // backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity),\r\n // backgroundColor: fade(theme.palette.primary.main, theme.palette.action.hoverOpacity),\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n // Reset on touch devices, it doesn't add specificity\r\n '@media (hover: none)': {\r\n // backgroundColor: theme.palette.primary.main,\r\n },\r\n },\r\n },\r\n /* Styles applied to the root element if `color=\"secondary\"`. */\r\n colorSecondary: {\r\n color: theme.palette.secondary.main,\r\n borderColor: theme.palette.secondary.main,\r\n '&:hover': {\r\n // backgroundColor: alpha(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\r\n backgroundColor: theme.palette.secondary.main,\r\n color: theme.palette.secondary.contrastText,\r\n // Reset on touch devices, it doesn't add specificity\r\n '@media (hover: none)': {\r\n borderColor: theme.palette.secondary.main\r\n },\r\n },\r\n },\r\n /* Styles applied to the root element if `color=\"warning\"`. */\r\n colorWarning: {\r\n color: theme.palette.warning.main,\r\n borderColor: theme.palette.warning.main,\r\n '&:hover': {\r\n // backgroundColor: alpha(theme.palette.warning.main, theme.palette.action.hoverOpacity),\r\n // backgroundColor: fade(theme.palette.warning.main, theme.palette.action.hoverOpacity),\r\n // Reset on touch devices, it doesn't add specificity\r\n backgroundColor: theme.palette.warning.main,\r\n color: theme.palette.warning.contrastText,\r\n '@media (hover: none)': {\r\n // borderColor: theme.palette.warning.main,\r\n },\r\n },\r\n },\r\n /* Styles applied to the root element if `color=\"warning\"`. */\r\n colorError: {\r\n color: theme.palette.error.main,\r\n borderColor: theme.palette.error.main,\r\n '&:hover': {\r\n backgroundColor: theme.palette.error.main,\r\n color: theme.palette.error.contrastText,\r\n // backgroundColor: alpha(theme.palette.error.main, theme.palette.action.hoverOpacity),\r\n // backgroundColor: fade(theme.palette.error.main, theme.palette.action.hoverOpacity),\r\n // Reset on touch devices, it doesn't add specificity\r\n '@media (hover: none)': {\r\n // borderColor: theme.palette.error.main,\r\n },\r\n },\r\n },\r\n /* Pseudo-class applied to the root element if `disabled={true}`. */\r\n disabled: {},\r\n /* Styles applied to the root element if `size=\"small\"`. */\r\n sizeSmall: {\r\n padding: 3,\r\n fontSize: theme.typography.pxToRem(18),\r\n },\r\n /* Styles applied to the children container element. */\r\n label: {\r\n width: '100%',\r\n display: 'flex',\r\n alignItems: 'inherit',\r\n justifyContent: 'inherit',\r\n },\r\n});\r\n\r\n/**\r\n * Refer to the [Icons](/components/icons/) section of the documentation\r\n * regarding the available icon options.\r\n */\r\nconst IconButtonBorder = React.forwardRef(function IconButtonBorder(props, ref) {\r\n const {\r\n edge = false,\r\n children,\r\n classes,\r\n className,\r\n color = 'default',\r\n disabled = false,\r\n disableFocusRipple = false,\r\n size = 'medium',\r\n ...other\r\n } = props;\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n});\r\n\r\nIconButtonBorder.propTypes = {\r\n // ----------------------------- Warning --------------------------------\r\n // | These PropTypes are generated from the TypeScript type definitions |\r\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\r\n // ----------------------------------------------------------------------\r\n /**\r\n * The icon to display.\r\n */\r\n children: chainPropTypes(PropTypes.node, (props) => {\r\n const found = React.Children.toArray(props.children).some(\r\n (child) => React.isValidElement(child) && child.props.onClick,\r\n );\r\n\r\n if (found) {\r\n return new Error(\r\n [\r\n 'Material-UI: You are providing an onClick event listener to a child of a button element.',\r\n 'Prefer applying it to the IconButton directly.',\r\n 'This guarantees that the whole \r\n \r\n ),\r\n });\r\n keyRef.current = key;\r\n }\r\n\r\n return () => {\r\n layoutCtx.SetHospitalId(null);\r\n keyRef.current && msgctx.closeSnackbar(keyRef.current);\r\n };\r\n }, []);\r\n\r\n const onClickClose = () => {\r\n keyRef.current && msgctx.closeSnackbar(keyRef.current);\r\n\r\n const param = sessionStorage.getItem(sessionStorageKeys.EntryDefaultValues);\r\n if (param) {\r\n const p = JSON.parse(param);\r\n if (p.persons && p.persons[0].isFollowUp === true) {\r\n p.persons[0].isFollowUp = false;\r\n sessionStorage.setItem(\r\n sessionStorageKeys.EntryDefaultValues,\r\n JSON.stringify(p)\r\n );\r\n }\r\n }\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 {/* 予約入力 */}\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// export default withStyles(commonStyle)(Contact)\r\n","/**\r\n * @file マイページ画面へのログイン画面\r\n */\r\n import {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, {\r\n useCallback,\r\n Fragment,\r\n useRef,\r\n useEffect,\r\n useContext,\r\n} from \"react\";\r\nimport {\r\n Box,\r\n Button,\r\n Grid,\r\n Toolbar,\r\n Paper,\r\n Container,\r\n useTheme,\r\n} from \"@material-ui/core/\";\r\nimport { fade,makeStyles } from \"@material-ui/core/styles\";\r\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport {\r\n ErrMsgKey,\r\n GetErrMsg,\r\n ErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport axios from \"axios\";\r\nimport * as yup from \"yup\";\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport DialogTitleText from \"components/text/DialogTitleText\";\r\nimport { YmdSelect } from \"components/input/selectlist/YmdSelectList\";\r\nimport { BootstrapInputWithLabel } from \"components/input/textbox/BootstrapInput\";\r\nimport dayjs from \"dayjs\";\r\nimport { GoogleReCaptcha, useGoogleReCaptcha } from \"react-google-recaptcha-v3\";\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport { ApiGetHospital } from \"components/api/HospitalApi\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\nimport { RecaptchaSiteKeyV2 } from \"components/common/Const\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n box: {\r\n textAlign: \"center\",\r\n },\r\n wrapper: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n position: \"relative\",\r\n },\r\n}));\r\n\r\nexport function LoginFormContainer(props) {\r\n return (\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 function LoginForm(props) {\r\n const unmountRef = useUnmountRef();\r\n const theme = useTheme();\r\n const msg = useContext(MessageContext);\r\n const [hospital, setHospital] = useSafeState(unmountRef, null);\r\n const [isSuccess, setIsSuccess] = useSafeState(unmountRef);\r\n const [submitDisabled, setSubmitDisabled] = useSafeState(unmountRef, false); //submitボタンの活性制御\r\n const hid = props.match.params.hid;\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n const [recaptchaVersion, setRecaptchaVersion] = useSafeState(unmountRef, 3);\r\n const [recaptchaObj, setRecaptchaObj] = useSafeState(unmountRef);\r\n const recaptchaV2 = useRef(null);\r\n const [recaptchaV2Token, setRecaptchaV2Token] = useSafeState(\r\n unmountRef,\r\n null\r\n );\r\n const [recaptchaV3Token, setRecaptchaV3Token] = useSafeState(\r\n unmountRef,\r\n null\r\n );\r\n //入力チェックのスキーマ定義\r\n const [schemaData, setSchemaData] = useSafeState(unmountRef, {\r\n cno: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n birthYear: yup.string().required(GetErrMsg(ErrMsgKey.required)),\r\n birthMonth: yup\r\n .string()\r\n .test(\"isRequire\", GetErrMsg(ErrMsgKey.required), function (item) {\r\n return this.parent.birthYear && !item ? false : true;\r\n }),\r\n birthDay: yup\r\n .string()\r\n .test(\"isRequire\", GetErrMsg(ErrMsgKey.required), function (item) {\r\n return this.parent.birthYear && this.parent.birthMonth && !item\r\n ? false\r\n : true;\r\n }),\r\n });\r\n const schema = yup.object().shape(schemaData);\r\n const { register, handleSubmit, errors, setError, clearErrors } = useForm({\r\n resolver: yupResolver(schema),\r\n });\r\n\r\n const GetHospital = useCallback((hid) => {\r\n ApiGetHospital(hid)\r\n .then(function (response) {\r\n if (response && response.length > 0) setHospital(response[0]);\r\n })\r\n .catch(function (error) {\r\n msg.enqueue(\"医療機関データが取得できませんでした\", \"error\");\r\n });\r\n });\r\n\r\n function onSubmit(data) {\r\n const recaptchaToken =\r\n recaptchaVersion === 3 ? recaptchaV3Token : recaptchaV2Token;\r\n const birthDay = dayjs(\r\n new Date(data.birthYear, data.birthMonth - 1, data.birthDay)\r\n ).format(\"YYYY-MM-DD HH:mm:ss\");\r\n const params = {\r\n hid: hid,\r\n cno: data.cno,\r\n birthDay: birthDay,\r\n token: recaptchaToken,\r\n version: recaptchaVersion,\r\n };\r\n axios\r\n .get(\"api/Bookings/auth\", { params: params })\r\n .then(function (response) {\r\n //ReCaptcha v3のリセット\r\n if (recaptchaVersion === 3) {\r\n executeRecaptcha().then((token) => {\r\n handleReCaptchaVerify(token);\r\n });\r\n }\r\n\r\n //ReCaptcha v2のリセット\r\n if (recaptchaV2.current) recaptchaV2.current.reset();\r\n\r\n if (response.status == 200) {\r\n if (Object.keys(response.data).length > 0) {\r\n props.history.push({\r\n pathname: `/${hid}/mypage`,\r\n state: {\r\n hnm: hospital.name,\r\n cno: data.cno,\r\n birthDay: birthDay,\r\n },\r\n });\r\n } else {\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: \"診察券番号か生年月日が間違っています\",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n if (error.response && error.response.data) {\r\n //ReCaptchaによるエラー\r\n var data = error.response.data;\r\n data.errors.forEach((item) => {\r\n if (item.isBot) {\r\n setRecaptchaVersion(2);\r\n\r\n setError(\"summary\", { type: \"manual\", message: data.message });\r\n }\r\n });\r\n } else {\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: GetErrMsg(ErrMsgKey.unexpected),\r\n });\r\n }\r\n return undefined;\r\n })\r\n .finally(function () {\r\n //ReCaptcha v2のリセット\r\n if (recaptchaV2.current) recaptchaV2.current.reset();\r\n });\r\n }\r\n\r\n const handleReCaptchaVerify = useCallback(\r\n (token) => {\r\n setRecaptchaV3Token(token);\r\n },\r\n [setRecaptchaV3Token]\r\n ); //こうしておかないと無限ループになる\r\n\r\n const handleReCaptchaV2Change = useCallback((token) => {\r\n setRecaptchaV2Token(token);\r\n });\r\n\r\n useEffect(() => {\r\n recaptchaV2.current = recaptchaObj;\r\n }, [recaptchaObj]);\r\n\r\n useEffect(() => {\r\n GetHospital(hid);\r\n }, []);\r\n\r\n const classes = useStyles();\r\n const style = commonStyle();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {hospital && }\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {hospital ? {hospital.name} : }\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 {recaptchaVersion === 3 && (\r\n \r\n )}\r\n {recaptchaVersion === 2 && (\r\n
\r\n setRecaptchaObj(e)}\r\n style={{ width: \"100%\" }}\r\n />\r\n
\r\n
\r\n )}\r\n\r\n {\r\n clearErrors();\r\n }}\r\n disabled={\r\n submitDisabled ||\r\n (recaptchaVersion === 2 && recaptchaV2Token === null)\r\n }\r\n >\r\n マイページへ\r\n \r\n
\r\n
\r\n \r\n {\r\n window.history.back();\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 * @file マイページ画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { Fragment, useCallback, useContext, useEffect } from \"react\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport {\r\n Box,\r\n Button,\r\n Container,\r\n Grid,\r\n makeStyles,\r\n Paper,\r\n Toolbar,\r\n Typography,\r\n useTheme,\r\n} from \"@material-ui/core\";\r\nimport ScrollToTopOnMount from \"components/behavior/Scroll\";\r\nimport TitleText from \"components/text/TitleText\";\r\nimport axios from \"axios\";\r\nimport {\r\n ErrMsg,\r\n ErrMsgKey,\r\n GetErrMsg,\r\n} from \"components/common/ErrorMessageProvider\";\r\nimport dayjs from \"dayjs\";\r\nimport SectionTitleText from \"components/text/SectionTitleText\";\r\nimport { Alert, AlertTitle } from \"@material-ui/lab\";\r\nimport ConfirmDialog from \"components/dialog/ConfirmDialog\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport IOSSwitch from \"components/input/switch/IOSSwitch\";\r\nimport { GenerateLineParameter, lineUrl } from \"components/common/LineConfig\";\r\nimport { ApiGetCard } from \"components/api/CardsApi\";\r\nimport LineButton from \"components/input/button/LineButton\";\r\nimport MailButton from \"components/input/button/MailButton\";\r\nimport { MessageContext } from \"components/context/MessageContext\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport {\r\n GetTimeRangeStr,\r\n TimeToDamyDatetime,\r\n} from \"components/common/DateTimeHelper\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport {\r\n ApiPostSendDeleteLine,\r\n ApiPostSendDeleteMail,\r\n ApiPostSendDeleteMailToDept,\r\n ApiPostSendUndoDeleteLine,\r\n ApiPostSendUndoDeleteMail,\r\n ApiPostSendUndoDeleteMailToDept,\r\n} from \"components/api/BookingsApi\";\r\nimport { ApiGetLineClientID } from \"components/api/LINELoginApi\";\r\nimport ScrollDialog from \"components/dialog/ScrollDialog\";\r\nimport { termOfUseHtml } from \"components/common/Const\";\r\nimport WysiWygEditor from \"components/editor/WysiWygEditor\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n // box: {\r\n // textAlign: \"center\",\r\n // marginTop: theme.spacing(3),\r\n // },\r\n wrapper: {\r\n margin: theme.spacing(1),\r\n position: \"relative\",\r\n },\r\n title: {\r\n textAlign: \"left\",\r\n marginBottom: \"5px\",\r\n },\r\n content: {\r\n textAlign: \"left\",\r\n marginBottom: \"5px\",\r\n },\r\n notifyButton: {\r\n width: \"300px\",\r\n height: \"60px\",\r\n },\r\n flexCenter: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n}));\r\n\r\nexport function MyPage(props) {\r\n const unmountRef = useUnmountRef();\r\n const theme = useTheme();\r\n const classes = useStyles(props);\r\n const style = commonStyle();\r\n const userctx = useContext(UserContext);\r\n const [bookData, setBookData] = useSafeState(unmountRef, []);\r\n const hid = props.match.params.hid;\r\n const [param, setParam] = useSafeState(unmountRef, props.location.state);\r\n const [openCancelDialog, setOpenCancelDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n );\r\n const [cancelParameter, setCancelParameter] = useSafeState(unmountRef, null);\r\n const { errors, clearErrors, setError } = useForm();\r\n const [isShowCanceled, setIsShowCanceled] = useSafeState(unmountRef, false);\r\n const [cardData, setCardData] = useSafeState(unmountRef);\r\n const [lineClientId, setLineClientId] = useSafeState(unmountRef);\r\n\r\n const msg = useContext(MessageContext);\r\n\r\n useEffect(() => {}, [userctx]);\r\n\r\n const [lineParam, setLineParam] = useSafeState(unmountRef, \"\");\r\n useEffect(() => {\r\n if (hid) {\r\n if (param) {\r\n sessionStorage[\"imr_hrs_hid_\" + hid] = param;\r\n } else {\r\n setParam(sessionStorage[\"imr_hrs_hid_\" + hid]);\r\n if (!param) props.history.push({ pathname: `/${hid}/mypage/auth/` });\r\n }\r\n } else {\r\n //TODO hidが無い場合の遷移先\r\n props.history.push({\r\n pathname: `/`,\r\n });\r\n }\r\n var asyncF = async () => {\r\n await ApiGetLineClientID().then((clientId) =>\r\n setLineClientId(clientId)\r\n );\r\n };\r\n asyncF();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (lineClientId && bookData && cardData) {\r\n setLineParam(\r\n GenerateLineParameter(\r\n bookData.length > 0\r\n ? bookData[0].booking.guId\r\n : cardData\r\n ? cardData.guId\r\n : null,\r\n lineClientId\r\n )\r\n );\r\n }\r\n }, [lineClientId, bookData, cardData]);\r\n\r\n const GetCard = useCallback(async (hid, cno, birthDay) => {\r\n await ApiGetCard(hid, cno, birthDay)\r\n .then(function (response) {\r\n //alert(JSON.stringify(response));\r\n if (response.status == 200) {\r\n setCardData(response.data);\r\n }\r\n })\r\n .catch(function (error) {\r\n //TODO エラー処理\r\n });\r\n });\r\n\r\n useEffect(() => {\r\n if (param) {\r\n GetMyBookings(hid, param.cno, param.birthDay);\r\n GetCard(hid, param.cno, param.birthDay);\r\n }\r\n }, [param]);\r\n\r\n const GetMyBookings = useCallback(async (hid, cno, birthDay) => {\r\n await axios\r\n .get(\"api/Bookings/my\", {\r\n params: { hid: hid, cno: cno, birthDay: birthDay },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n response.data.map((item) => {\r\n //完了画面後表示文言(リッチエディタ未対応処理)\r\n item.dept.completeSentence = item.dept.completeSentence ? item.dept.completeSentence : \"お知らせはありません\";\r\n try {\r\n JSON.parse(item.dept.completeSentence);\r\n } catch (error) {\r\n item.dept.completeSentence = `{\r\n \"blocks\":[\r\n {\r\n \"key\":\"637g\",\r\n \"text\":\"${item.dept.completeSentence.replace(/\\r?\\n/g,\"\\\\n\")}\",\r\n \"type\":\"unstyled\",\r\n \"depth\":0,\r\n \"inlineStyleRanges\":[],\r\n \"entityRanges\":[],\r\n \"data\":{}\r\n }\r\n ],\r\n \"entityMap\":{}\r\n }`;\r\n }\r\n });\r\n setBookData(response.data);\r\n }\r\n })\r\n .catch(function (error) {\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: GetErrMsg(ErrMsgKey.unexpected),\r\n });\r\n return undefined;\r\n });\r\n });\r\n\r\n async function LineDelete() {\r\n let card = {\r\n mcdHospitalId: hid,\r\n mcdId: param.cno,\r\n mcdBirthDay: cardData.mcdBirthDay,\r\n mcdLineUserId: cardData.mcdLineUserId,\r\n };\r\n await axios\r\n .put(\"api/cards/line/\", [card], {\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n })\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n GetCard(hid, param.cno, param.birthDay);\r\n msg.enqueue(\"LINE連携を解除しました。\");\r\n }\r\n return response;\r\n })\r\n .catch(function (error) {\r\n if (error.response.status == 400) {\r\n } else msg.enqueue(\"LINE連携を解除出来ませんでした。恐れ入りますが、時間を空けて再度お試しください\", \"error\");\r\n });\r\n }\r\n\r\n const handleReleaseLine = () => {\r\n LineDelete();\r\n };\r\n\r\n const handleCancelClick = useCallback((e, index, booking) => {\r\n setCancelParameter(booking);\r\n setOpenCancelDialog(true);\r\n });\r\n\r\n const handleCancelDialogSubmit = useCallback(async (e, booking) => {\r\n var isDelete = booking.isDelete;\r\n booking.isDelete = true;\r\n axios\r\n .patch(\"api/Bookings/cancel\", booking)\r\n .then(function (response) {\r\n if (response.status == 200) {\r\n msg.enqueue(\"予約をキャンセルしました\", \"success\");\r\n GetMyBookings(hid, param.cno, param.birthDay);\r\n ApiPostSendDeleteMail(booking).catch(() => {\r\n msg.enqueue(\r\n \"メールでの予約キャンセル通知に失敗しました。\",\r\n \"error\"\r\n );\r\n });\r\n ApiPostSendDeleteLine(booking).catch(() => {\r\n msg.enqueue(\"LINEでの予約キャンセル通知に失敗しました。\", \"error\");\r\n });\r\n ApiPostSendDeleteMailToDept(booking);\r\n }\r\n })\r\n .catch(function (error) {\r\n booking.isDelete = isDelete;\r\n if (error.response.status == 400) {\r\n msg.enqueue(error.response.data, \"error\");\r\n return;\r\n }\r\n\r\n setError(\"summary\", {\r\n type: \"manual\",\r\n message: GetErrMsg(ErrMsgKey.unexpected),\r\n });\r\n })\r\n .finally(function () {\r\n setOpenCancelDialog(false);\r\n });\r\n });\r\n\r\n const handleMailSave = useCallback((email) => {\r\n if (email) {\r\n GetCard(hid, param.cno, param.birthDay);\r\n } else {\r\n cardData.mcdEmail = \"\";\r\n setCardData(JSON.parse(JSON.stringify(cardData)));\r\n }\r\n });\r\n\r\n const [isOpenTermOfUseDialog, setIsOpenTermOfUseDialog] = useSafeState(\r\n unmountRef,\r\n false\r\n ); //利用規約ダイアログ表示フラグ\r\n function handleTermOfUseDialogClose() {\r\n setIsOpenTermOfUseDialog(false);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {param && (\r\n \r\n \r\n \r\n \r\n  閉じる}\r\n  >\r\n   {{termOfUseHtml}}\r\n  \r\n setOpenCancelDialog(false)}\r\n parameter={cancelParameter}\r\n message=\"予約をキャンセルしてよろしいですか?\"\r\n okLabel=\"はい\"\r\n cancelLabel=\"いいえ\"\r\n />\r\n \r\n {param.hnm && }\r\n\r\n \r\n \r\n \r\n {param.hnm && param.hnm}\r\n マイページ\r\n \r\n \r\n \r\n 予約確認\r\n
\r\n 現在、有効な予約は以下になります\r\n
\r\n setIsShowCanceled(e.target.checked)}\r\n />\r\n
\r\n \r\n \r\n {bookData ? (\r\n bookData.map(\r\n (item, index) =>\r\n (isShowCanceled || !item.booking.isDelete) && (\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 {item.booking.bookOrder}\r\n \r\n \r\n \r\n 日付\r\n \r\n \r\n {dayjs(item.booking.bookingDate).format(\r\n \"YYYY年MM月DD日\"\r\n )}\r\n \r\n \r\n \r\n 時間\r\n \r\n \r\n {item.timeTableDetail.label}\r\n \r\n\r\n \r\n \r\n \r\n ( \r\n {GetTimeRangeStr(\r\n item.timeTableDetail.bgnTime,\r\n item.timeTableDetail.endTime\r\n )}\r\n  )\r\n \r\n\r\n \r\n \r\n 施設名称\r\n \r\n \r\n {item.hospital.name}\r\n \r\n \r\n \r\n 予約項目\r\n \r\n \r\n {item.dept.name}\r\n \r\n \r\n\r\n {/* {item.hospital.name} {item.dept.name}\r\n {item.timeTableDetail.label} */}\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 {item.booking.isDelete === true ? (\r\n \r\n \r\n キャンセル済み\r\n \r\n \r\n ) : (\r\n <>\r\n {item.dept.cancellationAvailability === 2 ? (\r\n (() => {\r\n var cancelableTime = TimeToDamyDatetime(\r\n item.dept.cancelableTime\r\n );\r\n var bookingBgnTime = TimeToDamyDatetime(\r\n item.timeTableDetail.bgnTime\r\n );\r\n var now = dayjs();\r\n\r\n if (\r\n (item.dept.cancellationType === 1 &&\r\n now.isBefore(\r\n dayjs(item.booking.bookingDate)\r\n .hour(bookingBgnTime.hour())\r\n .minute(bookingBgnTime.minute())\r\n )) ||\r\n (item.dept.cancellationType === 2 &&\r\n now.isBefore(\r\n dayjs(item.booking.bookingDate)\r\n .subtract(\r\n item.dept.cancelableDays,\r\n \"days\"\r\n )\r\n .hour(bookingBgnTime.hour())\r\n .minute(bookingBgnTime.minute())\r\n )) ||\r\n (item.dept.cancellationType === 3 &&\r\n now.isBefore(\r\n dayjs(item.booking.bookingDate)\r\n .subtract(\r\n item.dept.cancelableDays,\r\n \"days\"\r\n )\r\n .hour(cancelableTime.hour())\r\n .minute(cancelableTime.minute())\r\n .second(0)\r\n ))\r\n ) {\r\n return (\r\n \r\n handleCancelClick(\r\n e,\r\n index,\r\n item.booking\r\n )\r\n }\r\n >\r\n 予約をキャンセルする\r\n \r\n );\r\n } else {\r\n return ;\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 {bookData &&\r\n bookData.length > 0 &&\r\n bookData[0].hospital.isEnableLine && (\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 setIsOpenTermOfUseDialog(true);\r\n e.preventDefault();\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 * @file マイページ関連のルーティングを提供します\r\n */\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { commonStyle } from \"components/styles/CommonStyle\";\r\nimport MyPageAuth from \"pages/mypage/MyPageAuth\";\r\nimport { UserContext } from \"components/api-authorization/UserContext\";\r\nimport { Route, Switch } from \"react-router-dom\";\r\nimport { MyPage } from \"./MyPage\";\r\nimport { LayoutContext } from \"pages/Layout\";\r\n\r\nexport function MyPageRoute(props) {\r\n const layoutCtx = useContext(LayoutContext);\r\n const hid = props.match.params.hid;\r\n const userctx = useContext(UserContext);\r\n useEffect(() => {\r\n layoutCtx.SetHospitalId(hid);\r\n layoutCtx.setIsMypage(false);\r\n return () => {\r\n layoutCtx.SetHospitalId(null);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {}, [userctx]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default withStyles(commonStyle)(MyPageRoute);\r\n","/**\r\n * @file LINE連携後のコールバック画面\r\n */\r\nimport {\r\n useSafeState,\r\n useUnmountRef,\r\n} from \"components/common/UnmountStateHelper\";\r\nimport React, { useEffect, useContext, useRef } from \"react\";\r\nimport { Grid, Toolbar } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ApiGetLine, ApiGetLineClientID } from \"components/api/LINELoginApi\";\r\nimport WarningIcon from \"@material-ui/icons/Warning\";\r\nimport LineButton from \"components/input/button/LineButton\";\r\nimport { GenerateLineParameter, lineUrl } from \"components/common/LineConfig\";\r\nimport { LayoutContext } from \"pages/Layout\";\r\nimport { PageTitle } from \"components/common/PageTitle\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n textBox: {\r\n paddingTop: theme.spacing(4),\r\n },\r\n lineBox: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n textAlign: \"center\",\r\n },\r\n marginTop: theme.spacing(3),\r\n },\r\n}));\r\n\r\nexport default function RemindResult(props) {\r\n const unmountRef = useUnmountRef();\r\n const classes = useStyles();\r\n const [linePageSetter, setLinePageSetter] = useSafeState(unmountRef, false);\r\n const [linePage, setLinePage] = useSafeState(unmountRef, true);\r\n const [lineData, setLineData] = useSafeState(unmountRef, \"\");\r\n\r\n const layoutCtx = useContext(LayoutContext);\r\n layoutCtx.setIsMypage(false);\r\n layoutCtx.setIsRemindResult(true);// ヘッダ右のアイコンボタン制御(Xボタンにする)\r\n\r\n var hostUrl =\r\n \"https://\" +\r\n (window.location.hostname == \"localhost\"\r\n ? \"localhost:\" + window.location.port + \"/remind\"\r\n : window.location.hostname + \"/remind\");\r\n\r\n const queryString = new URLSearchParams(props.location.search);\r\n\r\n const [lineParam, setLineParam] = useSafeState(unmountRef, \"\");\r\n\r\n async function GetLINE() {\r\n await ApiGetLine(\r\n queryString.toString() + \"&hostUrl=\" + hostUrl,\r\n setLinePage,\r\n setLineData\r\n )\r\n .then(function (response) {\r\n setLinePageSetter(true);\r\n })\r\n .catch(function (error) {\r\n setLinePage(false);\r\n setLinePageSetter(true);\r\n });\r\n\r\n await ApiGetLineClientID().then((clientId) =>\r\n setLineParam(\r\n GenerateLineParameter(\r\n GuIdSetter(getParam(\"state\", queryString)),\r\n clientId\r\n )\r\n )\r\n );\r\n }\r\n\r\n function getParam(name, url) {\r\n if (!url) url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\");\r\n var results = regex.exec(url);\r\n\r\n if (!results) {\r\n // 正規表現に合致しなかった場合は、URL全てを対象にする\r\n results = regex.exec(window.location.href);\r\n }\r\n\r\n if (!results) return null;\r\n if (!results[2]) return \"\";\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n\r\n function GuIdSetter(state) {\r\n var test = \"{\" + getParam(\"state\", queryString) + \"}\";\r\n const obj = JSON.parse(test);\r\n\r\n return obj.guId;\r\n }\r\n\r\n useEffect(() => {\r\n GetLINE();\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 if (linePageSetter) {\r\n if (!linePage) {\r\n return (\r\n \r\n

予約内容とLINEの紐づけに失敗しました。

\r\n

\r\n 以下の「 LINEで通知を受け取る{\" \"}\r\n 」よりプロフィール情報を許可してください。\r\n

\r\n \r\n \r\n
\r\n \r\n );\r\n } else if (lineData) {\r\n return (\r\n \r\n

予約内容がLINEに紐づけられました。

\r\n

予約日の前日にリマインドメッセージを送信致します。

\r\n
※すでにLINE連携済みの方もこちらの画面が表示されます
\r\n
\r\n
【リマインドLINEを受信できない方について】
\r\n
\r\n LINE公式アカウントと友達ではない場合や連携後にWeb予約システム公式アカウントをブロック・削除された場合は通知を受信できません。\r\n
\r\n
\r\n );\r\n } else if (!lineData) {\r\n return (\r\n \r\n

\r\n \r\n \r\n {\" \"}\r\n 公式アカウントと友達になっていません。\r\n \r\n \r\n

\r\n

\r\n LINE公式アカウント「Web予約システム」と友達ではない場合、\r\n \r\n \r\n リマインドLINEを受信できません。\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 * @file このアプリケーションの基本的なルーティングを行います\r\n */\r\nimport React, { Component, Suspense, lazy } from \"react\"\r\nimport { Route, Switch, Redirect } from \"react-router\"\r\nimport { Layout } from \"pages/Layout\"\r\nimport AuthorizeRoute from \"components/api-authorization/AuthorizeRoute\"\r\nimport ApiAuthorizationRoutes from \"pages/apiauthorization/ApiAuthorizationRoutes\"\r\nimport { ApplicationPaths } from \"components/api-authorization/ApiAuthorizationConstants\"\r\nimport \"react-app-polyfill/stable\"\r\nimport \"custom.css\"\r\n\r\nimport Home from \"pages/home/Home\"\r\nimport LoginFormContainer from \"pages/apiauthorization/LoginForm\"\r\nimport Contact from \"pages/contact/ContactRoute\"\r\nimport { Admin } from \"pages/admin/AdminRoute\"\r\nimport ForgotPassword from \"pages/auth/ForgotPassword\"\r\nimport ResetPassword from \"pages/auth/ResetPassword\"\r\nimport ForgotConfirm from \"pages/auth/ForgotConfirm\"\r\nimport ReserveRoute from \"pages/reservation/ReserveRoute\"\r\nimport { reservationPath } from \"components/common/Const\"\r\nimport { ManageRoute } from \"pages/manage/ManageRoute\"\r\nimport { MyPageRoute } from \"pages/mypage/MyPageRoute\"\r\nimport RemindResult from \"pages/line/RemindResult\"\r\nimport NotFound from \"pages/shared/NotFound\"\r\n\r\n// const Home = lazy(() => import(\"pages/home/Home\"));\r\n// const LoginFormContainer = lazy(() =>\r\n// import(\"pages/apiauthorization/LoginForm\")\r\n// );\r\n// const Contact = lazy(() => import(\"pages/contact/ContactRoute\"));\r\n// // const Admin = lazy(() => import(\"pages/admin/AdminRoute\"));\r\n// const ForgotPassword = lazy(() => import(\"pages/auth/ForgotPassword\"));\r\n// const ResetPassword = lazy(() => import(\"pages/auth/ResetPassword\"));\r\n// const ForgotConfirm = lazy(() => import(\"pages/auth/ForgotConfirm\"));\r\n// const ReserveRoute = lazy(() => import(\"pages/reservation/ReserveRoute\"));\r\n// // const ManageRoute = lazy(() => import(\"pages/manage/ManageRoute\"));\r\n// const RemindResult = lazy(() => import(\"pages/line/RemindResult\"));\r\n// const MyPageRoute = lazy(() => import(\"pages/mypage/MyPageRoute\"));\r\n// const NotFound = lazy(() => import(\"pages/shared/NotFound\"));\r\n\r\nexport default class AppRouter extends Component {\r\n constructor(props) {\r\n super(props)\r\n }\r\n\r\n static displayName = AppRouter.name\r\n\r\n render() {\r\n return (\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"],"sourceRoot":""}