Completed all interaction tasks and successfully deployed locally

master
nonsense-j 3 years ago
parent c54458c472
commit 8de470b5b0

@ -65,14 +65,6 @@
</div>
</div>
<!-- Paragraph Text - Faded (矩形) -->
<div id="u109" class="ax_default paragraph" data-label="Paragraph Text - Faded">
<div id="u109_div" class=""></div>
<div id="u109_text" class="text ">
<p><span style="text-decoration:none;">成员1软件工程&nbsp; 刘珺</span></p>
</div>
</div>
<!-- Hero Text - H1 (矩形) -->
<div id="u110" class="ax_default heading_1" data-label="Hero Text - H1">
<div id="u110_div" class=""></div>
@ -137,11 +129,19 @@
</div>
</div>
<!-- Paragraph Text - Faded (矩形) -->
<div id="u109" class="ax_default paragraph" data-label="Paragraph Text - Faded">
<div id="u109_div" class=""></div>
<div id="u109_text" class="text ">
<p><span style="text-decoration:none;">成员1软件工程专业 刘珺</span></p>
</div>
</div>
<!-- Paragraph Text - Faded (矩形) -->
<div id="u118" class="ax_default paragraph" data-label="Paragraph Text - Faded">
<div id="u118_div" class=""></div>
<div id="u118_text" class="text ">
<p><span style="text-decoration:none;">成员1软件工程&nbsp; 余克雄</span></p>
<p><span style="text-decoration:none;">成员2软件工程专业 余克雄</span></p>
</div>
</div>
@ -149,7 +149,7 @@
<div id="u119" class="ax_default paragraph" data-label="Paragraph Text - Faded">
<div id="u119_div" class=""></div>
<div id="u119_text" class="text ">
<p><span style="text-decoration:none;">成员1软件工程&nbsp; 李甲泰</span></p>
<p><span style="text-decoration:none;">成员3软件工程专业 李甲泰</span></p>
</div>
</div>
@ -157,7 +157,7 @@
<div id="u120" class="ax_default paragraph" data-label="Paragraph Text - Faded">
<div id="u120_div" class=""></div>
<div id="u120_text" class="text ">
<p><span style="text-decoration:none;">成员1软件工程&nbsp; 姚子路</span></p>
<p><span style="text-decoration:none;">成员4软件工程专业 姚子路</span></p>
</div>
</div>

File diff suppressed because it is too large Load Diff

@ -48,36 +48,37 @@
<script src="resources/scripts/axure/jquery.nicescroll.min.js"></script>
<script src="data/document.js"></script>
<script src="files/checkfail/data.js"></script>
<script src="files/checkfail/showError.js"></script>
<script type="text/javascript">
$axure.utils.getTransparentGifPath = function() { return 'resources/images/transparent.gif'; };
$axure.utils.getOtherPath = function() { return 'resources/Other.html'; };
$axure.utils.getReloadPath = function() { return 'resources/reload.html'; };
</script>
</head>
<body>
<body onload="show_error()">
<div id="base" class="">
<!-- Header Divider (动态面板) -->
<div id="u1034" class="ax_default" data-label="Header Divider">
<div id="u1034_state0" class="panel_state" data-label="Header Divider" style="">
<div id="u1034_state0_content" class="panel_state_content">
<div id="u1023" class="ax_default" data-label="Header Divider">
<div id="u1023_state0" class="panel_state" data-label="Header Divider" style="">
<div id="u1023_state0_content" class="panel_state_content">
<!-- Unnamed (矩形) -->
<div id="u1035" class="ax_default shape">
<div id="u1035_div" class=""></div>
<div id="u1035_text" class="text " style="display:none; visibility: hidden">
<div id="u1024" class="ax_default shape">
<div id="u1024_div" class=""></div>
<div id="u1024_text" class="text " style="display:none; visibility: hidden">
<p></p>
</div>
</div>
</div>
</div>
<div id="u1034_state1" class="panel_state" data-label="Sticky Header Divider" style="visibility: hidden;">
<div id="u1034_state1_content" class="panel_state_content">
<div id="u1023_state1" class="panel_state" data-label="Sticky Header Divider" style="visibility: hidden;">
<div id="u1023_state1_content" class="panel_state_content">
<!-- Unnamed (矩形) -->
<div id="u1036" class="ax_default shape">
<div id="u1036_div" class=""></div>
<div id="u1036_text" class="text " style="display:none; visibility: hidden">
<div id="u1025" class="ax_default shape">
<div id="u1025_div" class=""></div>
<div id="u1025_text" class="text " style="display:none; visibility: hidden">
<p></p>
</div>
</div>
@ -86,82 +87,82 @@
</div>
<!-- Unnamed (形状) -->
<div id="u1037" class="ax_default shape">
<img id="u1037_img" class="img " src="images/checksuc/u1021.svg"/>
<div id="u1037_text" class="text ">
<div id="u1026" class="ax_default shape">
<img id="u1026_img" class="img " src="images/checksuc/u1010.svg"/>
<div id="u1026_text" class="text ">
<p><span style="text-decoration:none;">检测结果</span></p>
</div>
</div>
<!-- Unnamed (SVG) -->
<div id="u1038" class="ax_default image">
<img id="u1038_img" class="img " src="images/qtype/u196.svg"/>
<div id="u1038_text" class="text " style="display:none; visibility: hidden">
<div id="u1027" class="ax_default image">
<img id="u1027_img" class="img " src="images/qtype/u196.svg"/>
<div id="u1027_text" class="text " style="display:none; visibility: hidden">
<p></p>
</div>
</div>
<!-- Unnamed (热区) -->
<div id="u1039" class="ax_default">
<div id="u1028" class="ax_default">
</div>
<!-- Header DP (动态面板) -->
<div id="u1040" class="ax_default" data-label="Header DP">
<div id="u1040_state0" class="panel_state" data-label="Sticky Header" style="">
<div id="u1040_state0_content" class="panel_state_content">
<div id="u1029" class="ax_default" data-label="Header DP">
<div id="u1029_state0" class="panel_state" data-label="Sticky Header" style="">
<div id="u1029_state0_content" class="panel_state_content">
<!-- Contact - Header Nav (矩形) -->
<div id="u1041" class="ax_default paragraph" data-label="Contact - Header Nav">
<div id="u1041_div" class=""></div>
<div id="u1041_text" class="text ">
<div id="u1030" class="ax_default paragraph" data-label="Contact - Header Nav">
<div id="u1030_div" class=""></div>
<div id="u1030_text" class="text ">
<p><span style="text-decoration:none;">CONTACT</span></p>
</div>
</div>
<!-- Portfolio - Header Nav (矩形) -->
<div id="u1042" class="ax_default paragraph" data-label="Portfolio - Header Nav">
<div id="u1042_div" class=""></div>
<div id="u1042_text" class="text ">
<div id="u1031" class="ax_default paragraph" data-label="Portfolio - Header Nav">
<div id="u1031_div" class=""></div>
<div id="u1031_text" class="text ">
<p><span style="text-decoration:none;">HOME</span></p>
</div>
</div>
<!-- About - Header Nav (矩形) -->
<div id="u1043" class="ax_default paragraph" data-label="About - Header Nav">
<div id="u1043_div" class=""></div>
<div id="u1043_text" class="text ">
<div id="u1032" class="ax_default paragraph" data-label="About - Header Nav">
<div id="u1032_div" class=""></div>
<div id="u1032_text" class="text ">
<p><span style="text-decoration:none;">ABOUT</span></p>
</div>
</div>
<!-- Logo - Header Nav (矩形) -->
<div id="u1044" class="ax_default paragraph" data-label="Logo - Header Nav">
<div id="u1044_div" class=""></div>
<div id="u1044_text" class="text ">
<div id="u1033" class="ax_default paragraph" data-label="Logo - Header Nav">
<div id="u1033_div" class=""></div>
<div id="u1033_text" class="text ">
<p><span style="text-decoration:none;">WWW.ZJTJ.COM</span></p>
</div>
</div>
<!-- Unnamed (线) -->
<div id="u1045" class="ax_default line">
<img id="u1045_img" class="img " src="images/home/u13.svg"/>
<div id="u1045_text" class="text " style="display:none; visibility: hidden">
<div id="u1034" class="ax_default line">
<img id="u1034_img" class="img " src="images/home/u13.svg"/>
<div id="u1034_text" class="text " style="display:none; visibility: hidden">
<p></p>
</div>
</div>
<!-- Portfolio - Header Nav (矩形) -->
<div id="u1046" class="ax_default paragraph" data-label="Portfolio - Header Nav">
<div id="u1046_div" class=""></div>
<div id="u1046_text" class="text ">
<div id="u1035" class="ax_default paragraph" data-label="Portfolio - Header Nav">
<div id="u1035_div" class=""></div>
<div id="u1035_text" class="text ">
<p><span style="text-decoration:none;">2020-11-19</span></p>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u1047" class="ax_default label">
<div id="u1047_div" class=""></div>
<div id="u1047_text" class="text ">
<div id="u1036" class="ax_default label">
<div id="u1036_div" class=""></div>
<div id="u1036_text" class="text ">
<p><span style="text-decoration:none;">show me the pc assembly list</span></p>
</div>
</div>
@ -170,33 +171,33 @@
</div>
<!-- Unnamed (矩形) -->
<div id="u1048" class="ax_default box_1">
<div id="u1048_div" class=""></div>
<div id="u1048_text" class="text ">
<div id="u1037" class="ax_default box_1">
<div id="u1037_div" class=""></div>
<div id="u1037_text" class="text ">
<p><span style="text-decoration:none;">兼容性检测失败</span></p>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u1049" class="ax_default box_1">
<div id="u1049_div" class=""></div>
<div id="u1049_text" class="text " style="display:none; visibility: hidden">
<div id="u1038" class="ax_default box_1">
<div id="u1038_div" class=""></div>
<div id="u1038_text" class="text " style="display:none; visibility: hidden">
<p></p>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u1050" class="ax_default paragraph">
<div id="u1050_div" class=""></div>
<div id="u1050_text" class="text ">
<p><span style="text-decoration:none;">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span></p><p><span style="text-decoration:none;">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span></p><p><span style="text-decoration:none;">xxxxxxxxxxxxxxxxxxxxxxxxx</span></p><p><span style="text-decoration:none;">xxxxxxxxxxxxxxxxxxxxxx</span></p><p><span style="text-decoration:none;">xxxxxxxxxxxxxxxxxxxxx</span></p><p><span style="text-decoration:none;">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span></p><p><span style="text-decoration:none;">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span></p><p><span style="text-decoration:none;">xxxxxxxxxxxx</span></p>
<div id="u1039" class="ax_default paragraph">
<div id="u1039_div" class=""></div>
<div id="u1039_text" class="text ">
<p><span style="text-decoration:none;">xxxxxxxxxxxx</span></p>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u1051" class="ax_default shape">
<div id="u1051_div" class=""></div>
<div id="u1051_text" class="text ">
<div id="u1040" class="ax_default shape">
<div id="u1040_div" class=""></div>
<div id="u1040_text" class="text ">
<p><span style="text-decoration:none;">再试一次</span></p>
</div>
</div>

@ -58,26 +58,26 @@
<div id="base" class="">
<!-- Header Divider (动态面板) -->
<div id="u1018" class="ax_default" data-label="Header Divider">
<div id="u1018_state0" class="panel_state" data-label="Header Divider" style="">
<div id="u1018_state0_content" class="panel_state_content">
<div id="u1007" class="ax_default" data-label="Header Divider">
<div id="u1007_state0" class="panel_state" data-label="Header Divider" style="">
<div id="u1007_state0_content" class="panel_state_content">
<!-- Unnamed (矩形) -->
<div id="u1019" class="ax_default shape">
<div id="u1019_div" class=""></div>
<div id="u1019_text" class="text " style="display:none; visibility: hidden">
<div id="u1008" class="ax_default shape">
<div id="u1008_div" class=""></div>
<div id="u1008_text" class="text " style="display:none; visibility: hidden">
<p></p>
</div>
</div>
</div>
</div>
<div id="u1018_state1" class="panel_state" data-label="Sticky Header Divider" style="visibility: hidden;">
<div id="u1018_state1_content" class="panel_state_content">
<div id="u1007_state1" class="panel_state" data-label="Sticky Header Divider" style="visibility: hidden;">
<div id="u1007_state1_content" class="panel_state_content">
<!-- Unnamed (矩形) -->
<div id="u1020" class="ax_default shape">
<div id="u1020_div" class=""></div>
<div id="u1020_text" class="text " style="display:none; visibility: hidden">
<div id="u1009" class="ax_default shape">
<div id="u1009_div" class=""></div>
<div id="u1009_text" class="text " style="display:none; visibility: hidden">
<p></p>
</div>
</div>
@ -86,82 +86,82 @@
</div>
<!-- Unnamed (形状) -->
<div id="u1021" class="ax_default shape">
<img id="u1021_img" class="img " src="images/checksuc/u1021.svg"/>
<div id="u1021_text" class="text ">
<div id="u1010" class="ax_default shape">
<img id="u1010_img" class="img " src="images/checksuc/u1010.svg"/>
<div id="u1010_text" class="text ">
<p><span style="text-decoration:none;">检测结果</span></p>
</div>
</div>
<!-- Unnamed (SVG) -->
<div id="u1022" class="ax_default image">
<img id="u1022_img" class="img " src="images/qtype/u196.svg"/>
<div id="u1022_text" class="text " style="display:none; visibility: hidden">
<div id="u1011" class="ax_default image">
<img id="u1011_img" class="img " src="images/qtype/u196.svg"/>
<div id="u1011_text" class="text " style="display:none; visibility: hidden">
<p></p>
</div>
</div>
<!-- Unnamed (热区) -->
<div id="u1023" class="ax_default">
<div id="u1012" class="ax_default">
</div>
<!-- Header DP (动态面板) -->
<div id="u1024" class="ax_default" data-label="Header DP">
<div id="u1024_state0" class="panel_state" data-label="Sticky Header" style="">
<div id="u1024_state0_content" class="panel_state_content">
<div id="u1013" class="ax_default" data-label="Header DP">
<div id="u1013_state0" class="panel_state" data-label="Sticky Header" style="">
<div id="u1013_state0_content" class="panel_state_content">
<!-- Contact - Header Nav (矩形) -->
<div id="u1025" class="ax_default paragraph" data-label="Contact - Header Nav">
<div id="u1025_div" class=""></div>
<div id="u1025_text" class="text ">
<div id="u1014" class="ax_default paragraph" data-label="Contact - Header Nav">
<div id="u1014_div" class=""></div>
<div id="u1014_text" class="text ">
<p><span style="text-decoration:none;">CONTACT</span></p>
</div>
</div>
<!-- Portfolio - Header Nav (矩形) -->
<div id="u1026" class="ax_default paragraph" data-label="Portfolio - Header Nav">
<div id="u1026_div" class=""></div>
<div id="u1026_text" class="text ">
<div id="u1015" class="ax_default paragraph" data-label="Portfolio - Header Nav">
<div id="u1015_div" class=""></div>
<div id="u1015_text" class="text ">
<p><span style="text-decoration:none;">HOME</span></p>
</div>
</div>
<!-- About - Header Nav (矩形) -->
<div id="u1027" class="ax_default paragraph" data-label="About - Header Nav">
<div id="u1027_div" class=""></div>
<div id="u1027_text" class="text ">
<div id="u1016" class="ax_default paragraph" data-label="About - Header Nav">
<div id="u1016_div" class=""></div>
<div id="u1016_text" class="text ">
<p><span style="text-decoration:none;">ABOUT</span></p>
</div>
</div>
<!-- Logo - Header Nav (矩形) -->
<div id="u1028" class="ax_default paragraph" data-label="Logo - Header Nav">
<div id="u1028_div" class=""></div>
<div id="u1028_text" class="text ">
<div id="u1017" class="ax_default paragraph" data-label="Logo - Header Nav">
<div id="u1017_div" class=""></div>
<div id="u1017_text" class="text ">
<p><span style="text-decoration:none;">WWW.ZJTJ.COM</span></p>
</div>
</div>
<!-- Unnamed (线) -->
<div id="u1029" class="ax_default line">
<img id="u1029_img" class="img " src="images/home/u13.svg"/>
<div id="u1029_text" class="text " style="display:none; visibility: hidden">
<div id="u1018" class="ax_default line">
<img id="u1018_img" class="img " src="images/home/u13.svg"/>
<div id="u1018_text" class="text " style="display:none; visibility: hidden">
<p></p>
</div>
</div>
<!-- Portfolio - Header Nav (矩形) -->
<div id="u1030" class="ax_default paragraph" data-label="Portfolio - Header Nav">
<div id="u1030_div" class=""></div>
<div id="u1030_text" class="text ">
<div id="u1019" class="ax_default paragraph" data-label="Portfolio - Header Nav">
<div id="u1019_div" class=""></div>
<div id="u1019_text" class="text ">
<p><span style="text-decoration:none;">2020-11-19</span></p>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u1031" class="ax_default label">
<div id="u1031_div" class=""></div>
<div id="u1031_text" class="text ">
<div id="u1020" class="ax_default label">
<div id="u1020_div" class=""></div>
<div id="u1020_text" class="text ">
<p><span style="text-decoration:none;">show me the pc assembly list</span></p>
</div>
</div>
@ -170,17 +170,17 @@
</div>
<!-- Unnamed (矩形) -->
<div id="u1032" class="ax_default box_1">
<div id="u1032_div" class=""></div>
<div id="u1032_text" class="text ">
<div id="u1021" class="ax_default box_1">
<div id="u1021_div" class=""></div>
<div id="u1021_text" class="text ">
<p><span style="text-decoration:none;">恭喜!</span></p><p><span style="text-decoration:none;">所有配件都兼容</span></p>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u1033" class="ax_default shape">
<div id="u1033_div" class=""></div>
<div id="u1033_text" class="text ">
<div id="u1022" class="ax_default shape">
<div id="u1022_div" class=""></div>
<div id="u1022_text" class="text ">
<p><span style="text-decoration:none;">返回主页</span></p>
</div>
</div>

@ -0,0 +1,134 @@
[
//
{
"l1": "https://item.jd.com/100006391078.html",
"l2": "https://item.jd.com/100003809901.html",
"l3": "https://item.jd.com/100009115115.html",
"l4": "https://item.jd.com/100005116786.html",
"l5": "https://item.jd.com/100005926991.html",
"l6": "https://item.jd.com/675971.html",
"l7": "https://item.jd.com/100011674030.html",
"l8": "https://item.jd.com/6828141.html",
"l9": "https://item.jd.com/100002404996.html"
},
// 1
{
"l1": "https://item.jd.com/100006391078111.html",
"l2": "https://item.jd.com/100003809901.html",
"l3": "https://item.jd.com/100009115115.html",
"l4": "https://item.jd.com/100005116786.html",
"l5": "https://item.jd.com/100005926991.html",
"l6": "https://item.jd.com/675971.html",
"l7": "https://item.jd.com/100011674030.html",
"l8": "https://item.jd.com/6828141.html",
"l9": "https://item.jd.com/100002404996.html"
},
// 2CPU
{
"l1": "https://item.jd.com/100008667315.html",
"l2": "https://item.jd.com/100003809901.html",
"l3": "https://item.jd.com/100009115115.html",
"l4": "https://item.jd.com/100005116786.html",
"l5": "https://item.jd.com/100005926991.html",
"l6": "https://item.jd.com/675971.html",
"l7": "https://item.jd.com/100011674030.html",
"l8": "https://item.jd.com/6828141.html",
"l9": "https://item.jd.com/100002404996.html"
},
// 3
{
"l1": "https://item.jd.com/100006391078.html",
"l2": "https://item.jd.com/100003809901.html",
"l3": "https://item.jd.com/100009115115.html",
"l4": "https://item.jd.com/664483.html",
"l5": "https://item.jd.com/100005926991.html",
"l6": "https://item.jd.com/675971.html",
"l7": "https://item.jd.com/100011674030.html",
"l8": "https://item.jd.com/6828141.html",
"l9": "https://item.jd.com/100002404996.html"
},
// 4------
{
"l1": "https://item.jd.com/100006391078.html",
"l2": "https://item.jd.com/100007523963.html",
"l3": "https://item.jd.com/100016672370.html",
"l4": "https://item.jd.com/100005116786.html",
"l5": "https://item.jd.com/100005926991.html",
"l6": "https://item.jd.com/675971.html",
"l7": "https://item.jd.com/3762171.html",
"l8": "https://item.jd.com/100009390674.html",
"l9": "https://item.jd.com/100007000176.html"
},
// 5
{
"l1": "https://item.jd.com/100006391078.html",
"l2": "https://item.jd.com/100003809901.html",
"l3": "https://item.jd.com/100009115115.html",
"l4": "https://item.jd.com/100005116786.html",
"l5": "https://item.jd.com/100005926991.html",
"l6": "https://item.jd.com/675971.html",
"l7": "https://item.jd.com/3762171.html",
"l8": "https://item.jd.com/6828141.html",
"l9": "https://item.jd.com/4293268.html"
},
// 6
{
"l1": "https://item.jd.com/100006391078.html",
"l2": "https://item.jd.com/100007523963.html",
"l3": "https://item.jd.com/4211287.html",
"l4": "https://item.jd.com/100005116786.html",
"l5": "https://item.jd.com/100005926991.html",
"l6": "https://item.jd.com/675971.html",
"l7": "https://item.jd.com/3762171.html",
"l8": "https://item.jd.com/6828141.html",
"l9": "https://item.jd.com/100007000176.html"
},
// 7
{
"l1": "https://item.jd.com/100006391078.html",
"l2": "https://item.jd.com/100007523963.html",
"l3": "https://item.jd.com/4211287.html",
"l4": "https://item.jd.com/100005116786.html",
"l5": "https://item.jd.com/100005926991.html",
"l6": "https://item.jd.com/675971.html",
"l7": "https://item.jd.com/100011674030.html",
"l8": "https://item.jd.com/100009390674.html",
"l9": "https://item.jd.com/100007000176.html"
},
// 7
{
"l1": "https://item.jd.com/100006391078.html",
"l2": "https://item.jd.com/100007523963.html",
"l3": "https://item.jd.com/4211287.html",
"l4": "https://item.jd.com/100005116786.html",
"l5": "https://item.jd.com/100005926991.html",
"l6": "https://item.jd.com/675971.html",
"l7": "https://item.jd.com/598827.html",
"l8": "https://item.jd.com/100009390674.html",
"l9": "https://item.jd.com/100007000176.html"
},
// 8 M2
{
"l1": "https://item.jd.com/100006391078.html",
"l2": "https://item.jd.com/69193529317.html",
"l3": "https://item.jd.com/4211287.html",
"l4": "https://item.jd.com/100005116786.html",
"l5": "https://item.jd.com/100005926991.html",
"l6": "https://item.jd.com/675971.html",
"l7": "https://item.jd.com/3762171.html",
"l8": "https://item.jd.com/100009390674.html",
"l9": "https://item.jd.com/100007000176.html"
},
// 9256G------
{
"l1": "https://item.jd.com/100006391078.html",
"l2": "https://item.jd.com/100003809901.html",
"l3": "https://item.jd.com/100009115115.html",
"l4": "https://item.jd.com/100012759442.html",
"l5": "https://item.jd.com/100005926991.html",
"l6": "https://item.jd.com/675971.html",
"l7": "https://item.jd.com/100011674030.html",
"l8": "https://item.jd.com/6828141.html",
"l9": "https://item.jd.com/100002404996.html"
}
]

@ -0,0 +1 @@
{"flag": 0, "errorList": ["\u6240\u9009\u5185\u5b58\u5bb9\u91cf\u5927\u4e8e\u4e3b\u677f\u652f\u6301\u7684\u6700\u5927\u5185\u5b58\u5bb9\u91cf", "\u6240\u9009\u5185\u5b58\u6570\u91cf\u5927\u4e8e\u6240\u9009\u4e3b\u677f\u4e0a\u7684\u63d2\u69fd\u6570\u91cf", "\u6240\u9009\u4e3b\u677f\u677f\u578b\u5927\u4e8e\u6240\u9009\u673a\u7bb1\u80fd\u5bb9\u7eb3\u7684\u6700\u5927\u4e3b\u677f\u5927\u5c0f", "\u6240\u9009\u6c34\u51b7\u5c3a\u5bf8\u5927\u4e8e\u6240\u9009\u673a\u7bb1\u652f\u6301\u7684\u6700\u5927\u5c3a\u5bf8", "\u6240\u9009\u673a\u7bb1\u65e0\u6cd5\u5bb9\u7eb3\u6240\u9009\u7535\u6e90"]}

@ -0,0 +1,209 @@
'''
Description:
问卷json串键值为 l1, ... , ln
返回json串 {"flag": 1} {"flag": 0, "errorList": ["xxxxxx", "xxxxxx"]}
Author: Fishermanykx
Date: 2021-01-07 21:31:08
LastEditors: Fishermanykx
LastEditTime: 2021-01-14 20:54:44
'''
import json
import pymysql
from pprint import pprint
MYSQL_HOSTS = "192.168.136.129"
MYSQL_USER = "root"
MYSQL_PASSWORD = "1213800"
MYSQL_PORT = 3306
MYSQL_DB = "computer_accessories"
class CompatibilityChecking:
def __init__(self):
# 是否成功
self.flag = 1
# 读入问卷
with open("../code/Compatibility_Checking/questionnaire.json", 'r', encoding='UTF-8') as f:
data = json.load(f)
self.questionnaire = data # 问卷dict
# pprint(data['l1'])
# 数据库指针
self.db = pymysql.connect(
host=MYSQL_HOSTS,
port=MYSQL_PORT,
user=MYSQL_USER,
passwd=MYSQL_PASSWORD,
db=MYSQL_DB,
charset="utf8")
self.cursor = self.db.cursor(cursor=pymysql.cursors.DictCursor)
def parseQuestionnaire(self):
"""解析问卷并读入相关配件的参数"""
accessories = ['cpu', 'motherboard', 'graphics_card', 'memory',
'ssd', 'hdd', 'cpu_radiator', 'power_supply', 'computer_case']
accessories_data = []
for i in range(len(accessories)):
query = "select * from " + \
accessories[i]+" where link = '" + \
self.questionnaire['l'+str(i+1)] + "'"
self.cursor.execute(query)
tmp_data = self.cursor.fetchone()
# 若不存在该商品,报错
if not tmp_data:
return [False, self.questionnaire['l'+str(i+1)]]
accessories_data.append(tmp_data)
self.cpu = accessories_data[0]
self.motherboard = accessories_data[1]
self.graphics_card = accessories_data[2]
self.memory = accessories_data[3]
self.ssd = accessories_data[4]
self.hdd = accessories_data[5]
self.cpu_radiator = accessories_data[6]
self.power_supply = accessories_data[7]
self.computer_case = accessories_data[8]
# pprint(self.cpu)
return [True]
def check(self):
"""检测兼容性,若成功,返回[True];否则返回[False, errorList]"""
errorList = []
# 检测 CPU 和 主板 的接口是否一致
cpu_socket = self.cpu['socket']
MB_socket = self.motherboard['cpu_socket']
if cpu_socket != MB_socket:
error = "主板与CPU接口不匹配"
errorList.append(error)
# 检测散热器接口是否与CPU一致
radiator_sockets = self.cpu_radiator['socket']
if cpu_socket not in radiator_sockets:
error = "散热器支持接口与CPU接口不匹配"
errorList.append(error)
# 检测内存代数与主板是否匹配
MB_ddr_gen = self.motherboard['ddr_gen']
memory_ddr_gen = self.memory['ddr_gen']
if MB_ddr_gen != memory_ddr_gen:
error = "主板支持内存的代数与所选内存不匹配"
errorList.append(error)
# 检测内存容量是否超过主板最大支持容量
memory_capacity = self.memory['total_capacity']
MB_max_mem = self.motherboard['max_memory']
if memory_capacity > MB_max_mem:
error = "所选内存容量大于主板支持的最大内存容量"
errorList.append(error)
# 检测内存数量是否超过主板插槽数
mem_num = int(self.memory['memory_num'][0])
MB_slot_num = self.motherboard['slot_num']
if mem_num > MB_slot_num:
error = "所选内存数量大于所选主板上的插槽数量"
errorList.append(error)
# 机箱相关
# 显卡长度
card_len = self.graphics_card['card_length']
max_card_len = self.computer_case['max_card_len']
if card_len > max_card_len:
error = "所选显卡长度大于所选机箱允许的最大卡长"
errorList.append(error)
# 主板大小
max_form_factor = self.computer_case['max_form_factor']
form_factor = self.motherboard['form_factor']
fit = 1
if max_form_factor == "MINI-ITX":
if form_factor != "MINI-ITX":
fit = 0
elif max_form_factor == "M-ATX":
if (form_factor == "ATX") or (form_factor == "E-ATX"):
fit = 0
elif max_form_factor == "ATX":
if form_factor == "E-ATX":
fit = 0
if not fit:
error = "所选主板板型大于所选机箱能容纳的最大主板大小"
errorList.append(error)
# 散热器相关
# 机箱支持相关参数
max_radiator_height = self.computer_case['max_radiator_height']
max_water_cooling = 0 # 水冷尺寸限制
case_radiators = self.computer_case['supported_radiator']
if case_radiators == '0':
max_water_cooling = 0
else:
case_radiators = case_radiators.split('~')
max_water_cooling = int(case_radiators[0])
# 散热器相关参数
radiator_size = self.cpu_radiator['radiator_size'] # 散热器尺寸(若为 0 则是风冷)
height = self.cpu_radiator['height'] # 散热器高度
if not height:
error = "散热器参数不足,无法判断"
errorList.append(error)
else:
if not radiator_size:
# 若散热器是风冷,检查风冷高度
if height > max_radiator_height:
error = "所选风冷散热器高度大于所选机箱散热器限高"
errorList.append(error)
else:
# 若散热器是水冷,检查水冷大小
if radiator_size > max_water_cooling:
error = "所选水冷尺寸大于所选机箱支持的最大尺寸"
errorList.append(error)
# SSD接口
m2_num = self.motherboard['m2_num']
ssd_interface = self.ssd['interface']
if (not m2_num) and (ssd_interface == 'M.2'):
error = "所选主板上没有M.2接口故不支持M.2接口的固态硬盘"
errorList.append(error)
# 电源大小
power_size = self.power_supply['size']
if max_form_factor == "MINI-ITX" and (power_size == "ATX" or power_size == "服务器电源"):
error = "所选机箱无法容纳所选电源"
errorList.append(error)
if len(errorList):
return [False, errorList]
else:
return [True]
def main(self):
errorList = []
parse_res = self.parseQuestionnaire()
if parse_res[0]:
check_res = self.check()
if not check_res[0]:
errorList = check_res[1]
else:
error = "数据库中不存在链接 " + parse_res[1] + " 指向的商品"
errorList.append(error)
if len(errorList):
self.flag = 0
res = {"flag": self.flag, "errorList": errorList}
else:
res = {"flag": self.flag}
res_json = json.dumps(res)
# 写入文件
with open("../code/Compatibility_Checking/check_result.json", 'w', encoding='utf-8') as f:
f.write(res_json)
# for debugging
print("OK")
if __name__ == "__main__":
check = CompatibilityChecking()
check.main()

@ -0,0 +1 @@
{"l1":"https:\/\/item.jd.com\/100006391078.html","l2":"https:\/\/item.jd.com\/100003809901.html","l3":"https:\/\/item.jd.com\/100009115115.html","l4":"https:\/\/item.jd.com\/100012759442.html","l5":"https:\/\/item.jd.com\/100005926991.html","l6":"https:\/\/item.jd.com\/675971.html","l7":"https:\/\/item.jd.com\/100011674030.html","l8":"https:\/\/item.jd.com\/6828141.html","l9":"https:\/\/item.jd.com\/100007000176.html"}

@ -0,0 +1,11 @@
{
"l1": "https://item.jd.com/100006391078.html", // CPU
"l2": "https://item.jd.com/100003809901.html", //
"l3": "https://item.jd.com/100009115115.html", //
"l4": "https://item.jd.com/100005116786.html", //
"l5": "https://item.jd.com/100005926991.html", //
"l6": "https://item.jd.com/675971.html", //
"l7": "https://item.jd.com/100011674030.html", // CPU
"l8": "https://item.jd.com/6828141.html", //
"l9": "https://item.jd.com/100002404996.html" //
}

@ -0,0 +1,42 @@
[
//
{
"l1": "https://item.jd.com/100006391078.html", "l2": "https://item.jd.com/100003809901.html", "l3": "https://item.jd.com/100009115115.html", "l4": "https://item.jd.com/100005116786.html", "l5": "https://item.jd.com/100005926991.html", "l6": "https://item.jd.com/675971.html", "l7": "https://item.jd.com/100011674030.html", "l8": "https://item.jd.com/6828141.html", "l9": "https://item.jd.com/100002404996.html"
},
// 1
{
"l1": "https://item.jd.com/100006391078111.html", "l2": "https://item.jd.com/100003809901.html", "l3": "https://item.jd.com/100009115115.html", "l4": "https://item.jd.com/100005116786.html", "l5": "https://item.jd.com/100005926991.html", "l6": "https://item.jd.com/675971.html", "l7": "https://item.jd.com/100011674030.html", "l8": "https://item.jd.com/6828141.html", "l9": "https://item.jd.com/100002404996.html"
},
// 2CPU
{
"l1": "https://item.jd.com/100008667315.html", "l2": "https://item.jd.com/100003809901.html", "l3": "https://item.jd.com/100009115115.html", "l4": "https://item.jd.com/100005116786.html", "l5": "https://item.jd.com/100005926991.html", "l6": "https://item.jd.com/675971.html", "l7": "https://item.jd.com/100011674030.html", "l8": "https://item.jd.com/6828141.html", "l9": "https://item.jd.com/100002404996.html"
},
// 3
{
"l1": "https://item.jd.com/100006391078.html", "l2": "https://item.jd.com/100003809901.html", "l3": "https://item.jd.com/100009115115.html", "l4": "https://item.jd.com/664483.html", "l5": "https://item.jd.com/100005926991.html", "l6": "https://item.jd.com/675971.html", "l7": "https://item.jd.com/100011674030.html", "l8": "https://item.jd.com/6828141.html", "l9": "https://item.jd.com/100002404996.html"
},
// 4
{
"l1": "https://item.jd.com/100006391078.html", "l2": "https://item.jd.com/100013875220.html", "l3": "https://item.jd.com/100016672370.html", "l4": "https://item.jd.com/100005116786.html", "l5": "https://item.jd.com/100005926991.html", "l6": "https://item.jd.com/675971.html", "l7": "https://item.jd.com/3762171.html", "l8": "https://item.jd.com/6828141.html", "l9": "https://item.jd.com/100000805272.html"
},
// 5
{
"l1": "https://item.jd.com/100006391078.html", "l2": "https://item.jd.com/100003809901.html", "l3": "https://item.jd.com/100009115115.html", "l4": "https://item.jd.com/100005116786.html", "l5": "https://item.jd.com/100005926991.html", "l6": "https://item.jd.com/675971.html", "l7": "https://item.jd.com/3762171.html", "l8": "https://item.jd.com/6828141.html", "l9": "https://item.jd.com/100000805272.html"
},
// 6
{
"l1": "https://item.jd.com/100006391078.html", "l2": "https://item.jd.com/100007523963.html", "l3": "https://item.jd.com/4211287.html", "l4": "https://item.jd.com/100005116786.html", "l5": "https://item.jd.com/100005926991.html", "l6": "https://item.jd.com/675971.html", "l7": "https://item.jd.com/3762171.html", "l8": "https://item.jd.com/6828141.html", "l9": "https://item.jd.com/100007000176.html"
},
// 7
{
"l1": "https://item.jd.com/100006391078.html", "l2": "https://item.jd.com/100007523963.html", "l3": "https://item.jd.com/4211287.html", "l4": "https://item.jd.com/100005116786.html", "l5": "https://item.jd.com/100005926991.html", "l6": "https://item.jd.com/675971.html", "l7": "https://item.jd.com/100011674030.html", "l8": "https://item.jd.com/100009390674.html", "l9": "https://item.jd.com/100007000176.html"
},
// 7
{
"l1": "https://item.jd.com/100006391078.html", "l2": "https://item.jd.com/100007523963.html", "l3": "https://item.jd.com/4211287.html", "l4": "https://item.jd.com/100005116786.html", "l5": "https://item.jd.com/100005926991.html", "l6": "https://item.jd.com/675971.html", "l7": "https://item.jd.com/598827.html", "l8": "https://item.jd.com/100009390674.html", "l9": "https://item.jd.com/100007000176.html"
},
// 8 M2
{
"l1": "https://item.jd.com/100006391078.html", "l2": "https://item.jd.com/69193529317.html", "l3": "https://item.jd.com/4211287.html", "l4": "https://item.jd.com/100005116786.html", "l5": "https://item.jd.com/100005926991.html", "l6": "https://item.jd.com/675971.html", "l7": "https://item.jd.com/3762171.html", "l8": "https://item.jd.com/100009390674.html", "l9": "https://item.jd.com/100007000176.html"
}
]

@ -0,0 +1,113 @@
'''
Description:
Author: Fishermanykx
Date: 2021-01-13 09:20:57
LastEditors: Fishermanykx
LastEditTime: 2021-01-14 08:26:20
'''
import pymysql
from pprint import pprint
MYSQL_HOSTS = "192.168.136.129"
MYSQL_USER = "root"
MYSQL_PASSWORD = "1213800"
MYSQL_PORT = 3306
MYSQL_DB = "computer_accessories"
class UpdateTrendings:
def __init__(self, resDict):
self.resDict = resDict
if not resDict['flag']:
self.config_list = resDict['result']
else:
print("No legal configurations, so no updates")
exit(0)
def update(self):
cfgs = self.config_list
index = 0
for cfg in cfgs:
all_link = ""
# 构建返回值 dict
res = {}
for key in cfg:
if (type(cfg[key]) is int):
continue
all_link += cfg[key][1]
root_str = str(key)
res[root_str] = cfg[root_str][0]
res[root_str+'_price'] = cfg[root_str][2]
res[root_str+'_link'] = cfg[root_str][1]
# print(cfg[key][1])
hash_val = self.hashStr(all_link)
# print(hash_val)
cfg_id = str(hash_val)
res['id'] = cfg_id
res['totalPrice'] = cfg['totalPrice']
connection = pymysql.connect(
host=MYSQL_HOSTS,
port=MYSQL_PORT,
user=MYSQL_USER,
passwd=MYSQL_PASSWORD,
db=MYSQL_DB,
charset="utf8")
# 获取游标
cursor = connection.cursor(cursor=pymysql.cursors.DictCursor)
# frequency
query = "select * from trendings where id="+cfg_id
row = cursor.execute(query)
if not row:
res['frequency'] = 1
# pprint(res)
else:
data = cursor.fetchone()
res['frequency'] = data['frequency'] + 1
# 插入数据库
sql_insert = "INSERT INTO trendings VALUES "\
"(%(id)s, %(frequency)s, %(CPU)s, %(CPU_price)s, %(CPU_link)s, %(motherboard)s, %(motherboard_price)s, %(motherboard_link)s, %(GPU)s, %(GPU_price)s, %(GPU_link)s, "\
"%(memory)s, %(memory_price)s, %(memory_link)s, %(CPURadiator)s, %(CPURadiator_price)s, %(CPURadiator_link)s, "\
"%(SSD)s, %(SSD_price)s, %(SSD_link)s, %(HDD)s, %(HDD_price)s, %(HDD_link)s, %(powerSupply)s, %(powerSupply_price)s, "\
"%(powerSupply_link)s, %(case)s, %(case_price)s, %(case_link)s, %(totalPrice)s)"\
"ON DUPLICATE KEY UPDATE frequency=VALUES(frequency), totalPrice=VALUES(totalPrice)"
cursor.execute(sql_insert, res)
connection.commit()
cursor.close()
connection.close()
# 修改 resDict加入 Hash值
self.resDict['result'][index]['hash'] = cfg_id
index += 1
return self.resDict
def hashStr(self, string):
seed = 3
hash_val = 0
for s in string:
hash_val = hash_val * seed + ord(s)
return hash_val & 0x7FFFFFFFF
if __name__ == "__main__":
resDict = {'type': 0, 'flag': 0, 'result':
[{'CPU': ['AMD锐龙7 5800X 处理器', 'https://item.jd.com/100009085723.html', 3199], 'motherboard': ['华硕TUF GAMING X570-PLUS (WI-FI)', 'https://item.jd.com/100003815417.html', 1649], 'memory': ['G.SKILLF4-3200C14D-16GTZR', 'https://item.jd.com/4353372.html', 1149],
'SSD': ['西部数据WDS100T3XHC-00SJG0', 'https://item.jd.com/100004703834.html', 1499], 'GPU': ['七彩虹iGame GeForce RTX 3070 Ultra OC 8G', 'https://item.jd.com/100016138906.html', 4399], 'case': ['乔思伯U5', 'https://item.jd.com/8885801.html', 469],
'powerSupply': ['酷冷至尊MPY-6501-AFAAGV', 'https://item.jd.com/100002748170.html', 749], 'CPURadiator': ['华硕ROG STRIX LC 240 RGB WE', 'https://item.jd.com/100010744694.html', 1399], 'HDD': ['西部数据WD10EZEX', 'https://item.jd.com/675971.html', 278],
'totalPrice': 14790},
{'CPU': ['AMDAMD 锐龙9 3900XT 高性能版处理器', 'https://item.jd.com/100007715111.html', 3899], 'motherboard': ['华硕TUF GAMING X570-PLUS (WI-FI)', 'https://item.jd.com/100003815417.html', 1649], 'memory': ['G.SKILLF4-3200C14D-16GTZR', 'https://item.jd.com/4353372.html', 1149],
'SSD': ['西部数据WDS100T3X0C-00SJG0', 'https://item.jd.com/100002206075.html', 1259], 'GPU': ['七彩虹iGame GeForce RTX 3070 Advanced OC 8G', 'https://item.jd.com/100015756562.html', 4699], 'case': ['乔思伯U5', 'https://item.jd.com/8885801.html', 469],
'powerSupply': ['美商海盗船RMX650 2018款', 'https://item.jd.com/6544246.html', 799], 'CPURadiator': ['华硕ROG STRIX LC 240 RGB WE', 'https://item.jd.com/100010744694.html', 1399], 'HDD': ['西部数据WD1003FZEX', 'https://item.jd.com/1018295.html', 529], 'totalPrice': 15851},
{'CPU': ['AMDAMD 锐龙9 3900XT 高性能版处理器', 'https://item.jd.com/100007715111.html', 3899], 'motherboard': ['华硕PRIME X570-PRO', 'https://item.jd.com/100003815427.html', 1759], 'memory': ['G.SKILLF4-3200C14D-16GTZR', 'https://item.jd.com/4353372.html', 1149],
'SSD': ['西部数据WDS100T1R0A', 'https://item.jd.com/100010512790.html', 1599], 'GPU': ['七彩虹iGame GeForce RTX 3070 Vulcan OC 8G', 'https://item.jd.com/100008952783.html', 5199], 'case': ['乔思伯U5', 'https://item.jd.com/8885801.html', 469],
'powerSupply': ['美商海盗船RMX650 2018款', 'https://item.jd.com/6544246.html', 799], 'CPURadiator': ['华硕ROG STRIX LC 240 RGB WE', 'https://item.jd.com/100010744694.html', 1399], 'HDD': ['西部数据WD10EZEX', 'https://item.jd.com/675971.html', 278], 'totalPrice': 16550}
]
}
updater = UpdateTrendings(resDict)
resDict = updater.update()
pprint(resDict)

@ -0,0 +1 @@
{"version":"primary","Q1":["5000","7000"],"Q2":"1","Q3":"1","Q4":"4","Q5":"1"}

@ -0,0 +1,501 @@
[
// #1 Error Q2
{
"version": "advanced",
"Q1": [
"6000",
"9000"
],
"Q2": [
"2",
"8"
],
"Q3": "1",
"Q4": "",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "",
"Q12": "",
"Q13": "3",
"Q14": "1",
"Q15": "2",
"Q16": "2",
"Q17": "2",
"Q18": "1",
"Q19": "1",
"Q20": "2",
"Q21": "3"
},
// #2 Error %s
{
"version": "advanced",
"Q1": [
"6000",
"9000"
],
"Q2": [
"2"
],
"Q3": "1",
"Q4": "爵柏",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "",
"Q12": "",
"Q13": "3",
"Q14": "1",
"Q15": "2",
"Q16": "2",
"Q17": "2",
"Q18": "1",
"Q19": "1",
"Q20": "2",
"Q21": "3"
},
// #3 Error %s %s'
{
"version": "advanced",
"Q1": [
"6000",
"9000"
],
"Q2": [
"2"
],
"Q3": "1",
"Q4": "",
"Q5": "1",
"Q6": "蓝宝石",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "",
"Q12": "",
"Q13": "3",
"Q14": "1",
"Q15": "2",
"Q16": "2",
"Q17": "2",
"Q18": "1",
"Q19": "1",
"Q20": "2",
"Q21": "3"
},
// #4 Error:
{
"version": "advanced",
"Q1": [
"6000",
"9000"
],
"Q2": [
"2"
],
"Q3": "2",
"Q4": "",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "",
"Q12": "",
"Q13": "1",
"Q14": "1",
"Q15": "2",
"Q16": "2",
"Q17": "2",
"Q18": "1",
"Q19": "1",
"Q20": "2",
"Q21": "3"
},
// #5 Error:
{
"version": "advanced",
"Q1": [
"6000",
"9000"
],
"Q2": [
"2"
],
"Q3": "2",
"Q4": "",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "",
"Q12": "",
"Q13": "3",
"Q14": "1",
"Q15": "2",
"Q16": "2",
"Q17": "1",
"Q18": "1",
"Q19": "1",
"Q20": "2",
"Q21": "6"
},
// #6 Error:
{
"version": "advanced",
"Q1": [
"6000",
"9000"
],
"Q2": [
"2"
],
"Q3": "2",
"Q4": "",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "",
"Q12": "",
"Q13": "3",
"Q14": "1",
"Q15": "2",
"Q16": "2",
"Q17": "2",
"Q18": "1",
"Q19": "0.75",
"Q20": "2",
"Q21": "3"
},
// #7 Error:
{
"version": "advanced",
"Q1": [
"6000",
"9000"
],
"Q2": [
"2"
],
"Q3": "2",
"Q4": "",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "",
"Q12": "",
"Q13": "4",
"Q14": "1",
"Q15": "2",
"Q16": "2",
"Q17": "2",
"Q18": "1",
"Q19": "1",
"Q20": "2",
"Q21": "3"
},
// #8 Error:
{
"version": "advanced",
"Q1": [
"6000",
"9000"
],
"Q2": [
"2"
],
"Q3": "2",
"Q4": "",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "联力",
"Q11": "",
"Q12": "",
"Q13": "3",
"Q14": "2",
"Q15": "2",
"Q16": "2",
"Q17": "2",
"Q18": "1",
"Q19": "1",
"Q20": "3",
"Q21": "3"
},
// #9 Error: CPU
{
"version": "advanced",
"Q1": [
"6000",
"9000"
],
"Q2": [
"2"
],
"Q3": "2",
"Q4": "",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "华硕",
"Q12": "",
"Q13": "4",
"Q14": "1",
"Q15": "1",
"Q16": "2",
"Q17": "2",
"Q18": "1",
"Q19": "1",
"Q20": "1",
"Q21": "3"
},
// #10 Error:
{
"version": "advanced",
"Q1": [
"1200",
"1500"
],
"Q2": [
"2"
],
"Q3": "1",
"Q4": "",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "",
"Q12": "",
"Q13": "1",
"Q14": "1",
"Q15": "1",
"Q16": "2",
"Q17": "2",
"Q18": "1",
"Q19": "1",
"Q20": "1",
"Q21": "3"
},
// #11
{
"version": "advanced",
"Q1": [
"1500",
"80000"
],
"Q2": [
"2"
],
"Q3": "1",
"Q4": "",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "",
"Q12": "",
"Q13": "1",
"Q14": "1",
"Q15": "1",
"Q16": "2",
"Q17": "2",
"Q18": "1",
"Q19": "1",
"Q20": "1",
"Q21": "3"
},
// #12 1
{
"version": "advanced",
"Q1": [
"5000",
"7000"
],
"Q2": [
"2"
],
"Q3": "2",
"Q4": "",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "",
"Q12": "",
"Q13": "3",
"Q14": "1",
"Q15": "1",
"Q16": "3",
"Q17": "2",
"Q18": "2",
"Q19": "1",
"Q20": "3",
"Q21": "3"
},
// #13 2
{
"version": "advanced",
"Q1": [
"10000",
"15000"
],
"Q2": [
"2"
],
"Q3": "2",
"Q4": "",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "",
"Q12": "",
"Q13": "2",
"Q14": "1",
"Q15": "2",
"Q16": "3",
"Q17": "2",
"Q18": "2",
"Q19": "1",
"Q20": "3",
"Q21": "3"
},
// #14 3
{
"version": "advanced",
"Q1": [
"15000",
"20000"
],
"Q2": [
"2"
],
"Q3": "2",
"Q4": "",
"Q5": "1",
"Q6": "",
"Q7": "",
"Q8": "",
"Q9": "",
"Q10": "",
"Q11": "",
"Q12": "",
"Q13": "2",
"Q14": "1",
"Q15": "2",
"Q16": "3",
"Q17": "2",
"Q18": "2",
"Q19": "1",
"Q20": "3",
"Q21": "3"
},
// #15 Error:
{
"version": "primary",
"Q1": [
"5000",
"7000"
],
"Q2": "2",
"Q3": "3",
"Q4": "3",
"Q5": "0.75"
},
// #16 Error:
{
"version": "primary",
"Q1": [
"1200",
"1500"
],
"Q2": "2",
"Q3": "3",
"Q4": "1",
"Q5": "1"
},
// #17 1
{
"version": "primary",
"Q1": [
"5000",
"7000"
],
"Q2": "2",
"Q3": "3",
"Q4": "3",
"Q5": "1"
},
// #18 2
{
"version": "primary",
"Q1": [
"10000",
"15000"
],
"Q2": "2",
"Q3": "3",
"Q4": "2",
"Q5": "1"
},
// #19 3
{
"version": "primary",
"Q1": [
"15000",
"20000"
],
"Q2": "2",
"Q3": "3",
"Q4": "2",
"Q5": "1"
}
]

@ -0,0 +1,931 @@
# 返回的json文件标识符
# type0表示推荐算法返回 1表示兼容性检测返回
# flag0表示正常返回请求内容 1表示出现错误为错误报告
import json
from UpdateTrendings import *
class Accessories:
def __init__(self, name):
self.name = name
self.budget = -1
self.price = 0
self.link = ''
self.socket = None
self.length = None
self.height = 0
self.size = 0
self.m2Num = 0
class AccessoriesList:
def __init__(self, name):
self.name = name
self.budget = -1
self.price = 0
self.CPU = Accessories('CPU')
self.GPU = Accessories('GPU')
self.case = Accessories('case')
self.memory = Accessories('memory')
self.HDD = Accessories('noneed')
self.SSD = Accessories('SSD')
self.motherboard = Accessories('motherboard')
self.powerSupply = Accessories('powerSupply')
self.CPURadiator = Accessories('CPURadiator')
def parse(questionAnswersData):
res = {}
res['version'] = questionAnswersData['version']
if(questionAnswersData['version'] == 'primary'):
res['Q1'] = questionAnswersData['Q1']
res['Q1'][0] = eval(res['Q1'][0])
res['Q1'][1] = eval(res['Q1'][1])
res['Q2'] = primaryQuestionDict['Q2'][eval(questionAnswersData['Q2'])]
res['Q3'] = primaryQuestionDict['Q3'][eval(questionAnswersData['Q3'])]
res['Q4'] = primaryQuestionDict['Q4'][eval(questionAnswersData['Q4'])]
res['Q5'] = eval(questionAnswersData['Q5'])
elif(questionAnswersData['version'] == 'advanced'):
res['Q1'] = questionAnswersData['Q1']
res['Q1'][0] = eval(res['Q1'][0])
res['Q1'][1] = eval(res['Q1'][1])
res['Q2'] = []
for i in questionAnswersData['Q2']:
k = eval(i)
res['Q2'].append(advancedQuestionDict['Q2'][k])
res['Q3'] = advancedQuestionDict['Q3'][eval(questionAnswersData['Q3'])]
res['Q4'] = questionAnswersData['Q4'].split()
res['Q5'] = advancedQuestionDict['Q5'][eval(questionAnswersData['Q5'])]
res['Q6'] = questionAnswersData['Q6'].split()
res['Q7'] = questionAnswersData['Q7'].split()
res['Q8'] = questionAnswersData['Q8'].split()
res['Q9'] = questionAnswersData['Q9'].split()
res['Q10'] = questionAnswersData['Q10'].split()
res['Q11'] = questionAnswersData['Q11'].split()
res['Q12'] = questionAnswersData['Q12'].split()
res['Q13'] = advancedQuestionDict['Q13'][eval(
questionAnswersData['Q13'])]
res['Q14'] = advancedQuestionDict['Q14'][eval(
questionAnswersData['Q14'])]
res['Q15'] = advancedQuestionDict['Q15'][eval(
questionAnswersData['Q15'])]
res['Q16'] = advancedQuestionDict['Q16'][eval(
questionAnswersData['Q16'])]
res['Q17'] = advancedQuestionDict['Q17'][eval(
questionAnswersData['Q17'])]
res['Q18'] = advancedQuestionDict['Q18'][eval(
questionAnswersData['Q18'])]
res['Q19'] = eval(questionAnswersData['Q19'])
res['Q20'] = advancedQuestionDict['Q20'][eval(
questionAnswersData['Q20'])]
res['Q21'] = advancedQuestionDict['Q21'][eval(
questionAnswersData['Q21'])]
else:
print('Error: There is no version named',
questionAnswersData['version'])
return None
return res
def check(questionAnswers):
errorInf = {'type': 0, 'flag': 1, 'errorList': []}
if(questionAnswers['Q1'][1] < 1500):
inf = 'Error 给出预算上限太低,无法生成配置单'
errorInf['errorList'].append(inf)
if(questionAnswers['Q1'][0] > 150000):
inf = 'Error 给出预算下限太高,无法生成配置单'
errorInf['errorList'].append(inf)
if(questionAnswers['version'] == 'primary'):
if((questionAnswers['Q5']*100) % 25 != 0):
inf = 'Error 给出硬盘容量不是0.25的整数倍,无法生成配置单'
errorInf['errorList'].append(inf)
elif(questionAnswers['version'] == 'advanced'):
# 连接数据库
db = pymysql.connect("192.168.136.129", "root",
"1213800", "computer_accessories")
# 使用cursor()方法创建一个游标对象
cursor = db.cursor()
# Q2
if('无特殊要求' in questionAnswers['Q2'] and len(questionAnswers['Q2']) > 1):
inf = 'Error Q2既有高性能要求又无特殊要求产生冲突无法生成配置单'
errorInf['errorList'].append(inf)
# Q4
cursor.execute("SELECT brand FROM motherboard")
data = cursor.fetchall()
for brand in questionAnswers['Q4']:
if((brand.upper(),) not in data):
inf = 'Error 数据库中没有%s品牌,无法生成配置单' % brand
errorInf['errorList'].append(inf)
# Q6
cursor.execute("SELECT brand,card_type FROM graphics_card")
data = cursor.fetchall()
for brand in questionAnswers['Q6']:
if((brand.upper(), questionAnswers['Q5'].upper()) not in data):
inf = 'Error 数据库中没有%s %s品牌,无法生成配置单' % (questionAnswers['Q5'], brand)
errorInf['errorList'].append(inf)
# Q7
cursor.execute("SELECT brand FROM memory")
data = cursor.fetchall()
# #print(data)
for brand in questionAnswers['Q7']:
if((brand.upper(),) not in data):
inf = 'Error 数据库中没有%s品牌,无法生成配置单' % brand
errorInf['errorList'].append(inf)
# Q8
cursor.execute("SELECT brand FROM ssd")
data = cursor.fetchall()
# #print(data)
for brand in questionAnswers['Q8']:
# #print(brand.upper())
if((brand.upper(),) not in data):
inf = 'Error 数据库中没有%s品牌,无法生成配置单' % brand
errorInf['errorList'].append(inf)
# Q9
cursor.execute("SELECT brand FROM hdd")
data = cursor.fetchall()
for brand in questionAnswers['Q9']:
if((brand.upper(),) not in data):
inf = 'Error 数据库中没有%s品牌,无法生成配置单' % brand
errorInf['errorList'].append(inf)
# Q10
cursor.execute("SELECT brand FROM computer_case")
data = cursor.fetchall()
for brand in questionAnswers['Q10']:
if((brand.upper(),) not in data):
inf = 'Error 数据库中没有%s品牌,无法生成配置单' % brand
errorInf['errorList'].append(inf)
# Q11
cursor.execute("SELECT brand FROM cpu_radiator")
data = cursor.fetchall()
for brand in questionAnswers['Q11']:
if((brand.upper(),) not in data):
inf = 'Error 数据库中没有%s品牌,无法生成配置单' % brand
errorInf['errorList'].append(inf)
# Q12
cursor.execute("SELECT brand FROM power_supply")
data = cursor.fetchall()
for brand in questionAnswers['Q12']:
if((brand.upper(),) not in data):
inf = 'Error 数据库中没有%s品牌,无法生成配置单' % brand
errorInf['errorList'].append(inf)
# Q19
if((questionAnswers['Q19']*100) % 25 != 0):
inf = 'Error 给出硬盘容量不是0.25的整数倍,无法生成配置单'
errorInf['errorList'].append(inf)
# 关闭游标和数据库的连接
cursor.close()
db.close()
if(errorInf['errorList'] != []):
# 返回报错信息
res = open('../code/Recommend_Code/recommend_result.json', 'w', encoding='utf-8')
#print(errorInf)
json.dump(errorInf, res, ensure_ascii=False)
res.close()
print("OK")
exit(0)
def calculateBudget(listX, CPUPercent, motherboardPercent, memoryPercent, SSDPercent, GPUPercent, casePercent,
powerSupplyPercent, CPURadiatorPercent, HDDPercent):
listX.CPU.budget = round(CPUPercent * listX.budget)
listX.motherboard.budget = round(motherboardPercent * listX.budget)
listX.memory.budget = round(memoryPercent * listX.budget)
listX.SSD.budget = round(SSDPercent * listX.budget)
listX.GPU.budget = round(GPUPercent * listX.budget)
listX.case.budget = round(casePercent * listX.budget)
listX.powerSupply.budget = round(powerSupplyPercent * listX.budget)
listX.CPURadiator.budget = round(CPURadiatorPercent * listX.budget)
listX.HDD.budget = round(HDDPercent * listX.budget)
return listX
def preferParse(preDict, questionAnswers):
if(questionAnswers['version'] == 'primary'):
# Q3
if(questionAnswers['Q3'] == '无光'):
preDict['CPURadiatorRGB'] = ''
preDict['GPURGB'] = ''
preDict['memoryVest'] = '马甲条'
elif(questionAnswers['Q3'] == 'RGB'):
preDict['CPURadiatorRGB'] = 'RGB'
preDict['GPURGB'] = '支持RGB'
preDict['memoryVest'] = 'RGB灯条'
elif(questionAnswers['Q3'] == 'ARGB'):
preDict['CPURadiatorRGB'] = 'ARGB'
preDict['GPURGB'] = '支持RGB'
preDict['memoryVest'] = 'RGB灯条'
# Q4
if(questionAnswers['Q4'] != '无要求'):
preDict['caseSize'] = questionAnswers['Q4']
preDict['MBSize'] = questionAnswers['Q4']
if(preDict['caseSize'] == 'MINI-ITX'):
preDict['powerSupplySize'] = 'SFX'
else:
preDict['powerSupplySize'] = 'ATX'
# Q5
if(questionAnswers['Q5'] != None):
preDict['hardDiskCapacity'] = questionAnswers['Q5']
else:
preDict['hardDiskCapacity'] = 0.125
elif(questionAnswers['version'] == 'advanced'):
# Q3
preDict['CPUBrand'] = questionAnswers['Q3']
# Q4
brandList = questionAnswers['Q4']
for brand in brandList:
preDict['MBBrand'].append(brand)
# Q5
preDict['GPUAN'] = questionAnswers['Q5']
# Q6
brandList = questionAnswers['Q6']
for brand in brandList:
preDict['GPUBrand'].append(brand)
# Q7
brandList = questionAnswers['Q7']
for brand in brandList:
preDict['memoryBrand'].append(brand)
# Q8
brandList = questionAnswers['Q8']
for brand in brandList:
preDict['SSDBrand'].append(brand)
# Q9
brandList = questionAnswers['Q9']
for brand in brandList:
preDict['HDDBrand'].append(brand)
# Q10
brandList = questionAnswers['Q10']
for brand in brandList:
preDict['caseBrand'].append(brand)
# Q11
brandList = questionAnswers['Q11']
for brand in brandList:
preDict['CPURadiatorBrand'].append(brand)
# Q12
brandList = questionAnswers['Q12']
for brand in brandList:
preDict['powerSupplyBrand'].append(brand)
# Q13
if(questionAnswers['Q13'] != '无要求'):
preDict['caseSize'] = questionAnswers['Q13']
preDict['MBSize'] = questionAnswers['Q13']
if(preDict['caseSize'] == 'MINI-ITX'):
preDict['powerSupplySize'] = 'SFX'
else:
preDict['powerSupplySize'] = 'ATX'
# Q14
preDict['caseTransparent'] = questionAnswers['Q14']
# Q15
preDict['CPURadiatorType'] = questionAnswers['Q15']
# Q16
preDict['CPURadiatorRGB'] = questionAnswers['Q16']
# Q17
preDict['memoryVest'] = questionAnswers['Q17']
# Q18
preDict['GPURGB'] = questionAnswers['Q18']
# Q19
if(questionAnswers['Q19'] != None):
preDict['hardDiskCapacity'] = questionAnswers['Q19']
else:
preDict['hardDiskCapacity'] = 0.125
# Q20
preDict['powerSupplyModule'] = questionAnswers['Q20']
# Q21
preDict['memoryCapacity'] = questionAnswers['Q21']
return preDict
def suggest(listX, preDict):
# 连接数据库
db = pymysql.connect("192.168.136.129", "root",
"1213800", "computer_accessories")
# 使用cursor()方法创建一个游标对象
cursor = db.cursor()
errorInf = {'type': 0, 'flag': 1, 'errorList': []}
# 推荐CPU
cursor.execute("SELECT * FROM cpu")
data = cursor.fetchall()
itemList = []
for item in data:
##print(item[7], preDict['CPUBrand'])
##print(abs(item[5] - listX.CPU.budget))
# #print('\n--------------------------\n')
if((item[7] == preDict['CPUBrand'] or preDict['CPUBrand'] == None) and abs(item[5] - listX.CPU.budget) <= 100):
itemList.append(item)
##print(itemList == [])
if(itemList == []):
minD = 9999999
for item in data:
if((item[7] == preDict['CPUBrand'] or preDict['CPUBrand'] == None) and abs(item[5] - listX.CPU.budget) <= minD):
##print(item[1], item[5], minD, abs(item[5] - listX.GPU.budget), minD > abs(item[5] - listX.GPU.budget))
if(minD > abs(item[5] - listX.CPU.budget)):
itemList = []
minD = abs(item[5] - listX.CPU.budget)
itemList.append(item)
# #print(listX.CPU.budget)
# for i in itemList:
##print(i[1], i[5])
if(itemList == []):
errorInf['errorList'].append('Error: 未找到合适的CPU')
else:
itemList.sort(key=lambda x: (x[15], x[3]*50 + x[2]), reverse=True)
# #print('------------------------------')
# for i in itemList:
##print(i[1], i[5])
# #print('\n---------------------------------\n')
listX.CPU.name = itemList[0][1]
listX.CPU.price = itemList[0][5]
listX.CPU.link = itemList[0][6]
listX.CPU.socket = itemList[0][12]
listX.price += listX.CPU.price
# 推荐主板
cursor.execute("SELECT * FROM motherboard")
data = cursor.fetchall()
itemList = []
for item in data:
if((item[7] in preDict['MBBrand'] or preDict['MBBrand'] == []) and (item[9] == preDict['MBSize'] or preDict['MBSize'] == None) and item[11] == listX.CPU.socket and abs(item[5] - listX.motherboard.budget) <= 100):
itemList.append(item)
##print(preDict['MBSize'], item[9])
##print(listX.CPU.socket, item[11])
##print(abs(item[5] - listX.motherboard.budget))
# #print('\n-------------------------------\n')
if(itemList == []):
minD = 9999999
for item in data:
if((item[7] in preDict['MBBrand'] or preDict['MBBrand'] == []) and (item[9] == preDict['MBSize'] or preDict['MBSize'] == None) and item[11] == listX.CPU.socket and abs(item[5] - listX.motherboard.budget) <= minD):
if(minD > abs(item[5] - listX.motherboard.budget)):
itemList = []
minD = abs(item[5] - listX.motherboard.budget)
itemList.append(item)
##print(preDict['MBSize'], item[9])
##print(listX.CPU.socket, item[11])
##print(abs(item[5] - listX.motherboard.budget))
##print((item[9] == preDict['MBSize'] or preDict['MBSize'] == None) and item[11] == listX.CPU.socket and abs(item[5] - listX.motherboard.budget) < minD)
# #print('\n-------------------------------\n')
if(itemList == []):
errorInf['errorList'].append('Error: 未找到合适的主板')
else:
itemList.sort(key=lambda x: x[3]*50 + x[2], reverse=True)
##print(preDict['MBSize'], item[9])
listX.motherboard.name = itemList[0][1]
listX.motherboard.price = itemList[0][5]
listX.motherboard.link = itemList[0][6]
listX.motherboard.socket = itemList[0][11]
listX.motherboard.m2Num = itemList[0][12]
listX.price += listX.motherboard.price
# 推荐内存
cursor.execute("SELECT * FROM memory")
data = cursor.fetchall()
itemList = []
for item in data:
if((item[11] == preDict['memoryVest'] or preDict['memoryVest'] == None) and (item[9] == preDict['memoryCapacity'] or preDict['memoryCapacity'] == None) and (item[7] in preDict['memoryBrand'] or preDict['memoryBrand'] == []) and item[12] == 'DDR4' and abs(item[5] - listX.memory.budget) <= 50):
itemList.append(item)
if(itemList == []):
minD = 9999999
for item in data:
# if(item[7] in preDict['memoryBrand']):
##print(item[11] == preDict['memoryVest'])
##print(type(item[9]), type(preDict['memoryCapacity']))
##print(item[7] in preDict['memoryBrand'])
##print(item[12] == 'DDR4')
##print(abs(item[5] - listX.memory.budget))
# #print('\n---------------------------\n')
if((item[11] == preDict['memoryVest'] or preDict['memoryVest'] == None) and (item[9] == preDict['memoryCapacity'] or preDict['memoryCapacity'] == None) and (item[7] in preDict['memoryBrand'] or preDict['memoryBrand'] == []) and item[12] == 'DDR4' and abs(item[5] - listX.memory.budget) <= minD):
# #print(1111)
if(minD > abs(item[5] - listX.memory.budget)):
itemList = []
minD = abs(item[5] - listX.memory.budget)
itemList.append(item)
if(itemList == []):
errorInf['errorList'].append('Error: 未找到合适的内存')
else:
itemList.sort(key=lambda x: x[3]*50 + x[2], reverse=True)
listX.memory.name = itemList[0][1]
listX.memory.price = itemList[0][5]
listX.memory.link = itemList[0][6]
listX.price += listX.memory.price
# 推荐GPU
cursor.execute("SELECT * FROM graphics_card")
data = cursor.fetchall()
itemList = []
for item in data:
if((item[10] == preDict['GPURGB'] or preDict['GPURGB'] == None) and (item[7] in preDict['GPUBrand'] or preDict['GPUBrand'] == []) and (item[11] == preDict['GPUAN'] or preDict['GPUAN'] == None) and abs(item[5] - listX.GPU.budget) <= 100):
itemList.append(item)
if(itemList == []):
minD = 9999999
for item in data:
if((item[10] == preDict['GPURGB'] or preDict['GPURGB'] == None) and (item[7] in preDict['GPUBrand'] or preDict['GPUBrand'] == []) and (item[11] == preDict['GPUAN'] or preDict['GPUAN'] == None) and abs(item[5] - listX.GPU.budget) <= minD):
if(minD > abs(item[5] - listX.GPU.budget)):
itemList = []
minD = abs(item[5] - listX.GPU.budget)
itemList.append(item)
if(itemList == []):
errorInf['errorList'].append('Error: 未找到合适的显卡')
else:
##print(itemList)
itemList.sort(key=lambda x: (x[12], x[3]*50 + x[2]), reverse=True)
listX.GPU.name = itemList[0][1]
listX.GPU.price = itemList[0][5]
listX.GPU.link = itemList[0][6]
listX.GPU.length = itemList[0][9]
listX.price += listX.GPU.price
# 推荐散热器
cursor.execute("SELECT * FROM cpu_radiator")
data = cursor.fetchall()
itemList = []
typeDict = {0: '风冷', 120: '水冷', 240: '水冷', 280: '水冷', 360: '水冷'}
for item in data:
socket = item[9].split('~')
if((item[11] == preDict['CPURadiatorRGB'] or preDict['CPURadiatorRGB'] == None) and (item[7] in preDict['CPURadiatorBrand'] or preDict['CPURadiatorBrand'] == []) and (typeDict[item[10]] == preDict['CPURadiatorType'] or preDict['CPURadiatorType'] == None) and listX.CPU.socket in socket and abs(item[5] - listX.CPURadiator.budget) <= 50):
itemList.append(item)
'''
if(item[7] in preDict['CPURadiatorBrand']):
#print(preDict['CPURadiatorRGB'], item[11])
#print(preDict['CPURadiatorRGB'] == item[11])
#print(listX.CPU.socket, socket)
#print(listX.CPU.socket in socket)
#print(item[7], preDict['CPURadiatorBrand'])
#print(item[7] in preDict['CPURadiatorBrand'])
#print(typeDict[item[10]], preDict['CPURadiatorType'])
#print(typeDict[item[10]] == preDict['CPURadiatorType'])
#print(abs(item[5] - listX.CPURadiator.budget))
#print('\n-------------------------------\n')
'''
if(itemList == []):
minD = 9999999
for item in data:
socket = item[9].split('~')
if((item[11] == preDict['CPURadiatorRGB'] or preDict['CPURadiatorRGB'] == None) and (item[7] in preDict['CPURadiatorBrand'] or preDict['CPURadiatorBrand'] == []) and (typeDict[item[10]] == preDict['CPURadiatorType'] or preDict['CPURadiatorType'] == None) and listX.CPU.socket in socket and abs(item[5] - listX.CPURadiator.budget) <= minD):
if(minD > abs(item[5] - listX.CPURadiator.budget)):
itemList = []
minD = abs(item[5] - listX.CPURadiator.budget)
itemList.append(item)
if(itemList == []):
errorInf['errorList'].append('Error: 未找到合适的CPU散热器')
else:
itemList.sort(key=lambda x: x[3]*50 + x[2], reverse=True)
listX.CPURadiator.name = itemList[0][1]
listX.CPURadiator.price = itemList[0][5]
listX.CPURadiator.link = itemList[0][6]
listX.CPURadiator.socket = listX.CPU.socket
listX.CPURadiator.height = itemList[0][8]
listX.CPURadiator.size = itemList[0][10]
listX.price += listX.CPURadiator.price
# 推荐硬盘
cursor.execute("SELECT * FROM ssd")
data1 = cursor.fetchall()
cursor.execute("SELECT * FROM hdd")
data2 = cursor.fetchall()
itemList = []
if(listX.HDD.budget == 0):
for item in data1:
##print(item[8], listX.motherboard.m2Num)
##print(item[3], preDict['SSDBrand'])
##print(item[9], preDict['hardDiskCapacity'])
##print(abs(item[5] - listX.SSD.budget))
# #print('\n---------------------------\n')
if(item[8] == 'M.2' and listX.motherboard.m2Num == 0):
continue
if((item[7] in preDict['SSDBrand'] or preDict['SSDBrand'] == []) and item[9] == preDict['hardDiskCapacity'] and abs(item[5] - listX.SSD.budget) <= 100):
itemList.append(item)
if(itemList == []):
minD = 9999999
for item in data1:
if(item[8] == 'M.2' and listX.motherboard.m2Num == 0):
continue
if((item[7] in preDict['SSDBrand'] or preDict['SSDBrand'] == []) and item[9] == preDict['hardDiskCapacity'] and abs(item[5] - listX.SSD.budget) <= minD):
if(minD > abs(item[5] - listX.SSD.budget)):
itemList = []
minD = abs(item[5] - listX.SSD.budget)
itemList.append(item)
##print(listX.motherboard.name, listX.motherboard.m2Num)
if(itemList == []):
errorInf['errorList'].append('Error: 未找到合适的硬盘')
else:
itemList.sort(key=lambda x: x[3]*50 + x[2], reverse=True)
listX.SSD.name = itemList[0][1]
listX.SSD.price = itemList[0][5]
listX.SSD.link = itemList[0][6]
listX.price += listX.SSD.price
else:
for ssd in data1:
for hdd in data2:
if(ssd[8] == 'M.2' and listX.motherboard.m2Num == 0):
continue
if((ssd[9] + hdd[10]) == preDict['hardDiskCapacity'] and (ssd[7] in preDict['SSDBrand'] or preDict['SSDBrand'] == []) and (hdd[7] in preDict['HDDBrand'] or preDict['HDDBrand'] == []) and abs((ssd[5]+hdd[5]) - (listX.SSD.budget+listX.HDD.budget)) <= 100):
itemList.append((ssd, hdd))
if(itemList == []):
minD = 9999999
for ssd in data1:
for hdd in data2:
if((ssd[9] + hdd[10]) == preDict['hardDiskCapacity'] and (ssd[7] in preDict['SSDBrand'] or preDict['SSDBrand'] == []) and (hdd[7] in preDict['HDDBrand'] or preDict['HDDBrand'] == []) and abs((ssd[5]+hdd[5]) - (listX.SSD.budget+listX.HDD.budget)) <= minD):
if(minD > abs((ssd[5]+hdd[5]) - (listX.SSD.budget+listX.HDD.budget))):
itemList = []
minD = abs((ssd[5]+hdd[5]) -
(listX.SSD.budget+listX.HDD.budget))
itemList.append((ssd, hdd))
if(itemList == []):
errorInf['errorList'].append('Error: 未找到合适的硬盘')
else:
itemList.sort(key=lambda x: (
x[0][3]+x[1][3])/2 * 50 + x[0][2] + x[1][2], reverse=True)
listX.SSD.name = itemList[0][0][1]
listX.SSD.price = itemList[0][0][5]
listX.SSD.link = itemList[0][0][6]
listX.price += listX.SSD.price
listX.HDD.name = itemList[0][1][1]
listX.HDD.price = itemList[0][1][5]
listX.HDD.link = itemList[0][1][6]
listX.price += listX.HDD.price
# 推荐电源
cursor.execute("SELECT * FROM power_supply")
data = cursor.fetchall()
itemList = []
for item in data:
'''
if(item[11] == preDict['powerSupplyModule']):
#print(item[11], preDict['powerSupplyModule'])
#print(item[11] == preDict['powerSupplyModule'])
#print(item[10], preDict['powerSupplySize'])
#print(item[10] == preDict['powerSupplySize'])
#print(item[7], preDict['powerSupplyBrand'])
#print(item[7] in preDict['powerSupplyBrand']
or preDict['powerSupplyBrand'] == [])
#print('\n----------------------------\n')
'''
if((item[11] == preDict['powerSupplyModule'] or preDict['powerSupplyModule'] == None) and (item[10] == preDict['powerSupplySize'] or preDict['powerSupplySize'] == None) and (item[7] in preDict['powerSupplyBrand'] or preDict['powerSupplyBrand'] == []) and abs(item[5] - listX.powerSupply.budget) <= 50):
itemList.append(item)
if(itemList == []):
minD = 9999999
for item in data:
if((item[11] == preDict['powerSupplyModule'] or preDict['powerSupplyModule'] == None) and (item[10] == preDict['powerSupplySize'] or preDict['powerSupplySize'] == None) and (item[7] in preDict['powerSupplyBrand'] or preDict['powerSupplyBrand'] == []) and abs(item[5] - listX.powerSupply.budget) <= minD):
if(minD > abs(item[5] - listX.powerSupply.budget)):
itemList = []
minD = abs(item[5] - listX.powerSupply.budget)
itemList.append(item)
if(itemList == []):
errorInf['errorList'].append('Error: 未找到合适的电源')
else:
##print(itemList)
itemList.sort(key=lambda x: x[3]*50 + x[2], reverse=True)
listX.powerSupply.name = itemList[0][1]
listX.powerSupply.price = itemList[0][5]
listX.powerSupply.link = itemList[0][6]
listX.powerSupply.size = itemList[0][11]
listX.price += listX.powerSupply.price
# 推荐机箱
cursor.execute("SELECT * FROM computer_case")
data = cursor.fetchall()
itemList = []
# #print(listX.case.budget)
##print(listX.CPURadiator.name)
##print(listX.GPU.length, listX.CPURadiator.size, listX.CPURadiator.height)
for item in data:
radiatorSize = item[11].split('~')
for size in radiatorSize:
if((item[8] == preDict['caseSize'] or preDict['caseSize'] == None) and (item[7] in preDict['caseBrand'] or preDict['caseBrand'] == []) and (item[12] == preDict['caseTransparent'] or preDict['caseTransparent'] == None) and item[9] >= listX.GPU.length and item[10] >= listX.CPURadiator.height and int(size) >= listX.CPURadiator.size and abs(item[5] - listX.case.budget) <= 100):
itemList.append(item)
if(itemList == []):
# #print(listX.CPU.name)
# #print(listX.motherboard.name)
# #print(listX.GPU.name)
# #print(listX.CPURadiator.name)
minD = 9999999
for item in data:
radiatorSize = item[11].split('~')
for size in radiatorSize:
if((item[8] == preDict['caseSize'] or preDict['caseSize'] == None) and (item[7] in preDict['caseBrand'] or preDict['caseBrand'] == []) and (item[12] == preDict['caseTransparent'] or preDict['caseTransparent'] == None) and item[9] >= listX.GPU.length and item[10] >= listX.CPURadiator.height and int(size) >= listX.CPURadiator.size and abs(item[5] - listX.case.budget) <= minD):
if(minD > abs(item[5] - listX.case.budget)):
itemList = []
minD = abs(item[5] - listX.case.budget)
itemList.append(item)
##print(preDict['caseSize'], item[8])
##print(listX.GPU.length, item[9])
##print(listX.CPURadiator.height, item[10])
##print(listX.CPURadiator.size, size)
##print(abs(item[5] - listX.case.budget))
# #print('\n-------------------------------\n')
if(itemList == []):
errorInf['errorList'].append('Error: 未找到合适的机箱')
else:
itemList.sort(key=lambda x: x[3]*50 + x[2], reverse=True)
listX.case.name = itemList[0][1]
listX.case.price = itemList[0][5]
listX.case.link = itemList[0][6]
listX.price += listX.case.price
if(errorInf['errorList'] != []):
#返回报错信息
res = open('../code/Recommend_Code/recommend_result.json', 'w', encoding='utf-8')
#print(errorInf)
json.dump(errorInf, res, ensure_ascii=False)
res.close()
print("OK")
exit(0)
return listX
primaryQuestionDict = {'Q2': ['', '学习、商务办公、轻度娱乐', '3A大作', '网游', '设计'], 'Q3': ['', '无光', 'RGB', 'ARGB'],
'Q4': ['', 'E-ATX', 'ATX', 'M-ATX', 'MINI-ITX', '无要求']}
advancedQuestionDict = {'Q2': ['', 'CPU', '显卡', '硬盘', '内存', '主板', '电源', 'CPU散热器', '无特殊要求'], 'Q3': ['', 'INTEL', 'AMD'], 'Q5': ['', 'NVIDIA', 'AMD'],
'Q13': ['', 'E-ATX', 'ATX', 'M-ATX', 'MINI-ITX'], 'Q14': ['', 1, 0], 'Q15': ['', '风冷', '水冷'],
'Q16': ['', '', 'RGB', 'ARGB'], 'Q17': ['', '普条', '马甲条', 'RGB灯条'], 'Q18': ['', '', '支持RGB'],
'Q20': ['', '全模组化', '半模组化', '非模组化'], 'Q21': ['', 4, 8, 16, 32, 64, 128]}
questionAnswersFile = open('../code/Recommend_Code/questionAnswers.json', 'r', encoding='UTF-8')
questionAnswersData = json.load(questionAnswersFile)
questionAnswersFile.close()
# #print(questionAnswers)
# 解析问卷数据
questionAnswers = parse(questionAnswersData)
# #print(questionAnswers['Q3'])
if(questionAnswers == None):
exit(0)
# 检查问卷是否存在问题
check(questionAnswers)
# 建立各配置单对象
listLow = AccessoriesList('listLow')
listMiddle = AccessoriesList('listMiddle')
listHigh = AccessoriesList('listHigh')
# 初始化各配件预算百分比
CPUPercent = 0.222
GPUPercent = 0.295
motherboardPercent = 0.129
memoryPercent = 0.090
SSDPercent = 0.076
casePercent = 0.038
powerSupplyPercent = 0.057
HDDPercent = 0.058
CPURadiatorPercent = 0.035
# 初始化各Flag
preDict = {'caseSize': None, 'hardDiskCapacity': 0.125, 'CPUBrand': None, 'MBBrand': [], 'GPUAN': None, 'MBSize': None,
'GPUBrand': [], 'memoryBrand': [], 'SSDBrand': [], 'HDDBrand': [], 'caseBrand': [], 'CPURadiatorBrand': [],
'powerSupplyBrand': [], 'caseTransparent': None, 'CPURadiatorType': None, 'CPURadiatorRGB': None, 'memoryVest': None,
'GPURGB': None, 'powerSupplyModule': None, 'memoryCapacity': None, 'powerSupplySize': None}
preDict = preferParse(preDict, questionAnswers)
# 根据初学者问卷计算配件预算并进行推荐
if(questionAnswers['version'] == 'primary'):
# 根据Q1初始化各配置单预算
budgetLimit = int(questionAnswers['Q1'][0])
budgetCap = int(questionAnswers['Q1'][1])
listLow.budget = budgetLimit
listMiddle.budget = (budgetLimit + budgetCap) / 2
listHigh.budget = budgetCap
# 根据Q2分配各配件预算
if(questionAnswers['Q2'] == '学习、商务办公、轻度娱乐'):
CPUPercent = 0.237
motherboardPercent = 0.139
memoryPercent = 0.092
SSDPercent = 0.081
GPUPercent = 0.259
casePercent = 0.037
powerSupplyPercent = 0.058
CPURadiatorPercent = 0.031
HDDPercent = 0.066
elif(questionAnswers['Q2'] == '3A大作'):
CPUPercent = 0.189
motherboardPercent = 0.115
memoryPercent = 0.084
SSDPercent = 0.081
GPUPercent = 0.344
casePercent = 0.043
powerSupplyPercent = 0.056
CPURadiatorPercent = 0.042
HDDPercent = 0.046
elif(questionAnswers['Q2'] == '网游'):
CPUPercent = 0.213
motherboardPercent = 0.124
memoryPercent = 0.084
SSDPercent = 0.078
GPUPercent = 0.316
casePercent = 0.037
powerSupplyPercent = 0.060
CPURadiatorPercent = 0.034
HDDPercent = 0.054
elif(questionAnswers['Q2'] == '设计'):
CPUPercent = 0.245
motherboardPercent = 0.124
memoryPercent = 0.095
SSDPercent = 0.069
GPUPercent = 0.293
casePercent = 0.033
powerSupplyPercent = 0.052
CPURadiatorPercent = 0.031
HDDPercent = 0.058
# 根据硬盘容量需求决定是否使用机械硬盘
if(questionAnswers['Q5'] == None or questionAnswers['Q5'] <= 1):
CPUPercent += CPUPercent * HDDPercent
motherboardPercent += motherboardPercent * HDDPercent
memoryPercent += memoryPercent * HDDPercent
SSDPercent += SSDPercent * HDDPercent
GPUPercent += GPUPercent * HDDPercent
casePercent += casePercent * HDDPercent
powerSupplyPercent += powerSupplyPercent * HDDPercent
CPURadiatorPercent += CPURadiatorPercent * HDDPercent
HDDPercent = 0
elif(questionAnswers['version'] == 'advanced'):
# 根据Q1初始化各配置单预算
budgetLimit = int(questionAnswers['Q1'][0])
budgetCap = int(questionAnswers['Q1'][1])
listLow.budget = budgetLimit
listMiddle.budget = (budgetLimit + budgetCap) / 2
listHigh.budget = budgetCap
# 根据Q2调整各配件预算比例
extraBudget = 0
if('CPU' in questionAnswers['Q2']):
extraBudget += CPUPercent * 0.2
CPUPercent += CPUPercent * 0.2
if('显卡' in questionAnswers['Q2']):
extraBudget += GPUPercent * 0.2
GPUPercent += GPUPercent * 0.2
if('硬盘' in questionAnswers['Q2']):
extraBudget += SSDPercent * 0.2
extraBudget += HDDPercent * 0.2
SSDPercent += SSDPercent * 0.2
HDDPercent += HDDPercent * 0.2
if('内存' in questionAnswers['Q2']):
extraBudget += memoryPercent * 0.2
memoryPercent += memoryPercent * 0.2
if('主板' in questionAnswers['Q2']):
extraBudget += motherboardPercent * 0.2
motherboardPercent += motherboardPercent * 0.2
if('电源' in questionAnswers['Q2']):
extraBudget += powerSupplyPercent * 0.2
powerSupplyPercent += powerSupplyPercent * 0.2
if('CPU散热器' in questionAnswers['Q2']):
extraBudget += CPURadiatorPercent * 0.2
CPURadiatorPercent += CPURadiatorPercent * 0.2
CPUPercent -= 0.222 * extraBudget
GPUPercent -= 0.295 * extraBudget
motherboardPercent -= 0.129 * extraBudget
memoryPercent -= 0.090 * extraBudget
SSDPercent -= 0.076 * extraBudget
casePercent -= 0.038 * extraBudget
powerSupplyPercent -= 0.057 * extraBudget
HDDPercent -= 0.058 * extraBudget
CPURadiatorPercent -= 0.035 * extraBudget
# 根据硬盘容量需求决定是否使用机械硬盘
if(questionAnswers['Q5'] == None or questionAnswers['Q19'] <= 1):
CPUPercent += CPUPercent * HDDPercent
motherboardPercent += motherboardPercent * HDDPercent
memoryPercent += memoryPercent * HDDPercent
SSDPercent += SSDPercent * HDDPercent
GPUPercent += GPUPercent * HDDPercent
casePercent += casePercent * HDDPercent
powerSupplyPercent += powerSupplyPercent * HDDPercent
CPURadiatorPercent += CPURadiatorPercent * HDDPercent
HDDPercent = 0
listLow = calculateBudget(listLow, CPUPercent, motherboardPercent, memoryPercent, SSDPercent, GPUPercent, casePercent,
powerSupplyPercent, CPURadiatorPercent, HDDPercent)
listMiddle = calculateBudget(listMiddle, CPUPercent, motherboardPercent, memoryPercent, SSDPercent, GPUPercent, casePercent,
powerSupplyPercent, CPURadiatorPercent, HDDPercent)
listHigh = calculateBudget(listHigh, CPUPercent, motherboardPercent, memoryPercent, SSDPercent, GPUPercent, casePercent,
powerSupplyPercent, CPURadiatorPercent, HDDPercent)
suggest(listLow, preDict)
suggest(listMiddle, preDict)
suggest(listHigh, preDict)
# 返回配置单
listCnt = 0
resDict = {'type': 0, 'flag': 0, 'count': 0, 'result': []}
errorInf = {'type': 0, 'flag': 1, 'errorList': []}
listLowRes = {}
#print(listLow.price - listLow.budget)
if(abs(listLow.price - listLow.budget) < listLow.budget * 0.1):
listCnt += 1
listLowRes = {'CPU': [listLow.CPU.name, listLow.CPU.link, listLow.CPU.price],
'motherboard': [listLow.motherboard.name, listLow.motherboard.link, listLow.motherboard.price],
'memory': [listLow.memory.name, listLow.memory.link, listLow.memory.price],
'SSD': [listLow.SSD.name, listLow.SSD.link, listLow.SSD.price],
'GPU': [listLow.GPU.name, listLow.GPU.link, listLow.GPU.price],
'case': [listLow.case.name, listLow.case.link, listLow.case.price],
'powerSupply': [listLow.powerSupply.name, listLow.powerSupply.link, listLow.powerSupply.price],
'CPURadiator': [listLow.CPURadiator.name, listLow.CPURadiator.link, listLow.CPURadiator.price],
'HDD': [listLow.HDD.name, listLow.HDD.link, listLow.HDD.price],
'totalPrice': listLow.price}
resDict['result'].append(listLowRes)
listMiddleRes = {}
#print(listMiddle.price - listMiddle.budget)
if(abs(listMiddle.price - listMiddle.budget) < listMiddle.budget * 0.1):
listCnt += 1
listMiddleRes = {'CPU': [listMiddle.CPU.name, listMiddle.CPU.link, listMiddle.CPU.price],
'motherboard': [listMiddle.motherboard.name, listMiddle.motherboard.link, listMiddle.motherboard.price],
'memory': [listMiddle.memory.name, listMiddle.memory.link, listMiddle.memory.price],
'SSD': [listMiddle.SSD.name, listMiddle.SSD.link, listMiddle.SSD.price],
'GPU': [listMiddle.GPU.name, listMiddle.GPU.link, listMiddle.GPU.price],
'case': [listMiddle.case.name, listMiddle.case.link, listMiddle.case.price],
'powerSupply': [listMiddle.powerSupply.name, listMiddle.powerSupply.link, listMiddle.powerSupply.price],
'CPURadiator': [listMiddle.CPURadiator.name, listMiddle.CPURadiator.link, listMiddle.CPURadiator.price],
'HDD': [listMiddle.HDD.name, listMiddle.HDD.link, listMiddle.HDD.price],
'totalPrice': listMiddle.price}
resDict['result'].append(listMiddleRes)
listHighRes = {}
#print(listHigh.price - listHigh.budget)
if(abs(listHigh.price - listHigh.budget) < listHigh.budget * 0.1):
listCnt += 1
listHighRes = {'CPU': [listHigh.CPU.name, listHigh.CPU.link, listHigh.CPU.price],
'motherboard': [listHigh.motherboard.name, listHigh.motherboard.link, listHigh.motherboard.price],
'memory': [listHigh.memory.name, listHigh.memory.link, listHigh.memory.price],
'SSD': [listHigh.SSD.name, listHigh.SSD.link, listHigh.SSD.price],
'GPU': [listHigh.GPU.name, listHigh.GPU.link, listHigh.GPU.price],
'case': [listHigh.case.name, listHigh.case.link, listHigh.case.price],
'powerSupply': [listHigh.powerSupply.name, listHigh.powerSupply.link, listHigh.powerSupply.price],
'CPURadiator': [listHigh.CPURadiator.name, listHigh.CPURadiator.link, listHigh.CPURadiator.price],
'HDD': [listHigh.HDD.name, listHigh.HDD.link, listHigh.HDD.price],
'totalPrice': listHigh.price}
resDict['result'].append(listHighRes)
if(listCnt == 0):
errorInf['errorList'].append('Error: 未找到符合要求的配置单')
res = open('../code/Recommend_Code/recommend_result.json', 'w', encoding='utf-8')
json.dump(errorInf, res, ensure_ascii=False)
res.close()
print("OK")
exit(0)
resDict['count'] = listCnt
# 更新热门配置表
updater = UpdateTrendings(resDict)
resDict = updater.update()
res = open('../code/Recommend_Code/recommend_result.json',
'w', encoding='utf-8')
json.dump(resDict, res, ensure_ascii=False)
res.close()
for listRes in resDict['result']:
# 生成配置清单
rec2 = f"配置单:(总价格为{listRes['totalPrice']})\n"
rec2 += f"CPU:\t\t{listRes['CPU'][0]}\t\t{listRes['CPU'][1]}\t\t{listRes['CPU'][2]}\n"
rec2 += f"主板:\t\t{listRes['motherboard'][0]}\t\t{listRes['motherboard'][1]}\t\t{listRes['motherboard'][2]}\n"
rec2 += f"显卡:\t\t{listRes['GPU'][0]}\t\t{listRes['GPU'][1]}\t\t{listRes['GPU'][2]}\n"
rec2 += f"内存:\t\t{listRes['memory'][0]}\t\t{listRes['memory'][1]}\t\t{listRes['memory'][2]}\n"
rec2 += f"固态硬盘:\t\t{listRes['SSD'][0]}\t\t{listRes['SSD'][1]}\t\t{listRes['SSD'][2]}\n"
rec2 += f"机械硬盘:\t\t{listRes['HDD'][0]}\t\t{listRes['HDD'][1]}\t\t{listRes['HDD'][2]}\n"
rec2 += f"电源:\t\t{listRes['powerSupply'][0]}\t\t{listRes['powerSupply'][1]}\t\t{listRes['powerSupply'][2]}\n"
rec2 += f"CPU散热器:\t\t{listRes['CPURadiator'][0]}\t\t{listRes['CPURadiator'][1]}\t\t{listRes['CPURadiator'][2]}\n"
rec2 += f"机箱:\t\t{listRes['case'][0]}\t\t{listRes['case'][1]}\t\t{listRes['case'][2]}\n"
hash_val = listRes['hash']
with open("../recommendLists/Recommend_"+hash_val+".txt", "w", encoding='utf-8') as fn2:
fn2.write(rec2)
print("OK")

@ -0,0 +1 @@
{"type": 0, "flag": 0, "count": 3, "result": [{"CPU": ["英特尔i5-10400F", "https://item.jd.com/100006897507.html", 1199], "motherboard": ["华擎H410M-ITX/ac主板", "https://item.jd.com/100013507418.html", 699], "memory": ["美商海盗船复仇者LPX DDR4 2666 16GB(8G×2)", "https://item.jd.com/100004590445.html", 539], "SSD": ["朗科N530S", "https://item.jd.com/100001985502.html", 439], "GPU": ["微星GeForce GTX 1650 GAMING X 4G", "https://item.jd.com/100005114232.html", 1299], "case": ["PHANTEKSPH-ES215PTG_BK", "https://item.jd.com/6306346.html", 399], "powerSupply": ["鑫谷M450B电源", "https://item.jd.com/100000254386.html", 299], "CPURadiator": ["ThermalrightTL-AS120 PLUS", "https://item.jd.com/100006880794.html", 169], "HDD": ["noneed", "", 0], "totalPrice": 5042, "hash": "8138058853"}, {"CPU": ["AMDR5 3600X", "https://item.jd.com/100003815415.html", 1499], "motherboard": ["技嘉B450 I AORUS PRO WIFI", "https://item.jd.com/100000205431.html", 949], "memory": ["美商海盗船复仇者LPX DDR4 2666 16GB(8G×2)", "https://item.jd.com/100004590445.html", 539], "SSD": ["七彩虹SL500 1TB", "https://item.jd.com/100005444250.html", 599], "GPU": ["蓝宝石RX 5500XT 白金版OC", "https://item.jd.com/100010515956.html", 1649], "case": ["PHANTEKSPH-ES215PTG_BK", "https://item.jd.com/6306346.html", 399], "powerSupply": ["银欣ST30SF", "https://item.jd.com/3945819.html", 369], "CPURadiator": ["ThermalrightTL-AS120 PLUS", "https://item.jd.com/100006880794.html", 169], "HDD": ["noneed", "", 0], "totalPrice": 6172, "hash": "20571650032"}, {"CPU": ["AMDR5 3600X", "https://item.jd.com/100003815415.html", 1499], "motherboard": ["技嘉B450 I AORUS PRO WIFI", "https://item.jd.com/100000205431.html", 949], "memory": ["美商海盗船复仇者LPX DDR4 3600 16GB(8G×2)", "https://item.jd.com/100003383025.html", 639], "SSD": ["西部数据WDS100T2G0A", "https://item.jd.com/100005145074.html", 669], "GPU": ["华擎Radeon RX 5500XT Challenger D 8G OC", "https://item.jd.com/100010501414.html", 1839], "case": ["PHANTEKSPH-ES215PTG_BK", "https://item.jd.com/6306346.html", 399], "powerSupply": ["银欣SST-ST45SF", "https://item.jd.com/3979099.html", 469], "CPURadiator": ["ThermalrightAK120MINI", "https://item.jd.com/100006722267.html", 199], "HDD": ["noneed", "", 0], "totalPrice": 6662, "hash": "15307189858"}]}

@ -0,0 +1 @@
{"type": 0, "flag": 1, "errorList": ["Error 给出预算上限太低,无法生成配置单"]}

@ -0,0 +1,13 @@
<?php
$data = json_encode($_POST);
// 将检测问卷内容读取到文件中
file_put_contents('../code/Compatibility_Checking/questionnaire.json', $data);
//运行python脚本算法
exec("E:/02_Program_files/anaconda3/envs/web/python.exe ../code/Compatibility_Checking/doCheck.py 2>../code/Compatibility_Checking/check_error.txt", $out);
// 从文件中读取数据到PHP变量
if ($out[0] === "OK") {
$result = file_get_contents('../code/Compatibility_Checking/check_result.json');
echo $result;
}

@ -0,0 +1,14 @@
<?php
$data = json_encode($_POST);
// 将问卷内容读取到文件中
file_put_contents('../code/Recommend_Code/questionAnswers.json' , $data);
//运行python脚本算法
exec("E:/02_Program_files/anaconda3/envs/web/python.exe ../code/Recommend_Code/recommend.py 2>../code/Recommend_Code/recommend_error.txt", $out);
// 从文件中读取数据到PHP变量
if ($out[0]==="OK"){
$result = file_get_contents('../code/Recommend_Code/recommend_result.json');
echo $result;
}

@ -1,7 +1,7 @@
$axure.loadDocument(
(function() {
var _ = function() { var r={},a=arguments; for(var i=0; i<a.length; i+=2) r[a[i]]=a[i+1]; return r; }
var _creator = function() { return _(b,_(c,d,e,f,g,d,h,f,i,d,j,k,l,d,m,d,n,f,o,d,p,f),q,_(r,[_(s,t,u,v,w,x,y,z),_(s,A,u,B,w,x,y,C),_(s,D,u,E,w,x,y,F),_(s,G,u,H,w,x,y,I,J,[_(s,K,u,L,w,x,y,M),_(s,N,u,O,w,x,y,P),_(s,Q,u,R,w,x,y,S),_(s,T,u,U,w,x,y,V,J,[_(s,W,u,X,w,x,y,Y),_(s,Z,u,ba,w,x,y,bb),_(s,bc,u,bd,w,x,y,be),_(s,bf,u,bg,w,x,y,bh)])]),_(s,bi,u,bj,w,x,y,bk),_(s,bl,u,bm,w,x,y,bn),_(s,bo,u,bp,w,x,y,bq),_(s,br,u,bs,w,x,y,bt)]),bu,[bv,bw,bx],by,[bz,bA,bB],bC,_(bD,bE,bF,bG,bH,bG,bI,bG,bJ,bG,bK,bG,bL,bG,bM,bG,bN,bG),bO,_(bP,_(s,bQ,bR,bS,bT,bU,bV,bW,bX,bY,bZ,_(ca,cb,cc,cd,ce,cf),cg,ch,ci,f,cj,ck,cl,bW,cm,_(cn,co,cp,co),cq,_(cr,co,cs,co),ct,d,cu,f,cv,bQ,cw,_(ca,cb,cc,cx),cy,_(ca,cb,cc,cz),cA,cB,cC,cb,ce,cB,cD,bG,cE,cF,cG,cH,cI,cH,cJ,cH,cK,cH,cL,null,cM,_(),cN,bG,cO,_(cP,f,cQ,cR,cS,cR,cT,cR,cc,_(cU,cV,cW,cV,cX,cV,cY,cZ)),da,_(cP,f,cQ,co,cS,cR,cT,cR,cc,_(cU,cV,cW,cV,cX,cV,cY,cZ)),db,_(cP,f,cQ,cf,cS,cf,cT,cR,cc,_(cU,cV,cW,cV,cX,cV,cY,dc)),dd,bW,de,df,dg,f,dh,null,di,dj),dk,_(dl,_(s,dm),dn,_(s,dp),cL,_(s,dq,bZ,_(ca,cb,cc,dr,ce,cf),cA,bG),ds,_(s,dt,bZ,_(ca,cb,cc,cx,ce,cf),cA,bG,cD,bY,cw,_(ca,cb,cc,du)),dv,_(s,dw,bT,dx,cg,dy,cy,_(ca,cb,cc,dz),cA,bG,cw,_(ca,cb,cc,dz),cj,dA,cE,dB,cG,bG,cI,bG,cJ,bG,cK,bG),dC,_(s,dD,bT,dx,cg,dE,cy,_(ca,cb,cc,dz),cA,bG,cw,_(ca,cb,cc,dz),cj,dA,cE,dB,cG,bG,cI,bG,cJ,bG,cK,bG),dF,_(s,dG,bT,dx,cg,dH,cy,_(ca,cb,cc,dz),cA,bG,cw,_(ca,cb,cc,dz),cj,dA,cE,dB,cG,bG,cI,bG,cJ,bG,cK,bG),dI,_(s,dJ,bT,dx,cg,dK,cy,_(ca,cb,cc,dz),cA,bG,cw,_(ca,cb,cc,dz),cj,dA,cE,dB,cG,bG,cI,bG,cJ,bG,cK,bG),dL,_(s,dM,bT,dx,cy,_(ca,cb,cc,dz),cA,bG,cw,_(ca,cb,cc,dz),cj,dA,cE,dB,cG,bG,cI,bG,cJ,bG,cK,bG),dN,_(s,dO,bT,dx,cg,dP,cy,_(ca,cb,cc,dz),cA,bG,cw,_(ca,cb,cc,dz),cj,dA,cE,dB,cG,bG,cI,bG,cJ,bG,cK,bG),dQ,_(s,dR,cg,dK,cA,bG,cw,_(ca,cb,cc,dz),cj,dA,cE,dB,cG,bG,cI,bG,cJ,bG,cK,bG),dS,_(s,dT,cy,_(ca,cb,cc,dz),cA,bG,cw,_(ca,cb,cc,dz),cj,dA,cE,dB,cG,bG,cI,bG,cJ,bG,cK,bG),dU,_(s,dV,cw,_(ca,cb,cc,dz)),dW,_(s,dX,bZ,_(ca,cb,cc,dr,ce,cf),cj,dA,cE,cF),dY,_(s,dZ,bZ,_(ca,cb,cc,dr,ce,cf),cj,dA,cE,dB),ea,_(s,eb,cw,_(ca,ec,ed,_(cn,ee,cp,co),ef,_(cn,ee,cp,cf),eg,[_(cc,cx,eh,co),_(cc,ei,eh,co),_(cc,ej,eh,cf),_(cc,cx,eh,cf)])),ek,_(s,el,bZ,_(ca,cb,cc,em,ce,cf)),en,_(s,eo,cw,_(ca,cb,cc,ep)),eq,_(s,er,cy,_(ca,cb,cc,dr)),es,_(s,et,bR,bS,bT,bU,bV,bW,bX,bY,bZ,_(ca,cb,cc,cd,ce,cf),cg,ch,ci,f,cy,_(ca,cb,cc,dz),cA,bG,cC,cb,cD,bG,cw,_(ca,cb,cc,eu),ce,cB,cO,_(cP,f,cQ,co,cS,co,cT,ev,cc,_(cU,cV,cW,cV,cX,cV,cY,ew)),da,_(cP,f,cQ,co,cS,co,cT,ev,cc,_(cU,cV,cW,cV,cX,cV,cY,ew)),db,_(cP,f,cQ,cf,cS,cf,cT,cR,cc,_(cU,cV,cW,cV,cX,cV,cY,dc)),cj,ck,cE,cF,cG,cH,cI,cH,cJ,cH,cK,cH,cl,bW),ex,_(s,ey,cy,_(ca,cb,cc,dr)),ez,_(s,eA,cA,bG,cw,_(ca,cb,cc,cd)),eB,_(s,eC,bR,eD,bT,bU,cg,dH,cj,dA,cA,cH,cE,cF,cI,bG,cK,bG),eE,_(s,eF,cg,eG,cA,bG),eH,_(s,eI,cA,bG,cw,_(ca,cb,cc,eJ),cO,_(cP,d,cQ,cR,cS,cR,cT,cR,cc,_(cU,cV,cW,cV,cX,cV,cY,eK)),cj,dA,cE,dB,cG,eL,cI,eL,cJ,eL,cK,eL),eM,_(s,eN,bZ,_(ca,cb,cc,cx,ce,cf),cy,_(ca,cb,cc,cx),cw,_(ca,cb,cc,eO),cO,_(cP,d,cQ,cf,cS,cf,cT,cR,cc,_(cU,cV,cW,cV,cX,cV,cY,eP))),eQ,_(s,eR,cj,dA,cE,dB),eS,_(s,eT,cw,_(ca,cb,cc,cx))),eU,_(eV,dm,eW,dq,eX,dT)));};
var b="configuration",c="showPageNotes",d=true,e="showPageNoteNames",f=false,g="showAnnotations",h="showAnnotationsSidebar",i="showConsole",j="linkStyle",k="displayMultipleTargetsOnly",l="linkFlowsToPages",m="linkFlowsToPagesNewWindow",n="useLabels",o="useViews",p="loadFeedbackPlugin",q="sitemap",r="rootNodes",s="id",t="jfp9kt",u="pageName",v="Home",w="type",x="Wireframe",y="url",z="home.html",A="4kewfq",B="About",C="about.html",D="t2two4",E="Contact",F="contact.html",G="12hsj6",H="Questionnaire",I="questionnaire.html",J="children",K="cimrgw",L="Qtype",M="qtype.html",N="kpx3mg",O="Qwrite1",P="qwrite1.html",Q="o66cuf",R="Qwrite2",S="qwrite2.html",T="gmlinz",U="Qresult",V="qresult.html",W="yfvfyk",X="Qresult0",Y="qresult0.html",Z="51v5ac",ba="Qresult1",bb="qresult1.html",bc="unmnqi",bd="Qresult2",be="qresult2.html",bf="yp62m6",bg="Qresult3",bh="qresult3.html",bi="sj8rs4",bj="Toplist",bk="toplist.html",bl="oxfq82",bm="Check",bn="check.html",bo="tmt608",bp="Checksuc",bq="checksuc.html",br="bprvyu",bs="Checkfail",bt="checkfail.html",bu="additionalJs",bv="plugins/sitemap/sitemap.js",bw="plugins/page_notes/page_notes.js",bx="plugins/debug/debug.js",by="additionalCss",bz="plugins/sitemap/styles/sitemap.css",bA="plugins/page_notes/styles/page_notes.css",bB="plugins/debug/styles/debug.css",bC="globalVariables",bD="onloadvariable",bE="",bF="count1",bG="0",bH="count2",bI="count3",bJ="count4",bK="top1",bL="top2",bM="top3",bN="check",bO="stylesheet",bP="defaultStyle",bQ="627587b6038d43cca051c114ac41ad32",bR="fontName",bS="''",bT="fontWeight",bU="400",bV="fontStyle",bW="normal",bX="fontStretch",bY="5",bZ="foreGroundFill",ca="fillType",cb="solid",cc="color",cd=0xFF333333,ce="opacity",cf=1,cg="fontSize",ch="13px",ci="underline",cj="horizontalAlignment",ck="center",cl="lineSpacing",cm="location",cn="x",co=0,cp="y",cq="size",cr="width",cs="height",ct="visible",cu="limbo",cv="baseStyle",cw="fill",cx=0xFFFFFFFF,cy="borderFill",cz=0xFF797979,cA="borderWidth",cB="1",cC="linePattern",cD="cornerRadius",cE="verticalAlignment",cF="middle",cG="paddingLeft",cH="2",cI="paddingTop",cJ="paddingRight",cK="paddingBottom",cL="image",cM="stateStyles",cN="rotation",cO="outerShadow",cP="on",cQ="offsetX",cR=5,cS="offsetY",cT="blurRadius",cU="r",cV=0,cW="g",cX="b",cY="a",cZ=0.349019607843137,da="innerShadow",db="textShadow",dc=0.647058823529412,dd="characterSpacing",de="letterCase",df="none",dg="strikethrough",dh="imageFilter",di="viewOverride",dj="19e82109f102476f933582835c373474",dk="customStyles",dl="shape",dm="40519e9ec4264601bfb12c514e4f4867",dn="box_1",dp="4b7bfc596114427989e10bb0b557d0ce",dq="75a91ee5b9d042cfa01b8d565fe289c0",dr=0xFF000000,ds="primary_button",dt="cd64754845384de3872fb4a066432c1f",du=0xFF169BD5,dv="heading_1",dw="1111111151944dfba49f67fd55eb1f88",dx="700",dy="32px",dz=0xFFFFFF,dA="left",dB="top",dC="heading_2",dD="b3a15c9ddde04520be40f94c8168891e",dE="24px",dF="heading_3",dG="8c7a4c5ad69a4369a5f7788171ac0b32",dH="18px",dI="heading_4",dJ="e995c891077945c89c0b5fe110d15a0b",dK="14px",dL="heading_5",dM="386b19ef4be143bd9b6c392ded969f89",dN="heading_6",dO="fc3b9a13b5574fa098ef0a1db9aac861",dP="10px",dQ="label",dR="2285372321d148ec80932747449c36c9",dS="paragraph",dT="4988d43d80b44008a4a415096f1632af",dU="line",dV="619b2148ccc1497285562264d51992f9",dW="text_field",dX="44157808f2934100b68f2394a66b2bba",dY="text_area",dZ="42ee17691d13435b8256d8d0a814778f",ea="_流程形状",eb="df01900e3c4e43f284bafec04b0864c4",ec="linearGradient",ed="startPoint",ee=0.5,ef="endPoint",eg="stops",eh="offset",ei=0xFFF2F2F2,ej=0xFFE4E4E4,ek="form_hint",el="4889d666e8ad4c5e81e59863039a5cc0",em=0xFF999999,en="form_disabled",eo="9bd0236217a94d89b0314c8c7fc75f16",ep=0xFFF0F0F0,eq="horizontal_line",er="804e3bae9fce4087aeede56c15b6e773",es="shape1",et="1adcbdd9c2224181b5c4b89da367f9fe",eu=0xFF199ED8,ev=10,ew=0.313725490196078,ex="line1",ey="b6c1b8c358ea4ac68f10af9fbbf71f93",ez="icon",eA="26c731cb771b44a88eb8b6e97e78c80e",eB="radio_button",eC="1b88caaf1e8e4212a646ddc230538947",eD="'汉仪全唐诗简'",eE="table_cell",eF="e32791af1d1f48589fa7bb76dd190e14",eG="12px",eH="sticky_4",eI="874d265363934ac3b3d2ebd97a264a03",eJ=0xFFEF5AA1,eK=0.2,eL="10",eM="marker",eN="a8e305fe5c2a462b995b0021a9ba82b9",eO=0xFF009DD9,eP=0.698039215686274,eQ="checkbox",eR="dff2c6b58de143d9a89283ff421c1bb7",eS="flow_shape",eT="caddf88798f04a469d3bb16589ed2a5d",eU="duplicateStyles",eV="16bfa42d5df7441bb3dd53190239119c",eW="e985014e4f804020b34531b5b0294bb4",eX="e762b3e9d14a4baa84764f96f44752d0";
var _creator = function() { return _(b,_(c,d,e,f,g,d,h,f,i,d,j,k,l,d,m,d,n,f,o,d,p,f),q,_(r,[_(s,t,u,v,w,x,y,z)]),A,[B,C,D],E,[F,G,H],I,_(J,K,L,M,N,M,O,M,P,M,Q,M,R,M,S,M,T,M),U,_(V,_(s,W,X,Y,Z,ba,bb,bc,bd,be,bf,_(bg,bh,bi,bj,bk,bl),bm,bn,bo,f,bp,bq,br,bc,bs,_(bt,bu,bv,bu),bw,_(bx,bu,by,bu),bz,d,bA,f,bB,W,bC,_(bg,bh,bi,bD),bE,_(bg,bh,bi,bF),bG,bH,bI,bh,bk,bH,bJ,M,bK,bL,bM,bN,bO,bN,bP,bN,bQ,bN,bR,null,bS,_(),bT,M,bU,_(bV,f,bW,bX,bY,bX,bZ,bX,bi,_(ca,cb,cc,cb,cd,cb,ce,cf)),cg,_(bV,f,bW,bu,bY,bX,bZ,bX,bi,_(ca,cb,cc,cb,cd,cb,ce,cf)),ch,_(bV,f,bW,bl,bY,bl,bZ,bX,bi,_(ca,cb,cc,cb,cd,cb,ce,ci)),cj,bc,ck,cl,cm,f,cn,null,co,cp),cq,_(cr,_(s,cs),ct,_(s,cu),bR,_(s,cv,bf,_(bg,bh,bi,cw,bk,bl),bG,M),cx,_(s,cy,bf,_(bg,bh,bi,bD,bk,bl),bG,M,bJ,be,bC,_(bg,bh,bi,cz)),cA,_(s,cB,Z,cC,bm,cD,bE,_(bg,bh,bi,cE),bG,M,bC,_(bg,bh,bi,cE),bp,cF,bK,cG,bM,M,bO,M,bP,M,bQ,M),cH,_(s,cI,Z,cC,bm,cJ,bE,_(bg,bh,bi,cE),bG,M,bC,_(bg,bh,bi,cE),bp,cF,bK,cG,bM,M,bO,M,bP,M,bQ,M),cK,_(s,cL,Z,cC,bm,cM,bE,_(bg,bh,bi,cE),bG,M,bC,_(bg,bh,bi,cE),bp,cF,bK,cG,bM,M,bO,M,bP,M,bQ,M),cN,_(s,cO,Z,cC,bm,cP,bE,_(bg,bh,bi,cE),bG,M,bC,_(bg,bh,bi,cE),bp,cF,bK,cG,bM,M,bO,M,bP,M,bQ,M),cQ,_(s,cR,Z,cC,bE,_(bg,bh,bi,cE),bG,M,bC,_(bg,bh,bi,cE),bp,cF,bK,cG,bM,M,bO,M,bP,M,bQ,M),cS,_(s,cT,Z,cC,bm,cU,bE,_(bg,bh,bi,cE),bG,M,bC,_(bg,bh,bi,cE),bp,cF,bK,cG,bM,M,bO,M,bP,M,bQ,M),cV,_(s,cW,bm,cP,bG,M,bC,_(bg,bh,bi,cE),bp,cF,bK,cG,bM,M,bO,M,bP,M,bQ,M),cX,_(s,cY,bE,_(bg,bh,bi,cE),bG,M,bC,_(bg,bh,bi,cE),bp,cF,bK,cG,bM,M,bO,M,bP,M,bQ,M),cZ,_(s,da,bC,_(bg,bh,bi,cE)),db,_(s,dc,bf,_(bg,bh,bi,cw,bk,bl),bp,cF,bK,bL),dd,_(s,de,bf,_(bg,bh,bi,cw,bk,bl),bp,cF,bK,cG),df,_(s,dg,bC,_(bg,dh,di,_(bt,dj,bv,bu),dk,_(bt,dj,bv,bl),dl,[_(bi,bD,dm,bu),_(bi,dn,dm,bu),_(bi,dp,dm,bl),_(bi,bD,dm,bl)])),dq,_(s,dr,bf,_(bg,bh,bi,ds,bk,bl)),dt,_(s,du,bC,_(bg,bh,bi,dv)),dw,_(s,dx,bE,_(bg,bh,bi,cw)),dy,_(s,dz,X,Y,Z,ba,bb,bc,bd,be,bf,_(bg,bh,bi,bj,bk,bl),bm,bn,bo,f,bE,_(bg,bh,bi,cE),bG,M,bI,bh,bJ,M,bC,_(bg,bh,bi,dA),bk,bH,bU,_(bV,f,bW,bu,bY,bu,bZ,dB,bi,_(ca,cb,cc,cb,cd,cb,ce,dC)),cg,_(bV,f,bW,bu,bY,bu,bZ,dB,bi,_(ca,cb,cc,cb,cd,cb,ce,dC)),ch,_(bV,f,bW,bl,bY,bl,bZ,bX,bi,_(ca,cb,cc,cb,cd,cb,ce,ci)),bp,bq,bK,bL,bM,bN,bO,bN,bP,bN,bQ,bN,br,bc),dD,_(s,dE,bE,_(bg,bh,bi,cw)),dF,_(s,dG,bG,M,bC,_(bg,bh,bi,bj)),dH,_(s,dI,X,dJ,Z,ba,bm,cM,bp,cF,bG,bN,bK,bL,bO,M,bQ,M),dK,_(s,dL,bm,dM,bG,M),dN,_(s,dO,bG,M,bC,_(bg,bh,bi,dP),bU,_(bV,d,bW,bX,bY,bX,bZ,bX,bi,_(ca,cb,cc,cb,cd,cb,ce,dQ)),bp,cF,bK,cG,bM,dR,bO,dR,bP,dR,bQ,dR),dS,_(s,dT,bf,_(bg,bh,bi,bD,bk,bl),bE,_(bg,bh,bi,bD),bC,_(bg,bh,bi,dU),bU,_(bV,d,bW,bl,bY,bl,bZ,bX,bi,_(ca,cb,cc,cb,cd,cb,ce,dV))),dW,_(s,dX,bp,cF,bK,cG),dY,_(s,dZ,bC,_(bg,bh,bi,bD))),ea,_(eb,cs,ec,cv,ed,cY)));};
var b="configuration",c="showPageNotes",d=true,e="showPageNoteNames",f=false,g="showAnnotations",h="showAnnotationsSidebar",i="showConsole",j="linkStyle",k="displayMultipleTargetsOnly",l="linkFlowsToPages",m="linkFlowsToPagesNewWindow",n="useLabels",o="useViews",p="loadFeedbackPlugin",q="sitemap",r="rootNodes",s="id",t="sj8rs4",u="pageName",v="Toplist",w="type",x="Wireframe",y="url",z="toplist.html",A="additionalJs",B="plugins/sitemap/sitemap.js",C="plugins/page_notes/page_notes.js",D="plugins/debug/debug.js",E="additionalCss",F="plugins/sitemap/styles/sitemap.css",G="plugins/page_notes/styles/page_notes.css",H="plugins/debug/styles/debug.css",I="globalVariables",J="onloadvariable",K="",L="count1",M="0",N="count2",O="count3",P="count4",Q="top1",R="top2",S="top3",T="check",U="stylesheet",V="defaultStyle",W="627587b6038d43cca051c114ac41ad32",X="fontName",Y="''",Z="fontWeight",ba="400",bb="fontStyle",bc="normal",bd="fontStretch",be="5",bf="foreGroundFill",bg="fillType",bh="solid",bi="color",bj=0xFF333333,bk="opacity",bl=1,bm="fontSize",bn="13px",bo="underline",bp="horizontalAlignment",bq="center",br="lineSpacing",bs="location",bt="x",bu=0,bv="y",bw="size",bx="width",by="height",bz="visible",bA="limbo",bB="baseStyle",bC="fill",bD=0xFFFFFFFF,bE="borderFill",bF=0xFF797979,bG="borderWidth",bH="1",bI="linePattern",bJ="cornerRadius",bK="verticalAlignment",bL="middle",bM="paddingLeft",bN="2",bO="paddingTop",bP="paddingRight",bQ="paddingBottom",bR="image",bS="stateStyles",bT="rotation",bU="outerShadow",bV="on",bW="offsetX",bX=5,bY="offsetY",bZ="blurRadius",ca="r",cb=0,cc="g",cd="b",ce="a",cf=0.349019607843137,cg="innerShadow",ch="textShadow",ci=0.647058823529412,cj="characterSpacing",ck="letterCase",cl="none",cm="strikethrough",cn="imageFilter",co="viewOverride",cp="19e82109f102476f933582835c373474",cq="customStyles",cr="shape",cs="40519e9ec4264601bfb12c514e4f4867",ct="box_1",cu="4b7bfc596114427989e10bb0b557d0ce",cv="75a91ee5b9d042cfa01b8d565fe289c0",cw=0xFF000000,cx="primary_button",cy="cd64754845384de3872fb4a066432c1f",cz=0xFF169BD5,cA="heading_1",cB="1111111151944dfba49f67fd55eb1f88",cC="700",cD="32px",cE=0xFFFFFF,cF="left",cG="top",cH="heading_2",cI="b3a15c9ddde04520be40f94c8168891e",cJ="24px",cK="heading_3",cL="8c7a4c5ad69a4369a5f7788171ac0b32",cM="18px",cN="heading_4",cO="e995c891077945c89c0b5fe110d15a0b",cP="14px",cQ="heading_5",cR="386b19ef4be143bd9b6c392ded969f89",cS="heading_6",cT="fc3b9a13b5574fa098ef0a1db9aac861",cU="10px",cV="label",cW="2285372321d148ec80932747449c36c9",cX="paragraph",cY="4988d43d80b44008a4a415096f1632af",cZ="line",da="619b2148ccc1497285562264d51992f9",db="text_field",dc="44157808f2934100b68f2394a66b2bba",dd="text_area",de="42ee17691d13435b8256d8d0a814778f",df="_流程形状",dg="df01900e3c4e43f284bafec04b0864c4",dh="linearGradient",di="startPoint",dj=0.5,dk="endPoint",dl="stops",dm="offset",dn=0xFFF2F2F2,dp=0xFFE4E4E4,dq="form_hint",dr="4889d666e8ad4c5e81e59863039a5cc0",ds=0xFF999999,dt="form_disabled",du="9bd0236217a94d89b0314c8c7fc75f16",dv=0xFFF0F0F0,dw="horizontal_line",dx="804e3bae9fce4087aeede56c15b6e773",dy="shape1",dz="1adcbdd9c2224181b5c4b89da367f9fe",dA=0xFF199ED8,dB=10,dC=0.313725490196078,dD="line1",dE="b6c1b8c358ea4ac68f10af9fbbf71f93",dF="icon",dG="26c731cb771b44a88eb8b6e97e78c80e",dH="radio_button",dI="1b88caaf1e8e4212a646ddc230538947",dJ="'汉仪全唐诗简'",dK="table_cell",dL="e32791af1d1f48589fa7bb76dd190e14",dM="12px",dN="sticky_4",dO="874d265363934ac3b3d2ebd97a264a03",dP=0xFFEF5AA1,dQ=0.2,dR="10",dS="marker",dT="a8e305fe5c2a462b995b0021a9ba82b9",dU=0xFF009DD9,dV=0.698039215686274,dW="checkbox",dX="dff2c6b58de143d9a89283ff421c1bb7",dY="flow_shape",dZ="caddf88798f04a469d3bb16589ed2a5d",ea="duplicateStyles",eb="16bfa42d5df7441bb3dd53190239119c",ec="e985014e4f804020b34531b5b0294bb4",ed="e762b3e9d14a4baa84764f96f44752d0";
return _creator();
})());

File diff suppressed because one or more lines are too long

@ -767,9 +767,6 @@
-moz-box-shadow:none;
-webkit-box-shadow:none;
box-shadow:none;
font-family:'雅痞-简 常规体', '雅痞-简';
font-weight:400;
font-style:normal;
font-size:16px;
}
#u126 {
@ -780,9 +777,7 @@
width:855px;
height:78px;
display:flex;
font-family:'雅痞-简 常规体', '雅痞-简';
font-weight:400;
font-style:normal;
font-family:'雅痞-简 Bold', '雅痞-简 常规体', '雅痞-简';
font-size:16px;
}
#u126 .text {

@ -0,0 +1,62 @@
function checking() {
console.log("enter checking!!!");
let parts=new Array("CPU链接","主板链接","显卡链接", "内存链接", "固态硬盘链接", "机械硬盘链接", "CPU散热器链接", "电源链接", "机箱链接");
let undone = new Array();
let count = 0;
let checkdict = {
"l1" : "", // CPU链接
"l2" : "", // 主板链接
"l3" : "", // 显卡链接
"l4" : "", // 内存链接
"l5" : "", // 固态硬盘链接
"l6" : "", // 机械硬盘链接
"l7" : "", // CPU散热器链接
"l8" : "", // 电源链接
"l9" : "" // 机箱链接
}
for (let i=0;i<8;i++)
{
let inputid = "u"+(35+i*10)+"_input";
let temp = document.getElementById(inputid).value;
if (temp === "")
{
undone[count] = i;
count++;
}
else
checkdict["l"+(i+1)] = temp;
}
checkdict["l9"] = document.getElementById('u116_input').value;
if (checkdict["l9"] === "")
{
undone[count] = 8;
count++;
}
let missparts = "";
if (count>0)
{
for (let j=0;j<count;j++)
missparts += parts[undone[j]]+" ";
alert(missparts+"没有填写,请先填写完");
return false;
}
if (confirm("已填写完,是否确认提交?")===true)
{
console.log(checkdict);
$.ajax({
type : "post",
url : "controllers/checkController.php",
data : checkdict,
dataType : 'json',
success : function (result){
if (result['flag'] === 1)
window.location.href = "checksuc.html";
else{
window.sessionStorage.setItem("checkResult", JSON.stringify(result));
window.location.href = "checkfail.html";
}
}
});
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -0,0 +1,11 @@
function show_error() {
console.log("enter show_error !!");
let checkResult_string = window.sessionStorage.getItem("checkResult")
let checkResult = JSON.parse(checkResult_string);
let errorInfo = `<p><span style="text-decoration:none;">》检测不成功原因《</span></p>`;
errorInfo += '<p><span style="text-decoration:none;">';
for (const error of checkResult["errorList"])
errorInfo += `${error}; `;
errorInfo += '</span></p>'
document.getElementById("u1039_text").innerHTML = errorInfo;
}

@ -17,7 +17,7 @@
position:absolute;
z-index:0;
}
#u1034 {
#u1023 {
position:fixed;
left:50%;
margin-left:-753px;
@ -25,7 +25,7 @@
width:1506px;
height:1px;
}
#u1034_state0 {
#u1023_state0 {
border-width:0px;
position:absolute;
left:0px;
@ -44,7 +44,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u1034_state0_content {
#u1023_state0_content {
border-width:0px;
position:absolute;
left:0px;
@ -52,7 +52,7 @@
width:1px;
height:1px;
}
#u1035_div {
#u1024_div {
border-width:0px;
position:absolute;
left:0px;
@ -67,7 +67,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u1035 {
#u1024 {
border-width:0px;
position:absolute;
left:540px;
@ -76,20 +76,20 @@
height:100px;
display:flex;
}
#u1035 .text {
#u1024 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1035_text {
#u1024_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u1034_state1 {
#u1023_state1 {
border-width:0px;
position:absolute;
left:0px;
@ -109,7 +109,7 @@
box-shadow:none;
visibility:hidden;
}
#u1034_state1_content {
#u1023_state1_content {
border-width:0px;
position:absolute;
left:0px;
@ -117,7 +117,7 @@
width:1px;
height:1px;
}
#u1036_div {
#u1025_div {
border-width:0px;
position:absolute;
left:0px;
@ -132,7 +132,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u1036 {
#u1025 {
border-width:0px;
position:absolute;
left:510px;
@ -141,20 +141,20 @@
height:100px;
display:flex;
}
#u1036 .text {
#u1025 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1036_text {
#u1025_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u1037_img {
#u1026_img {
border-width:0px;
position:absolute;
left:-1px;
@ -162,7 +162,7 @@
width:188px;
height:47px;
}
#u1037 {
#u1026 {
border-width:0px;
position:absolute;
left:1308px;
@ -177,27 +177,27 @@
color:#FFFFFF;
line-height:24px;
}
#u1037 .text {
#u1026 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1037_img.mouseOver {
#u1026_img.mouseOver {
}
#u1037.mouseOver {
#u1026.mouseOver {
}
#u1037_img.mouseDown {
#u1026_img.mouseDown {
}
#u1037.mouseDown {
#u1026.mouseDown {
}
#u1037_text {
#u1026_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u1038_img {
#u1027_img {
border-width:0px;
position:absolute;
left:0px;
@ -205,7 +205,7 @@
width:42px;
height:42px;
}
#u1038 {
#u1027 {
border-width:0px;
position:absolute;
left:7px;
@ -214,20 +214,20 @@
height:42px;
display:flex;
}
#u1038 .text {
#u1027 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1038_text {
#u1027_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u1039 {
#u1028 {
border-width:0px;
position:absolute;
left:7px;
@ -237,7 +237,7 @@
overflow:hidden;
background-image:url('../../resources/images/transparent.gif');
}
#u1040 {
#u1029 {
position:fixed;
left:50%;
margin-left:-754px;
@ -245,7 +245,7 @@
width:1508px;
height:63px;
}
#u1040_state0 {
#u1029_state0 {
border-width:0px;
position:absolute;
left:0px;
@ -264,7 +264,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u1040_state0_content {
#u1029_state0_content {
border-width:0px;
position:absolute;
left:0px;
@ -272,7 +272,7 @@
width:1px;
height:1px;
}
#u1041_div {
#u1030_div {
border-width:0px;
position:absolute;
left:0px;
@ -292,7 +292,7 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u1041 {
#u1030 {
border-width:0px;
position:absolute;
left:1402px;
@ -306,14 +306,14 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u1041 .text {
#u1030 .text {
position:absolute;
align-self:center;
padding:0px 15px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u1041_div.mouseOver {
#u1030_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -333,14 +333,14 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u1041.mouseOver {
#u1030.mouseOver {
}
#u1041_text {
#u1030_text {
border-width:0px;
white-space:nowrap;
text-transform:none;
}
#u1042_div {
#u1031_div {
border-width:0px;
position:absolute;
left:0px;
@ -360,7 +360,7 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u1042 {
#u1031 {
border-width:0px;
position:absolute;
left:1256px;
@ -374,14 +374,14 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u1042 .text {
#u1031 .text {
position:absolute;
align-self:center;
padding:0px 15px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u1042_div.mouseOver {
#u1031_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -401,14 +401,14 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u1042.mouseOver {
#u1031.mouseOver {
}
#u1042_text {
#u1031_text {
border-width:0px;
white-space:nowrap;
text-transform:none;
}
#u1043_div {
#u1032_div {
border-width:0px;
position:absolute;
left:0px;
@ -429,7 +429,7 @@
color:rgba(34, 34, 34, 0.8);
line-height:20px;
}
#u1043 {
#u1032 {
border-width:0px;
position:absolute;
left:1328px;
@ -444,14 +444,14 @@
color:rgba(34, 34, 34, 0.8);
line-height:20px;
}
#u1043 .text {
#u1032 .text {
position:absolute;
align-self:center;
padding:0px 15px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u1043_div.mouseOver {
#u1032_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -472,14 +472,14 @@
color:rgba(34, 34, 34, 0.8);
line-height:20px;
}
#u1043.mouseOver {
#u1032.mouseOver {
}
#u1043_text {
#u1032_text {
border-width:0px;
white-space:nowrap;
text-transform:none;
}
#u1044_div {
#u1033_div {
border-width:0px;
position:absolute;
left:0px;
@ -499,7 +499,7 @@
font-size:23px;
color:rgba(0, 0, 0, 0.898039215686275);
}
#u1044 {
#u1033 {
border-width:0px;
position:absolute;
left:3px;
@ -513,14 +513,14 @@
font-size:23px;
color:rgba(0, 0, 0, 0.898039215686275);
}
#u1044 .text {
#u1033 .text {
position:absolute;
align-self:flex-start;
padding:0px 0px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u1044_div.mouseOver {
#u1033_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -540,14 +540,14 @@
font-size:23px;
color:rgba(0, 0, 0, 0.898039215686275);
}
#u1044.mouseOver {
#u1033.mouseOver {
}
#u1044_text {
#u1033_text {
border-width:0px;
white-space:nowrap;
text-transform:none;
}
#u1045_img {
#u1034_img {
border-width:0px;
position:absolute;
left:0px;
@ -555,7 +555,7 @@
width:1481px;
height:2px;
}
#u1045 {
#u1034 {
border-width:0px;
position:absolute;
left:13px;
@ -566,20 +566,20 @@
opacity:0.3;
color:rgba(211, 207, 213, 0.36078431372549);
}
#u1045 .text {
#u1034 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1045_text {
#u1034_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u1046_div {
#u1035_div {
border-width:0px;
position:absolute;
left:0px;
@ -599,7 +599,7 @@
font-size:16px;
color:rgba(34, 34, 34, 0.8);
}
#u1046 {
#u1035 {
border-width:0px;
position:absolute;
left:1384px;
@ -613,14 +613,14 @@
font-size:16px;
color:rgba(34, 34, 34, 0.8);
}
#u1046 .text {
#u1035 .text {
position:absolute;
align-self:center;
padding:0px 15px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u1046_div.mouseOver {
#u1035_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -640,14 +640,14 @@
font-size:16px;
color:rgba(34, 34, 34, 0.8);
}
#u1046.mouseOver {
#u1035.mouseOver {
}
#u1046_text {
#u1035_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u1047_div {
#u1036_div {
border-width:0px;
position:absolute;
left:0px;
@ -667,7 +667,7 @@
font-size:12px;
color:#2A2A2A;
}
#u1047 {
#u1036 {
border-width:0px;
position:absolute;
left:14px;
@ -681,19 +681,19 @@
font-size:12px;
color:#2A2A2A;
}
#u1047 .text {
#u1036 .text {
position:absolute;
align-self:flex-start;
padding:0px 0px 0px 0px;
box-sizing:border-box;
width:100%;
}
#u1047_text {
#u1036_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u1048_div {
#u1037_div {
border-width:0px;
position:absolute;
left:0px;
@ -710,12 +710,12 @@
-moz-box-shadow:6px 8px 5px rgba(0, 0, 0, 0.349019607843137);
-webkit-box-shadow:6px 8px 5px rgba(0, 0, 0, 0.349019607843137);
box-shadow:6px 8px 5px rgba(0, 0, 0, 0.349019607843137);
font-family:'汉仪全唐诗简';
font-weight:400;
font-style:normal;
font-size:28px;
font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';
font-weight: 700;
font-style: normal;
font-size: 28px;
}
#u1048 {
#u1037 {
border-width:0px;
position:absolute;
left:522px;
@ -723,24 +723,24 @@
width:466px;
height:65px;
display:flex;
font-family:'汉仪全唐诗简';
font-weight:400;
font-style:normal;
font-size:28px;
font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';
font-weight: 700;
font-style: normal;
font-size: 28px;
}
#u1048 .text {
#u1037 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1048_text {
#u1037_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u1049_div {
#u1038_div {
border-width:0px;
position:absolute;
left:0px;
@ -758,7 +758,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u1049 {
#u1038 {
border-width:0px;
position:absolute;
left:455px;
@ -767,20 +767,20 @@
height:260px;
display:flex;
}
#u1049 .text {
#u1038 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1049_text {
#u1038_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u1050_div {
#u1039_div {
border-width:0px;
position:absolute;
left:0px;
@ -796,7 +796,7 @@
box-shadow:none;
font-size:25px;
}
#u1050 {
#u1039 {
border-width:0px;
position:absolute;
left:483px;
@ -804,21 +804,26 @@
width:524px;
height:232px;
display:flex;
font-size:25px;
text-align: center;
font-family: '雅痞-简 常规体', '雅痞-简';
font-weight: 500;
font-style: normal;
font-size: 24px;
color: #F44C6B;
}
#u1050 .text {
#u1039 .text {
position:absolute;
align-self:flex-start;
padding:0px 0px 0px 0px;
box-sizing:border-box;
width:100%;
}
#u1050_text {
#u1039_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u1051_div {
#u1040_div {
border-width:0px;
position:absolute;
left:0px;
@ -840,7 +845,7 @@
color:#FFFFFF;
line-height:24px;
}
#u1051 {
#u1040 {
border-width:0px;
position:absolute;
left:948px;
@ -852,14 +857,14 @@
color:#FFFFFF;
line-height:24px;
}
#u1051 .text {
#u1040 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1051_div.mouseOver {
#u1040_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -880,9 +885,9 @@
color:#FFFFFF;
line-height:24px;
}
#u1051.mouseOver {
#u1040.mouseOver {
}
#u1051_div.mouseDown {
#u1040_div.mouseDown {
border-width:0px;
position:absolute;
left:0px;
@ -903,9 +908,9 @@
color:#FFFFFF;
line-height:24px;
}
#u1051.mouseDown {
#u1040.mouseDown {
}
#u1051_text {
#u1040_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;

File diff suppressed because one or more lines are too long

@ -17,7 +17,7 @@
position:absolute;
z-index:0;
}
#u1018 {
#u1007 {
position:fixed;
left:50%;
margin-left:-753px;
@ -25,7 +25,7 @@
width:1506px;
height:1px;
}
#u1018_state0 {
#u1007_state0 {
border-width:0px;
position:absolute;
left:0px;
@ -44,7 +44,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u1018_state0_content {
#u1007_state0_content {
border-width:0px;
position:absolute;
left:0px;
@ -52,7 +52,7 @@
width:1px;
height:1px;
}
#u1019_div {
#u1008_div {
border-width:0px;
position:absolute;
left:0px;
@ -67,7 +67,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u1019 {
#u1008 {
border-width:0px;
position:absolute;
left:540px;
@ -76,20 +76,20 @@
height:100px;
display:flex;
}
#u1019 .text {
#u1008 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1019_text {
#u1008_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u1018_state1 {
#u1007_state1 {
border-width:0px;
position:absolute;
left:0px;
@ -109,7 +109,7 @@
box-shadow:none;
visibility:hidden;
}
#u1018_state1_content {
#u1007_state1_content {
border-width:0px;
position:absolute;
left:0px;
@ -117,7 +117,7 @@
width:1px;
height:1px;
}
#u1020_div {
#u1009_div {
border-width:0px;
position:absolute;
left:0px;
@ -132,7 +132,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u1020 {
#u1009 {
border-width:0px;
position:absolute;
left:510px;
@ -141,20 +141,20 @@
height:100px;
display:flex;
}
#u1020 .text {
#u1009 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1020_text {
#u1009_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u1021_img {
#u1010_img {
border-width:0px;
position:absolute;
left:-1px;
@ -162,7 +162,7 @@
width:188px;
height:47px;
}
#u1021 {
#u1010 {
border-width:0px;
position:absolute;
left:1308px;
@ -177,27 +177,27 @@
color:#FFFFFF;
line-height:24px;
}
#u1021 .text {
#u1010 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1021_img.mouseOver {
#u1010_img.mouseOver {
}
#u1021.mouseOver {
#u1010.mouseOver {
}
#u1021_img.mouseDown {
#u1010_img.mouseDown {
}
#u1021.mouseDown {
#u1010.mouseDown {
}
#u1021_text {
#u1010_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u1022_img {
#u1011_img {
border-width:0px;
position:absolute;
left:0px;
@ -205,7 +205,7 @@
width:42px;
height:42px;
}
#u1022 {
#u1011 {
border-width:0px;
position:absolute;
left:7px;
@ -214,20 +214,20 @@
height:42px;
display:flex;
}
#u1022 .text {
#u1011 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1022_text {
#u1011_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u1023 {
#u1012 {
border-width:0px;
position:absolute;
left:7px;
@ -237,7 +237,7 @@
overflow:hidden;
background-image:url('../../resources/images/transparent.gif');
}
#u1024 {
#u1013 {
position:fixed;
left:50%;
margin-left:-754px;
@ -245,7 +245,7 @@
width:1508px;
height:63px;
}
#u1024_state0 {
#u1013_state0 {
border-width:0px;
position:absolute;
left:0px;
@ -264,7 +264,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u1024_state0_content {
#u1013_state0_content {
border-width:0px;
position:absolute;
left:0px;
@ -272,7 +272,7 @@
width:1px;
height:1px;
}
#u1025_div {
#u1014_div {
border-width:0px;
position:absolute;
left:0px;
@ -292,7 +292,7 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u1025 {
#u1014 {
border-width:0px;
position:absolute;
left:1402px;
@ -306,14 +306,14 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u1025 .text {
#u1014 .text {
position:absolute;
align-self:center;
padding:0px 15px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u1025_div.mouseOver {
#u1014_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -333,14 +333,14 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u1025.mouseOver {
#u1014.mouseOver {
}
#u1025_text {
#u1014_text {
border-width:0px;
white-space:nowrap;
text-transform:none;
}
#u1026_div {
#u1015_div {
border-width:0px;
position:absolute;
left:0px;
@ -360,7 +360,7 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u1026 {
#u1015 {
border-width:0px;
position:absolute;
left:1256px;
@ -374,14 +374,14 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u1026 .text {
#u1015 .text {
position:absolute;
align-self:center;
padding:0px 15px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u1026_div.mouseOver {
#u1015_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -401,14 +401,14 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u1026.mouseOver {
#u1015.mouseOver {
}
#u1026_text {
#u1015_text {
border-width:0px;
white-space:nowrap;
text-transform:none;
}
#u1027_div {
#u1016_div {
border-width:0px;
position:absolute;
left:0px;
@ -429,7 +429,7 @@
color:rgba(34, 34, 34, 0.8);
line-height:20px;
}
#u1027 {
#u1016 {
border-width:0px;
position:absolute;
left:1328px;
@ -444,14 +444,14 @@
color:rgba(34, 34, 34, 0.8);
line-height:20px;
}
#u1027 .text {
#u1016 .text {
position:absolute;
align-self:center;
padding:0px 15px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u1027_div.mouseOver {
#u1016_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -472,14 +472,14 @@
color:rgba(34, 34, 34, 0.8);
line-height:20px;
}
#u1027.mouseOver {
#u1016.mouseOver {
}
#u1027_text {
#u1016_text {
border-width:0px;
white-space:nowrap;
text-transform:none;
}
#u1028_div {
#u1017_div {
border-width:0px;
position:absolute;
left:0px;
@ -499,7 +499,7 @@
font-size:23px;
color:rgba(0, 0, 0, 0.898039215686275);
}
#u1028 {
#u1017 {
border-width:0px;
position:absolute;
left:3px;
@ -513,14 +513,14 @@
font-size:23px;
color:rgba(0, 0, 0, 0.898039215686275);
}
#u1028 .text {
#u1017 .text {
position:absolute;
align-self:flex-start;
padding:0px 0px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u1028_div.mouseOver {
#u1017_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -540,14 +540,14 @@
font-size:23px;
color:rgba(0, 0, 0, 0.898039215686275);
}
#u1028.mouseOver {
#u1017.mouseOver {
}
#u1028_text {
#u1017_text {
border-width:0px;
white-space:nowrap;
text-transform:none;
}
#u1029_img {
#u1018_img {
border-width:0px;
position:absolute;
left:0px;
@ -555,7 +555,7 @@
width:1481px;
height:2px;
}
#u1029 {
#u1018 {
border-width:0px;
position:absolute;
left:13px;
@ -566,20 +566,20 @@
opacity:0.3;
color:rgba(211, 207, 213, 0.36078431372549);
}
#u1029 .text {
#u1018 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1029_text {
#u1018_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u1030_div {
#u1019_div {
border-width:0px;
position:absolute;
left:0px;
@ -599,7 +599,7 @@
font-size:16px;
color:rgba(34, 34, 34, 0.8);
}
#u1030 {
#u1019 {
border-width:0px;
position:absolute;
left:1384px;
@ -613,14 +613,14 @@
font-size:16px;
color:rgba(34, 34, 34, 0.8);
}
#u1030 .text {
#u1019 .text {
position:absolute;
align-self:center;
padding:0px 15px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u1030_div.mouseOver {
#u1019_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -640,14 +640,14 @@
font-size:16px;
color:rgba(34, 34, 34, 0.8);
}
#u1030.mouseOver {
#u1019.mouseOver {
}
#u1030_text {
#u1019_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u1031_div {
#u1020_div {
border-width:0px;
position:absolute;
left:0px;
@ -667,7 +667,7 @@
font-size:12px;
color:#2A2A2A;
}
#u1031 {
#u1020 {
border-width:0px;
position:absolute;
left:14px;
@ -681,19 +681,19 @@
font-size:12px;
color:#2A2A2A;
}
#u1031 .text {
#u1020 .text {
position:absolute;
align-self:flex-start;
padding:0px 0px 0px 0px;
box-sizing:border-box;
width:100%;
}
#u1031_text {
#u1020_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u1032_div {
#u1021_div {
border-width:0px;
position:absolute;
left:0px;
@ -715,7 +715,7 @@
font-style:normal;
font-size:28px;
}
#u1032 {
#u1021 {
border-width:0px;
position:absolute;
left:570px;
@ -728,19 +728,19 @@
font-style:normal;
font-size:28px;
}
#u1032 .text {
#u1021 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1032_text {
#u1021_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u1033_div {
#u1022_div {
border-width:0px;
position:absolute;
left:0px;
@ -762,7 +762,7 @@
color:#FFFFFF;
line-height:24px;
}
#u1033 {
#u1022 {
border-width:0px;
position:absolute;
left:703px;
@ -774,14 +774,14 @@
color:#FFFFFF;
line-height:24px;
}
#u1033 .text {
#u1022 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u1033_div.mouseOver {
#u1022_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -802,9 +802,9 @@
color:#FFFFFF;
line-height:24px;
}
#u1033.mouseOver {
#u1022.mouseOver {
}
#u1033_div.mouseDown {
#u1022_div.mouseDown {
border-width:0px;
position:absolute;
left:0px;
@ -825,9 +825,9 @@
color:#FFFFFF;
line-height:24px;
}
#u1033.mouseDown {
#u1022.mouseDown {
}
#u1033_text {
#u1022_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,7 +0,0 @@
$axure.loadCurrentPage(
(function() {
var _ = function() { var r={},a=arguments; for(var i=0; i<a.length; i+=2) r[a[i]]=a[i+1]; return r; }
var _creator = function() { return _(b,c,d,e,f,_(g,h,i,_(j,k,l,k)),m,[],n,_(h,o),p,[q,r,s,t,u,v,w,x,y],z,_(A,B,C,D,g,E,F,_(),G,[],H,_(I,J,K,L,M,_(N,O,P,Q),R,null,S,T,T,U,V,W,null,X,Y,Z,ba,bb,bc,bd,Y,be,bf,_(N,O,P,bg),bh,Y,bi,bj,_(bk,bl,bm,bn,bo,bn,bp,bn,P,_(bq,br,bs,br,bt,br,bu,bv)),i,_(j,k,l,k)),bw,_(),bx,_(),by,_(bz,[])),bA,_(),bB,_());};
var b="url",c="qresult.html",d="generationDate",e=new Date(1624977506372.18),f="defaultAdaptiveView",g="name",h="",i="size",j="width",k=0,l="height",m="adaptiveViews",n="sketchKeys",o="s0",p="variables",q="OnLoadVariable",r="count1",s="count2",t="count3",u="count4",v="top1",w="top2",x="top3",y="check",z="page",A="packageId",B="73d1af399c414af4bf97b8b6b593b6d4",C="type",D="Axure:Page",E="Qresult",F="notes",G="annotations",H="style",I="baseStyle",J="627587b6038d43cca051c114ac41ad32",K="pageAlignment",L="center",M="fill",N="fillType",O="solid",P="color",Q=0xFFF7F7F7,R="image",S="imageAlignment",T="near",U="imageRepeat",V="auto",W="favicon",X="sketchFactor",Y="0",Z="colorStyle",ba="appliedColor",bb="fontName",bc="Applied Font",bd="borderWidth",be="borderVisibility",bf="borderFill",bg=0xFF797979,bh="cornerRadius",bi="cornerVisibility",bj="outerShadow",bk="on",bl=false,bm="offsetX",bn=5,bo="offsetY",bp="blurRadius",bq="r",br=0,bs="g",bt="b",bu="a",bv=0.349019607843137,bw="adaptiveStyles",bx="interactionMap",by="diagram",bz="objects",bA="masters",bB="objectPaths";
return _creator();
})());

@ -1,19 +0,0 @@
body {
margin:0px;
background-color:rgba(247, 247, 247, 1);
background-image:none;
position:relative;
left:0px;
width:10px;
margin-left:auto;
margin-right:auto;
text-align:left;
}
.form_sketch {
border-color:transparent;
background-color:transparent;
}
#base {
position:absolute;
z-index:0;
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,9 @@
function showError() {
console.log("enter show_error !!");
let recResult_string = window.sessionStorage.getItem("recommendResult")
let recResult = JSON.parse(recResult_string);
let errorInfo = "";
for (const error of recResult["errorList"])
errorInfo += `<p><span style="text-decoration:none;">${error}</span></p>`;
document.getElementById("u21_text").innerHTML = errorInfo;
}

@ -17,7 +17,7 @@
position:absolute;
z-index:0;
}
#u481 {
#u0 {
position:fixed;
left:50%;
margin-left:-753px;
@ -25,7 +25,7 @@
width:1506px;
height:1px;
}
#u481_state0 {
#u0_state0 {
border-width:0px;
position:absolute;
left:0px;
@ -44,7 +44,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u481_state0_content {
#u0_state0_content {
border-width:0px;
position:absolute;
left:0px;
@ -52,7 +52,7 @@
width:1px;
height:1px;
}
#u482_div {
#u1_div {
border-width:0px;
position:absolute;
left:0px;
@ -67,7 +67,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u482 {
#u1 {
border-width:0px;
position:absolute;
left:540px;
@ -76,20 +76,20 @@
height:100px;
display:flex;
}
#u482 .text {
#u1 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u482_text {
#u1_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u481_state1 {
#u0_state1 {
border-width:0px;
position:absolute;
left:0px;
@ -109,7 +109,7 @@
box-shadow:none;
visibility:hidden;
}
#u481_state1_content {
#u0_state1_content {
border-width:0px;
position:absolute;
left:0px;
@ -117,7 +117,7 @@
width:1px;
height:1px;
}
#u483_div {
#u2_div {
border-width:0px;
position:absolute;
left:0px;
@ -132,7 +132,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u483 {
#u2 {
border-width:0px;
position:absolute;
left:510px;
@ -141,20 +141,20 @@
height:100px;
display:flex;
}
#u483 .text {
#u2 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u483_text {
#u2_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u484_img {
#u3_img {
border-width:0px;
position:absolute;
left:-1px;
@ -162,7 +162,7 @@
width:188px;
height:47px;
}
#u484 {
#u3 {
border-width:0px;
position:absolute;
left:1308px;
@ -177,27 +177,27 @@
color:#FFFFFF;
line-height:24px;
}
#u484 .text {
#u3 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u484_img.mouseOver {
#u3_img.mouseOver {
}
#u484.mouseOver {
#u3.mouseOver {
}
#u484_img.mouseDown {
#u3_img.mouseDown {
}
#u484.mouseDown {
#u3.mouseDown {
}
#u484_text {
#u3_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u485_img {
#u4_img {
border-width:0px;
position:absolute;
left:0px;
@ -205,7 +205,7 @@
width:42px;
height:42px;
}
#u485 {
#u4 {
border-width:0px;
position:absolute;
left:7px;
@ -214,20 +214,20 @@
height:42px;
display:flex;
}
#u485 .text {
#u4 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u485_text {
#u4_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u486 {
#u5 {
border-width:0px;
position:absolute;
left:7px;
@ -237,7 +237,7 @@
overflow:hidden;
background-image:url('../../resources/images/transparent.gif');
}
#u487 {
#u6 {
position:fixed;
left:50%;
margin-left:-754px;
@ -245,7 +245,7 @@
width:1508px;
height:63px;
}
#u487_state0 {
#u6_state0 {
border-width:0px;
position:absolute;
left:0px;
@ -264,7 +264,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u487_state0_content {
#u6_state0_content {
border-width:0px;
position:absolute;
left:0px;
@ -272,7 +272,7 @@
width:1px;
height:1px;
}
#u488_div {
#u7_div {
border-width:0px;
position:absolute;
left:0px;
@ -292,7 +292,7 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u488 {
#u7 {
border-width:0px;
position:absolute;
left:1402px;
@ -306,14 +306,14 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u488 .text {
#u7 .text {
position:absolute;
align-self:center;
padding:0px 15px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u488_div.mouseOver {
#u7_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -333,14 +333,14 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u488.mouseOver {
#u7.mouseOver {
}
#u488_text {
#u7_text {
border-width:0px;
white-space:nowrap;
text-transform:none;
}
#u489_div {
#u8_div {
border-width:0px;
position:absolute;
left:0px;
@ -360,7 +360,7 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u489 {
#u8 {
border-width:0px;
position:absolute;
left:1256px;
@ -374,14 +374,14 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u489 .text {
#u8 .text {
position:absolute;
align-self:center;
padding:0px 15px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u489_div.mouseOver {
#u8_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -401,14 +401,14 @@
font-size:15px;
color:rgba(34, 34, 34, 0.8);
}
#u489.mouseOver {
#u8.mouseOver {
}
#u489_text {
#u8_text {
border-width:0px;
white-space:nowrap;
text-transform:none;
}
#u490_div {
#u9_div {
border-width:0px;
position:absolute;
left:0px;
@ -429,7 +429,7 @@
color:rgba(34, 34, 34, 0.8);
line-height:20px;
}
#u490 {
#u9 {
border-width:0px;
position:absolute;
left:1328px;
@ -444,14 +444,14 @@
color:rgba(34, 34, 34, 0.8);
line-height:20px;
}
#u490 .text {
#u9 .text {
position:absolute;
align-self:center;
padding:0px 15px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u490_div.mouseOver {
#u9_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -472,14 +472,14 @@
color:rgba(34, 34, 34, 0.8);
line-height:20px;
}
#u490.mouseOver {
#u9.mouseOver {
}
#u490_text {
#u9_text {
border-width:0px;
white-space:nowrap;
text-transform:none;
}
#u491_div {
#u10_div {
border-width:0px;
position:absolute;
left:0px;
@ -499,7 +499,7 @@
font-size:23px;
color:rgba(0, 0, 0, 0.898039215686275);
}
#u491 {
#u10 {
border-width:0px;
position:absolute;
left:3px;
@ -513,14 +513,14 @@
font-size:23px;
color:rgba(0, 0, 0, 0.898039215686275);
}
#u491 .text {
#u10 .text {
position:absolute;
align-self:flex-start;
padding:0px 0px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u491_div.mouseOver {
#u10_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -540,14 +540,14 @@
font-size:23px;
color:rgba(0, 0, 0, 0.898039215686275);
}
#u491.mouseOver {
#u10.mouseOver {
}
#u491_text {
#u10_text {
border-width:0px;
white-space:nowrap;
text-transform:none;
}
#u492_img {
#u11_img {
border-width:0px;
position:absolute;
left:0px;
@ -555,7 +555,7 @@
width:1481px;
height:2px;
}
#u492 {
#u11 {
border-width:0px;
position:absolute;
left:13px;
@ -566,20 +566,20 @@
opacity:0.3;
color:rgba(211, 207, 213, 0.36078431372549);
}
#u492 .text {
#u11 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u492_text {
#u11_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u493_div {
#u12_div {
border-width:0px;
position:absolute;
left:0px;
@ -599,7 +599,7 @@
font-size:16px;
color:rgba(34, 34, 34, 0.8);
}
#u493 {
#u12 {
border-width:0px;
position:absolute;
left:1384px;
@ -613,14 +613,14 @@
font-size:16px;
color:rgba(34, 34, 34, 0.8);
}
#u493 .text {
#u12 .text {
position:absolute;
align-self:center;
padding:0px 15px 0px 15px;
box-sizing:border-box;
width:100%;
}
#u493_div.mouseOver {
#u12_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -640,14 +640,14 @@
font-size:16px;
color:rgba(34, 34, 34, 0.8);
}
#u493.mouseOver {
#u12.mouseOver {
}
#u493_text {
#u12_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u494_div {
#u13_div {
border-width:0px;
position:absolute;
left:0px;
@ -667,7 +667,7 @@
font-size:12px;
color:#2A2A2A;
}
#u494 {
#u13 {
border-width:0px;
position:absolute;
left:14px;
@ -681,19 +681,19 @@
font-size:12px;
color:#2A2A2A;
}
#u494 .text {
#u13 .text {
position:absolute;
align-self:flex-start;
padding:0px 0px 0px 0px;
box-sizing:border-box;
width:100%;
}
#u494_text {
#u13_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u495_div {
#u14_div {
border-width:0px;
position:absolute;
left:0px;
@ -708,7 +708,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u495 {
#u14 {
border-width:0px;
position:absolute;
left:476px;
@ -717,20 +717,20 @@
height:9px;
display:flex;
}
#u495 .text {
#u14 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u495_text {
#u14_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u496_div {
#u15_div {
border-width:0px;
position:absolute;
left:0px;
@ -750,7 +750,7 @@
font-size:30px;
color:#FFFFFF;
}
#u496 {
#u15 {
border-width:0px;
position:absolute;
left:677px;
@ -764,19 +764,19 @@
font-size:30px;
color:#FFFFFF;
}
#u496 .text {
#u15 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u496_text {
#u15_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u497_div {
#u16_div {
border-width:0px;
position:absolute;
left:0px;
@ -791,7 +791,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u497 {
#u16 {
border-width:0px;
position:absolute;
left:711px;
@ -800,20 +800,20 @@
height:4px;
display:flex;
}
#u497 .text {
#u16 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u497_text {
#u16_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u498_img {
#u17_img {
border-width:0px;
position:absolute;
left:0px;
@ -821,7 +821,7 @@
width:32px;
height:32px;
}
#u498 {
#u17 {
border-width:0px;
position:absolute;
left:1268px;
@ -830,20 +830,20 @@
height:32px;
display:flex;
}
#u498 .text {
#u17 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u498_text {
#u17_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u499_div {
#u18_div {
border-width:0px;
position:absolute;
left:0px;
@ -865,7 +865,7 @@
font-style:normal;
font-size:24px;
}
#u499 {
#u18 {
border-width:0px;
position:absolute;
left:525px;
@ -878,19 +878,19 @@
font-style:normal;
font-size:24px;
}
#u499 .text {
#u18 .text {
position:absolute;
align-self:flex-start;
padding:14px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u499_text {
#u18_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u500_div {
#u19_div {
border-width:0px;
position:absolute;
left:0px;
@ -905,7 +905,7 @@
-webkit-box-shadow:none;
box-shadow:none;
}
#u500 {
#u19 {
border-width:0px;
position:absolute;
left:711px;
@ -914,20 +914,20 @@
height:4px;
display:flex;
}
#u500 .text {
#u19 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u500_text {
#u19_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
visibility:hidden;
}
#u501_div {
#u20_div {
border-width:0px;
position:absolute;
left:0px;
@ -949,7 +949,7 @@
color:#FFFFFF;
line-height:24px;
}
#u501 {
#u20 {
border-width:0px;
position:absolute;
left:1011px;
@ -961,14 +961,14 @@
color:#FFFFFF;
line-height:24px;
}
#u501 .text {
#u20 .text {
position:absolute;
align-self:center;
padding:2px 2px 2px 2px;
box-sizing:border-box;
width:100%;
}
#u501_div.mouseOver {
#u20_div.mouseOver {
border-width:0px;
position:absolute;
left:0px;
@ -989,9 +989,9 @@
color:#FFFFFF;
line-height:24px;
}
#u501.mouseOver {
#u20.mouseOver {
}
#u501_div.mouseDown {
#u20_div.mouseDown {
border-width:0px;
position:absolute;
left:0px;
@ -1012,14 +1012,14 @@
color:#FFFFFF;
line-height:24px;
}
#u501.mouseDown {
#u20.mouseDown {
}
#u501_text {
#u20_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;
}
#u502_div {
#u21_div {
border-width:0px;
position:absolute;
left:0px;
@ -1042,7 +1042,7 @@
font-size:18px;
color:#F44C6B;
}
#u502 {
#u21 {
border-width:0px;
position:absolute;
left:556px;
@ -1056,14 +1056,14 @@
font-size:18px;
color:#F44C6B;
}
#u502 .text {
#u21 .text {
position:absolute;
align-self:center;
padding:2px 10px 2px 10px;
box-sizing:border-box;
width:100%;
}
#u502_text {
#u21_text {
border-width:0px;
word-wrap:break-word;
text-transform:none;

File diff suppressed because one or more lines are too long

@ -0,0 +1,45 @@
function foo() {
console.log("enter foo(result1) !!");
const result_string = window.sessionStorage.getItem("recommendResult")
const result = JSON.parse(result_string);
// const result = {
// "type": 0,
// "flag": 0,
// "count": 1,
// "result": [{
// "CPU": ["AMDR9 3900X", "https://item.jd.com/100006391096.html", 2979],
// "motherboard": ["微星MPG X570 GAMING EDGE WIFI", "https://item.jd.com/100003809901.html", 1499],
// "memory": ["G.SKILLF4-3200C14D-16GTZR", "https://item.jd.com/4353372.html", 1149],
// "SSD": ["西部数据WDS500G1X0E", "https://item.jd.com/100009210509.html", 1049],
// "GPU": ["七彩虹iGame GeForce RTX 3060 Ti Ultra W OC", "https://item.jd.com/100016516560.html", 3599],
// "case": ["先马黑洞", "https://item.jd.com/1842778.html", 299],
// "powerSupply": ["长城G6 GW-ATX650BL", "https://item.jd.com/7299684.html", 599],
// "CPURadiator": ["酷冷至尊RL-SB24-20PK-R1", "https://item.jd.com/4567820.html", 369],
// "HDD": ["西部数据WD1003FZEX", "https://item.jd.com/1018295.html", 529],
// "totalPrice": 12071,
// "hash": "10247302252"
// }]
// }
var recList1 = result["result"][0];
var parts = ["CPU","motherboard", "GPU", "memory", "SSD", "HDD", "powerSupply", "CPURadiator", "case"];
//第一套
for (let a=0;a<9;a++){
let start = 45+a*3;
let name = recList1[parts[a]][0];
let url = recList1[parts[a]][1];
let price = recList1[parts[a]][2];
if (name==="noneed"){
document.getElementById(`u${start}_text`).innerHTML = '<p style="text-decoration: none;" >----------------------------------------</p>';
document.getElementById(`u${start+1}_text`).innerHTML = '----';
}
else{
document.getElementById(`u${start}_text`).innerHTML = `<a href="${url}" style="text-decoration: none;" target="_blank">${name}</a>`;
document.getElementById(`u${start+1}_text`).innerHTML = price;
}
}
document.getElementById("u73_text").innerHTML = recList1["totalPrice"];
let download_1 = $('#u41_text a').eq(0)[0];
download_1.href = "recommendLists/Recommend_"+recList1['hash']+".txt";
download_1.download = "Recommend_1.txt";
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -0,0 +1,77 @@
function foo() {
console.log("enter foo(result2) !!");
const result_string = window.sessionStorage.getItem("recommendResult")
const result = JSON.parse(result_string);
// const result = {
// "type": 0,
// "flag": 0,
// "count": 2,
// "result": [{
// "CPU": ["AMDR9 3900X", "https://item.jd.com/100006391096.html", 2979],
// "motherboard": ["华擎X570M Pro4主板", "https://item.jd.com/100006849176.html", 1599],
// "memory": ["G.SKILLF4-3200C14D-16GTZR", "https://item.jd.com/4353372.html", 1149],
// "SSD": ["创见TranscendJetDrive系列", "https://item.jd.com/48074077937.html", 899],
// "GPU": ["七彩虹iGame GeForce RTX 3060 Ti Ultra W OC", "https://item.jd.com/100016516560.html", 3599],
// "case": ["酷冷至尊MCB-NR400-KGNN-S00", "https://item.jd.com/100004720144.html", 399],
// "powerSupply": ["长城G6 GW-ATX650BL", "https://item.jd.com/7299684.html", 599],
// "CPURadiator": ["酷冷至尊RL-SB24-20PK-R1", "https://item.jd.com/4567820.html", 369],
// "HDD": ["西部数据WD1003FZEX", "https://item.jd.com/1018295.html", 529],
// "totalPrice": 12121,
// "hash": "23153700586"
// }, {
// "CPU": ["AMD锐龙7 5800X 处理器", "https://item.jd.com/100009085723.html", 3199],
// "motherboard": ["华擎X570M Pro4主板", "https://item.jd.com/100006849176.html", 1599],
// "memory": ["威刚龙耀D60G DDR4 3600 32G(16Gx2)", "https://item.jd.com/100012134654.html", 1299],
// "SSD": ["创见TranscendJetDrive系列", "https://item.jd.com/48074077946.html", 1399],
// "GPU": ["影驰影驰GalaxyGeForce RTX3070 黑将 OC N卡/电竞专业游戏显卡", "https://item.jd.com/100008979421.html", 3999],
// "case": ["爱国者爱国者aigoYOGO MIX 钛灰色 游戏药丸 双面钢化玻璃MINI铝制电脑机箱", "https://item.jd.com/100007397053.html", 499],
// "powerSupply": ["酷冷至尊MPY-6501-AFAAGV", "https://item.jd.com/100002748170.html", 749],
// "CPURadiator": ["酷冷至尊RL-SB24-20PK-R1", "https://item.jd.com/4567820.html", 369],
// "HDD": ["西部数据WD10EZEX", "https://item.jd.com/675971.html", 278],
// "totalPrice": 13390,
// "hash": "11098232490"
// }]
// }
var recList1 = result["result"][0];
var recList2 = result["result"][1];
var parts = ["CPU","motherboard", "GPU", "memory", "SSD", "HDD", "powerSupply", "CPURadiator", "case"];
//第一套
for (let a=0;a<9;a++){
let start = 98+a*3;
let name = recList1[parts[a]][0];
let url = recList1[parts[a]][1];
let price = recList1[parts[a]][2];
if (name==="noneed"){
document.getElementById(`u${start}_text`).innerHTML = '<p style="text-decoration: none;" >----------------------------------------</p>';
document.getElementById(`u${start+1}_text`).innerHTML = '----';
}
else {
document.getElementById(`u${start}_text`).innerHTML = `<a href="${url}" style="text-decoration: none;" target="_blank">${name}</a>`;
document.getElementById(`u${start + 1}_text`).innerHTML = price;
}
}
document.getElementById("u126_text").innerHTML = recList1["totalPrice"];
let download_1 = $('#u94_text a').eq(0)[0];
download_1.href = "recommendLists/Recommend_"+recList1['hash']+".txt";
download_1.download = "Recommend_1.txt";
//第二套:
for (let b=0;b<9;b++){
let start = 131+b*3;
let name = recList2[parts[b]][0];
let url = recList2[parts[b]][1];
let price = recList2[parts[b]][2];
if (name==="noneed"){
document.getElementById(`u${start}_text`).innerHTML = '<p style="text-decoration: none;" >----------------------------------------</p>';
document.getElementById(`u${start+1}_text`).innerHTML = '----';
}
else {
document.getElementById(`u${start}_text`).innerHTML = `<a href="${url}" style="text-decoration: none;" target="_blank">${name}</a>`;
document.getElementById(`u${start + 1}_text`).innerHTML = price;
}
}
document.getElementById("u159_text").innerHTML = recList2["totalPrice"];
let download_2 = $('#u127_text a').eq(0)[0];
download_2.href = "recommendLists/Recommend_"+recList2['hash']+".txt";
download_2.download = "Recommend_2.txt";
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -0,0 +1,67 @@
function foo() {
console.log("enter foo !!");
const result_string = window.sessionStorage.getItem("recommendResult")
const result = JSON.parse(result_string);
var recList1 = result["result"][0];
var recList2 = result["result"][1];
var recList3 = result["result"][2];
var parts = ["CPU","motherboard", "GPU", "memory", "SSD", "HDD", "powerSupply", "CPURadiator", "case"];
//第一套
for (let a=0;a<9;a++){
let start = 662+a*3;
let name = recList1[parts[a]][0];
let url = recList1[parts[a]][1];
let price = recList1[parts[a]][2];
if (name==="noneed"){
document.getElementById(`u${start}_text`).innerHTML = '<p style="text-decoration: none;" >----------------------------------------</p>';
document.getElementById(`u${start+1}_text`).innerHTML = '----';
}
else{
document.getElementById(`u${start}_text`).innerHTML = `<a href="${url}" style="text-decoration: none;" target="_blank">${name}</a>`;
document.getElementById(`u${start+1}_text`).innerHTML = price;
}
}
document.getElementById("u690_text").innerHTML = recList1["totalPrice"];
let download_1 = $('#u656_text a').eq(0)[0];
download_1.href = "recommendLists/Recommend_"+recList1['hash']+".txt";
download_1.download = "Recommend_1.txt";
//第二套:
for (let b=0;b<9;b++){
let start = 697+b*3;
let name = recList2[parts[b]][0];
let url = recList2[parts[b]][1];
let price = recList2[parts[b]][2];
if (name==="noneed"){
document.getElementById(`u${start}_text`).innerHTML = '<p style="text-decoration: none;" >----------------------------------------</p>';
document.getElementById(`u${start+1}_text`).innerHTML = '----';
}
else{
document.getElementById(`u${start}_text`).innerHTML = `<a href="${url}" style="text-decoration: none;" target="_blank">${name}</a>`;
document.getElementById(`u${start+1}_text`).innerHTML = price;
}
}
document.getElementById("u725_text").innerHTML = recList2["totalPrice"];
let download_2 = $('#u691_text a').eq(0)[0];
download_2.href = "recommendLists/Recommend_"+recList2['hash']+".txt";
download_2.download = "Recommend_2.txt";
//第三套:
for (let c=0;c<9;c++){
let start = 729+c*3;
let name = recList3[parts[c]][0];
let url = recList3[parts[c]][1];
let price = recList3[parts[c]][2];
if (name==="noneed"){
document.getElementById(`u${start}_text`).innerHTML = '<p style="text-decoration: none;" >----------------------------------------</p>';
document.getElementById(`u${start+1}_text`).innerHTML = '----';
}
else{
document.getElementById(`u${start}_text`).innerHTML = `<a href="${url}" style="text-decoration: none;" target="_blank">${name}</a>`;
document.getElementById(`u${start+1}_text`).innerHTML = price;
}
}
document.getElementById("u757_text").innerHTML = recList3["totalPrice"];
let download_3 = $('#u692_text a').eq(0)[0];
download_3.href = "recommendLists/Recommend_"+recList3['hash']+".txt";
download_3.download = "Recommend_3.txt";
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -1,7 +0,0 @@
$axure.loadCurrentPage(
(function() {
var _ = function() { var r={},a=arguments; for(var i=0; i<a.length; i+=2) r[a[i]]=a[i+1]; return r; }
var _creator = function() { return _(b,c,d,e,f,_(g,h,i,_(j,k,l,k)),m,[],n,_(h,o),p,[q,r,s,t,u,v,w,x,y],z,_(A,B,C,D,g,E,F,_(),G,[],H,_(I,J,K,L,M,_(N,O,P,Q),R,null,S,T,T,U,V,W,null,X,Y,Z,ba,bb,bc,bd,Y,be,bf,_(N,O,P,bg),bh,Y,bi,bj,_(bk,bl,bm,bn,bo,bn,bp,bn,P,_(bq,br,bs,br,bt,br,bu,bv)),i,_(j,k,l,k)),bw,_(),bx,_(),by,_(bz,[])),bA,_(),bB,_());};
var b="url",c="questionnaire.html",d="generationDate",e=new Date(1624977505889.44),f="defaultAdaptiveView",g="name",h="",i="size",j="width",k=0,l="height",m="adaptiveViews",n="sketchKeys",o="s0",p="variables",q="OnLoadVariable",r="count1",s="count2",t="count3",u="count4",v="top1",w="top2",x="top3",y="check",z="page",A="packageId",B="aa900e9d346f4ba6b2d0a6e2b26f638b",C="type",D="Axure:Page",E="Questionnaire",F="notes",G="annotations",H="style",I="baseStyle",J="627587b6038d43cca051c114ac41ad32",K="pageAlignment",L="center",M="fill",N="fillType",O="solid",P="color",Q=0xFFF7F7F7,R="image",S="imageAlignment",T="near",U="imageRepeat",V="auto",W="favicon",X="sketchFactor",Y="0",Z="colorStyle",ba="appliedColor",bb="fontName",bc="Applied Font",bd="borderWidth",be="borderVisibility",bf="borderFill",bg=0xFF797979,bh="cornerRadius",bi="cornerVisibility",bj="outerShadow",bk="on",bl=false,bm="offsetX",bn=5,bo="offsetY",bp="blurRadius",bq="r",br=0,bs="g",bt="b",bu="a",bv=0.349019607843137,bw="adaptiveStyles",bx="interactionMap",by="diagram",bz="objects",bA="masters",bB="objectPaths";
return _creator();
})());

@ -1,19 +0,0 @@
body {
margin:0px;
background-color:rgba(247, 247, 247, 1);
background-image:none;
position:relative;
left:0px;
width:10px;
margin-left:auto;
margin-right:auto;
text-align:left;
}
.form_sketch {
border-color:transparent;
background-color:transparent;
}
#base {
position:absolute;
z-index:0;
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,53 @@
function primary_recommend() {
console.log("enter primary_recommend!!!");
let pfloor = document.getElementById('u285_input').value;
let pceiling = document.getElementById('u288_input').value;
let Q1 = Array(pfloor, pceiling);
let Q2 = $('input:radio[name=q2]:checked').val();
let Q3 = $('input:radio[name=q3]:checked').val();
let Q4 = $('input:radio[name=q4]:checked').val();
let Q5 = document.getElementById('u290_input').value;
if (!pceiling || !pfloor || !Q1 || !Q2 || !Q3 || !Q4 || !Q5){
alert("请先完成所有问题再提交!");
return false;
}
if (pfloor < 1500){
alert("预算不得低于1500");
return false;
}
if (pceiling > 150000){
alert("预算不得高于150000");
return false;
}
if (pfloor >= pceiling){
alert("价格下限(数字)只能低于上限(数字)!");
return false;
}
if (Q5%0.25 !== 0){
alert("您输入的硬盘容量总需求数字不是0.25倍数!");
return false;
}
let primary_data = {'version':'primary', 'Q1' : Q1, 'Q2' : Q2, 'Q3' : Q3, 'Q4' : Q4, 'Q5' : Q5};
if (confirm("已填写完成,是否确认提交?")===true){
$.ajax({
type : "post",
url : "controllers/recommendController.php",
data : primary_data,
dataType : 'json',
success : function (result){
window.sessionStorage.setItem("recommendResult", JSON.stringify(result));
if (result['flag'] === 1)
window.location.href = "qresult0.html";
else if (result['count'] === 1)
window.location.href = "qresult1.html";
else if (result['count'] === 2)
window.location.href = "qresult2.html";
else // count = 3
window.location.href = "qresult3.html";
}
});
}
}

@ -0,0 +1,98 @@
function advanced_recommend() {
console.log("enter advanced_recommend!!!");
let pfloor = document.getElementById('u365_input').value;
let pceiling = document.getElementById('u368_input').value;
let Q1 = Array(pfloor, pceiling);
var Q2 = [];//定义一个空数组
$("input:checkbox[name='q2']:checked").each(function(i){//把所有被选中的复选框的值存入数组
Q2[i] =$(this).val();
});
if (Q2===[]){
alert("请先完成所有问题再提交!");
return false;
}
let Q3 = $('input:radio[name=q3]:checked').val();
let Q4 = document.getElementById('u379_input').value;
let Q5 = $('input:radio[name=q5]:checked').val();
let Q6 = document.getElementById('u385_input').value;
let Q7 = document.getElementById('u387_input').value;
let Q8 = document.getElementById('u389_input').value;
let Q9 = document.getElementById('u391_input').value;
let Q10 = document.getElementById('u393_input').value;
let Q11 = document.getElementById('u395_input').value;
let Q12 = document.getElementById('u397_input').value;
let Q13 = $('input:radio[name=q13]:checked').val();
let Q14 = $('input:radio[name=q14]:checked').val();
let Q15 = $('input:radio[name=q15]:checked').val();
let Q16 = $('input:radio[name=q16]:checked').val();
let Q17 = $('input:radio[name=q17]:checked').val();
let Q18 = $('input:radio[name=q18]:checked').val();
let Q19 = document.getElementById('u460_input').value;
let Q20 = $('input:radio[name=q20]:checked').val();
let Q21 = $('input:radio[name=q21]:checked').val();
if (!pceiling || !pfloor || !Q3 || !Q5 || !Q13 || !Q14 || !Q15 || !Q16 || !Q17 || !Q18 || !Q19 || !Q20 || !Q21){
alert("请先完成所有问题再提交!");
return false;
}
if (pfloor < 1500){
alert("预算不得低于1500");
return false;
}
if (pceiling > 150000){
alert("预算不得高于150000");
return false;
}
if (pfloor >= pceiling){
alert("价格下限(数字)只能低于上限(数字)!");
return false;
}
if (Q19%0.25 !== 0){
alert("您输入的硬盘容量总需求数字不是0.25倍数!");
return false;
}
let advanced_data = {
'version':'advanced',
'Q1' : Q1,
'Q2' : Q2,
'Q3' : Q3,
'Q4' : Q4,
'Q5' : Q5,
'Q6' : Q6,
'Q7' : Q7,
'Q8' : Q8,
'Q9' : Q9,
'Q10' : Q10,
'Q11' : Q11,
'Q12' : Q12,
'Q13' : Q13,
'Q14' : Q14,
'Q15' : Q15,
'Q16' : Q16,
'Q17' : Q17,
'Q18' : Q18,
'Q19' : Q19,
'Q20' : Q20,
'Q21' : Q21,
};
if (confirm("已填写完成,是否确认提交?")===true){
$.ajax({
type : "post",
url : "controllers/recommendController.php",
data : advanced_data,
dataType : 'json',
success : function (result){
window.sessionStorage.setItem("recommendResult", JSON.stringify(result));
if (result['flag'] === 1)
window.location.href = "qresult0.html";
else if (result['count'] === 1)
window.location.href = "qresult1.html";
else if (result['count'] === 2)
window.location.href = "qresult2.html";
else // count = 3
window.location.href = "qresult3.html";
}
});
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="1481px" height="2px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -13 -60 )">
<path d="M 13 60.5 L 1493 60.5 " stroke-width="1" stroke="#797979" fill="none" />
</g>
</svg>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="201px" height="2px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -656 -1625 )">
<path d="M 656 1625.5 L 856 1625.5 " stroke-width="1" stroke="#797979" fill="none" />
</g>
</svg>

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

File diff suppressed because one or more lines are too long

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="22px" height="21px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -421 -349 )">
<path d="M 21.2596153846154 7.52930056710775 C 21.7532051282051 7.60869565217391 22 7.81159420289855 22 8.13799621928166 C 22 8.33207309388784 21.8854166666667 8.54379332073094 21.65625 8.77315689981096 L 16.8569711538462 13.4574669187146 L 17.9939903846154 20.0737240075614 C 18.0028044871795 20.1354757403907 18.0072115384615 20.2236925015753 18.0072115384615 20.3383742911153 C 18.0072115384615 20.523629489603 17.9609375 20.6802142407057 17.8683894230769 20.8081285444234 C 17.7758413461538 20.9360428481411 17.6414262820513 21 17.4651442307692 21 C 17.2976762820513 21 17.1213942307692 20.9470699432892 16.9362980769231 20.8412098298677 L 11 17.7183364839319 L 5.06370192307692 20.8412098298677 C 4.86979166666667 20.9470699432892 4.69350961538462 21 4.53485576923077 21 C 4.34975961538462 21 4.2109375 20.9360428481411 4.11838942307692 20.8081285444234 C 4.02584134615385 20.6802142407057 3.97956730769231 20.523629489603 3.97956730769231 20.3383742911153 C 3.97956730769231 20.2854442344045 3.98838141025641 20.1972274732199 4.00600961538462 20.0737240075614 L 5.14302884615385 13.4574669187146 L 0.330528846153846 8.77315689981096 C 0.110176282051282 8.53497164461248 0 8.32325141776938 0 8.13799621928166 C 0 7.81159420289855 0.246794871794872 7.60869565217391 0.740384615384615 7.52930056710775 L 7.37740384615385 6.5633270321361 L 10.3521634615385 0.542533081285443 C 10.5196314102564 0.18084436042848 10.7355769230769 0 11 0 C 11.2644230769231 0 11.4803685897436 0.18084436042848 11.6478365384615 0.542533081285443 L 14.6225961538462 6.5633270321361 L 21.2596153846154 7.52930056710775 Z " fill-rule="nonzero" fill="#898989" stroke="none" transform="matrix(1 0 0 1 421 349 )" />
</g>
</svg>

@ -0,0 +1 @@
<svg t="1605697079085" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4252" width="32" height="32"><path d="M530.752 336.64h-6.08V166.4c0-63.744-29.312-90.24-65.472-54.016L123.008 448.96a93.376 93.376 0 0 0 0.064 131.456l333.632 333.12c36.096 36.032 67.968-0.64 67.968-54.144v-179.584h50.56c145.92 0 257.088 78.4 325.376 229.76 13.312 27.52 27.392 21.44 27.392 0-2.944-269.696-186.496-572.928-397.248-572.928z" fill="#1296db" p-id="4253"></path></svg>

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="1481px" height="2px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -13 -60 )">
<path d="M 13 60.5 L 1493 60.5 " stroke-width="1" stroke="#797979" fill="none" />
</g>
</svg>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="201px" height="2px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -656 -1785 )">
<path d="M 656 1785.5 L 856 1785.5 " stroke-width="1" stroke="#797979" fill="none" />
</g>
</svg>

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

File diff suppressed because one or more lines are too long

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="22px" height="21px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -421 -349 )">
<path d="M 21.2596153846154 7.52930056710775 C 21.7532051282051 7.60869565217391 22 7.81159420289855 22 8.13799621928166 C 22 8.33207309388784 21.8854166666667 8.54379332073094 21.65625 8.77315689981096 L 16.8569711538462 13.4574669187146 L 17.9939903846154 20.0737240075614 C 18.0028044871795 20.1354757403907 18.0072115384615 20.2236925015753 18.0072115384615 20.3383742911153 C 18.0072115384615 20.523629489603 17.9609375 20.6802142407057 17.8683894230769 20.8081285444234 C 17.7758413461538 20.9360428481411 17.6414262820513 21 17.4651442307692 21 C 17.2976762820513 21 17.1213942307692 20.9470699432892 16.9362980769231 20.8412098298677 L 11 17.7183364839319 L 5.06370192307692 20.8412098298677 C 4.86979166666667 20.9470699432892 4.69350961538462 21 4.53485576923077 21 C 4.34975961538462 21 4.2109375 20.9360428481411 4.11838942307692 20.8081285444234 C 4.02584134615385 20.6802142407057 3.97956730769231 20.523629489603 3.97956730769231 20.3383742911153 C 3.97956730769231 20.2854442344045 3.98838141025641 20.1972274732199 4.00600961538462 20.0737240075614 L 5.14302884615385 13.4574669187146 L 0.330528846153846 8.77315689981096 C 0.110176282051282 8.53497164461248 0 8.32325141776938 0 8.13799621928166 C 0 7.81159420289855 0.246794871794872 7.60869565217391 0.740384615384615 7.52930056710775 L 7.37740384615385 6.5633270321361 L 10.3521634615385 0.542533081285443 C 10.5196314102564 0.18084436042848 10.7355769230769 0 11 0 C 11.2644230769231 0 11.4803685897436 0.18084436042848 11.6478365384615 0.542533081285443 L 14.6225961538462 6.5633270321361 L 21.2596153846154 7.52930056710775 Z " fill-rule="nonzero" fill="#898989" stroke="none" transform="matrix(1 0 0 1 421 349 )" />
</g>
</svg>

@ -0,0 +1 @@
<svg t="1605697079085" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4252" width="32" height="32"><path d="M530.752 336.64h-6.08V166.4c0-63.744-29.312-90.24-65.472-54.016L123.008 448.96a93.376 93.376 0 0 0 0.064 131.456l333.632 333.12c36.096 36.032 67.968-0.64 67.968-54.144v-179.584h50.56c145.92 0 257.088 78.4 325.376 229.76 13.312 27.52 27.392 21.44 27.392 0-2.944-269.696-186.496-572.928-397.248-572.928z" fill="#1296db" p-id="4253"></path></svg>

After

Width:  |  Height:  |  Size: 496 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="22px" height="21px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -421 -349 )">
<path d="M 21.2596153846154 7.52930056710775 C 21.7532051282051 7.60869565217391 22 7.81159420289855 22 8.13799621928166 C 22 8.33207309388784 21.8854166666667 8.54379332073094 21.65625 8.77315689981096 L 16.8569711538462 13.4574669187146 L 17.9939903846154 20.0737240075614 C 18.0028044871795 20.1354757403907 18.0072115384615 20.2236925015753 18.0072115384615 20.3383742911153 C 18.0072115384615 20.523629489603 17.9609375 20.6802142407057 17.8683894230769 20.8081285444234 C 17.7758413461538 20.9360428481411 17.6414262820513 21 17.4651442307692 21 C 17.2976762820513 21 17.1213942307692 20.9470699432892 16.9362980769231 20.8412098298677 L 11 17.7183364839319 L 5.06370192307692 20.8412098298677 C 4.86979166666667 20.9470699432892 4.69350961538462 21 4.53485576923077 21 C 4.34975961538462 21 4.2109375 20.9360428481411 4.11838942307692 20.8081285444234 C 4.02584134615385 20.6802142407057 3.97956730769231 20.523629489603 3.97956730769231 20.3383742911153 C 3.97956730769231 20.2854442344045 3.98838141025641 20.1972274732199 4.00600961538462 20.0737240075614 L 5.14302884615385 13.4574669187146 L 0.330528846153846 8.77315689981096 C 0.110176282051282 8.53497164461248 0 8.32325141776938 0 8.13799621928166 C 0 7.81159420289855 0.246794871794872 7.60869565217391 0.740384615384615 7.52930056710775 L 7.37740384615385 6.5633270321361 L 10.3521634615385 0.542533081285443 C 10.5196314102564 0.18084436042848 10.7355769230769 0 11 0 C 11.2644230769231 0 11.4803685897436 0.18084436042848 11.6478365384615 0.542533081285443 L 14.6225961538462 6.5633270321361 L 21.2596153846154 7.52930056710775 Z " fill-rule="nonzero" fill="#898989" stroke="none" transform="matrix(1 0 0 1 421 349 )" />
</g>
</svg>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="188px" height="47px" xmlns="http://www.w3.org/2000/svg">
<defs>
<mask fill="white" id="clip160">
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 93.8750000000012 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " fill-rule="evenodd" />
</mask>
<filter x="1307px" y="77px" width="188px" height="47px" filterUnits="userSpaceOnUse" id="filter161">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0666666666666667 0 " in="shadowComposite" />
</filter>
<g id="widget162">
<image preserveAspectRatio="none" style="overflow:visible" width="186" height="45" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAAtCAYAAAAZbXEKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJfSURBVHhe7d29axRBHMbx37MT79BCiygqBF86sTIavQQ15jAYX04UwahoLURsQvJniDaWdhZ2p0k8zSWKpwZfIJ0xvhtILCwuvjUm5+2OM2sEC/+B+83zgWF3Z9svw+yysJB/DDydPS0RTlmxbRC0LE0TNQzX7ifX7qQ7li7nNlxbmpY09MHnM+sSa64L0J3OEingYq8Yic9cym3+nIbe/2x23CWfRv6znshCbOVXYiW21k8RNQwDyLIIkjWQFU2Rm7GVK7mNefS77YqF3HBty/daXRb9CZECPvZVmSYxke2LYrFuTy7yzUXuV3J/zsGhYfiefdc2wRGcfzwz57bqLV9rsbtFpM/KTFTFucpHH7+rP0knibTJmkjQe/9DGjofPEkr92wqOHHvPQsn9XB8/B1DJ/X8i0Yi9XCMKzoFAEfHGDrph8LYW4ZO6qFQZuikHw4zdAoADo0ydNIPB0ffMHRSDz13GTrphwMMnQKA7juvGTqpx08AKAjYzxWdAoB8iaGTfty6UBCw7/YrruikHjoZOgUAe0cYOumHPSPTDJ3Uw+5hhk76oYOhUwDQMcTQST+0D71k6KQedt1i6KQfdjJ0CgA/AaAgYMfNKa7opB62M3QKAFqLDJ30w7biizl35K8WSS1rbdWs773QGQFbEq7rpBSAR1E2MqWMwX9/dsTBoWFkjCmn/xntGp5+MF+Lu/w5kSZW7ERz83ze+IutZ/vKiwna6tZuSu8S6TCxPIlOPinkfqQr+l+txamLC/W4x+1p2t3l6j+zRA2l6rYrk+4BtLx2zZerD/P5uojIb65OQWlSPFb1AAAAAElFTkSuQmCC" x="0px" y="0px" transform="matrix(1 0 0 1 1308 77 )" />
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 93.8750000000012 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " stroke-width="2" stroke="#269abc" fill="none" transform="matrix(1 0 0 1 1308 77 )" mask="url(#clip160)" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -1307 -77 )">
<use xlink:href="#widget162" filter="url(#filter161)" />
<use xlink:href="#widget162" />
</g>
</svg>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="188px" height="47px" xmlns="http://www.w3.org/2000/svg">
<defs>
<mask fill="white" id="clip166">
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 93.8750000000012 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " fill-rule="evenodd" />
</mask>
<filter x="1307px" y="77px" width="188px" height="47px" filterUnits="userSpaceOnUse" id="filter167">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0666666666666667 0 " in="shadowComposite" />
</filter>
<g id="widget168">
<image preserveAspectRatio="none" style="overflow:visible" width="186" height="45" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAAtCAYAAAAZbXEKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJDSURBVHhe7d2xbtNQFIDhc27SN4DC0BVoOzOwgaVIrCwIOsKCkHicbkUUgRDqxEIHxNAARQxEgokBRjowRIgHcHw558YJyRtgn/+TLNs3Gf9enXSwVVZcOnx/NzX5jqhetdut+SrQKWeS8ySrHH+/f/1xuyYl9N3Dk4t1rc/tblRWW6prfwfAfy/n3F7Ztch4Y5D3vt2rfpWSLx+M30pTj6zs8oUlQkfXrITuLPzxjwejSttx5WWe1SIp2UcqWs5+aaETO7rCI1+EbuecG5GmsZ6HD/XKkw+vbPVWbma2MChhL86Ejk5ZhL4SuXdtG/hr3X768ad9tGUrogML3CJXtR2dyNFFa6HPJM8sdElT3X72qd3rrevBUMRin4deVso60B0eurduoVvkZSQ3uvPi8zJ0n9HnY4vfsKOjg3xHX43dRxeTyg9QH1l8J1/O5u3oAnTNSr/lnyrJphQ7ksftowpzOXqldOyxzw8v/F/gRI4+aWP3Yz10oG/atm1eAfqP0BECoSMEQkcIhI4QCB0hEDpCIHSEQOgIgdARAqEjBEJHCISOEAgdIRA6QiB0hEDoCIHQEQKhIwRCRwiEjhAIHSEQOkIgdIRA6AiB0BECoSOElLOctddAX02TSp60N0AvZZFJakSOy1sCypsCgJ4p7zPKb8qzoneOvp6oyg1/jjSPj0ZvlMib083NP1X5Mao63LO1cfkQ6Alr+lR14/a7qqrXtu/doy+PsqabqnrNbs/NV4FOmfpM7uPKhfO/9z1yEZG/C9Wrf2HlN2cAAAAASUVORK5CYII=" x="0px" y="0px" transform="matrix(1 0 0 1 1308 77 )" />
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 93.8750000000012 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " stroke-width="2" stroke="#28a4c9" fill="none" transform="matrix(1 0 0 1 1308 77 )" mask="url(#clip166)" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -1307 -77 )">
<use xlink:href="#widget168" filter="url(#filter167)" />
<use xlink:href="#widget168" />
</g>
</svg>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="188px" height="47px" xmlns="http://www.w3.org/2000/svg">
<defs>
<mask fill="white" id="clip163">
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 93.8750000000012 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " fill-rule="evenodd" />
</mask>
<filter x="1307px" y="77px" width="188px" height="47px" filterUnits="userSpaceOnUse" id="filter164">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0666666666666667 0 " in="shadowComposite" />
</filter>
<g id="widget165">
<image preserveAspectRatio="none" style="overflow:visible" width="186" height="45" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAAtCAYAAAAZbXEKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIXSURBVHhe7d09axRRFMbxc+6I6ws2sqKFjaCVGBNdzaYQHCJYWAd3P4Lgx7G0s9giusZAhBBlI6TcShMsDFhoYZFs5+bFmbneO66gH2HP/f/gsLO3fubhTHVV/tEd7Ha0ksdepKUqlyfHwNTwXr6HUA+982u9/NrzybHUQV8afL2UVcULVX1QnwIWeNksXNZdzq/8qIPeef9l42/Ix0Ul47KS49JLGV4PYJpkYRU5mamczpycPeHqsPcWr+bafbfbCb3ei6EeHZVyGEIOWHAqhP18IxMn+sRVWu/ksh9CfhBCHp8ZxsLEPMdci/pHblyWrbiq0OSwKOb65y/f1sW3n2P45SDs5oBFcYVx8aMzDmDVcVWJLqzukHKYpwtvCDrsc5NfwDRt0+hIAI2OJOg8jY4E6PwKQYd9epegIwHs6EiC3lnZptFhHo2OJBB0JEFbr1ldYB+NjiQQdCRBb7O6IAE0OpKgt/o0Ouyj0ZEEgo4k6Fz/E6sLzKPRkQSdpdGRAJ19RdBhn94k6EgAOzqSoDM0OhJAoyMJOvOSRod9eoOgIwGsLkiCXl/++I2rFmHcnsucDuNNXoBV8d5R13CyFq+ri4s6w1icRqbrdZXfW90ZjI7K+/EZMGar2dzP64/Rc853G85t1seAHVtnvFv6kOfFf8v5XH/76WFRPlTVdvjb/HMKTJW9sK4MvffrFy+MnsWQi4j8BvmgHocAR7YQAAAAAElFTkSuQmCC" x="0px" y="0px" transform="matrix(1 0 0 1 1308 77 )" />
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 93.8750000000012 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " stroke-width="2" stroke="#269abc" fill="none" transform="matrix(1 0 0 1 1308 77 )" mask="url(#clip163)" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -1307 -77 )">
<use xlink:href="#widget165" filter="url(#filter164)" />
<use xlink:href="#widget165" />
</g>
</svg>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="188px" height="47px" xmlns="http://www.w3.org/2000/svg">
<defs>
<mask fill="white" id="clip116">
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 93.8750000000012 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " fill-rule="evenodd" />
</mask>
<filter x="1307px" y="77px" width="188px" height="47px" filterUnits="userSpaceOnUse" id="filter117">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0666666666666667 0 " in="shadowComposite" />
</filter>
<g id="widget118">
<image preserveAspectRatio="none" style="overflow:visible" width="186" height="45" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAAtCAYAAAAZbXEKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJfSURBVHhe7d29axRBHMbx37MT79BCiygqBF86sTIavQQ15jAYX04UwahoLURsQvJniDaWdhZ2p0k8zSWKpwZfIJ0xvhtILCwuvjUm5+2OM2sEC/+B+83zgWF3Z9svw+yysJB/DDydPS0RTlmxbRC0LE0TNQzX7ifX7qQ7li7nNlxbmpY09MHnM+sSa64L0J3OEingYq8Yic9cym3+nIbe/2x23CWfRv6znshCbOVXYiW21k8RNQwDyLIIkjWQFU2Rm7GVK7mNefS77YqF3HBty/daXRb9CZECPvZVmSYxke2LYrFuTy7yzUXuV3J/zsGhYfiefdc2wRGcfzwz57bqLV9rsbtFpM/KTFTFucpHH7+rP0knibTJmkjQe/9DGjofPEkr92wqOHHvPQsn9XB8/B1DJ/X8i0Yi9XCMKzoFAEfHGDrph8LYW4ZO6qFQZuikHw4zdAoADo0ydNIPB0ffMHRSDz13GTrphwMMnQKA7juvGTqpx08AKAjYzxWdAoB8iaGTfty6UBCw7/YrruikHjoZOgUAe0cYOumHPSPTDJ3Uw+5hhk76oYOhUwDQMcTQST+0D71k6KQedt1i6KQfdjJ0CgA/AaAgYMfNKa7opB62M3QKAFqLDJ30w7biizl35K8WSS1rbdWs773QGQFbEq7rpBSAR1E2MqWMwX9/dsTBoWFkjCmn/xntGp5+MF+Lu/w5kSZW7ERz83ze+IutZ/vKiwna6tZuSu8S6TCxPIlOPinkfqQr+l+txamLC/W4x+1p2t3l6j+zRA2l6rYrk+4BtLx2zZerD/P5uojIb65OQWlSPFb1AAAAAElFTkSuQmCC" x="0px" y="0px" transform="matrix(1 0 0 1 1308 77 )" />
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 93.8750000000012 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " stroke-width="2" stroke="#269abc" fill="none" transform="matrix(1 0 0 1 1308 77 )" mask="url(#clip116)" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -1307 -77 )">
<use xlink:href="#widget118" filter="url(#filter117)" />
<use xlink:href="#widget118" />
</g>
</svg>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="188px" height="47px" xmlns="http://www.w3.org/2000/svg">
<defs>
<mask fill="white" id="clip122">
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 93.8750000000012 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " fill-rule="evenodd" />
</mask>
<filter x="1307px" y="77px" width="188px" height="47px" filterUnits="userSpaceOnUse" id="filter123">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0666666666666667 0 " in="shadowComposite" />
</filter>
<g id="widget124">
<image preserveAspectRatio="none" style="overflow:visible" width="186" height="45" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAAtCAYAAAAZbXEKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJDSURBVHhe7d2xbtNQFIDhc27SN4DC0BVoOzOwgaVIrCwIOsKCkHicbkUUgRDqxEIHxNAARQxEgokBRjowRIgHcHw558YJyRtgn/+TLNs3Gf9enXSwVVZcOnx/NzX5jqhetdut+SrQKWeS8ySrHH+/f/1xuyYl9N3Dk4t1rc/tblRWW6prfwfAfy/n3F7Ztch4Y5D3vt2rfpWSLx+M30pTj6zs8oUlQkfXrITuLPzxjwejSttx5WWe1SIp2UcqWs5+aaETO7rCI1+EbuecG5GmsZ6HD/XKkw+vbPVWbma2MChhL86Ejk5ZhL4SuXdtG/hr3X768ad9tGUrogML3CJXtR2dyNFFa6HPJM8sdElT3X72qd3rrevBUMRin4deVso60B0eurduoVvkZSQ3uvPi8zJ0n9HnY4vfsKOjg3xHX43dRxeTyg9QH1l8J1/O5u3oAnTNSr/lnyrJphQ7ksftowpzOXqldOyxzw8v/F/gRI4+aWP3Yz10oG/atm1eAfqP0BECoSMEQkcIhI4QCB0hEDpCIHSEQOgIgdARAqEjBEJHCISOEAgdIRA6QiB0hEDoCIHQEQKhIwRCRwiEjhAIHSEQOkIgdIRA6AiB0BECoSOElLOctddAX02TSp60N0AvZZFJakSOy1sCypsCgJ4p7zPKb8qzoneOvp6oyg1/jjSPj0ZvlMib083NP1X5Mao63LO1cfkQ6Alr+lR14/a7qqrXtu/doy+PsqabqnrNbs/NV4FOmfpM7uPKhfO/9z1yEZG/C9Wrf2HlN2cAAAAASUVORK5CYII=" x="0px" y="0px" transform="matrix(1 0 0 1 1308 77 )" />
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 93.8750000000012 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " stroke-width="2" stroke="#28a4c9" fill="none" transform="matrix(1 0 0 1 1308 77 )" mask="url(#clip122)" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -1307 -77 )">
<use xlink:href="#widget124" filter="url(#filter123)" />
<use xlink:href="#widget124" />
</g>
</svg>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="188px" height="47px" xmlns="http://www.w3.org/2000/svg">
<defs>
<mask fill="white" id="clip119">
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 93.8750000000012 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " fill-rule="evenodd" />
</mask>
<filter x="1307px" y="77px" width="188px" height="47px" filterUnits="userSpaceOnUse" id="filter120">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0666666666666667 0 " in="shadowComposite" />
</filter>
<g id="widget121">
<image preserveAspectRatio="none" style="overflow:visible" width="186" height="45" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAAtCAYAAAAZbXEKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIXSURBVHhe7d09axRRFMbxc+6I6ws2sqKFjaCVGBNdzaYQHCJYWAd3P4Lgx7G0s9giusZAhBBlI6TcShMsDFhoYZFs5+bFmbneO66gH2HP/f/gsLO3fubhTHVV/tEd7Ha0ksdepKUqlyfHwNTwXr6HUA+982u9/NrzybHUQV8afL2UVcULVX1QnwIWeNksXNZdzq/8qIPeef9l42/Ix0Ul47KS49JLGV4PYJpkYRU5mamczpycPeHqsPcWr+bafbfbCb3ei6EeHZVyGEIOWHAqhP18IxMn+sRVWu/ksh9CfhBCHp8ZxsLEPMdci/pHblyWrbiq0OSwKOb65y/f1sW3n2P45SDs5oBFcYVx8aMzDmDVcVWJLqzukHKYpwtvCDrsc5NfwDRt0+hIAI2OJOg8jY4E6PwKQYd9epegIwHs6EiC3lnZptFhHo2OJBB0JEFbr1ldYB+NjiQQdCRBb7O6IAE0OpKgt/o0Ouyj0ZEEgo4k6Fz/E6sLzKPRkQSdpdGRAJ19RdBhn94k6EgAOzqSoDM0OhJAoyMJOvOSRod9eoOgIwGsLkiCXl/++I2rFmHcnsucDuNNXoBV8d5R13CyFq+ri4s6w1icRqbrdZXfW90ZjI7K+/EZMGar2dzP64/Rc853G85t1seAHVtnvFv6kOfFf8v5XH/76WFRPlTVdvjb/HMKTJW9sK4MvffrFy+MnsWQi4j8BvmgHocAR7YQAAAAAElFTkSuQmCC" x="0px" y="0px" transform="matrix(1 0 0 1 1308 77 )" />
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 93.8750000000012 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " stroke-width="2" stroke="#269abc" fill="none" transform="matrix(1 0 0 1 1308 77 )" mask="url(#clip119)" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -1307 -77 )">
<use xlink:href="#widget121" filter="url(#filter120)" />
<use xlink:href="#widget121" />
</g>
</svg>

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="42px" height="42px" xmlns="http://www.w3.org/2000/svg">
<defs>
<filter x="869px" y="910px" width="42px" height="42px" filterUnits="userSpaceOnUse" id="filter27">
<filter x="869px" y="910px" width="42px" height="42px" filterUnits="userSpaceOnUse" id="filter139">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.313725490196078 0 " in="shadowComposite" />
</filter>
<g id="widget28">
<g id="widget140">
<path d="M 40 20 C 40 8.95 31.04 0 20 0 C 8.95 0 0 8.95 0 20 C 0 31.04 8.95 40 20 40 C 31.04 40 40 31.04 40 20 Z M 34 12 L 16 30 L 6.00000000000001 20 L 8.82999999999999 17.17 L 16 24.34 L 31.17 9.17000000000002 L 34 12 Z " fill-rule="nonzero" fill="#e60000" stroke="none" transform="matrix(1 0 0 1 870 910 )" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -869 -910 )">
<use xlink:href="#widget28" filter="url(#filter27)" />
<use xlink:href="#widget28" />
<use xlink:href="#widget140" filter="url(#filter139)" />
<use xlink:href="#widget140" />
</g>
</svg>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="1481px" height="2px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -13 -60 )">
<path d="M 13 60.5 L 1493 60.5 " stroke-width="1" stroke="#797979" fill="none" />
</g>
</svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="188px" height="47px" xmlns="http://www.w3.org/2000/svg">
<defs>
<mask fill="white" id="clip38">
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 49.6923076923076 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " fill-rule="evenodd" />
</mask>
<filter x="1307px" y="77px" width="188px" height="47px" filterUnits="userSpaceOnUse" id="filter39">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0666666666666667 0 " in="shadowComposite" />
</filter>
<g id="widget40">
<image preserveAspectRatio="none" style="overflow:visible" width="186" height="45" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAAtCAYAAAAZbXEKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJfSURBVHhe7d29axRBHMbx37MT79BCiygqBF86sTIavQQ15jAYX04UwahoLURsQvJniDaWdhZ2p0k8zSWKpwZfIJ0xvhtILCwuvjUm5+2OM2sEC/+B+83zgWF3Z9svw+yysJB/DDydPS0RTlmxbRC0LE0TNQzX7ifX7qQ7li7nNlxbmpY09MHnM+sSa64L0J3OEingYq8Yic9cym3+nIbe/2x23CWfRv6znshCbOVXYiW21k8RNQwDyLIIkjWQFU2Rm7GVK7mNefS77YqF3HBty/daXRb9CZECPvZVmSYxke2LYrFuTy7yzUXuV3J/zsGhYfiefdc2wRGcfzwz57bqLV9rsbtFpM/KTFTFucpHH7+rP0knibTJmkjQe/9DGjofPEkr92wqOHHvPQsn9XB8/B1DJ/X8i0Yi9XCMKzoFAEfHGDrph8LYW4ZO6qFQZuikHw4zdAoADo0ydNIPB0ffMHRSDz13GTrphwMMnQKA7juvGTqpx08AKAjYzxWdAoB8iaGTfty6UBCw7/YrruikHjoZOgUAe0cYOumHPSPTDJ3Uw+5hhk76oYOhUwDQMcTQST+0D71k6KQedt1i6KQfdjJ0CgA/AaAgYMfNKa7opB62M3QKAFqLDJ30w7biizl35K8WSS1rbdWs773QGQFbEq7rpBSAR1E2MqWMwX9/dsTBoWFkjCmn/xntGp5+MF+Lu/w5kSZW7ERz83ze+IutZ/vKiwna6tZuSu8S6TCxPIlOPinkfqQr+l+txamLC/W4x+1p2t3l6j+zRA2l6rYrk+4BtLx2zZerD/P5uojIb65OQWlSPFb1AAAAAElFTkSuQmCC" x="0px" y="0px" transform="matrix(1 0 0 1 1308 77 )" />
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 49.6923076923076 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " stroke-width="2" stroke="#269abc" fill="none" transform="matrix(1 0 0 1 1308 77 )" mask="url(#clip38)" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -1307 -77 )">
<use xlink:href="#widget40" filter="url(#filter39)" />
<use xlink:href="#widget40" />
</g>
</svg>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="188px" height="47px" xmlns="http://www.w3.org/2000/svg">
<defs>
<mask fill="white" id="clip44">
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 49.6923076923076 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " fill-rule="evenodd" />
</mask>
<filter x="1307px" y="77px" width="188px" height="47px" filterUnits="userSpaceOnUse" id="filter45">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0666666666666667 0 " in="shadowComposite" />
</filter>
<g id="widget46">
<image preserveAspectRatio="none" style="overflow:visible" width="186" height="45" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAAtCAYAAAAZbXEKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJDSURBVHhe7d2xbtNQFIDhc27SN4DC0BVoOzOwgaVIrCwIOsKCkHicbkUUgRDqxEIHxNAARQxEgokBRjowRIgHcHw558YJyRtgn/+TLNs3Gf9enXSwVVZcOnx/NzX5jqhetdut+SrQKWeS8ySrHH+/f/1xuyYl9N3Dk4t1rc/tblRWW6prfwfAfy/n3F7Ztch4Y5D3vt2rfpWSLx+M30pTj6zs8oUlQkfXrITuLPzxjwejSttx5WWe1SIp2UcqWs5+aaETO7rCI1+EbuecG5GmsZ6HD/XKkw+vbPVWbma2MChhL86Ejk5ZhL4SuXdtG/hr3X768ad9tGUrogML3CJXtR2dyNFFa6HPJM8sdElT3X72qd3rrevBUMRin4deVso60B0eurduoVvkZSQ3uvPi8zJ0n9HnY4vfsKOjg3xHX43dRxeTyg9QH1l8J1/O5u3oAnTNSr/lnyrJphQ7ksftowpzOXqldOyxzw8v/F/gRI4+aWP3Yz10oG/atm1eAfqP0BECoSMEQkcIhI4QCB0hEDpCIHSEQOgIgdARAqEjBEJHCISOEAgdIRA6QiB0hEDoCIHQEQKhIwRCRwiEjhAIHSEQOkIgdIRA6AiB0BECoSOElLOctddAX02TSp60N0AvZZFJakSOy1sCypsCgJ4p7zPKb8qzoneOvp6oyg1/jjSPj0ZvlMib083NP1X5Mao63LO1cfkQ6Alr+lR14/a7qqrXtu/doy+PsqabqnrNbs/NV4FOmfpM7uPKhfO/9z1yEZG/C9Wrf2HlN2cAAAAASUVORK5CYII=" x="0px" y="0px" transform="matrix(1 0 0 1 1308 77 )" />
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 49.6923076923076 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " stroke-width="2" stroke="#28a4c9" fill="none" transform="matrix(1 0 0 1 1308 77 )" mask="url(#clip44)" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -1307 -77 )">
<use xlink:href="#widget46" filter="url(#filter45)" />
<use xlink:href="#widget46" />
</g>
</svg>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="188px" height="47px" xmlns="http://www.w3.org/2000/svg">
<defs>
<mask fill="white" id="clip41">
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 49.6923076923076 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " fill-rule="evenodd" />
</mask>
<filter x="1307px" y="77px" width="188px" height="47px" filterUnits="userSpaceOnUse" id="filter42">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0666666666666667 0 " in="shadowComposite" />
</filter>
<g id="widget43">
<image preserveAspectRatio="none" style="overflow:visible" width="186" height="45" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAAtCAYAAAAZbXEKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIXSURBVHhe7d09axRRFMbxc+6I6ws2sqKFjaCVGBNdzaYQHCJYWAd3P4Lgx7G0s9giusZAhBBlI6TcShMsDFhoYZFs5+bFmbneO66gH2HP/f/gsLO3fubhTHVV/tEd7Ha0ksdepKUqlyfHwNTwXr6HUA+982u9/NrzybHUQV8afL2UVcULVX1QnwIWeNksXNZdzq/8qIPeef9l42/Ix0Ul47KS49JLGV4PYJpkYRU5mamczpycPeHqsPcWr+bafbfbCb3ei6EeHZVyGEIOWHAqhP18IxMn+sRVWu/ksh9CfhBCHp8ZxsLEPMdci/pHblyWrbiq0OSwKOb65y/f1sW3n2P45SDs5oBFcYVx8aMzDmDVcVWJLqzukHKYpwtvCDrsc5NfwDRt0+hIAI2OJOg8jY4E6PwKQYd9epegIwHs6EiC3lnZptFhHo2OJBB0JEFbr1ldYB+NjiQQdCRBb7O6IAE0OpKgt/o0Ouyj0ZEEgo4k6Fz/E6sLzKPRkQSdpdGRAJ19RdBhn94k6EgAOzqSoDM0OhJAoyMJOvOSRod9eoOgIwGsLkiCXl/++I2rFmHcnsucDuNNXoBV8d5R13CyFq+ri4s6w1icRqbrdZXfW90ZjI7K+/EZMGar2dzP64/Rc853G85t1seAHVtnvFv6kOfFf8v5XH/76WFRPlTVdvjb/HMKTJW9sK4MvffrFy+MnsWQi4j8BvmgHocAR7YQAAAAAElFTkSuQmCC" x="0px" y="0px" transform="matrix(1 0 0 1 1308 77 )" />
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 49.6923076923076 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " stroke-width="2" stroke="#269abc" fill="none" transform="matrix(1 0 0 1 1308 77 )" mask="url(#clip41)" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -1307 -77 )">
<use xlink:href="#widget43" filter="url(#filter42)" />
<use xlink:href="#widget43" />
</g>
</svg>

@ -0,0 +1 @@
<svg t="1605697079085" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4252" width="32" height="32"><path d="M530.752 336.64h-6.08V166.4c0-63.744-29.312-90.24-65.472-54.016L123.008 448.96a93.376 93.376 0 0 0 0.064 131.456l333.632 333.12c36.096 36.032 67.968-0.64 67.968-54.144v-179.584h50.56c145.92 0 257.088 78.4 325.376 229.76 13.312 27.52 27.392 21.44 27.392 0-2.944-269.696-186.496-572.928-397.248-572.928z" fill="#1296db" p-id="4253"></path></svg>

After

Width:  |  Height:  |  Size: 496 B

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="1481px" height="2px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -13 -60 )">
<path d="M 13 60.5 L 1493 60.5 " stroke-width="1" stroke="#797979" fill="none" />
</g>
</svg>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="188px" height="47px" xmlns="http://www.w3.org/2000/svg">
<defs>
<mask fill="white" id="clip29">
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 49.6923076923076 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " fill-rule="evenodd" />
</mask>
<filter x="1307px" y="77px" width="188px" height="47px" filterUnits="userSpaceOnUse" id="filter30">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0666666666666667 0 " in="shadowComposite" />
</filter>
<g id="widget31">
<image preserveAspectRatio="none" style="overflow:visible" width="186" height="45" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAAtCAYAAAAZbXEKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJfSURBVHhe7d29axRBHMbx37MT79BCiygqBF86sTIavQQ15jAYX04UwahoLURsQvJniDaWdhZ2p0k8zSWKpwZfIJ0xvhtILCwuvjUm5+2OM2sEC/+B+83zgWF3Z9svw+yysJB/DDydPS0RTlmxbRC0LE0TNQzX7ifX7qQ7li7nNlxbmpY09MHnM+sSa64L0J3OEingYq8Yic9cym3+nIbe/2x23CWfRv6znshCbOVXYiW21k8RNQwDyLIIkjWQFU2Rm7GVK7mNefS77YqF3HBty/daXRb9CZECPvZVmSYxke2LYrFuTy7yzUXuV3J/zsGhYfiefdc2wRGcfzwz57bqLV9rsbtFpM/KTFTFucpHH7+rP0knibTJmkjQe/9DGjofPEkr92wqOHHvPQsn9XB8/B1DJ/X8i0Yi9XCMKzoFAEfHGDrph8LYW4ZO6qFQZuikHw4zdAoADo0ydNIPB0ffMHRSDz13GTrphwMMnQKA7juvGTqpx08AKAjYzxWdAoB8iaGTfty6UBCw7/YrruikHjoZOgUAe0cYOumHPSPTDJ3Uw+5hhk76oYOhUwDQMcTQST+0D71k6KQedt1i6KQfdjJ0CgA/AaAgYMfNKa7opB62M3QKAFqLDJ30w7biizl35K8WSS1rbdWs773QGQFbEq7rpBSAR1E2MqWMwX9/dsTBoWFkjCmn/xntGp5+MF+Lu/w5kSZW7ERz83ze+IutZ/vKiwna6tZuSu8S6TCxPIlOPinkfqQr+l+txamLC/W4x+1p2t3l6j+zRA2l6rYrk+4BtLx2zZerD/P5uojIb65OQWlSPFb1AAAAAElFTkSuQmCC" x="0px" y="0px" transform="matrix(1 0 0 1 1308 77 )" />
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 49.6923076923076 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " stroke-width="2" stroke="#269abc" fill="none" transform="matrix(1 0 0 1 1308 77 )" mask="url(#clip29)" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -1307 -77 )">
<use xlink:href="#widget31" filter="url(#filter30)" />
<use xlink:href="#widget31" />
</g>
</svg>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="188px" height="47px" xmlns="http://www.w3.org/2000/svg">
<defs>
<mask fill="white" id="clip35">
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 49.6923076923076 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " fill-rule="evenodd" />
</mask>
<filter x="1307px" y="77px" width="188px" height="47px" filterUnits="userSpaceOnUse" id="filter36">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0666666666666667 0 " in="shadowComposite" />
</filter>
<g id="widget37">
<image preserveAspectRatio="none" style="overflow:visible" width="186" height="45" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAAtCAYAAAAZbXEKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJDSURBVHhe7d2xbtNQFIDhc27SN4DC0BVoOzOwgaVIrCwIOsKCkHicbkUUgRDqxEIHxNAARQxEgokBRjowRIgHcHw558YJyRtgn/+TLNs3Gf9enXSwVVZcOnx/NzX5jqhetdut+SrQKWeS8ySrHH+/f/1xuyYl9N3Dk4t1rc/tblRWW6prfwfAfy/n3F7Ztch4Y5D3vt2rfpWSLx+M30pTj6zs8oUlQkfXrITuLPzxjwejSttx5WWe1SIp2UcqWs5+aaETO7rCI1+EbuecG5GmsZ6HD/XKkw+vbPVWbma2MChhL86Ejk5ZhL4SuXdtG/hr3X768ad9tGUrogML3CJXtR2dyNFFa6HPJM8sdElT3X72qd3rrevBUMRin4deVso60B0eurduoVvkZSQ3uvPi8zJ0n9HnY4vfsKOjg3xHX43dRxeTyg9QH1l8J1/O5u3oAnTNSr/lnyrJphQ7ksftowpzOXqldOyxzw8v/F/gRI4+aWP3Yz10oG/atm1eAfqP0BECoSMEQkcIhI4QCB0hEDpCIHSEQOgIgdARAqEjBEJHCISOEAgdIRA6QiB0hEDoCIHQEQKhIwRCRwiEjhAIHSEQOkIgdIRA6AiB0BECoSOElLOctddAX02TSp60N0AvZZFJakSOy1sCypsCgJ4p7zPKb8qzoneOvp6oyg1/jjSPj0ZvlMib083NP1X5Mao63LO1cfkQ6Alr+lR14/a7qqrXtu/doy+PsqabqnrNbs/NV4FOmfpM7uPKhfO/9z1yEZG/C9Wrf2HlN2cAAAAASUVORK5CYII=" x="0px" y="0px" transform="matrix(1 0 0 1 1308 77 )" />
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 49.6923076923076 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " stroke-width="2" stroke="#28a4c9" fill="none" transform="matrix(1 0 0 1 1308 77 )" mask="url(#clip35)" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -1307 -77 )">
<use xlink:href="#widget37" filter="url(#filter36)" />
<use xlink:href="#widget37" />
</g>
</svg>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="188px" height="47px" xmlns="http://www.w3.org/2000/svg">
<defs>
<mask fill="white" id="clip32">
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 49.6923076923076 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " fill-rule="evenodd" />
</mask>
<filter x="1307px" y="77px" width="188px" height="47px" filterUnits="userSpaceOnUse" id="filter33">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner" />
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetInner" result="shadowGaussian" />
<feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0666666666666667 0 " in="shadowComposite" />
</filter>
<g id="widget34">
<image preserveAspectRatio="none" style="overflow:visible" width="186" height="45" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAAtCAYAAAAZbXEKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIXSURBVHhe7d09axRRFMbxc+6I6ws2sqKFjaCVGBNdzaYQHCJYWAd3P4Lgx7G0s9giusZAhBBlI6TcShMsDFhoYZFs5+bFmbneO66gH2HP/f/gsLO3fubhTHVV/tEd7Ha0ksdepKUqlyfHwNTwXr6HUA+982u9/NrzybHUQV8afL2UVcULVX1QnwIWeNksXNZdzq/8qIPeef9l42/Ix0Ul47KS49JLGV4PYJpkYRU5mamczpycPeHqsPcWr+bafbfbCb3ei6EeHZVyGEIOWHAqhP18IxMn+sRVWu/ksh9CfhBCHp8ZxsLEPMdci/pHblyWrbiq0OSwKOb65y/f1sW3n2P45SDs5oBFcYVx8aMzDmDVcVWJLqzukHKYpwtvCDrsc5NfwDRt0+hIAI2OJOg8jY4E6PwKQYd9epegIwHs6EiC3lnZptFhHo2OJBB0JEFbr1ldYB+NjiQQdCRBb7O6IAE0OpKgt/o0Ouyj0ZEEgo4k6Fz/E6sLzKPRkQSdpdGRAJ19RdBhn94k6EgAOzqSoDM0OhJAoyMJOvOSRod9eoOgIwGsLkiCXl/++I2rFmHcnsucDuNNXoBV8d5R13CyFq+ri4s6w1icRqbrdZXfW90ZjI7K+/EZMGar2dzP64/Rc853G85t1seAHVtnvFv6kOfFf8v5XH/76WFRPlTVdvjb/HMKTJW9sK4MvffrFy+MnsWQi4j8BvmgHocAR7YQAAAAAElFTkSuQmCC" x="0px" y="0px" transform="matrix(1 0 0 1 1308 77 )" />
<path d="M 0 39 L 0 6 C 0 2.64 2.6400000000001 0 6 0 L 49.6923076923076 0 L 180 0 C 183.36 0 186 2.64 186 6 L 186 39 C 186 42.36 183.36 45 180 45 L 6 45 C 2.6400000000001 45 0 42.36 0 39 Z " stroke-width="2" stroke="#269abc" fill="none" transform="matrix(1 0 0 1 1308 77 )" mask="url(#clip32)" />
</g>
</defs>
<g transform="matrix(1 0 0 1 -1307 -77 )">
<use xlink:href="#widget34" filter="url(#filter33)" />
<use xlink:href="#widget34" />
</g>
</svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save