Explorar o código

压缩svg文件
修改主页

dusenyao %!s(int64=3) %!d(string=hai) anos
pai
achega
7714f9a642

+ 0 - 19
.vscode/javascript.code-snippets

@@ -1,19 +0,0 @@
-{
-  "api request": {
-    "scope": "javascript,typescript",
-    "prefix": "api",
-    "body": [
-      "export function ${0:n}(data) {",
-      "  let params = getRequestParams('$1');",
-      "",
-      "  return request({",
-      "    method: 'post',",
-      "    url: process.env$2,",
-      "    params,",
-      "    data",
-      "  });",
-      "}"
-    ],
-    "description": "api 请求基本格式"
-  }
-}

+ 14 - 0
src/api/table.js

@@ -16,6 +16,20 @@ export function GetMyDayTaskList(data) {
 }
 
 /**
+ * 得到我的任务列表(用于主页显示)
+ * @param {Object} data
+ */
+export function GetMyTaskList(data) {
+  let params = getRequestParams('cominfo_query-task_query-GetMyTaskList');
+
+  return request({
+    method: 'post',
+    url: process.env.VUE_APP_LearnWebSI,
+    params,
+    data
+  });
+}
+/**
  * 得到课次详情(信息集合)
  * @param {Object} data {id}
  */

+ 20 - 0
src/common/data.js

@@ -0,0 +1,20 @@
+const taskTimeList = [
+  {
+    constant: -1,
+    name: '全部'
+  },
+  {
+    constant: 0,
+    name: '课前'
+  },
+  {
+    constant: 1,
+    name: '课中'
+  },
+  {
+    constant: 2,
+    name: '课后'
+  }
+];
+
+export { taskTimeList };

+ 1 - 1
src/icons/svg/camera-on-black.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 18.5a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z" stroke="#2C2C2C" stroke-width="1.5"/><path d="M12 14a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z" stroke="#2C2C2C" stroke-width="1.5"/><path d="M8 21.5h8M12 18.5v3" stroke="#2C2C2C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 18.5a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z" stroke="#2C2C2C" stroke-width="1.5"/><path d="M12 14a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z" stroke="#2C2C2C" stroke-width="1.5"/><path d="M8 21.5h8m-4-3v3" stroke="#2C2C2C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 1
src/icons/svg/camera-on.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 18.5a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z" stroke="#fff" stroke-width="1.5"/><path d="M12 14a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z" stroke="#fff" stroke-width="1.5"/><path d="M8 21.5h8M12 18.5v3" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 18.5a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z" stroke="#fff" stroke-width="1.5"/><path d="M12 14a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z" stroke="#fff" stroke-width="1.5"/><path d="M8 21.5h8m-4-3v3" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 1
src/icons/svg/create-white.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 5V3.5a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-2" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M13.5 9h-10a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V10a1 1 0 0 0-1-1ZM8.5 12.5v5M6 15h5" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 5V3.5a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-2" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M13.5 9h-10a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V10a1 1 0 0 0-1-1Zm-5 3.5v5M6 15h5" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 1
src/icons/svg/create.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 5V3.5a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-2" stroke="#2C2C2C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M13.5 9h-10a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V10a1 1 0 0 0-1-1ZM8.5 12.5v5M6 15h5" stroke="#2C2C2C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 5V3.5a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-2" stroke="#2C2C2C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M13.5 9h-10a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V10a1 1 0 0 0-1-1Zm-5 3.5v5M6 15h5" stroke="#2C2C2C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 1
src/icons/svg/dollar.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><g opacity=".4"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M12 1v22M17.5 3H10a4.5 4.5 0 1 0 0 9M6.5 21H14a4.5 4.5 0 1 0 0-9h-4" stroke="#2C2C2C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></g></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><g opacity=".4"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M12 1v22m5.5-20H10a4.5 4.5 0 1 0 0 9m-3.5 9H14a4.5 4.5 0 1 0 0-9h-4" stroke="#2C2C2C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></g></svg>

+ 1 - 1
src/icons/svg/draw.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20 3H4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1Z" stroke="#fff" stroke-width="1.5" stroke-linejoin="round"/><path d="M7 6.5h4M7 9.5h10M4 22l2.444-3h10.89L20 22M12 13v9" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20 3H4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1Z" stroke="#fff" stroke-width="1.5" stroke-linejoin="round"/><path d="M7 6.5h4m-4 3h10M4 22l2.444-3h10.89L20 22m-8-9v9" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 1
src/icons/svg/edit.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20 11.5V7l-4.5-5H5a1 1 0 0 0-1 1v18a1 1 0 0 0 1 1h6M16 22l5-5-2-2-5 5v2h2Z" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M15 2v5h5" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20 11.5V7l-4.5-5H5a1 1 0 0 0-1 1v18a1 1 0 0 0 1 1h6m5 0 5-5-2-2-5 5v2h2Z" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M15 2v5h5" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 1
src/icons/svg/full-screen.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.5 3H21v4.5M21 16.5V21h-4.5M7.5 21H3v-4.5M3 7.5V3h4.5" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.5 3H21v4.5m0 9V21h-4.5m-9 0H3v-4.5m0-9V3h4.5" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 1
src/icons/svg/group.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M7 17a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM17 17a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM12 7a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M12 22a5 5 0 0 0-10 0M22 22a5 5 0 0 0-10 0M17 12a5 5 0 0 0-10 0" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M7 17a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Zm10 0a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM12 7a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M12 22a5 5 0 0 0-10 0m20 0a5 5 0 0 0-10 0m5-10a5 5 0 0 0-10 0" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 1
src/icons/svg/mobile-close.svg

@@ -1 +1 @@
-<svg width="1024" height="1024" xmlns="http://www.w3.org/2000/svg" class="icon"><path fill="none" d="M-1-1h582v402H-1z"/><g fill="#fff"><path d="M537.754 795.889c-26.41 0-47.893 21.478-47.893 47.892s21.484 47.893 47.893 47.893 47.892-21.479 47.892-47.893-21.483-47.892-47.892-47.892zM774.697 42.07H300.815c-39.864 0-72.3 32.43-72.3 72.3v795.264c0 39.869 32.43 72.3 72.3 72.3h473.872c39.87 0 72.3-32.431 72.3-72.3v-795.27c.004-39.864-32.426-72.294-72.29-72.294zM300.815 90.266h473.872a24.125 24.125 0 0 1 24.1 24.1v595.809H276.72v-595.81a24.125 24.125 0 0 1 24.094-24.1zm473.882 843.463H300.815a24.125 24.125 0 0 1-24.1-24.1V762.501h522.072V909.63a24.115 24.115 0 0 1-24.09 24.1z"/><path d="m763.136 531.554-148.85-144.27L763.11 243.017 686.6 168.81 537.75 313.08l-148.85-144.27-76.508 74.206 148.823 144.269-148.85 144.269 76.562 74.18 148.823-144.27 148.823 144.27" fill-opacity="null"/></g></svg>
+<svg width="1024" height="1024" xmlns="http://www.w3.org/2000/svg" class="icon"><path fill="none" d="M-1-1h582v402H-1z"/><g fill="#fff"><path d="M537.754 795.889c-26.41 0-47.893 21.478-47.893 47.892s21.484 47.893 47.893 47.893 47.892-21.479 47.892-47.893-21.483-47.892-47.892-47.892zM774.697 42.07H300.815c-39.864 0-72.3 32.43-72.3 72.3v795.264c0 39.869 32.43 72.3 72.3 72.3h473.872c39.87 0 72.3-32.431 72.3-72.3v-795.27c.004-39.864-32.426-72.294-72.29-72.294zM300.815 90.266h473.872a24.125 24.125 0 0 1 24.1 24.1v595.809H276.72v-595.81a24.125 24.125 0 0 1 24.094-24.1zm473.882 843.463H300.815a24.125 24.125 0 0 1-24.1-24.1V762.501h522.072V909.63a24.115 24.115 0 0 1-24.09 24.1z"/><path d="m763.136 531.554-148.85-144.27L763.11 243.017 686.6 168.81 537.75 313.08 388.9 168.81l-76.508 74.206 148.823 144.269-148.85 144.269 76.562 74.18 148.823-144.27 148.823 144.27" fill-opacity="null"/></g></svg>

+ 1 - 1
src/icons/svg/more.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M12 7.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM12 13.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM12 19a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" fill="#333"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M12 7.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm0 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm0 5.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" fill="#333"/></svg>

+ 1 - 1
src/icons/svg/people.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M9.5 10a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7ZM16.304 3.5A3.498 3.498 0 0 1 18 6.5c0 1.273-.68 2.388-1.696 3M2 20.4v.6h15v-.6c0-2.24 0-3.36-.436-4.216a4 4 0 0 0-1.748-1.748C13.96 14 12.84 14 10.6 14H8.4c-2.24 0-3.36 0-4.216.436a4 4 0 0 0-1.748 1.748C2 17.04 2 18.16 2 20.4ZM22 21v-.6c0-2.24 0-3.36-.436-4.216a4 4 0 0 0-1.748-1.749" stroke="#2C2C2C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M9.5 10a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm6.804-6.5A3.498 3.498 0 0 1 18 6.5c0 1.273-.68 2.388-1.696 3M2 20.4v.6h15v-.6c0-2.24 0-3.36-.436-4.216a4 4 0 0 0-1.748-1.748C13.96 14 12.84 14 10.6 14H8.4c-2.24 0-3.36 0-4.216.436a4 4 0 0 0-1.748 1.748C2 17.04 2 18.16 2 20.4Zm20 .6v-.6c0-2.24 0-3.36-.436-4.216a4 4 0 0 0-1.748-1.749" stroke="#2C2C2C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 1
src/icons/svg/share.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M10.5 19.5a8 8 0 0 0-8-8M6.5 19.5a4 4 0 0 0-4-4" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 20.5a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Z" fill="#fff"/><path d="M2 8.028V4h20v16h-7.614" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M10.5 19.5a8 8 0 0 0-8-8m4 8a4 4 0 0 0-4-4" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 20.5a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Z" fill="#fff"/><path d="M2 8.028V4h20v16h-7.614" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 1
src/icons/svg/students.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M9.5 10a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7ZM16.304 3.5A3.498 3.498 0 0 1 18 6.5c0 1.273-.68 2.388-1.696 3M2 20.4v.6h15v-.6c0-2.24 0-3.36-.436-4.216a4 4 0 0 0-1.748-1.748C13.96 14 12.84 14 10.6 14H8.4c-2.24 0-3.36 0-4.216.436a4 4 0 0 0-1.748 1.748C2 17.04 2 18.16 2 20.4ZM22 21v-.6c0-2.24 0-3.36-.436-4.216a4 4 0 0 0-1.748-1.749" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M9.5 10a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm6.804-6.5A3.498 3.498 0 0 1 18 6.5c0 1.273-.68 2.388-1.696 3M2 20.4v.6h15v-.6c0-2.24 0-3.36-.436-4.216a4 4 0 0 0-1.748-1.748C13.96 14 12.84 14 10.6 14H8.4c-2.24 0-3.36 0-4.216.436a4 4 0 0 0-1.748 1.748C2 17.04 2 18.16 2 20.4Zm20 .6v-.6c0-2.24 0-3.36-.436-4.216a4 4 0 0 0-1.748-1.749" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 0
src/icons/svg/task-list.svg

@@ -0,0 +1 @@
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M2 5a1 1 0 0 1 1-1h2a1 1 0 0 1 0 2H3a1 1 0 0 1-1-1Zm6 0a1 1 0 0 1 1-1h13a1 1 0 1 1 0 2H9a1 1 0 0 1-1-1Zm-2 7a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2H7a1 1 0 0 1-1-1Zm6 0a1 1 0 0 1 1-1h9a1 1 0 1 1 0 2h-9a1 1 0 0 1-1-1ZM2 19a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm6 0a1 1 0 0 1 1-1h13a1 1 0 1 1 0 2H9a1 1 0 0 1-1-1Z" fill="#000" fill-opacity=".85"/></svg>

+ 1 - 1
src/icons/svg/task-notification.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M2 19h20M5 19V9a7 7 0 1 1 14 0v10H5ZM12 22a2.5 2.5 0 0 0 2.5-2.5V19h-5v.5A2.5 2.5 0 0 0 12 22Z" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><path d="M2 19h20M5 19V9a7 7 0 1 1 14 0v10H5Zm7 3a2.5 2.5 0 0 0 2.5-2.5V19h-5v.5A2.5 2.5 0 0 0 12 22Z" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 1
src/icons/svg/upload.svg

@@ -1 +1 @@
-<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><mask id="a" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"><path d="M24 0H0v24h24V0Z" fill="#333"/></mask><g mask="url(#a)" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12.004V21h18v-9M16.5 7.5 12 3 7.5 7.5M11.996 16V3"/></g></svg>
+<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 0H0v24h24V0Z" fill="#fff" fill-opacity=".01"/><mask id="a" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24"><path d="M24 0H0v24h24V0Z" fill="#333"/></mask><g mask="url(#a)" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12.004V21h18v-9m-4.5-4.5L12 3 7.5 7.5m4.496 8.5V3"/></g></svg>

+ 1 - 0
src/styles/variables.scss

@@ -4,3 +4,4 @@ $basic-width: 1200px;
 $bac-color: #f5f5f5;
 $basic-color: #f90;
 $color: #2c2c2c;
+$border-color: #e6e6e6;

+ 119 - 195
src/views/main/TaskList.vue

@@ -1,77 +1,61 @@
 <template>
   <div class="tasks">
-    <div class="tasks-top">
-      <el-calendar v-model="date" />
-      <div class="tasks-top-notification">
-        <div class="tasks-top-notification-title">
-          <div>
-            <svg-icon icon-class="task-notification" />
-            <span class="title">任务通知</span>
-          </div>
-          <div>
-            <i class="el-icon-arrow-right" @click="goPersonal" />
-          </div>
-        </div>
-        <div class="tasks-top-notification-container">
-          <ul>
-            <li v-for="item in message_list" :key="item.id" @click="readMyMessage(item.id, item.source_entity_id)">
-              <span class="send_time">{{ item.send_time }}</span>
-              <span class="content">{{ item.content }}</span>
-            </li>
-          </ul>
-        </div>
+    <div class="tasks-left">
+      <!-- 菜单 -->
+      <div class="menu">
+        <span v-for="{ tab, name } in menuList" :key="tab" :class="['menu-item', tab === 'TaskList' ? 'active' : '']">
+          {{ name }}
+        </span>
       </div>
-    </div>
-    <div class="tasks-container">
-      <div class="tasks-container-title">
-        <div class="tasks-container-title-left">
-          <svg-icon icon-class="clock" />
-          <span class="title">时间轴</span>
-          <span class="date">{{ dateTime }}</span>
-          <i class="el-icon-arrow-left" @click="dateSkip(-1)" />
-          <i class="el-icon-arrow-right" @click="dateSkip(1)" />
-        </div>
-        <div>
-          <!-- <el-select v-model="selected"></el-select> -->
+      <!-- 日历 -->
+      <div class="calendar" />
+      <!-- 通知 -->
+      <div class="notice">
+        <div class="notice-title">
+          <svg-icon icon-class="task-notification" />
+          <span>通知</span>
+          <span class="notice-title-link">全部 <i class="el-icon-arrow-right" /></span>
         </div>
+        <div class="notice-container" />
       </div>
-      <div class="tasks-container-main">
-        <div v-for="(item, i) in task_group_list" :key="i" class="tasks-group">
-          <div class="tasks-group-top">
-            <span class="tasks-group-top-time">{{ item.begin_time_view_text }}</span>
-            <span class="tasks-group-top-line" />
-          </div>
-          <div class="tasks-group-list">
-            <div v-for="list in item.task_list" :key="list.id" class="tasks-group-list-info">
-              <div class="tasks-group-list-info-name">
-                <span @click="taskLink_outside(list.id)"> {{ timeType(list.time_type) }}任务:{{ list.name }} </span>
-                <el-link class="task-link" :underline="false" @click.stop="taskLink(list.teaching_type, list.id)">
-                  {{ teachingType(list.teaching_type) }}
-                </el-link>
-              </div>
-              <div class="tasks-group-list-info-item-name">{{ list.course_name }} - {{ list.cs_item_name }}</div>
-              <div class="tasks-group-list-info-time">{{ list.time_space_view_txt }}</div>
-              <div />
-            </div>
-          </div>
+    </div>
+    <div class="tasks-right">
+      <div class="task-title">
+        <svg-icon icon-class="task-list" /><span class="task-title-name">任务列表</span>
+        <div class="curricula-type">
+          <span
+            v-for="{ constant, name } in taskTimeList"
+            :key="constant"
+            :class="['curricula-type-item', curTaskTime === constant ? 'active' : '']"
+          >
+            {{ name }}
+          </span>
         </div>
+        <el-select />
       </div>
+      <div />
     </div>
   </div>
 </template>
 
 <script>
-import { GetMyDayTaskList, PageQueryMyMessageList } from '@/api/table';
+import { GetMyDayTaskList, PageQueryMyMessageList, GetMyTaskList } from '@/api/table';
 import { CreateEnterLiveRoomSession } from '@/api/live';
 import { parseTime, formatDate } from '@/utils';
 import { ReadMyMessage } from '@/api/user';
+import { colorMatching, getMenuList } from './data';
+import { taskTimeList } from '@/common/data';
 
 export default {
   name: 'TaskList',
   data() {
     return {
+      colorMatching,
+      taskTimeList,
       date: new Date(),
       selected: '',
+      curTaskTime: -1,
+      menuList: getMenuList(),
       task_group_list: [],
       message_list: []
     };
@@ -95,6 +79,9 @@ export default {
     }).then(({ message_list }) => {
       this.message_list = message_list;
     });
+    GetMyTaskList({
+      time_type: this.time_type
+    });
   },
   mounted() {
     this.getTaskList();
@@ -170,182 +157,119 @@ export default {
 
 <style lang="scss">
 .tasks {
-  &-top {
-    display: flex;
-    justify-content: space-between;
+  display: flex;
 
-    .el-calendar {
-      width: 334px;
-      height: 300px;
+  &-left {
+    width: 392px;
+    margin-right: 16px;
 
-      &__header .el-button {
-        padding: 7px 10px;
-      }
-
-      &-table div.el-calendar-day {
-        height: 29px;
-      }
-
-      &__body {
-        thead th {
-          padding: 0 0 4px;
+    .menu {
+      display: flex;
+      height: 56px;
+      font-size: 20px;
+      font-weight: 500;
+      line-height: 56px;
+      text-align: center;
+      background-color: #ebebeb;
+      border: 1px solid $border-color;
+      border-radius: 8px;
+
+      &-item {
+        flex: 1;
+        color: rgba(0, 0, 0, 45%);
+        cursor: pointer;
+        border-radius: 8px;
+
+        &.active {
+          color: #000;
+          background-color: #fff;
+          box-shadow: 0 2px 4px $border-color;
         }
       }
     }
 
-    // 任务通知
-    &-notification {
-      flex: 1;
-      height: 300px;
-      padding: 20px 24px;
-      margin-left: 16px;
-      overflow: hidden;
+    .calendar {
+      height: 498px;
+      padding: 32px;
+      margin: 16px 0;
       background-color: #fff;
+      border-radius: 8px;
+    }
+
+    .notice {
+      height: calc(100vh - 705px);
+      padding: 32px;
+      background: #fff;
+      border-radius: 8px;
 
       &-title {
         display: flex;
+        align-items: center;
         justify-content: space-between;
-        font-size: 20px;
-        font-weight: 700;
 
-        .title {
-          display: inline-block;
-          margin-left: 10px;
+        .svg-icon {
+          width: 24px;
+          height: 24px;
         }
 
-        .el-icon-arrow-right {
-          cursor: pointer;
+        > span:first-of-type {
+          flex: 1;
+          padding-left: 16px;
         }
-      }
-
-      &-container {
-        height: 210px;
-        margin-top: 24px;
-        overflow-y: auto;
-
-        ul {
-          li {
-            display: flex;
-            font-size: 14px;
-            line-height: 1.3;
-
-            .send_time {
-              width: 150px;
-              min-width: 150px;
-              color: #767676;
-            }
-
-            .content {
-              color: $color;
-              cursor: pointer;
-            }
-          }
 
-          li:not(:first-child) {
-            margin-top: 16px;
-          }
+        &-link {
+          color: #bababa;
         }
       }
     }
   }
 
-  &-container {
-    width: 100%;
-    min-height: calc(100vh - 522px);
-    margin-top: 16px;
+  &-right {
+    width: 802px;
+    padding: 16px 24px;
     background-color: #fff;
     border-radius: 8px;
 
-    &-title {
+    .task-title {
       display: flex;
-      justify-content: space-between;
-      padding: 16px;
-
-      &-left {
-        line-height: 40px;
-
-        .title {
-          margin-left: 8px;
-        }
-
-        .date {
-          margin-left: 24px;
-          color: #a6a6a6;
-          vertical-align: middle;
-        }
-
-        .el-icon-arrow-right {
-          cursor: pointer;
-        }
+      align-items: center;
+      padding-bottom: 16px;
+      border-bottom: 1px solid #d9d9d9;
 
-        .el-icon-arrow-left {
-          margin: 0 26px 0 33px;
-          cursor: pointer;
-        }
+      &-name {
+        margin-left: 8px;
+        font-weight: 600;
       }
-    }
 
-    &-main {
-      margin: 0 24px 8px 40px;
-
-      .tasks-group {
-        margin-top: 8px;
-
-        &-top {
-          display: flex;
-          align-items: center;
-          justify-content: space-between;
-
-          &-time {
-            color: #808080;
-          }
-
-          &-line {
-            width: calc(100% - 78px);
-            height: 1px;
-            background-color: #d9d9d9;
-          }
-        }
-
-        &-list {
-          margin-left: 78px;
+      .curricula-type {
+        display: flex;
+        align-items: center;
+        height: 40px;
+        margin: 0 16px;
+        color: #8c8c8c;
+        background-color: #f5f5f5;
+        border: 1px solid $border-color;
+        border-radius: 8px;
+
+        &-item {
+          height: 100%;
+          padding: 8px;
+          line-height: 26px;
+          cursor: pointer;
 
-          &-info {
-            display: inline-block;
-            padding: 16px 24px;
-            margin: 10px 15px 10px 0;
-            background-color: #fff4e3;
-            border: 1px solid #ccc;
+          &.active {
+            color: #000;
+            background-color: #fff;
             border-radius: 8px;
-
-            > div {
-              margin: 8px 0;
-            }
-
-            &-name {
-              > span {
-                cursor: pointer;
-              }
-
-              .task-link {
-                margin-left: 8px;
-                font-size: 16px;
-                color: $basic-color;
-                vertical-align: top;
-              }
-            }
-
-            &-item-name {
-              font-size: 14px;
-              color: #727280;
-            }
-
-            &-time {
-              font-size: 14px;
-            }
+            box-shadow: 0 2px 4px $border-color;
           }
         }
       }
+
+      .el-select {}
+    }
+
+    .task-container {
     }
   }
 }

+ 26 - 1
src/views/main/data.js

@@ -1,3 +1,5 @@
+import store from '@/store';
+
 let colorMatching = [
   {
     main: '#3479FF',
@@ -36,4 +38,27 @@ let colorMatching = [
   }
 ];
 
-export { colorMatching };
+function getMenuList() {
+  let popedom_code_list = store.state.user.popedom_code_list;
+  let isStudent = store.state.user.user_type === 'STUDENT';
+
+  return [
+    {
+      name: '任务',
+      tab: 'TaskList',
+      isShow: isStudent || popedom_code_list.includes(2000001)
+    },
+    {
+      name: '课程',
+      tab: 'CurriculaList',
+      isShow: isStudent || popedom_code_list.includes(2000001)
+    },
+    {
+      name: '模板',
+      tab: 'TemplateList',
+      isShow: !isStudent && popedom_code_list.includes(2000002)
+    }
+  ];
+}
+
+export { colorMatching, getMenuList };

+ 7 - 78
src/views/main/index.vue

@@ -1,16 +1,5 @@
 <template>
   <div class="main-container">
-    <div class="menu">
-      <template v-for="item in menuList">
-        <span
-          v-if="item.isShow"
-          :key="item.id"
-          v-t="item.name"
-          :class="['menu-tab', { active: currentTab === item.tab }]"
-          @click="currentTab = item.tab"
-        />
-      </template>
-    </div>
     <keep-alive>
       <component :is="currentTabComponent" />
     </keep-alive>
@@ -18,51 +7,26 @@
 </template>
 
 <script>
-import TaskList from './TaskList';
-import CurriculaListStudent from './curricula_list/student';
-import CurriculaListTeacher from './curricula_list/teacher';
+import TaskList from './TaskList.vue';
 import TemplateList from './TemplateList.vue';
-import { updateWordPack } from '@/utils/i18n';
 
 export default {
   name: 'Main',
   components: {
     TaskList,
-    CurriculaListStudent,
-    CurriculaListTeacher,
     TemplateList
   },
   data() {
-    let popedom_code_list = this.$store.state.user.popedom_code_list;
-    let isStudent = this.$store.state.user.user_type === 'STUDENT';
+    const state = this.$store.state;
+    let popedom_code_list = state.user.popedom_code_list;
+    let isStudent = state.user.user_type === 'STUDENT';
     function curTab() {
       return isStudent || popedom_code_list.includes(2000001) ? 'TaskList' : 'TemplateList';
     }
     let currentTab = this.$route.query.tab || curTab();
 
     return {
-      currentTab,
-      popedom_code_list,
-      menuList: [
-        {
-          id: 1,
-          name: '任务列表',
-          tab: 'TaskList',
-          isShow: isStudent || popedom_code_list.includes(2000001)
-        },
-        {
-          id: 2,
-          name: '课程列表',
-          tab: 'CurriculaList',
-          isShow: isStudent || popedom_code_list.includes(2000001)
-        },
-        {
-          id: 3,
-          name: '模板列表',
-          tab: 'TemplateList',
-          isShow: !isStudent && popedom_code_list.includes(2000002)
-        }
-      ]
+      currentTab
     };
   },
   computed: {
@@ -70,20 +34,11 @@ export default {
       if (['TemplateList', 'TaskList'].includes(this.currentTab)) {
         return this.currentTab;
       }
-      let suffix = this.$store.state.user.user_type === 'TEACHER' ? 'Teacher' : 'Student';
-      return this.currentTab + suffix;
+      return this.currentTab + this.$store.state.user.user_type === 'TEACHER' ? 'Teacher' : 'Student';
     }
   },
   created() {
-    updateWordPack({
-      word_key_list: [
-        'Learn_Task_Panel',
-        'Learn_Course_Management',
-        'Learn_Task_No_Started',
-        'Learn_Task_Has_Begun',
-        'Learn_Task_Over'
-      ]
-    });
+
   }
 };
 </script>
@@ -93,31 +48,5 @@ export default {
 
 .main-container {
   @include container;
-
-  // 切换菜单
-  .menu {
-    display: inline-block;
-    margin-bottom: 32px;
-    background-color: #ebebeb;
-    border-radius: 30px;
-
-    &-tab {
-      display: inline-block;
-      height: 48px;
-      padding: 9px 39px;
-      font-size: 20px;
-      line-height: 30px;
-      color: #9f9f9f;
-      cursor: pointer;
-      background-color: #ebebeb;
-      border-radius: 30px;
-
-      &.active {
-        font-weight: 700;
-        color: #fff;
-        background-color: $basic-color;
-      }
-    }
-  }
 }
 </style>