LISHUZUOXUN_yangjiang/LSZXPagesLibrary/consensus.py

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;'>
&nbsp;&nbsp;&nbsp;&nbsp;成绩:<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;'>&nbsp;&nbsp;&nbsp;&nbsp;成绩:
<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"