Commit 38f6c875 by NGUYEN HOANG SON

implement dashboad menu

parent 23a816fb
@charset "UTF-8";
footer img {
width: 30px;
}
\ No newline at end of file
@charset "UTF-8";
header nav{
height: 53px;
}
header .icon {
width: 22px;
max-height: 22px;
}
\ No newline at end of file
@charset "UTF-8";
.main-section {
margin-top: 76px;
}
/* ダッシュボード */
#dashboard .item-wrap {
display: grid;
grid-template-columns: repeat(3,1fr);
}
#dashboard .item-wrap img {
width: 40px;
margin-bottom: 6px;
}
#dashboard .item-wrap .item {
position: relative;
text-align: center;
margin: 5px;
background: aliceblue;
border-radius: 3px;
}
#dashboard .item-wrap .item .count {
position: absolute;
top: 5px;
right: 10px;
min-width: 22px;
background: var(--red);
color: var(--white);
padding: 2px 6px;
border-radius: 11px;
}
@media screen and (min-width: 768px) {
#dashboard .item-wrap {
display: flex;
flex-wrap: wrap;
}
#dashboard .item-wrap .item {
width: 150px;
}
}
@media screen and (max-width: 413px) {
#dashboard .item-wrap {
grid-template-columns: repeat(2,1fr);
}
}
/* ダッシュボード設定 */
.setting-table-wrap table {
width: 100%;
}
.setting-table-wrap th {
padding: 0.8rem;
}
.setting-table-wrap td {
width: 80px;
padding: 0.8rem;
}
/* 共通 */
.toggle {
position: relative;
width: 52px;
height: 30px;
border-radius: 50px;
overflow: hidden;
cursor: pointer;
}
.toggle input[type=checkbox] {
display: none;
}
.toggle:before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: block;
background: #e9e9eb;
-webkit-transition: 0.2s ease-out;
transition: 0.2s ease-out;
}
.toggle:after {
content: "";
position: absolute;
top: 3px;
left: 3px;
width: 24px;
height: 24px;
display: block;
border-radius: 50px;
background: #fff;
box-shadow: 0 9px 28px -6px rgba(0, 0, 0, 0.3);
-webkit-transition: 0.2s ease-out;
transition: 0.2s ease-out;
}
.toggle.checked:before {
background: #35c759;
}
.toggle.checked:after {
left: 25px;
box-shadow: 0 9px 28px -6px rgba(0, 0, 0, 0.5);
}
/* リスト */
.task-list .item {
position: relative;
}
.task-list .item a{
padding-right: 40px!important;
}
.task-list .sub-title-wrap {
display: flex;
flex-direction: row;
align-items: center;
}
.task-list .title,
.task-list .sub-title{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 16px;
}
.task-list .fas.fa-chevron-right {
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
color: #E9E9E9;
}
.sub-title-wrap .data {
max-width: 140px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.task-list .item .tag{
width: fit-content;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* メッセージ一覧 */
.task-list .unread {
background: var(--lightblue);
border: 2px solid var(--blue)!important;
}
.task-list .unread .title,
.task-list .unread .sub-title {
font-weight: bold!important;
}
.task-list .unread .fas.fa-chevron-right {
color: var(--white);
}
/* メッセージ詳細 */
.messege-detail th {
width: 70px;
}
.messege-detail td {
word-break: break-all;
}
/* ピックアップ */
#pickup .main-section {
margin-top: 60px;
}
#pickup .not-found {
height: calc(100vh - 230px);
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
#pickup .not-found img{
width: 100px;
}
/* 切り替えタブ */
/* tab */
.tab-menu {
position: relative;
width: 100%;
display: flex;
margin-bottom: 0;
overflow: auto;
overflow-y: clip;
}
.tab-label {
position: relative;
font-weight: bold;
padding: 10px;
order: -1;
z-index: 2;
cursor: pointer;
margin-bottom: 0;
width: 100%;
text-align: center;
color: var(--secondary);
min-width: 130px;
}
.tab-label label:after {
content: "";
background: var(--black);
opacity: .1;
width: 100%;
height: 4px;
position: absolute;
left: 0;
bottom: 0;
}
.tab-label:after {
background: var(--blue);
bottom: 0;
content: '';
display: block;
height: 4px;
left: 0;
opacity: 0;
pointer-events: none;
position: absolute;
transform: translateX(100%);
transition: cubic-bezier(0.4, 0, 0.2, 1) .2s 80ms;
width: 100%;
z-index: 1;
}
.tab-label.on ~ .tab-label:after {
transform: translateX(-100%);
}
.tab-label.on:after {
opacity: 1;
transform: translateX(0);
}
.tab-label label {
cursor: pointer;
white-space: nowrap;
margin-bottom: 0;
}
.tab-label label .task-cnt{
font-weight: normal;
color: var(--secondary);
}
.tab-content-area {
width: 100%;
}
.tab-content {
width: 100%;
display: none;
margin-top: 20px;
animation: show .3s linear 0s;
}
.tab-label.on {
color: var(--blue);
}
.tab-content.on{
display: block;
animation: show .3s linear 0s;
}
.tab-switch {
display: none;
}
/* keyframe */
@keyframes show{
from{
opacity: 0;
}
to{
opacity: 1;
}
}
/* .tab-wrap{
background: White;
box-shadow: 0 0 5px rgba(0,0,0,.1);
display: flex;
flex-wrap: wrap;
overflow: hidden;
padding: 0 0 20px;
}
.tab-label {
color: Gray;
cursor: pointer;
flex: 1;
font-weight: bold;
order: -1;
padding: 12px 24px;
position: relative;
text-align: center;
transition: cubic-bezier(0.4, 0, 0.2, 1) .2s;
user-select: none;
white-space: nowrap;
-webkit-tap-highlight-color: transparent;
}
.tab-label:hover {
background: rgba(0, 191, 255,.1);
}
.tab-switch:checked + .tab-label {
color: DeepSkyBlue;
}
.tab-label::after {
background: DeepSkyBlue;
bottom: 0;
content: '';
display: block;
height: 3px;
left: 0;
opacity: 0;
pointer-events: none;
position: absolute;
transform: translateX(100%);
transition: cubic-bezier(0.4, 0, 0.2, 1) .2s 80ms;
width: 100%;
z-index: 1;
}
.tab-switch:checked ~ .tab-label::after {
transform: translateX(-100%);
}
.tab-switch:checked + .tab-label::after {
opacity: 1;
transform: translateX(0);
}
.tab-content {
height:0;
opacity:0;
padding: 0 20px;
pointer-events:none;
transform: translateX(-30%);
transition: transform .3s 80ms, opacity .3s 80ms;
width: 100%;
}
.tab-switch:checked ~ .tab-content {
transform: translateX(30%);
}
.tab-switch:checked + .tab-label + .tab-content {
height: auto;
opacity: 1;
order: 1;
pointer-events:auto;
transform: translateX(0);
}
.tab-wrap::after {
content: '';
height: 20px;
order: -1;
width: 100%;
}
.tab-switch {
display: none;
} */
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?><svg id="_イヤー_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 94.07 83.08"><defs><style>.cls-1{fill:#0053f0;}</style></defs><g id="_イヤー_1-2"><path id="icon_dashboard_b" class="cls-1" d="M41.73,46.97H0V0H41.73V46.97Zm0,10.24H0v25.74H41.73v-25.74ZM93.95,0H52.22V26.24h41.73V0Zm.12,36.36H52.35v46.72h41.73V36.36Z"/></g></svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?><svg id="_イヤー_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 94.07 83.08"><defs><style>.cls-1{fill:#6c757d;}</style></defs><g id="_イヤー_1-2"><path id="icon_dashboard_w" class="cls-1" d="M41.73,46.97H0V0H41.73V46.97Zm0,10.24H0v25.74H41.73v-25.74ZM93.95,0H52.22V26.24h41.73V0Zm.12,36.36H52.35v46.72h41.73V36.36Z"/></g></svg>
\ No newline at end of file
......@@ -10,6 +10,9 @@
<link rel="stylesheet" type="text/css" href="css/app.css">
<link rel="stylesheet" type="text/css" href="css/fontawesome_relative_path.css">
<link rel="stylesheet" type="text/css" href="css/header.css">
<link rel="stylesheet" type="text/css" href="css/footer.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script src="js/jquery-1.11.2.min.js?__UPDATEID__"></script>
<script src="script/check.js?__UPDATEID__"></script>
<script src="script/check-list.js?__UPDATEID__"></script>
......@@ -18,6 +21,9 @@
</head>
<body onload="CHK_L.init();" style="position: relative; margin-top: 53px;">
<section id="operationList" class="page-content">
<header style="position: fixed; width: 100%; top: 0px; left: 0; z-index: 999;">
<nav class="navbar navbar-dark bg-primary">
<a class="navbar-brand category-btn lht-0 d-none" onclick="CHK.openCategory();" id="operationGroupMasterButton" href="javascript:CHK.setCategoryHeight();">
......@@ -142,22 +148,109 @@
</main>
</section>
</section>
<section id="dashboard" class="page-content" style="display: none;">
<header>
<nav class="navbar navbar-dark bg-primary position-fixed fixed-top w-100">
<div></div>
<div></div>
<h1 class="fs-10 font-weight-bold mb-0 text-white">ダッシュボード</h1>
<div class="d-flex align-items-center">
<a href="dashboard-setting.html" class="nav-link text-white lht-0 p-1 mr-2">
<img class="icon" src="img/icon_dashboard_setting.svg" alt="設定">
<span class="d-none d-md-inline fs-10 align-middle">
設定
</span>
</a>
<a href="" class="nav-link text-white lht-0 p-1">
<img class="icon" src="img/icon_update.svg" alt="更新">
<span class="d-none d-md-inline fs-10 align-middle">
更新
</span>
</a>
</div>
</nav>
</header>
<!-- dashboard -->
<section class="container-fluid main-section">
<main>
<h2 class="fs-8 font-weight-bold mt-4 pb-2 border-bottom text-dark">ピックアップ</h2>
<div class="item-wrap">
<div class="item">
<a href="pickup.html" class="d-block text-dark text-decoration-none mb-1 p-3">
<img src="img/icon_new.svg" alt="新規報告">
<div class="fs-8">新規報告</div>
</a>
</div>
<div class="item">
<a href="pickup.html" class="d-block text-dark text-decoration-none mb-1 p-3">
<img src="img/icon_proccess.svg" alt="工程管理">
<div class="fs-8">工程管理</div>
<span class="count fs-7">30</span>
</a>
</div>
<div class="item">
<a href="pickup.html" class="d-block text-dark text-decoration-none mb-1 p-3">
<img src="img/icon_alert.svg" alt="警告を含む報告">
<div class="fs-8">警告を含む報告</div>
<span class="count fs-7">99+</span>
</a>
</div>
</div>
<h2 class="fs-8 font-weight-bold mt-4 pb-2 border-bottom text-dark">コミュニケーション</h2>
<div class="item-wrap">
<div class="item">
<a href="message-list.html" class="d-block text-dark text-decoration-none mb-1 p-3">
<img src="img/icon_message_lsit.svg" alt="メッセージ一覧">
<div class="fs-8">メッセージ一覧</div>
<span class="count fs-7">2</span>
</a>
</div>
<div class="item">
<a href="#" class="d-block text-dark text-decoration-none mb-1 p-3">
<img src="img/icon_send_message.svg" alt="メッセージ送信">
<div class="fs-8">メッセージ送信</div>
</a>
</div>
<div class="item">
<a href="#" class="d-block text-dark text-decoration-none mb-1 p-3">
<img src="img/icon_remote.svg" alt="遠隔支援">
<div class="fs-8">遠隔支援</div>
</a>
</div>
<div class="item">
<a href="#" class="d-block text-dark text-decoration-none mb-1 p-3">
<img src="img/icon_chat.svg" alt="チャット">
<div class="fs-8">チャット</div>
</a>
</div>
</div>
</main>
</section>
</section>
<footer class="fixed-bottom bg-light">
<nav class="d-flex justify-content-around">
<a class="d-block w-100 text-center py-2 text-decoration-none text-primary">
<i class="fas fa-home fs-14 p-1"></i>
<div class="fs-7 multi-lang" data-msg="buttonHome">ホーム</div>
<a class="d-block w-100 text-center py-2 text-decoration-none text-secondary bottom-nav" onclick="clickBottomNav('dashboard', this);">
<img src="img/icon_dashboard_inactive.svg" data-inactive-src="img/icon_dashboard_inactive.svg" data-src="img/icon_dashboard.svg" alt="ダッシュボード" class="p-1">
<div class="fs-7 multi-lang" data-msg="buttonDashboard">ダッシュボード</div>
</a>
<a class="d-block w-100 text-center py-2 text-decoration-none text-primary bottom-nav" onclick="clickBottomNav('operationList', this);">
<i class="fas fa-tasks fs-14 p-1"></i>
<div class="fs-7 multi-lang" data-msg="buttonOperationList">作業一覧</div>
</a>
<a class="d-block w-100 text-center py-2 text-decoration-none text-secondary" href="javascript:CHK_L.sendAppCommand('goRelationContent');">
<i class="fas fa-folder fs-14 p-1"></i>
<div class="fs-7 multi-lang" data-msg="buttonRelatedContent">関連資料</div>
</a>
<a class="d-block w-100 text-center py-2 text-decoration-none text-secondary" href="javascript:CHK_L.sendAppCommand('goCommunication');">
<!-- <a class="d-block w-100 text-center py-2 text-decoration-none text-secondary" href="javascript:CHK_L.sendAppCommand('goCommunication');">
<i class="fas fa-comment-dots fs-14 p-1"></i>
<div class="fs-7 multi-lang" data-msg="buttonCommunication">コミュニケーション</div>
</a>
</a> -->
<!--<a class="d-block w-100 text-center py-2 text-decoration-none text-secondary">
<i class="fas fa-clipboard-list fs-14 p-1"></i>
<div class="fs-7">帳票確認</div>
......@@ -183,4 +276,32 @@
<script type="text/javascript" src="js/app.js" defer></script>
</body>
<script>
function clickBottomNav(pageId, elm) {
var i, pages, navs;
pages = document.getElementsByClassName("page-content");
for (i = 0; i < pages.length; i++) {
if (pages[i].id == pageId) {
pages[i].style.display = "block";
} else {
pages[i].style.display = "none";
}
}
//disbale all bottom nav item
navs = document.getElementsByClassName("bottom-nav");
for (i = 0; i < navs.length; i++) {
navs[i].className = navs[i].className.replace("text-primary", "text-secondary");
var img = navs[i].querySelector("img");
if (img && img.getAttribute('data-inactive-src')) {
img.src = img.getAttribute('data-inactive-src');
}
}
//enable selected item
elm.className = elm.className.replace("text-secondary", "text-primary");
var img = elm.querySelector("img");
if (img && img.getAttribute("data-src")) {
img.src = img.getAttribute("data-src");
}
}
</script>
</html>
\ No newline at end of file
......@@ -88,7 +88,9 @@ var msgMap = { // velocity?
buttonRelatedContent: { ja: "関連資料", ko: "관련자료", en: "Related Content" },
buttonCommunication: { ja: "コミュニケーション", ko: "커뮤니케이션", en: "Communication" },
buttonSetting: { ja: "設定", ko: "설정", en: "Setting" },
labelLoading: { ja: "読み込み中", ko: "로딩중", en: "Loading" }
labelLoading: { ja: "読み込み中", ko: "로딩중", en: "Loading" },
buttonOperationList: { ja: "作業一覧", ko: "Operations List", en: "Operations List" },
buttonDashboard: { ja: "ダッシュボード", ko: "Dashboard", en: "Dashboard" },
};
// 言語取得
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment