This commit is contained in:
parent
0f256ce444
commit
b79692c16b
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue