Merged PR 341: 画面実装(ルーティングルール一覧画面)

## 概要
[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)

## 動作確認状況
- ローカルで確認
This commit is contained in:
makabe.t 2023-08-23 02:32:36 +00:00
parent 422622c9ef
commit c85ecbfc90
6 changed files with 150 additions and 8 deletions

View File

@ -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 = () => (
<Routes>
@ -58,7 +60,11 @@ const AppRouter: React.FC = () => (
/>
<Route
path="/workflow"
element={<RouteAuthGuard component={<SamplePage />} />}
element={<RouteAuthGuard component={<WorkflowPage />} />}
/>
<Route
path="/workflow/typist-group"
element={<RouteAuthGuard component={<TypistGroupSettingPage />} />}
/>
<Route
path="/partners"

View File

@ -26,6 +26,7 @@ export const HEADER_NAME = "ODMS Cloud";
export const ADMIN_ONLY_TABS = [
HEADER_MENUS_LICENSE,
HEADER_MENUS_USER,
HEADER_MENUS_WORKFLOW,
HEADER_MENUS_PARTNER,
];

View File

@ -0,0 +1,18 @@
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 TypistGroupSettingPage: React.FC = (): JSX.Element => (
<div className={styles.wrap}>
<Header userName="XXXXXX" />
<UpdateTokenTimer />
<main className={styles.main}>
<div className="">Transcriptionist Group Setting</div>
</main>
<Footer />
</div>
);
export default TypistGroupSettingPage;

View File

@ -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 => (
<div className={styles.wrap}>
<Header userName="XXXXXX" />
<UpdateTokenTimer />
<main className={styles.main}>
<div className="">
<span>
<a style={{ margin: 20 }} href="/workflow/typist-group">
Transcriptionist Group Setting
</a>
</span>
</div>
</main>
<Footer />
</div>
);
export default WorkflowPage;

View File

@ -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;

View File

@ -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;