修正
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -284,7 +284,20 @@
|
||||
<body>
|
||||
<header>
|
||||
<h1>🏛 e-Gov 電子送達</h1>
|
||||
<a class="back-link" href="index.html" style="display:inline-block;padding:6px 16px;background:#757575;color:#fff;border-radius:4px;text-decoration:none;font-size:14px;">← メニューへ戻る</a>
|
||||
<a
|
||||
class="back-link"
|
||||
href="index.html"
|
||||
style="
|
||||
display: inline-block;
|
||||
padding: 6px 16px;
|
||||
background: #757575;
|
||||
color: #fff;
|
||||
border-radius: 4px;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
"
|
||||
>← メニューへ戻る</a
|
||||
>
|
||||
</header>
|
||||
|
||||
<!-- ログインカード -->
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
||||
<meta
|
||||
http-equiv="Cache-Control"
|
||||
content="no-cache, no-store, must-revalidate"
|
||||
/>
|
||||
<meta http-equiv="Pragma" content="no-cache" />
|
||||
<title>NJTS 会計システム - メイン</title>
|
||||
<link rel="stylesheet" href="css/style.css" />
|
||||
@@ -92,41 +95,94 @@
|
||||
cursor: pointer;
|
||||
font-size: 13px;
|
||||
}
|
||||
.change-pw-btn:hover { background: #545b62; }
|
||||
.change-pw-btn:hover {
|
||||
background: #545b62;
|
||||
}
|
||||
/* パスワード変更モーダル */
|
||||
.modal-overlay {
|
||||
display: none;
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
background: rgba(0,0,0,0.5);
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
z-index: 1000;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.modal-overlay.active { display: flex; }
|
||||
.modal-overlay.active {
|
||||
display: flex;
|
||||
}
|
||||
.modal-box {
|
||||
background: white;
|
||||
border-radius: 10px;
|
||||
padding: 32px;
|
||||
width: 360px;
|
||||
box-shadow: 0 10px 30px rgba(0,0,0,0.3);
|
||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
.modal-box h3 {
|
||||
margin: 0 0 20px;
|
||||
}
|
||||
.modal-box .form-group {
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
.modal-box label {
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
.modal-box h3 { margin: 0 0 20px; }
|
||||
.modal-box .form-group { margin-bottom: 14px; }
|
||||
.modal-box label { display: block; margin-bottom: 5px; font-size: 13px; font-weight: 600; color: #333; }
|
||||
.modal-box input[type="password"] {
|
||||
width: 100%; padding: 10px; border: 1px solid #ddd;
|
||||
border-radius: 5px; font-size: 14px; box-sizing: border-box;
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 5px;
|
||||
font-size: 14px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.modal-box .btn-row {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.modal-box .btn-row button {
|
||||
flex: 1;
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
}
|
||||
.modal-box .btn-submit {
|
||||
background: #007bff;
|
||||
color: white;
|
||||
}
|
||||
.modal-box .btn-submit:hover {
|
||||
background: #0056b3;
|
||||
}
|
||||
.modal-box .btn-cancel {
|
||||
background: #e9ecef;
|
||||
color: #333;
|
||||
}
|
||||
.modal-box .btn-cancel:hover {
|
||||
background: #d0d5db;
|
||||
}
|
||||
.modal-msg {
|
||||
padding: 8px 12px;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 12px;
|
||||
display: none;
|
||||
font-size: 13px;
|
||||
}
|
||||
.modal-msg.error {
|
||||
background: #fee;
|
||||
color: #c33;
|
||||
border: 1px solid #fcc;
|
||||
}
|
||||
.modal-msg.success {
|
||||
background: #efe;
|
||||
color: #3a3;
|
||||
border: 1px solid #cfc;
|
||||
}
|
||||
.modal-box .btn-row { display: flex; gap: 10px; margin-top: 20px; }
|
||||
.modal-box .btn-row button { flex: 1; padding: 10px; border: none; border-radius: 5px; cursor: pointer; font-size: 14px; }
|
||||
.modal-box .btn-submit { background: #007bff; color: white; }
|
||||
.modal-box .btn-submit:hover { background: #0056b3; }
|
||||
.modal-box .btn-cancel { background: #e9ecef; color: #333; }
|
||||
.modal-box .btn-cancel:hover { background: #d0d5db; }
|
||||
.modal-msg { padding: 8px 12px; border-radius: 4px; margin-bottom: 12px; display: none; font-size: 13px; }
|
||||
.modal-msg.error { background: #fee; color: #c33; border: 1px solid #fcc; }
|
||||
.modal-msg.success { background: #efe; color: #3a3; border: 1px solid #cfc; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -134,7 +190,9 @@
|
||||
<h1>NJTS</h1>
|
||||
<div class="user-info">
|
||||
<span>ユーザー: <strong id="username">読み込み中...</strong></span>
|
||||
<button class="change-pw-btn" onclick="openChangePw()">パスワード変更</button>
|
||||
<button class="change-pw-btn" onclick="openChangePw()">
|
||||
パスワード変更
|
||||
</button>
|
||||
<button class="logout-btn" onclick="logout()">ログアウト</button>
|
||||
</div>
|
||||
</header>
|
||||
@@ -146,7 +204,11 @@
|
||||
<div class="modal-msg" id="changePwMsg"></div>
|
||||
<div class="form-group">
|
||||
<label>現在のパスワード</label>
|
||||
<input type="password" id="cpCurrent" placeholder="現在のパスワード" />
|
||||
<input
|
||||
type="password"
|
||||
id="cpCurrent"
|
||||
placeholder="現在のパスワード"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>新しいパスワード(8文字以上)</label>
|
||||
@@ -157,8 +219,12 @@
|
||||
<input type="password" id="cpConfirm" placeholder="もう一度入力" />
|
||||
</div>
|
||||
<div class="btn-row">
|
||||
<button class="btn-submit" onclick="submitChangePw()">変更する</button>
|
||||
<button class="btn-cancel" onclick="closeChangePw()">キャンセル</button>
|
||||
<button class="btn-submit" onclick="submitChangePw()">
|
||||
変更する
|
||||
</button>
|
||||
<button class="btn-cancel" onclick="closeChangePw()">
|
||||
キャンセル
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -198,7 +264,9 @@
|
||||
銀行のCSVデータを取込み、明細を管理します。重複チェック付きで安全に取込め、月別・銀行別の検索・印刷が可能です。
|
||||
</p>
|
||||
<p>
|
||||
<a class="btn" href="bank-statement.html" style="background: #1565c0">銀行明細を開く</a>
|
||||
<a class="btn" href="bank-statement.html" style="background: #1565c0"
|
||||
>銀行明細を開く</a
|
||||
>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -245,28 +313,40 @@
|
||||
}
|
||||
async function submitChangePw() {
|
||||
const current = document.getElementById("cpCurrent").value;
|
||||
const newPw = document.getElementById("cpNew").value;
|
||||
const newPw = document.getElementById("cpNew").value;
|
||||
const confirm = document.getElementById("cpConfirm").value;
|
||||
const user = getCurrentUser();
|
||||
const user = getCurrentUser();
|
||||
if (!current || !newPw || !confirm) {
|
||||
showChangePwMsg("すべての項目を入力してください", true); return;
|
||||
showChangePwMsg("すべての項目を入力してください", true);
|
||||
return;
|
||||
}
|
||||
if (newPw.length < 8) {
|
||||
showChangePwMsg("新しいパスワードは8文字以上にしてください", true); return;
|
||||
showChangePwMsg("新しいパスワードは8文字以上にしてください", true);
|
||||
return;
|
||||
}
|
||||
if (newPw !== confirm) {
|
||||
showChangePwMsg("新しいパスワードが一致しません", true); return;
|
||||
showChangePwMsg("新しいパスワードが一致しません", true);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const res = await fetch("/api/users/change-password", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ username: user.username, current_password: current, new_password: newPw })
|
||||
body: JSON.stringify({
|
||||
username: user.username,
|
||||
current_password: current,
|
||||
new_password: newPw,
|
||||
}),
|
||||
});
|
||||
const data = await res.json();
|
||||
if (res.ok) {
|
||||
showChangePwMsg("パスワードを変更しました。再ログインしてください", false);
|
||||
setTimeout(() => { logout(); }, 2000);
|
||||
showChangePwMsg(
|
||||
"パスワードを変更しました。再ログインしてください",
|
||||
false,
|
||||
);
|
||||
setTimeout(() => {
|
||||
logout();
|
||||
}, 2000);
|
||||
} else {
|
||||
showChangePwMsg(data.detail || "変更に失敗しました", true);
|
||||
}
|
||||
@@ -274,7 +354,6 @@
|
||||
showChangePwMsg("エラー: " + e.message, true);
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -257,7 +257,20 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<a href="index.html" style="display:inline-block;margin:0 0 20px 0;padding:6px 16px;background:#757575;color:#fff;border-radius:4px;text-decoration:none;font-size:14px;">← メニューへ戻る</a>
|
||||
<a
|
||||
href="index.html"
|
||||
style="
|
||||
display: inline-block;
|
||||
margin: 0 0 20px 0;
|
||||
padding: 6px 16px;
|
||||
background: #757575;
|
||||
color: #fff;
|
||||
border-radius: 4px;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
"
|
||||
>← メニューへ戻る</a
|
||||
>
|
||||
<h2>仕訳入力</h2>
|
||||
|
||||
<div class="row" style="margin-bottom: 12px">
|
||||
|
||||
@@ -56,7 +56,20 @@
|
||||
>
|
||||
保存
|
||||
</button>
|
||||
<a href="index.html" style="display:inline-block;margin:0 0 20px 0;padding:6px 16px;background:#757575;color:#fff;border-radius:4px;text-decoration:none;font-size:14px;">← メニューへ戻る</a>
|
||||
<a
|
||||
href="index.html"
|
||||
style="
|
||||
display: inline-block;
|
||||
margin: 0 0 20px 0;
|
||||
padding: 6px 16px;
|
||||
background: #757575;
|
||||
color: #fff;
|
||||
border-radius: 4px;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
"
|
||||
>← メニューへ戻る</a
|
||||
>
|
||||
|
||||
<script src="js/api.js"></script>
|
||||
<script src="js/opening_balance.js"></script>
|
||||
|
||||
@@ -56,7 +56,19 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<a href="index.html" style="display:inline-block;padding:6px 16px;background:#757575;color:#fff;border-radius:4px;text-decoration:none;font-size:14px;">← メニューへ戻る</a>
|
||||
<a
|
||||
href="index.html"
|
||||
style="
|
||||
display: inline-block;
|
||||
padding: 6px 16px;
|
||||
background: #757575;
|
||||
color: #fff;
|
||||
border-radius: 4px;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
"
|
||||
>← メニューへ戻る</a
|
||||
>
|
||||
|
||||
<h1>給与管理システム</h1>
|
||||
<p>従業員の給与計算、扶養管理、保険料・税金の管理を行います</p>
|
||||
|
||||
@@ -267,7 +267,20 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<a href="index.html" style="display:inline-block;margin:0 0 20px 0;padding:6px 16px;background:#757575;color:#fff;border-radius:4px;text-decoration:none;font-size:14px;">← メニューへ戻る</a>
|
||||
<a
|
||||
href="index.html"
|
||||
style="
|
||||
display: inline-block;
|
||||
margin: 0 0 20px 0;
|
||||
padding: 6px 16px;
|
||||
background: #757575;
|
||||
color: #fff;
|
||||
border-radius: 4px;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
"
|
||||
>← メニューへ戻る</a
|
||||
>
|
||||
|
||||
<h2>残高試算表(貸借・損益)</h2>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user