From c85ecbfc90b3fb41ba7b636554978d248e9a8b02 Mon Sep 17 00:00:00 2001 From: "makabe.t" Date: Wed, 23 Aug 2023 02:32:36 +0000 Subject: [PATCH] =?UTF-8?q?Merged=20PR=20341:=20=E7=94=BB=E9=9D=A2?= =?UTF-8?q?=E5=AE=9F=E8=A3=85=EF=BC=88=E3=83=AB=E3=83=BC=E3=83=86=E3=82=A3?= =?UTF-8?q?=E3=83=B3=E3=82=B0=E3=83=AB=E3=83=BC=E3=83=AB=E4=B8=80=E8=A6=A7?= =?UTF-8?q?=E7=94=BB=E9=9D=A2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 概要 [Task2410: 画面実装(ルーティングルール一覧画面)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2410) - ワークフロー画面と遷移先のタイピストグループ設定画面を実装しました。 - ワークフロー画面はタブ制御とリンク以外は仮です。 - 管理者ユーザーでログインした時だけタブが見えるようにしています。 - タイピストグループ設定画面は空の仮画面です。 - 画面コンポーネントをルーティングしました。 - /workflow - /workflow/typist-group ## レビューポイント - タブ制御は適切か - URL設計は適切か ## UIの変更 - [Task2410](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2410?csf=1&web=1&e=10GUjM) ## 動作確認状況 - ローカルで確認 --- dictation_client/src/AppRouter.tsx | 8 +- .../src/components/header/constants.ts | 1 + .../pages/TypistGroupSettingPage/index.tsx | 18 ++++ .../src/pages/WorkflowPage/index.tsx | 24 +++++ dictation_client/src/styles/app.module.scss | 92 ++++++++++++++++++- .../src/styles/app.module.scss.d.ts | 15 ++- 6 files changed, 150 insertions(+), 8 deletions(-) create mode 100644 dictation_client/src/pages/TypistGroupSettingPage/index.tsx create mode 100644 dictation_client/src/pages/WorkflowPage/index.tsx diff --git a/dictation_client/src/AppRouter.tsx b/dictation_client/src/AppRouter.tsx index 048d72e..08b7185 100644 --- a/dictation_client/src/AppRouter.tsx +++ b/dictation_client/src/AppRouter.tsx @@ -16,6 +16,8 @@ import UserListPage from "pages/UserListPage"; import LicensePage from "pages/LicensePage"; import DictationPage from "pages/DictationPage"; import PartnerPage from "pages/PartnerPage"; +import WorkflowPage from "pages/WorkflowPage"; +import TypistGroupSettingPage from "pages/TypistGroupSettingPage"; const AppRouter: React.FC = () => ( @@ -58,7 +60,11 @@ const AppRouter: React.FC = () => ( /> } />} + element={} />} + /> + } />} /> ( +
+
+ +
+
Transcriptionist Group Setting
+
+
+
+); + +export default TypistGroupSettingPage; diff --git a/dictation_client/src/pages/WorkflowPage/index.tsx b/dictation_client/src/pages/WorkflowPage/index.tsx new file mode 100644 index 0000000..e817a00 --- /dev/null +++ b/dictation_client/src/pages/WorkflowPage/index.tsx @@ -0,0 +1,24 @@ +import React from "react"; +import Header from "components/header"; +import Footer from "components/footer"; +import styles from "styles/app.module.scss"; +import { UpdateTokenTimer } from "components/auth/updateTokenTimer"; + +const WorkflowPage: React.FC = (): JSX.Element => ( + +); + +export default WorkflowPage; diff --git a/dictation_client/src/styles/app.module.scss b/dictation_client/src/styles/app.module.scss index 3fd239f..995e34a 100644 --- a/dictation_client/src/styles/app.module.scss +++ b/dictation_client/src/styles/app.module.scss @@ -935,13 +935,75 @@ h3 + .brCrumb .tlIcon { .modal .formInput { padding: 0.5rem 0.8rem; } +.modal .formInput[type="file"] { + border: none; + background: inherit; +} +.modal .formInput[type="file"].isHide { + display: none; +} .modal .form label { padding: 0.5rem 0 0.2rem; } +.modal .form label.formFileButton { + padding: 0.5rem 0.8rem; + border: 1px #999999 solid; + background: #ffffff; + font-size: 16px; + line-height: 1.4; + letter-spacing: 0.01rem; + font-weight: normal; + cursor: pointer; + border-radius: 0.3rem; + position: relative; + -moz-transition: all 0.3s ease-out; + -ms-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +.modal .form label.formFileButton:hover { + background: #f0f0f0; +} +.modal .formFileName { + display: inline-block; + width: 350px; + padding: 0.6rem 0.8rem; + border: 1px #e6e6e6 solid; + background: #e6e6e6; + box-sizing: border-box; + font-size: 16px; + line-height: 1.4; + letter-spacing: 0; + font-weight: normal; + text-align: left; +} .modal .form .icLoading { bottom: 1.5rem; left: calc(50% - 25px); } +.modal .form .tableWrap { + max-height: 60vh; + overflow-y: scroll; + margin-bottom: 1rem; +} +.modal .form .table { + width: 95%; + margin: 0 auto; +} +.modal .form .table .tableHeader th { + position: -webkit-sticky; + position: sticky; + top: 0; + padding: 0.4rem 0.5rem; + background: #282828; +} +.modal .form .table td { + padding: 0.6rem 0.4rem; +} +.modal .form .table .formInput { + width: inherit; + padding: 0.2rem 0.5rem; +} .modal .encryptionPass { display: none; } @@ -2199,12 +2261,38 @@ tr.isSelected .menuInTable li a { .workflow .table.workflow td.txWsline { white-space: pre; } -.workflow .table.group { +.workflow .table.group, +.workflow .table.template { width: 600px; } -.workflow .table.group td:last-child { +.workflow .table.group td:last-child, +.workflow .table.template td:last-child { text-align: right; } +.workflow .table.worktype { + width: 1000px; +} +.workflow .table.worktype td:last-child { + text-align: right; +} +.workflow .table .menuLink { + min-width: 3rem; + text-align: center; +} +.workflow .menuAction.worktype { + width: 1000px; +} +.workflow .menuAction.worktype .selectMenu { + padding-top: 0.5rem; + float: right; + font-size: 0.9rem; +} +.workflow .menuAction.worktype .formInput { + width: inherit; + margin-left: 0.5rem; + padding: 0.2rem 0.8rem; + font-size: 0.9rem; +} .formList dd.formChange { display: flex; diff --git a/dictation_client/src/styles/app.module.scss.d.ts b/dictation_client/src/styles/app.module.scss.d.ts index 2f0dd3c..30434e7 100644 --- a/dictation_client/src/styles/app.module.scss.d.ts +++ b/dictation_client/src/styles/app.module.scss.d.ts @@ -60,6 +60,12 @@ declare const classNames: { readonly modalTitleIcon: "modalTitleIcon"; readonly last: "last"; readonly slideSet: "slideSet"; + readonly isHide: "isHide"; + readonly formFileButton: "formFileButton"; + readonly formFileName: "formFileName"; + readonly tableWrap: "tableWrap"; + readonly table: "table"; + readonly tableHeader: "tableHeader"; readonly encryptionPass: "encryptionPass"; readonly pageHeader: "pageHeader"; readonly pageTitle: "pageTitle"; @@ -75,8 +81,6 @@ declare const classNames: { readonly snackbarMessage: "snackbarMessage"; readonly snackbarIcon: "snackbarIcon"; readonly snackbarIconClose: "snackbarIconClose"; - readonly table: "table"; - readonly tableHeader: "tableHeader"; readonly hasSort: "hasSort"; readonly isActiveAz: "isActiveAz"; readonly isActiveZa: "isActiveZa"; @@ -100,8 +104,8 @@ declare const classNames: { readonly menuAction: "menuAction"; readonly inTable: "inTable"; readonly menuLink: "menuLink"; - readonly colorLink: "colorLink"; readonly menuIcon: "menuIcon"; + readonly colorLink: "colorLink"; readonly isDisable: "isDisable"; readonly icCheckCircle: "icCheckCircle"; readonly icInTable: "icInTable"; @@ -112,7 +116,6 @@ declare const classNames: { readonly displayOptions: "displayOptions"; readonly tableFilter: "tableFilter"; readonly tableFilter2: "tableFilter2"; - readonly tableWrap: "tableWrap"; readonly txWsline: "txWsline"; readonly hidePri: "hidePri"; readonly opPri: "opPri"; @@ -178,6 +181,9 @@ declare const classNames: { readonly changeTitle: "changeTitle"; readonly role4: "role4"; readonly group: "group"; + readonly template: "template"; + readonly worktype: "worktype"; + readonly selectMenu: "selectMenu"; readonly alignCenter: "alignCenter"; readonly alignLeft: "alignLeft"; readonly alignRight: "alignRight"; @@ -203,6 +209,5 @@ declare const classNames: { readonly txNormal: "txNormal"; readonly txIcon: "txIcon"; readonly txWswrap: "txWswrap"; - readonly widthMid: "widthMid"; }; export = classNames;