作业列表
This commit is contained in:
parent
e73fb424a2
commit
f9ef3ec776
|
|
@ -0,0 +1,539 @@
|
||||||
|
/* Logo 字体 */
|
||||||
|
@font-face {
|
||||||
|
font-family: "iconfont logo";
|
||||||
|
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
|
||||||
|
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
|
||||||
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
|
||||||
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
|
||||||
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
font-family: "iconfont logo";
|
||||||
|
font-size: 160px;
|
||||||
|
font-style: normal;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* tabs */
|
||||||
|
.nav-tabs {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-tabs .nav-more {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
height: 42px;
|
||||||
|
line-height: 42px;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tabs {
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tabs li {
|
||||||
|
cursor: pointer;
|
||||||
|
width: 100px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 16px;
|
||||||
|
border-bottom: 2px solid transparent;
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
margin-bottom: -1px;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#tabs .active {
|
||||||
|
border-bottom-color: #f00;
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-container .content {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 页面布局 */
|
||||||
|
.main {
|
||||||
|
padding: 30px 100px;
|
||||||
|
width: 960px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main .logo {
|
||||||
|
color: #333;
|
||||||
|
text-align: left;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
line-height: 1;
|
||||||
|
height: 110px;
|
||||||
|
margin-top: -50px;
|
||||||
|
overflow: hidden;
|
||||||
|
*zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main .logo a {
|
||||||
|
font-size: 160px;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.helps {
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.helps pre {
|
||||||
|
padding: 20px;
|
||||||
|
margin: 10px 0;
|
||||||
|
border: solid 1px #e7e1cd;
|
||||||
|
background-color: #fffdef;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists {
|
||||||
|
width: 100% !important;
|
||||||
|
overflow: hidden;
|
||||||
|
*zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists li {
|
||||||
|
width: 100px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-right: 20px;
|
||||||
|
text-align: center;
|
||||||
|
list-style: none !important;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists li .code-name {
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists .icon {
|
||||||
|
display: block;
|
||||||
|
height: 100px;
|
||||||
|
line-height: 100px;
|
||||||
|
font-size: 42px;
|
||||||
|
margin: 10px auto;
|
||||||
|
color: #333;
|
||||||
|
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
|
||||||
|
-moz-transition: font-size 0.25s linear, width 0.25s linear;
|
||||||
|
transition: font-size 0.25s linear, width 0.25s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists .icon:hover {
|
||||||
|
font-size: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists .svg-icon {
|
||||||
|
/* 通过设置 font-size 来改变图标大小 */
|
||||||
|
width: 1em;
|
||||||
|
/* 图标和文字相邻时,垂直对齐 */
|
||||||
|
vertical-align: -0.15em;
|
||||||
|
/* 通过设置 color 来改变 SVG 的颜色/fill */
|
||||||
|
fill: currentColor;
|
||||||
|
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
|
||||||
|
normalize.css 中也包含这行 */
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_lists li .name,
|
||||||
|
.icon_lists li .code-name {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* markdown 样式 */
|
||||||
|
.markdown {
|
||||||
|
color: #666;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight {
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown img {
|
||||||
|
vertical-align: middle;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h1 {
|
||||||
|
color: #404040;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 40px;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h2,
|
||||||
|
.markdown h3,
|
||||||
|
.markdown h4,
|
||||||
|
.markdown h5,
|
||||||
|
.markdown h6 {
|
||||||
|
color: #404040;
|
||||||
|
margin: 1.6em 0 0.6em 0;
|
||||||
|
font-weight: 500;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h1 {
|
||||||
|
font-size: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h2 {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h3 {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h4 {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h5 {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h6 {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown hr {
|
||||||
|
height: 1px;
|
||||||
|
border: 0;
|
||||||
|
background: #e9e9e9;
|
||||||
|
margin: 16px 0;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown p {
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>p,
|
||||||
|
.markdown>blockquote,
|
||||||
|
.markdown>.highlight,
|
||||||
|
.markdown>ol,
|
||||||
|
.markdown>ul {
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown ul>li {
|
||||||
|
list-style: circle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>ul li,
|
||||||
|
.markdown blockquote ul>li {
|
||||||
|
margin-left: 20px;
|
||||||
|
padding-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>ul li p,
|
||||||
|
.markdown>ol li p {
|
||||||
|
margin: 0.6em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown ol>li {
|
||||||
|
list-style: decimal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>ol li,
|
||||||
|
.markdown blockquote ol>li {
|
||||||
|
margin-left: 20px;
|
||||||
|
padding-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown code {
|
||||||
|
margin: 0 3px;
|
||||||
|
padding: 0 5px;
|
||||||
|
background: #eee;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown strong,
|
||||||
|
.markdown b {
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0px;
|
||||||
|
empty-cells: show;
|
||||||
|
border: 1px solid #e9e9e9;
|
||||||
|
width: 95%;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>table th {
|
||||||
|
white-space: nowrap;
|
||||||
|
color: #333;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>table th,
|
||||||
|
.markdown>table td {
|
||||||
|
border: 1px solid #e9e9e9;
|
||||||
|
padding: 8px 16px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>table th {
|
||||||
|
background: #F7F7F7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown blockquote {
|
||||||
|
font-size: 90%;
|
||||||
|
color: #999;
|
||||||
|
border-left: 4px solid #e9e9e9;
|
||||||
|
padding-left: 0.8em;
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown blockquote p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown .anchor {
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown .waiting {
|
||||||
|
color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown h1:hover .anchor,
|
||||||
|
.markdown h2:hover .anchor,
|
||||||
|
.markdown h3:hover .anchor,
|
||||||
|
.markdown h4:hover .anchor,
|
||||||
|
.markdown h5:hover .anchor,
|
||||||
|
.markdown h6:hover .anchor {
|
||||||
|
opacity: 1;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown>br,
|
||||||
|
.markdown>p>br {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.hljs {
|
||||||
|
display: block;
|
||||||
|
background: white;
|
||||||
|
padding: 0.5em;
|
||||||
|
color: #333333;
|
||||||
|
overflow-x: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-comment,
|
||||||
|
.hljs-meta {
|
||||||
|
color: #969896;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-string,
|
||||||
|
.hljs-variable,
|
||||||
|
.hljs-template-variable,
|
||||||
|
.hljs-strong,
|
||||||
|
.hljs-emphasis,
|
||||||
|
.hljs-quote {
|
||||||
|
color: #df5000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-keyword,
|
||||||
|
.hljs-selector-tag,
|
||||||
|
.hljs-type {
|
||||||
|
color: #a71d5d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-literal,
|
||||||
|
.hljs-symbol,
|
||||||
|
.hljs-bullet,
|
||||||
|
.hljs-attribute {
|
||||||
|
color: #0086b3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-section,
|
||||||
|
.hljs-name {
|
||||||
|
color: #63a35c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-tag {
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-title,
|
||||||
|
.hljs-attr,
|
||||||
|
.hljs-selector-id,
|
||||||
|
.hljs-selector-class,
|
||||||
|
.hljs-selector-attr,
|
||||||
|
.hljs-selector-pseudo {
|
||||||
|
color: #795da3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-addition {
|
||||||
|
color: #55a532;
|
||||||
|
background-color: #eaffea;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-deletion {
|
||||||
|
color: #bd2c00;
|
||||||
|
background-color: #ffecec;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-link {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 代码高亮 */
|
||||||
|
/* PrismJS 1.15.0
|
||||||
|
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
|
||||||
|
/**
|
||||||
|
* prism.js default theme for JavaScript, CSS and HTML
|
||||||
|
* Based on dabblet (http://dabblet.com)
|
||||||
|
* @author Lea Verou
|
||||||
|
*/
|
||||||
|
code[class*="language-"],
|
||||||
|
pre[class*="language-"] {
|
||||||
|
color: black;
|
||||||
|
background: none;
|
||||||
|
text-shadow: 0 1px white;
|
||||||
|
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||||
|
text-align: left;
|
||||||
|
white-space: pre;
|
||||||
|
word-spacing: normal;
|
||||||
|
word-break: normal;
|
||||||
|
word-wrap: normal;
|
||||||
|
line-height: 1.5;
|
||||||
|
|
||||||
|
-moz-tab-size: 4;
|
||||||
|
-o-tab-size: 4;
|
||||||
|
tab-size: 4;
|
||||||
|
|
||||||
|
-webkit-hyphens: none;
|
||||||
|
-moz-hyphens: none;
|
||||||
|
-ms-hyphens: none;
|
||||||
|
hyphens: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre[class*="language-"]::-moz-selection,
|
||||||
|
pre[class*="language-"] ::-moz-selection,
|
||||||
|
code[class*="language-"]::-moz-selection,
|
||||||
|
code[class*="language-"] ::-moz-selection {
|
||||||
|
text-shadow: none;
|
||||||
|
background: #b3d4fc;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre[class*="language-"]::selection,
|
||||||
|
pre[class*="language-"] ::selection,
|
||||||
|
code[class*="language-"]::selection,
|
||||||
|
code[class*="language-"] ::selection {
|
||||||
|
text-shadow: none;
|
||||||
|
background: #b3d4fc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
|
||||||
|
code[class*="language-"],
|
||||||
|
pre[class*="language-"] {
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Code blocks */
|
||||||
|
pre[class*="language-"] {
|
||||||
|
padding: 1em;
|
||||||
|
margin: .5em 0;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
:not(pre)>code[class*="language-"],
|
||||||
|
pre[class*="language-"] {
|
||||||
|
background: #f5f2f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inline code */
|
||||||
|
:not(pre)>code[class*="language-"] {
|
||||||
|
padding: .1em;
|
||||||
|
border-radius: .3em;
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.comment,
|
||||||
|
.token.prolog,
|
||||||
|
.token.doctype,
|
||||||
|
.token.cdata {
|
||||||
|
color: slategray;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.punctuation {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.namespace {
|
||||||
|
opacity: .7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.property,
|
||||||
|
.token.tag,
|
||||||
|
.token.boolean,
|
||||||
|
.token.number,
|
||||||
|
.token.constant,
|
||||||
|
.token.symbol,
|
||||||
|
.token.deleted {
|
||||||
|
color: #905;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.selector,
|
||||||
|
.token.attr-name,
|
||||||
|
.token.string,
|
||||||
|
.token.char,
|
||||||
|
.token.builtin,
|
||||||
|
.token.inserted {
|
||||||
|
color: #690;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.operator,
|
||||||
|
.token.entity,
|
||||||
|
.token.url,
|
||||||
|
.language-css .token.string,
|
||||||
|
.style .token.string {
|
||||||
|
color: #9a6e3a;
|
||||||
|
background: hsla(0, 0%, 100%, .5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.atrule,
|
||||||
|
.token.attr-value,
|
||||||
|
.token.keyword {
|
||||||
|
color: #07a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.function,
|
||||||
|
.token.class-name {
|
||||||
|
color: #DD4A68;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.regex,
|
||||||
|
.token.important,
|
||||||
|
.token.variable {
|
||||||
|
color: #e90;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.important,
|
||||||
|
.token.bold {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.italic {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.entity {
|
||||||
|
cursor: help;
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,243 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: "iconfont"; /* Project id 3423846 */
|
||||||
|
src: url('iconfont.woff2?t=1710142362036') format('woff2'),
|
||||||
|
url('iconfont.woff?t=1710142362036') format('woff'),
|
||||||
|
url('iconfont.ttf?t=1710142362036') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconfont {
|
||||||
|
font-family: "iconfont" !important;
|
||||||
|
font-size: 16px;
|
||||||
|
font-style: normal;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame14:before {
|
||||||
|
content: "\e63e";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame13:before {
|
||||||
|
content: "\e63d";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-113:before {
|
||||||
|
content: "\e63a";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame12:before {
|
||||||
|
content: "\e63b";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-24:before {
|
||||||
|
content: "\e63c";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame10:before {
|
||||||
|
content: "\e639";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame9:before {
|
||||||
|
content: "\e635";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-112:before {
|
||||||
|
content: "\e636";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-33:before {
|
||||||
|
content: "\e637";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-23:before {
|
||||||
|
content: "\e638";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame8:before {
|
||||||
|
content: "\e634";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame7:before {
|
||||||
|
content: "\e632";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame6:before {
|
||||||
|
content: "\e631";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-yuejuanjilu:before {
|
||||||
|
content: "\e630";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame5:before {
|
||||||
|
content: "\e62e";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame11:before {
|
||||||
|
content: "\e62f";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-a-1:before {
|
||||||
|
content: "\e629";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame4:before {
|
||||||
|
content: "\e627";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-110:before {
|
||||||
|
content: "\e628";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame3:before {
|
||||||
|
content: "\e625";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-19:before {
|
||||||
|
content: "\e626";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame2:before {
|
||||||
|
content: "\e61b";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-18:before {
|
||||||
|
content: "\e61c";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-22:before {
|
||||||
|
content: "\e61d";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-32:before {
|
||||||
|
content: "\e61e";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-42:before {
|
||||||
|
content: "\e61f";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-51:before {
|
||||||
|
content: "\e620";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-61:before {
|
||||||
|
content: "\e621";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-71:before {
|
||||||
|
content: "\e622";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-81:before {
|
||||||
|
content: "\e623";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-91:before {
|
||||||
|
content: "\e624";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-equal:before {
|
||||||
|
content: "\e61a";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-warning:before {
|
||||||
|
content: "\e601";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-error:before {
|
||||||
|
content: "\e602";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-11:before {
|
||||||
|
content: "\e608";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame1:before {
|
||||||
|
content: "\e609";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-21:before {
|
||||||
|
content: "\e60a";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-31:before {
|
||||||
|
content: "\e60b";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-41:before {
|
||||||
|
content: "\e60c";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-9:before {
|
||||||
|
content: "\e60d";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-8:before {
|
||||||
|
content: "\e60e";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-13:before {
|
||||||
|
content: "\e60f";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-12:before {
|
||||||
|
content: "\e610";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-15:before {
|
||||||
|
content: "\e611";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-17:before {
|
||||||
|
content: "\e612";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-111:before {
|
||||||
|
content: "\e613";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-16:before {
|
||||||
|
content: "\e614";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-7:before {
|
||||||
|
content: "\e615";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-14:before {
|
||||||
|
content: "\e616";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-10:before {
|
||||||
|
content: "\e617";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-5:before {
|
||||||
|
content: "\e618";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-6:before {
|
||||||
|
content: "\e619";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-2:before {
|
||||||
|
content: "\e603";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-3:before {
|
||||||
|
content: "\e604";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-1:before {
|
||||||
|
content: "\e605";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame:before {
|
||||||
|
content: "\e606";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-Frame-4:before {
|
||||||
|
content: "\e607";
|
||||||
|
}
|
||||||
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,408 @@
|
||||||
|
{
|
||||||
|
"id": "3423846",
|
||||||
|
"name": "阅卷平台",
|
||||||
|
"font_family": "iconfont",
|
||||||
|
"css_prefix_text": "icon-",
|
||||||
|
"description": "",
|
||||||
|
"glyphs": [
|
||||||
|
{
|
||||||
|
"icon_id": "39483566",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame14",
|
||||||
|
"unicode": "e63e",
|
||||||
|
"unicode_decimal": 58942
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "39175701",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame13",
|
||||||
|
"unicode": "e63d",
|
||||||
|
"unicode_decimal": 58941
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "39173378",
|
||||||
|
"name": "Frame-1",
|
||||||
|
"font_class": "Frame-113",
|
||||||
|
"unicode": "e63a",
|
||||||
|
"unicode_decimal": 58938
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "39173379",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame12",
|
||||||
|
"unicode": "e63b",
|
||||||
|
"unicode_decimal": 58939
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "39173377",
|
||||||
|
"name": "Frame-2",
|
||||||
|
"font_class": "Frame-24",
|
||||||
|
"unicode": "e63c",
|
||||||
|
"unicode_decimal": 58940
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "39036939",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame10",
|
||||||
|
"unicode": "e639",
|
||||||
|
"unicode_decimal": 58937
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "38951584",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame9",
|
||||||
|
"unicode": "e635",
|
||||||
|
"unicode_decimal": 58933
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "38951583",
|
||||||
|
"name": "Frame-1",
|
||||||
|
"font_class": "Frame-112",
|
||||||
|
"unicode": "e636",
|
||||||
|
"unicode_decimal": 58934
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "38951582",
|
||||||
|
"name": "Frame-3",
|
||||||
|
"font_class": "Frame-33",
|
||||||
|
"unicode": "e637",
|
||||||
|
"unicode_decimal": 58935
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "38951581",
|
||||||
|
"name": "Frame-2",
|
||||||
|
"font_class": "Frame-23",
|
||||||
|
"unicode": "e638",
|
||||||
|
"unicode_decimal": 58936
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "38561727",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame8",
|
||||||
|
"unicode": "e634",
|
||||||
|
"unicode_decimal": 58932
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "38318831",
|
||||||
|
"name": "继续阅卷",
|
||||||
|
"font_class": "Frame7",
|
||||||
|
"unicode": "e632",
|
||||||
|
"unicode_decimal": 58930
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "38307813",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame6",
|
||||||
|
"unicode": "e631",
|
||||||
|
"unicode_decimal": 58929
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "38304788",
|
||||||
|
"name": "阅卷记录",
|
||||||
|
"font_class": "yuejuanjilu",
|
||||||
|
"unicode": "e630",
|
||||||
|
"unicode_decimal": 58928
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "38108247",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame5",
|
||||||
|
"unicode": "e62e",
|
||||||
|
"unicode_decimal": 58926
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "38108264",
|
||||||
|
"name": "Frame1",
|
||||||
|
"font_class": "Frame11",
|
||||||
|
"unicode": "e62f",
|
||||||
|
"unicode_decimal": 58927
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "36030549",
|
||||||
|
"name": "1",
|
||||||
|
"font_class": "a-1",
|
||||||
|
"unicode": "e629",
|
||||||
|
"unicode_decimal": 58921
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "36025847",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame4",
|
||||||
|
"unicode": "e627",
|
||||||
|
"unicode_decimal": 58919
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "36025848",
|
||||||
|
"name": "Frame-1",
|
||||||
|
"font_class": "Frame-110",
|
||||||
|
"unicode": "e628",
|
||||||
|
"unicode_decimal": 58920
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "35726114",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame3",
|
||||||
|
"unicode": "e625",
|
||||||
|
"unicode_decimal": 58917
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "35726115",
|
||||||
|
"name": "Frame-1",
|
||||||
|
"font_class": "Frame-19",
|
||||||
|
"unicode": "e626",
|
||||||
|
"unicode_decimal": 58918
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "35408271",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame2",
|
||||||
|
"unicode": "e61b",
|
||||||
|
"unicode_decimal": 58907
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "35408272",
|
||||||
|
"name": "Frame-1",
|
||||||
|
"font_class": "Frame-18",
|
||||||
|
"unicode": "e61c",
|
||||||
|
"unicode_decimal": 58908
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "35408273",
|
||||||
|
"name": "Frame-2",
|
||||||
|
"font_class": "Frame-22",
|
||||||
|
"unicode": "e61d",
|
||||||
|
"unicode_decimal": 58909
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "35408283",
|
||||||
|
"name": "Frame-3",
|
||||||
|
"font_class": "Frame-32",
|
||||||
|
"unicode": "e61e",
|
||||||
|
"unicode_decimal": 58910
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "35408284",
|
||||||
|
"name": "Frame-4",
|
||||||
|
"font_class": "Frame-42",
|
||||||
|
"unicode": "e61f",
|
||||||
|
"unicode_decimal": 58911
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "35408288",
|
||||||
|
"name": "Frame-5",
|
||||||
|
"font_class": "Frame-51",
|
||||||
|
"unicode": "e620",
|
||||||
|
"unicode_decimal": 58912
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "35408289",
|
||||||
|
"name": "Frame-6",
|
||||||
|
"font_class": "Frame-61",
|
||||||
|
"unicode": "e621",
|
||||||
|
"unicode_decimal": 58913
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "35408298",
|
||||||
|
"name": "Frame-7",
|
||||||
|
"font_class": "Frame-71",
|
||||||
|
"unicode": "e622",
|
||||||
|
"unicode_decimal": 58914
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "35408300",
|
||||||
|
"name": "Frame-8",
|
||||||
|
"font_class": "Frame-81",
|
||||||
|
"unicode": "e623",
|
||||||
|
"unicode_decimal": 58915
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "35408317",
|
||||||
|
"name": "Frame-9",
|
||||||
|
"font_class": "Frame-91",
|
||||||
|
"unicode": "e624",
|
||||||
|
"unicode_decimal": 58916
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "30190804",
|
||||||
|
"name": "equal",
|
||||||
|
"font_class": "equal",
|
||||||
|
"unicode": "e61a",
|
||||||
|
"unicode_decimal": 58906
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "30183282",
|
||||||
|
"name": "warning",
|
||||||
|
"font_class": "warning",
|
||||||
|
"unicode": "e601",
|
||||||
|
"unicode_decimal": 58881
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "30183283",
|
||||||
|
"name": "error",
|
||||||
|
"font_class": "error",
|
||||||
|
"unicode": "e602",
|
||||||
|
"unicode_decimal": 58882
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930405",
|
||||||
|
"name": "Frame-1",
|
||||||
|
"font_class": "Frame-11",
|
||||||
|
"unicode": "e608",
|
||||||
|
"unicode_decimal": 58888
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930406",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame1",
|
||||||
|
"unicode": "e609",
|
||||||
|
"unicode_decimal": 58889
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930407",
|
||||||
|
"name": "Frame-2",
|
||||||
|
"font_class": "Frame-21",
|
||||||
|
"unicode": "e60a",
|
||||||
|
"unicode_decimal": 58890
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930408",
|
||||||
|
"name": "Frame-3",
|
||||||
|
"font_class": "Frame-31",
|
||||||
|
"unicode": "e60b",
|
||||||
|
"unicode_decimal": 58891
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930409",
|
||||||
|
"name": "Frame-4",
|
||||||
|
"font_class": "Frame-41",
|
||||||
|
"unicode": "e60c",
|
||||||
|
"unicode_decimal": 58892
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930410",
|
||||||
|
"name": "Frame-9",
|
||||||
|
"font_class": "Frame-9",
|
||||||
|
"unicode": "e60d",
|
||||||
|
"unicode_decimal": 58893
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930411",
|
||||||
|
"name": "Frame-8",
|
||||||
|
"font_class": "Frame-8",
|
||||||
|
"unicode": "e60e",
|
||||||
|
"unicode_decimal": 58894
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930412",
|
||||||
|
"name": "Frame-13",
|
||||||
|
"font_class": "Frame-13",
|
||||||
|
"unicode": "e60f",
|
||||||
|
"unicode_decimal": 58895
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930413",
|
||||||
|
"name": "Frame-12",
|
||||||
|
"font_class": "Frame-12",
|
||||||
|
"unicode": "e610",
|
||||||
|
"unicode_decimal": 58896
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930414",
|
||||||
|
"name": "Frame-15",
|
||||||
|
"font_class": "Frame-15",
|
||||||
|
"unicode": "e611",
|
||||||
|
"unicode_decimal": 58897
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930415",
|
||||||
|
"name": "Frame-17",
|
||||||
|
"font_class": "Frame-17",
|
||||||
|
"unicode": "e612",
|
||||||
|
"unicode_decimal": 58898
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930416",
|
||||||
|
"name": "Frame-11",
|
||||||
|
"font_class": "Frame-111",
|
||||||
|
"unicode": "e613",
|
||||||
|
"unicode_decimal": 58899
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930417",
|
||||||
|
"name": "Frame-16",
|
||||||
|
"font_class": "Frame-16",
|
||||||
|
"unicode": "e614",
|
||||||
|
"unicode_decimal": 58900
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930418",
|
||||||
|
"name": "Frame-7",
|
||||||
|
"font_class": "Frame-7",
|
||||||
|
"unicode": "e615",
|
||||||
|
"unicode_decimal": 58901
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930419",
|
||||||
|
"name": "Frame-14",
|
||||||
|
"font_class": "Frame-14",
|
||||||
|
"unicode": "e616",
|
||||||
|
"unicode_decimal": 58902
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930420",
|
||||||
|
"name": "Frame-10",
|
||||||
|
"font_class": "Frame-10",
|
||||||
|
"unicode": "e617",
|
||||||
|
"unicode_decimal": 58903
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930421",
|
||||||
|
"name": "Frame-5",
|
||||||
|
"font_class": "Frame-5",
|
||||||
|
"unicode": "e618",
|
||||||
|
"unicode_decimal": 58904
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29930422",
|
||||||
|
"name": "Frame-6",
|
||||||
|
"font_class": "Frame-6",
|
||||||
|
"unicode": "e619",
|
||||||
|
"unicode_decimal": 58905
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29929656",
|
||||||
|
"name": "Frame-2",
|
||||||
|
"font_class": "Frame-2",
|
||||||
|
"unicode": "e603",
|
||||||
|
"unicode_decimal": 58883
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29929657",
|
||||||
|
"name": "Frame-3",
|
||||||
|
"font_class": "Frame-3",
|
||||||
|
"unicode": "e604",
|
||||||
|
"unicode_decimal": 58884
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29929658",
|
||||||
|
"name": "Frame-1",
|
||||||
|
"font_class": "Frame-1",
|
||||||
|
"unicode": "e605",
|
||||||
|
"unicode_decimal": 58885
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29929659",
|
||||||
|
"name": "Frame",
|
||||||
|
"font_class": "Frame",
|
||||||
|
"unicode": "e606",
|
||||||
|
"unicode_decimal": 58886
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "29929660",
|
||||||
|
"name": "Frame-4",
|
||||||
|
"font_class": "Frame-4",
|
||||||
|
"unicode": "e607",
|
||||||
|
"unicode_decimal": 58887
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 47 KiB |
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:dio/dio.dart' hide Headers;
|
import 'package:dio/dio.dart' hide Headers;
|
||||||
import 'package:retrofit/retrofit.dart';
|
import 'package:retrofit/retrofit.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/enum_subject.dart';
|
||||||
import 'package:school_asignment_app/common/job/user_info_detail.dart';
|
import 'package:school_asignment_app/common/job/user_info_detail.dart';
|
||||||
import 'package:school_asignment_app/common/job/work_student.dart';
|
import 'package:school_asignment_app/common/job/work_student.dart';
|
||||||
import 'package:school_asignment_app/common/job/work_student_params.dart';
|
import 'package:school_asignment_app/common/job/work_student_params.dart';
|
||||||
|
|
@ -19,4 +20,7 @@ abstract class RetrofitClient {
|
||||||
|
|
||||||
@GET("/api/hms/Homework/GetList")
|
@GET("/api/hms/Homework/GetList")
|
||||||
Future<WorkStudent> getWorkList(@Queries() WorkStudentParams params);
|
Future<WorkStudent> getWorkList(@Queries() WorkStudentParams params);
|
||||||
|
|
||||||
|
@GET("/api/app/Common/GetEnumInfos")
|
||||||
|
Future<Map<String,List<EnumSubject>>> getEnumSubjectList(@Query('enumNames') String enumNames);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
|
|
||||||
|
part 'enum_subject.g.dart';
|
||||||
|
|
||||||
|
|
||||||
|
@JsonSerializable()
|
||||||
|
class EnumSubject extends Object {
|
||||||
|
|
||||||
|
@JsonKey(name: 'id')
|
||||||
|
int id;
|
||||||
|
|
||||||
|
@JsonKey(name: 'name')
|
||||||
|
String name;
|
||||||
|
|
||||||
|
EnumSubject(this.id,this.name,);
|
||||||
|
|
||||||
|
factory EnumSubject.fromJson(Map<String, dynamic> srcJson) => _$EnumSubjectFromJson(srcJson);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$EnumSubjectToJson(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -49,7 +49,7 @@ class Items extends Object {
|
||||||
int collectRate;
|
int collectRate;
|
||||||
|
|
||||||
@JsonKey(name: 'annotateRate')
|
@JsonKey(name: 'annotateRate')
|
||||||
int annotateRate;
|
double annotateRate;
|
||||||
|
|
||||||
@JsonKey(name: 'classes')
|
@JsonKey(name: 'classes')
|
||||||
List<Classes> classes;
|
List<Classes> classes;
|
||||||
|
|
@ -60,7 +60,11 @@ class Items extends Object {
|
||||||
@JsonKey(name: 'creationTime')
|
@JsonKey(name: 'creationTime')
|
||||||
String creationTime;
|
String creationTime;
|
||||||
|
|
||||||
Items(this.id,this.assessType,this.name,this.grade,this.subject,this.publishTime,this.state,this.collectRate,this.annotateRate,this.classes,this.creatorName,this.creationTime,);
|
@JsonKey(name: 'classCount')
|
||||||
|
int? classCount;
|
||||||
|
|
||||||
|
|
||||||
|
Items(this.id,this.assessType,this.name,this.grade,this.subject,this.publishTime,this.state,this.collectRate,this.annotateRate,this.classes,this.creatorName,this.creationTime,this.classCount);
|
||||||
|
|
||||||
factory Items.fromJson(Map<String, dynamic> srcJson) => _$ItemsFromJson(srcJson);
|
factory Items.fromJson(Map<String, dynamic> srcJson) => _$ItemsFromJson(srcJson);
|
||||||
|
|
||||||
|
|
@ -85,7 +89,7 @@ class Classes extends Object {
|
||||||
String className;
|
String className;
|
||||||
|
|
||||||
@JsonKey(name: 'finishTime')
|
@JsonKey(name: 'finishTime')
|
||||||
String finishTime;
|
String? finishTime;
|
||||||
|
|
||||||
Classes(this.schoolId,this.schoolName,this.classId,this.className,this.finishTime,);
|
Classes(this.schoolId,this.schoolName,this.classId,this.className,this.finishTime,);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/enum_subject.dart';
|
||||||
import 'package:school_asignment_app/common/job/user_info.dart';
|
import 'package:school_asignment_app/common/job/user_info.dart';
|
||||||
import 'package:school_asignment_app/common/job/user_info_detail.dart';
|
import 'package:school_asignment_app/common/job/user_info_detail.dart';
|
||||||
|
import 'package:school_asignment_app/common/mixins/request_tool_mixin.dart';
|
||||||
import 'package:school_asignment_app/common/utils/storage.dart';
|
import 'package:school_asignment_app/common/utils/storage.dart';
|
||||||
import 'package:school_asignment_app/common/store/app_storage_key.dart';
|
import 'package:school_asignment_app/common/store/app_storage_key.dart';
|
||||||
import 'package:school_asignment_app/routes/app_pages.dart';
|
import 'package:school_asignment_app/routes/app_pages.dart';
|
||||||
|
|
||||||
class UserStore extends GetxController {
|
class UserStore extends GetxController with RequestToolMixin{
|
||||||
UserStore._privateConstructor() {
|
UserStore._privateConstructor() {
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
@ -28,6 +30,8 @@ class UserStore extends GetxController {
|
||||||
/// 用户详细信息
|
/// 用户详细信息
|
||||||
Rx<UserInfoDetail?> userDetailInfo = Rx(null);
|
Rx<UserInfoDetail?> userDetailInfo = Rx(null);
|
||||||
|
|
||||||
|
RxList<EnumSubject> subjectList = RxList();
|
||||||
|
|
||||||
void init() {
|
void init() {
|
||||||
token = StorageService.to.read(AppStorageKey.token.value) ?? '';
|
token = StorageService.to.read(AppStorageKey.token.value) ?? '';
|
||||||
try {
|
try {
|
||||||
|
|
@ -68,4 +72,10 @@ class UserStore extends GetxController {
|
||||||
userDetailInfo.value = info;
|
userDetailInfo.value = info;
|
||||||
StorageService.to.write(AppStorageKey.userDetailInfo.value, info);
|
StorageService.to.write(AppStorageKey.userDetailInfo.value, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取科目
|
||||||
|
getSubjectList() async {
|
||||||
|
var res = await getClient().getEnumSubjectList('EnumSubject');
|
||||||
|
subjectList.value = res['EnumSubject']!;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
class Utils{
|
class Utils{
|
||||||
|
|
@ -14,4 +15,25 @@ class Utils{
|
||||||
FocusManager.instance.primaryFocus?.unfocus();
|
FocusManager.instance.primaryFocus?.unfocus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 是否是平板
|
||||||
|
static bool isPad([double mobilePhoneScale = 1.2]) {
|
||||||
|
return ScreenUtil().scaleWidth > mobilePhoneScale;
|
||||||
|
}
|
||||||
|
|
||||||
|
static String getDoubleRemoveZero(double? val, [String? defaultVal]) {
|
||||||
|
try {
|
||||||
|
if (val == null) throw Exception('数据为空');
|
||||||
|
List<String> _valArr = val.toString().split('.');
|
||||||
|
if (_valArr.length >= 2) {
|
||||||
|
if (int.parse(_valArr[1]) == 0) {
|
||||||
|
return val.toInt().toString();
|
||||||
|
}
|
||||||
|
return val.toString();
|
||||||
|
}
|
||||||
|
return val.toInt().toString();
|
||||||
|
} catch (e) {
|
||||||
|
return defaultVal ?? '';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -39,6 +39,7 @@ class MyApp extends StatelessWidget {
|
||||||
theme: ThemeData(
|
theme: ThemeData(
|
||||||
brightness: Brightness.light,
|
brightness: Brightness.light,
|
||||||
primarySwatch: createMaterialColor(const Color.fromRGBO(46, 91, 255, 1)),
|
primarySwatch: createMaterialColor(const Color.fromRGBO(46, 91, 255, 1)),
|
||||||
|
primaryColor: const Color.fromRGBO(46, 91, 255, 1),
|
||||||
// textTheme: Typography.englishLike2018.apply(fontSizeFactor: 1.sp,),
|
// textTheme: Typography.englishLike2018.apply(fontSizeFactor: 1.sp,),
|
||||||
primaryTextTheme: TextTheme(
|
primaryTextTheme: TextTheme(
|
||||||
bodyLarge: TextStyle(fontSize: 14.sp, color: Colors.black87),
|
bodyLarge: TextStyle(fontSize: 14.sp, color: Colors.black87),
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
/*
|
||||||
|
* @Descripttion:
|
||||||
|
* @version:
|
||||||
|
* @Author: wy
|
||||||
|
* @Date: 2020-07-01 15:45:15
|
||||||
|
* @LastEditors: wangyang 1147192855@qq.com
|
||||||
|
* @LastEditTime: 2022-07-19 11:14:07
|
||||||
|
*/
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
|
||||||
|
class MyEmptyWidget extends StatelessWidget {
|
||||||
|
static const String defText = "抱歉,暂无内容";
|
||||||
|
static const String defimg = "assets/images/not_data_bgm2.png";
|
||||||
|
final String? textVal;
|
||||||
|
final String? imgAssetPath;
|
||||||
|
final AlignmentGeometry alignment;
|
||||||
|
final EdgeInsets? padding;
|
||||||
|
final double? imgWidth;
|
||||||
|
final double? imgHeight;
|
||||||
|
const MyEmptyWidget(
|
||||||
|
{this.imgWidth,
|
||||||
|
this.imgHeight,
|
||||||
|
this.textVal,
|
||||||
|
this.padding,
|
||||||
|
this.imgAssetPath,
|
||||||
|
this.alignment = Alignment.center,
|
||||||
|
Key? key})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Container(
|
||||||
|
padding: padding ?? EdgeInsets.only(bottom: 40.r),
|
||||||
|
alignment: alignment,
|
||||||
|
child: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: <Widget>[
|
||||||
|
Opacity(
|
||||||
|
opacity: 0.6,
|
||||||
|
child: Image.asset(
|
||||||
|
imgAssetPath ?? defimg,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
width: imgWidth ?? 150.w,
|
||||||
|
height: imgHeight ?? 150.w,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.only(top: 5.h),
|
||||||
|
child: Text(
|
||||||
|
textVal ?? defText,
|
||||||
|
style: TextStyle(fontSize: 12.sp, color: const Color(0xB2898B8D)),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,37 +1,142 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_easyrefresh/easy_refresh.dart';
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:get_storage/get_storage.dart';
|
import 'package:school_asignment_app/common/job/enum_subject.dart';
|
||||||
import 'package:school_asignment_app/common/job/work_student.dart';
|
import 'package:school_asignment_app/common/job/work_student.dart';
|
||||||
import 'package:school_asignment_app/common/job/work_student_params.dart';
|
import 'package:school_asignment_app/common/job/work_student_params.dart';
|
||||||
import 'package:school_asignment_app/common/mixins/request_tool_mixin.dart';
|
import 'package:school_asignment_app/common/mixins/request_tool_mixin.dart';
|
||||||
import 'package:school_asignment_app/common/store/user_store.dart';
|
import 'package:school_asignment_app/common/store/user_store.dart';
|
||||||
|
import 'package:school_asignment_app/common/utils/toast_utils.dart';
|
||||||
|
import 'package:school_asignment_app/page/global_widget/my_text.dart';
|
||||||
|
|
||||||
import 'home_state.dart';
|
import 'home_state.dart';
|
||||||
|
|
||||||
class HomeLogic extends GetxController with RequestToolMixin,GetTickerProviderStateMixin{
|
class HomeLogic extends GetxController with RequestToolMixin,GetTickerProviderStateMixin{
|
||||||
final HomeState state = HomeState();
|
final HomeState state = HomeState();
|
||||||
late TabController tabController;
|
late TabController tabController;
|
||||||
|
/* 待阅卷 */
|
||||||
|
late final EasyRefreshController refreshController1;
|
||||||
|
late final EasyRefreshController refreshController2;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit(){
|
void onInit(){
|
||||||
super.onInit();
|
super.onInit();
|
||||||
state.userInfo = UserStore.to.userInfo;
|
state.userInfo = UserStore.to.userInfo;
|
||||||
state.active = Get.arguments ?? 1;
|
state.active = Get.arguments ?? 1;
|
||||||
|
refreshController1 = EasyRefreshController();
|
||||||
|
refreshController2 = EasyRefreshController();
|
||||||
tabController = TabController(
|
tabController = TabController(
|
||||||
length: 2,
|
length: 2,
|
||||||
vsync: this,
|
vsync: this,
|
||||||
);
|
);
|
||||||
print('state.active=${state.active}');
|
|
||||||
getList();
|
getList();
|
||||||
}
|
}
|
||||||
void getList() async{
|
void getList() async{
|
||||||
WorkStudentParams params = WorkStudentParams(assessType: 0,);
|
WorkStudentParams params = WorkStudentParams(assessType: state.tabIndex.value,);
|
||||||
WorkStudent data = await getClient().getWorkList(params);
|
WorkStudent data = await getClient().getWorkList(params);
|
||||||
state.workList.value = data.items;
|
state.workList.value = data.items;
|
||||||
|
refreshController1.finishRefresh();
|
||||||
|
refreshController2.finishRefresh();
|
||||||
|
print('state.workList.length=');
|
||||||
|
print(state.workList.length);
|
||||||
}
|
}
|
||||||
|
/// 刷新方法
|
||||||
|
Future<void> onMyRefresh(EasyRefreshController controller, int tab) async {
|
||||||
|
/* params.page = RequestConfig.basePage.page;
|
||||||
|
List<JobTaskItem> lists = await getData(controller, params, isReFresh: true);
|
||||||
|
try {
|
||||||
|
tab == 1 ? (markingDatas1 = lists) : (markingDatas2 = lists);
|
||||||
|
} catch (e) {}
|
||||||
|
toUpState(setState, () {}, mounted);*/
|
||||||
|
getList();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 加载方法
|
||||||
|
Future<void> onMyLoad(EasyRefreshController controller, int tab) async {
|
||||||
|
/*params.page++;
|
||||||
|
List<JobTaskItem> lists = await getData(controller, params);
|
||||||
|
if (lists.isNotEmpty) {
|
||||||
|
tab == 1 ? markingDatas1.addAll(lists) : markingDatas2.addAll(lists);
|
||||||
|
toUpState(setState, () {}, mounted);
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
String formatSubject(int id){
|
||||||
|
if(UserStore.to.subjectList.isEmpty){
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
EnumSubject item = UserStore.to.subjectList.firstWhere((element) => element.id == id);
|
||||||
|
return item.name??'';
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Future<void> showStudents(
|
||||||
|
BuildContext context, [
|
||||||
|
bool? submitted = false,
|
||||||
|
String? className,
|
||||||
|
]) async {
|
||||||
|
ToastUtils.showLoading();
|
||||||
|
List<JobConcernedWithStudent> students = [];
|
||||||
|
|
||||||
|
showModalBottomSheet(
|
||||||
|
context: context,
|
||||||
|
elevation: 10,
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.only(
|
||||||
|
topLeft: Radius.circular(20.r),
|
||||||
|
topRight: Radius.circular(20.r),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
builder: (BuildContext context) {
|
||||||
|
return Padding(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 2.w),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(top: 14.h),
|
||||||
|
child: quickText(
|
||||||
|
'${className ?? ''}${submitted! ? '已提交' : '未提交'}作业学生',
|
||||||
|
size: 18.sp,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
color: Color.fromRGBO(60, 60, 60, 1),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: ListView(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 8.h, horizontal: 4.w),
|
||||||
|
children: [
|
||||||
|
Wrap(
|
||||||
|
spacing: 6.0, // 主轴(水平)方向间距
|
||||||
|
runSpacing: 4.0, // 纵轴(垂直)方向间距
|
||||||
|
alignment: WrapAlignment.spaceAround, //沿主轴方向居中
|
||||||
|
children: students.map((e) {
|
||||||
|
return Chip(
|
||||||
|
backgroundColor: Color.fromRGBO(239, 242, 255, 1),
|
||||||
|
avatar: CircleAvatar(
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
child: quickText(e.studentName.substring(0, 1),
|
||||||
|
size: 12.sp, color: Theme.of(context).primaryColor),
|
||||||
|
),
|
||||||
|
label: quickText(e.studentName, color: Color.fromRGBO(80, 94, 110, 1), size: 12.sp),
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}*/
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose(){
|
void dispose(){
|
||||||
super.dispose();
|
super.dispose();
|
||||||
tabController.dispose();
|
tabController.dispose();
|
||||||
|
refreshController1.dispose();
|
||||||
|
refreshController2.dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/enum_subject.dart';
|
||||||
import 'package:school_asignment_app/common/job/user_info.dart';
|
import 'package:school_asignment_app/common/job/user_info.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/work_student.dart';
|
||||||
|
import 'package:school_asignment_app/common/store/user_store.dart';
|
||||||
|
|
||||||
class HomeState {
|
class HomeState {
|
||||||
HomeState() {
|
HomeState() {
|
||||||
|
|
@ -9,7 +12,7 @@ class HomeState {
|
||||||
|
|
||||||
late Rx<UserInfo?> userInfo;
|
late Rx<UserInfo?> userInfo;
|
||||||
int active = 1;
|
int active = 1;
|
||||||
late RxList workList = RxList();
|
late RxList<Items> workList = RxList();
|
||||||
late RxInt tabIndex = 0.obs;
|
late RxInt tabIndex = 0.obs;
|
||||||
late bool completedToRefresh = true;
|
late bool completedToRefresh = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,18 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_easyrefresh/easy_refresh.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
import 'package:functional_widget_annotation/functional_widget_annotation.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:get_storage/get_storage.dart';
|
import 'package:get_storage/get_storage.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/work_student.dart';
|
||||||
import 'package:school_asignment_app/common/store/app_storage_key.dart';
|
import 'package:school_asignment_app/common/store/app_storage_key.dart';
|
||||||
import 'package:school_asignment_app/common/utils/storage.dart';
|
import 'package:school_asignment_app/common/utils/storage.dart';
|
||||||
|
import 'package:school_asignment_app/common/utils/utils.dart';
|
||||||
|
import 'package:school_asignment_app/page/global_widget/MyEmptyWidget.dart';
|
||||||
import 'package:school_asignment_app/page/global_widget/global_scaffold.dart';
|
import 'package:school_asignment_app/page/global_widget/global_scaffold.dart';
|
||||||
import 'package:school_asignment_app/page/global_widget/my_text.dart';
|
import 'package:school_asignment_app/page/global_widget/my_text.dart';
|
||||||
|
import 'package:school_asignment_app/page/home_page/widget/task_list_item.dart';
|
||||||
import 'package:school_asignment_app/page/home_page/widget/top_user_info.dart';
|
import 'package:school_asignment_app/page/home_page/widget/top_user_info.dart';
|
||||||
import 'package:school_asignment_app/routes/app_pages.dart';
|
import 'package:school_asignment_app/routes/app_pages.dart';
|
||||||
|
|
||||||
|
|
@ -54,7 +60,7 @@ class _HomePageState extends State<HomePage> {
|
||||||
child: Row(
|
child: Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Expanded(flex: 1, child: SizedBox()),
|
const Expanded(flex: 1, child: SizedBox()),
|
||||||
Expanded(
|
Expanded(
|
||||||
flex: 4,
|
flex: 4,
|
||||||
child: Container(
|
child: Container(
|
||||||
|
|
@ -88,6 +94,7 @@ class _HomePageState extends State<HomePage> {
|
||||||
// _refreshController2.callRefresh();
|
// _refreshController2.callRefresh();
|
||||||
state.completedToRefresh = false;
|
state.completedToRefresh = false;
|
||||||
}
|
}
|
||||||
|
logic.getList();
|
||||||
},
|
},
|
||||||
tabs: <Widget>[
|
tabs: <Widget>[
|
||||||
Tab(
|
Tab(
|
||||||
|
|
@ -167,15 +174,16 @@ class _HomePageState extends State<HomePage> {
|
||||||
transition: getTransition());*/
|
transition: getTransition());*/
|
||||||
},
|
},
|
||||||
child: Icon(
|
child: Icon(
|
||||||
IconData(0xe63e, fontFamily: "AlibabaIcon"),
|
const IconData(
|
||||||
color: Color.fromRGBO(44, 48, 63, 1),
|
0xe63e, fontFamily: "AlibabaIcon"),
|
||||||
|
color: const Color.fromRGBO(44, 48, 63, 1),
|
||||||
size: 24.sp),
|
size: 24.sp),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
/* if (state.tabIndex.value == 1)
|
/* if (state.tabIndex.value == 1)
|
||||||
$CompletedJobConditionFilter(
|
$CompletedJobConditionFilter(
|
||||||
controller: _tabController2,
|
controller: _tabController2,
|
||||||
jobType: params2.markingType ?? 1,
|
jobType: params2.markingType ?? 1,
|
||||||
|
|
@ -202,31 +210,32 @@ class _HomePageState extends State<HomePage> {
|
||||||
_refreshController2.callRefresh();
|
_refreshController2.callRefresh();
|
||||||
},
|
},
|
||||||
),*/
|
),*/
|
||||||
/* Expanded(
|
Expanded(
|
||||||
child: Obx(() {
|
child: IndexedStack(
|
||||||
return IndexedStack(
|
|
||||||
index: state.tabIndex.value,
|
index: state.tabIndex.value,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
$EasyRefresh(
|
$easyRefresh(
|
||||||
controller: _refreshController1,
|
controller: logic.refreshController1,
|
||||||
params: params1,
|
|
||||||
tab: 1,
|
tab: 1,
|
||||||
data: markingDatas1,
|
type: state.active,
|
||||||
onLoad: onMyLoad,
|
data: state.workList,
|
||||||
onRefresh: onMyRefresh,
|
onLoad: logic.onMyLoad,
|
||||||
|
onRefresh: logic.onMyRefresh,
|
||||||
|
logic: logic
|
||||||
),
|
),
|
||||||
$EasyRefresh(
|
$easyRefresh(
|
||||||
controller: _refreshController2,
|
controller: logic.refreshController2,
|
||||||
params: params2,
|
|
||||||
tab: 2,
|
tab: 2,
|
||||||
data: markingDatas2,
|
type: state.active,
|
||||||
onLoad: onMyLoad,
|
data: state.workList,
|
||||||
onRefresh: onMyRefresh,
|
onLoad: logic.onMyLoad,
|
||||||
|
onRefresh: logic.onMyRefresh,
|
||||||
|
logic: logic
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
)
|
||||||
}),
|
|
||||||
),*/
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
@ -241,4 +250,215 @@ class _HomePageState extends State<HomePage> {
|
||||||
Get.delete<HomeLogic>();
|
Get.delete<HomeLogic>();
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 已阅卷
|
||||||
|
/// OnRefreshCallback? onRefresh
|
||||||
|
///
|
||||||
|
@swidget
|
||||||
|
Widget $easyRefresh({
|
||||||
|
required EasyRefreshController controller,
|
||||||
|
required Future<
|
||||||
|
void> Function(EasyRefreshController controller, int tab) onRefresh,
|
||||||
|
required Future<
|
||||||
|
void> Function(EasyRefreshController controller, int tab) onLoad,
|
||||||
|
required List<Items> data,
|
||||||
|
required int tab,
|
||||||
|
required int type,
|
||||||
|
required HomeLogic logic,
|
||||||
|
}) {
|
||||||
|
bool completed = tab == 2; // 是否是待批阅
|
||||||
|
bool isPadFlag = Utils.isPad();
|
||||||
|
return Obx(() {
|
||||||
|
return EasyRefresh(
|
||||||
|
firstRefresh: false,
|
||||||
|
taskIndependence: true,
|
||||||
|
/*enableControlFinishLoad: true,
|
||||||
|
enableControlFinishRefresh: true,*/
|
||||||
|
emptyWidget: data.isEmpty ? const MyEmptyWidget() : null,
|
||||||
|
controller: controller,
|
||||||
|
header: MaterialHeader(),
|
||||||
|
footer: TaurusFooter(),
|
||||||
|
child: completed && isPadFlag
|
||||||
|
? GridView(
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
top: 11.h, bottom: 10.h, left: 12.w, right: 12.w),
|
||||||
|
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
||||||
|
crossAxisCount: 2, //横轴三个子widget
|
||||||
|
mainAxisSpacing: 10.h,
|
||||||
|
crossAxisSpacing: 6.w,
|
||||||
|
childAspectRatio: 1.81 //宽高比为1时,子widget
|
||||||
|
),
|
||||||
|
children: List.generate(data.length, (index) {
|
||||||
|
Items item = data[index];
|
||||||
|
String subjectName = logic.formatSubject(item.subject);
|
||||||
|
return $reviewedItem(jobTaskItem: item,type: type,subjectName:subjectName);
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
: ListView.builder(
|
||||||
|
padding: EdgeInsets.only(top: 11.h, bottom: 10.h, left: 12.w, right: 12.w),
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
Items item = data[index];
|
||||||
|
return TaskListItem(completed:completed,jobTaskItem:item,type:type,logic: logic,);
|
||||||
|
/*HomeworkTasksViewItem(
|
||||||
|
completed: completed,
|
||||||
|
jobTaskItem: data[index],
|
||||||
|
call: () => controller.callRefresh(),
|
||||||
|
);*/
|
||||||
|
},
|
||||||
|
itemCount: data.length,
|
||||||
|
),
|
||||||
|
onRefresh: () => onRefresh(controller, tab),
|
||||||
|
onLoad: () => onLoad(controller, tab),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@swidget
|
||||||
|
Widget $reviewedItem({ required Items jobTaskItem, required int type,required String subjectName}) {
|
||||||
|
EdgeInsets padEdg = EdgeInsets.symmetric(horizontal: 10.w);
|
||||||
|
|
||||||
|
return InkWell(
|
||||||
|
onTap: () {
|
||||||
|
/* String url =
|
||||||
|
'${RouterManager.jobListParticipateInClassPath}?&jobId=${jobTaskItem.id}&genderName=${Uri.encodeComponent(jobTaskItem.genderName)}&jobName=${Uri.encodeComponent(jobTaskItem.title)}&completed=${true}';
|
||||||
|
RouterManager.router.navigateTo(context, url, transition: getTransition());*/
|
||||||
|
},
|
||||||
|
child: Container(
|
||||||
|
padding: EdgeInsets.only(top: 10.h),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(6.r),
|
||||||
|
color: Colors.white,
|
||||||
|
boxShadow: const [
|
||||||
|
BoxShadow(
|
||||||
|
color: Color.fromRGBO(210, 216, 241, 1),
|
||||||
|
offset: Offset.zero, //阴影y轴偏移量
|
||||||
|
blurRadius: 5.8, //阴影模糊程度
|
||||||
|
spreadRadius: 0, //阴影扩散程度
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
// 顶部任务名称
|
||||||
|
Padding(
|
||||||
|
padding: padEdg,
|
||||||
|
child: Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
width: 32.w,
|
||||||
|
height: 18.h,
|
||||||
|
alignment: Alignment.center,
|
||||||
|
padding: EdgeInsets.only(left: 2.w),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: type == 1
|
||||||
|
? const Color.fromRGBO(104, 136, 253, 1)
|
||||||
|
: const Color.fromRGBO(255, 175, 56, 1),
|
||||||
|
borderRadius: BorderRadius.only(
|
||||||
|
topLeft: Radius.circular(14.r),
|
||||||
|
topRight: Radius.circular(3.r),
|
||||||
|
bottomLeft: Radius.circular(4.r),
|
||||||
|
bottomRight: Radius.circular(4.r),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
margin: EdgeInsets.only(right: 4.w),
|
||||||
|
child: quickText(type == 1 ? '作业' : '考试', color: Colors.white,
|
||||||
|
size: 10.sp),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: quickText(jobTaskItem.name, size: 14.sp,
|
||||||
|
color: const Color.fromRGBO(70, 70, 70, 1),
|
||||||
|
maxLines: 2),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
Padding(
|
||||||
|
padding: padEdg,
|
||||||
|
child: Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
|
children: [
|
||||||
|
quickText(
|
||||||
|
jobTaskItem.publishTime.substring(0, 10),
|
||||||
|
color: const Color.fromRGBO(97, 97, 97, 1),
|
||||||
|
size: 10.sp,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
),
|
||||||
|
quickText(' / ', color: const Color.fromRGBO(76, 199, 147, 1),
|
||||||
|
size: 10.sp,
|
||||||
|
fontWeight: FontWeight.w500),
|
||||||
|
quickText(
|
||||||
|
'参与班级:',
|
||||||
|
color: const Color.fromRGBO(76, 199, 147, 1),
|
||||||
|
size: 9.sp,
|
||||||
|
),
|
||||||
|
quickText(
|
||||||
|
'${jobTaskItem.classCount}',
|
||||||
|
color: const Color.fromRGBO(76, 199, 147, 1),
|
||||||
|
size: 10.sp,
|
||||||
|
),
|
||||||
|
quickText(' / ', color: const Color.fromRGBO(116, 145, 253, 1),
|
||||||
|
size: 10.sp,
|
||||||
|
fontWeight: FontWeight.w500),
|
||||||
|
quickText(
|
||||||
|
'科目:$subjectName',
|
||||||
|
color: const Color.fromRGBO(116, 145, 253, 1),
|
||||||
|
size: 9.sp,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
/*Padding(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 10.w),
|
||||||
|
child: FavoriteButton(
|
||||||
|
jobTaskItem.id,
|
||||||
|
jobTaskItem.title,
|
||||||
|
margin: EdgeInsets.only(top: 4.h, bottom: 6.h),
|
||||||
|
),
|
||||||
|
),*/
|
||||||
|
GestureDetector(
|
||||||
|
onTap: () {
|
||||||
|
/* RouterManager.router.navigateTo(
|
||||||
|
context,
|
||||||
|
RouterManager.jobReportPagePath +
|
||||||
|
'?title=${Uri.encodeComponent(jobTaskItem.title)}&id=${jobTaskItem.id}',
|
||||||
|
transition: getTransition(),
|
||||||
|
);*/
|
||||||
|
},
|
||||||
|
child: Container(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 6.h),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.only(
|
||||||
|
bottomLeft: Radius.circular(6.r),
|
||||||
|
bottomRight: Radius.circular(6.r)),
|
||||||
|
color: Colors.white,
|
||||||
|
boxShadow: const [
|
||||||
|
BoxShadow(
|
||||||
|
color: Color.fromRGBO(0, 0, 0, 0.15),
|
||||||
|
offset: Offset(0, -0.0001), //阴影y轴偏移量
|
||||||
|
blurRadius: 4, //阴影模糊程度
|
||||||
|
spreadRadius: 0, //阴影扩散程度
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
child: Row(children: [
|
||||||
|
Expanded(
|
||||||
|
child: Container(
|
||||||
|
alignment: Alignment.center,
|
||||||
|
child: quickText(
|
||||||
|
'查看报告', color: const Color.fromRGBO(118, 118, 118, 1),
|
||||||
|
size: 11.sp),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,301 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
import 'package:percent_indicator/percent_indicator.dart';
|
||||||
|
import 'package:school_asignment_app/common/job/work_student.dart';
|
||||||
|
import 'package:school_asignment_app/page/global_widget/my_text.dart';
|
||||||
|
import 'package:school_asignment_app/page/home_page/home_logic.dart';
|
||||||
|
import 'package:school_asignment_app/common/utils/utils.dart';
|
||||||
|
|
||||||
|
class TaskListItem extends StatefulWidget {
|
||||||
|
final bool completed;
|
||||||
|
final Items jobTaskItem;
|
||||||
|
final int type;
|
||||||
|
final HomeLogic logic;
|
||||||
|
|
||||||
|
const TaskListItem({Key? key,required this.completed,required this.jobTaskItem,required this.type,required this.logic}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<TaskListItem> createState() => _TaskListItemState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _TaskListItemState extends State<TaskListItem> {
|
||||||
|
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return widget.completed
|
||||||
|
? InkWell(
|
||||||
|
onTap: () {
|
||||||
|
/*String url =
|
||||||
|
'${RouterManager.jobListParticipateInClassPath}?&jobId=${jobTaskItem.id}&genderName=${Uri.encodeComponent(jobTaskItem.genderName)}&jobName=${Uri.encodeComponent(jobTaskItem.title)}&completed=${true}';
|
||||||
|
RouterManager.router.navigateTo(context, url, transition: getTransition());*/
|
||||||
|
},
|
||||||
|
child: Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(top: 20.h),
|
||||||
|
margin: EdgeInsets.only(bottom: 12.h),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(6.r),
|
||||||
|
color: const Color.fromRGBO(255, 255, 255, 1),
|
||||||
|
boxShadow: const [
|
||||||
|
BoxShadow(
|
||||||
|
color: Color.fromRGBO(210, 216, 241, 1),
|
||||||
|
offset: Offset.zero, //阴影y轴偏移量
|
||||||
|
blurRadius: 5.8, //阴影模糊程度
|
||||||
|
spreadRadius: 0, //阴影扩散程度
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
// 顶部任务名称
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 10.w),
|
||||||
|
child: Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
width: Utils.isPad() ? 32.w : 36.w,
|
||||||
|
height: 18.h,
|
||||||
|
alignment: Alignment.center,
|
||||||
|
padding: EdgeInsets.only(left: Utils.isPad() ? 2.w : 3.w),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: const Color.fromRGBO(104, 136, 253, 1),
|
||||||
|
borderRadius: BorderRadius.only(
|
||||||
|
topLeft: Radius.circular(14.r),
|
||||||
|
topRight: Radius.circular(3.r),
|
||||||
|
bottomLeft: Radius.circular(4.r),
|
||||||
|
bottomRight: Radius.circular(4.r),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
margin: EdgeInsets.only(right: 4.w),
|
||||||
|
child: quickText('作业', color: Colors.white, size: 10.sp),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: quickText(
|
||||||
|
widget.jobTaskItem.name,
|
||||||
|
maxLines: 2,
|
||||||
|
size: 16.sp,
|
||||||
|
color: const Color.fromRGBO(70, 70, 70, 1),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
SizedBox(height: 12.h),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 10.w),
|
||||||
|
child: Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
quickText(
|
||||||
|
widget.jobTaskItem.publishTime.substring(0, 10),
|
||||||
|
color: const Color.fromRGBO(97, 97, 97, 1),
|
||||||
|
size: 12.sp,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
),
|
||||||
|
quickText(' / ', color: const Color.fromRGBO(76, 199, 147, 1), size: 12.sp, fontWeight: FontWeight.w500),
|
||||||
|
quickText(
|
||||||
|
'参与班级:${widget.jobTaskItem.classCount}',
|
||||||
|
color: const Color.fromRGBO(76, 199, 147, 1),
|
||||||
|
size: 12.sp,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
),
|
||||||
|
quickText(' / ', color: const Color.fromRGBO(116, 145, 253, 1), size: 12.sp, fontWeight: FontWeight.w500),
|
||||||
|
quickText(
|
||||||
|
'科目:${widget.logic.formatSubject(widget.jobTaskItem.subject)}' ,
|
||||||
|
color: const Color.fromRGBO(116, 145, 253, 1),
|
||||||
|
size: 12.sp,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
),
|
||||||
|
const Expanded(child: SizedBox()),
|
||||||
|
/* FavoriteButton(
|
||||||
|
jobTaskItem.id,
|
||||||
|
jobTaskItem.title,
|
||||||
|
margin: EdgeInsets.zero,
|
||||||
|
isRow: false,
|
||||||
|
),*/
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
SizedBox(height: 20.h),
|
||||||
|
Container(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 10.h),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(6.r), bottomRight: Radius.circular(6.r)),
|
||||||
|
color: Colors.white,
|
||||||
|
boxShadow: const [
|
||||||
|
BoxShadow(
|
||||||
|
color: Color.fromRGBO(0, 0, 0, 0.15),
|
||||||
|
offset: Offset(0, -0.0001), //阴影y轴偏移量
|
||||||
|
blurRadius: 4, //阴影模糊程度
|
||||||
|
spreadRadius: 0, //阴影扩散程度
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
child: Row(children: [
|
||||||
|
Expanded(
|
||||||
|
child: InkWell(
|
||||||
|
onTap: (){},
|
||||||
|
child: Container(
|
||||||
|
alignment: Alignment.center,
|
||||||
|
child: quickText('查看报告', color: const Color.fromRGBO(118, 118, 118, 1), size: 13.sp),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
:
|
||||||
|
InkWell(
|
||||||
|
onTap: () {
|
||||||
|
/*String url =
|
||||||
|
'${RouterManager.jobListParticipateInClassPath}?&jobId=${jobTaskItem.id}&genderName=${Uri.encodeComponent(jobTaskItem.genderName)}&jobName=${Uri.encodeComponent(jobTaskItem.title)}';
|
||||||
|
RouterManager.router.navigateTo(context, url, transition: getTransition()).then((value) {
|
||||||
|
if (value != null && value == true) call();
|
||||||
|
});*/
|
||||||
|
},
|
||||||
|
child: Stack(
|
||||||
|
alignment: const FractionalOffset(0.95, 0),
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(bottom: 16.h),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
SizedBox(height: 30.h),
|
||||||
|
Container(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 10.w),
|
||||||
|
width: double.infinity,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(6.r),
|
||||||
|
color: const Color.fromRGBO(255, 255, 255, 1),
|
||||||
|
boxShadow: const [
|
||||||
|
BoxShadow(
|
||||||
|
color: Color.fromRGBO(210, 216, 241, 1),
|
||||||
|
offset: Offset.zero, //阴影y轴偏移量
|
||||||
|
blurRadius: 5.8, //阴影模糊程度
|
||||||
|
spreadRadius: 0, //阴影扩散程度
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
width: Utils.isPad() ? 32.w : 38.w,
|
||||||
|
height: 18.h,
|
||||||
|
alignment: Alignment.center,
|
||||||
|
padding: EdgeInsets.only(left: Utils.isPad() ? 2.w : 3.w),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: widget.type == 1
|
||||||
|
? const Color.fromRGBO(104, 136, 253, 1)
|
||||||
|
: const Color.fromRGBO(255, 175, 56, 1),
|
||||||
|
borderRadius: BorderRadius.only(
|
||||||
|
topLeft: Radius.circular(14.r),
|
||||||
|
topRight: Radius.circular(3.r),
|
||||||
|
bottomLeft: Radius.circular(4.r),
|
||||||
|
bottomRight: Radius.circular(4.r),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
margin: EdgeInsets.only(right: 4.w),
|
||||||
|
child: quickText(widget.type == 1?'作业':'考试', color: Colors.white, size: 10.sp),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: quickText(
|
||||||
|
widget.jobTaskItem.name,
|
||||||
|
maxLines: 2,
|
||||||
|
size: Utils.isPad() ? 14.sp : 16.sp,
|
||||||
|
color: const Color.fromRGBO(70, 70, 70, 1),
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(height: 10.h),
|
||||||
|
Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
|
children: [
|
||||||
|
quickText(
|
||||||
|
widget.logic.formatSubject(widget.jobTaskItem.subject),
|
||||||
|
color: const Color.fromRGBO(97, 97, 97, 1),
|
||||||
|
size: 12.sp,
|
||||||
|
),
|
||||||
|
quickText(' / ',
|
||||||
|
color: const Color.fromRGBO(130, 130, 130, 1), size: 11.sp, fontWeight: FontWeight.w500),
|
||||||
|
Container(
|
||||||
|
child: Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
|
children: [
|
||||||
|
quickText('题量:', color: const Color.fromRGBO(130, 130, 130, 1), size: 11.sp),
|
||||||
|
quickText(
|
||||||
|
'10',
|
||||||
|
color: const Color.fromRGBO(97, 97, 97, 1),
|
||||||
|
size: 13.sp,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
quickText(' / ',
|
||||||
|
color: const Color.fromRGBO(130, 130, 130, 1), size: 11.sp, fontWeight: FontWeight.w500),
|
||||||
|
quickText(widget.jobTaskItem.publishTime.substring(0, 16),
|
||||||
|
color: const Color.fromRGBO(97, 97, 97, 1), size: 12.sp),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
// FavoriteButton(jobTaskItem.id, jobTaskItem.title),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
padding: EdgeInsets.all(9.r),
|
||||||
|
decoration: const BoxDecoration(shape: BoxShape.circle, color: Colors.white),
|
||||||
|
child: CircularPercentIndicator(
|
||||||
|
radius: 40.r,
|
||||||
|
lineWidth: 10.r,
|
||||||
|
animation: true,
|
||||||
|
percent: widget.jobTaskItem.annotateRate / 100,
|
||||||
|
center: Text.rich(TextSpan(children: [
|
||||||
|
TextSpan(
|
||||||
|
text: Utils.getDoubleRemoveZero(widget.jobTaskItem.annotateRate, '0'),
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 16.sp,
|
||||||
|
color: Theme.of(context).primaryColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
TextSpan(
|
||||||
|
text: "%",
|
||||||
|
style: TextStyle(color: const Color.fromRGBO(70, 70, 70, 1), fontSize: 12.sp, fontWeight: FontWeight.bold),
|
||||||
|
),
|
||||||
|
])),
|
||||||
|
circularStrokeCap: CircularStrokeCap.round,
|
||||||
|
// progressColor: Theme.of(context).primaryColor,
|
||||||
|
linearGradient: LinearGradient(
|
||||||
|
begin: Alignment.topCenter,
|
||||||
|
end: Alignment.bottomCenter,
|
||||||
|
tileMode: TileMode.clamp,
|
||||||
|
stops: const [0.0, 1.0],
|
||||||
|
colors: [
|
||||||
|
Theme.of(context).primaryColor.withOpacity(0.1),
|
||||||
|
Theme.of(context).primaryColor,
|
||||||
|
],
|
||||||
|
),
|
||||||
|
backgroundColor: const Color.fromRGBO(244, 244, 244, 1),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -74,7 +74,8 @@ class LoginLogic extends GetxController with RequestToolMixin {
|
||||||
}
|
}
|
||||||
var data = await getClient().getUser(nameidentifier);
|
var data = await getClient().getUser(nameidentifier);
|
||||||
print(data);
|
print(data);
|
||||||
|
//获取科目
|
||||||
|
UserStore.to.getSubjectList();
|
||||||
EasyLoading.dismiss();
|
EasyLoading.dismiss();
|
||||||
Get.offAllNamed(Routes.home);
|
Get.offAllNamed(Routes.home);
|
||||||
// if (resultData.code != 200 || userData?.accessToken == null || userData?.accessToken == '') {
|
// if (resultData.code != 200 || userData?.accessToken == null || userData?.accessToken == '') {
|
||||||
|
|
|
||||||
|
|
@ -608,6 +608,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.1"
|
version: "2.2.1"
|
||||||
|
percent_indicator:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: percent_indicator
|
||||||
|
sha256: c37099ad833a883c9d71782321cb65c3a848c21b6939b6185f0ff6640d05814c
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "4.2.3"
|
||||||
petitparser:
|
petitparser:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,8 @@ dependencies:
|
||||||
json_annotation: ^4.8.1
|
json_annotation: ^4.8.1
|
||||||
retrofit: ^4.1.0
|
retrofit: ^4.1.0
|
||||||
# end retrofit请求封装
|
# end retrofit请求封装
|
||||||
|
# 进度条
|
||||||
|
percent_indicator: ^4.2.3
|
||||||
|
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
|
|
@ -112,7 +114,10 @@ flutter:
|
||||||
# "family" key with the font family name, and a "fonts" key with a
|
# "family" key with the font family name, and a "fonts" key with a
|
||||||
# list giving the asset and other descriptors for the font. For
|
# list giving the asset and other descriptors for the font. For
|
||||||
# example:
|
# example:
|
||||||
# fonts:
|
fonts:
|
||||||
|
- family: AlibabaIcon
|
||||||
|
fonts:
|
||||||
|
- asset: assets/icons/iconfont.ttf
|
||||||
# - family: Schyler
|
# - family: Schyler
|
||||||
# fonts:
|
# fonts:
|
||||||
# - asset: fonts/Schyler-Regular.ttf
|
# - asset: fonts/Schyler-Regular.ttf
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue