This commit is contained in:
9700X_PC 2025-04-13 14:48:51 +09:00
parent 0f256ce444
commit b79692c16b
1 changed files with 120 additions and 15 deletions

View File

@ -17,6 +17,33 @@ class FaultFinderUI:
self.page = page
self.db_manager = db_manager
# 상단 탭 버튼 그룹
self.tab_buttons = ft.Row([
ft.ElevatedButton("고장코드 목록", on_click=self._show_fault_codes, style=ft.ButtonStyle(bgcolor={"": ft.colors.BLUE_200})),
ft.ElevatedButton("약어 목록", on_click=self._show_abbreviations),
ft.ElevatedButton("도면 목록", on_click=self._show_drawings)
], spacing=10, alignment=ft.MainAxisAlignment.CENTER)
# 제작사와 장치분류를 나란히 배치
self.filter_row = ft.Row([
# 제작사 필터
ft.Container(
content=self.manufacturer_dropdown,
expand=True,
padding=10,
bgcolor=ft.colors.BLUE_GREY_50,
border_radius=10
),
# 장치분류 필터
ft.Container(
content=self.type_dropdown,
expand=True,
padding=10,
bgcolor=ft.colors.BLUE_GREY_50,
border_radius=10
)
], spacing=10)
# 전체 제작사 목록 가져오기
self.manufacturers = self._get_manufacturers()
@ -80,24 +107,14 @@ class FaultFinderUI:
prefix_icon=ft.icons.SEARCH
)
# 메인 컨테이너
# 메인 컨테이너 수정
self.container = ft.Container(
content=ft.Column([
# 상단: 제작사 필터
ft.Container(
content=self.manufacturer_dropdown,
padding=10,
bgcolor=ft.colors.BLUE_GREY_50,
border_radius=10
),
# 상단: 탭 버튼
self.tab_buttons,
# 상단: 고장 타입 필터
ft.Container(
content=self.type_dropdown,
padding=10,
bgcolor=ft.colors.BLUE_GREY_50,
border_radius=10
),
# 제작사와 장치분류 필터
self.filter_row,
# 중앙: 고장 리스트
self.fault_list_container,
@ -428,3 +445,91 @@ class FaultFinderUI:
expand=True,
)
])
def _show_fault_codes(self, e):
"""고장코드 목록을 표시합니다."""
self.load_all_codes()
self._update_tab_button_styles("고장코드 목록")
def _show_abbreviations(self, e):
"""약어 목록을 표시합니다."""
conn = sqlite3.connect('fault_codes.db')
cursor = conn.cursor()
cursor.execute("""
SELECT abbreviation, full_name, description
FROM abbreviations
ORDER BY abbreviation
""")
results = cursor.fetchall()
conn.close()
# 약어 목록을 위한 새로운 데이터 테이블 생성
abbreviation_columns = [
ft.DataColumn(ft.Text("약어")),
ft.DataColumn(ft.Text("전체 이름")),
ft.DataColumn(ft.Text("설명"))
]
rows = []
for abbr, full_name, desc in results:
row = ft.DataRow(
cells=[
ft.DataCell(ft.Text(str(abbr))),
ft.DataCell(ft.Text(full_name)),
ft.DataCell(ft.Text(desc))
]
)
rows.append(row)
self.fault_list.columns = abbreviation_columns
self.fault_list.rows = rows
self.page.update()
self._update_tab_button_styles("약어 목록")
def _show_drawings(self, e):
"""도면 목록을 표시합니다."""
conn = sqlite3.connect('fault_codes.db')
cursor = conn.cursor()
cursor.execute("""
SELECT drawing_code, drawing_name, drawing_type, description
FROM drawings
ORDER BY drawing_code
""")
results = cursor.fetchall()
conn.close()
# 도면 목록을 위한 새로운 데이터 테이블 생성
drawing_columns = [
ft.DataColumn(ft.Text("도면 코드")),
ft.DataColumn(ft.Text("도면 이름")),
ft.DataColumn(ft.Text("도면 타입")),
ft.DataColumn(ft.Text("설명"))
]
rows = []
for code, name, type_, desc in results:
row = ft.DataRow(
cells=[
ft.DataCell(ft.Text(str(code))),
ft.DataCell(ft.Text(name)),
ft.DataCell(ft.Text(type_)),
ft.DataCell(ft.Text(desc))
]
)
rows.append(row)
self.fault_list.columns = drawing_columns
self.fault_list.rows = rows
self.page.update()
self._update_tab_button_styles("도면 목록")
def _update_tab_button_styles(self, active_tab):
"""탭 버튼의 스타일을 업데이트합니다."""
for button in self.tab_buttons.controls:
if button.text == active_tab:
button.style = ft.ButtonStyle(bgcolor={"": ft.colors.BLUE_200})
else:
button.style = ft.ButtonStyle(bgcolor={"": ft.colors.GREY_300})
self.page.update()