205 lines
7.5 KiB
Python
205 lines
7.5 KiB
Python
# coding: gb2312
|
|
"""**页面宏**页面宏**页面宏**页面宏**页面宏**页面宏**页面宏**页面宏**页面宏**页面宏**页面宏**页面宏**页面宏**页面宏"""
|
|
from PyQt5.QtWidgets import QLabel
|
|
|
|
HOME_PAGE = "home_page"
|
|
PICK_UP_PAGE = "pick_up_page"
|
|
PREPARE_PAGE = "prepare_page"
|
|
EXERCISE_PAGE = "exercise_page"
|
|
RUNNING_PAGE = "running_page"
|
|
BASE_STATION_PAGE = "base_station_page"
|
|
RUNNING_PICK_UP = "running_pick_up"
|
|
RUNNING_TEST_PAGE = "running_test_page"
|
|
RUNNING_CONFIG = "running_config"
|
|
RUNNING_SCORE = "running_score"
|
|
|
|
"""**表盘类型定义**表盘类型定义**表盘类型定义**表盘类型定义**表盘类型定义**表盘类型定义**表盘类型定义**表盘类型定义"""
|
|
ALL = "all"
|
|
FINISHED = "finished"
|
|
UNFINISHED = "unfinished"
|
|
PICK_UP_TYPE_TABLE = {
|
|
ALL: "全部",
|
|
FINISHED: "已考",
|
|
UNFINISHED: "未考"
|
|
}
|
|
PICK_UP_TYPE_LIST = [ALL, FINISHED, UNFINISHED]
|
|
|
|
|
|
# 人员数据重定义方法
|
|
def _person_select_func(person_list):
|
|
return {
|
|
person_mes[ID]: {
|
|
**person_mes,
|
|
IS_CHOOSE: False
|
|
}
|
|
for person_mes in person_list
|
|
}
|
|
|
|
|
|
PERSON_SELECT_FUNC = _person_select_func
|
|
|
|
# 人员筛选方法
|
|
PICK_UP_TYPE_FILTER = {
|
|
ALL: lambda person_list: list(filter(
|
|
lambda person_mes: True,
|
|
person_list
|
|
)),
|
|
# 对每个人,筛选出成绩和计数都不为空的人员
|
|
FINISHED: lambda person_list: list(filter(
|
|
lambda person_mes:
|
|
person_mes[SCORE] is not None and person_mes[COUNT] is not None,
|
|
person_list
|
|
)),
|
|
# 对每个人,筛选出成绩或计数为空的人员
|
|
UNFINISHED: lambda person_list: list(filter(
|
|
lambda person_mes:
|
|
person_mes[SCORE] is None or person_mes[COUNT] is None,
|
|
person_list
|
|
))
|
|
}
|
|
|
|
|
|
def _set_person_widget_style(label_widget, person_mes):
|
|
if not person_mes[IS_CHOOSE]:
|
|
# 如果未参加考试,则显示以下样式
|
|
if not person_mes[SCORE]:
|
|
label_widget.setText(
|
|
"""
|
|
<div style='font: 600 22px \"Microsoft YaHei UI\";text-align:center;color: #409eff;'>
|
|
<img src='assets/blue_avatar.png' width='22' />{}</div>
|
|
<table style='border: 1px solid #409eff; border-collapse: collapse;margin-left:15px;
|
|
margin-top:5px;border-radius:4px'>
|
|
<tr><td style='font: 18px \"Microsoft YaHei UI\";
|
|
background-color: #ecf5ff;border: 1px solid #409eff;padding:4 40 4 50;
|
|
border-radius:4px;'>编号:{}</td></tr></table>
|
|
""".format(person_mes[NAME], person_mes[ID])
|
|
)
|
|
label_widget.setStyleSheet(
|
|
"border:1px solid #409eff;"
|
|
"margin:6px;"
|
|
"border-radius:4px;"
|
|
"padding:15 0 15 0;"
|
|
)
|
|
# 如果已参加考试,则显示以下样式
|
|
else:
|
|
label_widget.setText(
|
|
"""
|
|
<div style='font: 600 22px \"Microsoft YaHei UI\";text-align:center;color: #f56c6c;'>
|
|
<img src='assets/pink_avatar.png' width='22' />{}</div>
|
|
<table style='border: 1px solid #f56c6c;
|
|
border-collapse: collapse;margin-left:15px;margin-top:5px;border-radius:4px'>
|
|
<tr><td style='font: 18px \"Microsoft YaHei UI\";
|
|
background-color: #fef0f0;border: 1px solid #f56c6c;
|
|
padding:4 40 4 50;border-radius:4px;'>编号:{}</td></tr></table>
|
|
<div style='font: 16px \"Microsoft YaHei UI\";text-align:center;color: #222222;
|
|
margin-top: 5px;'>
|
|
计数:<span style='font: 600 17px;'>{}</span>
|
|
<span style='font: 16px \"Microsoft YaHei UI\";text-align:center;color: #222222;'>
|
|
成绩:<span style='font: 600 17px;'>{}</span></span></div>
|
|
""".format(person_mes[NAME], person_mes[ID], person_mes[COUNT], person_mes[SCORE])
|
|
)
|
|
label_widget.setStyleSheet(
|
|
"border:1px solid #f56c6c;"
|
|
"margin:6px;"
|
|
"border-radius:4px;"
|
|
"padding:15 0 15 0;"
|
|
)
|
|
else:
|
|
# 如果未参加考试,则显示以下样式
|
|
if not person_mes[SCORE]:
|
|
label_widget.setText(
|
|
"""
|
|
<div style='font: 600 22px \"Microsoft YaHei UI\";text-align:center;color: #ffffff;'>
|
|
<img src='assets/white_avatar.png' width='22' />{}</div>
|
|
<table style='border: 1px solid #409eff; border-collapse: collapse;
|
|
margin-left:15px;margin-top:5px;border-radius:4px'><tr>
|
|
<td style='font: 18px \"Microsoft YaHei UI\";background-color: #409eff;
|
|
border: 1px solid #ffffff;padding:4 40 4 50;border-radius:4px;color:#ffffff;'>
|
|
编号:{}</td></tr></table>
|
|
""".format(person_mes[NAME], person_mes[ID])
|
|
)
|
|
label_widget.setStyleSheet(
|
|
"background-color:#409eff;"
|
|
"margin:6px;"
|
|
"border-radius:4px;"
|
|
"padding:15 0 15 0;"
|
|
)
|
|
# 如果已参加考试,则显示以下样式
|
|
else:
|
|
label_widget.setText(
|
|
"""
|
|
<div style='font: 600 22px \"Microsoft YaHei UI\";text-align:center;color: #ffffff;'>
|
|
<img src='assets/white_avatar.png' width='22' />{}</div>
|
|
<table style='border: 1px solid #f56c6c; border-collapse: collapse;
|
|
margin-left:15px;margin-top:5px;border-radius:4px'><tr>
|
|
<td style='border: 1px solid #ffffff;background-color:#409eff;
|
|
color:#ffffff;font: 18px \"Microsoft YaHei UI\";padding:4 40 4 50;
|
|
border-radius:4px;'>编号:{}</td></tr></table>
|
|
<div style='font: 16px \"Microsoft YaHei UI\";text-align:center;
|
|
color: #ffffff;margin-top: 5px;'>计数:<span style='font: 600 17px;'>{}</span>
|
|
<span style='font: 16px \"Microsoft YaHei UI\";
|
|
text-align:center;color: #ffffff;'> 成绩:
|
|
<span style='font: 600 17px;'>{}</span></span></div>
|
|
""".format(person_mes[NAME], person_mes[ID], person_mes[COUNT], person_mes[SCORE])
|
|
)
|
|
label_widget.setStyleSheet(
|
|
"background-color:#409eff;"
|
|
"margin:6px;"
|
|
"border-radius:4px;"
|
|
"padding:15 0 15 0;"
|
|
)
|
|
return label_widget
|
|
|
|
|
|
SET_PERSON_WIDGET_STYLE = _set_person_widget_style
|
|
|
|
|
|
# 考试人员样式管理
|
|
def _get_person_widget_text(person_mes):
|
|
label_widget = QLabel()
|
|
return SET_PERSON_WIDGET_STYLE(label_widget, person_mes)
|
|
|
|
|
|
GET_PERSON_WIDGET_TEXT = _get_person_widget_text
|
|
|
|
"""**表盘内容宏**表盘内容宏**表盘内容宏**表盘内容宏**表盘内容宏**表盘内容宏**表盘内容宏**表盘内容宏**表盘内容宏**表盘内容宏"""
|
|
PERSON_LIST = "person_list"
|
|
NAME = "name"
|
|
ID = "id"
|
|
SCORE = "score"
|
|
COUNT = "count"
|
|
IS_CHOOSE = "is_choose"
|
|
CLASS = "class"
|
|
BAND_ID = "band_id"
|
|
PERCENTAGE = "percentage"
|
|
STATE = "state"
|
|
FINISH_MES = 'finish'
|
|
HR = "hr"
|
|
BO = "bo"
|
|
RANK = "rank"
|
|
ROUND = "round"
|
|
TOTAL_TIME = 'total_time'
|
|
ROUND_LIST = "round_list"
|
|
"""**作训类型定义**作训类型定义**作训类型定义**作训类型定义**作训类型定义**作训类型定义**作训类型定义**作训类型定义**作训类型定义"""
|
|
EXERCISE_TYPE = "exercise_type"
|
|
SIT_UP = "sit_up"
|
|
PULL_UP = "pull_up"
|
|
HANGING = "hanging"
|
|
PUSH_UP = "push_up"
|
|
RUNAROUND = "runaround"
|
|
RUNNING = "running"
|
|
EXERCISE_TYPE_TABLE = {
|
|
SIT_UP: "仰卧起坐",
|
|
PULL_UP: "引体向上",
|
|
HANGING: "曲臂悬垂",
|
|
PUSH_UP: "俯卧撑",
|
|
RUNAROUND: "30*2蛇形跑",
|
|
RUNNING: "长跑"
|
|
}
|
|
|
|
PERSON_MES = "person_mes"
|
|
FRAME_GENERATOR = "frame_generator"
|
|
ANCHORS_DATA = "anchors_data"
|
|
MASTER = "master"
|
|
SLAVER = "slaver"
|