Ver código fonte

[add]

トップページを作成
poohr 1 mês atrás
pai
commit
d57d35a499

+ 92
- 0
src/app/pages/dashboard/dashboard.html Ver arquivo

@@ -0,0 +1,92 @@
1
+<app-header></app-header>
2
+
3
+<div class="dashboard-page">
4
+  <app-side-menu></app-side-menu>
5
+
6
+  <main class="dashboard-main">
7
+    <section class="dashboard-panel">
8
+      <div class="dashboard-heading">
9
+        <h1>ダッシュボード</h1>
10
+        <p>今日よく使う操作</p>
11
+      </div>
12
+
13
+      <div class="summary-card-list">
14
+        <a class="summary-card" href="#">
15
+          <p class="summary-label">年次法要の対象</p>
16
+          <p class="summary-main">12 名</p>
17
+          <p class="summary-sub">対象年 2026 を表示中</p>
18
+        </a>
19
+
20
+        <a class="summary-card" href="#">
21
+          <p class="summary-label">檀家(世帯)を探す</p>
22
+          <p class="summary-main">一覧へ</p>
23
+          <p class="summary-sub">氏名・住所・電話で確認</p>
24
+        </a>
25
+
26
+        <a class="summary-card" href="#">
27
+          <p class="summary-label">まとめて検索</p>
28
+          <p class="summary-main">検索へ</p>
29
+          <p class="summary-sub">檀家・家族・過去帳を横断</p>
30
+        </a>
31
+
32
+        <a class="summary-card" href="#">
33
+          <p class="summary-label">新規登録</p>
34
+          <p class="summary-main">追加する</p>
35
+          <p class="summary-sub">檀家・家族・故人を入力</p>
36
+        </a>
37
+      </div>
38
+
39
+      <section class="recent-section">
40
+        <div class="section-title-area">
41
+          <h2>最近開いた檀家(世帯)</h2>
42
+          <p>よく使う世帯は一覧からすぐ開けます。</p>
43
+        </div>
44
+
45
+        <div class="recent-table">
46
+          <div class="recent-table-header">
47
+            <div>世帯主</div>
48
+            <div>ふりがな</div>
49
+            <div>住所</div>
50
+            <div>家族</div>
51
+            <div>故人</div>
52
+          </div>
53
+
54
+          <a class="recent-table-row" href="#">
55
+            <div class="strong">鈴木 太郎</div>
56
+            <div>すずき</div>
57
+            <div>市内 1-2-3</div>
58
+            <div>4名</div>
59
+            <div>2名</div>
60
+          </a>
61
+
62
+          <a class="recent-table-row" href="#">
63
+            <div>佐藤 恒一</div>
64
+            <div>さとう</div>
65
+            <div>市内 2-8-1</div>
66
+            <div>3名</div>
67
+            <div>1名</div>
68
+          </a>
69
+
70
+          <a class="recent-table-row" href="#">
71
+            <div>田中 雅子</div>
72
+            <div>たなか</div>
73
+            <div>市内 3-4-6</div>
74
+            <div>2名</div>
75
+            <div>0名</div>
76
+          </a>
77
+        </div>
78
+      </section>
79
+
80
+      <section class="quick-open-section">
81
+        <h2>すぐ開く</h2>
82
+
83
+        <div class="quick-button-list">
84
+          <a class="quick-button" href="#">檀家一覧</a>
85
+          <a class="quick-button" href="#">年次法要一覧</a>
86
+          <a class="quick-button" href="#">まとめて検索</a>
87
+          <a class="quick-button" href="#">家系図</a>
88
+        </div>
89
+      </section>
90
+    </section>
91
+  </main>
92
+</div>

+ 202
- 0
src/app/pages/dashboard/dashboard.scss Ver arquivo

@@ -0,0 +1,202 @@
1
+:host {
2
+  display: block;
3
+  min-height: 100vh;
4
+  background: #f4eee4;
5
+  color: #2f2720;
6
+}
7
+
8
+.dashboard-page {
9
+  display: flex;
10
+  align-items: flex-start;
11
+  gap: 8px;
12
+  padding-top: 0;
13
+  background: #f4eee4;
14
+}
15
+
16
+.dashboard-main {
17
+  flex: 1;
18
+  padding-right: 34px;
19
+  box-sizing: border-box;
20
+}
21
+
22
+.dashboard-panel {
23
+  min-height: 650px;
24
+  padding: 26px 34px 40px;
25
+  background: #ffffff;
26
+  border: 2px solid #d8caba;
27
+  border-radius: 76px;
28
+  box-sizing: border-box;
29
+}
30
+
31
+.dashboard-heading {
32
+  margin-bottom: 18px;
33
+}
34
+
35
+.dashboard-heading h1 {
36
+  margin: 0;
37
+  font-size: 32px;
38
+  line-height: 1.2;
39
+  font-weight: 800;
40
+  color: #2f2720;
41
+  letter-spacing: 0.02em;
42
+}
43
+
44
+.dashboard-heading p {
45
+  margin: 4px 0 0;
46
+  font-size: 16px;
47
+  color: #6f6257;
48
+}
49
+
50
+.summary-card-list {
51
+  display: grid;
52
+  grid-template-columns: repeat(4, 1fr);
53
+  gap: 18px;
54
+  margin-bottom: 34px;
55
+}
56
+
57
+.summary-card {
58
+  min-height: 116px;
59
+  padding: 14px 20px 16px;
60
+  border: 2px solid #d8caba;
61
+  border-radius: 20px;
62
+  background: #ffffff;
63
+  color: #2f2720;
64
+  text-decoration: none;
65
+  box-sizing: border-box;
66
+  display: block;
67
+}
68
+
69
+.summary-card:hover {
70
+  background: #fbf7f1;
71
+}
72
+
73
+.summary-label {
74
+  margin: 0;
75
+  font-size: 16px;
76
+  color: #6f6257;
77
+  line-height: 1.3;
78
+}
79
+
80
+.summary-main {
81
+  margin: 2px 0 0;
82
+  font-size: 30px;
83
+  font-weight: 800;
84
+  line-height: 1.15;
85
+  color: #2f2720;
86
+}
87
+
88
+.summary-sub {
89
+  margin: 2px 0 0;
90
+  font-size: 15px;
91
+  color: #6f6257;
92
+  line-height: 1.35;
93
+}
94
+
95
+.recent-section {
96
+  margin-top: 0;
97
+}
98
+
99
+.section-title-area {
100
+  margin-bottom: 4px;
101
+}
102
+
103
+.section-title-area h2,
104
+.quick-open-section h2 {
105
+  margin: 0;
106
+  font-size: 20px;
107
+  font-weight: 800;
108
+  color: #2f2720;
109
+}
110
+
111
+.section-title-area p {
112
+  margin: 2px 0 0;
113
+  font-size: 15px;
114
+  color: #6f6257;
115
+}
116
+
117
+.recent-table {
118
+  width: 100%;
119
+}
120
+
121
+.recent-table-header,
122
+.recent-table-row {
123
+  display: grid;
124
+  grid-template-columns: 2.1fr 1fr 3.1fr 0.8fr 0.8fr;
125
+  align-items: center;
126
+  column-gap: 12px;
127
+}
128
+
129
+.recent-table-header {
130
+  min-height: 36px;
131
+  padding: 0 12px;
132
+  background: #eadfce;
133
+  border: 2px solid #d8caba;
134
+  border-radius: 6px;
135
+  box-sizing: border-box;
136
+  color: #5a4a3c;
137
+  font-size: 15px;
138
+  font-weight: 700;
139
+}
140
+
141
+.recent-table-row {
142
+  min-height: 58px;
143
+  margin-top: 4px;
144
+  padding: 0 12px;
145
+  background: #fbf7f1;
146
+  border: 2px solid #d8caba;
147
+  border-radius: 8px;
148
+  box-sizing: border-box;
149
+  color: #2f2720;
150
+  font-size: 16px;
151
+  text-decoration: none;
152
+}
153
+
154
+.recent-table-row:hover {
155
+  background: #f3eadc;
156
+}
157
+
158
+.recent-table-row .strong {
159
+  font-weight: 800;
160
+}
161
+
162
+.quick-open-section {
163
+  margin-top: 24px;
164
+}
165
+
166
+.quick-button-list {
167
+  display: grid;
168
+  grid-template-columns: repeat(4, 1fr);
169
+  gap: 16px;
170
+  margin-top: 8px;
171
+}
172
+
173
+.quick-button {
174
+  height: 54px;
175
+  border: 2px solid #d8caba;
176
+  border-radius: 8px;
177
+  background: #e6d8c4;
178
+  color: #2f2720;
179
+  font-size: 18px;
180
+  font-weight: 800;
181
+  text-decoration: none;
182
+  display: flex;
183
+  align-items: center;
184
+  justify-content: center;
185
+  box-sizing: border-box;
186
+}
187
+
188
+.quick-button:hover {
189
+  background: #d9c7ad;
190
+}
191
+
192
+.bottom-note {
193
+  width: 700px;
194
+  margin: 18px 0 22px 36px;
195
+  padding: 4px 12px;
196
+  border: 2px solid #d8caba;
197
+  border-radius: 4px;
198
+  background: #eadfce;
199
+  color: #7b6b5c;
200
+  font-size: 14px;
201
+  box-sizing: border-box;
202
+}

+ 22
- 0
src/app/pages/dashboard/dashboard.spec.ts Ver arquivo

@@ -0,0 +1,22 @@
1
+import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+import { Dashboard } from './dashboard';
4
+
5
+describe('Dashboard', () => {
6
+  let component: Dashboard;
7
+  let fixture: ComponentFixture<Dashboard>;
8
+
9
+  beforeEach(async () => {
10
+    await TestBed.configureTestingModule({
11
+      imports: [Dashboard],
12
+    }).compileComponents();
13
+
14
+    fixture = TestBed.createComponent(Dashboard);
15
+    component = fixture.componentInstance;
16
+    await fixture.whenStable();
17
+  });
18
+
19
+  it('should create', () => {
20
+    expect(component).toBeTruthy();
21
+  });
22
+});

+ 11
- 0
src/app/pages/dashboard/dashboard.ts Ver arquivo

@@ -0,0 +1,11 @@
1
+import { Component } from '@angular/core';
2
+import { AppHeader } from '../../share/header/app-header';
3
+import { AppSideMenu } from '../../share/side-menu/app-side-menu';
4
+
5
+@Component({
6
+  selector: 'app-dashboard',
7
+  imports: [AppHeader, AppSideMenu],
8
+  templateUrl: './dashboard.html',
9
+  styleUrl: './dashboard.scss',
10
+})
11
+export class Dashboard {}

Carregando…
Cancelar
Salvar